Ë
    ™2Úi£r  ã                   ó\  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ d	„ Zd
„ Zd„ Zd„ Zd„ Zi dddef“dddef“dddef“dddef“dddef“dddef“d d!d"ef“d#d$d%ef“d&d'“d(d)d*ef“d+d,d-ef“d.d/d0ef“d1d2d3ef“d4d5d6ef“d7d8d9ef“d:d;d<ef“d=d>“i d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdRdSef“dTdUdVef“dWdXdYef“dZd[d\ef“d]d^d_ef“d`dadbef“dcdddeef“dfdgdhef“¥i didjdkef“dldmdnef“dodpdqef“drdsdtef“dudvdwef“dxdydzef“d{d|d}ef“d~dd€ef“d�d‚dƒef“d„d…d†ef“d‡dˆd‰ef“dŠd‹dŒef“d�dŽd�ef“d�d‘d’ef“d“d”“d•d–“d—d˜“¥d™dšd›dœd�dždŸd d¡d¢d£d¤d¥efd¦œ¥Zd§„ Z G d¨„ d©ej                  «      Zdª„ Zd«„ Zd¬d¬d­d­d®d¯d°œZ d±Z!d dd²d³œZ"d´„ Z#dµ„ Z$d¶„ Z%dºd·„Z& e
jN                  ejP                  e&e«        e
jR                  ejP                  e$«        e
jT                  ejP                  g d¸¢«        e
jV                  ejP                  d¹«       y)»é    Né   )ÚImageÚ	ImageFile)Úi16be)Úi32be)Úo8)Úo16be)Úpresetsc                 ó’   — t        | j                  j                  d«      «      dz
  }t        j                  | j                  |«       y )Né   )Úi16ÚfpÚreadr   Ú
_safe_read)ÚselfÚmarkerÚns      úJ/var/www/html/acx/venv/lib/python3.12/site-packages/PIL/JpegImagePlugin.pyÚSkipr   7   s1   € ÜˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜Ÿ™ !Õ$ó    c                 ó*  — t        | j                  j                  d«      «      dz
  }t        j                  | j                  |«      }d|dz  z  }|| j
                  |<   | j                  j                  ||f«       |dk(  rŽ|d d dk(  r†t        |d«      x| j                  d<   }t        |d	«      | j                  d
<   	 |d   }t        |d«      t        |d«      f}|dk(  r|| j                  d<   || j                  d<   || j                  d<   �n÷|dk(  rM|d d dk(  rEd| j                  v�rÛ|| j                  d<   | j                  j                  «       |z
  dz   | _        �n¥|dk(  r|d d dk(  r|| j                  d<   �n‡|dk(  r%|d d dk(  r| j                  j                  |«       �n]|dk(  rÐ|d d dk(  rÈd}| j                  j                  di «      }	|||dz    dk(  �r&	 |dz  }t        ||«      }
|dz  }||   }|d|z   z  }||dz  z  }t        ||«      }|dz  }||||z    }|
d k(  r5t        |d!«      d"z  t        |d«      t        |d«      d"z  t        |d«      d#œ}||	|
<   ||z  }||dz  z  }|||dz    dk(  rŒ�nˆ|d$k(  r7|d d d%k(  r/t        |d«      | j                  d&<   	 |d'   }|| j                  d(<   nL|dk(  rG|d d d)k(  r?|dd  | j                  d*<   | j                  j                  «       |z
  dz   | j                  d+<   d| j                  vrvd| j                  v rg	 | j'                  «       }|d,   }|d-   }	 t)        |d!   «      |d   z  }t-        j.                  |«      rt0        ‚|d.k(  r|d/z  }||f| j                  d<   y y y # t        $ r Y Œ�w xY w# t         j"                  $ r Y Œ©w xY w# t$        $ r Y Œ¸w xY w# t*        $ r |}Y Œ}w xY w# t         j"                  t2        t4        t*        t0        t6        f$ r d0| j                  d<   Y y w xY w)1Nr   zAPP%dé   éàÿ  é   s   JFIFé   Újfifé   Újfif_versioné   é   é
   r   ÚdpiÚ	jfif_unitÚjfif_densityéáÿ  s   Exif Úexifé   éâÿ  s   FPXR Úflashpixé   ó   ICC_PROFILE éíÿ  é   s   Photoshop 3.0 Ú	photoshops   8BIMií  r   i   )ÚXResolutionÚDisplayedUnitsXÚYResolutionÚDisplayedUnitsYéîÿ  s   AdobeÚadobeé   Úadobe_transforms   MPF ÚmpÚmpoffseti(  i  é   gR¸…ëQ@)éH   r:   )r   r   r   r   r   ÚappÚapplistÚappendÚinfoÚdivmodÚ	ExceptionÚtellÚ_exif_offsetÚicclistÚ
setdefaultÚi32ÚstructÚerrorÚ
IndexErrorÚgetexifÚfloatÚ	TypeErrorÚmathÚisnanÚ
ValueErrorÚKeyErrorÚSyntaxErrorÚZeroDivisionError)r   r   r   Úsr;   Úversionr#   r$   Úoffsetr.   ÚcodeÚname_lenÚsizeÚdatar6   r&   Úresolution_unitÚx_resolutionr"   s                      r   ÚAPPr[   <   sr  € ô
 	ˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜TŸW™W aÓ(€Aà
�V˜b‘[Ñ
!€Cà€D‡H�HˆS�MØ‡L�L×Ñ˜˜a˜Ô!à�Ò˜A˜b˜q˜E WÒ,ä&)¨!¨Q£iÐ/ˆ�	‰	�&Ñ˜GÜ$*¨7°CÓ$8ˆ�	‰	�.Ñ!ð		5Ø˜!™ˆIÜ˜q !›9¤c¨!¨R£jÐ0ˆLð ˜AŠ~Ø#/�—	‘	˜%Ñ Ø%.ˆD�I‰I�kÑ"Ø(4ˆD�I‰I�nÓ%Ø	�6Ò	˜a  ˜e yÒ0Ø˜Ÿ™Ò"à !ˆD�I‰I�fÑØ $§¡§¡£°Ñ 2°QÑ 6ˆDÖØ	�6Ò	˜a  ˜e yÒ0à !ˆ�	‰	�*ÓØ	�6Ò	˜a  ˜fÐ(8Ò8ð 	�‰×Ñ˜AÖØ	�6Ò	˜a  ˜fÐ(<Ò<àˆØ—I‘I×(Ñ(¨°bÓ9ˆ	Ø�˜ !™Ð$¨Ó/ðØ˜!‘�ä˜1˜f“~�Ø˜!‘�à˜V™9�à˜!˜h™,Ñ&�Ø˜& 1™*Ñ$�ä˜1˜f“~�Ø˜!‘�Ø˜ &¨4¡-Ð0�Ø˜6’>ä'*¨4°£|°eÑ';Ü+.¨t°Q«<Ü'*¨4°£|°eÑ';Ü+.¨t°R«=ñ	�Dð #'�	˜$‘Ø˜$‘�Ø˜& 1™*Ñ$�ð1 �˜ !™Ð$¨Ô/ð8 
�6Ò	˜a  ˜e xÒ/Ü   A›Yˆ�	‰	�'Ñð	;Ø ™eˆOð ,;ˆD�I‰IÐ'Ò(Ø	�6Ò	˜a  ˜e xÒ/à˜A˜B˜%ˆ�	‰	�$‰ð !%§¡§¡£°Ñ 2°QÑ 6ˆ�	‰	�*Ñð �D—I‘IÑ &¨D¯I©IÑ"5ð	&Ø—<‘<“>ˆDØ" 6™lˆOØ ™<ˆLð#Ü˜L¨™OÓ,¨|¸A©Ñ>�ô �z‰z˜#ŒÜ Ð Ø !Ò#à�t‘�Ø" C˜xˆD�I‰I�eÒð #6Ðøô[ ò 	Ùð	ûôr —<‘<ò Ùðûô ò 	Ùð	ûô& ò #Ø"’ð#ûô �L‰LÜÜÜÜÜð
ò 	&ð  &ˆD�I‰I�eÓð	&úsm   Â>N Ç!BN Ê%N3 Ì#O Ì>O Í6O Î	NÎNÎN0Î/N0Î3	N?Î>N?ÏOÏO ÏOÏO Ï<PÐPc                 ó  — t        | j                  j                  d«      «      dz
  }t        j                  | j                  |«      }|| j
                  d<   || j                  d<   | j                  j                  d|f«       y )Nr   ÚcommentÚCOM)	r   r   r   r   r   r>   r;   r<   r=   )r   r   r   rR   s       r   r^   r^   ½   sf   € ô 	ˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜TŸW™W aÓ(€Aà€D‡I�IˆiÑØ€D‡H�HˆU�OØ‡L�L×Ñ˜ ˜
Õ#r   c                 ó2  — t        | j                  j                  d«      «      dz
  }t        j                  | j                  |«      }t        |d«      t        |d«      f| _        |d   | _        | j                  dk7  rd| j                  › d�}t        |«      ‚|d   | _        | j                  dk(  rd	| _	        nI| j                  dk(  rd
| _	        n2| j                  dk(  rd| _	        nd| j                  › d�}t        |«      ‚|dv rdx| j                  d<   | j                  d<   | j                  r“| j                  j                  «        | j                  d   d   t        | j                  «      k(  r9g }| j                  D ]  }|j                  |dd  «       Œ dj                  |«      }nd }|| j                  d<   g | _        t!        dt        |«      d«      D ];  }|||dz    }	| j"                  j                  |	d   |	d   dz  |	d   dz  |	d   f«       Œ= y )Nr   r9   r   r   r    zcannot handle z-bit layersr   ÚLÚRGBr   ÚCMYKz-layer images)éÂÿ  éÆÿ  éÊÿ  éÎÿ  ÚprogressiveÚprogressioné   r-   r   Úicc_profiler'   é   r   )r   r   r   r   r   Ú_sizeÚbitsrP   ÚlayersÚ_moder>   rC   ÚsortÚlenr=   ÚjoinÚrangeÚlayer)
r   r   r   rR   ÚmsgÚprofileÚprj   ÚiÚts
             r   ÚSOFrz   È   së  € ô 	ˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜TŸW™W aÓ(€AÜ�Q˜“œC  1›IÐ%€D„Jà�!‘€D„IØ‡y�y�A‚~Ø˜tŸy™y˜k¨Ð5ˆÜ˜#ÓÐà�A‘$€D„KØ‡{�{�aÒØˆ�
Ø	�‰˜Ò	Øˆ�
Ø	�‰˜Ò	Øˆ�
à˜tŸ{™{˜m¨=Ð9ˆÜ˜#ÓÐàÐ1Ñ1Ø>?Ð?ˆ�	‰	�-Ñ  4§9¡9¨]Ñ#;à‡|‚|à�‰×ÑÔØ�<‰<˜‰?˜2Ñ¤# d§l¡lÓ"3Ò3ØˆGØ—\‘\ò '�Ø—‘˜q  ˜vÕ&ð'àŸ(™( 7Ó+‰KàˆKØ#.ˆ�	‰	�-Ñ ØˆŒä�1”c˜!“f˜aÓ ò ?ˆØˆa�!�a‘%ˆLˆà�
‰
×Ñ˜1˜Q™4  1¡¨¡¨Q¨q©T°B©Y¸¸!¹Ð=Õ>ñ?r   c                 ó  — t        | j                  j                  d«      «      dz
  }t        j                  | j                  |«      }t        |«      rµ|d   }|dz  dk(  rdnd}d|dz  z   }t        |«      |k  rd}t        |«      ‚t        j                  |dk(  rdnd|d| «      }t        j                  d	k(  r|dkD  r|j                  «        t        D �	cg c]  }	||	   ‘Œ	 c}	| j                  |d
z  <   ||d  }t        |«      rŒ´y y c c}	w )Nr   r   rk   r   é@   zbad quantization table markerÚBÚHÚlittler   )r   r   r   r   r   rq   rP   ÚarrayÚsysÚ	byteorderÚbyteswapÚzigzag_indexÚquantization)
r   r   r   rR   ÚvÚ	precisionÚ	qt_lengthru   rX   rx   s
             r   ÚDQTr‰   ú   sö   € ô 	ˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜TŸW™W aÓ(€AÜ
ˆaŒ&Øˆa‰DˆØ˜r™' Qš,‘A¨Qˆ	Ø˜	 B™Ñ&ˆ	Üˆq‹6�IÒØ1ˆCÜ˜cÓ"Ð"Ü�{‰{ )¨q¢.™3°c¸1¸Q¸y¸>ÓJˆÜ�=‰=˜HÒ$¨°QªØ�M‰MŒOÜ6BÖ$C° T¨!£WÒ$Cˆ×Ñ˜!˜b™&Ñ!ØˆiˆjˆMˆô ˆa�&ùò %Ds   ÃD	iÀÿ  ÚSOF0zBaseline DCTiÁÿ  ÚSOF1zExtended Sequential DCTrc   ÚSOF2zProgressive DCTiÃÿ  ÚSOF3zSpatial losslessiÄÿ  ÚDHTzDefine Huffman tableiÅÿ  ÚSOF5zDifferential sequential DCTrd   ÚSOF6zDifferential progressive DCTiÇÿ  ÚSOF7zDifferential spatialiÈÿ  )ÚJPGÚ	ExtensionNiÉÿ  ÚSOF9zExtended sequential DCT (AC)re   ÚSOF10zProgressive DCT (AC)iËÿ  ÚSOF11zSpatial lossless DCT (AC)iÌÿ  ÚDACz%Define arithmetic coding conditioningiÍÿ  ÚSOF13z Differential sequential DCT (AC)rf   Ú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 12r,   ÚAPP13zApplication segment 13r3   Ú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 13Nr^   ÚComment)ióÿ  iôÿ  iõÿ  iöÿ  i÷ÿ  iøÿ  iùÿ  iúÿ  iûÿ  iüÿ  éýÿ  iþÿ  c                 ó   — | d d dk(  S )Nr9   s   ÿØÿ© )Úprefixs    r   Ú_acceptrÎ   X  s   € à�"�1ˆ:˜Ñ(Ð(r   c                   ó>   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚJpegImageFileÚJPEGzJPEG (ISO 10918)c                 óú  — | j                   j                  d«      }t        |«      sd}t        |«      ‚d}dx| _        | _        g | _        i | _        i | _        i | _	        i | _
        g | _        g | _        	 |d   }|dk(  r*|| j                   j                  d«      z   }t        |«      }n| j                   j                  d«      }ŒQ|t        v rrt        |   \  }}}|�	 || |«       |dk(  r9| j                  }| j                  dk(  rd	}d
d| j                   z   d|dffg| _        y | j                   j                  d«      }n;|dk(  s|dk(  rd}n.|dk(  r| j                   j                  d«      }nd}t        |«      ‚�Œ)Nr9   znot a JPEG fileó   ÿr   éÿ   r   r¥   rb   úCMYK;IÚjpeg©r   r   Ú iÿÿ  i ÿ  zno marker found)r   r   rÎ   rP   rm   rn   rt   Ú
huffman_dcÚ
huffman_acr…   r;   r<   rC   r   ÚMARKERÚmoderW   Útile)r   rR   ru   rx   ÚnameÚdescriptionÚhandlerÚrawmodes           r   Ú_openzJpegImageFile._opene  sv  € Ø�G‰G�L‰L˜‹Oˆä�qŒzØ#ˆCÜ˜cÓ"Ð"Øˆð #$Ð#ˆŒ	�D”Kð ˆŒ
ØˆŒØˆŒØˆÔØˆŒØˆŒØˆŒàØ�!‘ˆAØ�DŠyØ˜Ÿ™Ÿ™ Q›Ñ'�Ü˜“F‘ð —G‘G—L‘L “O�Øà”F‰{Ü-3°A©YÑ*��k 7ØÐ&Ù˜D !Ô$Ø˜’;Ø"Ÿi™i�GØ—y‘y FÒ*Ø"*˜Ø"(¨&°4·9±9Ñ*<¸aÀ'È2ÀÐ!OÐ P�D”IàØ—G‘G—L‘L “O‘Ø�a’˜1 š;à‘Ø�f’Ø—G‘G—L‘L “O‘à'�Ü! #Ó&Ð&ñ; r   c                 óˆ   — | j                   j                  |«      }|s$t        j                  rt	        | d«      sd| _        y|S )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_bytesrR   s      r   Ú	load_readzJpegImageFile.load_read˜  s;   € ð �G‰G�L‰L˜Ó$ˆá”Y×4Ò4¼WÀTÈ8Ô=Tð ˆDŒKØàˆr   c                 ó”  — t        | j                  «      dk7  ry | j                  ry | j                  d   \  }}}}d}| j                  }|d   dk(  r|dv r|| _        |df}|r³t        | j                  d   |d   z  | j                  d   |d   z  «      }dD ]	  }	||	k\  sŒ	 n |d   |d   |d   |d   z
  	z   dz
  |	z  |d   z   |d   |d   z
  |	z   dz
  |	z  |d   z   f}| j                  d   |	z   dz
  |	z  | j                  d   |	z   dz
  |	z  f| _        |	}||||fg| _        |df| _        dd|d   |z  |d   |z  f}
| j                  |
fS )	Nr   r   ra   )r`   ÚYCbCrrØ   )r    r   r   r   r   r9   )rq   rÝ   ÚdecoderconfigrW   ro   Úminrl   rÜ   )r   rÜ   rW   ÚdÚeÚoÚaÚscaleÚoriginal_sizerR   Úboxs              r   ÚdraftzJpegImageFile.draft¨  s¤  € Üˆt�y‰y‹>˜QÒØð ×ÒØà—Y‘Y˜q‘\‰
ˆˆ1ˆa�ØˆØŸ	™	ˆàˆQ‰4�5Š=˜T ^Ñ3ØˆDŒJØ�b�ˆAáÜ˜Ÿ	™	 !™¨¨Q©Ñ/°·±¸1±ÀÀaÁÑ1HÓIˆEØ!ò �Ø˜A“:Ùðð �!‘Ø�!‘Ø�1‘˜˜!™‘˜q‘ 1Ñ$¨Ñ*¨Q¨q©TÑ1Ø�1‘˜˜!™‘˜q‘ 1Ñ$¨Ñ*¨Q¨q©TÑ1ð	ˆAð  Ÿ9™9 Q™<¨!Ñ+¨aÑ/°AÑ5¸¿	¹	À!¹ÀqÑ8HÈ1Ñ8LÐQRÑ7RÐSˆDŒJØˆEà˜˜A˜q�\�NˆŒ	Ø# Q˜ZˆÔà�!�] 1Ñ%¨Ñ-¨}¸QÑ/?À%Ñ/GÐHˆØ�y‰y˜#ˆ~Ðr   c                 ó
  — t        j                  «       \  }}t        j                  |«       t        j                  j                  | j                  «      r$t        j                  dd|| j                  g«       n#	 t        j                  |«       d}t        |«      ‚	 t        j                  |«      5 }|j                  «        |j                  | _        d d d «       	 t        j                  |«       | j                  j                   | _        | j                  j$                  | _        g | _        y # t        $ r Y Œ¬w xY w# 1 sw Y   ŒlxY w# t        $ r Y Œdw xY w# 	 t        j                  |«       w # t        $ r Y w w xY wxY w)NÚdjpegú-outfilezInvalid Filename)ÚtempfileÚmkstempÚosÚcloseÚpathÚexistsÚfilenameÚ
subprocessÚ
check_callÚunlinkÚOSErrorrN   r   ÚopenÚloadÚimrÜ   ro   rW   rl   rÝ   )r   Úfrü   ru   Ú_ims        r   Ú
load_djpegzJpegImageFile.load_djpegÌ  s-  € ô ×"Ñ"Ó$‰ˆˆ4Ü
�‰�ŒÜ�7‰7�>‰>˜$Ÿ-™-Ô(Ü×!Ñ! 7¨J¸¸d¿m¹mÐ"LÕMðÜ—	‘	˜$”ð %ˆCÜ˜S“/Ð!ð	Ü—‘˜DÓ!ð ! SØ—‘”
ØŸ&™&�”÷!ðÜ—	‘	˜$”ð —W‘W—\‘\ˆŒ
Ø—W‘W—\‘\ˆŒ
àˆ�	øô' ò Ùðú÷!ð !ûô ò ÙðûðÜ—	‘	˜$•øÜò Ùðýsl   Á;D1 ÂE Â3"E ÃE ÃE Ä1	D=Ä<D=Å E	ÅE Å	EÅEÅFÅE3Å2FÅ3	E?Å<FÅ>E?Å?Fc                 ó   — t        | «      S ©N)Ú_getexif©r   s    r   r  zJpegImageFile._getexifë  s   € Ü˜‹~Ðr   c                 ó   — t        | «      S r
  )Ú_getmpr  s    r   r  zJpegImageFile._getmpî  s   € Ü�d‹|Ðr   c                 ó˜   — | j                   D ]:  \  }}|dk(  sŒ|j                  d«      dd \  }}|dk(  sŒ)| j                  |«      c S  i S )z™
        Returns a dictionary containing the XMP tags.
        Requires defusedxml to be installed.

        :returns: XMP tags in a dictionary.
        r¬   ó    Nr   s   http://ns.adobe.com/xap/1.0/)r<   ÚsplitÚ_getxmp)r   ÚsegmentÚcontentr   Úxmp_tagss        r   ÚgetxmpzJpegImageFile.getxmpñ  s]   € ð !%§¡ò 	2ÑˆG�WØ˜&Ó Ø#*§=¡=°Ó#9¸"¸1Ð#=Ñ �˜ØÐ<Ó<ØŸ<™<¨Ó1Ò1ð		2ð
 ˆ	r   N)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrâ   rè   rô   r  r  r  r  rÌ   r   r   rÐ   rÐ   a  s2   „ Ø€FØ+Ðò1'òfò "òHò>òór   rÐ   c                 ó\   — d| j                   vry | j                  «       j                  «       S )Nr&   )r>   rI   Ú_get_merged_dictr  s    r   r  r    s&   € Ø�T—Y‘YÑØØ�<‰<‹>×*Ñ*Ó,Ð,r   c           	      óò  — 	 | j                   d   }t        j                  |«      }|j	                  d«      }|d d dk(  rdnd}ddlm} 	 |j                  |«      }|j                  |j                  «       |j                  |«       t        |«      }	 |d
   }
g }	 |d   }t        d|
«      D ]×  }t        j                   |› d�||dz  «      }d}t        t#        ||«      «      }t%        |d   dz  «      t%        |d   dz  «      t%        |d   dz  «      |d   dz  dz	  |d   dz  dz	  |d   dz  dœ}|d   dk(  rd|d<   nd}	t        |	«      ‚ddd d!d"d#d$d%œ}|j'                  |d&   d'«      |d&<   ||d<   |j)                  |«       ŒÙ ||d<   |S # t        $ r Y y w xY w# t        $ r}d	}	t        |	«      |‚d }~ww xY w# t        $ r}d}	t        |	«      |‚d }~ww xY w# t        $ r}d(}	t        |	«      |‚d }~ww xY w))Nr7   r    r   s   MM *ú>ú<r   )ÚTiffImagePluginz)malformed MP Index (unreadable directory)é°  z(malformed MP Index (no number of images)i°  r   ÚLLLHHrk   )Ú	AttributeÚSizeÚ
DataOffsetÚEntryNo1ÚEntryNo2r$  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   r0  ÚUnknownz!malformed MP Index (bad MP Entry))r>   rO   ÚioÚBytesIOr   rØ   r!  ÚImageFileDirectory_v2ÚseekÚnextr  Údictr@   rP   rs   rF   Úunpack_fromÚzipÚboolÚgetr=   )r   rX   Úfile_contentsÚheadÚ
endiannessr!  r>   r7   rî   ru   ÚquantÚ	mpentriesÚrawmpentriesÚentrynumÚunpackedentryÚlabelsÚmpentryÚmpentryattrÚ	mptypemaps                      r   r  r    su  € ðØ�y‰y˜‰ˆô —J‘J˜tÓ$€MØ×Ñ˜aÓ €DØ˜R˜a˜Ð$7Ò7‘¸S€Jå!ð&Ø×4Ñ4°TÓ:ˆØ×Ñ˜4Ÿ9™9Ô%Ø�	‰	�-Ô Ü�$‹Zˆð
&Ø�6‘
ˆð
 €Ið$&Ø˜&‘zˆÜ˜a ›ò 	&ˆHÜ"×.Ñ.Ø�,˜eÐ$ l°H¸r±MóˆMð QˆFÜœ3˜v }Ó5Ó6ˆGä,0°¸Ñ1EÈÑ1QÓ,RÜ+/°¸Ñ0DÈÑ0PÓ+QÜ+/°¸Ñ0DÈÑ0PÓ+QØ$ [Ñ1°WÑ=À"ÑDØ$+¨KÑ$8¸GÑ$DÈÑ#KØ! +Ñ.°Ñ;ñˆKð Ð,Ñ-°Ò2Ø17�Ð-Ò.à9�Ü! #Ó&Ð&à%Ø<Ø@Ø8Ø:Ø<Ø5ñˆIð %.§M¡M°+¸hÑ2GÈÓ$SˆK˜Ñ!Ø#.ˆG�KÑ Ø×Ñ˜WÕ%ð=	&ð> ˆˆ6‰
ð €IøôA ò Ùðûô ò &Ø9ˆÜ˜#Ó AÐ%ûð&ûô ò &Ø8ˆÜ˜#Ó AÐ%ûð&ûôN ò &Ø1ˆÜ˜#Ó AÐ%ûð&ús[   ‚F Á
AF ÂF; ÂC0G Æ	FÆFÆ	F8Æ%F3Æ3F8Æ;	GÇGÇGÇ	G6Ç#G1Ç1G6r`   ra   rÕ   rê   )Ú1r`   ra   ÚRGBXrb   rê   )@r   r   r   r'   r-   r   r)  é   r   r   r   ri   rk   é   é   é*   r9   r    r*   é   é   é   é)   é+   é	   r5   é   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                 óÔ   — t        | d«      r| j                  dv ry| j                  d   dd | j                  d   dd z   | j                  d   dd z   }t        j	                  |d«      S )Nrn   )r   r   éÿÿÿÿr   r   r9   r   )ræ   rn   rt   Ú	samplingsr<  )r  Úsamplings     r   Úget_samplingr}  s  si   € ô �2�xÔ  B§I¡I°Ñ$7ØØ�x‰x˜‰{˜1˜QÐ "§(¡(¨1¡+¨a°Ð"2Ñ2°R·X±X¸a±[ÀÀ1Ð5EÑE€HÜ�=‰=˜ 2Ó&Ð&r   c                 óH	  — | j                   dk(  s| j                  dk(  rd}t        |«      ‚	 t        | j                     }| j                  }|j                  dd«      D �cg c]  }t        |«      ‘Œ }}|j                  dd«      }	|j                  d	d«      }
|j                  d
«      }|	dk(  rd}	d}
d}n¥|	t        v r/t        |	   }d}	|j                  d	d«      }
|j                  d«      }nnt        |	t        «      sd}t        |«      ‚|
t        v rt        |
   j                  d	d«      }
t        |t        «      r |t        v rt        |   j                  d«      }|
dk(  rd}
nD|
dk(  rd}
n<|
dk(  rd}
n4|
dk(  rd}
n,|
dk(  r'| j                  dk7  rd}t        |«      ‚t        | «      }
d„ }|dk(  r)| j                  dk7  rd}t        |«      ‚t!        | dd «      } ||«      }|j                  dd«      }d}|j                  d«      }|r~d}||z
  }g }|r|j#                  |d | «       ||d  }|rŒd}|D ]P  }t%        d|z   t'        |«      z   «      }|d|z   dz   t)        |«      z   t)        t'        |«      «      z   |z   z  }|dz  }ŒR |j                  d| j*                  j                  d«      «      }|j                  dd «      xs |j                  d!d «      }|j                  d"d «      }|j                  d#d«      }t        |t,        j.                  «      r|j1                  «       }t'        |«      |kD  rd$}t        |«      ‚|	||j                  d%d«      ||j                  d&d«      |d   |d   |
||||f| _        d}|s|r¥| j                  d'k(  r#d(| j4                  d   z  | j4                  d   z  }nL|	d)k\  s|	dk(  r#d| j4                  d   z  | j4                  d   z  }n| j4                  d   | j4                  d   z  }|r|t'        |«      d*z   z  }|r7|t'        |«      dz   z  }n%t7        |t'        |«      d*z   t'        |«      dz   «      }t9        j:                  | |d+d| j4                  z   d|fg|«       y # t
        $ r!}d| j                  › d�}t        |«      |‚d }~ww xY wc c}w ),Nr   z cannot write empty image as JPEGzcannot write mode z as JPEGr"   r×   Úqualityrz  Ú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                 ó~  — | €| S t        | t        «      rz	 | j                  «       D ��cg c]5  }|j                  dd«      d   j                  «       D ]  }t	        |«      ‘Œ Œ7 }}}t        dt        |«      d«      D �cg c]
  }|||dz    ‘Œ } }t        | t        t        t        f«      rÆt        | t        «      r*t        t        | «      «      D �cg c]  }|| v sŒ| |   ‘Œ } }nt        | t        «      rt        | «      } dt        | «      cxk  rdk  sn d}t        |«      ‚t        | «      D ]>  \  }}		 t        |	«      dk7  rt        ‚t        j                  d|	«      }	t        |	«      | |<   Œ@ | S y c c}}w c c}w # t        $ r}d}t        |«      |‚d }~ww xY wc c}w # t        $ r}d}t        |«      |‚d }~ww xY w)	Nú#r   r   r|   zInvalid quantization tabler   z$None or too many quantization tablesr~   )Ú
isinstanceÚstrÚ
splitlinesr  Úintrs   rq   rN   ÚtupleÚlistr8  Ú	enumeraterK   r€   )
r�  ÚlineÚnumÚlinesrR   rî   ru   ÚkeyÚidxÚtables
             r   Úvalidate_qtablesz_save.<locals>.validate_qtables¶  sÎ  € Øˆ?ØˆNÜ�gœsÔ#ð
Pð !(× 2Ñ 2Ó 4÷àØ#Ÿz™z¨#¨qÓ1°!Ñ4×:Ñ:Ó<òð ô ˜•HðØð�ñ ô 7<¸A¼sÀ5»zÈ2Ó6NÖO°˜5  Q¨¡VÒ,ÐO�ÐOÜ�g¤¤t¬TÐ2Ô3Ü˜'¤4Ô(ä,1´#°g³,Ó,?öØ%(À3È'Â>�G˜C“Lð�ñ ô ˜G¤UÔ+Ü˜w›-�Øœ˜G›Ô( qÔ(Ø<�Ü  “oÐ%Ü'¨Ó0ò 	/‘
��Uð/Ü˜5“z RÒ'Ü'˜Ü!ŸK™K¨¨UÓ3�Eô
 $(¨£;�G˜C’Lð	/ð ˆNð) 4ùóùò Pøô	 ò -Ø2�Ü  “o¨1Ð,ûð-üòøô !ò 1Ø6�CÜ$ S›/¨qÐ0ûð1úsR   –E< ©:E1Á#E< Á>E7Ã	FÃFÄ4*F Å1E< Å<	FÆFÆFÆ 	F<Æ)F7Æ7F<Úextrar   rÊ   rj   r-   s   ÿâr+   r]   rg   Frh   Úoptimizer&   zEXIF data is too longÚsmoothÚ
streamtyperb   r   é_   r   rÖ   )ÚwidthÚheightrN   ÚRAWMODErÜ   rO   r  Úencoderinfor<  Úroundr
   r…  rˆ  r†  r  r}  Úgetattrr=   Úo16rq   r   r>   r   ÚExifÚtobytesÚencoderconfigrW   Úmaxr   Ú_save)r  r   rþ   ru   rá   rî   r>   Úxr"   r  r€  r�  Úpresetr’  r“  ÚMAX_BYTES_IN_MARKERrj   ÚICC_OVERHEAD_LENÚMAX_DATA_BYTES_IN_MARKERÚmarkersrx   r   rW   r]   rg   r”  r&   Úbufsizes                               r   r£  r£  �  sÔ  € Ø	‡x�x�1‚}˜Ÿ	™	 QšØ0ˆÜ˜‹oÐð"Ü˜"Ÿ'™'Ñ"ˆð
 �>‰>€Dà!ŸX™X e¨VÓ4Ö
5˜Œ5��8Ð
5€CÐ
5à�h‰h�y "Ó%€GØ—(‘(˜=¨"Ó-€KØ�h‰h�yÓ!€Gà�&ÒØˆØˆØ‰Ø	”GÑ	Ü˜Ñ!ˆØˆØ—j‘j °Ó3ˆØ—*‘*˜^Ó,‰Ü˜¤Ô%Ø'ˆÜ˜‹oÐàœ'Ñ!Ü! +Ñ.×2Ñ2°=À"ÓEˆKÜ�gœsÔ#¨´7Ñ(:Ü˜gÑ&×*Ñ*¨>Ó:ˆGà�gÒØ‰Ø	˜Ò	Ø‰Ø	˜Ò	Ø‰Ø	˜Ò	ð ‰Ø	˜Ò	Ø�9‰9˜ÒØGˆCÜ˜S“/Ð!Ü" 2Ó&ˆò#ðJ �&ÒØ�9‰9˜ÒØGˆCÜ˜S“/Ð!Ü˜"˜n¨dÓ3ˆÙ˜wÓ'€Gà�H‰H�W˜cÓ"€EàÐØ—(‘(˜=Ó)€KÙØÐØ#6Ð9IÑ#IÐ ØˆÙØ�N‰N˜;Ð'@Ð(@ÐAÔBØ%Ð&>Ð&?Ð@ˆKò ð ˆØò 
	ˆFÜ�qÐ+Ñ+¬c°&«kÑ9Ó:ˆDØØØñà"ñ#ô �Q“%ñô ”S˜“\Ó"ñ	#ð
 ññˆEð �‰F‰Að
	ð �h‰h�y "§'¡'§+¡+¨iÓ"8Ó9€Gð
 —(‘(˜=¨%Ó0ÒR°D·H±H¸]ÈEÓ4R€Kà�x‰x˜
 EÓ*€Hà�8‰8�F˜CÓ €DÜ�$œŸ
™
Ô#Ø�|‰|‹~ˆÜ
ˆ4ƒyÐ&Ò&Ø%ˆÜ˜‹oÐð 	ØØ�‰�˜1ÓØØ�‰�˜qÓ!ØˆA‰ØˆA‰ØØØØØð€BÔð& €GÙ‘;à�7‰7�fÒØ˜"Ÿ'™' !™*‘n r§w¡w¨q¡zÑ1‰Gà˜Š]˜g¨šmØ˜"Ÿ'™' !™*‘n r§w¡w¨q¡zÑ1‰Gà—g‘g˜a‘j 2§7¡7¨1¡:Ñ-ˆGÙØ”s˜4“y 1‘}Ñ$ˆGÙØ”s˜5“z A‘~Ñ%‰Gô �gœs 4›y¨1™}¬c°%«j¸1©nÓ=ˆä‡O�O�B˜˜f f¨r¯w©wÑ&6¸¸7ÐCÐDÀgÕNøôS ò "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"üò 6s   ­Q2 Á RÑ2	RÑ;RÒRc                 ó    — | j                  «       }t        j                  dd||g«       	 t        j                  |«       y # t
        $ r Y y w xY w)NÚcjpegr÷   )Ú_dumprÿ   r   rú   r  r  )r  r   rþ   rø   s       r   Ú_save_cjpegr®  4  sG   € à�x‰x‹z€HÜ×Ñ˜7 J°¸(ÐCÔDðÜ
�	‰	�(ÕøÜò Ùðús   «A Á	AÁAc                 óì   — t        | |«      }	 |j                  «       }|d   dkD  rddlm} |j	                  ||«      }|S # t
        t        f$ r Y |S t        $ r t        j                  d«       Y |S w xY w)Nr"  r   )ÚMpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)
rÐ   r  ÚMpoImagePluginr°  ÚadoptrK   rH   rP   ÚwarningsÚwarn)r   rþ   r  Úmpheaderr°  s        r   Újpeg_factoryr¶  @  sŠ   € Ü	�r˜8Ó	$€Bð
Ø—9‘9“;ˆØ�E‰?˜QÒå4ð ×#Ñ# B¨Ó1ˆBð €Iøô ”zÐ"ò àð €Iô ò 
Ü�‰ð.õ	
ð €Ið
ús   Ž0A  Á A3ÁA3Á2A3)z.jfifz.jpez.jpgz.jpegz
image/jpeg)NN),r€   r3  rL   rú   rF   rÿ   r�   rø   r³  rØ   r   r   Ú_binaryr   r   r   rE   r   r	   rž  ÚJpegPresetsr
   r   r[   r^   rz   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½     sT  ðóD Û 	Û Û 	Û Û Û 
Û Û ç Ý !Ý !Ý Ý !Ý  ò%ò
~&òB$ò/?òdð6@
Ø
ˆV�^ SÐ)ð@
à
ˆVÐ.°Ð4ð@
ð ˆVÐ&¨Ð,ð@
ð ˆVÐ'¨Ð-ð	@
ð
 ˆUÐ*¨DÐ1ð@
ð ˆVÐ2°CÐ8ð@
ð ˆVÐ3°SÐ9ð@
ð ˆVÐ+¨SÐ1ð@
ð Ð&ð@
ð ˆVÐ3°SÐ9ð@
ð ˆWÐ,¨cÐ2ð@
ð ˆWÐ1°3Ð7ð@
ð ˆUÐ;¸TÐBð@
ð ˆWÐ8¸#Ð>ð@
ð ˆWÐ9¸3Ð?ð@
ð  ˆWÐ1°3Ð7ð!@
ð" Ð'ñ#@
ð$ Ð'ð%@
ð& Ð'ð'@
ð( Ð'ð)@
ð* Ð'ð+@
ð, Ð'ð-@
ð. Ð'ð/@
ð0 Ð'ð1@
ð2 Ð+ð3@
ð4 Ð)ð5@
ð6 ˆU�O TÐ*ð7@
ð8 ˆUÐ/°Ð5ð9@
ð: ˆUÐ,¨dÐ3ð;@
ð< ˆUÐ-¨tÐ4ð=@
ð> ˆUÐ5°sÐ;ð?@
ð@ ˆUÐ0°$Ð7ðA@
ðB ˆVÐ,¨cÐ2ðC@
ðD ˆVÐ,¨cÐ2òE@
ðF ˆVÐ,¨cÐ2ðG@
ðH ˆVÐ,¨cÐ2ðI@
ðJ ˆVÐ,¨cÐ2ðK@
ðL ˆVÐ,¨cÐ2ðM@
ðN ˆVÐ,¨cÐ2ðO@
ðP ˆVÐ,¨cÐ2ðQ@
ðR ˆVÐ,¨cÐ2ðS@
ðT ˆVÐ,¨cÐ2ðU@
ðV ˆWÐ.°Ð4ðW@
ðX ˆWÐ.°Ð4ðY@
ðZ ˆWÐ.°Ð4ð[@
ð\ ˆWÐ.°Ð4ð]@
ð^ ˆWÐ.°Ð4ð_@
ð` ˆWÐ.°Ð4ða@
ðb Ð)ðc@
ðd Ð)ðe@
ðf Ð)ñg@
ðh *Ø)Ø)Ø)Ø)Ø)Ø)Ø+Ø+Ø+Ø+Ø�I˜sÐ#ò@
€òF)ô]�I×'Ñ'ô ]ò@-òIð` 
Ø	ØØØØñ€ð	€ð ØØñ€	ò'òpOòfóð0 €× Ñ �M×(Ñ(¨,¸Ô @Ø €× Ñ �M×(Ñ(¨%Ô 0à €× Ñ ˜-×.Ñ.Ò0RÔ Sà €× Ñ �M×(Ñ(¨,Õ 7r   