Ë
    ^ãj&}  ã                  ó´  — d dl mZ h d£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dlmZ dZerd dlmZmZ ddlmZ d¿d„Z d¿d„Z!d¿d„Z"d¿d„Z#d¿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/d0d1e#f“d2d3d4e#f“d5d6d7e#f“d8d9d:e f“d;d<d=e#f“d>d?d@e#f“dAdBdCe#f“dDdE“i dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdYdZe f“d[d\d]e$f“d^d_d`e f“dadbdce f“dddedfe#f“dgdhdie f“djdkdle!f“dmdndoe!f“¥i dpdqdre!f“dsdtdue!f“dvdwdxe!f“dydzd{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“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Àd®„Z& G d¯„ dej                  «      Z'dÁd°„Z(dÁd±„Z)d²d²d³d³d´dµd¶œZ*d·Z+d dd¸d¹œZ,dÂdº„Z-dÃd»„Z.	 dÄ	 	 	 	 	 dÅd¼„Z/ ej`                  e'jb                  e/e&«        ejd                  e'jb                  e.«        ejf                  e'jb                  g d½¢«        ejh                  e'jb                  d¾«       y)Æé    )Úannotations>   úPIL._binaryúPIL.JpegPresetsÚioÚmathÚarrayÚstructÚwarningsÚ
subprocessNé   )ÚImageÚ	ImageFile)Úi16be)Úi32be)Úo8)Úo16be)Ú	deprecate)ÚpresetsF)ÚIOÚAny©ÚMpoImageFileÚJpegImageFilec                ó®   — | j                   €J ‚t        | j                   j                  d«      «      dz
  }t        j                  | j                   |«       y )Né   )ÚfpÚi16Úreadr   Ú
_safe_read)ÚselfÚmarkerÚns      úU/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/JpegImagePlugin.pyÚSkipr$   J   sA   € Ø�7‰7ÐÐÐÜˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜Ÿ™ !Õ$ó    c                ó
  — | j                   €J ‚t        | j                   j                  d«      «      dz
  }t        j                  | j                   |«      }d|dz  › �}|| j
                  |<   | j                  j                  ||f«       |dk(  r»|j                  d«      rªt        |d«      x| j                  d<   }t        |d«      | j                  d	<   	 |d
   }t        |d«      t        |d«      f}|dk(  r|| j                  d<   n$|dk(  rt        d„ |D «       «      | j                  d<   || j                  d<   || j                  d<   y |dk(  ro|j                  d«      r^d| j                  v r| j                  dxx   |dd  z  cc<   y || j                  d<   | j                   j                  «       |z
  dz   | _        y |dk(  r4|j                  d«      r#|j                  dd«      d   | j                  d<   y |dk(  r!|j                  d«      r|| j                  d<   y |dk(  r-|j                  d«      r| j                   j                  |«       y |dk(  rÝ|j                  d«      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(  r9t%        |d$«      d%z  t        |d!«      t%        |d«      d%z  t        |d&«      d'œ|	|
<   n||	|
<   ||z  }||dz  z  }|||d!z    d"k(  rŒ y y |d(k(  r@|j                  d)«      r/t        |d«      | j                  d*<   	 |d+   }|| j                  d,<   y |dk(  rR|j                  d-«      r@|d!d  | j                  d.<   | j                   j                  «       |z
  d!z   | j                  d/<   y y y # t        $ r Y y w xY w# t&        j(                  $ r Y y w xY w# t*        $ r Y y w xY w)0Nr   ÚAPPé   éàÿ  s   JFIFé   Újfifé   Újfif_versioné   é   é
   r   Údpic              3  ó&   K  — | ]	  }|d z  –— Œ y­w)çR¸…ëQ@N© )Ú.0Úds     r#   ú	<genexpr>zAPP.<locals>.<genexpr>m   s   è ø€ Ò(H°a¨¨T­Ñ(Hùs   ‚Ú	jfif_unitÚjfif_densityéáÿ  s   Exif  Úexifé   ó   http://ns.adobe.com/xap/1.0/ ó    Úxmpéâÿ  s   FPXR Úflashpixó   ICC_PROFILE éíÿ  s   Photoshop 3.0 é   Ú	photoshopé   s   8BIMií  r   i   é   )ÚXResolutionÚDisplayedUnitsXÚYResolutionÚDisplayedUnitsYéîÿ  s   AdobeÚadobeé   Úadobe_transforms   MPF ÚmpÚmpoffset)r   r   r   r   r   ÚappÚapplistÚappendÚ
startswithÚinfoÚdivmodÚtupleÚ	ExceptionÚtellÚ_exif_offsetÚsplitÚicclistÚ
setdefaultÚi32r	   ÚerrorÚ
IndexError)r    r!   r"   ÚsrR   Úversionr8   r9   ÚoffsetrE   ÚcodeÚname_lenÚsizeÚdatarO   s                  r#   r'   r'   P   s  € ð
 �7‰7ÐÐÐÜˆD�G‰G�L‰L˜‹OÓ˜qÑ €AÜ×Ñ˜TŸW™W aÓ(€Aà�˜‘ˆ}Ð
€Cà€D‡H�HˆS�MØ‡L�L×Ñ˜˜a˜Ô!à�Ò˜AŸL™L¨Ô1ä&)¨!¨Q£iÐ/ˆ�	‰	�&Ñ˜GÜ$*¨7°CÓ$8ˆ�	‰	�.Ñ!ð	5Ø˜!™ˆIÜ˜q !›9¤c¨!¨R£jÐ0ˆLð ˜AŠ~Ø#/�—	‘	˜%Ò Ø˜a’ä#(Ñ(H¸<Ô(HÓ#H�—	‘	˜%Ñ Ø%.ˆD�I‰I�kÑ"Ø(4ˆD�I‰I�nÒ%Ø	�6Ò	˜aŸl™l¨;Ô7à�T—Y‘YÑØ�I‰I�fÓ  1 2 Ñ&Ôà !ˆD�I‰I�fÑØ $§¡§¡£°Ñ 2°QÑ 6ˆDÕØ	�6Ò	˜aŸl™lÐ+NÔOØŸ7™7 7¨AÓ.¨qÑ1ˆ�	‰	�%ÒØ	�6Ò	˜aŸl™l¨9Ô5à !ˆ�	‰	�*ÒØ	�6Ò	˜aŸl™lÐ+;Ô<ð 	�‰×Ñ˜AÕØ	�6Ò	˜aŸl™lÐ+?Ô@àˆØ—I‘I×(Ñ(¨°bÓ9ˆ	ð	Ø�F˜V a™ZÐ(¨GÒ3Ø˜!‘�ä˜1˜f“~�Ø˜!‘�à˜V™9�à˜!˜h™,Ñ&�Ø˜& 1™*Ñ$�ä˜1˜f“~�Ø˜!‘�Ø˜ &¨4¡-Ð0�Ø˜6’>ä'*¨4°£|°eÑ';Ü+.¨t°Q«<Ü'*¨4°£|°eÑ';Ü+.¨t°R«=ñ	'�I˜d’Oð '+�I˜d‘OØ˜$‘�Ø˜& 1™*Ñ$�ð1 �F˜V a™ZÐ(¨GÕ3ð8 
�6Ò	˜aŸl™l¨8Ô4Ü   A›Yˆ�	‰	�'Ñð	;Ø ™eˆOð ,;ˆD�I‰IÐ'Ò(Ø	�6Ò	˜aŸl™l¨8Ô4à˜A˜B˜%ˆ�	‰	�$‰ð !%§¡§¡£°Ñ 2°QÑ 6ˆ�	‰	�*Òð 5Ð	øô[ ò 	Ùð	ûôB �|‰|ò 	Ùð	ûô ò 	Ùð	ús7   ÃO ÊB*O Í!O6 Ï	OÏOÏO3Ï2O3Ï6	PÐPc                ó$  — | j                   €J ‚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   rV   rR   rS   rT   )r    r!   r"   rb   s       r#   rk   rk   »   sv   € ð �7‰7ÐÐÐÜˆ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                óB  — | j                   €J ‚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(  r.| j                  D �cg c]  }|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 c c}w )Nr   é   r   r   r/   zcannot handle z-bit layersr*   ÚLÚRGBrF   ÚCMYKz-layer images)éÂÿ  éÆÿ  éÊÿ  éÎÿ  ÚprogressiveÚprogressioné   rD   r%   Úicc_profiler<   é   r(   )r   r   r   r   r   Ú_sizeÚbitsÚSyntaxErrorÚlayersÚ_moderV   r]   ÚsortÚlenÚjoinÚrangeÚlayerrT   )
r    r!   r"   rb   ÚmsgÚpÚprofilerx   ÚiÚts
             r#   ÚSOFr‰   Ç   só  € ð �7‰7ÐÐÐÜˆ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Ø'+§|¡|Ö4 !�q˜˜’vÐ4ˆGÐ4ØŸ(™( 7Ó+‰KàˆKØ#.ˆ�	‰	�-Ñ ØˆŒä�1”c˜!“f˜aÓ ò ?ˆØˆa�!�a‘%ˆLˆà�
‰
×Ñ˜1˜Q™4  1¡¨¡¨Q¨q©T°B©Y¸¸!¹Ð=Õ>ñ?ùò 5s   ÆHc                ó8  — | j                   €J ‚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   ry   r   é@   zbad quantization table markerÚBÚHÚlittler(   )r   r   r   r   r   r€   r|   r   ÚsysÚ	byteorderÚbyteswapÚzigzag_indexÚquantization)
r    r!   r"   rb   ÚvÚ	precisionÚ	qt_lengthr„   rh   r‡   s
             r#   ÚDQTr—   ø   s  € ð �7‰7ÐÐÐÜˆ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 DCTrq   ÚSOF2zProgressive DCTiÃÿ  ÚSOF3zSpatial losslessiÄÿ  ÚDHTzDefine Huffman tableiÅÿ  ÚSOF5zDifferential sequential DCTrr   ÚSOF6zDifferential progressive DCTiÇÿ  ÚSOF7zDifferential spatialiÈÿ  )ÚJPGÚ	ExtensionNiÉÿ  ÚSOF9zExtended sequential DCT (AC)rs   ÚSOF10zProgressive DCT (AC)iËÿ  ÚSOF11zSpatial lossless DCT (AC)iÌÿ  ÚDACz%Define arithmetic coding conditioningiÍÿ  ÚSOF13z Differential sequential DCT (AC)rt   Ú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 12rC   ÚAPP13zApplication segment 13rL   Ú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 13Nrk   ÚComment)ióÿ  iôÿ  iõÿ  iöÿ  i÷ÿ  iøÿ  iùÿ  iúÿ  iûÿ  iüÿ  éýÿ  iþÿ  c                ó$   — | j                  d«      S )Ns   ÿØÿ)rU   )Úprefixs    r#   Ú_acceptrÛ   W  s   € à×Ñ˜_Ó-Ð-r%   c                  óx   ‡ — e Zd ZdZdZdd„Zdˆ fd„Zdˆ fd„Zdd„Z	 	 	 	 	 	 dd„Z	dd„Z
dd	„Zdd
„Zdd„Zˆ xZS )r   ÚJPEGzJPEG (ISO 10918)c                óˆ  — | j                   €J ‚| j                   j                  d«      }t        |«      sd}t        |«      ‚d}dx| _        | _        d| _        g | _        i | _        i | _	        i | _
        i | _        g | _        g | _        |�r&|d   }|dk(  r9|| j                   j                  d«      z  }t        |«      dk  rnït        |«      }n| j                   j                  d«      }Œb|t         v r†t         |   \  }}}|�	 || |«       |dk(  rM| j"                  }| j"                  d	k(  rd
}t%        j&                  dddg| j(                  ¢­d|df«      g| _        nU| j                   j                  d«      }n5|dv rd}n.|dk(  r| j                   j                  d«      }nd}t        |«      ‚|r�Œ&| j-                  «        y )Nrm   znot a JPEG fileó   ÿr   éÿ   r   r   r³   rp   úCMYK;IÚjpegÚ >   éÿÿ  r   i ÿ  zno marker found)r   r   rÛ   r|   r{   r}   r[   rƒ   Ú_huffman_dcÚ_huffman_acr“   rR   rS   r]   r€   r   ÚMARKERÚmoder   Ú_Tilerg   ÚtileÚ_read_dpi_from_exif)r    rb   r„   r‡   ÚnameÚdescriptionÚhandlerÚrawmodes           r#   Ú_openzJpegImageFile._opend  s¹  € Ø�w‰wÐ"Ð"Ð"Ø�G‰G�L‰L˜‹Oˆä�qŒzØ#ˆCÜ˜cÓ"Ð"Øˆð #$Ð#ˆŒ	�D”KØˆÔð 79ˆŒ
Ø+-ˆÔØ+-ˆÔØ24ˆÔØ%'ˆŒØ02ˆŒØ$&ˆŒâØ�!‘ˆAØ�DŠyØ�T—W‘W—\‘\ !“_Ñ$�Ü�q“6˜A’:ØÜ˜“F‘ð —G‘G—L‘L “O�Øà”F‰{Ü-3°A©YÑ*��k 7ØÐ&Ù˜D !Ô$Ø˜’;Ø"Ÿi™i�GØ—y‘y FÒ*Ø"*˜ä!Ÿ™¨°°AÐ0B¸¿	¹	Ñ0BÀAÈÐQSÀ}ÓUð!�D”Ið Ø—G‘G—L‘L “O‘Ø�kÑ!à‘Ø�f’Ø—G‘G—L‘L “O‘à'�Ü! #Ó&Ð&óC ðF 	× Ñ Õ"r%   c                óR   •— t         ‰| �  «       | j                  | j                  gz   S ©N)ÚsuperÚ__getstate__r}   rƒ   )r    Ú	__class__s    €r#   rô   zJpegImageFile.__getstate__Ÿ  s#   ø€ Ü‰wÑ#Ó%¨¯©°d·j±jÐ(AÑAÐAr%   c                óH   •— |dd  \  | _         | _        t        ‰| �  |«       y )Nr<   )r}   rƒ   ró   Ú__setstate__)r    Ústaterõ   s     €r#   r÷   zJpegImageFile.__setstate__¢  s$   ø€ Ø"'¨¨ )ÑˆŒ�T”ZÜ‰Ñ˜UÕ#r%   c                ó¤   — | j                   €J ‚| 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_bytesrb   s      r#   Ú	load_readzJpegImageFile.load_read¦  sK   € ð �w‰wÐ"Ð"Ð"Ø�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                  }t	        |t
        «      s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 |€J ‚|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| _        |	}t        j                  ||||«      g| _        |df| _        dd|d   |z  |d   |z  f}
| j                  |
fS )	Nr   r   ro   )rn   ÚYCbCrrã   )r/   rF   r   r   r   rm   )r€   rê   Údecoderconfigrg   Ú
isinstancerX   r~   Úminrz   r   ré   rè   )r    rè   rg   r6   ÚeÚoÚaÚscaleÚoriginal_sizerb   Úboxs              r#   ÚdraftzJpegImageFile.draft·  sÈ  € ô ˆt�y‰y‹>˜QÒØð ×ÒØà—Y‘Y˜q‘\‰
ˆˆ1ˆa�ØˆØŸ	™	ˆä˜!œUÔ#Ð#Ð#Øˆ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ä—_‘_ Q¨¨1¨aÓ0Ð1ˆŒ	Ø# Q˜ZˆÔà�!�] 1Ñ%¨Ñ-¨}¸QÑ/?À%Ñ/GÐHˆØ�y‰y˜#ˆ~Ðr%   c                ó&  — dd l }t        ddd¬«       |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)	Nr   Ú
load_djpegrD   z>Use the built-in JPEG decoder instead, or call djpeg yourself.)ÚactionÚdjpegz-outfilezInvalid Filename)Útempfiler   ÚmkstempÚosÚcloseÚpathÚexistsÚfilenamer   Ú
check_callÚunlinkÚOSErrorÚ
ValueErrorr   ÚopenÚloadÚimrè   r~   rg   rz   rê   )r    r  Úfr  r„   Ú_ims         r#   r  zJpegImageFile.load_djpegß  sA  € ãäØØØSõ	
ð ×"Ñ"Ó$‰ˆˆ4Ü
�‰�ŒÜ�7‰7�>‰>˜$Ÿ-™-Ô(Ü×!Ñ! 7¨J¸¸d¿m¹mÐ"LÕMðÜ—	‘	˜$”ð %ˆCÜ˜S“/Ð!ð	Ü—‘˜DÓ!ð ! SØ—‘”
ØŸ&™&�”÷!ðÜ—	‘	˜$”ð —W‘W—\‘\ˆŒ
Ø—W‘W—\‘\ˆŒ
àˆ�	øô' ò Ùðú÷!ð !ûô ò ÙðûðÜ—	‘	˜$•øÜò Ùðýsl   Â	D? Â,E) Ã"EÃ#E) Ã,E Ä?	EÅ
EÅEÅE) Å	E&Å%E&Å)FÅ+FÆ FÆ	FÆ
FÆFÆFc                ó   — t        | «      S rò   )Ú_getexif©r    s    r#   r   zJpegImageFile._getexif  s   € Ü˜‹~Ðr%   c                ó¾  — d| j                   v sd| j                   vry 	 | j                  «       }|d   }|d   }	 t        |d   «      |d   z  }t	        j
                  |«      rd}t        |«      ‚|dk(  r|d	z  }||f| j                   d<   y # t        $ r |}Y ŒKw xY w# t        j                  t        t        t        t        t        f$ r d
| j                   d<   Y y w xY w)Nr1   r;   i(  i  r   r   zDPI is not a numberrm   r3   )éH   r#  )rV   ÚgetexifÚfloatÚ	TypeErrorr   Úisnanr  r	   r`   ÚKeyErrorr|   ÚZeroDivisionError)r    r;   Úresolution_unitÚx_resolutionr1   r„   s         r#   rë   z!JpegImageFile._read_dpi_from_exif  sç   € à�D—I‘IÑ ¨t¯y©yÑ!8Øð	&Ø—<‘<“>ˆDØ" 6™lˆOØ ™<ˆLð#Ü˜L¨™OÓ,¨|¸A©Ñ>�ô �z‰z˜#ŒØ+�Ü  “oÐ%Ø !Ò#à�t‘�Ø" C˜xˆD�I‰I�eÒøô ò #Ø"’ð#ûô �L‰LÜÜÜÜÜð
ò 	&ð  &ˆD�I‰I�eÓð	&ús4   ŸB ºB Á=B ÂBÂB ÂBÂB Â<CÃCc                ó   — t        | «      S rò   )Ú_getmpr!  s    r#   r-  zJpegImageFile._getmp%  s   € Ü�d‹|Ðr%   )ÚreturnÚNone)r.  ú	list[Any])rø   r0  r.  r/  )rý   Úintr.  Úbytes)rè   z
str | Nonerg   ztuple[int, int] | Noner.  z0tuple[str, tuple[int, int, float, float]] | None)r.  údict[int, Any] | None)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrð   rô   r÷   rþ   r
  r  r   rë   r-  Ú__classcell__)rõ   s   @r#   r   r   `  sW   ø„ Ø€FØ+Ðó9#õvBõ$óð"&Øð&Ø&<ð&à	9ó&óP$óLó&÷:r%   c                ó\   — d| j                   vry | j                  «       j                  «       S )Nr;   )rV   r$  Ú_get_merged_dictr!  s    r#   r   r   )  s&   € Ø�T—Y‘YÑØØ�<‰<‹>×*Ñ*Ó,Ð,r%   c           	     ó"  — 	 | j                   d   }t        j                  |«      }|j	                  d«      }|j                  d«      rdnd}ddlm} 	 |j                  |«      }|j                  |j                  «       |j                  |«       t        |«      }	 |d	   }
g }	 |d   }t        |
«      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        t         j,                  f$ r}d'}	t        |	«      |‚d }~ww xY w)(NrP   r/   s   MM *ú>ú<r   )ÚTiffImagePluginz)malformed MP Index (unreadable directory)é°  z(malformed MP Index (no number of images)i°  ÚLLLHHry   )Ú	AttributeÚSizeÚ
DataOffsetÚEntryNo1ÚEntryNo2rB  l        i   @i    i   é   i   é   iÿÿÿ )ÚDependentParentImageFlagÚDependentChildImageFlagÚRepresentativeImageFlagÚReservedÚImageDataFormatÚMPTyperM  r   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   rN  ÚUnknownz!malformed MP Index (bad MP Entry))rV   r(  r   ÚBytesIOr   rU   rã   r?  ÚImageFileDirectory_v2ÚseekÚnextr  ÚdictrY   r|   r‚   r	   Úunpack_fromÚzipÚboolÚgetrT   r`   )r    rh   Úfile_contentsÚheadÚ
endiannessr?  rV   rP   r  r„   ÚquantÚ	mpentriesÚrawmpentriesÚentrynumÚunpackedentryÚlabelsÚmpentryÚmpentryattrÚ	mptypemaps                      r#   r-  r-  /  sz  € ðØ�y‰y˜‰ˆô —J‘J˜tÓ$€MØ×Ñ˜aÓ €DØŸ™Ð(;Ô<‘À#€Jå!ð&Ø×4Ñ4°TÓ:ˆØ×Ñ˜4Ÿ9™9Ô%Ø�	‰	�-Ô Ü�$‹Zˆð
&Ø�6‘
ˆð
 €Ið$&Ø˜&‘zˆÜ˜e›ò 	&ˆ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 ”f—l‘lÐ#ò &Ø1ˆÜ˜#Ó AÐ%ûð&ús[   ‚F ÁAF$ ÂG Â$C/G" Æ	F!Æ F!Æ$	G Æ-F;Æ;G Ç	GÇGÇGÇ"HÇ;H	È	Hrn   ro   rá   r   )Ú1rn   ro   ÚRGBXrp   r   )@r   r   r*   r<   rD   r(   rG  é   r   rF   r.   rw   ry   é   é   é*   rm   r/   rG   é   é   é   é)   é+   é	   rN   é   rH  é   é(   é,   é5   r0   é   é   é    é'   é-   é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        | t        «      r| j                  dv ry| j                  d   dd | j                  d   dd z   | j                  d   dd z   }t        j                  |d«      S )N)r   rF   éÿÿÿÿr   r   rm   r   )r  r   r}   rƒ   Ú	samplingsrY  )r  Úsamplings     r#   Úget_samplingrš  ™  si   € ô �bœ-Ô(¨B¯I©I¸Ñ,?ØØ�x‰x˜‰{˜1˜QÐ "§(¡(¨1¡+¨a°Ð"2Ñ2°R·X±X¸a±[ÀÀ1Ð5EÑE€HÜ�=‰=˜ 2Ó&Ð&r%   c                ó¦
  — 	 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        | «      }
	 	 	 	 d4d„}|d	k(  r)| j                  dk7  rd}t        |«      ‚t        | d
d «      } ||«      }|j                  dd«      }d}|j                  d«      x}rJd}||z
  }t        |«      |kD  rd}t        |«      ‚t!        d|z   t        |«      z   «      }|d|z   dz   |z   z  }|j                  d«      x}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"«      «      }|rt        |«      |kD  rd#}t        |«      ‚|j                  d$d%«      xs |j                  d&d%«      }|j                  d'd%«      }|j                  d(d«      }t        |t(        j*                  «      r|j-                  «       }t        |«      |kD  rd)}t        |«      ‚|	||j                  d*d«      ||j                  d+d%«      |j                  d,d«      ||
|j                  d-d«      |j                  d.d«      ||||f| _        |s|rµ| j                  d/k(  r#d0| j0                  d   z  | j0                  d   z  }nL|	d1k\  s|	dk(  r#d| j0                  d   z  | j0                  d   z  }n| j0                  d   | j0                  d   z  }|r|t        |«      d2z   z  }|r|t        |«      z  }|rD|t        |«      d2z   z  }n2t3        t        |«      d2z   t        |«      t        |xs d«      d2z   «      }t5        j6                  | |t5        j8                  d3ddg| j0                  ¢­d|«      g|«       y # t        $ r!}d| j                  › d�}t        |«      |‚d }~ww xY wc c}w )5Nzcannot write mode z as JPEGr1   )r   r   Úqualityr—  ÚsubsamplingÚqtablesÚkeepr“   zInvalid quality settingz4:4:4r   z4:2:2r   z4:2:0r   z4:1:1rÝ   z3Cannot use 'keep' when original image is not a JPEGc                ój  — | €| 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        | «      } dt        | «      cxk  rdk  sn d}t        |«      ‚	 t        | «      D ]B  \  }}	t        |	«      dk7  rd}t        |«      ‚t        t        j                  d|	«      «      | |<   ŒD 	 | 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�   )r  ÚstrÚ
splitlinesr\   r1  r‚   r€   r  rX   ÚlistrU  Ú	enumerater&  r   )
rž  ÚlineÚnumÚlinesrb   r  r„   Ú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ð�ñ ô
 ˜w›-�Øœ˜G›Ô( qÔ(Ø<�Ü  “oÐ%ð-Ü"+¨GÓ"4ò A‘J�C˜Ü˜5“z RÒ'Ø:˜Ü'¨›nÐ,Ü#'¬¯©°C¸Ó(?Ó#@�G˜C’Lñ	Að ˆNð) 4ùóùò Pøô	 ò -Ø2�Ü  “o¨1Ð,ûð-üòøô ò -Ø2�Ü  “o¨1Ð,ûð-úsS   –E2 ©:E'Á#E2 Á>E-Ã	FÃFÄAF Å'E2 Å2	FÅ;F	Æ	FÆ	F2ÆF-Æ-F2Úextrar%   rØ   r?   rj  zXMP data is too longs   ÿár=   rx   rD   s   ÿârB   rj   zComment is too longru   Frv   Úoptimizer;   zEXIF data is too longÚsmoothÚkeep_rgbÚ
streamtypeÚrestart_marker_blocksÚrestart_marker_rowsrp   rF   é_   r*   râ   )rž  zKstr | tuple[list[int], ...] | list[list[int]] | dict[int, list[int]] | Noner.  zlist[list[int]] | None)ÚRAWMODErè   r(  r  ÚencoderinforY  Úroundr   r  r1  r  r¢  r7  rš  Úgetattrr€   Úo16rT   r   rV   r   ÚExifÚtobytesÚencoderconfigrg   Úmaxr   Ú_saveré   )r  r   r  rï   r  r„   rV   Úxr1   rœ  r�  rž  Úpresetr¬  r­  ÚMAX_BYTES_IN_MARKERr?   Úoverhead_lenÚmax_data_bytes_in_markerrg   rx   Úmarkersr‡   r!   rj   ru   r®  r;   Úbufsizes                                r#   r¾  r¾  §  s—  € ð"Ü˜"Ÿ'™'Ñ"ˆð
 �>‰>€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Ó&ˆð'àWð'ð 
 ó	'ðR �&ÒØ�9‰9˜ÒØGˆCÜ˜S“/Ð!Ü˜"˜n¨dÓ3ˆÙ˜wÓ'€Gà�H‰H�W˜cÓ"€EàÐØ�h‰h�u‹oÐ€sÐØˆØ#6¸Ñ#EÐ Üˆs‹8Ð.Ò.Ø(ˆCÜ˜S“/Ð!Ü�1�|Ñ#¤c¨#£hÑ.Ó/ˆØ�˜tÑ#Ð&IÑIÈCÑOÑOˆà—h‘h˜}Ó-Ð-€{Ð-ØˆØ#6¸Ñ#EÐ ØˆÙØ�N‰N˜;Ð'@Ð(@ÐAÔBØ%Ð&>Ð&?Ð@ˆKò ð ˆØò 
	ˆFÜ�q˜<Ñ'¬#¨f«+Ñ5Ó6ˆDØØØñà"ñ#ô �Q“%ñô ”S˜“\Ó"ñ	#ð
 ññˆEð �‰F‰Að
	ð �h‰h�y "§'¡'§+¡+¨iÓ"8Ó9€GÙ”3�w“<Ð"5Ò5Ø#ˆÜ˜‹oÐð
 —(‘(˜=¨%Ó0ÒR°D·H±H¸]ÈEÓ4R€Kà�x‰x˜
 EÓ*€Hà�8‰8�F˜CÓ €DÜ�$œŸ
™
Ô#Ø�|‰|‹~ˆÜ
ˆ4ƒyÐ&Ò&Ø%ˆÜ˜‹oÐð 	ØØ�‰�˜1ÓØØ�‰�˜UÓ#Ø�‰�˜qÓ!ØØØ�‰Ð(¨!Ó,Ø�‰Ð&¨Ó*ØØØØð€BÔñ* ‘;à�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Ñ!ˆGÙØ”s˜7“| aÑ'Ñ'‰Gô ”c˜$“i !‘m¤S¨£Z´°W²^ÀÓ1DÀqÑ1HÓIˆä‡O�OØ
ˆB”—‘ ¨!¨QÐ)9°·±Ñ)9¸1¸gÓFÐGÈõøô{ ò "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"üò 6s   ‚T! µUÔ!	UÔ*UÕUc                ó6  — t        | |«      }	 |j                  «       }|�C|d   dkD  r;|j                  D ]  \  }}|dk(  sŒd|v sŒ|c S  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   rº   s    hdrgm:Version="r   zTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)r   r-  rS   ÚMpoImagePluginr   Úadoptr&  ra   r|   r
   Úwarn)r   r  r  ÚmpheaderÚsegmentÚcontentr   s          r#   Újpeg_factoryrÍ  n  sÂ   € ô 
�r˜8Ó	$€Bð
Ø—9‘9“;ˆØÐ H¨U¡O°aÒ$7Ø$&§J¡Jò Ñ �˜Ø˜fÓ$Ð)<ÀÒ)Gà’Iðõ
 5ð $�×#Ñ# B¨Ó1ˆBð €Iøô ”zÐ"ò àð €Iô ò 
Ü�‰ð.õ	
ð €Ið
ús)   Ž1A% Á A% ÁA% Á	A% Á%BÁ7BÂB)z.jfifz.jpez.jpgz.jpegz
image/jpeg)r    r   r!   r1  r.  r/  )rÚ   r2  r.  rX  )r    r   r.  r3  )r  úImage.Imager.  r1  )r  rÎ  r   ú	IO[bytes]r  zstr | bytesr.  r/  rò   )r   rÏ  r  zstr | bytes | Noner.  zJpegImageFile | MpoImageFile)5Ú
__future__r   Ú__lazy_modules__r   r   r   r  r	   r   r�   r
   rã   r   r   Ú_binaryr   r   r   r_   r   r   r¹  Ú
_deprecater   ÚJpegPresetsr   ÚTYPE_CHECKINGÚtypingr   r   rÇ  r   r$   r'   rk   r‰   r—   rç   rÛ   r   r   r-  rµ  r’   r˜  rš  r¾  rÍ  Úregister_openr7  Úregister_saveÚregister_extensionsÚregister_mimer4   r%   r#   ú<module>rÛ     s†  ðõD #ò	Ð ó Û 	Û Û 	Û Û Û 
Û ç Ý !Ý !Ý Ý !Ý !Ý  à€Ùßå,ó%óh7óV	$ó.?óbð8@
Ø
ˆ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.ôF�I×'Ñ'ô FóR-óIð` 
Ø	ØØØØñ€ð	€ð ØØñ€	ó'óBðP 37ðØðØ/ðà!óð< €× Ñ �M×(Ñ(¨,¸Ô @Ø €× Ñ �M×(Ñ(¨%Ô 0à €× Ñ ˜-×.Ñ.Ò0RÔ Sà €× Ñ �M×(Ñ(¨,Õ 7r%   