
    (pht                       S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJrJr  SSKJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SS jrS rSS jrSS jrSS jr0 SSS\4_SSS\4_SSS\4_SSS\4_SSS\4_S S!S"\4_S#S$S%\4_S&S'S(\4_S)S*_S+S,S-\4_S.S/S0\4_S1S2S3\4_S4S5S6\4_S7S8S9\4_S:S;S<\4_S=S>S?\4_S@SA_0 SBSC_SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSUSV\4_SWSXSY\4_SZS[S\\4_S]S^S_\4_S`SaSb\4_ScSdSe\4_SfSgSh\4_SiSjSk\4_E0 SlSmSn\4_SoSpSq\4_SrSsSt\4_SuSvSw\4_SxSySz\4_S{S|S}\4_S~SS\4_SSS\4_SSS\4_SSS\4_SSS\4_SSS\4_SSS\4_SSS\4_SS_SS_SS_ESSSSSSSSSSSSS\4S.Er SS jr! " S S\R                   5      r"SS jr#S r$SSSSSSS.r%Sr&S SSS.r'S r(SS jr)SS jr*SS jr+\RX                  " \"RZ                  \+\!5        \R\                  " \"RZ                  \)5        \R^                  " \"RZ                  / SQ5        \R`                  " \"RZ                  S5        g)    )annotationsN)IOAny   )Image	ImageFile)i16be)i32be)o8)o16be)presetsJpegImageFilec                    [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5        g )N   )i16fpreadr   
_safe_read)selfmarkerns      F/var/www/html/venv/lib/python3.13/site-packages/PIL/JpegImagePlugin.pySkipr   :   s1    DGGLLOq A!$    c                   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      nSUS-  -  nX0R
                  U'   U R                  R                  XC45        US:X  a  US S S:X  a  [        US5      =U R                  S'   n[        US	5      U R                  S
'    US   n[        US5      [        US5      4nUS:X  a  XpR                  S'   X`R                  S'   XpR                  S'   g US:X  ah  US S S:X  a_  SU R                  ;   a  U R                  S==   USS  -  ss'   g X0R                  S'   U R                  R                  5       U-
  S-   U l        g US:X  a,  US S S:X  a#  UR                  SS5      S   U R                  S'   g US:X  a  US S S:X  a  X0R                  S'   g US:X  a%  US S S:X  a  U R                  R                  U5        g US:X  a  US S  S!:X  a  S nU R                  R                  S"0 5      n	X8US-    S#:X  a   US-  n[        X85      n
US-  nX8   nUSU-   -  nXS-  -  n[!        X85      nUS-  nX8X-    nU
S$:X  a5  [!        US%5      S&-  [        US5      [!        US5      S&-  [        US5      S'.nXU
'   X-  nXS-  -  nX8US-    S#:X  a  M  g g US(:X  a7  US S S):X  a.  [        US5      U R                  S*'    US+   nXR                  S,'   g US:X  aJ  US S S-:X  a@  USS  U R                  S.'   U R                  R                  5       U-
  S-   U R                  S/'   g g g ! [         a     g f = f! ["        R$                   a     g f = f! [&         a     g f = f)0Nr   zAPP%d        s   JFIF   jfif   jfif_version      
   r   dpi	jfif_unitjfif_density     s   Exif  exif   s   http://ns.adobe.com/xap/1.0/     xmp  s   FPXR flashpix      ICC_PROFILE      s   Photoshop 3.0 	photoshops   8BIMi  r   i   )XResolutionDisplayedUnitsXYResolutionDisplayedUnitsY  s   Adobeadobe   adobe_transforms   MPF mpmpoffset)r   r   r   r   r   appapplistappendinfodivmod	Exceptiontell_exif_offsetspliticclist
setdefaulti32structerror
IndexError)r   r   r   sr@   versionr'   r(   offsetr5   codename_lensizedatar=   s                  r   APPrV   ?   s   
 	DGGLLOq ATWWa(A
Vb[
!CHHSMLL!AbqEW,&)!Qi/		&G$*7C$8		.!		5!Iq!9c!Rj0L A~#/		% %.IIk"(4IIn%	6	ae{2TYYIIf12& !IIf $ 2Q 6D	6	af(KK777A.q1		%	6	aey0 !		*	6	af(88 	A	6	af(<<II((b9	!$/!1~!9!h,&1*$1~!&-06>'*4|e';+.tQ<'*4|e';+.tR=	D #'$1*$1 !$/8 
6	aex/ AY		'	;eO ,;II'(	6	aex/AB%		$ !% 2Q 6		* 0	S  		z <<   		s7   ?M /BM$ /M> 
M! M!$M;:M;>
N
Nc                   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      nX0R
                  S'   X0R                  S'   U R                  R                  SU45        g )Nr   commentCOM)	r   r   r   r   r   rC   r@   rA   rB   )r   r   r   rO   s       r   rY   rY      sb     	DGGLLOq ATWWa(AIIiHHUOLL
#r   c                D   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      n[        US5      [        US5      4U l        US   U l        U R                  S:w  a  SU R                   S3n[        U5      eUS   U l        U R                  S:X  a  S	U l	        OKU R                  S:X  a  S
U l	        O3U R                  S:X  a  SU l	        OSU R                   S3n[        U5      eUS;   a  S=U R                  S'   U R                  S'   U R                  (       a  U R                  R                  5         U R                  S   S   [        U R                  5      :X  a0  U R                   Vs/ s H  oUSS  PM	     nnSR                  U5      nOS nXpR                  S'   / U l        [        S[        U5      S5       H;  nX8US-    n	U R                   R#                  U	S   U	S   S-  U	S   S-  U	S   45        M=     g s  snf )Nr      r   r   r$   zcannot handle z-bit layersr   LRGBr   CMYKz-layer images)        progressiveprogression   r4   r   icc_profiler*      r   )r   r   r   r   r   _sizebitsSyntaxErrorlayers_moderC   rI   sortlenjoinrangelayerrB   )
r   r   r   rO   msgpprofilerf   its
             r   SOFrw      s    	DGGLLOq ATWWa(AQC1I%DJ!DIyyA~tyyk5#A$DK{{a
		
		
t{{m=9#11>??		- 499]#;||<<?2#dll"33'+||4|!v|G4((7+KK#.		- 1c!fa !a%L

1Q41QqTBY!=> ! 5s   Hc                B   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      n[        U5      (       a  US   nUS-  S:X  a  SOSnSUS-  -   n[        U5      U:  a  Sn[        U5      e[        R                  " US:X  a  SOSUSU 5      n[        R                  S	:X  a  US:  a  UR                  5         [         V	s/ s H  oU	   PM	     sn	U R                  US
-  '   X6S  n[        U5      (       a  M  g g s  sn	f )Nr   r   rg   r   @   zbad quantization table markerBHlittler   )r   r   r   r   r   rn   rj   arraysys	byteorderbyteswapzigzag_indexquantization)
r   r   r   rO   v	precision	qt_lengthrr   rU   ru   s
             r   DQTr      s     	DGGLLOq ATWWa(A
a&&aDr'Q,AQ		B&	q6I1Cc""{{)q.3c1Qy>J==H$QMMO6B$Cl!Wl$C!b&!jM a&& %Ds   #Di  SOF0zBaseline DCTi  SOF1zExtended Sequential DCTr_   SOF2zProgressive DCTi  SOF3zSpatial losslessi  DHTzDefine Huffman tablei  SOF5zDifferential sequential DCTr`   SOF6zDifferential progressive DCTi  SOF7zDifferential spatiali  )JPG	ExtensionNi  SOF9zExtended sequential DCT (AC)ra   SOF10zProgressive DCT (AC)i  SOF11zSpatial lossless DCT (AC)i  DACz%Define arithmetic coding conditioningi  SOF13z Differential sequential DCT (AC)rb   SOF14z!Differential progressive DCT (AC)i  SOF15zDifferential spatial (AC)i  )RST0z	Restart 0Ni  )RST1z	Restart 1Ni  )RST2z	Restart 2Ni  )RST3z	Restart 3Ni  )RST4z	Restart 4Ni  )RST5z	Restart 5Ni  )RST6z	Restart 6Ni  )RST7z	Restart 7Ni  )SOIzStart of imageNi  )EOIzEnd of imageN  SOSzStart of scani  r   zDefine quantization tablei  DNLzDefine number of linesi  DRIzDefine restart intervali  DHPzDefine hierarchical progressioni  EXPzExpand reference componentr   APP0zApplication segment 0r)   APP1zApplication segment 1r/   APP2zApplication segment 2i  APP3zApplication segment 3i  APP4zApplication segment 4i  APP5zApplication segment 5i  APP6zApplication segment 6i  APP7zApplication segment 7i  APP8zApplication segment 8i  APP9zApplication segment 9i  APP10zApplication segment 10i  APP11zApplication segment 11i  APP12zApplication segment 12r3   APP13zApplication segment 13r:   APP14zApplication segment 14i  APP15zApplication segment 15i  )JPG0zExtension 0Ni  )JPG1zExtension 1Ni  )JPG2zExtension 2N)JPG3zExtension 3N)JPG4zExtension 4N)JPG5zExtension 5N)JPG6zExtension 6N)JPG7zExtension 7N)JPG8zExtension 8N)JPG9zExtension 9N)JPG10zExtension 10N)JPG11zExtension 11N)JPG12zExtension 12N)JPG13zExtension 13NrY   Comment)i  i  i  i  i  i  i  i  i  i    i  c                    U S S S:H  $ )Nr[   s    )prefixs    r   _acceptr   >  s    "1:((r   c                  f    \ rS rSrSrSrS rSS jr      SS jrSS jr	SS jr
SS	 jrS
 rSrg)r   iG  JPEGzJPEG (ISO 10918)c                *   U R                   R                  S5      n[        U5      (       d  Sn[        U5      eSnS=U l        U l        / U l        0 U l        0 U l        0 U l	        0 U l
        / U l        / U l         US   nUS:X  a)  XR                   R                  S5      -   n[        U5      nOU R                   R                  S5      nMR  U[        ;   as  [        U   u  pEnUb  U" X5        US:X  a:  U R                  nU R                  S:X  a  S	nS
SU R                   -   SUS44/U l        OWU R                   R                  S5      nO8US;   a  SnO/US:X  a  U R                   R                  S5      nOSn[        U5      eGM	  U R%                  5         g )Nr[   znot a JPEG file   r      r   r   r^   CMYK;Ijpegr   r    >   r     i   zno marker found)r   r   r   rj   ri   rk   rq   
huffman_dc
huffman_acr   r@   rA   rI   r   MARKERmoderT   tile_read_dpi_from_exif)r   rO   rr   ru   namedescriptionhandlerrawmodes           r   _openJpegImageFile._openK  s{   GGLLOqzz#Cc"" #$#	DK 
!ADyQ'F GGLLOF{-3AY*7&D$;"iiGyyF*"*"(&499*<a'2!O PDIGGLLOk!fGGLLO'!#&&; > 	  "r   c                    U R                   R                  U5      nU(       d.  [        R                  (       a  [	        U S5      (       d  SU l        gU$ )z{
internal: read more image data
For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
so libjpeg can finish decoding
_endedTs   )r   r   r   LOAD_TRUNCATED_IMAGEShasattrr   )r   
read_bytesrO   s      r   	load_readJpegImageFile.load_read  s>     GGLL$Y44WT8=T=T DKr   c                   [        U R                  5      S:w  a  g U R                  (       a  g U R                  S   u  p4pVSnU R                  nUS   S:X  a  US;   a
  Xl        US4nU(       a  [        U R                  S   US   -  U R                  S   US   -  5      nS H
  n	Xy:  d  M
    O   US   US   US   US   -
  W	-   S-
  U	-  US   -   US   US   -
  U	-   S-
  U	-  US   -   4nU R                  S   U	-   S-
  U	-  U R                  S   U	-   S-
  U	-  4U l        U	nX4XV4/U l        US4U l        SSUS   U-  US   U-  4n
U R                  U
4$ )	Nr   r   r]   )r\   YCbCrr   )r$   r   r   r   r   r[   )rn   r   decoderconfigrT   rl   minrh   r   )r   r   rT   deoascaleoriginal_sizerO   boxs              r   draftJpegImageFile.draft  s    tyy>Q YYq\
a		Q45=T^3JbA		!Q/1a1HIE!: " !!1!q1$*QqT11!q1$*QqT1	A  99Q<!+a/A5		!q8H18LQR7RSDJEA\N	#QZ!]1%-}Q/?%/GHyy#~r   c                .   [         R                  " 5       u  p[        R                  " U5        [        R                  R                  U R                  5      (       a$  [        R                  " SSX R                  /5        O$ [        R                  " U5        Sn[        U5      e [        R                  " U5       nUR                  5         UR                  U l        S S S 5         [        R                  " U5        U R                  R                   U l        U R                  R$                  U l        / U l        g ! [         a     Nf = f! , (       d  f       Ns= f! [         a     Nkf = f!  [        R                  " U5        f ! [         a     f f = f= f)Ndjpeg-outfilezInvalid Filename)tempfilemkstemposclosepathexistsfilename
subprocess
check_callunlinkOSError
ValueErrorr   openloadimr   rl   rT   rh   r   )r   fr   rr   _ims        r   
load_djpegJpegImageFile.load_djpeg  s%    ""$
77>>$--((!!7Jmm"LM		$ %CS/!	D!S
&& "		$ WW\\
WW\\
	'   "!  		$ sl   D: %E+ ;"E
E+ &E :
EE

EE+ 
E('E(+F-FF
FFFFc                    [        U 5      $ N)_getexifr   s    r   r  JpegImageFile._getexif  s    ~r   c                   SU R                   ;   d  SU R                   ;  a  g  U R                  5       nUS   nUS   n [        US   5      US   -  n[        R
                  " U5      (       a  Sn[        U5      eUS:X  a  US	-  nXD4U R                   S'   g ! [         a    Un NRf = f! [        R                  [        [        [        [        [        4 a    S
U R                   S'    g f = f)Nr&   r+   i(  i  r   r   zDPI is not a numberr[   gRQ@)H   r  )rC   getexiffloat	TypeErrormathisnanr  rL   rM   KeyErrorrj   ZeroDivisionError)r   r+   resolution_unitx_resolutionr&   rr   s         r   r   !JpegImageFile._read_dpi_from_exif  s    DIItyy!8	&<<>D"6lO<L#LO,|A> zz#+ o%!#t"xDIIe  #"# LL
 	&  &DIIe	&s5   B( B AB( B%"B( $B%%B( (=C('C(c                    [        U 5      $ r  )_getmpr  s    r   r  JpegImageFile._getmp  s    d|r   )r   rl   rh   r@   rA   ri   r   r   r   rI   r  rq   rk   r   r   N)r   intreturnbytes)r   z
str | NonerT   ztuple[int, int] | Noner!  z0tuple[str, tuple[int, int, float, float]] | None)r!  Noner!  zdict[str, Any] | None)__name__
__module____qualname____firstlineno__formatformat_descriptionr   r   r   r
  r  r   r  __static_attributes__r   r   r   r   r   G  sJ    F+3#j $$&<$	9$L>&:r   c                `    SU R                   ;  a  g U R                  5       R                  5       $ )Nr+   )rC   r  _get_merged_dictr  s    r   r  r    s&    TYY<<>**,,r   c           	          U R                   S   n[        R                  " U5      nUR	                  S5      nUS S S:X  a  SOSnSSKJn   UR                  U5      nUR                  UR                  5        UR                  U5        [        U5      n US
   n
/ n US   n[        SU
5       H  n[        R                   " U S3XS-  5      nSn[        [#        X5      5      n[%        US   S-  5      [%        US   S-  5      [%        US   S-  5      US   S-  S-	  US   S-  S-	  US   S-  S.nUS   S:X  a  SUS'   OSn	[        U	5      eSSS S!S"S#S$S%.nUR'                  US&   S'5      US&'   UUS'   UR)                  U5        M     XS'   U$ ! [         a     g f = f! [         a  nS	n	[        U	5      UeS nAff = f! [         a  nSn	[        U	5      UeS nAff = f! [         a  nS(n	[        U	5      UeS nAff = f))Nr>   r$   r   s   MM *><r   )TiffImagePluginz)malformed MP Index (unreadable directory)  z(malformed MP Index (no number of images)i  r   LLLHHrg   )	AttributeSize
DataOffsetEntryNo1EntryNo2r4  l        i   @i    i      i      i )DependentParentImageFlagDependentChildImageFlagRepresentativeImageFlagReservedImageDataFormatMPTyper?  r   z!unsupported picture format in MPO	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)r   i  i  i  i  i  i   r@  Unknownz!malformed MP Index (bad MP Entry))rC   r  ioBytesIOr   r   r1  ImageFileDirectory_v2seeknextr  dictrE   rj   rp   rL   unpack_fromzipboolgetrB   )r   rU   file_contentshead
endiannessr1  rC   r>   r   rr   quant	mpentriesrawmpentriesentrynumunpackedentrylabelsmpentrympentryattr	mptypemaps                      r   r  r    sj   yy JJt$Ma DRa$77SJ!&44T:499%		- $Z
&6

 I$&&zaH"..,e$lrMM QF3v56G,01E1Q,R+/0D0P+Q+/0D0P+Q$[1W="D$+K$8G$D#K!+.;K ,-217-.9!#&&%<@8:<5I %.MM+h2G$SK!#.GK W%= (> 6
 IA    &9#A%&  &8#A%&N  &1#A%&s[   F AF  G  C1G  
FF 
F=*F88F= 
G
GG 
G=*G88G=r\   r]   r   r   )1r\   r]   RGBXr^   r   )@r   r   r   r*   r4   r   r9     r   r   r#   re   rg      r,   *   r[   r$   r1            )   +   	   r<      r:     (   ,   5   r%             '   -   4   6         !   &   .   3   7   <      "   %   /   2   8   ;   =   #   $   0   1   9   :   >   ?   r   ))r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   c                    [        U S5      (       a  U R                  S;   a  gU R                  S   SS U R                  S   SS -   U R                  S   SS -   n[        R	                  US5      $ )Nrk   )r   r   r   r   r[   r   )r   rk   rq   	samplingsrL  )r  samplings     r   get_samplingr  k  sl     2x  BII$7xx{1Q"((1+a"22RXXa[15EEH==2&&r   c                T
   U R                   S:X  d  U R                  S:X  a  Sn[        U5      e [        U R                     nU R                  nUR                  SS5       Vs/ s H  n[        U5      PM     nnUR                  SS5      n	UR                  S	S5      n
UR                  S
5      nU	S:X  a  Sn	Sn
SnOU	[        ;   a/  [        U	   nSn	UR                  S	S5      n
UR                  S5      nO|[        U	[        5      (       d  Sn[        U5      eU
[        ;   a  [        U
   R                  S	S5      n
[        U[        5      (       a"  U[        ;   a  [        U   R                  S5      nU
S:X  a  Sn
OIU
S:X  a  Sn
O@U
S:X  a  Sn
O7U
S:X  a  Sn
O.U
S:X  a(  U R                  S:w  a  Sn[        U5      e[        U 5      n
S nUS:X  a*  U R                  S:w  a  Sn[        U5      e[!        U SS 5      nU" U5      nUR                  SS5      nSnUR                  S5      nU(       a  SnUU-
  n/ nU(       a"  UR#                  US U 5        UUS  nU(       a  M"  SnU HQ  n[%        SU-   ['        U5      -   5      nUSU-   S-   [)        U5      -   [)        ['        U5      5      -   U-   -  nUS-  nMS     UR                  SU R*                  R                  S5      5      nUR                  SS 5      =(       d    UR                  S!S 5      nUR                  S"S 5      nUR                  S#S5      n[        U[,        R.                  5      (       a  UR1                  5       n['        U5      U:  a  S$n[        U5      eU	UUR                  S%S5      UUR                  S&S 5      UR                  S'S5      US   US   U
UR                  S(S5      UR                  S)S5      UUUU4U l        SnU(       d  U(       a  U R                  S*:X  a#  S+U R4                  S   -  U R4                  S   -  nONU	S,:  d  U	S:X  a#  SU R4                  S   -  U R4                  S   -  nOU R4                  S   U R4                  S   -  nU(       a  U['        U5      S--   -  nU(       a  U['        U5      S-   -  nO%[7        U['        U5      S--   ['        U5      S-   5      n[8        R:                  " XS.SU R4                  -   SU4/U5        g ! [
         a!  nSU R                   S3n[        U5      UeS nAff = fs  snf )/Nr   z cannot write empty image as JPEGzcannot write mode z as JPEGr&   r   qualityr  subsamplingqtableskeepr   zInvalid quality settingz4:4:4z4:2:2r   z4:2:0r   z4:1:1r   z3Cannot use 'keep' when original image is not a JPEGc                   U c  U $ [        U [        5      (       a   U R                  5        VVs/ s H9  nUR                  SS5      S   R                  5         H  n[	        U5      PM     M;     nnn[        S[        U5      S5       Vs/ s H	  oCXDS-    PM     n n[        U [        [        [        45      (       a  [        U [        5      (       a.  [        [        U 5      5       Vs/ s H  owU ;   d  M
  X   PM     n nO [        U [        5      (       a  [        U 5      n S[        U 5      s=:  a  S:  d  O  Sn[        U5      e[        U 5       HF  u  p [        U	5      S:w  a  Sn[        U5      e[        R                  " SU	5      n	[        U	5      X'   MH     U $ g s  snnf s  snf ! [         a  nSn[        U5      UeS nAff = fs  snf ! [         a  nSn[        U5      UeS nAff = f)	N#r   r   ry   zInvalid quantization tabler   z$None or too many quantization tablesr{   )
isinstancestr
splitlinesrH   r   rp   rn   r  tuplelistrH  	enumerater  r}   )
r  linenumlinesrO   r   rr   keyidxtables
             r   validate_qtables_save.<locals>.validate_qtables  s   ?Ngs##
P !( 2 2 4 4#zz#q1!4::< H<  4   7<As5z26NO6NV,6NOgtT233'4((,1#g,,?,?S'>LGL,?   GU++w-G(q(< o%'0
	/5zR':'n,!KKU3E
 $(;GL 1 N+ 4 P	  -2 o1,- ! 16C$S/q01sS   F' A F/F' 
F"'	G4G3GF' '
G1F??G
G)G$$G)extrar   r   rf   r4   s   r2   rX   rc   Frd   optimizer+   zEXIF data is too longsmoothkeep_rgb
streamtyperestart_marker_blocksrestart_marker_rowsr^   r   _   r   r   )widthheightr  RAWMODEr   r  r  encoderinforL  roundr   r  r   r  r)  r  getattrrB   o16rn   r   rC   r   ExiftobytesencoderconfigrT   maxr   _save)r  r   r   rr   r   r   rC   xr&   r  r  r  presetr  r  MAX_BYTES_IN_MARKERrf   ICC_OVERHEAD_LENMAX_DATA_BYTES_IN_MARKERmarkersru   r   rT   rX   rc   r  r+   bufsizes                               r   r  r  y  s   	xx1}		Q0o""''"
 >>D!XXeV4
54584C
5hhy"%G((="-Khhy!G&	G	!jj3**^,%%'o'!!+.22="EKgs##7(:g&**>:Gg						 		99GCS/!"2&$L &99GCS/!"nd3w'GHHWc"E((=)K#69I#I NN;'@(@AB%&>&?@K k Fq++c&k9:D"# Q% S\"	#
 E FA  hhy"''++i"89G
 ((=%0RDHH]E4RKxx
E*H88FC D$

##||~
4y&&%o 	1U#q!AA(!,&*B, G;77f"''!*nrwwqz1G]gm"''!*nrwwqz1Gggaj2771:-Gs4y1}$Gs5zA~%G gs4y1}c%j1n=OOBffrww&67CDgN[  ""277)84cl!" 6s   S7 "T%7
T"TT"c                    U R                  5       n[        R                  " SSX#/5         [        R                  " U5        g ! [
         a     g f = f)Ncjpegr   )_dumpr   r  r   r  r  )r  r   r   r   s       r   _save_cjpegr  0  sE    xxzH7JCD
		( s   A 
AAc                >   [        X5      n UR                  5       nUS   S:  a>  UR                   H  u  pEUS:X  d  M  SU;   d  M  Us  $    SSKJn  UR                  X#5      nU$ ! [        [        4 a     U$ [         a    [        R                  " S5         U$ f = f)Nr2  r   r   s    hdrgm:Version=")MpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)r   r  rA   MpoImagePluginr  adoptr  rN   rj   warningswarn)r   r   r  mpheadersegmentcontentr  s          r   jpeg_factoryr  <  s    	r	$B
99;E?Q$&JJ f$)<)GI %/
 5 ##B1B I z"  I  
.	
 I
s(   .A& A& A& A& &B9BB)z.jfifz.jpez.jpgz.jpegz
image/jpeg)r   r   r   r   r!  r#  )r   r"  r!  rK  r$  )r  zImage.Imager   z	IO[bytes]r   zstr | bytesr!  r#  )NN)1
__future__r   r}   rC  r  r   rL   r   r~   r   r  typingr   r   r   r   r   _binaryr	   r   r
   rK   r   r   r  JpegPresetsr   r   rV   rY   rw   r   r   r   r   r  r  r  r   r  r  r  r  r  register_openr)  register_saveregister_extensionsregister_mimer   r   r   <module>r     sR  D #  	  	   
     ! !  !  %
c7L$-?`6@

V^S)@

V.4@
 V&,@
 V'-	@

 U*D1@
 V2C8@
 V3S9@
 V+S1@
 &@
 V3S9@
 W,c2@
 W137@
 U;TB@
 W8#>@
 W93?@
  W137!@
" '#@
$ '%@
& ''@
( ')@
* '+@
, '-@
. '/@
0 '1@
2 +3@
4 )5@
6 UOT*7@
8 U/59@
: U,d3;@
< U-t4=@
> U5s;?@
@ U0$7A@
B V,c2C@
D V,c2E@
F V,c2G@
H V,c2I@
J V,c2K@
L V,c2M@
N V,c2O@
P V,c2Q@
R V,c2S@
T V,c2U@
V W.4W@
X W.4Y@
Z W.4[@
\ W.4]@
^ W.4_@
` W.4a@
b )c@
d )e@
f )g@
h *))))))++++Is#@
F)oI'' od-I` 
		 	'tOn8   M((, @   M((% 0   -..0R S   M((, 7r   