ó
    "%vgÆE ã                  óN  • 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	J
r
Jr  S SKJr  S SKJrJr  S SKJrJrJrJrJrJr  SSKJrJrJrJr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(  SSK)J*r*  SSKJ+r+  \(       a  SSK'J,r,J-r-  \R\                  " \/5      r0Sr1Sr2Sr3Sr4Sr5Sr6Sr7Sr8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@S rAS!rBS"rCS#rDS$rES%rFS&rGS'rHS(rIS)rJS*rKS+rLS,rMS-rNS.rOS/rPS0rQS1rRS2rSS3rTS4rUS5rVS6rWS7rXS8rYS9rZS:r[S;r\S<r]S=r^0 SS>_S?S@_SASB_SCSD_SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_r_\_RÁ                  5        V Vs0 s H  u  pX_M	     snn ra0 \4S S_SS_S`4Sa_\5S S_SS_S`4Sa_\4S S_S?S_S`4Sb_\5S S_S?S_S`4Sb_\4SS_SS_S`4Sc_\5SS_SS_S`4Sc_\4SS_S?S_S`4Sd_\5SS_S?S_S`4Sd_\4S S_SSeS`4Sf_\5S S_SSeS`4Sf_\4S S_S?SeS`4Sg_\5S S_S?SeS`4Sg_\4SS_SSeS`4Sh_\5SS_SSeS`4Sh_\4SS_S?SeS`4Si_\5SS_S?SeS`4Si_\4S S_SSjS`4Sk_0 \5S S_SSjS`4Sk_\4S S_S?SjS`4Sl_\5S S_S?SjS`4Sl_\4SS_SSjS`4Sm_\5SS_SSjS`4Sm_\4SS_S?SjS`4Sn_\5SS_S?SjS`4Sn_\4S S_SSoS`4Sp_\5S S_SSoS`4Sp_\4S S_S?SoS`4Sq_\5S S_S?SoS`4Sq_\4SS_SSoS`4Sr_\5SS_SSoS`4Sr_\4SSeSSoS`4Sr_\5SSeSSoS`4Sr_\4SS_S?SoS`4Ss_\5SS_S?SoS`4Ss_E0 \4SS_SStS`4Su_\4S S_SSvS`4Sw_\4SS_SSvS`4Sw_\5SS_SSvS`4Sx_\4SS_S?SvS`4Sy_\4SSeSSvS`4Sz_\5SSeSSvS`4S{_\4S S|SS}S`4S~_\5S S|SS}S`4S_\4SS_SS}S`4S€_\4SSeSS}S`4S�_\5SSeSS}S`4S‚_\4SS|SS}S`4S~_\5SS|SS}S`4S_\4SS_SSƒSe4S„_\5SS_SSƒSe4S„_\4S?S_SS…S`4S†_E0 \5S?S_SS…S`4S†_\4S?S_S?S…S`4S‡_\5S?S_S?S…S`4S‡_\4S?S_SSˆS`4S‰_\5S?S_SSˆS`4S‰_\4S?S_SSˆSŠ4S‹_\5S?S_SSˆSŠ4S‹_\4S?S_SSŒS�4SŽ_\5S?S_SSŒS�4SŽ_\4S?S_SS�S�4S‘_\5S?S_SS�S�4S‘_\4S?S_SSˆS_4S’_\5S?S_SSˆS_4S’_\4S?S_SSŒS“4S”_\5S?S_SSŒS“4S”_\4S?S_SS�S•4S–_\5S?S_SS�S•4S–_E0 \4S?S_SSˆSe4S‰_\5S?S_SSˆSe4S‰_\4S?S_SSŒS—4S˜_\5S?S_SSŒS—4S˜_\4S?S_SS�S™4Sš_\5S?S_SS�S™4Sš_\4S?S_SSˆS›4S‰_\5S?S_SSˆS›4S‰_\4S?S_SSœS`4S�_\5S?S_SSœS`4Sž_\4S?S_SSŸS`4S _\5S?S_SSŸS`4S¡_\4S?S_SSŸSŠ4S¢_\5S?S_SSŸSŠ4S£_\4S?S_SSŸS_4S¤_\5S?S_SSŸS_4S¥_\4S?S_SSŸSe4S _E0 \5S?S_SSŸSe4S¡_\4SAS_SS_S`4S¦_\5SAS_SS_S`4S¦_\4SAS_S?S_S`4S§_\5SAS_S?S_S`4S§_\4SAS_SSeS`4S¨_\5SAS_SSeS`4S¨_\4SAS_S?SeS`4S©_\5SAS_S?SeS`4S©_\4SAS_SSjS`4Sª_\5SAS_SSjS`4Sª_\4SAS_S?SjS`4S«_\5SAS_S?SjS`4S«_\4SAS_SSoS`4S¬_\5SAS_SSoS`4S¬_\4SAS_SSƒSŠ4S­_\4SAS_SSƒSe4S®_E0 \5SAS_SSƒSe4S®_\4SAS_S?SoS`4S¯_\5SAS_S?SoS`4S¯_\4SES_SSˆS`4S°_\5SES_SSˆS`4S°_\4SES_SSŒSŠ4S±_\5SES_SSŒSŠ4S±_\4SES_SS�S�4S²_\5SES_SS�S�4S²_\4SES_SSŸS`4S³_\5SES_SSŸS`4S´_\4SGS_SSoS`4Sr_\5SGS_SSoS`4Sr_\4SGS_SS…S`4S‹_\5SGS_SS…S`4S‹_\4SKS_SS…S`4Sµ_\5SKS_SS…S`4Sµ_Erb\c" S¶ \b 5       5      rd/ S·Qre\f" \RÎ                  S¸S¹5      (       d	  \&" SºS»5        SìS¼ jrh      SíS½ jri        SîS¿ jrj0 rk0 rlSïSÀ jrm " SÁ S¾\5      rn\SÂ\o\p/\4   rqSðSÃ jrrSñSÄ jrsSòSÅ jrt\(       a  \\u\4   rvO\rv " SÆ SÂ\v5      rw\k\wlk        \l\wll        \+RÀ                  " 5        H;  u  rxry\yRõ                  SÇSÈ5      ry\{" \wSÉ\y 3\k\x   S   5        \{" \wSÊ\y 3\l\x   5        M=     CkClCxCy " SË SÌ\w5      r|\|r} " SÍ SÎ\R6                  5      r~0 SÏSÏ\4SSS_S4_SÐSÐ\4SSSoS4_SÑSÑ\4SSSƒS?4_SÒSÒ\4SASSoS4_SÓSÓ\4SASSƒS?4_SÔSÕ\4SS?S}S4_SÖSÖ\4SSSvS4_S×S×\4SS?SvS4_SØSÙ\4SSAS}S4_SÚSÚ\4S?SS…S4_SÛSÛ\4S?SSˆS 4_SÜSÜ\4S?SSˆS?4_SÝSÝ\4SESSˆS4_SÞSÞ\4SGSS…S4_SßSß\4SKSS…S4_SàSà\5SS?S}S4_SáSá\5SSSvS4_Sâ\5SS?SvS4Sã\5SSAS}S4Sä.ErSóSå jr€ " Sæ Sç\GR                  5      r‚SóSè jrƒ\GR                  " \~GR
                  \~\h5        \GR                  " \~GR
                  \€5        \GR                  " \~GR
                  \ƒ5        \GR                  " \~GR
                  SéSê/5        \GR                  " \~GR
                  Së5        gs  snn f )ôé    )ÚannotationsN)ÚIteratorÚMutableMapping)ÚFraction)ÚNumberÚRational)ÚIOÚTYPE_CHECKINGÚAnyÚCallableÚNoReturnÚcasté   )ÚExifTagsÚImageÚ	ImageFileÚImageOpsÚImagePaletteÚTiffTags)Úi16be)Úi32be)Úo8)Ú	deprecate)ÚStrOrBytesPath)Úis_path©ÚTYPES)ÚBufferÚIntegralLikeFé   s   IIs   MMéÿ   é   i  i  i  i  i
  i  é  i  i  i  i  i  i  i(  i-  i1  i2  i;  i=  i@  iB  iC  éD  iE  iJ  iR  iS  i[  i  i  i˜‚  i»ƒ  iI†  is‡  ii‡  i¼  i  i–Æ  i—Æ  Úrawé   Ú
tiff_ccitté   Úgroup3é   Úgroup4é   Útiff_lzwé   Ú	tiff_jpegé   Újpegé   Útiff_adobe_deflatei€  Útiff_raw_16i€  Úpackbitsi)€  Útiff_thunderscani²€  Útiff_deflateit‡  Útiff_sgilogiu‡  Útiff_sgilog24imˆ  ÚlzmaiPÃ  ÚzstdiQÃ  Úwebp©r   © )Ú1z1;I)r?   z1;IR)r?   r?   )r?   z1;R)r&   )ÚLzL;2I)r@   zL;2IR)r@   zL;2)r@   zL;2R)r*   )r@   zL;4I)r@   zL;4IR)r@   zL;4)r@   zL;4R)r2   )r@   zL;I)r@   zL;IR)r@   r@   )r@   zL;R)é   )úI;16zI;12)é   )rB   rB   )úI;16BrD   )rB   zI;16R)ÚIúI;16S)rE   úI;16BS)r(   )é    )ÚFúF;32F)rI   úF;32BF)rE   zI;32N)rE   úI;32S)rE   úI;32BS)r2   r2   )ÚLArN   )r2   r2   r2   )ÚRGBrO   )rO   zRGB;R)r2   r2   r2   r2   )ÚRGBArP   ©r   )rO   ÚRGBX)r2   r2   r2   r2   r2   ©r   r   )rO   ÚRGBXX)r2   r2   r2   r2   r2   r2   )r   r   r   )rO   ÚRGBXXX)rP   ÚRGBa)r   r   )rP   ÚRGBaX)r   r   r   )rP   ÚRGBaXX)r&   r   )rP   ÚRGBAX)r&   r   r   )rP   ÚRGBAXX)iç  )rC   rC   rC   )rO   zRGB;16L)rO   zRGB;16B)rC   rC   rC   rC   )rP   zRGBA;16L)rP   zRGBA;16B)rO   zRGBX;16L)rO   zRGBX;16B)rP   zRGBa;16L)rP   zRGBa;16B)ÚPzP;1)r[   zP;1R)r[   zP;2)r[   zP;2R)r[   zP;4)r[   zP;4R)r[   r[   )r[   ÚPX)ÚPAr]   )r[   zP;R)ÚCMYKr^   )r^   ÚCMYKX)r^   ÚCMYKXX)r^   zCMYK;16L)r^   zCMYK;16B)ÚLABra   c              #  ó>   #   • U  H  n[        US    5      v •  M     g7f)r*   N)Úlen)Ú.0Úkey_tps     Ú5/usr/lib/python3/dist-packages/PIL/TiffImagePlugin.pyÚ	<genexpr>rg     s   é € ÐA²y¨Vœ#˜f Q™iŸ.˜.²yùs   ‚)ó   MM *ó   II* s   MM* s   II *s   MM +s   II+ Úlibtiff_support_custom_tagsTz*Support for LibTIFF earlier than version 4rA   c                ó   • U S S [         ;   $ ©Nr*   )ÚPREFIXES©Úprefixs    rf   Ú_acceptrp   "  s   € Ø�"�1ˆ:œÑ!Ð!ó    c                óŒ   • [        U 5      S:„  n[        U(       a  SU -  OU 5      R                  U5      nU(       a  US S S2   $ U$ )Nr   éÿÿÿÿ)ÚabsÚIFDRationalÚlimit_rational)ÚvalÚmax_valÚinvÚn_ds       rf   Ú_limit_rationalr{   &  sC   € ô ˆc‹(�Q‰,€CÜ
¦�a˜#’g¨#Ó
.×
=Ñ
=¸gÓ
F€CÞˆ3‰t�ˆt‰9Ð$ Ð$rq   ru   c                ó  • [        U 5      nUR                  UR                  4n[        S U 5       5      U:  a  [	        U [        U5      5      n[        S U 5       5      n[        U5      U:”  a  [	        US   US   -  U5      nU$ )Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7f©N©Úfloat©rd   Úis     rf   rg   Ú)_limit_signed_rational.<locals>.<genexpr>4  s   é € Ð
!šS˜Œ5��8ˆ8šSùó   ‚c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr~   r   r�   s     rf   rg   rƒ   7  s   é € Ð,ª 1”e˜A—h�hªùr„   r   r   )r   Ú	numeratorÚdenominatorÚminr{   rt   ÚtupleÚmax)rw   rx   Úmin_valÚfracrz   Ú	n_d_floats         rf   Ú_limit_signed_rationalrŽ   .  s~   € ô �C‹=€DØ-1¯^©^¸T×=MÑ=MÐ-M€Cä
Ñ
!™SÓ
!Ó! GÓ+Ü˜c¤3 w£<Ó0ˆäÑ,©Ó,Ó,€IÜ
ˆ9ƒ~˜ÓÜ˜i¨™l¨Y°q©\Ñ9¸7ÓCˆà€Jrq   c                ó$   ^ •       SU 4S jjnU$ )Nc                ó6   >• [        U R                  T5      " U6 $ r~   )ÚgetattrÚ_val)ÚselfÚargsÚops     €rf   ÚdelegateÚ_delegate.<locals>.delegateF  s   ø€ ô �t—y‘y "Ô% tÐ,Ð,rq   )r“   ru   r”   ztuple[float, ...]Úreturnzbool | float | Fractionr>   )r•   r–   s   ` rf   Ú	_delegater™   E  s'   ø€ ð-Øð-Ø"3ð-à	 ÷-ð
 €Orq   c                  óp  • \ rS rSrSr Sr S*     S+S jjr\S,S j5       r\S-S j5       r	S.S jr
S/S jrS-S	 jrS0S
 jrS1S jrS2S jr \" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r \" S5      r!\" S5      r"\" S5      r#\" S 5      r$\" S!5      r%\" S"5      r&\" S#5      r'\" S$5      r(\" S%5      r)\" S&5      r*\+" \,S'5      (       a  \" S'5      r-S(r.g)S(r.g))3ru   iN  z´Implements a rational class where 0/0 is a legal value to match
the in the wild use of exif rationals.

e.g., DigitalZoomRatio - 0.00/0.00  indicates that no digital zoom was used
)Ú
_numeratorÚ_denominatorr’   c                ó8  • U   [        U[        5      (       a4  UR                  U l        UR                  U l        UR                  U l        g[        U[        5      (       a#  UR                  U l        UR                  U l        O-[        (       a  [        [        U5      U l        OXl        X l        US:X  a  [        S5      U l        gUS:X  a  [        U5      U l        g[        U5      U:X  a  [        [        U5      U5      U l        g[        X-  5      U l        g)zŽ
:param value: either an integer numerator, a
float/rational/other number, or an IFDRational
:param denominator: Optional integer denominator
Nr   Únanr   )Ú
isinstanceru   r†   r›   r‡   rœ   r’   r   r
   r   r   r€   Úint)r“   Úvaluer‡   s      rf   Ú__init__ÚIFDRational.__init__\  sÒ   € ñ 	Ü�eœ[×)Ñ)Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÔØŸ
™
ˆDŒIØä�eœX×&Ñ&Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÕçŠ}Ü"&¤|°UÓ";�•à"'”Ø +Ôà˜!ÓÜ˜e›ˆD�IØ˜AÓÜ  ›ˆD�IÜ�‹Z˜5Ó Ü ¤ U£¨[Ó9ˆD�Iä  Ñ!4Ó5ˆD�Irq   c                ó   • U R                   $ r~   )r›   ©r“   s    rf   r†   ÚIFDRational.numerator~  s   € à�‰Ðrq   c                ó   • U R                   $ r~   )rœ   r¥   s    rf   r‡   ÚIFDRational.denominator‚  s   € à× Ñ Ð rq   c                óú   • U R                   S:X  a  U R                  U R                   4$ [        U R                  [        5      (       d   eU R                  R                  U5      nUR                  UR                   4$ )zm

:param max_denominator: Integer, the maximum denominator value
:returns: Tuple of (numerator, denominator)
r   )r‡   r†   rŸ   r’   r   Úlimit_denominator)r“   Úmax_denominatorÚfs      rf   rv   ÚIFDRational.limit_rational†  se   € ð ×Ñ˜qÓ Ø—>‘> 4×#3Ñ#3Ð3Ð3ä˜$Ÿ)™)¤X×.Ñ.Ð.Ð.Ø�I‰I×'Ñ'¨Ó8ˆØ�{‰{˜AŸM™MÐ)Ð)rq   c                ó>   • [        [        U R                  5      5      $ r~   )Ústrr€   r’   r¥   s    rf   Ú__repr__ÚIFDRational.__repr__”  s   € Ü”5˜Ÿ™Ó#Ó$Ð$rq   c                ó6   • U R                   R                  5       $ r~   )r’   Ú__hash__r¥   s    rf   r³   ÚIFDRational.__hash__—  s   € Ø�y‰y×!Ñ!Ó#Ð#rq   c                ó¤   • U R                   n[        U[        5      (       a  UR                   n[        U[        5      (       a  [        U5      nX!:H  $ r~   )r’   rŸ   ru   r€   )r“   Úotherrw   s      rf   Ú__eq__ÚIFDRational.__eq__š  s?   € Ø�i‰iˆÜ�eœ[×)Ñ)Ø—J‘JˆEÜ�eœU×#Ñ#Ü˜“*ˆCØ‰|Ðrq   c                óH   • U R                   U R                  U R                  /$ r~   )r’   r›   rœ   r¥   s    rf   Ú__getstate__ÚIFDRational.__getstate__¢  s   € Ø—	‘	˜4Ÿ?™?¨D×,=Ñ,=Ð>Ð>rq   c                ó  • [         R                  U S5        Uu  p#n[        U[        [        45      (       d   eX l        [        (       a  [        [        U5      U l	        OX0l	        [        U[        5      (       d   eX@l        g ©Nr   )ru   r¢   rŸ   r€   r   r’   r
   r   r   r›   r    rœ   )r“   Ústater’   r›   rœ   s        rf   Ú__setstate__ÚIFDRational.__setstate__¥  sj   € Ü×Ñ˜T 1Ô%Ø).Ñ&ˆ˜,Ü˜$¤¬Ð 1×2Ñ2Ð2Ð2ØŒ	ßŠ=Ü"¤<°Ó<ˆD�Oà(ŒOÜ˜,¬×,Ñ,Ð,Ð,Ø(Õrq   Ú__add__Ú__radd__Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__Ú__pos__Ú__neg__Ú__abs__Ú	__trunc__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__bool__Ú__ceil__Ú	__floor__Ú	__round__Ú__int__)rœ   r›   r’   Nr=   )r¡   úfloat | Fraction | IFDRationalr‡   r    r˜   ÚNone)r˜   r   ©r˜   r    )r«   r    r˜   ztuple[IntegralLike, int]©r˜   r¯   )r¶   Úobjectr˜   Úbool)r˜   ú%list[float | Fraction | IntegralLike])r¾   râ   r˜   rÝ   )/Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r¢   Úpropertyr†   r‡   rv   r°   r³   r·   rº   r¿   r™   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   Úhasattrr   rÛ   Ú__static_attributes__r>   rq   rf   ru   ru   N  s¥  † ñðð
 7€Ið IJð 6Ø3ð 6ØBEð 6à	õ 6ðD óó ðð ó!ó ð!ô*ô%ô$ôô?ô
)ðñ ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜MÓ*€KÙ˜^Ó,€LÙ˜^Ó,€LÙ˜oÓ.€MÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜	Ó"€GÙ˜	Ó"€GÙ˜+Ó&€IÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ˜Ó$€HÙ˜Ó$€HÙ˜+Ó&€IÙ˜+Ó&€Iáˆx˜×#Ñ#Ù˜IÓ&‹ò $rq   ÚImageFileDirectory_v2c                ó   ^ ^• SU U4S jjnU$ )Nc                ó®   >• SSK Jn  U R                  R                  S5      (       a"  U R                  SS  R	                  SS5      UT'   TU 4[
        T'   U $ )Nr   r   Úload_r,   Ú_Ú )r   r   rã   Ú
startswithÚreplaceÚ_load_dispatch)Úfuncr   ÚidxÚsizes     €€rf   Ú	decoratorÚ#_register_loader.<locals>.decoratorÜ  sO   ø€ Ý#à�=‰=×#Ñ# G×,Ñ,ØŸ™ q rÐ*×2Ñ2°3¸Ó<ˆE�#‰JØ" D˜jŒ�sÑØˆrq   )rõ   Ú_LoaderFuncr˜   rú   r>   )rö   r÷   rø   s   `` rf   Ú_register_loaderrû   Û  s   ù€ ÷ð ð Ðrq   c                ó   ^ • SU 4S jjnU$ )Nc                ó   >• U [         T'   U $ r~   )Ú_write_dispatch)rõ   rö   s    €rf   rø   Ú#_register_writer.<locals>.decoratorè  s   ø€ Ø#Œ˜ÑØˆrq   )rõ   úCallable[..., Any]r˜   r   r>   )rö   rø   s   ` rf   Ú_register_writerr  ç  s   ø€ ÷ð Ðrq   c                ó°   ^^• SSK Jn  U u  nmnX1U'   [        R                  " ST 35      m S       SUU4S jjjnTU4[        U'   U4S j[
        U'   g )Nr   r   Ú=c                óH   >• U R                  [        U5      T-   T 3U5      $ r~   )Ú_unpackrc   )r“   ÚdataÚ
legacy_apiÚfmtr÷   s      €€rf   Úbasic_handlerÚ&_register_basic.<locals>.basic_handlerö  s)   ø€ ð �|‰|œs 4›y¨DÑ0Ð1°#°Ð7¸Ó>Ð>rq   c                ó>   >^ • SR                  UU 4S jU 5       5      $ )Nrq   c              3  óH   >#   • U  H  nTR                  TU5      v •  M     g 7fr~   )Ú_pack)rd   r¡   r  r“   s     €€rf   rg   Ú4_register_basic.<locals>.<lambda>.<locals>.<genexpr>ý  s   øé € Ð<²V¨E�—‘˜C ×'Ð'²Vùs   ƒ"©Újoin)r“   Úvaluesr  s   ` €rf   Ú<lambda>Ú!_register_basic.<locals>.<lambda>ü  s   ù€ Ø�‰Õ<±VÓ<Ô<rq   ©T)r“   rì   r  Úbytesr  rá   r˜   útuple[Any, ...])r   r   ÚstructÚcalcsizerô   rþ   )Úidx_fmt_namer   rö   Únamer	  r  r÷   s        @@rf   Ú_register_basicr  ï  sz   ù€ Ýà!�N€CˆˆdØˆ#�JÜ�?Š?˜Q˜s˜e˜9Ó%€Dð FJð?Ø#ð?Ø+0ð?Ø>Bð?à	÷?ñ ?ð
  Ð-„N�3Ñô„O�CÒrq   c                  óò  • \ rS rSr% Sr0 rS\S'   0 rS\S'      S?       S@S jjr\	" S	 5      r
\	" S
 5      r\	SAS j5       r\R                  SBS j5       rSCS jrSDS jrSES jrSFS jrSGS jrSHS jrSIS jrSJS jrSKS jrSLS jrSMS jrSNS jr\" \" \\R<                  SS4\R>                  SS4\R@                  SS4\RB                  SS 4\RD                  S!S"4\RF                  S#S$4\RH                  S%S&4\RJ                  SS4\RL                  S'S(4/	5      5        \'" S)S)5      SOSPS* jj5       r(\)" S)5      SQS+ j5       r*\'" S,S)5      SOSRS- jj5       r+\)" S,5      SSS. j5       r,\'" S/S05       SO     STS1 jj5       r-\)" S/5      SUS2 j5       r.\'" S3S)5      SOSPS4 jj5       r/\)" S35      SVS5 j5       r0\'" S6S05       SO     STS7 jj5       r1\)" S65      SUS8 j5       r2SWS9 jr3SXS: jr4S; r5SYSZS< jjr6S[S= jr7S>r8g)\rì   é  aß  This class represents a TIFF tag directory.  To speed things up, we
don't decode tags unless they're asked for.

Exposes a dictionary interface of the tags in the directory::

    ifd = ImageFileDirectory_v2()
    ifd[key] = 'Some Data'
    ifd.tagtype[key] = TiffTags.ASCII
    print(ifd[key])
    'Some Data'

Individual values are returned as the strings or numbers, sequences are
returned as tuples of the values.

The tiff metadata type of each item is stored in a dictionary of
tag types in
:attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types
are read from a tiff file, guessed from the type added, or added
manually.

Data Structures:

    * ``self.tagtype = {}``

      * Key: numerical TIFF tag number
      * Value: integer corresponding to the data type from
        :py:data:`.TiffTags.TYPES`

      .. versionadded:: 3.0.0

'Internal' data structures:

    * ``self._tags_v2 = {}``

      * Key: numerical TIFF tag number
      * Value: decoded data, as tuple for multiple values

    * ``self._tagdata = {}``

      * Key: numerical TIFF tag number
      * Value: undecoded byte string from file

    * ``self._tags_v1 = {}``

      * Key: numerical TIFF tag number
      * Value: decoded data in the v1 format

Tags will be found in the private attributes ``self._tagdata``, and in
``self._tags_v2`` once decoded.

``self.legacy_api`` is a value for internal use, and shouldn't be changed
from outside code. In cooperation with
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`, if ``legacy_api``
is true, then decoded tags will be populated into both ``_tags_v1`` and
``_tags_v2``. ``_tags_v2`` will be used if this IFD is used in the TIFF
save routine. Tags should be read from ``_tags_v1`` if
``legacy_api == true``.

z"dict[int, tuple[int, _LoaderFunc]]rô   zdict[int, Callable[..., Any]]rþ   Nc                óð  • [        U5      (       d  S[        U5       S3n[        U5      eUb  UOUSS U l        U R                  [        :X  a  SU l        O)U R                  [        :X  a  SU l        OSn[        U5      eUS   S:H  U l        X0l        0 U l	         U R                  5         U R                  (       a  U R                  S	US
S 5      S   OU R                  SUSS 5      S   U l        SU l        g)a_  Initialize an ImageFileDirectory.

To construct an ImageFileDirectory from a real file, pass the 8-byte
magic header to the constructor.  To only set the endianness, pass it
as the 'prefix' keyword argument.

:param ifh: One of the accepted magic headers (cf. PREFIXES); also sets
      endianness.
:param prefix: Override the endianness of the file.
znot a TIFF file (header z not valid)Nr&   Ú>Ú<znot a TIFF IFDé+   ÚQr2   r   r@   r*   F)rp   ÚreprÚSyntaxErrorÚ_prefixÚMMÚ_endianÚIIÚ_bigtiffÚgroupÚtagtypeÚresetr  ÚnextÚ_legacy_api)r“   Úifhro   r*  Úmsgs        rf   r¢   ÚImageFileDirectory_v2.__init__G  sé   € ô  �s�|‰|Ø,¬T°#«Y¨K°{ÐCˆCÜ˜cÓ"Ð"Ø!'Ñ!3‘v¸¸R¸a¸ˆŒØ�<‰<œ2ÓØˆD�LØ�\‰\œRÓØˆD�Là"ˆCÜ˜cÓ"Ð"Ø˜A™ "™ˆŒØŒ
Ø')ˆŒØ'Ø�
‰
Œð �}�}ð �L‰L˜˜c ! "˜gÓ& qÒ)à—‘˜c 3 q r 7Ó+¨AÑ.ð 	Œ	ð
 !ˆÕrq   c                ó   • U R                   $ r~   )r%  r¥   s    rf   r  ÚImageFileDirectory_v2.<lambda>n  ó   €  4§<¢<rq   c                ó   • U R                   $ r~   )Ú_offsetr¥   s    rf   r  r3  o  r4  rq   c                ó   • U R                   $ r~   ©r.  r¥   s    rf   r  Ú ImageFileDirectory_v2.legacy_apiq  s   € à×ÑÐrq   c                ó   • Sn[        U5      e)Nz"Not allowing setting of legacy api)Ú	Exception)r“   r¡   r0  s      rf   r  r9  u  s   € à2ˆÜ˜‹nÐrq   c                óX   • 0 U l         0 U l        0 U l        0 U l        S U l        S U l        g r~   )Ú_tags_v1Ú_tags_v2Ú_tagdatar+  Ú_nextr6  r¥   s    rf   r,  ÚImageFileDirectory_v2.resetz  s,   € Ø(*ˆŒØ(*ˆŒØ*,ˆŒØˆŒØˆŒ
Ø#'ˆ�rq   c                ó*   • [        [        U 5      5      $ r~   )r¯   Údictr¥   s    rf   Ú__str__ÚImageFileDirectory_v2.__str__‚  s   € Ü”4˜“:‹Ðrq   c                óª   • U R                  5        VVs0 s H0  u  p[        R                  " XR                  5      R                  U_M2     snn$ s  snnf )zi
:returns: dict of name|key: value

Returns the complete tag dictionary, with named tags where possible.
)Úitemsr   Úlookupr*  r  )r“   Úcoder¡   s      rf   ÚnamedÚImageFileDirectory_v2.named…  sI   € ð  $Ÿz™zœ|ô
â+‘�ô �OŠO˜D§*¡*Ó-×2Ñ2°EÒ9Ù+ò
ð 	
ùó 
s   ”7Ac                ój   • [        [        U R                  5      [        U R                  5      -  5      $ r~   )rc   Úsetr?  r>  r¥   s    rf   Ú__len__ÚImageFileDirectory_v2.__len__�  ó$   € Ü”3�t—}‘}Ó%¬¨D¯M©MÓ(:Ñ:Ó;Ð;rq   c                ó(  • XR                   ;  aD  U R                  U   nU R                  U   nU R                  U   u  pEU" XU R                  5      X'   U R                   U   nU R                  (       a  [        U[        [        45      (       d  U4nU$ r~   )r>  r?  r+  rô   r  rŸ   r‰   r  )r“   Útagr  Útypr÷   Úhandlerrw   s          rf   Ú__getitem__Ú!ImageFileDirectory_v2.__getitem__“  s}   € Ø—m‘mÓ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆDÙ ¨D¯O©OÓ<ˆD‰IØ�m‰m˜CÑ ˆØ�?�?¤:¨c´E¼5°>×#BÑ#BØ�&ˆCØˆ
rq   c                óH   • XR                   ;   =(       d    XR                  ;   $ r~   )r>  r?  ©r“   rR  s     rf   Ú__contains__Ú"ImageFileDirectory_v2.__contains__ž  ó   € Ø—m‘mÑ#×; s¯m©mÑ';Ð;rq   c                ó<   • U R                  XU R                  5        g r~   )Ú_setitemr  )r“   rR  r¡   s      rf   Ú__setitem__Ú!ImageFileDirectory_v2.__setitem__¡  s   € Ø�‰�c $§/¡/Õ2rq   c           	     ó¦	  ^• [         [        [        4n[        R                  " XR
                  5      m[        X$5      (       a  U/OUnXR                  ;  Gaq  TR                  (       a  TR                  U R                  U'   GOE[        R                  U R                  U'   [        S U 5       5      (       ae  U H@  n[        U[        5      (       d   eUS:  d  M"  [        R                  U R                  U'     GOÍ   [        R                  U R                  U'   GO¬[        S U 5       5      (       a÷  SnSnSn	U H]  n[        U[        5      (       d   eU(       a  SUs=::  a  S:  d  O  SnU(       a  SUs=:  a  S:  d  O  SnU	(       d  MS  US:  d  M[  Sn	M_     U(       a  [        R                  U R                  U'   GOU(       a  [        R                   U R                  U'   OáU	(       a  [        R"                  U R                  U'   O¼[        R$                  U R                  U'   Ož[        S	 U 5       5      (       a  [        R&                  U R                  U'   Oi[        S
 U 5       5      (       a  [        R(                  U R                  U'   O4[        S U 5       5      (       a  [        R*                  U R                  U'   U R                  U   [        R                  :X  a:  U Vs/ s H,  n[        U[        5      (       a  UR-                  SS5      OUPM.     nnOSU R                  U   [        R                  :X  a2  U Vs/ s H%  n[        U[        5      (       a  [/        U5      OUPM'     nnU R                  U   [        R"                  :H  =(       a    [        U[0        5      n
U
(       d  [3        U4S jU 5       5      nU(       a  U R4                  OU R6                  nU
(       d—  TR8                  S:X  dD  U R                  U   [        R*                  :X  d#  TR8                  cY  [;        U5      S:X  aJ  U(       dC  U(       a4  U R                  U   [        R                  [        R                  4;   a  U4n Uu  X±'   g X[U'   g s  snf s  snf ! [<         a0    [>        R@                  " SU S[;        U5       S35        US   X±'    g f = f)Nc              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )rŸ   ru   ©rd   Úvs     rf   rg   Ú1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¯  s   é € ÐBº6°a”z !¤[×1Ð1º6ùó   ‚r   c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )rŸ   r    rb  s     rf   rg   rd  ·  ó   é € Ð<²V°œ A¤s×+Ð+²Vùre  Tr    Fi €ÿÿi €  c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )rŸ   r€   rb  s     rf   rg   rd  Ë  ó   é € Ð>²v°!œ A¤u×-Ð-²vùre  c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )rŸ   r¯   rb  s     rf   rg   rd  Í  rg  re  c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )rŸ   r  rb  s     rf   rg   rd  Ï  ri  re  Úasciiró   c              3  ót   >#   • U  H-  n[        U[        5      (       a  TR                  U5      OUv •  M/     g 7fr~   )rŸ   r¯   Úcvt_enum)rd   r¡   Úinfos     €rf   rg   rd  Ü  s2   øé € ð â#�Eô )3°5¼#×(>Ñ(>�—‘˜eÔ$ÀEÔIÚ#ùs   ƒ58r   zMetadata Warning, tag z had too many entries: z, expected 1)!r   r  r¯   r   rH  r*  rŸ   r+  ÚtypeÚ	UNDEFINEDÚallru   ÚSIGNED_RATIONALÚRATIONALr    ÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEÚencoder€   rC  r‰   r=  r>  Úlengthrc   Ú
ValueErrorÚwarningsÚwarn)r“   rR  r¡   r  Ú	basetypesr  rc  ÚshortÚsigned_shortÚlongÚis_ifdÚdestro  s               @rf   r]  ÚImageFileDirectory_v2._setitem¤  sÂ  ø€ ÜœU¤CÐ(ˆ	ä�Š˜s§J¡JÓ/ˆÜ& u×8Ñ8�%‘¸eˆà—l‘lÔ"Ø�y�yØ$(§I¡I�—‘˜SÓ!ä$,×$6Ñ$6�—‘˜SÑ!ÜÑB¹6ÓB×BÑBÛ#˜Ü)¨!¬[×9Ñ9Ð9Ð9Ø˜q�5Ü08×0HÑ0H˜DŸL™L¨Ñ-Ú!ñ	 $ô -5×,=Ñ,=˜Ÿ™ SÓ)ÜÑ<±VÓ<×<Ñ<Ø �EØ#'�LØ�DÛ#˜Ü)¨!¬S×1Ñ1Ð1Ð1Þ ¨!¨q­.°5­.Ø$)˜EÞ'°¸AÕ1EÀÕ1EØ+0˜Lß˜4 A¨¥EØ#(šDñ $ö Ü,4¯N©N˜Ÿ™ SÓ)Þ%Ü,4×,AÑ,A˜Ÿ™ SÒ)ÞÜ,4¯M©M˜Ÿ™ SÒ)ä,4×,@Ñ,@˜Ÿ™ SÒ)ÜÑ>±vÓ>×>Ñ>Ü(0¯©�D—L‘L Ò%ÜÑ<±VÓ<×<Ñ<Ü(0¯©�D—L‘L Ò%ÜÑ>±vÓ>×>Ñ>Ü(0¯©�D—L‘L Ñ%à�<‰<˜Ñ¤× 2Ñ 2Ó2ñ  óâ�Aô 1;¸1¼c×0BÑ0B�—‘˜ )Ô,ÈÒIÙð ð ˆFð �\‰\˜#Ñ¤(×"3Ñ"3Ó3ÙEKÓLÂVÀ¤*¨Q´×"4Ñ"4”e˜A”h¸!Ò;ÁVˆFÐLà—‘˜cÑ"¤h§m¡mÑ3×P¼
À6Ì4Ó8PˆÞÜô á#óó ˆFö
 !+ˆt�}Š}°·±ˆö Ø�[‰[˜AÓØ�|‰|˜CÑ ¤H§M¡MÓ1Ø—‘Ñ#¬¨F«°qÓ(8Æö ˜dŸl™l¨3Ñ/Ü×!Ñ!Ü×(Ñ(ð4ó ð !˜�ð&Ø%‘�’ð �ŠIùò[ùò
 Møô: ó &ä—’Ø,¨S¨EÐ1HÜ˜6“{�m <ð1ôð # 1™I�“	ð&ús   Ë.3RÍ	,RÒ R Ò7SÓSc                ó¬   • U R                   R                  US 5        U R                  R                  US 5        U R                  R                  US 5        g r~   )r>  Úpopr=  r?  rX  s     rf   Ú__delitem__Ú!ImageFileDirectory_v2.__delitem__  s>   € Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÕ$rq   c                ój   • [        [        U R                  5      [        U R                  5      -  5      $ r~   )ÚiterrM  r?  r>  r¥   s    rf   Ú__iter__ÚImageFileDirectory_v2.__iter__  ó$   € Ü”C˜Ÿ™Ó&¬¨T¯]©]Ó);Ñ;Ó<Ð<rq   c                óJ   • [         R                  " U R                  U-   U5      $ r~   )r  Úunpackr'  )r“   r  r  s      rf   r  ÚImageFileDirectory_v2._unpack
  s   € Ü�}Š}˜TŸ\™\¨CÑ/°Ó6Ð6rq   c                óJ   • [         R                  " U R                  U-   /UQ76 $ r~   )r  Úpackr'  )r“   r  r  s      rf   r  ÚImageFileDirectory_v2._pack  s   € Ü�{Š{˜4Ÿ<™<¨#Ñ-Ð7°Ò7Ð7rq   ÚHr‚  r@   r„  Úbzsigned byteÚhzsigned shortÚlzsigned longr¬   r€   ÚdÚdoubler"  Úlong8r   c                ó   • U$ r~   r>   ©r“   r  r  s      rf   Ú	load_byteÚImageFileDirectory_v2.load_byte!  ó   € àˆrq   c                óˆ   • [        U[        5      (       a  [        U5      n[        U[        5      (       a  [        U45      nU$ r~   )rŸ   ru   r    r  ©r“   r  s     rf   Ú
write_byteÚ ImageFileDirectory_v2.write_byte%  s5   € ä�dœK×(Ñ(Ü�t“9ˆDÜ�dœC× Ñ Ü˜$˜“>ˆDØˆrq   r&   c                ó\   • UR                  S5      (       a  US S nUR                  SS5      $ )Nó    rs   zlatin-1ró   )ÚendswithÚdecoderŸ  s      rf   Úload_stringÚ!ImageFileDirectory_v2.load_string-  s-   € à�=‰=˜×ÑØ˜˜�9ˆDØ�{‰{˜9 iÓ0Ð0rq   c                óš   • [        U[        5      (       a  [        U5      n[        U[        5      (       d  UR	                  SS5      nUS-   $ )Nrl  ró   r¨  )rŸ   r    r¯   r  r|  ©r“   r¡   s     rf   Úwrite_stringÚ"ImageFileDirectory_v2.write_string3  sA   € ô �eœS×!Ñ!Ü˜“JˆEÜ˜%¤×'Ñ'Ø—L‘L ¨)Ó4ˆEØ�u‰}Ðrq   r,   r2   c           
     ó®   ^^• U R                  [        U5      S-   S3U5      nSU4S jjm[        U4S j[        US S S2   USS S2   5       5       5      $ )Nr*   r@   c                ó.   >• T(       a  X4$ [        X5      $ r~   ©ru   ©Úar˜  r  s     €rf   ÚcombineÚ4ImageFileDirectory_v2.load_rational.<locals>.combineB  ó   ø€ Þ'�A�6Ð>¬[¸Ó->Ð>rq   c              3  ó8   >#   • U  H  u  pT" X5      v •  M     g 7fr~   r>   ©rd   ÚnumÚdenomr¶  s      €rf   rg   Ú6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>E  ó   øé € ÐVÒ;U©Z¨S‘W˜S×(Ð(Ò;Uùó   ƒr&   r   ©rµ  r    r˜  r    r˜   ztuple[int, int] | IFDRational©r  rc   r‰   Úzip©r“   r  r  Úvalsr¶  s     ` @rf   Úload_rationalÚ#ImageFileDirectory_v2.load_rational<  óW   ù€ ð �|‰|œs 4›y¨A™~Ð.¨aÐ0°$Ó7ˆ÷	?ô ÔV¼3¸tÁCÀaÀC¹yÈ$ÈqÈtÐRSÈtÉ*Ô;UÓVÓVÐVrq   c                ó:   ^ • SR                  U 4S jU 5       5      $ )Nrq   c              3  ó^   >#   • U  H"  nTR                   " S /[        US5      Q76 v •  M$     g7f)Ú2Ll   ÿÿ N)r  r{   ©rd   rŒ   r“   s     €rf   rg   Ú7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>I  s)   øé € ð 
ÚLRÀDˆD�JŠJ�tÐ?œo¨d°IÓ>×?ÊFùs   ƒ*-r  ©r“   r  s   ` rf   Úwrite_rationalÚ$ImageFileDirectory_v2.write_rationalG  s!   ø€ à�x‰xô 
ÙLRó
ó 
ð 	
rq   r0   c                ó   • U$ r~   r>   rŸ  s      rf   Úload_undefinedÚ$ImageFileDirectory_v2.load_undefinedM  r¢  rq   c                ó¦   • [        U[        5      (       a  [        U5      n[        U[        5      (       a  [        U5      R	                  SS5      nU$ )Nrl  ró   )rŸ   ru   r    r¯   r|  r®  s     rf   Úwrite_undefinedÚ%ImageFileDirectory_v2.write_undefinedQ  s@   € ä�eœ[×)Ñ)Ü˜“JˆEÜ�eœS×!Ñ!Ü˜“J×%Ñ% g¨yÓ9ˆEØˆrq   é
   c           
     ó®   ^^• U R                  [        U5      S-   S3U5      nSU4S jjm[        U4S j[        US S S2   USS S2   5       5       5      $ )Nr*   rš  c                ó.   >• T(       a  X4$ [        X5      $ r~   r³  r´  s     €rf   r¶  Ú;ImageFileDirectory_v2.load_signed_rational.<locals>.combine_  r¸  rq   c              3  ó8   >#   • U  H  u  pT" X5      v •  M     g 7fr~   r>   rº  s      €rf   rg   Ú=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>b  r¾  r¿  r&   r   rÀ  rÁ  rÃ  s     ` @rf   Úload_signed_rationalÚ*ImageFileDirectory_v2.load_signed_rationalY  rÇ  rq   c                ó:   ^ • SR                  U 4S jU 5       5      $ )Nrq   c           	   3  ó`   >#   • U  H#  nTR                   " S /[        USS5      Q76 v •  M%     g7f)Ú2liÿÿÿi   €N)r  rŽ   rË  s     €rf   rg   Ú>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>f  s0   øé € ð 
â�ð �JŠJ�tÐPÔ4°T¸9ÀhÓO×PÚùs   ƒ+.r  rÍ  s   ` rf   Úwrite_signed_rationalÚ+ImageFileDirectory_v2.write_signed_rationald  s!   ø€ à�x‰xô 
áó
ó 
ð 	
rq   c                ó€   • UR                  U5      n[        U5      U:w  a  SU S[        U5       S3n[        U5      eU$ )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )Úreadrc   ÚOSError)r“   Úfpr÷   Úretr0  s        rf   Ú_ensure_readÚ"ImageFileDirectory_v2._ensure_readk  sN   € Ø�g‰g�d‹mˆÜˆs‹8�tÓð%Ø%) FÐ*>¼sÀ3»x¸jÈðLð ô ˜#“,ÐØˆ
rq   c           
     óÂ  • U R                  5         UR                  5       U l         U R                  (       a"  U R	                  SU R                  US5      5      O!U R	                  SU R                  US5      5      S   n[        U5       GH  nU R                  (       a"  U R	                  SU R                  US5      5      O!U R	                  SU R                  US	5      5      u  pEpg[        R                  " X@R                  5      R                  n[        R                  " US
5      n	SU SU SU	 SU S3	n
 U R                  U   u  p¼Xk-  nXÐR                  (       a  SOS:”  a{  UR                  5       nU R	                  U R                  (       a  SOSU5      u  nU
SU SU 3-  n
UR#                  U5        [$        R&                  " X5      nUR#                  U5        OUS U n[)        U5      U:w  a@  [*        R,                  " SU S[)        U5       SU 35        [        R!                  U
5        GM©  U(       d  [        R!                  U
5        GMÈ  XpR.                  U'   XPR0                  U'   U
S-  n
X­S:”  a  SU S3O
[3        U5      -  n
[        R!                  U
5        GM     U R                  (       a"  U R	                  SU R                  US5      5      O!U R	                  SU R                  US5      5      u  U l        g ! [         a    [        R!                  SX¥5         GM�  f = f! [6         a)  n
[*        R,                  " [9        U
5      5         S n
A
g S n
A
ff = f)Nr"  r2   r—  r&   r   ÚHHQ8sé   ÚHHL4srA   Úunknownztag: ú (ú
) - type: Ú)z%s - unsupported type %sr*   r@   z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read rå  z. Skipping tag z
 - value: rH   ú<table: ú bytes>)r,  Útellr6  r)  r  rê  Úranger   rH  r*  r  r   Úgetrô   ÚKeyErrorÚloggerÚdebugÚseekr   Ú
_safe_readrc   r  r€  r?  r+  r#  r-  rç  r¯   )r“   rè  Ú	tag_countr‚   rR  rS  Úcountr  ÚtagnameÚtypnamer0  Ú	unit_sizerT  r÷   ÚhereÚoffsets                   rf   ÚloadÚImageFileDirectory_v2.loadu  së  € Ø�
‰
ŒØ—w‘w“yˆŒð=	ð —=—=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@Øñ	ˆIô
 ˜9×%�ð —}—}ð —L‘L ¨$×*;Ñ*;¸BÀÓ*CÔDàŸ™ g¨t×/@Ñ/@ÀÀRÓ/HÓIñ &�˜%ô #Ÿ/š/¨#¯z©zÓ:×?Ñ?�ÜŸ)š) C¨Ó3�Ø˜g˜Y b¨¨¨Z¸°yÀÀ3À%ÀqÐI�ðØ)-×)<Ñ)<¸SÑ)AÑ&�Ið Ñ(�Ø§§™1°1Ó5ØŸ7™7›9�DØ $§¡°D·M·M©SÀsÈDÓ Q‘I�VØ˜_¨T¨FÐ2DÀVÀHÐMÑM�CØ—G‘G˜F”OÜ$×/Ò/°Ó9�DØ—G‘G˜D•Mà  ˜;�Dä�t“9 Ó$Ü—M’Mð-Ø-1¨FÐ2FÄsÈ4ÃyÀkð R)Ø),¨ð/ôô
 —L‘L Ô%ÚæÜ—L‘L Ô%Úà%)—‘˜cÑ"Ø$'—‘˜SÑ!à�|Ñ#�Ø¸"³9˜ $  wÑ/Ä$ÀtÃ*ÑL�ä—‘˜S×!ñ] &ðd —=—=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@ñ ˆT�YøôG  ó Ü—L‘LÐ!;¸SÔFÛðûôP ó 	Ü�MŠMœ#˜c›(Ô#Üûð	ús=   §DL+ Ä7LÅF:L+ Ì L(Ì#L+ Ì'L(Ì(L+ Ì+
MÌ5MÍMc                ó,  • U R                   U R                  SU R                  (       a  SOS5      -   nU R                  (       a  XR                  SSS5      -  nXR                  (       a  U R                  SS5      -  nU$ U R                  S	S5      -  nU$ )
Nr—  r!  é*   ÚHHr2   r   r"  rC   r@   )r%  r  r)  ©r“   r/  s     rf   Ú_get_ifhÚImageFileDirectory_v2._get_ifh¸  sw   € Ø�l‰l˜TŸZ™Z¨°4·=·=©RÀbÓIÑIˆØ�=�=Ø—:‘:˜d A qÓ)Ñ)ˆCØ§m§mˆt�z‰z˜#˜rÓ"ÑKˆàˆ
ð :>¿¹ÀCÈÓ9KÑKˆàˆ
rq   c                ó¦  • U R                  U R                  (       a  SOS[        U R                  5      5      n/ nU[        U5      [        U R                  5      U R                  (       a  SOS-  -   S-   -  nS nU R                  (       a  SOSnU R                  (       a  SOSn[	        U R                  R                  5       5       GHa  u  pxU[        :X  a  [        U5      nU R                  U   n	[        R                  SXy[        U5      5        U	[        R                  :H  =(       a    [        U[        5      n
U
(       aV  [        U R!                  5       US	9nU R                  U   nUR                  5        H	  u  pÞXëU'   M     UR#                  U5      nO0[        U[$        5      (       a  UOU4nU R&                  U	   " U /UQ76 n[        R(                  " XpR*                  5      R,                  nU
(       a  S
O[.        R0                  " U	S5      nSU SU SU SU	 S3	nU[        U5      S:¼  a  S[        U5       S3O
[3        U5      -  n[        R                  U5        U
(       a  SnOJU	[        R4                  [        R6                  [        R8                  4;   a  [        U5      nO[        U5      n[        U5      U::  a(  UR;                  XyUUR=                  US5      S45        GM&  UR;                  XyUU R                  XQ5      U45        U[        U5      S-   S-  S-  -  nGMd     Ub‹  X4   u  pynp�U(       aO  U R>                  U	   u  nnU" XU R@                  5       Vs/ s H  nUU-   PM
     nnU R&                  U	   " U /UQ76 nO&U R                  XPRC                  XX5      S   U-   5      nXyUX�4X4'   U H[  u  pynp�[        R                  SXyU[        U5      [        U5      5        X R                  U R                  (       a  SOSXyUU5      -  nM]     US-  nU H%  u  pynp�X/-  n[        U5      S-  (       d  M   US-  nM'     U$ s  snf )Nr"  r—  rî  rA   r*   r@   r2   zTag %s, Type: %s, Value: %s)r*  Úifdrð  zsave: rñ  rò  z) - value: rC   rô  rõ  r   r¨  rq   r&   r   z%s %s %s %s %srí  rï  s       )"r  r)  rc   r>  ÚsortedrG  ÚSTRIPOFFSETSr+  rú  rû  r#  r   rw  rŸ   rC  rì   r  Útobytesr‰   rþ   rH  r*  r  r   rø  r¯   r{  rz  rq  ÚappendÚljustrô   r  r  )r“   r  ÚresultÚentriesÚstripoffsetsr  Úfmt_sizerR  r¡   rS  r…  r  r  Úifd_tagÚ	ifd_valuer  r   r  r0  rÿ  r÷   rT  rw   s                          rf   r  ÚImageFileDirectory_v2.tobytesÀ  s¸  € à—‘ 4§=§=™C°c¼3¸t¿}¹}Ó;MÓNˆà<>ˆØ”#�f“+¤ D§M¡MÓ 2¸D¿M¿M±bÈrÑ RÑRÐUVÑVÑVˆØˆð —]—]‰c¨ˆØŸŸ‘1¨1ˆÜ  §¡×!4Ñ!4Ó!6×7‰JˆCØ”lÓ"Ü" 7›|�Ø—,‘,˜sÑ#ˆCÜ�L‰LÐ6¸Ä$ÀuÃ+ÔNØœHŸM™MÑ)×E¬j¸ÄÓ.EˆFÞÜ+¨D¯M©M«OÀ3ÑG�ØŸ™ sÑ+�Ø*0¯,©,®.Ñ&�GØ#,˜“Lñ +9à—{‘{ 6Ó*‘ä",¨U´E×":Ñ":™ÀÀ�Ø×+Ñ+¨CÒ0°Ð?¸Ò?�ä—o’o c¯:©:Ó6×;Ñ;ˆGÞ%‘e¬5¯9ª9°S¸)Ó+DˆGØ˜7˜) 2 c U¨*°W°I¸RÀ¸uÀKÐPˆCØ´C¸³IÀ³O�Xœc $›i˜[¨Ñ0ÌÈVËÑTˆCÜ�L‰L˜Ôö Ø‘ØœŸ™¬¯©¼×8JÑ8JÐKÓKÜ˜D›	‘ä˜F›�ä�4‹y˜HÓ$Ø—‘ ¨%°·±¸HÀeÓ1LÈcÐR×Sà—‘ ¨%°·±¸CÓ1HÈ$ÐOÔPØœ3˜t›9 q™=¨QÑ.°Ñ2Ñ2“ñE 8ðJ Ñ#Ø+2Ñ+@Ñ(ˆC�e˜UÞØ $× 3Ñ 3°CÑ 8‘��gÙ29¸$ÀdÇoÁoÔ2VÓWÒ2V¨3˜# œ,Ñ2V�ÐWØ×+Ñ+¨CÒ0°Ð?¸Ò?‘àŸ
™
 3¯©°SÓ(@ÀÑ(CÀfÑ(LÓM�Ø$'¨e°UÐ$@ˆGÑ!ó -4Ñ(ˆC�e˜UÜ�L‰LÐ)¨3°U¼DÀ»KÌÈdËÔTØ—j‘jØŸ=Ÿ=‘¨g°sÀÈóñ ŠFñ -4ð 	�+Ñˆó -4Ñ(ˆC�e˜UØ‰NˆFÜ�4‹y˜1�}‰}Ø˜%‘’ñ -4ð
 ˆùò- Xs   Í&Qc                óè   • UR                  5       S:X  a  UR                  U R                  5       5        UR                  5       nU R                  U5      nUR                  U5        U[	        U5      -   $ r½   )rö  Úwriter  r  rc   )r“   rè  r  r  s       rf   ÚsaveÚImageFileDirectory_v2.save  sU   € Ø�7‰7‹9˜‹>Ø�H‰H�T—]‘]“_Ô%à—‘“ˆØ—‘˜fÓ%ˆØ
�‰�ÔØœ˜F›Ñ#Ð#rq   )r)  r'  r.  r@  r6  r%  r?  r=  r>  r*  r-  r+  )s   II*     NN)r/  r  ro   zbytes | Noner*  ú
int | Noner˜   rÝ   )r˜   rá   )r¡   rá   r˜   r   ©r˜   rÝ   rß   )r˜   zdict[str, Any]rÞ   ©rR  r    r˜   r   ©rR  rà   r˜   rá   ©rR  r    r¡   r   r˜   rÝ   )rR  r    r¡   r   r  rá   r˜   rÝ   )rR  r    r˜   rÝ   ©r˜   zIterator[int])r  r¯   r  r  r˜   r  )r  r¯   r  r   r˜   r  r  )r  r  r  rá   r˜   r  )r  úbytes | int | IFDRationalr˜   r  )r  r  r  rá   r˜   r¯   )r¡   zstr | bytes | intr˜   r  )r  r  r  rá   r˜   z)tuple[tuple[int, int] | IFDRational, ...])r  ru   r˜   r  )r¡   r%  r˜   r  )rè  ú	IO[bytes]r÷   r    r˜   r  )rè  r&  r˜   rÝ   rQ   )r  r    r˜   r  )rè  r&  r˜   r    )9rã   rä   rå   ræ   rç   rô   Ú__annotations__rþ   r¢   ré   ro   r  r  Úsetterr,  rD  rJ  rN  rU  rY  r^  r]  rŠ  rŽ  r  r  ÚlistÚmapr  r   ru  rw  ÚSIGNED_BYTErv  rx  ÚFLOATry  ÚIFDÚLONG8rû   r   r  r¥  r«  r¯  rÅ  rÎ  rÑ  rÔ  rÜ  râ  rê  r  r  r  r  rë   r>   rq   rf   rì   rì     sØ  ‡ ñ:ðx :<€NÐ6Ó;Ø57€OÐ2Ó7ð 3Ø#Ø ð	%!àð%!ð ð%!ð ð	%!ð
 
õ%!ñN Ñ/Ó0€FÙÑ/Ó0€Fàó ó ð ð ×Ñóó ðô(ôô	
ô<ô	ô<ô3ô\ô|%ô
=ô7ô8ñ 	ÙØà—‘  gÐ.Ø—‘  VÐ,Ø×%Ñ% s¨MÐ:Ø×&Ñ&¨¨^Ð<Ø×%Ñ% s¨MÐ:Ø—‘  gÐ.Ø—‘ # xÐ0Ø—‘˜s FÐ+Ø—‘  gÐ.ð
ó	
ôñ" �a˜Óõó ðñ �aÓóó ðñ �a˜Óõ1ó ð1ñ
 �aÓóó ðñ �a˜Óà.2ðWØðWØ'+ðWà	2ôWó ðWñ �aÓó
ó ð
ñ
 �a˜Óõó ðñ �aÓóó ðñ �b˜!Óà.2ðWØðWØ'+ðWà	2ôWó ðWñ �bÓó
ó ð
ôôAòFöK÷Z$rq   rñ   rð   rï   Úwrite_c                  ó²   ^ • \ rS rSr% SrSU 4S jjr\" S 5      r\" S 5      rS\	S'    \
SS j5       rSS	 jrSS
 jrSS jrSS jrSS jrSS jrSrU =r$ )ÚImageFileDirectory_v1i!  aÒ  This class represents the **legacy** interface to a TIFF tag directory.

Exposes a dictionary interface of the tags in the directory::

    ifd = ImageFileDirectory_v1()
    ifd[key] = 'Some Data'
    ifd.tagtype[key] = TiffTags.ASCII
    print(ifd[key])
    ('Some Data',)

Also contains a dictionary of tag types as read from the tiff image file,
:attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`.

Values are returned as a tuple.

..  deprecated:: 3.0.0
c                ó4   >• [         TU ]  " U0 UD6  SU l        g )NT)Úsuperr¢   r.  )r“   r”   ÚkwargsÚ	__class__s      €rf   r¢   ÚImageFileDirectory_v1.__init__4  s   ø€ Ü‰Ò˜$Ð) &Ò)ØˆÕrq   c                ó   • U R                   $ r~   )r=  r¥   s    rf   r  ÚImageFileDirectory_v1.<lambda>8  s   €  §¢rq   c                ó   • U R                   $ r~   )r?  r¥   s    rf   r  r8  9  s   €  D§M¢Mrq   zdict[int, int]r+  c                óŒ   • U " UR                   S9nUR                  Ul        UR                  Ul        UR                  Ul        U$ )a  Returns an
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
instance with the same data as is contained in the original
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
instance.

:returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`

rn   )ro   r?  r+  r-  )ÚclsÚoriginalr  s      rf   Úfrom_v2ÚImageFileDirectory_v1.from_v2?  s<   € ñ ˜Ÿ™Ñ)ˆØ×(Ñ(ˆŒØ×&Ñ&ˆŒØ—=‘=ˆŒØˆ
rq   c                óÈ   • [        U R                  S9n[        U R                  5      Ul        [        U R                  5      Ul        [        U R
                  5      Ul        U$ )a  Returns an
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
instance with the same data as is contained in the original
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
instance.

:returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`

rn   )rì   ro   rC  r?  r+  r>  )r“   r  s     rf   Úto_v2ÚImageFileDirectory_v1.to_v2Q  sG   € ô $¨4¯;©;Ñ7ˆÜ˜DŸM™MÓ*ˆŒÜ˜4Ÿ<™<Ó(ˆŒÜ˜DŸM™MÓ*ˆŒØˆ
rq   c                óH   • XR                   ;   =(       d    XR                  ;   $ r~   )r=  r?  rX  s     rf   rY  Ú"ImageFileDirectory_v1.__contains__b  r[  rq   c                ój   • [        [        U R                  5      [        U R                  5      -  5      $ r~   )rc   rM  r?  r=  r¥   s    rf   rN  ÚImageFileDirectory_v1.__len__e  rP  rq   c                ój   • [        [        U R                  5      [        U R                  5      -  5      $ r~   )r�  rM  r?  r=  r¥   s    rf   rŽ  ÚImageFileDirectory_v1.__iter__h  r�  rq   c                ó:   • S H  nU R                  XU5        M     g ©N)FT)r]  )r“   rR  r¡   r  s       rf   r^  Ú!ImageFileDirectory_v1.__setitem__k  s   € Û'ˆJØ�M‰M˜# jÖ1ò (rq   c           	     ó   • XR                   ;  aQ  U R                  U   nU R                  U   nU R                  U   u  pES H  nU R	                  X" XU5      U5        M     U R                   U   n[        U[        [        45      (       d  U4nU$ rI  )r=  r?  r+  rô   r]  rŸ   r‰   r  )r“   rR  r  rS  r÷   rT  Úlegacyrw   s           rf   rU  Ú!ImageFileDirectory_v1.__getitem__o  s†   € Ø—m‘mÓ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆDÛ'�Ø—‘˜c 7¨4°vÓ#>ÀÖGñ (à�m‰m˜CÑ ˆÜ˜#¤¤u˜~×.Ñ.Ø�&ˆCØˆ
rq   r8  )r”   r   r4  r   r˜   rÝ   )r<  rì   r˜   r1  )r˜   rì   r"  rÞ   r$  r#  r!  )rã   rä   rå   ræ   rç   r¢   ré   ÚtagsÚtagdatar'  Úclassmethodr=  r@  rY  rN  rŽ  r^  rU  rë   Ú__classcell__©r5  s   @rf   r1  r1  !  se   ø‡ ñ÷$ ñ Ñ.Ó/€DÙÑ1Ó2€Gð ÓØ!àóó ðô"ô"<ô<ô=ô2÷
ò 
rq   r1  c                  óÆ   ^ • \ rS rSrSrSrSr S     SU 4S jjjrSS jr\	SS j5       r
SS jrSS	 jrSS
 jrSS jrSU 4S jjrSS jrSS jrSS jrSS jrSrU =r$ )ÚTiffImageFilei„  ÚTIFFz
Adobe TIFFFc                ó0   >• U    U    [         TU ]  X5        g r~   )r3  r¢   )r“   rè  Úfilenamer5  s      €rf   r¢   ÚTiffImageFile.__init__‰  s   ø€ ñ
 	Ø5áØ"ä‰Ñ˜Õ&rq   c                ó   • U R                   R                  S5      nUS   S:X  a  XR                   R                  S5      -  n[        U5      U l        U R                  R                  =U l        U l        SU l        U R                   U l        / U l	        SU l
        [        R                  S5        [        R                  SU R
                  5        [        R                  S[        U5      5        U R                  S	5        g)
z#Open the first image in a TIFF filer2   r&   r!  rs   Nz*** TiffImageFile._open ***z- __first: %sz	- ifh: %sr   )rè  ræ  rì   Útag_v2r-  Ú_TiffImageFile__firstÚ_TiffImageFile__nextÚ_TiffImageFile__frameÚ_fpÚ
_frame_posÚ	_n_framesrú  rû  r#  Ú_seekr
  s     rf   Ú_openÚTiffImageFile._open–  s¸   € ð �g‰g�l‰l˜1‹oˆØˆq‰6�R‹<Ø—7‘7—<‘< “?Ñ"ˆCä+¨CÓ0ˆŒð &*§[¡[×%5Ñ%5Ð5ˆŒ�t”{ØˆŒØ—7‘7ˆŒØ%'ˆŒØ%)ˆŒä�‰Ð2Ô3Ü�‰�_ d§l¡lÔ3Ü�‰�[¤$ s£)Ô,ð 	�
‰
�1�rq   c                ó\  • U R                   nUcƒ  U R                  5       nU R                  [        U R                  5      5        U R                   c1  U R                  U R                  5       S-   5        U R                   c  M1  U R                  U5        U R                   c   eU R                   $ )Nr   )r`  rö  ra  rc   r_  rü  )r“   Úcurrent_n_framesÚcurrents      rf   Ún_framesÚTiffImageFile.n_frames®  s„   € àŸ>™>ÐØÑ#Ø—i‘i“kˆGØ�J‰J”s˜4Ÿ?™?Ó+Ô,Ø—.‘.Ñ(Ø—
‘
˜4Ÿ9™9›;¨™?Ô+ð —.‘.Ó(à�I‰I�gÔØ�~‰~Ñ)Ð)Ð)Ø�~‰~Ðrq   c                ó  • U R                  U5      (       d  gU R                  U5        U R                  bQ  U R                  R                  U R
                  :w  d$  U R                  R                  U R                  :w  a  SU l        ggg)z%Select a given frame as current imageN)Ú_seek_checkra  Ú_imÚimr÷   Ú
_tile_sizeÚmode)r“   Úframes     rf   rü  ÚTiffImageFile.seekº  sg   € à×Ñ ×&Ñ&ØØ�
‰
�5ÔØ�8‰8ÑØ�G‰G�L‰L˜DŸO™OÓ+¨t¯w©w¯|©|¸t¿y¹yÓ/Hð ˆD�Hð 0Ið  rq   c                óò  • U R                   U l        [        U R                  5      U::  GaÜ  U R                  (       d  Sn[        U5      e[        R                  SUU R                  U R                  U R                  R                  5       5        U R                  S:¼  a  Sn[        U5      eU R                  R                  U R                  5        U R                  R                  U R                  5        [        R                  SU R                  R                  5       5        U R                  R                  U R                  5        U R                  R                  U R                  ;   a  SU l        OU R                  R                  U l        U R                  S:X  a
  US-   U l        [        U R                  5      S:X  a  U R                  S:g  U l        U =R                  S-  sl        [        U R                  5      U::  a  GMÜ  U R                  R                  U R                  U   5        U R                  R                  U R                  5        [$        U R                  ;   a!  U R                  [$           U R&                  S'   OSU R&                  ;   a  U R&                  S	 U R)                  5         [*        R-                  U R                  5      =U l        U l        Xl        U R3                  5         g )	Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %sl            zUnable to seek to framezLoading tags, location: %sr   r   Úxmp)r^  rè  rc   r_  r\  ÚEOFErrorrú  rû  r]  rö  r~  rü  r  rZ  r  r-  r`  Úis_animatedÚXMPro  Ú_reload_exifr1  r=  rR  r  Ú_setup)r“   ro  r0  s      rf   ra  ÚTiffImageFile._seekÅ  s  € Ø—(‘(ˆŒä�$—/‘/Ó" eÔ+Ø—;—;Ø3�Ü˜s“mÐ#Ü�L‰LØKØØ—‘Ø—‘Ø—‘—‘“ôð �{‰{˜eÓ#Ø/�Ü  “oÐ%Ø�G‰G�L‰L˜Ÿ™Ô%Ø�O‰O×"Ñ" 4§;¡;Ô/Ü�L‰LÐ5°t·w±w·|±|³~ÔFØ�K‰K×Ñ˜TŸW™WÔ%Ø�{‰{×Ñ 4§?¡?Ó2ð  �•à"Ÿk™k×.Ñ.�”Ø�{‰{˜aÓØ!&¨¡�”Ü�4—?‘?Ó# qÓ(Ø#'§;¡;°!Ñ#3�Ô Ø�LŠL˜AÑ�Lô9 �$—/‘/Ó" eÖ+ð: 	�‰�‰�T—_‘_ UÑ+Ô,Ø�‰×Ñ˜Ÿ™Ô!Ü�$—+‘+ÓØ#Ÿ{™{¬3Ñ/ˆD�I‰I�eÒØ�d—i‘iÓØ—	‘	˜%Ð Ø×ÑÔä3×;Ñ;¸D¿K¹KÓHÐHˆŒ�4”8ØŒØ�‰�rq   c                ó   • U R                   $ )zReturn the current frame number)r]  r¥   s    rf   rö  ÚTiffImageFile.tellñ  s   € à�|‰|Ðrq   c                ó   • 0 nU R                   R                  [        R                  R                  5      nU(       a‘  USS S:X  aˆ  [        USS 5      n[        R                  " US   S-   S-  5      S-  n[        USU-   SU-    5      nUSU-   SU-   U-    nSU0X'   U[        R                  " SU-   U-   S-  5      S-  S nUSS S:X  a  Mˆ  U$ )	a  
Returns a dictionary of Photoshop "Image Resource Blocks".
The keys are the image resource ID. For more information, see
https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1037727

:returns: Photoshop "Image Resource Blocks" in a dictionary.
Nr*   s   8BIMr.   r   r&   rÖ  r  )	rZ  rø  r   ÚBaseÚImageResourcesÚi16ÚmathÚceilÚi32)r“   Úblocksrw   ÚidÚnr÷   r  s          rf   Úget_photoshop_blocksÚ"TiffImageFile.get_photoshop_blocksõ  sà   € ð ˆØ�k‰k�o‰oœhŸm™m×:Ñ:Ó;ˆÞØ�b�q�'˜WÓ$Ü˜˜Q˜q˜“]�Ü—I’I˜s 1™v¨™z¨QÑ.Ó/°!Ñ3�Ü˜3˜q 1™u r¨A¡vÐ.Ó/�Ø˜2 ™6 B¨¡F¨T¡MÐ2�Ø$ d˜^�‘
àœ$Ÿ)š) R¨!¡V¨d¡]°aÑ$7Ó8¸1Ñ<Ð>Ð?�ð �b�q�'˜WÕ$ð ˆrq   c                ó„   >• U R                   (       a!  U R                  (       a  U R                  5       $ [        TU ]  5       $ r~   )ÚtileÚuse_load_libtiffÚ_load_libtiffr3  r  )r“   r5  s    €rf   r  ÚTiffImageFile.load
  s-   ø€ Ø�9�9˜×.×.Ø×%Ñ%Ó'Ð'Ü‰w‰|‹~Ðrq   c                ó  • U R                   cY  [        R                  " U R                  5        [        R                  R                  U R                  U R                  5      U l        [        R                  R                  U 5        g r~   )
rk  r   Ú_decompression_bomb_checkrm  ÚcoreÚnewrn  rl  r   Úload_preparer¥   s    rf   r�  ÚTiffImageFile.load_prepare  sP   € Ø�8‰8ÑÜ×+Ò+¨D¯O©OÔ<Ü—j‘j—n‘n T§Y¡Y°·±Ó@ˆDŒGÜ×Ñ×(Ñ(¨Õ.rq   c                óx  • U R                   (       dF  SU l        U R                  5       n[        R                   H  nX!;  a  M
  UR                  U5        M     [        R                  " U SS9  [        R                  R                  U R                  ;   a&  U R                  [        R                  R                  	 g g )NT)Úin_place)rt  Ú!_close_exclusive_fp_after_loadingÚgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   r|  ÚOrientationrZ  )r“   ÚexifÚkeys      rf   Úload_endÚTiffImageFile.load_end  s‰   € ð ××Ø59ˆDÔ2ð —<‘<“>ˆDÜ×.Ô.�Ø“?ÙØ—‘˜SÖ!ñ /ô
 	×Ò ¨tÒ4Ü�=‰=×$Ñ$¨¯©Ó3Ø—‘œHŸM™M×5Ñ5Ñ6ð 4rq   c                ó  • [         R                   R                  U 5        U R                  5         [        U R                  5      S:X  d  Sn[        U5      eU R                  S   S   nU R                  S   S   n [        U R                  S5      =(       a    U R                  R                  5       n[        U R                  S5      (       a  U R                  R                  5         U(       a1  [        U[        5      (       d   e[        U5      nXES'   [        U5      n[         R                  " U R                  S	X0R                  5      n UR!                  U R"                  U5        U R&                  =(       a    U R(                  (       + n[        U R                  S5      (       aA  [*        R-                  S5        UR/                  U R                  R1                  5       5      u  pšOøU(       a–  [*        R-                  S5        U(       d  U R                  R3                  S5        [4        R6                  " US[4        R8                  5      nUR/                  S5      u  pš[4        R6                  " XK[4        R:                  5        O[[*        R-                  S5        U R                  R3                  S5        UR/                  U R                  R=                  5       5      u  pš/ U l        SU l        U RA                  5         U(       a!  U R                  RC                  5         SU l        U
S:  a  [        U
5      e[         R                   R                  U 5      $ ! [
         a    Sn GN~f = f! [$         a  nS
n[        U5      UeSnAff = f)zOOverload method triggered when we detect a compressed tiff
Calls out to libtiffr   zNot exactly one tiler   r(   ÚfilenoÚflushFr&   ÚlibtiffzCouldn't set the imageNÚgetvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.s   fpfpz+don't have fileno or getvalue. just reading)"r   r  r�  rc   rˆ  rç  rê   rè  rŸ  r   rŸ   r‰   r)  Ú_getdecoderrn  ÚdecoderconfigÚsetimagerl  r~  Ú_exclusive_fprt  rú  rû  rª  r¢  rü  ÚosÚlseekÚSEEK_CURÚSEEK_SETræ  Úreadonlyrœ  Úclose)r“   r0  Úextentsr”   rè  Ú	args_listÚdecoderÚeÚclose_self_fpr„  ÚerrÚposs               rf   rŠ  ÚTiffImageFile._load_libtiff&  s�  € ô 	�‰×Ñ˜Ôà×ÑÔä�4—9‘9‹~ Ó"Ø(ˆCÜ˜#“,Ðð —)‘)˜A‘,˜q‘/ˆØ�y‰y˜‰|˜A‰ˆð

	Ü˜Ÿ™ (Ó+×@°·±·±Ó0@ˆBô �t—w‘w ×(Ñ(Ø—‘—‘”ö Ü˜d¤E×*Ñ*Ð*Ð*Ü˜T›
ˆIØ�a‰LÜ˜Ó#ˆDä×#Ò# D§I¡I¨y¸$×@RÑ@RÓSˆð	&Ø×Ñ˜TŸW™W gÔ.ð
 ×*Ñ*×C°4×3CÑ3CÔ/CˆÜ�4—7‘7˜J×'Ñ'ô �L‰LÐPÔQØ—^‘^ D§G¡G×$4Ñ$4Ó$6Ó7‰FˆAˆsÞä�L‰LÐNÔOÞ Ø—‘—‘˜Q”ô —(’(˜2˜q¤"§+¡+Ó.ˆCà—^‘^ GÓ,‰FˆAÜ�HŠH�RœbŸk™kÕ*ô �L‰LÐFÔGØ�G‰G�L‰L˜ŒOà—^‘^ D§G¡G§L¡L£NÓ3‰FˆAàˆŒ	ØˆŒà�‰ŒæØ�G‰G�M‰MŒOØˆDŒGà�‹7Ü˜#“,Ðä�{‰{×Ñ Ó%Ð%øôE ó 	ð ‹Bð	ûô ó 	&Ø*ˆCÜ˜#“, AÐ%ûð	&ús+   Á;A,M ÅM) ÍM&Í%M&Í)
NÍ3NÎNc                ó`  • SU R                   ;   a  Sn[        U5      e[        U R                   R                  [        S5         U l        U R                   R                  [        S5      U l        U R                   R                  [        S5      nU R
                  S:X  a  SnU R                   R                  [        S5      n[        R                  S5        [        R                  SU R
                  5        [        R                  S	U5        [        R                  S
U R                  5        [        R                  SU5        [        R                  SU R                   R                  [        5      5         U R                   [           nU R                   [           n[#        U[$        5      (       a  [#        U[$        5      (       d  Sn['        U5      eXE4U l        U R                   R                  [*        R,                  R.                  5      nUS;   a	  XT4U l        OXE4U l        [        R                  SU R2                  5        U R                   R                  [4        S5      n[7        U5      S:”  a$  [9        U5      [;        U5      s=:X  a  S:X  a  O  OSnU R                   R                  [<        S5      n	U R                   R                  [>        S5      n
US;   a  SnOUS:X  a  SnOSnU[7        U
5      -  n[7        U	5      nU R                   R                  [@        U R
                  S:X  a  US;   a  SOS5      nU[B        :”  a#  [        RE                  SU5        Sn[G        U5      eXÜ:  a  U	SU n	OXÜ:”  a
  US:X  a  X�-  n	[7        U	5      U:w  a  Sn[G        U5      eU R                   RH                  UUUU	U
4n[        R                  SU5         [J        U   u  U l&        n[        R                  SU5        [        R                  S U RN                  5        U R
                  U RP                  S!'   U R                   R                  [R        S5      nU R                   R                  [T        S5      nU(       a“  U(       aŒ  U R                   R                  [V        5      nUS":X  a  UU4U RP                  S#'   OUUS:X  a  US$-  US$-  4U RP                  S#'   O7Uc#  UU4U RP                  S#'   UU4U RP                  S%'   OUU4U RP                  S%'   S=n=nn/ U l,        [Z        =(       d    U R
                  S&:g  U l.        U R\                  (       aû  US":X  a5  USS S-   USS -   n[        R                  SU5        [J        U   u  U l&        nUS:X  a#  U R
                  S':X  a  U R                  S:X  a  S(nO=US):X  a  S*nO4UR_                  S+5      (       d  UR_                  S,5      (       a  USS- S.-   nXðR
                  S/U R                   R`                  4nU RX                  Rc                  [d        Rf                  " S0SSXE4SU5      5        GOï[h        U R                   ;   d  [j        U R                   ;   Ga¤  [h        U R                   ;   a6  U R                   [h           nU R                   R                  [l        U5      nUnOŠU R                   [j           nU R                   R                  [n        5      nU R                   R                  [p        5      n[#        U[$        5      (       a  [#        U[$        5      (       d  S1n['        U5      eUnU HÉ  nUU-   U:”  a  U[s        U	5      -  S2-  nOSnUnU R                  S":X  a
  UU   nUU-  nU[%        U5      S4nU RX                  Rc                  [d        Rf                  " U R
                  UU[;        UU-   U5      [;        UU-   U5      4UU5      5        UU-   nUU:¼  d  M±  SUU-   nnUU:¼  d  MÀ  S=nnUS-  nMË     O"[        R                  S35        Sn[G        U5      e[t        U R                   ;   a   U R                   [t           U RP                  S4'   U RN                  S5;   a[  U R                   [v            Vs/ s H  n[y        US6-  5      PM     n n[z        R|                  " S7S8R                  U 5      5      U l@        gg! [         a  nSn[!        U5      UeSnAff = f! [         a(  n[        R                  S5        Sn[G        U5      UeSnAff = fs  snf )9z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r/   r.   z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %szMissing dimensionsNzInvalid dimensions)r,   r.   r0   r2   z
- size: %sr=   r>   )r&   r.   r2   r(   r,   r*   )r&   r.   z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %sÚcompressionr&   ÚdpigR¸…ëQ@Ú
resolutionr%   r1   rO   rB   úI;16Nz;16Bz;16Lrs   ÚNFr¡  zInvalid tile dimensionsr2   z- unsupported data organizationÚicc_profile©r[   r]   r"   úRGB;Lrq   )ArZ  rç  ÚCOMPRESSION_INFOrø  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationÚPHOTOMETRIC_INTERPRETATIONÚ	FILLORDERrú  rû  ÚYCBCRSUBSAMPLINGÚ
IMAGEWIDTHÚIMAGELENGTHrù  Ú	TypeErrorrŸ   r    r~  rm  r   r|  r™  Ú_sizer÷   ÚSAMPLEFORMATrc   rŠ   rˆ   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELÚerrorr$  ro   Ú	OPEN_INFOÚ_modern  ro  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITrˆ  ÚREAD_LIBTIFFr‰  r©  r  r  r   Ú_Tiler  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILEÚCOLORMAPr   r   r%   r  Úpalette)!r“   r0  ÚphotoÚ	fillorderÚxsizeÚysizer°  ÚorientationÚsample_formatÚ	bps_tupleÚextra_tupleÚ	bps_countÚbps_actual_countÚsamples_per_pixelr›  ÚrawmodeÚxresÚyresÚresunitÚxÚyÚlayerrµ  Úoffsetsr™  ÚwÚ	tilewidthr  ÚstrideÚtile_rawmoder”   r˜  rÞ  s!                                    rf   rw  ÚTiffImageFile._setup…  sÜ  € ð �T—[‘[Ó Ø?ˆCÜ˜#“,Ðô -¨T¯[©[¯_©_¼[È!Ó-LÑMˆÔØ%)§[¡[§_¡_Ô5IÈ1Ó%MˆÔ"ð —‘—‘Ô :¸AÓ>ˆð ×Ñ Ó+ØˆEà—K‘K—O‘O¤I¨qÓ1ˆ	ä�‰Ð&Ô'Ü�‰Ð(¨$×*;Ñ*;Ô<Ü�‰Ð7¸Ô?Ü�‰Ð1°4×3MÑ3MÔNÜ�‰Ð'¨Ô3Ü�‰Ð.°·±·±Ô@PÓ0QÔRð	(Ø—K‘K¤
Ñ+ˆEØ—K‘K¤Ñ,ˆEô ˜%¤×%Ñ%¬Z¸¼s×-CÑ-CØ&ˆCÜ˜S“/Ð!Ø˜,ˆŒØ—k‘k—o‘o¤h§m¡m×&?Ñ&?Ó@ˆØ˜,Ó&Ø˜ˆD�Jà˜ˆDŒJä�‰�\ 4§9¡9Ô-àŸ™Ÿ™¬°dÓ;ˆÜˆ}Ó Ó!¤c¨-Ó&8¼CÀÓ<NÕ&SÐRSÖ&Sð !ˆMà—K‘K—O‘O¤M°4Ó8ˆ	Ø—k‘k—o‘o¤l°BÓ7ˆØ�IÓØ‰IØ�a‹ZØ‰IàˆIØ”S˜Ó%Ñ%ˆ	Ü˜y›>ÐØ ŸK™KŸO™OÜØ×"Ñ" kÓ1°e¸v³o‰AÈ1ó
Ðð
 Ô2Ó2ä�L‰LØ@ÐBSôð 8ˆCÜ˜cÓ"Ð"àÓ/ð "Ð"4Ð#4Ð5‰IØÓ1Ð6FÈ!Ó6Kð "Ñ5ˆIäˆy‹>Ð.Ó.Ø-ˆCÜ˜cÓ"Ð"ð �K‰K×ÑØØØØØð
ˆô 	�‰Ð% sÔ+ð	*Ü"+¨C¡.ÑˆDŒJ˜ô 	�‰Ð% wÔ/Ü�‰Ð% t§y¡yÔ1à#'×#4Ñ#4ˆ�	‰	�-Ñ à�{‰{�‰œ|¨QÓ/ˆØ�{‰{�‰œ|¨QÓ/ˆæ–DØ—k‘k—o‘o¤oÓ6ˆGØ˜!‹|Ø$(¨$ <�—	‘	˜%Ò Ø˜A“Ø$(¨4¡K°¸±Ð#=�—	‘	˜%Ò Ø‘Ø$(¨$ <�—	‘	˜%Ñ ð +/°¨*�—	‘	˜,Ò'à*.°¨*�—	‘	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ü ,× J°×0AÑ0AÀUÑ0JˆÔØ× × ð ˜A‹~à˜"˜1�g ‘n s¨1¨2 wÑ.�Ü—‘Ð-¨sÔ3ô '0°¡nÑ#�”
˜Gð ˜“
Ø×%Ñ%¨Ó/Ø×.Ñ.°!Ó3à‘ð
 ˜FÓ"Ø!‘Ø×!Ñ! &×)Ñ)¨W×-=Ñ-=¸f×-EÑ-EØ! # 2˜,¨Ñ,�ð ×+Ñ+¨U°D·K±K×4FÑ4FÐGˆAØ�I‰I×ÑœYŸ_š_¨Y¸¸A¸uÐ8LÈaÐQRÓSÖTä˜TŸ[™[Ó(¬K¸4¿;¹;Ô,Fä˜tŸ{™{Ó*ØŸ+™+¤lÑ3�Ø—K‘K—O‘O¤L°%Ó8�Ø‘ð Ÿ+™+¤kÑ2�Ø ŸK™KŸO™O¬IÓ6�	Ø—K‘K—O‘O¤JÓ/�Ü! )¬S×1Ñ1¼ÀAÄs×9KÑ9KØ3�CÜ$ S›/Ð)Ø�ã!�Ø�q‘5˜5“=Ø¤ Y£Ñ/°!Ñ3‘Fà�Fà&�Ø×-Ñ-°Ó2à#*¨5¡>�Là˜iÑ'�Fà$¤c¨&£k°1Ð5�Ø—	‘	× Ñ Ü—O’OØ×)Ñ)Ø˜Aœs 1 q¡5¨%Ó0´#°a¸!±e¸UÓ2CÐDØØó	ôð ˜‘E�Ø˜•:Ø˜a !™e�q�AØ˜E•zØ !˜	˜˜AØ ™
šò7 "ô: �L‰LÐ:Ô;Ø-ˆCÜ˜cÓ"Ð"ô ˜Ÿ™Ó$Ø'+§{¡{´:Ñ'>ˆD�I‰I�mÑ$ð �9‰9˜Ó#Ø-1¯[©[¼Ò-BÓCÒ-B¨”r˜!˜s™(–|Ñ-BˆGÐCÜ'×+Ò+¨G°S·X±X¸gÓ5FÓGˆD�Lð $øôS ó 	(Ø&ˆCÜ˜C“. aÐ'ûð	(ûôP ó 	*Ü�L‰LÐ/Ô0Ø&ˆCÜ˜cÓ"¨Ð)ûð	*üòD Ds6   Å6&c Ïc6 âd+ã
c3ã c.ã.c3ã6
d(ä #d#ä#d()Ú__firstÚ__frameÚ__nextr”  rÀ  r^  r_  rk  rÑ  r`  rÂ  rÉ  rm  rè  r  rl  rt  rÞ  r«  rR  rZ  rˆ  r‰  r~   )rè  úStrOrBytesPath | IO[bytes]rW  zstr | bytes | Noner˜   rÝ   r   rÞ   )ro  r    r˜   rÝ   )r˜   zdict[int, dict[str, bytes]])r˜   zImage.core.PixelAccess | None)rã   rä   rå   ræ   ÚformatÚformat_descriptionr”  r¢   rb  ré   rg  rü  ra  rö  r…  r  r�  rœ  rŠ  rw  rë   rQ  rR  s   @rf   rT  rT  „  s‘   ø† Ø€FØ%ÐØ(-Ð%ð
 (,ð'à&ð'ð %ð'ð 
÷	'ð 'ôð0 ó	ó ð	ô	ô*ôXô÷*ô
/ô7ô"]&÷~kHò kHrq   rT  r?   r@   rN   r[   r]   rE   rL   rB   rF   rI   rJ   rO   rR   rP   r^   ÚYCbCrra   rM   rD   rG   rK   )rG   rK   c                óö  •  [         U R                     u  p4pVpxU R                  nU R
                  n[        US9nUR                  S5      (       a  SUl         US   nUc  SnOUS:X  a  S	nOUS
:X  a  Sn[        =(       d    US:g  nSU[        '   U R                  S   U[        '   U R                  S   U[         '   SU;   a  US   nOKSU;   aC  US   n[        U["        5      (       a(  [$        R&                  " 5       nUR)                  U5        UnO0 n[*        R-                  S[/        U5      5        [        U[0        5      (       a  UR3                  5       nU H|  n[        U[$        R&                  5      (       a)  U[4        R6                  ;   a  UR9                  U5      UU'   OUR                  U5      UU'    UR:                  U   UR:                  U'   M~     0 n[?        U S5      (       a  U R@                  R3                  5       n0 UE[C        U S0 5      En[D        [F        4 H  nUU;   d  M  UU	 M     [?        U S5      (       a»  [H        [J        [L        [N        [P        [R        4 H—  nUU RT                  ;   d  M  U[N        :X  a@  U RT                  R:                  U   [4        RV                  [4        RX                  4;  a  UU	 M_  U RT                  U   UU'   U RT                  R:                  U   UR:                  U'   M™     UR                  SU R                  R                  S5      5      nU(       a	  UU[Z        '   [\        S4[J        S4[L        S4[J        S4[L        S4[H        S4[^        S4[`        S4[b        S4[d        S44
 H  u  nnUU;   d  M  UU   UU'   M     UR                  S5      nU(       a!  SU[H        '   US   U[J        '   US   U[L        '   US:w  a)  X}[f        '   [i        U5      S:w  a  [i        U5      U[j        '   Ub  X�[l        '   US:w  a  Xm[F        '   [n        U;  a	  X][n        '   OµU R                  S ;   a¥  U[n           S:X  a˜  U R                  S!:X  ar  U Rq                  5       nUR)                  5       nUbN  [s        URt                  5       H3  n[s        URv                  5       H  nUUU4   S":X  a  SOS"UUU4'   M     M5     Un O[x        Rz                  " U 5      n U R                  S#;   ax  U R|                  R                  S$S%5      n/ n[i        U5      S&-  n[s        S&5       H4  n UUUU -  UU S-   -    V!s/ s H  n!U!S'-  PM
     sn!-  nUS/S'U-
  -  -  nM6     UU[€        '   U[           U[            n#n"[i        U5      U"US   -  S(-   S)-  -  n$[‚        U;  ac  U(       aI  UR                  S*[„        5      n%U$S:X  a  SO[‡        U%U$-  U#5      n&US	:X  a  [‡        U&S(-   S)-  S)-  U#5      n&OU#n&U&S:X  a  Sn&U&U[‚        '   U$S:X  a  SOU$U[‚           -  n'U#U[‚           -   S-
  U[‚           -  n(U'S+:¼  a!  [4        Rˆ                  UR:                  [Š        '   U'4U(S-
  -  U$U#-  U'U(S-
  -  -
  4-   U[Š        '   [�        [s        SU'U(-  U'5      5      U[Ž        '   [�        R                  US5      U[’        '   U R                  S,:X  a8  [”        S-[–        S.0R™                  5        H  u  nn)UR›                  UU)5        M     [œ        [ž        [         [¢        /n*U(       GaÈ  S/U;   aO  US/   n+[        U+[        5      (       a  U+S:  d  U+S0:”  a  S1n
[¥        U
5      eUS	:w  a  S2n
[¥        U
5      eU+U[¦        '   [*        R-                  S35        [*        R-                  S4[©        UR™                  5       5      5        Sn,[?        US55      (       a"   UR«                  S5        UR­                  5       n,0 n-U*[²        [–        [Š        [Ž        [´        [¶        /-  n*[f        US   0n.[¸        Rº                  " UR™                  5       UR™                  5       5       GHF  u  nn/U[4        R¼                  ;  aÀ  [C        [$        R¾                  S6S75      (       d  M=  U[4        R6                  ;   a  [4        RÀ                  U-U'   OvUUR:                  ;   a  UR:                  U   U-U'   OS[        U/[        [Â        [Ä        ["        45      (       d  M¯  [4        RÆ                  " U5      RÈ                  n0U0(       a  U0U-U'   UU.;  d  Mã  UU*;  d  Më  [        U/[Ä        5      (       a  U/RË                  S8S95      S:-   U.U'   GM  [        U/[Ì        5      (       a  [Ã        U/5      U.U'   GMA  U/U.U'   GMI     [F        U.;   a)  [i        U.[F           5      S:X  a  U.[F           S   U.[F        '   [*        R-                  S;[©        U.R™                  5       5      5        U R                  S<;   a  S=n[/        U.R™                  5       5      n1U1RÏ                  5         X>U,UU1U-4n2[$        RÐ                  " U R                  S>U2U5      n3U3RÓ                  U R|                  S?U R                  -   5         U3RË                  [Ô        RÖ                  5      SS  u  n4n5U,(       d  URÙ                  U55        U4(       a  OMG  U4S:  a  S@U4 SA3n
[        U
5      eO]U* H  nUU	 M     URÛ                  U5      n6[Ô        RÜ                  " U U[Ô        RÞ                  " SS?U R                  -   U6UU$S45      /5        SBU;   a  [á        U SBU5        g g ! [         a!  n	SU R                   S3n
[        U
5      U	eS n	A	ff = f! [         a6    U R                  R                  S5      n[        U[        5      (       a  S n GNhf = f! [<         a     G
M  f = fs  sn!f ! [®        R°                   a     GNf = f)CNzcannot write mode z as TIFFrn   Úbig_tiffTr¶  r%   r/   r1   r7   r3   r   r   Útiffinforš  zTiffinfo Keys: %srR  rZ  r»  Údescriptionr¸  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightr·  r&   r=   )r?   r@   r?   r!   r¼  rO   r½  r(   r"   r0   r2   Ú
strip_sizer    rý  )r   r   )r   r!   é€   r!   r
  r!   Úqualityéd   zInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %srŸ  rj   Frl  ró   r¨  zConverted items: %s)rD   rB   r¹  r¡  rS   zencoder error z when writing image fileÚ_debug_multipage)qÚ	SAVE_INFOrn  rù  rç  ÚencoderinfoÚencoderconfigrì   rø  r)  ro  rŸ   r    ÚWRITE_LIBTIFFrÁ  r÷   rÆ  rÇ  r  r   ÚExifr  rú  rû  r)  r1  r@  r   r–  r—  r+  r;  rê   rR  r‘   ÚEXIFIFDrÊ  rÔ  rÒ  rÓ  ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKru  rZ  r{  rq  rÜ  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTrË  rc   rÍ  rÌ  rÃ  Úcopyr÷  ÚheightÚwidthr   Úinvertrl  Ú
getpaletterÝ  rØ  Ú
STRIP_SIZErˆ   rw  ÚSTRIPBYTECOUNTSr‰   r  ÚCOMPRESSION_INFO_REVr¿  rÅ  ÚREFERENCEBLACKWHITErG  Ú
setdefaultrÙ  rÚ  r×  ÚTILEBYTECOUNTSr~  ÚJPEGQUALITYr  rü  rŸ  ÚioÚUnsupportedOperationÚOSUBFILETYPEÚTRANSFERFUNCTIONÚSUBIFDÚ	itertoolsÚchainÚLIBTIFF_CORErŽ  r.  r€   r¯   rH  rp  r|  ru   ÚsortÚ_getencoderr¥  r   ÚMAXBLOCKr  r  Ú_saverÖ  Úsetattr)7rl  rè  rW  rê  ro   rß  rû  ÚbitsÚextrar°  r0  r  r  r  r¶  r¡  ro  rš  r›  Ú
legacy_ifdÚsupplied_tagsrR  Úiccr  r·  Úinverted_imÚpxrï  rî  ÚlutÚcolormapÚcolorsr‚   rc  rò  r™  rô  Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imageÚdefault_valueÚ	blocklistr  r^  ÚtypesÚattsr¡   rp  rN  rµ  ÚencoderÚerrcoder  r  s7                                                          rf   r2  r2  “  s  € ð"Ü6?ÀÇÁÑ6HÑ3ˆ˜¨ð
 —.‘.€KØ×$Ñ$€Mä
 vÑ
.€CØ‡��z×"Ñ"ØˆŒðØ! -Ñ0ˆð ÑØ‰Ø	˜Ó	#à‰Ø	˜Ó	&Ø*ˆä×3˜{¨eÑ3€Gð !"€CÔÑà—g‘g˜a‘j€CŒ
�OØ—w‘w˜q‘z€CŒÑð �[Ó Ø˜:Ñ&‰Ø	�;Ó	Ø˜6Ñ"ˆÜ�dœE×"Ñ"Ü—:’:“<ˆDØ�I‰I�dŒOØˆDøàˆÜ
‡L�LÐ$¤d¨4£jÔ1Ü�$Ô-×.Ñ.Ø�z‰z‹|ˆÛˆÜ�dœEŸJ™J×'Ñ'¨C´8×3JÑ3JÓ,JØ—|‘| CÓ(ˆC�ŠHà—x‘x “}ˆC�‰Hð	Ø#Ÿ|™|¨CÑ0ˆC�K‰K˜Óñ ð €JÜˆr�5×ÑØ—V‘V—\‘\“^ˆ
à?�zÐ?¤W¨R°¸2Ó%>Ð?€Mô 	äó	ˆð �-ÕØ˜cÒ"ñô ˆr�8×Ñô ÜÜÜÜÜó
ˆCð �b—i‘iÕØœ.Ó(¨R¯Y©Y×->Ñ->¸sÑ-CÜ—M‘MÜ×&Ñ&ðLó .ð & cÒ*à!Ÿy™y¨™~�C˜‘HØ')§y¡y×'8Ñ'8¸Ñ'=�C—K‘K Ó$ñ!
ð( �/‰/˜-¨¯©¯©°]Ó)CÓ
D€CÞ
ØˆŒJ‰ô 
˜=Ð)Ü	�|Ð$Ü	�|Ð$Ü	�~Ð&Ü	�~Ð&Ü	Ð+Ð,Ü	�:ÐÜ	�KÐ Ü	�ÐÜ	�KÐ ó‰	ˆˆTð �;ÕØ" 4Ñ(ˆC�‹Hñð �/‰/˜%Ó
 €CÞ
Ø ˆŒOÑØ ™FˆŒLÑØ ™FˆŒLÑàˆtƒ|Ø!ŒMÑÜˆt‹9˜‹>Ü#& t£9ˆC”Ñ ØÑØ!ŒLÑØ�ƒ{Ø"ŒLÑä!¨Ó,Ø*/Ô&Ò'Ø	�‰�JÓ	 3Ô'AÑ#BÀaÓ#GØ�7‰7�c‹>ØŸ'™'›)ˆKØ×!Ñ!Ó#ˆBØ‰~Ü˜{×1Ñ1Ö2�AÜ" ;×#4Ñ#4Ö5˜Ø(*¨1¨a¨4©°C«¡1¸S˜˜1˜a˜4›ó 6ñ 3ð !�øä—’ Ó$ˆBà	‡w�w�+ÓØ�e‰e×Ñ˜u gÓ.ˆØˆÜ�S“˜Q‘ˆÜ�q–ˆAØ¨#¨f°q©j¸6ÀQÈÁUÑ;KÑ*LÓMÒ*L Q˜˜SœÑ*LÑMÑMˆHØ˜˜˜s V™|Ñ,Ñ,ŠHñ ð !ˆŒH‰àŒz‰?˜C¤Ñ,€q€AÜ�‹Y˜1˜t A™w™;¨™?¨qÑ0Ñ1€FÜ˜3ÓæØ'ŸO™O¨L¼*ÓEˆMØ"(¨A£+™Q´3°}ÈÑ7NÐPQÓ3RˆNà˜fÓ$Ü!$ ~¸Ñ'9¸aÑ&?À1Ñ%DÀaÓ!H�øàˆNØ˜QÓØˆNØ*ˆŒLÑØ# q›[™¨f°s¼<Ñ7HÑ.HÐØ˜C¤Ñ-Ñ-°Ñ1°c¼,Ñ6GÑGÐØ˜EÓ!Ü'/§}¡}ˆ�‰”OÑ$Ø-Ð/Ð3CÀaÑ3GÑHØ�‰
Ð&Ð*:¸QÑ*>Ñ?Ñ?ðLñ €CŒÑô ÜˆaÐ"Ð%5Ñ5Ð7HÓIó€CŒÑô ,×/Ñ/°¸QÓ?€CŒÑà	‡w�w�'Óä˜fÜÐ!=ð#
÷ ‰%‹'ò#ÑˆC�ð �N‰N˜3 Ö.ñ	#ô œJ¬´^ÐD€IßØ˜Ó#Ø! )Ñ,ˆGÜ˜g¤s×+Ñ+¨w¸«{¸gÈ»mØ/�Ü  “oÐ%Ø˜fÓ$ØM�Ü  “oÐ%Ø&ˆC”Ñä�‰Ð3Ô4Ü�‰�[¤&¨¯©«Ó"5Ô6ØˆÜ�2�x× Ñ ðØ—‘˜”
Ø—i‘i“k�ð
 ˆð 	ÜÜÜÜÜÜð
ñ 	
ˆ	ô !.¨t°A©wÐ7ˆô $Ÿ/š/¨#¯)©)«+°}×7JÑ7JÓ7L×M‰JˆC�ð
 œ(×/Ñ/Ó/ÜœuŸz™zÐ+HÈ%×PÑPÙàœ(×1Ñ1Ó1Ü!)§¡�E˜#’JØ˜CŸK™KÓ'Ø!$§¡¨SÑ!1�E˜#’JÜ$ U¬S´%¼¼eÐ,D×EÑEÙä#Ÿ?š?¨3Ó/×4Ñ4�DÞØ%)˜˜c™
Ø˜$� 3¨iÕ#7Ü˜e¤S×)Ñ)Ø %§¡¨W°iÓ @À5Ñ H�D˜”IÜ ¤{×3Ñ3Ü % e£�D˜”Ià %�D˜”Iñ3 Nô6 ˜4Ó¤C¨¬\Ñ(:Ó$;¸qÓ$@Ø!%¤lÑ!3°AÑ!6ˆD”Ñä�‰Ð*¬F°4·:±:³<Ó,@ÔAð �7‰7Ð'Ó'ØˆGô
 �D—J‘J“LÓ!ˆØ�	‰	ŒØ 3¨°$¸Ð>ˆÜ×#Ò# B§G¡G¨Y¸¸=ÓIˆØ×Ñ˜Ÿ™ ¨¯©Ñ 0Ô1ØØ#ŸN™N¬9×+=Ñ+=Ó>¸q¸rÐB‰MˆG�TÞØ—‘˜”ÞØñ ð �Q‹;Ø" 7 )Ð+CÐDˆCÜ˜#“,Ðð ó
 ˆCØ�C’ñ à—‘˜"“ˆä�ŠØØÜ�_Š_˜U F¨R¯W©WÑ$4°f¸wÈÐPQÐ>RÓSÐTô	
ð ˜[Ó(ä�Ð&¨Õ,ð )øô]	 ó "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"ûô ó Ø—g‘g—k‘k -Ó0ˆÜ�k¤3×'Ñ'àˆKúð	ûôT ó 	Ûð	üò| Nøôt ×*Ñ*ó ÚðúsS   ‚m Án Æ8o	Õoß	!o  í
ní"m>í>nî<oïoï	
oïoï o8ï7o8c                  ón  • \ rS rSr/ SQr1 SkrS!S"S jjrS#S jrS#S jrS#S jr	S$S jr
S%S	 jrS&S
 jr\R                  4S'S jjrS#S jrS(S jrS#S jrS)S jrS*S jrS+S jrS&S jrS&S jr\S,S j5       rS-S jrS.S jrS-S jrS-S jrS-S jrS-S jrS#S jr S#S jr!S/S jr" S0       S1S jjr#Sr$g )2ÚAppendingTiffWriteriÉ  )r   r   r   r&   r*   r2   r   r   r&   r*   r2   r*   r2   r*   r&   r*   r2   >   r  é  é	  r#   é   r$   c                ó^  • U   [        U5      (       a(  Xl        SU l         [        X(       a  SOS5      U l        O#[        [        [           U5      U l        SU l        U R                  R                  5       U l
        U R                  5         g ! [
         a    [        US5      U l         NMf = f)NTzw+bzr+bF)r   r  Úclose_fpÚopenr¬   rç  r   r	   r  rö  Ú	beginningÚsetup)r“   Úfnr�  s      rf   r¢   ÚAppendingTiffWriter.__init__ç  s„   € ÙÜ�2�;‰;ØŒIØ ˆDŒMð)Ü˜b­3¡%°EÓ:�•ô œ"œU™) RÓ(ˆDŒFØ!ˆDŒMØŸ™Ÿ™›ˆŒØ�
‰
�øô ó )Ü˜b %›�–ð)ús   ¡B ÂB,Â+B,c                ó²  • U R                   R                  U R                  [        R                  5        S U l        SU l        U R                   R                  S5      =U l        nU(       d  SU l	        g SU l	        US:X  a  U R                  S5        O%US:X  a  U R                  S5        OS	n[        U5      eU R                  5         U R                  5         g )
Nr   r*   TFri   r   rh   r  zInvalid TIFF file header)r¬   rü  rP  r§  rª  ÚwhereToWriteNewIFDOffsetÚoffsetOfNewPageræ  ÚIIMMÚisFirstÚ	setEndianÚRuntimeErrorÚskipIFDsÚgoToEnd)r“   Úiimmr0  s      rf   rQ  ÚAppendingTiffWriter.setupö  s¢   € à�‰�‰�D—N‘N¤B§K¡KÔ0à48ˆÔ%Ø ˆÔàŸ6™6Ÿ;™; q›>Ð)ˆŒ	�DÞàˆDŒLØàˆŒØ�=Ó Ø�N‰N˜3ÕØ�]Ó"Ø�N‰N˜3Õà,ˆCÜ˜sÓ#Ð#à�‰ŒØ�‰�rq   c                ó  • U R                   (       a  g U R                  R                  U R                  5        U R                  R	                  S5      nU(       d  g XR
                  :w  a  Sn[        U5      eU R                  5       nX0R                  -  nU R                  c   eU R                  R                  U R                  5        U R                  U5        U R                  R                  U5        U R                  5         g )Nr*   z1IIMM of new page doesn't match IIMM of first page)rX  r¬   rü  rV  ræ  rW  rZ  ÚreadLongrU  Ú	writeLongÚfixIFD)r“   r]  r0  Ú
ifd_offsets       rf   ÚfinalizeÚAppendingTiffWriter.finalize  s»   € Ø�<�<Øð 	�‰�‰�D×(Ñ(Ô)à�v‰v�{‰{˜1‹~ˆÞàà—9‘9ÓØEˆCÜ˜sÓ#Ð#à—]‘]“_ˆ
Ø×*Ñ*Ñ*ˆ
Ø×,Ñ,Ñ8Ð8Ð8Ø�‰�‰�D×1Ñ1Ô2Ø�‰�zÔ"Ø�‰�‰�JÔØ�‰�rq   c                óD   • U R                  5         U R                  5         g r~   )rd  rQ  r¥   s    rf   ÚnewFrameÚAppendingTiffWriter.newFrame'  s   € à�‰ŒØ�
‰
�rq   c                ó   • U $ r~   r>   r¥   s    rf   Ú	__enter__ÚAppendingTiffWriter.__enter__,  s   € Øˆrq   c                óH   • U R                   (       a  U R                  5         g g r~   )rN  r¬  )r“   r”   s     rf   Ú__exit__ÚAppendingTiffWriter.__exit__/  s   € Ø�=�=Ø�J‰J�Lð rq   c                óP   • U R                   R                  5       U R                  -
  $ r~   )r¬   rö  rV  r¥   s    rf   rö  ÚAppendingTiffWriter.tell3  s   € Ø�v‰v�{‰{‹}˜t×3Ñ3Ñ3Ð3rq   c                óœ   • U[         R                  :X  a  XR                  -  nU R                  R	                  X5        U R                  5       $ )zÁ
:param offset: Distance to seek.
:param whence: Whether the distance is relative to the start,
               end or current position.
:returns: The resulting position, relative to the start.
)r§  rª  rV  r¬   rü  rö  )r“   r  Úwhences      rf   rü  ÚAppendingTiffWriter.seek6  s:   € ð ”R—[‘[Ó Ø×*Ñ*Ñ*ˆFà�‰�‰�FÔ#Ø�y‰y‹{Ðrq   c                óB  • U R                   R                  S[        R                  5        U R                   R	                  5       nSUS-  -
  nSUs=:  a  S:  a'  O  O$U R                   R                  [        U5      5        U R                   R	                  5       U l        g )Nr   rC   )r¬   rü  r§  ÚSEEK_ENDrö  r  r  rV  )r“   r³  Ú	pad_bytess      rf   r\  ÚAppendingTiffWriter.goToEndC  sj   € Ø�‰�‰�A”r—{‘{Ô#Ø�f‰f�k‰k‹mˆð ˜˜r™‘Mˆ	ØˆyÕ˜2ÖØ�F‰F�L‰Lœ˜yÓ)Ô*Ø#Ÿv™vŸ{™{›}ˆÕrq   c                óˆ   • Xl         U R                    S3U l        U R                    S3U l        U R                    S3U l        g )Nr@   r—  ÚHHL)ÚendianÚlongFmtÚshortFmtÚ	tagFormat)r“   rz  s     rf   rY  ÚAppendingTiffWriter.setEndianM  s=   € ØŒØŸ+™+˜ aÐ(ˆŒØŸ;™;˜- qÐ)ˆŒØ ŸK™K˜=¨Ð,ˆ�rq   c                ó*  •  U R                  5       nUS:X  a#  U R                  R                  5       S-
  U l        g U R                  R	                  U5        U R                  5       nU R                  R	                  US-  [        R                  5        M“  )Nr   r*   rA   )r`  r¬   rö  rU  rü  Ú	readShortr§  r©  )r“   rc  Únum_tagss      rf   r[  ÚAppendingTiffWriter.skipIFDsS  sl   € ØØŸ™›ˆJØ˜Q‹Ø04·±·±³ÀÑ0A�Ô-Øà�F‰F�K‰K˜
Ô#Ø—~‘~Ó'ˆHØ�F‰F�K‰K˜ 2™¤r§{¡{Ô3ñ rq   c               ó8   • U R                   R                  U5      $ r~   )r¬   r  r¤  s     rf   r  ÚAppendingTiffWriter.write^  s   € Ø�v‰v�|‰|˜DÓ!Ð!rq   c                óL   •  SSSS.U   $ ! [          a    Sn[        U5      ef = f)Nr—  r@   r"  )r&   r*   r2   zoffset is not supported)rù  rZ  )r“   Ú
field_sizer0  s      rf   Ú_fmtÚAppendingTiffWriter._fmta  s8   € ð	$Ø˜s sÑ+¨JÑ7Ð7øÜó 	$Ø+ˆCÜ˜sÓ#Ð#ð	$ús   ‚ ‹#c                ó¢   • [         R                  " U R                  U R                  U5      -   U R                  R                  U5      5      u  nU$ r~   )r  r’  rz  r‡  r¬   ræ  )r“   r†  r¡   s      rf   Ú_readÚAppendingTiffWriter._readh  s=   € Ü—=’=Ø�K‰K˜$Ÿ)™) JÓ/Ñ/°·±·±¸ZÓ1Hó
‰ˆð ˆrq   c                ó$   • U R                  S5      $ ©Nr&   ©rŠ  r¥   s    rf   r€  ÚAppendingTiffWriter.readShortn  ó   € Ø�z‰z˜!‹}Ðrq   c                ó$   • U R                  S5      $ rl   rŽ  r¥   s    rf   r`  ÚAppendingTiffWriter.readLongq  r�  rq   c                ó<   • U b  X:w  a  SU  SU 3n[        U5      eg g )Nzwrote only z bytes but wanted )rZ  )Úbytes_writtenÚexpectedr0  s      rf   Ú_verify_bytes_writtenÚ)AppendingTiffWriter._verify_bytes_writtent  s4   € àÑ$¨Ó)BØ ˜Ð.@ÀÀ
ÐKˆCÜ˜sÓ#Ð#ð *CÐ$rq   c                óð   • U R                   R                  S[        R                  5        U R                   R	                  [
        R                  " U R                  U5      5      nU R                  US5        g )Néþÿÿÿr*   )	r¬   rü  r§  r©  r  r  r•  r{  r–  ©r“   r¡   r”  s      rf   ÚrewriteLastShortToLongÚ*AppendingTiffWriter.rewriteLastShortToLongz  sI   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¢[°·±¸uÓ%EÓFˆØ×"Ñ" =°!Õ4rq   c                ó  • U R                   R                  U* [        R                  5        U R                   R	                  [
        R                  " U R                  U R                  U5      -   U5      5      nU R                  X25        g r~   )
r¬   rü  r§  r©  r  r  r•  rz  r‡  r–  )r“   r¡   r†  r”  s       rf   Ú_rewriteLastÚ AppendingTiffWriter._rewriteLast  s\   € Ø�‰�‰�Z�K¤§¡Ô-ØŸ™Ÿ™Ü�KŠK˜Ÿ™ d§i¡i°
Ó&;Ñ;¸UÓCó
ˆð 	×"Ñ" =Õ=rq   c                ó&   • U R                  US5      $ r�  ©rž  r®  s     rf   ÚrewriteLastShortÚ$AppendingTiffWriter.rewriteLastShort†  ó   € Ø× Ñ  ¨Ó*Ð*rq   c                ó&   • U R                  US5      $ rl   r¡  r®  s     rf   ÚrewriteLastLongÚ#AppendingTiffWriter.rewriteLastLong‰  r¤  rq   c                óœ   • U R                   R                  [        R                  " U R                  U5      5      nU R                  US5        g r�  )r¬   r  r  r•  r|  r–  rš  s      rf   Ú
writeShortÚAppendingTiffWriter.writeShortŒ  s3   € ØŸ™Ÿ™¤V§[¢[°·±ÀÓ%FÓGˆØ×"Ñ" =°!Õ4rq   c                óœ   • U R                   R                  [        R                  " U R                  U5      5      nU R                  US5        g rl   )r¬   r  r  r•  r{  r–  rš  s      rf   ra  ÚAppendingTiffWriter.writeLong�  s3   € ØŸ™Ÿ™¤V§[¢[°·±¸uÓ%EÓFˆØ×"Ñ" =°!Õ4rq   c                ó|   • U R                  5         U R                  (       a  U R                  R                  5         g g r~   )rd  rN  r¬   r¬  r¥   s    rf   r¬  ÚAppendingTiffWriter.close”  s$   € Ø�‰ŒØ�=�=Ø�F‰F�L‰L�Nð rq   c                ó  • U R                  5       n[        U5       GHm  n[        R                  " U R                  U R
                  R                  S5      5      u  p4nU R                  U   nXe-  nUS:*  nU(       d.  U R                  5       U R                  -   n	U R                  U	5        X0R                  ;   aœ  U R
                  R                  5       n
U(       a1  U R                  XV5        U R
                  R                  U
S-   5        Mï  U R
                  R                  W	5        U R                  XV5        U R
                  R                  U
5        GM9  U(       d  GMC  U R
                  R                  S[        R                   5        GMp     g )Nr2   r*   )r€  r÷  r  r’  r}  r¬   ræ  Ú
fieldSizesr`  rV  r¦  ÚTagsrö  Ú_fixOffsetsrü  r§  r©  )r“   r�  r‚   rR  Ú
field_typerÿ  r†  Ú
total_sizeÚis_localr  Úcur_poss              rf   rb  ÚAppendingTiffWriter.fixIFD™  s  € Ø—>‘>Ó#ˆä�x—ˆAÜ%+§]¢]°4·>±>À4Ç6Á6Ç;Á;ÈqÃ>Ó%RÑ"ˆC˜UàŸ™¨Ñ4ˆJØ#Ñ+ˆJØ! Q‘ˆHÞØŸ™›¨4×+?Ñ+?Ñ?�Ø×$Ñ$ VÔ,à—i‘iÓØŸ&™&Ÿ+™+›-�æØ×$Ñ$ UÔ7Ø—F‘F—K‘K ¨!¡Ö,à—F‘F—K‘K Ô'Ø×$Ñ$ UÔ7Ø—F‘F—K‘K ×(ç‘à—‘—‘˜AœrŸ{™{×+ò/ !rq   c                óÒ  • [        U5       HØ  nU R                  U5      nX@R                  -  nUS:X  aŸ  US:¼  a™  US:w  a  Sn[        U5      eU R	                  U5        U R
                  R                  S[        R                  5        U R                  [        R                  5        U R
                  R                  S[        R                  5        MÇ  U R                  XB5        MÚ     g )Nr&   r    r   znot implementediöÿÿÿr2   )r÷  rŠ  rV  rZ  r›  r¬   rü  r§  r©  r©  r   rw  rž  )r“   rÿ  r†  r‚   r  r0  s         rf   r²  ÚAppendingTiffWriter._fixOffsetsµ  sª   € Ü�u–ˆAØ—Z‘Z 
Ó+ˆFØ×*Ñ*Ñ*ˆFØ˜Q‹ 6¨U£?à˜A“:Ø+�CÜ& sÓ+Ð+ð ×+Ñ+¨FÔ3Ø—‘—‘˜C¤§¡Ô-Ø—‘¤§¡Ô.Ø—‘—‘˜AœrŸ{™{Ö+à×!Ñ! &Ö5ò! rq   c                óP   • U(       a  SnOU(       a  SnOSnU R                  X5      $ )Nr&   r*   r   )r²  )r“   rÿ  ÚisShortÚisLongr†  s        rf   Ú
fixOffsetsÚAppendingTiffWriter.fixOffsetsÈ  s*   € ö Ø‰JÞØ‰JàˆJØ×Ñ Ó2Ð2rq   )rW  rP  rN  rz  r¬   rX  r{  r  rV  r|  r}  rU  N)F)rR  rú  r�  rá   r˜   rÝ   r   )r˜   rI  )r”   rà   r˜   rÝ   rÞ   )r  r    rr  r    r˜   r    )rz  r¯   r˜   rÝ   )r  r   r˜   r    )r†  r    r˜   r¯   )r†  r    r˜   r    )r”  r  r•  r    r˜   rÝ   )r¡   r    r˜   rÝ   )r¡   r    r†  r    r˜   rÝ   )rÿ  r    r†  r    r˜   rÝ   )FF)rÿ  r    r»  rá   r¼  rá   r˜   rÝ   )%rã   rä   rå   ræ   r°  r±  r¢   rQ  rd  rg  rj  rm  rö  r'  rª  rü  r\  rY  r[  r  r‡  rŠ  r€  r`  Ústaticmethodr–  r›  rž  r¢  r¦  r©  ra  r¬  rb  r²  r½  rë   r>   rq   rf   rI  rI  É  sÛ   † ò€Jò(€Döôô2ô0ô
ôô4ð /1¯k©kö ô-ô-ô	4ô"ô$ôôôð ó$ó ð$ô
5ô
>ô+ô+ô5ô5ôô
,ô86ð( AFð	3Øð	3Ø#'ð	3Ø9=ð	3à	÷	3ð 	3rq   rI  c                ó˜  • U R                   R                  5       nU R                  n[        UR	                  S/ 5      5      n[        U S5      (       d  U(       d  [        XU5      $ U R                  5       n [        U5       nU /U-    H~  nX8l         XHl        [        US5      (       d  Sn	OUR                  n	[        U	5       H@  n
UR                  U
5        UR                  5         [        X‡U5        UR                  5         MB     M€     S S S 5        U R                  U5        g ! , (       d  f       N = f! U R                  U5        f = f)NÚappend_imagesrg  r   )r  r  r  r)  rø  rê   r2  rö  rI  rg  r÷  rü  r  rg  )rl  rè  rW  r  r  rÁ  Úcur_idxÚtfÚimsÚnfrrö   s              rf   Ú	_save_allrÆ  Ô  s  € Ø—.‘.×%Ñ%Ó'€KØ×$Ñ$€MÜ˜Ÿ™¨¸"Ó=Ó>€MÜ�2�z×"Ñ"®=Ü�R˜XÓ&Ð&à�g‰g‹i€GðÜ  Ô$¨Ø�t˜mÔ+�Ø"-”Ø$1Ô!Ü˜s J×/Ñ/Ø‘CàŸ,™,�Cä  ž:�CØ—H‘H˜S”MØ—H‘H”JÜ˜# 8Ô,Ø—K‘K–Mó	 &ñ ,÷ %ð 	�‰�Õ÷ %Õ$ûð 	�‰�Õús%   Á7D6 ÂB	D%ÄD6 Ä%
D3Ä/D6 Ä6E	z.tifz.tiffz
image/tiff)ro   r  r˜   rá   )rw   rÜ   rx   r    r˜   ú!tuple[IntegralLike, IntegralLike])rw   ru   rx   r    r‹   r    r˜   rÇ  )r•   r¯   r˜   r   )rö   r    r÷   r    r˜   z$Callable[[_LoaderFunc], _LoaderFunc])rö   r    r˜   z2Callable[[Callable[..., Any]], Callable[..., Any]])r  ztuple[int, str, str]r˜   rÝ   )rl  zImage.Imagerè  r&  rW  zstr | bytesr˜   rÝ   )ŠÚ
__future__r   r'  r,  Úloggingr  r§  r  r  Úcollections.abcr   r   Ú	fractionsr   Únumbersr   r   Útypingr	   r
   r   r   r   r   Ú r   r   r   r   r   r   Ú_binaryr   r~  r   r�  r   Ú
_deprecater   Ú_typingr   Ú_utilr   r   r   r   Ú	getLoggerrã   rú  rÕ  r  r   r(  r&  r)  rÆ  rÇ  rË  r¿  rÃ  rÄ  r  r  rÍ  rØ  r!  rÒ  rÓ  rÁ  rÔ  r*  r  r  r  Ú	PREDICTORrÝ  rÙ  rÚ  r×  r%  r+  rÌ  rÊ  Ú
JPEGTABLESrÅ  r#  r  r  r  rÜ  r  ru  r&  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATAr¾  rG  r"  rÐ  rŠ   rÎ  rm   r‘   rŽ  rp   r{   rŽ   rô   rþ   r™   ru   r  rá   rú   rû   r  r  r    Ú
_IFDv2Baserì   rö   r  ró   r3  r1  ÚImageFileDirectoryrT  r  r2  ÚBytesIOrI  rÆ  Úregister_openrû  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mime)Úkrc  s   00rf   Ú<module>rá     sm  ðõR #ã 	Û Û Û Û 	Û Û ß 4Ý ß $ß C× Cç J× JÝ !Ý !Ý Ý !Ý #Ý Ý æß-à	×	Ò	˜8Ó	$€ð €Ø€Ø€
à
€Ø
€ð €Ø€
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* *:×)?Ñ)?Ô)AÔBÒ)A¡ ˜šÑ)AÒBÐ ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð	|ð
 ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð 
ð|ð ˆˆD�!�T˜2Ð 
ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð  ˆˆD�!�T˜2Ð ð!|ð" ˆˆD�!�T˜2Ð ð#|ð$ ˆˆD�!�T˜2Ð ð%|ð& ˆˆD�!�T˜2Ð ñ'|ð( ˆˆD�!�T˜2Ð ð)|ð* ˆˆD�!�T˜2Ð ð+|ð, ˆˆD�!�T˜2Ð ð-|ð. ˆˆD�!�T˜2Ð ð/|ð0 ˆˆD�!�T˜2Ð ð1|ð2 ˆˆD�!�T˜2Ð ð3|ð4 ˆˆD�!�T˜2Ð ð5|ð6 ˆˆD�!�T˜2Ð ð7|ð8 ˆˆD�!�T˜2Ð ð9|ð: ˆˆD�!�T˜2Ð ð;|ð< ˆˆD�!�T˜2Ð ð=|ð> ˆˆD�!�T˜2Ð 
ð?|ð@ ˆˆD�!�T˜2Ð 
ðA|ðB ˆˆD�!�T˜2Ð 
ðC|ðD ˆˆD�!�T˜2Ð 
ðE|ðF ˆˆD�!�T˜2Ð ðG|ðH ˆˆD�!�T˜2Ð òI|ðJ ˆˆD�!�U˜BÐÐ!1ðK|ðL ˆˆD�!�U˜BÐÐ!1ðM|ðN ˆˆD�!�U˜BÐÐ!1ðO|ðP ˆˆD�!�U˜BÐÐ!3ðQ|ðR ˆˆD�!�U˜BÐÐ!2ðS|ðT ˆˆD�!�U˜BÐ ðU|ðV ˆˆD�!�U˜BÐ ðW|ðX ˆˆD�!�U˜BÐ ðY|ðZ ˆˆD�!�U˜BÐ ð[|ð\ ˆˆD�!�U˜BÐ ð]|ð^ ˆˆD�!�U˜BÐ ð_|ð` ˆˆD�!�U˜BÐ ða|ðb ˆˆD�!�U˜BÐ ðc|ðd ˆˆD�!�U˜BÐ ðe|ðf ˆˆD�!�V˜TÐ" Lðg|ðh ˆˆD�!�V˜TÐ" Lði|ðj ˆˆD�!�Y Ð# ^òk|ðl ˆˆD�!�Y Ð# ^ðm|ðn ˆˆD�!�Y Ð#Ð%5ðo|ðp ˆˆD�!�Y Ð#Ð%5ðq|ðr ˆˆD�!�\ 2Ð&Ð(8ðs|ðt ˆˆD�!�\ 2Ð&Ð(8ðu|ðv ˆˆD�!�\ 4Ð(¨/ðw|ðx ˆˆD�!�\ 4Ð(¨/ðy|ðz ˆˆD�!�_ fÐ-Ð/?ð{|ð| ˆˆD�!�_ fÐ-Ð/?ð}|ð~ ˆˆD�!Ð'¨Ð3Ð5Fð|ð@ ˆˆD�!Ð'¨Ð3Ð5FðA|ðB ˆˆD�!�\ 4Ð(Ð*:ðC|ðD ˆˆD�!�\ 4Ð(Ð*:ðE|ðF ˆˆD�!�_ fÐ-Ð/@ðG|ðH ˆˆD�!�_ fÐ-Ð/@ðI|ðJ ˆˆD�!Ð'¨Ð3Ð5GðK|ðL ˆˆD�!Ð'¨Ð3Ð5GòM|ðN ˆˆD�!�\ 4Ð(Ð*:ðO|ðP ˆˆD�!�\ 4Ð(Ð*:ðQ|ðR ˆˆD�!�_ fÐ-Ð/@ðS|ðT ˆˆD�!�_ fÐ-Ð/@ðU|ðV ˆˆD�!Ð'¨Ð3Ð5GðW|ðX ˆˆD�!Ð'¨Ð3Ð5GðY|ðZ ˆˆD�!�\ 6Ð*Ð,<ð[|ð\ ˆˆD�!�\ 6Ð*Ð,<ð]|ð^ ˆˆD�!�\ 2Ð&Ð(:ð_|ð` ˆˆD�!�\ 2Ð&Ð(:ða|ðb ˆˆD�!Ð% rÐ*Ð,@ðc|ðd ˆˆD�!Ð% rÐ*Ð,@ðe|ðf ˆˆD�!Ð% tÐ,Ð.Aðg|ðh ˆˆD�!Ð% tÐ,Ð.Aði|ðj ˆˆD�!Ð% tÐ,Ð.Bðk|ðl ˆˆD�!Ð% tÐ,Ð.Bðm|ðn ˆˆD�!Ð% tÐ,Ð.Bòo|ðp ˆˆD�!Ð% tÐ,Ð.Bðq|ðr ˆˆD�!�T˜2Ð ðs|ðt ˆˆD�!�T˜2Ð ðu|ðv ˆˆD�!�T˜2Ð ðw|ðx ˆˆD�!�T˜2Ð ðy|ðz ˆˆD�!�T˜2Ð ð{|ð| ˆˆD�!�T˜2Ð ð}|ð~ ˆˆD�!�T˜2Ð ð|ð@ ˆˆD�!�T˜2Ð ðA|ðB ˆˆD�!�T˜2Ð ðC|ðD ˆˆD�!�T˜2Ð ðE|ðF ˆˆD�!�T˜2Ð ðG|ðH ˆˆD�!�T˜2Ð ðI|ðJ ˆˆD�!�T˜2Ð 
ðK|ðL ˆˆD�!�T˜2Ð 
ðM|ðN ˆˆD�!�V˜TÐ" KðO|ðP ˆˆD�!�V˜TÐ" LòQ|ðR ˆˆD�!�V˜TÐ" LðS|ðT ˆˆD�!�T˜2Ð ðU|ðV ˆˆD�!�T˜2Ð ðW|ðX ˆˆD�!�\ 2Ð&Ð(8ðY|ðZ ˆˆD�!�\ 2Ð&Ð(8ð[|ð\ ˆˆD�!�_ dÐ+Ð->ð]|ð^ ˆˆD�!�_ dÐ+Ð->ð_|ð` ˆˆD�!Ð'¨Ð0Ð2Dða|ðb ˆˆD�!Ð'¨Ð0Ð2Dðc|ðd ˆˆD�!Ð% rÐ*Ð,@ðe|ðf ˆˆD�!Ð% rÐ*Ð,@ðg|ðh ˆˆD�!�T˜2Ð 
ði|ðj ˆˆD�!�T˜2Ð 
ðk|ðp ˆˆD�!�Y Ð# _ðq|ðr ˆˆD�!�Y Ð# _ðs|ðt ˆˆD�!�Y Ð# ^ðu|ðv ˆˆD�!�Y Ð# ^ñw|€	ñ| ÑA±yÓAÓAÐ ò€ñ ˆu�z‰zÐ8¸$×?Ñ?ÙÐ:¸BÔ?ô"ð%Ø	'ð%Ø25ð%à&ô%ðØ	ðØ"ðØ-0ðà&ôð& €Ø€ôôG'�(ô G'ðT Ð/°¸Ð=¸sÐBÑC€ô	ôôö$ Ø  S Ñ)�Jà€JôM$˜Jô M$ð` (6Ð Ô $Ø(7Ð Ô %Ø—’–�I€CˆØ�<‰<˜˜SÓ!€DÙÐ! U¨4¨& >°>À#Ñ3FÀqÑ3IÔJÙÐ! V¨D¨6 ?°OÀCÑ4HÖIñ ð �O S¨$ôXÐ1ô Xðx +Ð ôlH�I×'Ñ'ô lHðlð ˆ#ˆr�1�a˜˜tÐ	$ðð ˆ#ˆr�1�a˜˜tÐ	$ð	ð
 	ˆ4��Q˜˜6 1Ð
%ðð ˆ#ˆr�1�a˜˜tÐ	$ðð 	ˆ4��Q˜˜6 1Ð
%ðð ˆ'�2�q˜!˜U DÐ	)ðð ˆV�R˜˜A˜u dÐ+ðð ˆg�r˜1˜a ¨Ð-ðð ˆ'�2�q˜!˜U DÐ	)ðð 
ˆE�2�q˜!˜Y¨Ð-ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨TÐ2ðð  ˆg�r˜1˜a ¨DÐ1ð!ð" 
ˆE�2�q˜!˜Y¨Ð-ð#ð$ ˆx˜˜Q  5¨$Ð/ð%ð& ˆg�r˜1˜a ¨Ð-ð'ð( ˜˜Q  5¨$Ð/Ø˜˜Q  5¨$Ð/ò+€	ô2s-ôl	H3˜"Ÿ*š*ô H3ôVð> × Ó �M×(Ò(¨-¸Ô AØ × Ó �M×(Ò(¨%Ô 0Ø × Ó ˜×,Ò,¨iÔ 8à × Ó ˜-×.Ò.°¸Ð0AÔ Bà × Ó �M×(Ò(¨,Õ 7ùóMC Cs   Å`!