§
    aÒ³gÆE ã                  óè  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZmZmZmZmZ ddlmZmZmZmZmZmZ dd	lm Z! dd
lm"Z# ddlm$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddlm+Z+ erddl'm,Z,m-Z-  ej.        e/¦  «        Z0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@d ZAd!ZBd"ZCd#ZDd$ZEd%ZFd&ZGd'ZHd(ZId)ZJd*ZKd+ZLd,ZMd-ZNd.ZOd/ZPd0ZQd1ZRd2ZSd3ZTd4ZUd5ZVd6ZWd7ZXd8ZYd9ZZd:Z[d;Z\d<Z]d=Z^i dd>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^“Z_d_„ e_ `                    ¦   «         D ¦   «         Zai e4d d`dd`dafdb“e5d d`dd`dafdb“e4d d`d?d`dafdc“e5d d`d?d`dafdc“e4dd`dd`dafdd“e5dd`dd`dafdd“e4dd`d?d`dafde“e5dd`d?d`dafde“e4d d`ddfdafdg“e5d d`ddfdafdg“e4d d`d?dfdafdh“e5d d`d?dfdafdh“e4dd`ddfdafdi“e5dd`ddfdafdi“e4dd`d?dfdafdj“e5dd`d?dfdafdj“e4d d`ddkdafdl“i e5d d`ddkdafdl“e4d d`d?dkdafdm“e5d d`d?dkdafdm“e4dd`ddkdafdn“e5dd`ddkdafdn“e4dd`d?dkdafdo“e5dd`d?dkdafdo“e4d d`ddpdafdq“e5d d`ddpdafdq“e4d d`d?dpdafdr“e5d d`d?dpdafdr“e4dd`ddpdafds“e5dd`ddpdafds“e4ddfddpdafds“e5ddfddpdafds“e4dd`d?dpdafdt“e5dd`d?dpdafdt“¥i e4dd`ddudafdv“e4d d`ddwdafdx“e4dd`ddwdafdx“e5dd`ddwdafdy“e4dd`d?dwdafdz“e4ddfddwdafd{“e5ddfddwdafd|“e4d d}dd~dafd“e5d d}dd~dafd€“e4dd`dd~dafd�“e4ddfdd~dafd‚“e5ddfdd~dafdƒ“e4dd}dd~dafd“e5dd}dd~dafd€“e4dd`dd„dffd…“e5dd`dd„dffd…“e4d?d`dd†dafd‡“¥i e5d?d`dd†dafd‡“e4d?d`d?d†dafdˆ“e5d?d`d?d†dafdˆ“e4d?d`dd‰dafdŠ“e5d?d`dd‰dafdŠ“e4d?d`dd‰d‹fdŒ“e5d?d`dd‰d‹fdŒ“e4d?d`dd�dŽfd�“e5d?d`dd�dŽfd�“e4d?d`dd�d‘fd’“e5d?d`dd�d‘fd’“e4d?d`dd‰d`fd““e5d?d`dd‰d`fd““e4d?d`dd�d”fd•“e5d?d`dd�d”fd•“e4d?d`dd�d–fd—“e5d?d`dd�d–fd—“¥i e4d?d`dd‰dffdŠ“e5d?d`dd‰dffdŠ“e4d?d`dd�d˜fd™“e5d?d`dd�d˜fd™“e4d?d`dd�dšfd›“e5d?d`dd�dšfd›“e4d?d`dd‰dœfdŠ“e5d?d`dd‰dœfdŠ“e4d?d`dd�dafdž“e5d?d`dd�dafdŸ“e4d?d`dd dafd¡“e5d?d`dd dafd¢“e4d?d`dd d‹fd£“e5d?d`dd d‹fd¤“e4d?d`dd d`fd¥“e5d?d`dd d`fd¦“e4d?d`dd dffd¡“¥i e5d?d`dd dffd¢“e4dAd`dd`dafd§“e5dAd`dd`dafd§“e4dAd`d?d`dafd¨“e5dAd`d?d`dafd¨“e4dAd`ddfdafd©“e5dAd`ddfdafd©“e4dAd`d?dfdafdª“e5dAd`d?dfdafdª“e4dAd`ddkdafd«“e5dAd`ddkdafd«“e4dAd`d?dkdafd¬“e5dAd`d?dkdafd¬“e4dAd`ddpdafd­“e5dAd`ddpdafd­“e4dAd`dd„d‹fd®“e4dAd`dd„dffd¯“¥i e5dAd`dd„dffd¯“e4dAd`d?dpdafd°“e5dAd`d?dpdafd°“e4dEd`dd‰dafd±“e5dEd`dd‰dafd±“e4dEd`dd�d‹fd²“e5dEd`dd�d‹fd²“e4dEd`dd�dŽfd³“e5dEd`dd�dŽfd³“e4dEd`dd dafd´“e5dEd`dd dafdµ“e4dGd`ddpdafds“e5dGd`ddpdafds“e4dGd`dd†dafdŒ“e5dGd`dd†dafdŒ“e4dKd`dd†dafd¶“e5dKd`dd†dafd¶“¥Zb ecd·„ ebD ¦   «         ¦  «        Zdg d¸¢Ze efejg        d¹dº¦  «        s e&d»d¼¦  «         �ddÁ„Zh�ddÇ„Zi�d	dÊ„Zji Zki Zl�d
dÎ„Zm G dÏ„ dÈe¦  «        ZnedÐeoepgef         Zq�ddÔ„Zr�ddÖ„Zs�ddÚ„Ztereeuef         ZvneZv G dÛ„ dÐev¦  «        Zwekew_k        elew_l         e+j`        ¦   «         D ]M\  ZxZyey z                    dÜdÝ¦  «        Zy e{ewdÞey› �ekex         d         ¦  «          e{ewdßey› �elex         ¦  «         ŒN[k[l[x[y G dà„ dáew¦  «        Z|e|Z} G dâ„ dãej        ¦  «        Z~i dädäe4ddd`df“dådåe4dddpdf“dædæe4ddd„d?f“dçdçe4dAddpdf“dèdèe4dAdd„d?f“dédêe4dd?d~df“dëdëe4dddwdf“dìdìe4dd?dwdf“dídîe4ddAd~df“dïdïe4d?dd†df“dðdðe4d?dd‰d f“dñdñe4d?dd‰d?f“dòdòe4dEdd‰df“dódóe4dGdd†df“dôdôe4dKdd†df“dõdõe5dd?d~df“dödöe5dddwdf“d÷e5dd?dwdfdøe5ddAd~dfdùœ¥Z�d�d „Z€ G �d„ �dej�        ¦  «        Z‚�d�d„Zƒ ej„        e~j…        e~eh¦  «          ej†        e~j…        e€¦  «          ej‡        e~j…        eƒ¦  «          ejˆ        e~j…        �d�dg¦  «          ej‰        e~j…        �d¦  «         dS (  é    )Ú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Ã  Úwebpc                ó   — i | ]\  }}||“Œ	S © r?   )Ú.0ÚkÚvs      úQ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/TiffImagePlugin.pyú
<dictcomp>rD   “   s   € ÐBÐBÐB¡  A˜˜1ÐBÐBÐBó    ©r   r?   )Ú1z1;I)rG   z1;IR)rG   rG   )rG   z1;R)r'   )ÚLzL;2I)rH   zL;2IR)rH   zL;2)rH   zL;2R)r+   )rH   zL;4I)rH   zL;4IR)rH   zL;4)rH   zL;4R)r3   )rH   zL;I)rH   zL;IR)rH   rH   )rH   zL;R)é   )úI;16zI;12)é   )rJ   rJ   )úI;16BrL   )rJ   zI;16R)ÚIúI;16S)rM   úI;16BS)r)   )é    )ÚFúF;32F)rQ   úF;32BF)rM   zI;32N)rM   úI;32S)rM   úI;32BS)r3   r3   )ÚLArV   )r3   r3   r3   )ÚRGBrW   )rW   zRGB;R)r3   r3   r3   r3   )ÚRGBArX   ©r   )rW   ÚRGBX)r3   r3   r3   r3   r3   ©r   r   )rW   ÚRGBXX)r3   r3   r3   r3   r3   r3   )r   r   r   )rW   ÚRGBXXX)rX   ÚRGBa)r   r   )rX   ÚRGBaX)r   r   r   )rX   ÚRGBaXX)r'   r   )rX   ÚRGBAX)r'   r   r   )rX   ÚRGBAXX)iç  )rK   rK   rK   )rW   zRGB;16L)rW   zRGB;16B)rK   rK   rK   rK   )rX   zRGBA;16L)rX   zRGBA;16B)rW   zRGBX;16L)rW   zRGBX;16B)rX   zRGBa;16L)rX   zRGBa;16B)ÚPzP;1)rc   zP;1R)rc   zP;2)rc   zP;2R)rc   zP;4)rc   zP;4R)rc   rc   )rc   ÚPX)ÚPAre   )rc   zP;R)ÚCMYKrf   )rf   ÚCMYKX)rf   ÚCMYKXX)rf   zCMYK;16L)rf   zCMYK;16B)ÚLABri   c              #  ó@   K  — | ]}t          |d          ¦  «        V — ŒdS )r+   N)Úlen)r@   Úkey_tps     rC   ú	<genexpr>rm     s,   è è € ÐAÐA¨V�#˜f Qœi™.œ.ÐAÐAÐAÐAÐAÐArE   )ó   MM *ó   II* s   MM* s   II *s   MM +s   II+ Úlibtiff_support_custom_tagsTz*Support for LibTIFF earlier than version 4rI   ÚprefixÚbytesÚreturnÚboolc                ó$   — | d d…         t           v S ©Nr+   )ÚPREFIXES©rq   s    rC   Ú_acceptry   "  s   € Ø�"�1�"Œ:�Ð!Ð!rE   Úvalúfloat | Fraction | IFDRationalÚmax_valÚintú!tuple[IntegralLike, IntegralLike]c                ó˜   — t          | ¦  «        dk    }t          |rd| z  n| ¦  «                             |¦  «        }|r|d d d…         n|S )Nr   éÿÿÿÿ)ÚabsÚIFDRationalÚlimit_rational)rz   r|   ÚinvÚn_ds       rC   Ú_limit_rationalr†   &  sT   € õ ˆc‰(Œ(�QŠ,€CÝ
 Ð-�a˜#‘g�g¨#Ñ
.Ô
.×
=Ò
=¸gÑ
FÔ
F€CØÐ$ˆ3ˆtˆt�ˆtŒ9ˆ9 Ð$rE   r‚   Úmin_valc                óJ  — t          | ¦  «        }|j        |j        f}t          d„ |D ¦   «         ¦  «        |k     rt	          | t          |¦  «        ¦  «        }t          d„ |D ¦   «         ¦  «        }t          |¦  «        |k    rt	          |d         |d         z  |¦  «        }|S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N©Úfloat©r@   Úis     rC   rm   z)_limit_signed_rational.<locals>.<genexpr>4  s(   è è € Ð
!Ð
!˜�5�‰8Œ8Ð
!Ð
!Ð
!Ð
!Ð
!Ð
!rE   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rŠ   r‹   r�   s     rC   rm   z)_limit_signed_rational.<locals>.<genexpr>7  s(   è è € Ð,Ð, 1•e˜A‘h”hÐ,Ð,Ð,Ð,Ð,Ð,rE   r   r   )r   Ú	numeratorÚdenominatorÚminr†   r�   ÚtupleÚmax)rz   r|   r‡   Úfracr…   Ú	n_d_floats         rC   Ú_limit_signed_rationalr—   .  s£   € õ �C‰=Œ=€DØ-1¬^¸TÔ=MÐ-M€Cå
Ð
!Ð
!˜SÐ
!Ñ
!Ô
!Ñ!Ô! GÒ+Ð+Ý˜c¥3 w¡<¤<Ñ0Ô0ˆåÐ,Ð,¨Ð,Ñ,Ô,Ñ,Ô,€IÝ
ˆ9�~„~˜ÒÐÝ˜i¨œl¨Y°q¬\Ñ9¸7ÑCÔCˆà€JrE   ÚopÚstrr   c                ó   ‡ — dˆ fd„}|S )	NÚselfr‚   Úargsútuple[float, ...]rs   úbool | float | Fractionc                ó4   •—  t          | j        ‰¦  «        |Ž S rŠ   )ÚgetattrÚ_val)r›   rœ   r˜   s     €rC   Údelegatez_delegate.<locals>.delegateF  s   ø€ ð &�w�t”y "Ñ%Ô% tÐ,Ð,rE   )r›   r‚   rœ   r�   rs   rž   r?   )r˜   r¢   s   ` rC   Ú	_delegater£   E  s(   ø€ ð-ð -ð -ð -ð -ð -ð
 €OrE   c                  óô  — e Zd ZdZ	 dZ	 d8d9d
„Zed:d„¦   «         Zed;d„¦   «         Zd<d„Z	d=d„Z
d;d„Zd>d„Zd?d„Zd@d„Z	  ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed ¦  «        Z ed!¦  «        Z ed"¦  «        Z ed#¦  «        Z ed$¦  «        Z ed%¦  «        Z ed&¦  «        Z ed'¦  «        Z ed(¦  «        Z ed)¦  «        Z ed*¦  «        Z ed+¦  «        Z ed,¦  «        Z  ed-¦  «        Z! ed.¦  «        Z" ed/¦  «        Z# ed0¦  «        Z$ ed1¦  «        Z% ed2¦  «        Z& ed3¦  «        Z' ed4¦  «        Z( ed5¦  «        Z) e*e+d6¦  «        r ed6¦  «        Z,d7S d7S )Ar‚   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¡   r   Úvaluer{   r‘   r}   rs   ÚNonec                óH  — |  t          |t          ¦  «        r&|j        | _        |j        | _        |j        | _        dS t          |t          ¦  «        r|j        | _        |j        | _        n0t          rt          t          |¦  «        | _        n|| _        || _        |dk    rt          d¦  «        | _        dS |dk    rt          |¦  «        | _        dS t          |¦  «        |k    r$t          t          |¦  «        |¦  «        | _        dS t          ||z  ¦  «        | _        dS )z®
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        Nr   Únanr   )Ú
isinstancer‚   r�   r¥   r‘   r¦   r¡   r   r
   r   r    rŒ   r}   )r›   r§   r‘   s      rC   Ú__init__zIFDRational.__init__\  s  € ð 	Ð#Ý�e�[Ñ)Ô)ð 	Ø#œoˆDŒOØ %Ô 1ˆDÔØœ
ˆDŒIØˆFå�e�XÑ&Ô&ð 	,Ø#œoˆDŒOØ %Ô 1ˆDÔÐåð (Ý"&¥|°UÑ";Ô";�”�à"'�”Ø +ˆDÔà˜!ÒÐÝ˜e™œˆDŒIˆIˆIØ˜AÒÐÝ  ™œˆDŒIˆIˆIÝ�‰ZŒZ˜5Ò Ð Ý ¥ U¡¤¨[Ñ9Ô9ˆDŒIˆIˆIå  ¨Ñ!4Ñ5Ô5ˆDŒIˆIˆIrE   r    c                ó   — | j         S rŠ   )r¥   ©r›   s    rC   r�   zIFDRational.numerator~  s
   € àŒÐrE   c                ó   — | j         S rŠ   )r¦   r®   s    rC   r‘   zIFDRational.denominator‚  s   € àÔ Ð rE   Úmax_denominatorútuple[IntegralLike, int]c                ó¼   — | j         dk    r| j        | j         fS t          | j        t          ¦  «        sJ ‚| j                             |¦  «        }|j        |j         fS )z…

        :param max_denominator: Integer, the maximum denominator value
        :returns: Tuple of (numerator, denominator)
        r   )r‘   r�   r«   r¡   r   Úlimit_denominator)r›   r°   Úfs      rC   rƒ   zIFDRational.limit_rational†  s^   € ð Ô˜qÒ Ð Ø”> 4Ô#3Ð3Ð3å˜$œ)¥XÑ.Ô.Ð.Ð.Ð.ØŒI×'Ò'¨Ñ8Ô8ˆØŒ{˜AœMÐ)Ð)rE   r™   c                óD   — t          t          | j        ¦  «        ¦  «        S rŠ   )r™   rŒ   r¡   r®   s    rC   Ú__repr__zIFDRational.__repr__”  s   € Ý•5˜œÑ#Ô#Ñ$Ô$Ð$rE   c                ó4   — | j                              ¦   «         S rŠ   )r¡   Ú__hash__r®   s    rC   r¸   zIFDRational.__hash__—  s   € ØŒy×!Ò!Ñ#Ô#Ð#rE   ÚotherÚobjectrt   c                óœ   — | j         }t          |t          ¦  «        r|j         }t          |t          ¦  «        rt          |¦  «        }||k    S rŠ   )r¡   r«   r‚   rŒ   )r›   r¹   rz   s      rC   Ú__eq__zIFDRational.__eq__š  sI   € ØŒiˆÝ�e�[Ñ)Ô)ð 	Ø”JˆEÝ�e�UÑ#Ô#ð 	Ý˜‘*”*ˆCØ�eŠ|ÐrE   ú%list[float | Fraction | IntegralLike]c                ó*   — | j         | j        | j        gS rŠ   )r¡   r¥   r¦   r®   s    rC   Ú__getstate__zIFDRational.__getstate__¢  s   € Ø”	˜4œ?¨DÔ,=Ð>Ð>rE   Ústatec                ó   — t                                | d¦  «         |\  }}}t          |t          t          f¦  «        sJ ‚|| _        t          rt          t          |¦  «        | _	        n|| _	        t          |t          ¦  «        sJ ‚|| _        d S ©Nr   )r‚   r¬   r«   rŒ   r   r¡   r
   r   r    r¥   r}   r¦   )r›   rÀ   r¡   r¥   r¦   s        rC   Ú__setstate__zIFDRational.__setstate__¥  sŒ   € Ý×Ò˜T 1Ñ%Ô%Ð%Ø).Ñ&ˆˆj˜,Ý˜$¥­Ð 1Ñ2Ô2Ð2Ð2Ð2ØˆŒ	Ýð 	)Ý"¥<°Ñ<Ô<ˆDŒOˆOà(ˆDŒOÝ˜,­Ñ,Ô,Ð,Ð,Ð,Ø(ˆÔÐÐrE   Ú__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__NrF   )r§   r{   r‘   r}   rs   r¨   )rs   r    ©rs   r}   )r°   r}   rs   r±   ©rs   r™   )r¹   rº   rs   rt   )rs   r½   )rÀ   r½   rs   r¨   )-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r¬   Úpropertyr�   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Ý   Úhasattrr   rÞ   r?   rE   rC   r‚   r‚   N  s·  € € € € € ðð ðð
 7€Ið IJð 6ð  6ð  6ð  6ð  6ðD ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ð*ð *ð *ð *ð%ð %ð %ð %ð$ð $ð $ð $ðð ð ð ð?ð ?ð ?ð ?ð
)ð 
)ð 
)ð 
)ðð ˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØ�)˜MÑ*Ô*€KØ�9˜^Ñ,Ô,€LØ�9˜^Ñ,Ô,€LØ�I˜oÑ.Ô.€MØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆi˜	Ñ"Ô"€GØˆi˜	Ñ"Ô"€GØ�	˜+Ñ&Ô&€IØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆy˜Ñ$Ô$€HØˆy˜Ñ$Ô$€HØ�	˜+Ñ&Ô&€IØ�	˜+Ñ&Ô&€Ià€wˆx˜Ñ#Ô#ð 'Ø�)˜IÑ&Ô&ˆˆˆð'ð 'rE   ÚImageFileDirectory_v2ÚidxÚsizeú$Callable[[_LoaderFunc], _LoaderFunc]c                ó   ‡ ‡— dˆ ˆfd„}|S )NÚfuncÚ_LoaderFuncrs   c                ó¬   •— ddl m} | j                             d¦  «        r&| j        dd …                              dd¦  «        |‰<   ‰| ft
          ‰<   | S )Nr   r   Úload_r-   Ú_ú )r   r   rá   Ú
startswithÚreplaceÚ_load_dispatch)rí   r   ré   rê   s     €€rC   Ú	decoratorz#_register_loader.<locals>.decoratorÜ  sd   ø€ Ø#Ð#Ð#Ð#Ð#Ð#àŒ=×#Ò# GÑ,Ô,ð 	=Øœ q r rÔ*×2Ò2°3¸Ñ<Ô<ˆE�#‰JØ" D˜j��sÑØˆrE   )rí   rî   rs   rî   r?   )ré   rê   rö   s   `` rC   Ú_register_loaderr÷   Û  s/   øø€ ðð ð ð ð ð ð ð ÐrE   ú2Callable[[Callable[..., Any]], Callable[..., Any]]c                ó   ‡ — dˆ fd„}|S )Nrí   úCallable[..., Any]rs   c                ó   •— | t           ‰<   | S rŠ   )Ú_write_dispatch)rí   ré   s    €rC   rö   z#_register_writer.<locals>.decoratorè  s   ø€ Ø#�˜ÑØˆrE   )rí   rú   rs   rú   r?   )ré   rö   s   ` rC   Ú_register_writerrý   ç  s)   ø€ ðð ð ð ð ð ð ÐrE   Úidx_fmt_nameútuple[int, str, str]r¨   c                óž   ‡‡— ddl m} | \  }Š}|||<   t          j        d‰› �¦  «        Š	 ddˆˆfd„}‰|ft          |<   ˆfd„t
          |<   d S )Nr   r   ú=Tr›   rè   Údatarr   Ú
legacy_apirt   rs   útuple[Any, ...]c                óX   •— |                       t          |¦  «        ‰z  › ‰› �|¦  «        S rŠ   )Ú_unpackrk   )r›   r  r  Úfmtrê   s      €€rC   Úbasic_handlerz&_register_basic.<locals>.basic_handlerö  s/   ø€ ð �|Š|�s 4™yœy¨DÑ0Ð7°#Ð7Ð7¸Ñ>Ô>Ð>rE   c                óJ   •‡ — d                      ˆˆ fd„|D ¦   «         ¦  «        S )NrE   c              3  óD   •K  — | ]}‰                      ‰|¦  «        V — Œd S rŠ   )Ú_pack)r@   r§   r  r›   s     €€rC   rm   z4_register_basic.<locals>.<lambda>.<locals>.<genexpr>ý  s1   øè è € Ð<Ð<¨E�—’˜C Ñ'Ô'Ð<Ð<Ð<Ð<Ð<Ð<rE   ©Újoin)r›   Úvaluesr  s   ` €rC   ú<lambda>z!_register_basic.<locals>.<lambda>ü  s0   øø€ Ø�ŠÐ<Ð<Ð<Ð<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð rE   ©T)r›   rè   r  rr   r  rt   rs   r  )r   r   ÚstructÚcalcsizerõ   rü   )rþ   r   ré   Únamer  r  rê   s        @@rC   Ú_register_basicr  ï  s    øø€ ØÐÐÐÐÐà!�N€CˆˆdØ€Eˆ#�JÝŒ?˜9˜s˜9˜9Ñ%Ô%€Dð FJð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð
  Ð-…N�3Ñðð ð ð …O�CÑÐÐrE   c                  óº  — e Zd ZU dZi Zded<   i Zded<   	 	 	 d_d`d„Z ed„ ¦  «        Z	 ed„ ¦  «        Z
edad„¦   «         Zej        dbd„¦   «         Zdcd„Zddd„Zded„Zdfd„Zdgd!„Zdhd#„Zdid$„Zdjd&„Zdkd'„Zdld)„Zdmd-„Zdnd/„Z e eeej        d0d1fej        d2d3fej        d4d5fej         d6d7fej!        d8d9fej"        d:d;fej#        d<d=fej$        d2d3fej%        d>d?fg	¦  «        ¦  «          e&d@d@¦  «        dodpdB„¦   «         Z' e(d@¦  «        dqdD„¦   «         Z) e&dEd@¦  «        dodrdF„¦   «         Z* e(dE¦  «        dsdH„¦   «         Z+ e&dIdJ¦  «        	 dodtdL„¦   «         Z, e(dI¦  «        dudN„¦   «         Z- e&dOd@¦  «        dodpdP„¦   «         Z. e(dO¦  «        dvdQ„¦   «         Z/ e&dRdJ¦  «        	 dodtdS„¦   «         Z0 e(dR¦  «        dudT„¦   «         Z1dwdX„Z2dxdY„Z3dZ„ Z4dydzd]„Z5d{d^„Z6dS )|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ü   ó   II*     NÚifhrr   rq   úbytes | NoneÚgroupú
int | Noners   r¨   c                ó.  — t          |¦  «        s"dt          |¦  «        › d�}t          |¦  «        ‚|�|n	|dd…         | _        | j        t          k    rd| _        n)| j        t          k    rd| _        nd}t          |¦  «        ‚|d         dk    | _        || _        i | _	        	 |  
                    ¦   «          | j        r$|                      d	|d
d…         ¦  «        d         n#|                      d|dd…         ¦  «        d         | _        d| _        dS )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é+   ÚQr3   r   rH   r+   F)ry   ÚreprÚSyntaxErrorÚ_prefixÚMMÚ_endianÚIIÚ_bigtiffr  ÚtagtypeÚresetr  ÚnextÚ_legacy_api)r›   r  rq   r  Úmsgs        rC   r¬   zImageFileDirectory_v2.__init__G  s  € õ  �s‰|Œ|ð 	#ØC­T°#©Y¬YÐCÐCÐCˆCÝ˜cÑ"Ô"Ð"Ø!'Ð!3�v�v¸¸R¸a¸R¼ˆŒØŒ<�2ÒÐØˆDŒLˆLØŒ\�RÒÐØˆDŒLˆLà"ˆCÝ˜cÑ"Ô"Ð"Ø˜Aœ "šˆŒØˆŒ
Ø')ˆŒØ'Ø�
Š
‰Œˆð Œ}ð/ˆD�LŠL˜˜c ! " "œgÑ&Ô& qÔ)Ð)à—’˜c 3 q r r¤7Ñ+Ô+¨AÔ.ð 	Œ	ð
 !ˆÔÐÐrE   c                ó   — | j         S rŠ   )r"  r®   s    rC   r  zImageFileDirectory_v2.<lambda>n  ó   €  4¤<€ rE   c                ó   — | j         S rŠ   )Ú_offsetr®   s    rC   r  zImageFileDirectory_v2.<lambda>o  r-  rE   rt   c                ó   — | j         S rŠ   )r*  r®   s    rC   r  z ImageFileDirectory_v2.legacy_apiq  s   € àÔÐrE   r§   r   c                ó$   — d}t          |¦  «        ‚)Nz"Not allowing setting of legacy api)Ú	Exception)r›   r§   r+  s      rC   r  z ImageFileDirectory_v2.legacy_apiu  s   € à2ˆÝ˜‰nŒnÐrE   c                óZ   — i | _         i | _        i | _        i | _        d | _        d | _        d S rŠ   )Ú_tags_v1Ú_tags_v2Ú_tagdatar'  Ú_nextr/  r®   s    rC   r(  zImageFileDirectory_v2.resetz  s0   € Ø(*ˆŒØ(*ˆŒØ*,ˆŒØˆŒØˆŒ
Ø#'ˆŒˆˆrE   r™   c                ó:   — t          t          | ¦  «        ¦  «        S rŠ   )r™   Údictr®   s    rC   Ú__str__zImageFileDirectory_v2.__str__‚  s   € Ý•4˜‘:”:‰ŒÐrE   údict[str, Any]c                óD   ‡ — ˆ fd„‰                       ¦   «         D ¦   «         S )z�
        :returns: dict of name|key: value

        Returns the complete tag dictionary, with named tags where possible.
        c                óV   •— i | ]%\  }}t          j        |‰j        ¦  «        j        |“Œ&S r?   )r   Úlookupr  r  )r@   Úcoder§   r›   s      €rC   rD   z/ImageFileDirectory_v2.named.<locals>.<dictcomp>‹  s@   ø€ ð 
ð 
ð 
á��eõ ŒO˜D $¤*Ñ-Ô-Ô2°Eð
ð 
ð 
rE   )Úitemsr®   s   `rC   ÚnamedzImageFileDirectory_v2.named…  s6   ø€ ð
ð 
ð 
ð 
à#Ÿzšz™|œ|ð
ñ 
ô 
ð 	
rE   r}   c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rŠ   )rk   Úsetr6  r5  r®   s    rC   Ú__len__zImageFileDirectory_v2.__len__�  ó)   € Ý•3�t”}Ñ%Ô%­¨D¬MÑ(:Ô(:Ñ:Ñ;Ô;Ð;rE   Útagr   c                óü   — || j         vr?| j        |         }| j        |         }| j        |         \  }} || || j        ¦  «        | |<   | j         |         }| j        rt          |t          t          f¦  «        s|f}|S rŠ   )r5  r6  r'  rõ   r  r«   r“   rr   )r›   rF  r  Útyprê   Úhandlerrz   s          rC   Ú__getitem__z!ImageFileDirectory_v2.__getitem__“  sˆ   € Ø�d”mÐ#Ð#Ø”= Ô%ˆDØ”,˜sÔ#ˆCØ Ô/°Ô4‰MˆD�'Ø˜  d¨D¬OÑ<Ô<ˆD�‰IØŒm˜CÔ ˆØŒ?ð 	¥:¨cµE½5°>Ñ#BÔ#Bð 	Ø�&ˆCØˆ
rE   rº   c                ó&   — || j         v p|| j        v S rŠ   )r5  r6  ©r›   rF  s     rC   Ú__contains__z"ImageFileDirectory_v2.__contains__ž  ó   € Ø�d”mÐ#Ð; s¨d¬mÐ';Ð;rE   c                ó>   — |                       ||| j        ¦  «         d S rŠ   )Ú_setitemr  )r›   rF  r§   s      rC   Ú__setitem__z!ImageFileDirectory_v2.__setitem__¡  s    € Ø�Š�c˜5 $¤/Ñ2Ô2Ð2Ð2Ð2rE   r  c           	     ó>  ‡— t           t          t          f}t          j        || j        ¦  «        Št          ||¦  «        r|gn|}|| j        v�rá‰j        r‰j        | j        |<   �nÉt          j	        | j        |<   t          d„ |D ¦   «         ¦  «        rN|D ]5}t          |t          ¦  «        sJ ‚|dk     rt          j        | j        |<    nŒ6t          j        | j        |<   �nNt          d„ |D ¦   «         ¦  «        r¬d}d}d}	|D ]I}t          |t          ¦  «        sJ ‚|rd|cxk    rdk     sn d}|rd|cxk     rdk     sn d}|	r|dk     rd}	ŒJ|rt          j        | j        |<   nÌ|rt          j        | j        |<   nµ|	rt          j        | j        |<   nžt          j        | j        |<   n‰t          d	„ |D ¦   «         ¦  «        rt          j        | j        |<   n[t          d
„ |D ¦   «         ¦  «        rt          j        | j        |<   n-t          d„ |D ¦   «         ¦  «        rt          j        | j        |<   | j        |         t          j	        k    rd„ |D ¦   «         }n'| j        |         t          j        k    rd„ |D ¦   «         }| j        |         t          j        k    ot          |t,          ¦  «        }
|
st/          ˆfd„|D ¦   «         ¦  «        }|r| j        n| j        }|
sº‰j        dk    s7| j        |         t          j        k    s‰j        €�t7          |¦  «        dk    rz|sx|r(| j        |         t          j        t          j        fv r|f}	 |\  ||<   d S # t8          $ r7 t;          j        d|› dt7          |¦  «        › d�¦  «         |d         ||<   Y d S w xY w|||<   d S )Nc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŠ   )r«   r‚   ©r@   rB   s     rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¯  s,   è è € ÐBÐB°a•z !¥[Ñ1Ô1ÐBÐBÐBÐBÐBÐBrE   r   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŠ   )r«   r}   rT  s     rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>·  ó,   è è € Ð<Ð<°� A¥sÑ+Ô+Ð<Ð<Ð<Ð<Ð<Ð<rE   Tr!   Fi €ÿÿi €  c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŠ   )r«   rŒ   rT  s     rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ë  ó,   è è € Ð>Ð>°!� A¥uÑ-Ô-Ð>Ð>Ð>Ð>Ð>Ð>rE   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŠ   )r«   r™   rT  s     rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Í  rV  rE   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŠ   )r«   rr   rT  s     rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ï  rX  rE   c                óh   — g | ]/}t          |t          ¦  «        r|                     d d¦  «        n|‘Œ0S )Úasciirô   )r«   r™   ÚencoderT  s     rC   ú
<listcomp>z2ImageFileDirectory_v2._setitem.<locals>.<listcomp>Ó  sJ   € ð ð ð àõ 1;¸1½cÑ0BÔ0BÐI�—’˜ )Ñ,Ô,Ð,Èðð ð rE   c                óZ   — g | ](}t          |t          ¦  «        rt          |¦  «        n|‘Œ)S r?   )r«   r}   rŒ   rT  s     rC   r^  z2ImageFileDirectory_v2._setitem.<locals>.<listcomp>Ø  s1   € ÐLÐLÐLÀ¥*¨QµÑ"4Ô"4Ð;•e˜A‘h”h�h¸!ÐLÐLÐLrE   c              3  óp   •K  — | ]0}t          |t          ¦  «        r‰                     |¦  «        n|V — Œ1d S rŠ   )r«   r™   Úcvt_enum)r@   r§   Úinfos     €rC   rm   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ü  sW   øè è € ð ð àõ )3°5½#Ñ(>Ô(>ÐI�—’˜eÑ$Ô$Ð$ÀEðð ð ð ð ð rE   r   zMetadata Warning, tag z had too many entries: z, expected 1)r   rr   r™   r   r>  r  r«   r'  ÚtypeÚ	UNDEFINEDÚallr‚   ÚSIGNED_RATIONALÚRATIONALr}   ÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEr9  r“   r4  r5  Úlengthrk   Ú
ValueErrorÚwarningsÚwarn)r›   rF  r§   r  Ú	basetypesr  rB   ÚshortÚsigned_shortÚlongÚis_ifdÚdestrb  s               @rC   rP  zImageFileDirectory_v2._setitem¤  sq  ø€ Ý�U¥CÐ(ˆ	åŒ˜s D¤JÑ/Ô/ˆÝ& u¨iÑ8Ô8ÐC�%��¸eˆà�d”lÐ"Ñ"ØŒyð %6Ø$(¤I�”˜SÑ!Ñ!å$,Ô$6�”˜SÑ!ÝÐBÐB¸6ÐBÑBÔBÑBÔBð !6Ø#ð >ð >˜Ý)¨!­[Ñ9Ô9Ð9Ð9Ð9Ø˜qš5˜5Ý08Ô0H˜DœL¨Ñ-Ø!˜Eð !õ -5Ô,=˜œ SÑ)ùÝÐ<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð 6Ø �EØ#'�LØ�DØ#ð )ð )˜Ý)¨!­SÑ1Ô1Ð1Ð1Ð1Ø ð *¨!¨q¨.¨.ª.¨.°5ª.¨.¨.¨.Ø$)˜EØ'ð 1°¸AÐ1EÐ1EÒ1EÐ1EÀÒ1EÐ1EÐ1EÐ1EØ+0˜LØð ) A¨¢E EØ#(˜DøØð AÝ,4¬N˜œ SÑ)Ð)Ø%ð AÝ,4Ô,A˜œ SÑ)Ð)Øð AÝ,4¬M˜œ SÑ)Ð)å,4Ô,@˜œ SÑ)Ð)ÝÐ>Ð>°vÐ>Ñ>Ô>Ñ>Ô>ð 6Ý(0¬�D”L Ñ%Ð%ÝÐ<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð 6Ý(0¬�D”L Ñ%Ð%ÝÐ>Ð>°vÐ>Ñ>Ô>Ñ>Ô>ð 6Ý(0¬�D”L Ñ%àŒ<˜Ô¥Ô 2Ò2Ð2ðð àðñ ô ˆFˆFð Œ\˜#Ô¥(Ô"3Ò3Ð3ØLÐLÀVÐLÑLÔLˆFà”˜cÔ"¥h¤mÒ3ÐP½
À6Í4Ñ8PÔ8PˆØð 	Ýð ð ð ð à#ðñ ô ñ ô ˆFð
 !+Ð=ˆtŒ}ˆ}°´ˆð ð 	ØŒ[˜AÒÐØŒ|˜CÔ ¥H¤MÒ1Ð1Ø”Ð#­¨F©¬°qÒ(8Ð(8ÀÐ(8ð ð #˜dœl¨3Ô/ÝÔ!ÝÔ(ð4ð ð ð !˜�ð&Ø%‘��c‘��øÝð &ð &ð &å”ð1¨Sð 1ð 1Ý˜6‘{”{ð1ð 1ð 1ñô ð ð # 1œI��S‘	�	�	�	ð&øøøð ˆD�‰IˆIˆIs   ÍM Í=NÎNc                ó¨   — | j                              |d ¦  «         | j                             |d ¦  «         | j                             |d ¦  «         d S rŠ   )r5  Úpopr4  r6  rL  s     rC   Ú__delitem__z!ImageFileDirectory_v2.__delitem__  sP   € ØŒ×Ò˜#˜tÑ$Ô$Ð$ØŒ×Ò˜#˜tÑ$Ô$Ð$ØŒ×Ò˜#˜tÑ$Ô$Ð$Ð$Ð$rE   úIterator[int]c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rŠ   )ÚiterrC  r6  r5  r®   s    rC   Ú__iter__zImageFileDirectory_v2.__iter__  ó)   € Ý•C˜œÑ&Ô&­¨T¬]Ñ);Ô);Ñ;Ñ<Ô<Ð<rE   r  r  r  c                ó<   — t          j        | j        |z   |¦  «        S rŠ   )r  Úunpackr$  )r›   r  r  s      rC   r  zImageFileDirectory_v2._unpack
  s   € ÝŒ}˜Tœ\¨CÑ/°Ñ6Ô6Ð6rE   r  c                ó6   — t          j        | j        |z   g|¢R Ž S rŠ   )r  Úpackr$  )r›   r  r  s      rC   r  zImageFileDirectory_v2._pack  s!   € ÝŒ{˜4œ<¨#Ñ-Ð7°Ð7Ð7Ð7Ð7rE   ÚHrt  rH   rv  Úbzsigned byteÚhzsigned shortÚlzsigned longr´   rŒ   ÚdÚdoubler  Úlong8r   Tc                ó   — |S rŠ   r?   ©r›   r  r  s      rC   Ú	load_bytezImageFileDirectory_v2.load_byte!  ó   € àˆrE   úbytes | int | IFDRationalc                ó˜   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        rt          |f¦  «        }|S rŠ   )r«   r‚   r}   rr   ©r›   r  s     rC   Ú
write_bytez ImageFileDirectory_v2.write_byte%  sC   € å�d�KÑ(Ô(ð 	Ý�t‘9”9ˆDÝ�d�CÑ Ô ð 	"Ý˜$˜‘>”>ˆDØˆrE   r'   c                ól   — |                      d¦  «        r
|d d…         }|                     dd¦  «        S )Nó    r€   zlatin-1rô   )ÚendswithÚdecoder�  s      rC   Úload_stringz!ImageFileDirectory_v2.load_string-  s7   € à�=Š=˜ÑÔð 	Ø˜˜˜”9ˆDØ�{Š{˜9 iÑ0Ô0Ð0rE   ústr | bytes | intc                óª   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        s|                     dd¦  «        }|dz   S )Nr\  rô   r•  )r«   r}   r™   rr   r]  ©r›   r§   s     rC   Úwrite_stringz"ImageFileDirectory_v2.write_string3  sP   € õ �e�SÑ!Ô!ð 	Ý˜‘J”JˆEÝ˜%¥Ñ'Ô'ð 	5Ø—L’L ¨)Ñ4Ô4ˆEØ�u‰}ÐrE   r-   r3   ú)tuple[tuple[int, int] | IFDRational, ...]c           
     óÚ   ‡‡— |                       t          |¦  «        dz  › d�|¦  «        }dˆfd„Št          ˆfd	„t          |d d d
…         |dd d
…         ¦  «        D ¦   «         ¦  «        S )Nr+   rH   Úar}   r†  rs   útuple[int, int] | IFDRationalc                ó0   •— ‰r| |fnt          | |¦  «        S rŠ   ©r‚   ©rŸ  r†  r  s     €rC   Úcombinez4ImageFileDirectory_v2.load_rational.<locals>.combineB  ó    ø€ Ø'Ð>�A�q�6�6­[¸¸AÑ->Ô->Ð>rE   c              3  ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S rŠ   r?   ©r@   ÚnumÚdenomr¤  s      €rC   rm   z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>E  ó3   øè è € ÐVÐV©Z¨S°%�W�W˜S %Ñ(Ô(ÐVÐVÐVÐVÐVÐVrE   r'   r   ©rŸ  r}   r†  r}   rs   r   ©r  rk   r“   Úzip©r›   r  r  Úvalsr¤  s     ` @rC   Úload_rationalz#ImageFileDirectory_v2.load_rational<  óŽ   øø€ ð �|Š|�s 4™yœy¨A™~Ð0Ð0Ð0°$Ñ7Ô7ˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?õ ÐVÐVÐVÐV½3¸tÀCÀCÀaÀC¼yÈ$ÈqÈtÐRSÈtÌ*Ñ;UÔ;UÐVÑVÔVÑVÔVÐVrE   r‚   c                óF   ‡ — d                      ˆ fd„|D ¦   «         ¦  «        S )NrE   c              3  óP   •K  — | ] } ‰j         d gt          |d¦  «        ¢R Ž V — Œ!dS )Ú2Ll   ÿÿ N)r  r†   ©r@   r•   r›   s     €rC   rm   z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>I  sR   øè è € ð 
ð 
ØDHˆJˆDŒJ�tÐ?�o¨d°IÑ>Ô>Ð?Ð?Ð?ð
ð 
ð 
ð 
ð 
ð 
rE   r  ©r›   r  s   ` rC   Úwrite_rationalz$ImageFileDirectory_v2.write_rationalG  s?   ø€ à�xŠxð 
ð 
ð 
ð 
ØLRð
ñ 
ô 
ñ 
ô 
ð 	
rE   r1   c                ó   — |S rŠ   r?   r�  s      rC   Úload_undefinedz$ImageFileDirectory_v2.load_undefinedM  r�  rE   c                ó¾   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        r#t          |¦  «                             dd¦  «        }|S )Nr\  rô   )r«   r‚   r}   r™   r]  r›  s     rC   Úwrite_undefinedz%ImageFileDirectory_v2.write_undefinedQ  sQ   € å�e�[Ñ)Ô)ð 	Ý˜‘J”JˆEÝ�e�SÑ!Ô!ð 	:Ý˜‘J”J×%Ò% g¨yÑ9Ô9ˆEØˆrE   é
   c           
     óÚ   ‡‡— |                       t          |¦  «        dz  › d�|¦  «        }dˆfd„Št          ˆfd	„t          |d d d
…         |dd d
…         ¦  «        D ¦   «         ¦  «        S )Nr+   rˆ  rŸ  r}   r†  rs   r   c                ó0   •— ‰r| |fnt          | |¦  «        S rŠ   r¢  r£  s     €rC   r¤  z;ImageFileDirectory_v2.load_signed_rational.<locals>.combine_  r¥  rE   c              3  ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S rŠ   r?   r§  s      €rC   rm   z=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>b  rª  rE   r'   r   r«  r¬  r®  s     ` @rC   Úload_signed_rationalz*ImageFileDirectory_v2.load_signed_rationalY  r±  rE   c                óF   ‡ — d                      ˆ fd„|D ¦   «         ¦  «        S )NrE   c           	   3  óR   •K  — | ]!} ‰j         d gt          |dd¦  «        ¢R Ž V — Œ"dS )Ú2liÿÿÿi   €N)r  r—   rµ  s     €rC   rm   z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>f  sX   øè è € ð 
ð 
àð ˆDŒJ�tÐPÕ4°T¸9ÀhÑOÔOÐPÐPÐPð
ð 
ð 
ð 
ð 
ð 
rE   r  r¶  s   ` rC   Úwrite_signed_rationalz+ImageFileDirectory_v2.write_signed_rationald  s?   ø€ à�xŠxð 
ð 
ð 
ð 
àð
ñ 
ô 
ñ 
ô 
ð 	
rE   Úfpú	IO[bytes]rê   c                ó    — |                      |¦  «        }t          |¦  «        |k    r%d|› dt          |¦  «        › d�}t          |¦  «        ‚|S )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )Úreadrk   ÚOSError)r›   rÅ  rê   Úretr+  s        rC   Ú_ensure_readz"ImageFileDirectory_v2._ensure_readk  sj   € Ø�gŠg�d‰mŒmˆÝˆs‰8Œ8�tÒÐðLØ%)ðLð LÝ?BÀ3¹x¼xðLð Lð Lð õ ˜#‘,”,ÐØˆ
rE   c           
     ó  — |                       ¦   «          |                     ¦   «         | _        	 | j        r*|                      d|                      |d¦  «        ¦  «        n)|                      d|                      |d¦  «        ¦  «        d         }t          |¦  «        D �]J}| j        r*|                      d|                      |d¦  «        ¦  «        n)|                      d|                      |d	¦  «        ¦  «        \  }}}}t          j        || j	        ¦  «        j
        }t          j        |d
¦  «        }	d|› d|› d|	› d|› d�	}
	 | j        |         \  }}n,# t          $ r t                               d|
|¦  «         Y Œàw xY w||z  }|| j        rdndk    r€|                     ¦   «         }|                      | j        rdnd|¦  «        \  }|
d|› d|› �z  }
|                     |¦  «         t%          j        ||¦  «        }|                     |¦  «         n
|d |…         }t)          |¦  «        |k    rFt+          j        d|› dt)          |¦  «        › d|› �¦  «         t                               |
¦  «         �ŒÛ|st                               |
¦  «         �Œù|| j        |<   || j        |<   |
dz  }
|
|dk    rd|› d�nt3          |¦  «        z  }
t                               |
¦  «         �ŒL| j        r*|                      d|                      |d¦  «        ¦  «        n)|                      d|                      |d¦  «        ¦  «        \  | _        d S # t6          $ r,}
t+          j        t9          |
¦  «        ¦  «         Y d }
~
d S d }
~
ww xY w)Nr  r3   r…  r'   r   ÚHHQ8sé   ÚHHL4srI   Úunknownztag: ú (ú
) - type: ú)z%s - unsupported type %sr+   rH   z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read rÈ  z. Skipping tag z
 - value: rP   ú<table: ú bytes>)r(  Útellr/  r&  r  rÌ  Úranger   r>  r  r  r   Úgetrõ   ÚKeyErrorÚloggerÚdebugÚseekr   Ú
_safe_readrk   rq  rr  r6  r'  r   r)  rÊ  r™   )r›   rÅ  Ú	tag_countrŽ   rF  rH  Úcountr  ÚtagnameÚtypnamer+  Ú	unit_sizerI  rê   ÚhereÚoffsets                   rC   ÚloadzImageFileDirectory_v2.loadu  sÌ  € Ø�
Š
‰ŒˆØ—w’w‘y”yˆŒð=	ð ”=ðA�—’˜S $×"3Ò"3°B¸Ñ":Ô":Ñ;Ô;Ð;à—\’\ # t×'8Ò'8¸¸QÑ'?Ô'?Ñ@Ô@Øô	ˆIõ
 ˜9Ñ%Ô%ð ."ñ ."�ð ”}ðJ�D—L’L ¨$×*;Ò*;¸BÀÑ*CÔ*CÑDÔDÐDàŸš g¨t×/@Ò/@ÀÀRÑ/HÔ/HÑIÔIñ &��S˜% õ #œ/¨#¨t¬zÑ:Ô:Ô?�Ýœ) C¨Ñ3Ô3�ØI˜gÐIÐI¨ÐIÐI¸ÐIÐIÀ3ÐIÐIÐI�ðØ)-Ô)<¸SÔ)AÑ&�I˜w˜wøÝð ð ð Ý—L’LÐ!;¸SÀ#ÑFÔFÐFØ�Hðøøøð ˜yÑ(�Ø ¤Ð4˜1˜1°1Ò5Ð5ØŸ7š7™9œ9�DØ $§¢°D´MÐ-J¨S¨SÀsÈDÑ QÔ Q‘I�VØÐM¨TÐMÐMÀVÐMÐMÑM�CØ—G’G˜F‘O”O�OÝ$Ô/°°DÑ9Ô9�DØ—G’G˜D‘M”M�M�Mà   œ;�Då�t‘9”9 Ò$Ð$Ý”Mð/Ø-1ð/ð /ÝGJÈ4ÁyÄyð/ð /à),ð/ð /ñô ð õ
 —L’L Ñ%Ô%Ð%Ùàð Ý—L’L Ñ%Ô%Ð%Ùà%)�”˜cÑ"Ø$'�”˜SÑ!à�|Ñ#�Ø°4¸"²9°9Ð/ $Ð/Ð/Ð/Ð/Å$ÀtÁ*Ä*ÑL�å—’˜SÑ!Ô!Ð!Ñ!ð ”=ðA�—’˜S $×"3Ò"3°B¸Ñ":Ô":Ñ;Ô;Ð;à—\’\ # t×'8Ò'8¸¸QÑ'?Ô'?Ñ@Ô@ñ ˆTŒYˆYˆYøõ
 ð 	ð 	ð 	ÝŒM�#˜c™(œ(Ñ#Ô#Ð#ØˆFˆFˆFˆFˆFøøøøð	øøøs=   ¯DM ÅEÅM Å&F Å=M Å?F Æ GM Í
NÍ!N Î Nc                ó  — | j         |                      d| j        rdnd¦  «        z   }| j        r||                      ddd¦  «        z  }|| j        r|                      dd¦  «        n|                      d	d¦  «        z  }|S )
Nr…  r  é*   ÚHHr3   r   r  rK   rH   )r"  r  r&  ©r›   r  s     rC   Ú_get_ifhzImageFileDirectory_v2._get_ifh¸  s‚   € ØŒl˜TŸZšZ¨°4´=Ð-H¨R¨RÀbÑIÔIÑIˆØŒ=ð 	*Ø�4—:’:˜d A qÑ)Ô)Ñ)ˆCØ d¤mÐKˆt�zŠz˜#˜rÑ"Ô"Ð"¸¿ºÀCÈÑ9KÔ9KÑKˆàˆ
rE   r   rå  c                ó¦  ‡— |                       | j        rdndt          | j        ¦  «        ¦  «        }g }‰t          |¦  «        t          | j        ¦  «        | j        rdndz  z   dz   z  Šd }| j        rdnd}| j        rdnd}t	          | j                             ¦   «         ¦  «        D �]\  }}|t          k    rt          |¦  «        }| j        |         }	t           	                    d||	t          |¦  «        ¦  «         |	t          j        k    ot          |t          ¦  «        }
|
ret          |                      ¦   «         |¬	¦  «        }| j        |         }|                     ¦   «         D ]
\  }}|||<   Œ|                     ‰¦  «        }n.t          |t$          ¦  «        r|n|f} | j        |	         | g|¢R Ž }t          j        || j        ¦  «        j        }|
rd
nt/          j        |	d¦  «        }d|› d|› d|› d|	› d�	}|t          |¦  «        dk    rdt          |¦  «        › d�nt3          |¦  «        z  }t           	                    |¦  «         |
rd}nD|	t          j        t          j        t          j        fv rt          |¦  «        }nt          |¦  «        }t          |¦  «        |k    r0|                     ||	||                     |d¦  «        df¦  «         �Œ6|                     ||	||                       |‰¦  «        |f¦  «         ‰t          |¦  «        dz   dz  dz  z  Š�Œ�|��||         \  }}	}}}|rC| j        |	         \  }}ˆfd„ || || j         ¦  «        D ¦   «         } | j        |	         | g|¢R Ž }n3|                       ||  !                    ||¦  «        d         ‰z   ¦  «        }||	|||f||<   |D ]f\  }}	}}}t           	                    d||	|t          |¦  «        t          |¦  «        ¦  «         ||                       | j        rdnd||	||¦  «        z  }Œg|dz  }|D ]$\  }}	}}}||z  }t          |¦  «        dz  r|dz  }Œ%|S )Nr  r…  rÏ  rI   r+   rH   r3   zTag %s, Type: %s, Value: %s)r  ÚifdrÑ  zsave: rÒ  rÓ  z) - value: rK   rÕ  rÖ  r   r•  rE   r'   c                ó   •— g | ]}|‰z   ‘ŒS r?   r?   )r@   rz   rå  s     €rC   r^  z1ImageFileDirectory_v2.tobytes.<locals>.<listcomp>õ  s   ø€ ÐWÐWÐW¨3˜# ™,ÐWÐWÐWrE   r   z%s %s %s %s %srÎ  rÐ  s       )"r  r&  rk   r5  Úsortedr@  ÚSTRIPOFFSETSr'  rÛ  rÜ  r   r   rj  r«   r9  rè   rë  Útobytesr“   rü   r>  r  r  r   rÙ  r™   rn  rm  rd  ÚappendÚljustrõ   r  r  )r›   rå  ÚresultÚentriesÚstripoffsetsr  Úfmt_sizerF  r§   rH  rw  rí  r  Úifd_tagÚ	ifd_valuer  rá  râ  r+  rà  rê   rI  s    `                    rC   rñ  zImageFileDirectory_v2.tobytesÀ  s¨  ø€ à—’ 4¤=Ð9˜C˜C°c½3¸t¼}Ñ;MÔ;MÑNÔNˆà<>ˆØ•#�f‘+”+¥ D¤MÑ 2Ô 2¸D¼MÐ6Q°b°bÈrÑ RÑRÐUVÑVÑVˆØˆð ”]Ð+ˆcˆc¨ˆØœÐ,�1�1¨1ˆÝ  ¤×!4Ò!4Ñ!6Ô!6Ñ7Ô7ð "	3ñ "	3‰JˆC�Ø•lÒ"Ð"Ý" 7™|œ|�Ø”,˜sÔ#ˆCÝ�LŠLÐ6¸¸SÅ$ÀuÁ+Ä+ÑNÔNÐNØ�HœMÒ)ÐE­j¸ÅÑ.EÔ.EˆFØð @Ý+¨D¯MªM©O¬OÀ3ÐGÑGÔG�Øœ sÔ+�Ø*0¯,ª,©.¬.ð -ð -Ñ&�G˜YØ#,�C˜‘L�LØ—{’{ 6Ñ*Ô*��å",¨UµEÑ":Ô":ÐH˜˜ÀÀ�Ø0�tÔ+¨CÔ0°Ð?¸Ð?Ð?Ð?�å”o c¨4¬:Ñ6Ô6Ô;ˆGØ%ÐD�e�e­5¬9°S¸)Ñ+DÔ+DˆGØP˜7ÐPÐP cÐPÐP°WÐPÐPÀÐPÐPÐPˆCØµC¸±I´IÀ²O°OÐ0�c $™iœiÐ0Ð0Ð0Ð0ÍÈVÉÌÑTˆCÝ�LŠL˜ÑÔÐð ð $Ø��Ø�œ­¬½Ô8JÐKÐKÐKÝ˜D™	œ	��å˜F™œ�å�4‰yŒy˜HÒ$Ð$Ø—’  S¨%°·²¸HÀeÑ1LÔ1LÈcÐRÑSÔSÐSÑSà—’  S¨%°·²¸CÀÑ1HÔ1HÈ$ÐOÑPÔPÐPØ�3˜t™9œ9 q™=¨QÑ.°Ñ2Ñ2�‘ð Ð#Ø+2°<Ô+@Ñ(ˆC��e˜U DØð NØ $Ô 3°CÔ 8‘��gØWÐWÐWÐW°'°'¸$ÀÀdÄoÑ2VÔ2VÐWÑWÔW�Ø0�tÔ+¨CÔ0°Ð?¸Ð?Ð?Ð?��àŸ
š
 3¨¯ª°S¸%Ñ(@Ô(@ÀÔ(CÀfÑ(LÑMÔM�Ø$'¨¨e°U¸DÐ$@ˆG�LÑ!ð -4ð 	ð 	Ñ(ˆC��e˜U DÝ�LŠLÐ)¨3°°U½DÀ¹K¼KÍÈdÉÌÑTÔTÐTØ�d—j’jØœ=Ð5��¨g°s¸CÀÈñô ñ ˆFˆFð
 	�+Ñˆð -4ð 	 ð 	 Ñ(ˆC��e˜U DØ�d‰NˆFÝ�4‰yŒy˜1‰}ð  Ø˜%‘�øàˆrE   c                ó   — |                      ¦   «         dk    r'|                     |                      ¦   «         ¦  «         |                      ¦   «         }|                      |¦  «        }|                     |¦  «         |t	          |¦  «        z   S rÂ   )r×  Úwriterë  rñ  rk   )r›   rÅ  rå  rô  s       rC   ÚsavezImageFileDirectory_v2.save  sn   € Ø�7Š7‰9Œ9˜Š>ˆ>Ø�HŠH�T—]’]‘_”_Ñ%Ô%Ð%à—’‘”ˆØ—’˜fÑ%Ô%ˆØ
�Š�ÑÔÐØ�˜F™œÑ#Ð#rE   )r  NN)r  rr   rq   r  r  r  rs   r¨   )rs   rt   )r§   rt   rs   r   ©rs   r¨   rà   )rs   r;  rß   ©rF  r}   rs   r   ©rF  rº   rs   rt   ©rF  r}   r§   r   rs   r¨   )rF  r}   r§   r   r  rt   rs   r¨   )rF  r}   rs   r¨   ©rs   r|  )r  r™   r  rr   rs   r  )r  r™   r  r   rs   rr   r  )r  rr   r  rt   rs   rr   )r  r�  rs   rr   )r  rr   r  rt   rs   r™   )r§   r™  rs   rr   )r  rr   r  rt   rs   r�  )r  r‚   rs   rr   )r§   r�  rs   rr   )rÅ  rÆ  rê   r}   rs   rr   )rÅ  rÆ  rs   r¨   rY   )rå  r}   rs   rr   )rÅ  rÆ  rs   r}   )7rá   râ   rã   rä   rõ   Ú__annotations__rü   r¬   ræ   rq   rå  r  Úsetterr(  r:  rA  rD  rJ  rM  rQ  rP  r{  r  r  r  ÚlistÚmapr  r   rh  rj  ÚSIGNED_BYTEri  rk  ÚFLOATrl  ÚIFDÚLONG8r÷   rŽ  rý   r“  r˜  rœ  r°  r·  r¹  r»  rÀ  rÄ  rÌ  ræ  rë  rñ  rü  r?   rE   rC   rè   rè     s¿  € € € € € € ð:ð :ðx :<€NÐ;Ð;Ð;Ñ;Ø57€OÐ7Ð7Ð7Ñ7ð 3Ø#Ø ð	%!ð %!ð %!ð %!ð %!ðN ˆXÐ/Ð/Ñ0Ô0€FØˆXÐ/Ð/Ñ0Ô0€Fàð ð  ð  ñ „Xð ð Ôðð ð ñ Ôðð(ð (ð (ð (ðð ð ð ð	
ð 	
ð 	
ð 	
ð<ð <ð <ð <ð	ð 	ð 	ð 	ð<ð <ð <ð <ð3ð 3ð 3ð 3ð\ð \ð \ð \ð|%ð %ð %ð %ð
=ð =ð =ð =ð7ð 7ð 7ð 7ð8ð 8ð 8ð 8ð 	€DØˆØà”  gÐ.Ø”  VÐ,ØÔ% s¨MÐ:ØÔ&¨¨^Ð<ØÔ% s¨MÐ:Ø”  gÐ.Ø” # xÐ0Ø”˜s FÐ+Ø”  gÐ.ð
ñ	
ô 	
ñô ð ð" Ð�a˜ÑÔðð ð ð ñ Ôðð Ð�aÑÔðð ð ñ Ôðð Ð�a˜ÑÔð1ð 1ð 1ð 1ñ Ôð1ð
 Ð�aÑÔðð ð ñ Ôðð Ð�a˜ÑÔà.2ðWð Wð Wð Wñ ÔðWð Ð�aÑÔð
ð 
ð 
ñ Ôð
ð
 Ð�a˜ÑÔðð ð ð ñ Ôðð Ð�aÑÔðð ð ñ Ôðð Ð�b˜!ÑÔà.2ðWð Wð Wð Wñ ÔðWð Ð�bÑÔð
ð 
ð 
ñ Ôð
ðð ð ð ðAð Að Að AðFð ð ðKð Kð Kð Kð KðZ$ð $ð $ð $ð $ð $rE   rò   rñ   rð   Úwrite_c                  óª   ‡ — e Zd ZU dZdˆ fd„Z ed„ ¦  «        Z ed	„ ¦  «        Zd
ed<   	 e	dd„¦   «         Z
dd„Zdd„Zdd„Zd d„Zd!d„Zd"d„Zˆ xZS )#ÚImageFileDirectory_v1aþ  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
    rœ   r   Úkwargsrs   r¨   c                óH   •—  t          ¦   «         j        |i |¤Ž d| _        d S )NT)Úsuperr¬   r*  )r›   rœ   r  Ú	__class__s      €rC   r¬   zImageFileDirectory_v1.__init__4  s-   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆÔÐÐrE   c                ó   — | j         S rŠ   )r4  r®   s    rC   r  zImageFileDirectory_v1.<lambda>8  s   €  ¤€ rE   c                ó   — | j         S rŠ   )r6  r®   s    rC   r  zImageFileDirectory_v1.<lambda>9  s   €  D¤M€ rE   zdict[int, int]r'  Úoriginalrè   c                óp   —  | |j         ¬¦  «        }|j        |_        |j        |_        |j        |_        |S )a2  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`

        rx   )rq   r6  r'  r)  )Úclsr  rí  s      rC   Úfrom_v2zImageFileDirectory_v1.from_v2?  s:   € ð ˆc˜œÐ)Ñ)Ô)ˆØÔ(ˆŒØÔ&ˆŒØ”=ˆŒØˆ
rE   c                óÆ   — t          | j        ¬¦  «        }t          | j        ¦  «        |_        t          | j        ¦  «        |_        t          | j        ¦  «        |_        |S )a2  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`

        rx   )rè   rq   r9  r6  r'  r5  )r›   rí  s     rC   Úto_v2zImageFileDirectory_v1.to_v2Q  sN   € õ $¨4¬;Ð7Ñ7Ô7ˆÝ˜DœMÑ*Ô*ˆŒÝ˜4œ<Ñ(Ô(ˆŒÝ˜DœMÑ*Ô*ˆŒØˆ
rE   rF  rº   rt   c                ó&   — || j         v p|| j        v S rŠ   )r4  r6  rL  s     rC   rM  z"ImageFileDirectory_v1.__contains__b  rN  rE   r}   c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rŠ   )rk   rC  r6  r4  r®   s    rC   rD  zImageFileDirectory_v1.__len__e  rE  rE   r|  c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rŠ   )r~  rC  r6  r4  r®   s    rC   r  zImageFileDirectory_v1.__iter__h  r€  rE   r§   c                ó>   — dD ]}|                       |||¦  «         Œd S ©N)FT)rP  )r›   rF  r§   r  s       rC   rQ  z!ImageFileDirectory_v1.__setitem__k  s4   € Ø'ð 	2ð 	2ˆJØ�MŠM˜#˜u jÑ1Ô1Ð1Ð1ð	2ð 	2rE   c           	     ó  — || j         vrQ| j        |         }| j        |         }| j        |         \  }}dD ]$}|                      | || ||¦  «        |¦  «         Œ%| j         |         }t          |t          t          f¦  «        s|f}|S r  )r4  r6  r'  rõ   rP  r«   r“   rr   )r›   rF  r  rH  rê   rI  Úlegacyrz   s           rC   rJ  z!ImageFileDirectory_v1.__getitem__o  sž   € Ø�d”mÐ#Ð#Ø”= Ô%ˆDØ”,˜sÔ#ˆCØ Ô/°Ô4‰MˆD�'Ø'ð Hð H�Ø—’˜c 7 7¨4°°vÑ#>Ô#>ÀÑGÔGÐGÐGØŒm˜CÔ ˆÝ˜#¥¥u˜~Ñ.Ô.ð 	Ø�&ˆCØˆ
rE   )rœ   r   r  r   rs   r¨   )r  rè   rs   r  )rs   rè   rÿ  rß   r  r   rþ  )rá   râ   rã   rä   r¬   ræ   ÚtagsÚtagdatar  Úclassmethodr  r  rM  rD  r  rQ  rJ  Ú__classcell__©r  s   @rC   r  r  !  s  ø€ € € € € € ðð ð$ ð  ð  ð  ð  ð  ð ˆ8Ð.Ð.Ñ/Ô/€DØˆhÐ1Ð1Ñ2Ô2€Gð ÐÐÑØ!àðð ð ñ „[ðð"ð ð ð ð"<ð <ð <ð <ð<ð <ð <ð <ð=ð =ð =ð =ð2ð 2ð 2ð 2ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rE   r  c                  óœ   ‡ — e Zd ZdZdZdZ	 ddˆ fd„Zdd„Zedd„¦   «         Z	dd„Z
dd„Zdd„Zd d„Zd!ˆ fd„Zdd„Zdd„Zd!d„Zdd„Zˆ xZS )"ÚTiffImageFileÚTIFFz
Adobe TIFFFNrÅ  úStrOrBytesPath | IO[bytes]Úfilenameústr | bytes | Noners   r¨   c                óX   •— |  	 |  	 t          ¦   «                              ||¦  «         d S rŠ   )r  r¬   )r›   rÅ  r)  r  s      €rC   r¬   zTiffImageFile.__init__‰  s7   ø€ ð
 	Ð*Ø5àÐ'Ø"å‰Œ×Ò˜˜XÑ&Ô&Ð&Ð&Ð&rE   c                ó  — | j                              d¦  «        }|d         dk    r|| j                              d¦  «        z  }t          |¦  «        | _        | j        j        x| _        | _        d| _        | j         | _        g | _	        d| _
        t                               d¦  «         t                               d| j        ¦  «         t                               dt          |¦  «        ¦  «         |                      d	¦  «         dS )
z#Open the first image in a TIFF filer3   r'   r  r€   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     rC   Ú_openzTiffImageFile._open–  sÒ   € ð Œg�lŠl˜1‰oŒoˆØˆqŒ6�RŠ<ˆ<Ø�4”7—<’< ‘?”?Ñ"ˆCå+¨CÑ0Ô0ˆŒð &*¤[Ô%5Ð5ˆŒ�t”{ØˆŒØ”7ˆŒØ%'ˆŒØ%)ˆŒå�ŠÐ2Ñ3Ô3Ð3Ý�Š�_ d¤lÑ3Ô3Ð3Ý�Š�[¥$ s¡)¤)Ñ,Ô,Ð,ð 	�
Š
�1‰ŒˆˆˆrE   r}   c                óD  — | j         }|€ˆ|                      ¦   «         }|                      t          | j        ¦  «        ¦  «         | j         €1|                      |                      ¦   «         dz   ¦  «         | j         ®1|                      |¦  «         | j         €J ‚| j         S )Nr   )r3  r×  r4  rk   r2  rÝ  )r›   Úcurrent_n_framesÚcurrents      rC   Ún_frameszTiffImageFile.n_frames®  s‘   € àœ>ÐØÐ#Ø—i’i‘k”kˆGØ�JŠJ•s˜4œ?Ñ+Ô+Ñ,Ô,Ð,Ø”.Ð(Ø—
’
˜4Ÿ9š9™;œ;¨™?Ñ+Ô+Ð+ð ”.Ð(à�IŠI�gÑÔÐØŒ~Ð)Ð)Ð)ØŒ~ÐrE   Úframec                óÖ   — |                       |¦  «        sdS |                      |¦  «         | j        �3| j        j        | j        k    s| j        j        | j        k    rd| _        dS dS dS )z%Select a given frame as current imageN)Ú_seek_checkr4  Ú_imÚimrê   Ú
_tile_sizeÚmode)r›   r:  s     rC   rÝ  zTiffImageFile.seekº  ss   € à×Ò Ñ&Ô&ð 	ØˆFØ�
Š
�5ÑÔÐØŒ8ÐØŒGŒL˜DœOÒ+Ð+¨t¬w¬|¸t¼yÒ/HÐ/Hð ˆDŒHˆHˆHð	  ÐØ/HÐ/HrE   c                ó(  — | j         | _        t          | j        ¦  «        |k    �r”| j        sd}t          |¦  «        ‚t                               d|| j        | j        | j         	                    ¦   «         ¦  «         | j        dk    rd}t          |¦  «        ‚| j                             | j        ¦  «         | j                             | j        ¦  «         t                               d| j         	                    ¦   «         ¦  «         | j                             | j        ¦  «         | j        j        | j        v rd| _        n| j        j        | _        | j        dk    r
|dz   | _        t          | j        ¦  «        dk    r| j        dk    | _        | xj        dz  c_        t          | j        ¦  «        |k    �°”| j                             | j        |         ¦  «         | j                             | j        ¦  «         t$          | j        v r| j        t$                   | j        d<   nd| j        v r| j        d= |                      ¦   «          t*                               | j        ¦  «        x| _        | _        || _        |                      ¦   «          d S )	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)r1  rÅ  rk   r2  r/  ÚEOFErrorrÛ  rÜ  r0  r×  rp  rÝ  rò  r-  ræ  r)  r3  Úis_animatedÚXMPrb  Ú_reload_exifr  r  rF  rí  Ú_setup)r›   r:  r+  s      rC   r4  zTiffImageFile._seekÅ  s6  € Ø”(ˆŒå�$”/Ñ"Ô" eÒ+Ñ+Ø”;ð $Ø3�Ý˜s‘m”mÐ#Ý�LŠLØKØØ”Ø”Ø”—’‘”ñô ð ð Œ{˜eÒ#Ð#Ø/�Ý  ‘o”oÐ%ØŒG�LŠL˜œÑ%Ô%Ð%ØŒO×"Ò" 4¤;Ñ/Ô/Ð/Ý�LŠLÐ5°t´w·|²|±~´~ÑFÔFÐFØŒK×Ò˜TœWÑ%Ô%Ð%ØŒ{Ô 4¤?Ð2Ð2ð  �”�à"œkÔ.�”ØŒ{˜aÒÐØ!&¨¡�”Ý�4”?Ñ#Ô# qÒ(Ð(Ø#'¤;°!Ò#3�Ô ØˆLŒL˜AÑˆLŒLõ9 �$”/Ñ"Ô" eÒ+Ñ+ð: 	Œ�Š�T”_ UÔ+Ñ,Ô,Ð,ØŒ×Ò˜œÑ!Ô!Ð!Ý�$”+ÐÐØ#œ{­3Ô/ˆDŒI�eÑÐØ�d”iÐÐØ”	˜%Ð Ø×ÒÑÔÐå3×;Ò;¸D¼KÑHÔHÐHˆŒ�4”8ØˆŒØ�Š‰ŒˆˆˆrE   c                ó   — | j         S )zReturn the current frame number)r0  r®   s    rC   r×  zTiffImageFile.tellñ  s
   € àŒ|ÐrE   údict[int, dict[str, bytes]]c                óÊ  — i }| j                              t          j        j        ¦  «        }|rµ|dd…         dk    r§t          |dd…         ¦  «        }t          j        |d         dz   dz  ¦  «        dz  }t          |d|z   d|z   …         ¦  «        }|d|z   d|z   |z   …         }d|i||<   |t          j        d|z   |z   dz  ¦  «        dz  d…         }|dd…         dk    °§|S )	a5  
        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  )	r-  rÙ  r   ÚBaseÚImageResourcesÚi16ÚmathÚceilÚi32)r›   Úblocksrz   ÚidÚnrê   r  s          rC   Úget_photoshop_blocksz"TiffImageFile.get_photoshop_blocksõ  sÿ   € ð ˆØŒk�oŠo�hœmÔ:Ñ;Ô;ˆØð 	@Ø�b�q�b”'˜WÒ$Ð$Ý˜˜Q˜q˜Sœ‘]”]�Ý”I˜s 1œv¨™z¨QÑ.Ñ/Ô/°!Ñ3�Ý˜3˜q 1™u r¨A¡v˜~Ô.Ñ/Ô/�Ø˜2 ™6 B¨¡F¨T¡MÐ1Ô2�Ø$ d˜^��r‘
à�$œ) R¨!¡V¨d¡]°aÑ$7Ñ8Ô8¸1Ñ<Ð>Ð>Ô?�ð �b�q�b”'˜WÒ$Ð$ð ˆrE   úImage.core.PixelAccess | Nonec                óˆ   •— | j         r| j        r|                      ¦   «         S t          ¦   «                              ¦   «         S rŠ   )ÚtileÚuse_load_libtiffÚ_load_libtiffr  ræ  )r›   r  s    €rC   ræ  zTiffImageFile.load
  s;   ø€ ØŒ9ð 	(˜Ô.ð 	(Ø×%Ò%Ñ'Ô'Ð'Ý‰wŒw�|Š|‰~Œ~ÐrE   c                óâ   — | j         €Ht          j        | j        ¦  «         t          j                             | j        | j        ¦  «        | _        t          j         	                    | ¦  «         d S rŠ   )
r=  r   Ú_decompression_bomb_checkr?  ÚcoreÚnewr@  r>  r   Úload_preparer®   s    rC   r^  zTiffImageFile.load_prepare  sU   € ØŒ8ÐÝÔ+¨D¬OÑ<Ô<Ð<Ý”j—n’n T¤Y°´Ñ@Ô@ˆDŒGÝÔ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.rE   c                ó*  — | j         sDd| _        |                      ¦   «         }t          j        D ]}||vrŒ|                     |¦  «         Œt          j        | d¬¦  «         t          j	        j
        | j        v r| j        t          j	        j
        = d S d S )NT)Úin_place)rD  Ú!_close_exclusive_fp_after_loadingÚgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   rK  ÚOrientationr-  )r›   ÚexifÚkeys      rC   Úload_endzTiffImageFile.load_end  sž   € ð Ôð 	"Ø59ˆDÔ2ð —<’<‘>”>ˆDÝÔ.ð "ð "�Ø˜d�?�?ØØ—’˜SÑ!Ô!Ð!Ð!åÔ ¨tÐ4Ñ4Ô4Ð4ÝŒ=Ô$¨¬Ð3Ð3Ø”�HœMÔ5Ð6Ð6Ð6ð 4Ð3rE   c                óÖ  — t           j                              | ¦  «         |                      ¦   «          t          | j        ¦  «        dk    sd}t          |¦  «        ‚| j        d         d         }| j        d         d         }	 t          | j        d¦  «        o| j                             ¦   «         }t          | j        d¦  «        r| j         	                    ¦   «          n# t
          $ r d}Y nw xY w|r:t          |t          ¦  «        sJ ‚t          |¦  «        }||d<   t          |¦  «        }t          j        | j        d	|| j        ¦  «        }	 |                     | j        |¦  «         n$# t$          $ r}d
}t          |¦  «        |‚d}~ww xY w| j        o| j         }t          | j        d¦  «        rJt*                               d¦  «         |                     | j                             ¦   «         ¦  «        \  }	}
nô|r�t*                               d¦  «         |s| j                             d¦  «         t5          j        |dt4          j        ¦  «        }|                     d¦  «        \  }	}
t5          j        ||t4          j        ¦  «         nct*                               d¦  «         | j                             d¦  «         |                     | j                             ¦   «         ¦  «        \  }	}
g | _        d| _        |                       ¦   «          |r | j         !                    ¦   «          d| _        |
dk     rt          |
¦  «        ‚t           j                              | ¦  «        S )zWOverload 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^  rk   rW  rÊ  rç   rÅ  rk  rl  r«   r“   r  Ú_getdecoderr@  ÚdecoderconfigÚsetimager>  rp  Ú_exclusive_fprD  rÛ  rÜ  r—  rn  rÝ  ÚosÚlseekÚSEEK_CURÚSEEK_SETrÉ  Úreadonlyri  Úclose)r›   r+  Úextentsrœ   rÅ  Ú	args_listÚdecoderÚeÚclose_self_fprS  ÚerrÚposs               rC   rY  zTiffImageFile._load_libtiff&  s  € õ 	Œ×Ò˜ÑÔÐà×ÒÑÔÐå�4”9‰~Œ~ Ò"Ð"Ø(ˆCÝ˜#‘,”,Ðð ”)˜A”,˜q”/ˆØŒy˜Œ|˜AŒˆð

	Ý˜œ (Ñ+Ô+Ð@°´·²Ñ0@Ô0@ˆBõ �t”w Ñ(Ô(ð  Ø”—’‘”�øøÝð 	ð 	ð 	ð ˆBˆBˆBð	øøøð
 ð 	$Ý˜d¥EÑ*Ô*Ð*Ð*Ð*Ý˜T™
œ
ˆIØˆI�a‰LÝ˜Ñ#Ô#ˆDåÔ# D¤I¨y¸$ÀÔ@RÑSÔSˆð	&Ø×Ò˜TœW gÑ.Ô.Ð.Ð.øÝð 	&ð 	&ð 	&Ø*ˆCÝ˜#‘,”, AÐ%øøøøð	&øøøð Ô*ÐC°4Ô3CÐ/CˆÝ�4”7˜JÑ'Ô'ð !	4õ �LŠLÐPÑQÔQÐQØ—^’^ D¤G×$4Ò$4Ñ$6Ô$6Ñ7Ô7‰FˆAˆsˆsØð 	4å�LŠLÐNÑOÔOÐOØ ð  Ø”—’˜Q‘”�õ ”(˜2˜q¥"¤+Ñ.Ô.ˆCà—^’^ GÑ,Ô,‰FˆAˆsÝŒH�R˜�bœkÑ*Ô*Ð*Ð*õ �LŠLÐFÑGÔGÐGØŒG�LŠL˜‰OŒOˆOà—^’^ D¤G§L¢L¡N¤NÑ3Ô3‰FˆAˆsàˆŒ	ØˆŒà�Š‰Œˆàð 	ØŒG�MŠM‰OŒOˆOØˆDŒGà�Š7ˆ7Ý˜#‘,”,ÐåŒ{×Ò Ñ%Ô%Ð%s+   ÂAC! Ã!C0Ã/C0ÅE- Å-
FÅ7F	Æ	Fc                óö  — d| j         v rd}t          |¦  «        ‚t          | j                              t          d¦  «                 | _        | j                              t          d¦  «        | _        | j                              t          d¦  «        }| j        dk    rd}| j                              t          d¦  «        }t                               d¦  «         t                               d| j        ¦  «         t                               d	|¦  «         t                               d
| j        ¦  «         t                               d|¦  «         t                               d| j                              t          ¦  «        ¦  «         	 | j         t                   }| j         t                   }n$# t          $ r}d}t!          |¦  «        |‚d}~ww xY wt#          |t$          ¦  «        rt#          |t$          ¦  «        sd}t'          |¦  «        ‚||f| _        | j                              t*          j        j        ¦  «        }|dv r
||f| _        n	||f| _        t                               d| j        ¦  «         | j                              t4          d¦  «        }t7          |¦  «        dk    r,t9          |¦  «        t;          |¦  «        cxk    rdk    rn nd}| j                              t<          d¦  «        }	| j                              t>          d¦  «        }
|dv rd}n|dk    rd}nd}|t7          |
¦  «        z  }t7          |	¦  «        }| j                              t@          | j        dk    r|dv rdnd¦  «        }|tB          k    r,t           "                    d|¦  «         d}tG          |¦  «        ‚||k     r|	d|…         }	n||k    r|dk    r|	|z  }	t7          |	¦  «        |k    rd}tG          |¦  «        ‚| j         j$        ||||	|
f}t                               d|¦  «         	 tJ          |         \  | _&        }n># t          $ r1}t                               d¦  «         d}tG          |¦  «        |‚d}~ww xY wt                               d|¦  «         t                               d | j'        ¦  «         | j        | j(        d!<   | j                              tR          d¦  «        }| j                              tT          d¦  «        }|rt|rr| j                              tV          ¦  «        }|d"k    r||f| j(        d#<   n@|dk    r|d$z  |d$z  f| j(        d#<   n'|€||f| j(        d#<   ||f| j(        d%<   n||f| j(        d%<   dx}x}}g | _,        tZ          p
| j        d&k    | _.        | j.        r÷|d"k    rH|dd…         dz   |dd…         z   }t                               d|¦  «         tJ          |         \  | _&        }|dk    r| j        d'k    r| j        dk    rd(}n@|d)k    rd*}n7| /                    d+¦  «        s| /                    d,¦  «        r|dd-…         d.z   }|| j        d/| j         j0        f}| j,         1                    te          j3        d0dd||fd|¦  «        ¦  «         �næth          | j         v stj          | j         v �ržth          | j         v r5| j         th                   }| j                              tl          |¦  «        }|}n�| j         tj                   }| j                              tn          ¦  «        }| j                              tp          ¦  «        }t#          |t$          ¦  «        rt#          |t$          ¦  «        sd1}t'          |¦  «        ‚|}|D ]Ê}||z   |k    r|ts          |	¦  «        z  d2z  }nd}|}| j        d"k    r||         }||z  }|t%          |¦  «        df}| j,         1                    te          j3        | j        ||t;          ||z   |¦  «        t;          ||z   |¦  «        f||¦  «        ¦  «         ||z   }||k    rd||z   }}||k    r	dx}}|dz  }ŒËn+t                               d3¦  «         d}tG          |¦  «        ‚tt          | j         v r| j         tt                   | j(        d4<   | j'        d5v rKd6„ | j         tv                   D ¦   «         }ty          j=        d7d8 >                    |¦  «        ¦  «        | _?        dS dS )9z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r0   r/   z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %szMissing dimensionsNzInvalid dimensions)r-   r/   r1   r3   z
- size: %srF   r?   )r'   r/   r3   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&   r2   rW   rJ   úI;16Nz;16Bz;16Lr€   ÚNFrm  zInvalid tile dimensionsr3   z- unsupported data organizationÚicc_profile©rc   re   c                ó2   — g | ]}t          |d z  ¦  «        ‘ŒS ©r#   r   )r@   r†  s     rC   r^  z(TiffImageFile._setup.<locals>.<listcomp>o  s"   € ÐCÐCÐC¨•r˜!˜s™(‘|”|ÐCÐCÐCrE   úRGB;LrE   )@r-  rÊ  ÚCOMPRESSION_INFOrÙ  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationÚPHOTOMETRIC_INTERPRETATIONÚ	FILLORDERrÛ  rÜ  ÚYCBCRSUBSAMPLINGÚ
IMAGEWIDTHÚIMAGELENGTHrÚ  Ú	TypeErrorr«   r}   rp  r?  r   rK  rf  Ú_sizerê   ÚSAMPLEFORMATrk   r”   r’   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELÚerrorr!  rq   Ú	OPEN_INFOÚ_moder@  rb  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITrW  ÚREAD_LIBTIFFrX  r–  rå  rò  r   Ú_Tilerð  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILEÚCOLORMAPr   r&   r  Úpalette) r›   r+  ÚphotoÚ	fillorderÚxsizeÚysizer|  ÚorientationÚsample_formatÚ	bps_tupleÚextra_tupleÚ	bps_countÚbps_actual_countÚsamples_per_pixelrh  ÚrawmodeÚxresÚyresÚresunitÚxÚyÚlayerrŸ  Úoffsetsr‡  ÚwÚ	tilewidthrå  ÚstrideÚtile_rawmoderœ   r«  s                                    rC   rG  zTiffImageFile._setup…  s	  € ð �T”[Ð Ð Ø?ˆCÝ˜#‘,”,Ðõ -¨T¬[¯_ª_½[È!Ñ-LÔ-LÔMˆÔØ%)¤[§_¢_Õ5IÈ1Ñ%MÔ%MˆÔ"ð ”—’Õ :¸AÑ>Ô>ˆð Ô Ò+Ð+ØˆEà”K—O’O¥I¨qÑ1Ô1ˆ	å�ŠÐ&Ñ'Ô'Ð'Ý�ŠÐ(¨$Ô*;Ñ<Ô<Ð<Ý�ŠÐ7¸Ñ?Ô?Ð?Ý�ŠÐ1°4Ô3MÑNÔNÐNÝ�ŠÐ'¨Ñ3Ô3Ð3Ý�ŠÐ.°´·²Õ@PÑ0QÔ0QÑRÔRÐRð	(Ø”K¥
Ô+ˆEØ”K¥Ô,ˆEˆEøÝð 	(ð 	(ð 	(Ø&ˆCÝ˜C‘.”. aÐ'øøøøð	(øøøõ ˜%¥Ñ%Ô%ð 	"­Z¸½sÑ-CÔ-Cð 	"Ø&ˆCÝ˜S‘/”/Ð!Ø ˜,ˆŒØ”k—o’o¥h¤mÔ&?Ñ@Ô@ˆØ˜,Ð&Ð&Ø ˜ˆDŒJˆJà ˜ˆDŒJå�Š�\ 4¤9Ñ-Ô-Ð-àœŸš­°dÑ;Ô;ˆÝˆ}ÑÔ Ò!Ð!¥c¨-Ñ&8Ô&8½CÀÑ<NÔ<NÐ&SÐ&SÒ&SÐ&SÐRSÒ&SÐ&SÐ&SÐ&SÐ&Sð !ˆMà”K—O’O¥M°4Ñ8Ô8ˆ	Ø”k—o’o¥l°BÑ7Ô7ˆØ�IÐÐØˆIˆIØ�aŠZˆZØˆIˆIàˆIØ•S˜Ñ%Ô%Ñ%ˆ	Ý˜y™>œ>ÐØ œKŸOšOÝØÔ" kÒ1Ð1°e¸v°o°oˆAˆAÈ1ñ
ô 
Ðð
 Õ2Ò2Ð2å�LŠLØ@ÐBSñô ð ð 8ˆCÝ˜cÑ"Ô"Ð"àÐ/Ò/Ð/ð "Ð"4Ð#4Ð"4Ô5ˆIˆIØÐ!1Ò1Ð1Ð6FÈ!Ò6KÐ6Kð "Ð$5Ñ5ˆIåˆy‰>Œ>Ð.Ò.Ð.Ø-ˆCÝ˜cÑ"Ô"Ð"ð ŒKÔØØØØØð
ˆõ 	�ŠÐ% sÑ+Ô+Ð+ð	*Ý"+¨C¤.ÑˆDŒJ˜˜øÝð 	*ð 	*ð 	*Ý�LŠLÐ/Ñ0Ô0Ð0Ø&ˆCÝ˜cÑ"Ô"¨Ð)øøøøð	*øøøõ
 	�ŠÐ% wÑ/Ô/Ð/Ý�ŠÐ% t¤yÑ1Ô1Ð1à#'Ô#4ˆŒ	�-Ñ àŒ{�Š�|¨QÑ/Ô/ˆØŒ{�Š�|¨QÑ/Ô/ˆàð 	5�Dð 	5Ø”k—o’o¥oÑ6Ô6ˆGØ˜!Š|ˆ|Ø$(¨$ <�”	˜%Ñ Ð Ø˜A’�Ø$(¨4¡K°¸±Ð#=�”	˜%Ñ Ð Ø�Ø$(¨$ <�”	˜%Ñ ð +/°¨*�”	˜,Ñ'Ð'à*.°¨*�”	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ý ,Ð J°Ô0AÀUÒ0JˆÔØÔ ð Z	#ð ˜AŠ~ˆ~à˜"˜1˜"”g ‘n s¨1¨2¨2¤wÑ.�Ý—’Ð-¨sÑ3Ô3Ð3õ '0°¤nÑ#�”
˜Gð ˜’
�
ØÔ%¨Ò/Ð/ØÔ.°!Ò3Ð3à��ð
 ˜FÒ"Ð"Ø!��Ø×!Ò! &Ñ)Ô)ð -¨W×-=Ò-=¸fÑ-EÔ-Eð -Ø! # 2 #œ,¨Ñ,�ð ˜$Ô+¨U°D´KÔ4FÐGˆAØŒI×Ò�Yœ_¨Y¸¸A¸uÀeÐ8LÈaÐQRÑSÔSÑTÔTÐTÑTå˜Tœ[Ð(Ð(­K¸4¼;Ð,FÑ,Få˜tœ{Ð*Ð*Øœ+¥lÔ3�Ø”K—O’O¥L°%Ñ8Ô8�Ø��ð œ+¥kÔ2�Ø œKŸOšO­IÑ6Ô6�	Ø”K—O’O¥JÑ/Ô/�Ý! )­SÑ1Ô1ð *½ÀAÅsÑ9KÔ9Kð *Ø3�CÝ$ S™/œ/Ð)Ø�à!ð #ð #�Ø�q‘5˜5’=�=Ø¥ Y¡¤Ñ/°!Ñ3�F�Fà�Fà&�ØÔ-°Ò2Ð2à#*¨5¤>�Là˜iÑ'�Fà$¥c¨&¡k¤k°1Ð5�Ø”	× Ò Ý”OØÔ)Ø˜A�s 1 q¡5¨%Ñ0Ô0µ#°a¸!±e¸UÑ2CÔ2CÐDØØñ	ô ñô ð ð ˜‘E�Ø˜’:�:Ø˜a !™e�q�AØ˜E’z�zØ !˜	˜˜AØ ™
˜øð7#õ: �LŠLÐ:Ñ;Ô;Ð;Ø-ˆCÝ˜cÑ"Ô"Ð"õ ˜œÐ$Ð$Ø'+¤{µ:Ô'>ˆDŒI�mÑ$ð Œ9˜Ð#Ð#ØCÐC¨T¬[½Ô-BÐCÑCÔCˆGÝ'Ô+¨G°S·X²X¸gÑ5FÔ5FÑGÔGˆDŒLˆLˆLð $Ð#s0   Æ$F+ Æ+
GÆ5GÇGÐ!P7 Ð7
Q2Ñ,Q-Ñ-Q2rŠ   )rÅ  r(  r)  r*  rs   r¨   rý  rß   )r:  r}   rs   r¨   )rs   rI  )rs   rU  )rá   râ   rã   ÚformatÚformat_descriptionra  r¬   r5  ræ   r9  rÝ  r4  r×  rT  ræ  r^  ri  rY  rG  r#  r$  s   @rC   r&  r&  „  s`  ø€ € € € € Ø€FØ%ÐØ(-Ð%ð
 (,ð'ð 'ð 'ð 'ð 'ð 'ð 'ðð ð ð ð0 ð	ð 	ð 	ñ „Xð	ð	ð 	ð 	ð 	ð*ð *ð *ð *ðXð ð ð ðð ð ð ð*ð ð ð ð ð ð
/ð /ð /ð /ð7ð 7ð 7ð 7ð"]&ð ]&ð ]&ð ]&ð~kHð kHð kHð kHð kHð kHð kHð kHrE   r&  rG   rH   rV   rc   re   rM   rT   rJ   rN   rQ   rR   rW   rZ   rX   rf   ÚYCbCrri   rU   rL   rO   rS   )rO   rS   r>  úImage.ImagerÅ  rÆ  r)  ústr | bytesc                ó  — 	 t           | j                 \  }}}}}}n-# t          $ r }	d| j        › d�}
t          |
¦  «        |	‚d }	~	ww xY w| j        }| j        }t          |¬¦  «        }|                     d¦  «        rd|_        	 |d         }nA# t          $ r4 | j	                             d¦  «        }t          |t          ¦  «        rd }Y nw xY w|€d}n|dk    rd	}n|d
k    rd}t          p|dk    }d|t          <   | j        d         |t          <   | j        d         |t           <   d|v r	|d         }nNd|v rH|d         }t          |t"          ¦  «        r*t%          j        ¦   «         }|                     |¦  «         |}ni }t*                               dt/          |¦  «        ¦  «         t          |t0          ¦  «        r|                     ¦   «         }|D ]�}t          |t$          j        ¦  «        r'|t4          j        v r|                     |¦  «        ||<   n|                     |¦  «        ||<   	 |j        |         |j        |<   Œr# t<          $ r Y Œ~w xY wi }t?          | d¦  «        r| j                              ¦   «         }i |¥tC          | di ¦  «        ¥}tD          tF          fD ]	}||v r||= Œ
t?          | d¦  «        r•tH          tJ          tL          tN          tP          tR          fD ]n}|| j*        v rc|tN          k    r.| j*        j        |         t4          j+        t4          j,        fvr||= ŒD| j*        |         ||<   | j*        j        |         |j        |<   Œo|                     d| j	                             d¦  «        ¦  «        }|r
||tZ          <   t\          dftJ          dftL          dftJ          dftL          dftH          dft^          dft`          dftb          dftd          dff
D ]\  }}||v r||         ||<   Œ|                     d¦  «        }|r*d|tH          <   |d         |tJ          <   |d         |tL          <   |dk    r4||tf          <   ti          |¦  «        dk    rti          |¦  «        |tj          <   |�
||tl          <   |dk    r
||tF          <   tn          |vr||tn          <   n«| j        d v r¢|tn                   dk    r‘| j        d!k    rr|  8                    ¦   «         }|                     ¦   «         }|�Gts          |j:        ¦  «        D ]0}ts          |j;        ¦  «        D ]}|||f         d"k    rdnd"|||f<   ŒŒ1|} nty          j=        | ¦  «        } | j        d#v rw| j>         ?                    d$d%¦  «        }g }ti          |¦  «        d&z  }ts          d&¦  «        D ].} |d'„ ||| z  || dz   z  …         D ¦   «         z  }|dgd(|z
  z  z  }Œ/||t€          <   |t                   |t                    }"}!ti          |¦  «        |!|d         z  d)z   d*z  z  }#t‚          |vrl|rV|                     d+t„          ¦  «        }$|#dk    rdnt‡          |$|#z  |"¦  «        }%|d	k    rt‡          |%d)z   d*z  d*z  |"¦  «        }%n|"}%|%dk    rd}%|%|t‚          <   |#dk    rdn|#|t‚                   z  }&|"|t‚                   z   dz
  |t‚                   z  }'|&d,k    rt4          jD        |j        tŠ          <   |&f|'dz
  z  |#|"z  |&|'dz
  z  z
  fz   |tŠ          <   t�          ts          d|&|'z  |&¦  «        ¦  «        |tŽ          <   t�                               |d¦  «        |t’          <   | j        d-k    r>t”          d.t–          d/i L                    ¦   «         D ]\  }}(| M                    ||(¦  «         Œtœ          tž          t           t¢          g})|�rød0|v r[|d0         }*t          |*t          ¦  «        r|*dk     s|*d1k    rd2}
t¥          |
¦  «        ‚|d	k    rd3}
t¥          |
¦  «        ‚|*|t¦          <   t*                               d4¦  «         t*                               d5t©          | L                    ¦   «         ¦  «        ¦  «         d}+t?          |d6¦  «        r@	 | U                    d¦  «         | V                    ¦   «         }+n# t®          jX        $ r Y nw xY wi },|)t²          t–          tŠ          tŽ          t´          t¶          gz  })tf          |d         i}-t¹          j]        | L                    ¦   «         | L                    ¦   «         ¦  «        D �]\  }}.|t4          j^        vr�tC          t$          j_        d7d8¦  «        sŒ0|t4          j        v rt4          j`        |,|<   nc||j        v r|j        |         |,|<   nIt          |.t          tÂ          tÄ          t"          f¦  «        sŒ‘t5          jc        |¦  «        jd        }/|/r|/|,|<   ||-vrd||)vr`t          |.tÄ          ¦  «        r|. e                    d9d:¦  «        d;z   |-|<   Œët          |.tÌ          ¦  «        rtÃ          |.¦  «        |-|<   �Œ|.|-|<   �ŒtF          |-v r9ti          |-tF                   ¦  «        dk    r|-tF                   d         |-tF          <   t*                               d<t©          |- L                    ¦   «         ¦  «        ¦  «         | j        d=v rd>}t/          |- L                    ¦   «         ¦  «        }0|0 g                    ¦   «          |||+||0|,f}1t%          jh        | j        d?|1|¦  «        }2|2 i                    | j>        d@| j        z   ¦  «         	 |2 e                    tÔ          jk        ¦  «        dd …         \  }3}4|+s| l                    |4¦  «         |3rnŒE|3dk     rdA|3› dB�}
t          |
¦  «        ‚nT|)D ]}||= Œ| m                    |¦  «        }5tÕ          jn        | |tÕ          jo        dd@| j        z   |5||#df¦  «        g¦  «         dC|v rtá          | dC|¦  «         d S d S )DNzcannot write mode z as TIFFrx   Úbig_tiffTr�  r&   r0   r2   r8   r4   r   r   Útiffinforg  zTiffinfo Keys: %srF  r-  r†  Údescriptionrƒ  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightr‚  r'   rF   )rG   rH   rG   r"   r‡  rW   rŠ  r)   c                ó   — g | ]}|d z  ‘ŒS r‰  r?   rT  s     rC   r^  z_save.<locals>.<listcomp>+  s   € ÐMÐMÐM Q˜˜S™ÐMÐMÐMrE   r#   r1   r3   Ú
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: %srk  rp   Fr\  rô   r•  zConverted items: %s)rL   rJ   r„  rm  r[   zencoder error z when writing image fileÚ_debug_multipage)qÚ	SAVE_INFOr@  rÚ  rÊ  ÚencoderinfoÚencoderconfigrè   rÙ  r&  rb  r«   r}   ÚWRITE_LIBTIFFrŽ  rê   r“  r”  rr   r   ÚExifræ  rÛ  rÜ  r  r  r  r   rc  rd  r'  r2  rç   rF  r    ÚEXIFIFDr—  r¡  rŸ  r   ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKrE  r-  rn  rd  r©  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTr˜  rk   rš  r™  r�  ÚcopyrØ  ÚheightÚwidthr   Úinvertr>  Ú
getpaletterª  r¥  Ú
STRIP_SIZEr’   rj  ÚSTRIPBYTECOUNTSr“   rð  ÚCOMPRESSION_INFO_REVrŒ  r’  ÚREFERENCEBLACKWHITEr@  Ú
setdefaultr¦  r§  r¤  ÚTILEBYTECOUNTSrp  ÚJPEGQUALITYrï  rÝ  rk  ÚioÚUnsupportedOperationÚOSUBFILETYPEÚTRANSFERFUNCTIONÚSUBIFDÚ	itertoolsÚchainÚLIBTIFF_COREr\  r	  rŒ   r™   r>  rc  r]  r‚   ÚsortÚ_getencoderrq  r   ÚMAXBLOCKrû  rü  Ú_saver£  Úsetattr)6r>  rÅ  r)  r·  rq   r¬  rÃ  ÚbitsÚextrar|  r+  rÚ  rÛ  rí  r�  rm  rb  rg  rh  Ú
legacy_ifdÚsupplied_tagsrF  Úiccr  r‚  Úinverted_imÚpxr¼  r»  ÚlutÚcolormapÚcolorsrŽ   r¿  r‡  rÁ  Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imageÚdefault_valueÚ	blocklistrÖ  r1  ÚtypesÚattsr§   rc  r   rŸ  ÚencoderÚerrcoder  rå  s6                                                         rC   rý  rý  “  sî  € ð"Ý6?ÀÄÔ6HÑ3ˆ�˜ ¨¨e¨eøÝð "ð "ð "Ø4 2¤7Ð4Ð4Ð4ˆÝ�c‰lŒl Ð!øøøøð"øøøð ”.€KØÔ$€Må
 vÐ
.Ñ
.Ô
.€CØ‡‚�zÑ"Ô"ð ØˆŒðØ! -Ô0ˆˆøÝð ð ð Ø”g—k’k -Ñ0Ô0ˆÝ�k¥3Ñ'Ô'ð 	àˆKøøð	øøøð
 ÐØˆˆØ	˜Ò	#Ð	#àˆˆØ	˜Ò	&Ð	&Ø*ˆåÐ3˜{¨eÒ3€Gð !"€CÕÑà”g˜a”j€C�
�OØ”w˜q”z€C�Ñð �[Ð Ð Ø˜:Ô&ˆˆØ	�;Ð	Ð	Ø˜6Ô"ˆÝ�d�EÑ"Ô"ð 	Ý”:‘<”<ˆDØ�IŠI�d‰OŒOˆOØˆDøàˆÝ
‡L‚LÐ$¥d¨4¡j¤jÑ1Ô1Ð1Ý�$Õ-Ñ.Ô.ð Ø�zŠz‰|Œ|ˆØð ð ˆÝ�d�EœJÑ'Ô'ð 	%¨Cµ8Ô3JÐ,JÐ,JØ—|’| CÑ(Ô(ˆC�‰HˆHà—x’x ‘}”}ˆC�‰Hð	Ø#œ|¨CÔ0ˆCŒK˜ÑÐøÝð 	ð 	ð 	ØˆDð	øøøð €JÝˆr�5ÑÔð $Ø”V—\’\‘^”^ˆ
à?�zÐ?¥W¨R°¸2Ñ%>Ô%>Ð?€Mõ 	åð	ð #ð #ˆð �-ÐÐØ˜cÐ"øõ ˆr�8ÑÔð >õ ÝÝÝÝÝð
ð 	>ð 	>ˆCð �b”iÐÐØ�.Ò(Ð(¨R¬YÔ->¸sÔ-CÝ”MÝÔ&ðLð .ð .ð & cÐ*Ð*à!œy¨œ~�C˜‘HØ')¤yÔ'8¸Ô'=�C”K Ñ$øð �/Š/˜-¨¬¯ª°]Ñ)CÔ)CÑ
DÔ
D€CØ
ð Øˆ�J‰õ 
˜=Ð)Ý	�|Ð$Ý	�|Ð$Ý	�~Ð&Ý	�~Ð&Ý	Ð+Ð,Ý	�:ÐÝ	�KÐ Ý	�ÐÝ	�KÐ ðð )ð )‰	ˆˆTð �;ÐÐØ" 4Ô(ˆC�‰Høà
�/Š/˜%Ñ
 Ô
 €CØ
ð #Ø ˆ�OÑØ œFˆ�LÑØ œFˆ�LÑàˆt‚|€|Ø!ˆ�MÑÝˆt‰9Œ9˜Š>ˆ>Ý#& t¡9¤9ˆC•Ñ ØÐØ!ˆ�LÑØ�‚{€{Ø"ˆ�LÑå!¨Ð,Ð,Ø*/ˆÕ&Ñ'Ð'Ø	Œ�JÐ	Ð	 3Õ'AÔ#BÀaÒ#GÐ#GØŒ7�cŠ>ˆ>ØŸ'š'™)œ)ˆKØ×!Ò!Ñ#Ô#ˆBØˆ~Ý˜{Ô1Ñ2Ô2ð Að A�AÝ" ;Ô#4Ñ5Ô5ð Að A˜Ø(*¨1¨a¨4¬°Cª¨ 1 1¸S˜˜1˜a˜4™˜ðAà �øå” Ñ$Ô$ˆBà	„w�+ÐÐØŒe×Ò˜u gÑ.Ô.ˆØˆÝ�S‘”˜Q‘ˆÝ�q‘”ð 	-ð 	-ˆAØÐMÐM¨#¨f°q©j¸6ÀQÈÁUÑ;KÐ.KÔ*LÐMÑMÔMÑMˆHØ˜˜˜s V™|Ñ,Ñ,ˆHˆHØ ˆ�H‰à�zŒ?˜C¥Ô,€q€AÝ�‰YŒY˜1˜t Aœw™;¨™?¨qÑ0Ñ1€FÝ˜3ÐÐàð 	Ø'ŸOšO¨L½*ÑEÔEˆMØ"(¨A¢+ +˜Q˜Qµ3°}ÈÑ7NÐPQÑ3RÔ3RˆNà˜fÒ$Ð$Ý!$ ~¸Ñ'9¸aÑ&?À1Ñ%DÀaÑ!HÔ!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ÔIñô €C�Ñõ ,×/Ò/°¸QÑ?Ô?€C�Ñà	„w�'ÒÐå˜fÝÐ!=ð#
÷ Š%‰'Œ'ð	/ð 	/ÑˆC�ð �NŠN˜3 Ñ.Ô.Ð.Ð.å�J­µ^ÐD€IØñ n
Ø˜Ð#Ð#Ø! )Ô,ˆGÝ˜g¥sÑ+Ô+ð &¨w¸ª{¨{¸gÈºm¸mØ/�Ý  ‘o”oÐ%Ø˜fÒ$Ð$ØM�Ý  ‘o”oÐ%Ø&ˆC•Ñå�ŠÐ3Ñ4Ô4Ð4Ý�Š�[¥&¨¯ª©¬Ñ"5Ô"5Ñ6Ô6Ð6ØˆÝ�2�xÑ Ô ð 	ðØ—’˜‘
”
�
Ø—i’i‘k”k��øÝÔ*ð ð ð Ø�ðøøøð ˆð 	ÝÝÝÝÝÝð
ñ 	
ˆ	õ !.¨t°A¬wÐ7ˆõ $œ/¨#¯)ª)©+¬+°}×7JÒ7JÑ7LÔ7LÑMÔMð 	&ñ 	&‰JˆC�ð
 �(Ô/Ð/Ð/Ý�uœzÐ+HÈ%ÑPÔPð Øà�(Ô1Ð1Ð1Ý!)¤�E˜#‘J�JØ˜CœKÐ'Ð'Ø!$¤¨SÔ!1�E˜#‘J�JÝ$ U­Sµ%½½eÐ,DÑEÔEð *Øå#œ?¨3Ñ/Ô/Ô4�DØð *Ø%)˜˜c™
Ø˜$ˆˆ 3¨iÐ#7Ð#7Ý˜e¥SÑ)Ô)ð &Ø %§¢¨W°iÑ @Ô @À5Ñ H�D˜‘I�IÝ ¥{Ñ3Ô3ð &Ý % e¡¤�D˜‘I‘Ià %�D˜‘Iùå˜4ÐÐ¥C¨­\Ô(:Ñ$;Ô$;¸qÒ$@Ð$@Ø!%¥lÔ!3°AÔ!6ˆD•Ñå�ŠÐ*­F°4·:²:±<´<Ñ,@Ô,@ÑAÔAÐAð Œ7Ð'Ð'Ð'ØˆGõ
 �D—J’J‘L”LÑ!Ô!ˆØ�	Š	‰ŒˆØ�k 3¨°$¸Ð>ˆÝÔ# B¤G¨Y¸¸=ÑIÔIˆØ×Ò˜œ ¨¬Ñ 0Ñ1Ô1Ð1ð	Ø#ŸNšN­9Ô+=Ñ>Ô>¸q¸r¸rÔB‰MˆG�TØð Ø—’˜‘”�Øð Øð	ð �QŠ;ˆ;ØD 7ÐDÐDÐDˆCÝ˜#‘,”,Ðð ð
 ð 	ð 	ˆCØ�C��Ø—’˜"‘”ˆåŒØØÝŒ_˜U F¨R¬WÑ$4°f¸wÈÐPQÐ>RÑSÔSÐTñ	
ô 	
ð 	
ð ˜[Ð(Ð(å�Ð&¨Ñ,Ô,Ð,Ð,Ð,ð )Ð(sJ   ‚ œ
A¦AÁAÂB Â;CÃ
CÈ/IÉ
IÉIá*)b âb&â%b&c                  ó  — e Zd Zg d¢Zh d£Zd7d8d
„Zd9d„Zd9d„Zd9d„Zd:d„Z	d;d„Z
d<d„Zej        fd=d„Zd9d„Zd>d„Zd9d„Zd?d„Zd@d „ZdAd!„Zd<d"„Zd<d#„ZedBd'„¦   «         ZdCd)„ZdDd*„ZdCd+„ZdCd,„ZdCd-„ZdCd.„Zd9d/„Zd9d0„Z dEd2„Z!	 dFdGd5„Z"d6S )HÚAppendingTiffWriter)r   r   r   r'   r+   r3   r   r   r'   r+   r3   r+   r3   r+   r'   r+   r3   >   é  é  é	  é   r$   r%   FÚfnr(  r]  rt   rs   r¨   c                ó€  — |  t          |¦  «        rN|| _        d| _        	 t          ||rdnd¦  «        | _        nQ# t
          $ r t          |d¦  «        | _        Y n0w xY wt          t          t                   |¦  «        | _        d| _        | j         	                    ¦   «         | _
        |                      ¦   «          d S )NTzw+bzr+bF)r   r  Úclose_fpÚopenr´   rÊ  r   r	   rr   r×  Ú	beginningÚsetup)r›   r  r]  s      rC   r¬   zAppendingTiffWriter.__init__ç  s³   € ØÐÝ�2‰;Œ;ð 		"ØˆDŒIØ ˆDŒMð)Ý˜b¨3Ð"9 % %°EÑ:Ô:�”�øÝð )ð )ð )Ý˜b %™œ�”��ð)øøøõ �"�Uœ) RÑ(Ô(ˆDŒFØ!ˆDŒMØœŸš™œˆŒØ�
Š
‰Œˆˆˆs   ¡; »AÁAc                ó¾  — | j                              | j        t          j        ¦  «         d | _        d| _        | j                              d¦  «        x| _        }|s	d| _	        d S d| _	        |dk    r|  
                    d¦  «         n-|dk    r|  
                    d¦  «         nd	}t          |¦  «        ‚|                      ¦   «          |                      ¦   «          d S )
Nr   r+   TFro   r  rn   r  zInvalid TIFF file header)r´   rÝ  r  rs  rv  ÚwhereToWriteNewIFDOffsetÚoffsetOfNewPagerÉ  ÚIIMMÚisFirstÚ	setEndianÚRuntimeErrorÚskipIFDsÚgoToEnd)r›   Úiimmr+  s      rC   r  zAppendingTiffWriter.setupö  sÐ   € àŒ�Š�D”N¥B¤KÑ0Ô0Ð0à48ˆÔ%Ø ˆÔàœ6Ÿ;š; q™>œ>Ð)ˆŒ	�DØð 	àˆDŒLØˆFàˆŒØ�=Ò Ð Ø�NŠN˜3ÑÔÐÐØ�]Ò"Ð"Ø�NŠN˜3ÑÔÐÐà,ˆCÝ˜sÑ#Ô#Ð#à�Š‰ŒˆØ�Š‰ŒˆˆˆrE   c                óÜ  — | j         rd S | j                             | j        ¦  «         | j                             d¦  «        }|sd S || j        k    rd}t          |¦  «        ‚|                      ¦   «         }|| j        z  }| j        €J ‚| j                             | j        ¦  «         |  	                    |¦  «         | j                             |¦  «         |  
                    ¦   «          d S )Nr+   z1IIMM of new page doesn't match IIMM of first page)r#  r´   rÝ  r!  rÉ  r"  r%  ÚreadLongr   Ú	writeLongÚfixIFD)r›   r(  r+  Ú
ifd_offsets       rC   ÚfinalizezAppendingTiffWriter.finalize  sß   € ØŒ<ð 	ØˆFð 	Œ�Š�DÔ(Ñ)Ô)Ð)àŒv�{Š{˜1‰~Œ~ˆØð 	àˆFà�4”9ÒÐØEˆCÝ˜sÑ#Ô#Ð#à—]’]‘_”_ˆ
Ø�dÔ*Ñ*ˆ
ØÔ,Ð8Ð8Ð8ØŒ�Š�DÔ1Ñ2Ô2Ð2Ø�Š�zÑ"Ô"Ð"ØŒ�Š�JÑÔÐØ�Š‰ŒˆˆˆrE   c                óV   — |                       ¦   «          |                      ¦   «          d S rŠ   )r.  r  r®   s    rC   ÚnewFramezAppendingTiffWriter.newFrame'  s    € à�Š‰ŒˆØ�
Š
‰ŒˆˆˆrE   c                ó   — | S rŠ   r?   r®   s    rC   Ú	__enter__zAppendingTiffWriter.__enter__,  s   € ØˆrE   rœ   rº   c                ó@   — | j         r|                      ¦   «          d S d S rŠ   )r  rx  )r›   rœ   s     rC   Ú__exit__zAppendingTiffWriter.__exit__/  s'   € ØŒ=ð 	Ø�JŠJ‰LŒLˆLˆLˆLð	ð 	rE   r}   c                óD   — | j                              ¦   «         | j        z
  S rŠ   )r´   r×  r!  r®   s    rC   r×  zAppendingTiffWriter.tell3  s   € ØŒv�{Š{‰}Œ}˜tÔ3Ñ3Ð3rE   rå  Úwhencec                ó”   — |t           j        k    r
|| j        z  }| j                             ||¦  «         |                      ¦   «         S )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.
        )rs  rv  r!  r´   rÝ  r×  )r›   rå  r6  s      rC   rÝ  zAppendingTiffWriter.seek6  sB   € ð •R”[Ò Ð Ø�dÔ*Ñ*ˆFàŒ�Š�F˜FÑ#Ô#Ð#Ø�yŠy‰{Œ{ÐrE   c                ó<  — | j                              dt          j        ¦  «         | j                              ¦   «         }d|dz  z
  }d|cxk     rdk     r*n n'| j                              t          |¦  «        ¦  «         | j                              ¦   «         | _        d S )Nr   rK   )r´   rÝ  rs  ÚSEEK_ENDr×  rû  rr   r!  )r›   r  Ú	pad_bytess      rC   r'  zAppendingTiffWriter.goToEndC  sŽ   € ØŒ�Š�A•r”{Ñ#Ô#Ð#ØŒf�kŠk‰mŒmˆð ˜˜r™‘Mˆ	ØˆyÐÐÒÐ˜2ÒÐÐÐÐØŒF�LŠL�˜yÑ)Ô)Ñ*Ô*Ð*Ø#œvŸ{š{™}œ}ˆÔÐÐrE   Úendianr™   c                ón   — || _         | j         › d�| _        | j         › d�| _        | j         › d�| _        d S )NrH   r…  ÚHHL)r;  ÚlongFmtÚshortFmtÚ	tagFormat)r›   r;  s     rC   r$  zAppendingTiffWriter.setEndianM  sC   € ØˆŒØœ+Ð(Ð(Ð(ˆŒØœ;Ð)Ð)Ð)ˆŒØ œKÐ,Ð,Ð,ˆŒˆˆrE   c                ó,  — 	 |                       ¦   «         }|dk    r#| j                             ¦   «         dz
  | _        d S | j                             |¦  «         |                      ¦   «         }| j                             |dz  t          j        ¦  «         Œ”)NTr   r+   rI   )r*  r´   r×  r   rÝ  Ú	readShortrs  ru  )r›   r-  Únum_tagss      rC   r&  zAppendingTiffWriter.skipIFDsS  s}   € ð	4ØŸš™œˆJØ˜QŠˆØ04´·²±´ÀÑ0A�Ô-Ø�àŒF�KŠK˜
Ñ#Ô#Ð#Ø—~’~Ñ'Ô'ˆHØŒF�KŠK˜ 2™¥r¤{Ñ3Ô3Ð3ð	4rE   r  r   c               ó6   — | j                              |¦  «        S rŠ   )r´   rû  r’  s     rC   rû  zAppendingTiffWriter.write^  s   € ØŒv�|Š|˜DÑ!Ô!Ð!rE   Ú
field_sizec                óZ   — 	 ddddœ|         S # t           $ r d}t          |¦  «        ‚w xY w)Nr…  rH   r  )r'   r+   r3   zoffset is not supported)rÚ  r%  )r›   rE  r+  s      rC   Ú_fmtzAppendingTiffWriter._fmta  sJ   € ð	$Ø˜s sÐ+Ð+¨JÔ7Ð7øÝð 	$ð 	$ð 	$Ø+ˆCÝ˜sÑ#Ô#Ð#ð	$øøøs   ‚ Ž*c                óš   — t          j        | j        |                      |¦  «        z   | j                             |¦  «        ¦  «        \  }|S rŠ   )r  r‚  r;  rG  r´   rÉ  )r›   rE  r§   s      rC   Ú_readzAppendingTiffWriter._readh  sB   € Ý”=ØŒK˜$Ÿ)š) JÑ/Ô/Ñ/°´·²¸ZÑ1HÔ1Hñ
ô 
‰ˆð ˆrE   c                ó,   — |                       d¦  «        S ©Nr'   ©rI  r®   s    rC   rB  zAppendingTiffWriter.readShortn  ó   € Ø�zŠz˜!‰}Œ}ÐrE   c                ó,   — |                       d¦  «        S rv   rL  r®   s    rC   r*  zAppendingTiffWriter.readLongq  rM  rE   Úbytes_writtenr  Úexpectedc                óH   — | �| |k    rd| › d|› �}t          |¦  «        ‚d S d S )Nzwrote only z bytes but wanted )r%  )rO  rP  r+  s      rC   Ú_verify_bytes_writtenz)AppendingTiffWriter._verify_bytes_writtent  sC   € àÐ$¨¸(Ò)BÐ)BØK ÐKÐKÀÐKÐKˆCÝ˜sÑ#Ô#Ð#ð %Ð$Ð)BÐ)BrE   r§   c                óà   — | j                              dt          j        ¦  «         | j                              t          j        | j        |¦  «        ¦  «        }|                      |d¦  «         d S )Néþÿÿÿr+   )	r´   rÝ  rs  ru  rû  r  r„  r>  rR  ©r›   r§   rO  s      rC   ÚrewriteLastShortToLongz*AppendingTiffWriter.rewriteLastShortToLongz  sW   € ØŒ�Š�B�œÑ$Ô$Ð$ØœŸš¥V¤[°´¸uÑ%EÔ%EÑFÔFˆØ×"Ò" =°!Ñ4Ô4Ð4Ð4Ð4rE   c                ó  — | j                              | t          j        ¦  «         | j                              t          j        | j        |                      |¦  «        z   |¦  «        ¦  «        }|  	                    ||¦  «         d S rŠ   )
r´   rÝ  rs  ru  rû  r  r„  r;  rG  rR  )r›   r§   rE  rO  s       rC   Ú_rewriteLastz AppendingTiffWriter._rewriteLast  sq   € ØŒ�Š�Z�K¥¤Ñ-Ô-Ð-ØœŸšÝŒK˜œ d§i¢i°
Ñ&;Ô&;Ñ;¸UÑCÔCñ
ô 
ˆð 	×"Ò" =°*Ñ=Ô=Ð=Ð=Ð=rE   c                ó.   — |                       |d¦  «        S rK  ©rX  r›  s     rC   ÚrewriteLastShortz$AppendingTiffWriter.rewriteLastShort†  ó   € Ø× Ò  ¨Ñ*Ô*Ð*rE   c                ó.   — |                       |d¦  «        S rv   rZ  r›  s     rC   ÚrewriteLastLongz#AppendingTiffWriter.rewriteLastLong‰  r\  rE   c                ó–   — | j                              t          j        | j        |¦  «        ¦  «        }|                      |d¦  «         d S rK  )r´   rû  r  r„  r?  rR  rU  s      rC   Ú
writeShortzAppendingTiffWriter.writeShortŒ  s?   € ØœŸš¥V¤[°´ÀÑ%FÔ%FÑGÔGˆØ×"Ò" =°!Ñ4Ô4Ð4Ð4Ð4rE   c                ó–   — | j                              t          j        | j        |¦  «        ¦  «        }|                      |d¦  «         d S rv   )r´   rû  r  r„  r>  rR  rU  s      rC   r+  zAppendingTiffWriter.writeLong�  s?   € ØœŸš¥V¤[°´¸uÑ%EÔ%EÑFÔFˆØ×"Ò" =°!Ñ4Ô4Ð4Ð4Ð4rE   c                ór   — |                       ¦   «          | j        r| j                             ¦   «          d S d S rŠ   )r.  r  r´   rx  r®   s    rC   rx  zAppendingTiffWriter.close”  s6   € Ø�Š‰ŒˆØŒ=ð 	ØŒF�LŠL‰NŒNˆNˆNˆNð	ð 	rE   c                óî  — |                       ¦   «         }t          |¦  «        D �]O}t          j        | j        | j                             d¦  «        ¦  «        \  }}}| j        |         }||z  }|dk    }|s1|                      ¦   «         | j	        z   }	|  
                    |	¦  «         || j        v r›| j                             ¦   «         }
|r4|                      ||¦  «         | j                             |
dz   ¦  «         ŒÜ| j                             |	¦  «         |                      ||¦  «         | j                             |
¦  «         �Œ(|r%| j                             dt          j        ¦  «         �ŒQd S )Nr3   r+   )rB  rØ  r  r‚  r@  r´   rÉ  Ú
fieldSizesr*  r!  r^  ÚTagsr×  Ú_fixOffsetsrÝ  rs  ru  )r›   rC  rŽ   rF  Ú
field_typerà  rE  Ú
total_sizeÚis_localrå  Úcur_poss              rC   r,  zAppendingTiffWriter.fixIFD™  s]  € Ø—>’>Ñ#Ô#ˆå�x‘”ð 	,ñ 	,ˆAÝ%+¤]°4´>À4Ä6Ç;Â;ÈqÁ>Ä>Ñ%RÔ%RÑ"ˆC�˜Uàœ¨Ô4ˆJØ# eÑ+ˆJØ! Q’ˆHØð -ØŸš™œ¨4Ô+?Ñ?�Ø×$Ò$ VÑ,Ô,Ð,à�d”iÐÐØœ&Ÿ+š+™-œ-�àð )Ø×$Ò$ U¨JÑ7Ô7Ð7Ø”F—K’K ¨!¡Ñ,Ô,Ð,Ð,à”F—K’K Ñ'Ô'Ð'Ø×$Ò$ U¨JÑ7Ô7Ð7Ø”F—K’K Ñ(Ô(Ð(Ñ(àð ,à”—’˜A�rœ{Ñ+Ô+Ð+ùð/	,ð 	,rE   rà  c                óØ  — t          |¦  «        D ]Ù}|                      |¦  «        }|| j        z  }|dk    rœ|dk    r–|dk    rd}t          |¦  «        ‚|                      |¦  «         | j                             dt          j        ¦  «         |  	                    t          j        ¦  «         | j                             dt          j        ¦  «         ŒÃ|                      ||¦  «         ŒÚd S )Nr'   r!   r   znot implementediöÿÿÿr3   )rØ  rI  r!  r%  rV  r´   rÝ  rs  ru  r`  r   rj  rX  )r›   rà  rE  rŽ   rå  r+  s         rC   rf  zAppendingTiffWriter._fixOffsetsµ  sâ   € Ý�u‘”ð 	6ð 	6ˆAØ—Z’Z 
Ñ+Ô+ˆFØ�dÔ*Ñ*ˆFØ˜QŠˆ 6¨U¢? ?à˜A’:�:Ø+�CÝ& sÑ+Ô+Ð+ð ×+Ò+¨FÑ3Ô3Ð3Ø”—’˜C¥¤Ñ-Ô-Ð-Ø—’¥¤Ñ.Ô.Ð.Ø”—’˜A�rœ{Ñ+Ô+Ð+Ð+à×!Ò! &¨*Ñ5Ô5Ð5Ð5ð!	6ð 	6rE   ÚisShortÚisLongc                óF   — |rd}n|rd}nd}|                       ||¦  «        S )Nr'   r+   r   )rf  )r›   rà  rl  rm  rE  s        rC   Ú
fixOffsetszAppendingTiffWriter.fixOffsetsÈ  s=   € ð ð 	ØˆJˆJØð 	ØˆJˆJàˆJØ×Ò  zÑ2Ô2Ð2rE   N)F)r  r(  r]  rt   rs   r¨   rý  )rs   r  )rœ   rº   rs   r¨   rß   )rå  r}   r6  r}   rs   r}   )r;  r™   rs   r¨   )r  r   rs   r}   )rE  r}   rs   r™   )rE  r}   rs   r}   )rO  r  rP  r}   rs   r¨   )r§   r}   rs   r¨   )r§   r}   rE  r}   rs   r¨   )rà  r}   rE  r}   rs   r¨   )FF)rà  r}   rl  rt   rm  rt   rs   r¨   )#rá   râ   rã   rd  re  r¬   r  r.  r0  r2  r4  r×  rò  rv  rÝ  r'  r$  r&  rû  rG  rI  rB  r*  ÚstaticmethodrR  rV  rX  r[  r^  r`  r+  rx  r,  rf  ro  r?   rE   rC   r  r  É  s{  € € € € € ðð ð €Jð(ð ð €Dðð ð ð ð ðð ð ð ð2ð ð ð ð0ð ð ð ð
ð ð ð ðð ð ð ð4ð 4ð 4ð 4ð /1¬kð ð ð ð ð ð-ð -ð -ð -ð-ð -ð -ð -ð	4ð 	4ð 	4ð 	4ð"ð "ð "ð "ð$ð $ð $ð $ðð ð ð ðð ð ð ðð ð ð ð ð$ð $ð $ñ „\ð$ð
5ð 5ð 5ð 5ð
>ð >ð >ð >ð+ð +ð +ð +ð+ð +ð +ð +ð5ð 5ð 5ð 5ð5ð 5ð 5ð 5ðð ð ð ð
,ð ,ð ,ð ,ð86ð 6ð 6ð 6ð( AFð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3rE   r  c                óÌ  — | j                              ¦   «         }| j        }t          |                     dg ¦  «        ¦  «        }t          | d¦  «        s|st          | ||¦  «        S |                      ¦   «         }	 t          |¦  «        5 }| g|z   D ]Š}||_         ||_        t          |d¦  «        sd}	n|j	        }	t          |	¦  «        D ]P}
|                     |
¦  «         |                     ¦   «          t          |||¦  «         |                     ¦   «          ŒQŒ‹	 d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         d S # |                      |¦  «         w xY w)NÚappend_imagesr9  r   )rÚ  ræ  rÛ  r  rÙ  rç   rý  r×  r  r9  rØ  rÝ  ræ  r0  )r>  rÅ  r)  rÚ  rÛ  rr  Úcur_idxÚtfÚimsÚnfrré   s              rC   Ú	_save_allrw  Ô  s¨  € Ø”.×%Ò%Ñ'Ô'€KØÔ$€MÝ˜Ÿš¨¸"Ñ=Ô=Ñ>Ô>€MÝ�2�zÑ"Ô"ð '¨=ð 'Ý�R˜˜XÑ&Ô&Ð&à�gŠg‰iŒi€GðÝ  Ñ$Ô$ð 	"¨Ø�t˜mÑ+ð "ð "�Ø"-�”Ø$1�Ô!Ý˜s JÑ/Ô/ð 'Ø�C�Càœ,�Cå  ™:œ:ð "ð "�CØ—H’H˜S‘M”M�MØ—H’H‘J”J�JÝ˜#˜r 8Ñ,Ô,Ð,Ø—K’K‘M”M�M�Mð	"ð"ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	�Š�ÑÔÐÐÐøˆ�Š�ÑÔÐÐøøøs1   Á<E ÂBD*ÄE Ä*D.Ä.E Ä1D.Ä2E ÅE#z.tifz.tiffz
image/tiff)rq   rr   rs   rt   )rz   r{   r|   r}   rs   r~   )rz   r‚   r|   r}   r‡   r}   rs   r~   )r˜   r™   rs   r   )ré   r}   rê   r}   rs   rë   )ré   r}   rs   rø   )rþ   rÿ   rs   r¨   )r>  rÆ  rÅ  rÆ  r)  rÇ  rs   r¨   )ŠÚ
__future__r   rò  r÷  ÚloggingrN  rs  r  rq  Úcollections.abcr   r   Ú	fractionsr   Únumbersr   r   Útypingr	   r
   r   r   r   r   Ú r   r   r   r   r   r   Ú_binaryr   rM  r   rP  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Þ  rE  rñ  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATAr‹  r@  rí  r�  r”   r›  rw   r    r\  ry   r†   r—   rõ   rü   r£   r‚   rr   rt   rî   r÷   rý   r  r}   Ú
_IFDv2Baserè   ré   r  rô   rþ  r  ÚImageFileDirectoryr&  rÙ  rý  ÚBytesIOr  rw  Úregister_openrÃ  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mimer?   rE   rC   ú<module>r�     sd  ððR #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cà JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àð .Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-à	ˆÔ	˜8Ñ	$Ô	$€ð €Ø€Ø€
à
€Ø
€ð €Ø€
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* CÐBÐ)9×)?Ò)?Ñ)AÔ)AÐBÑBÔ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|ð |€	ð| �cÐAÐA°yÐAÑAÔAÑAÔAÐ ðð ð €ð €wˆuŒzÐ8¸$Ñ?Ô?ð @Ø€IÐ:¸BÑ?Ô?Ð?ñ"ð "ð "ð "ñ%ð %ð %ð %ñð ð ð ð& €Ø€ñð ð ð ðG'ð G'ð G'ð G'ð G'�(ñ G'ô G'ð G'ðT Ð/°¸Ð=¸sÐBÔC€ñ	ð 	ð 	ð 	ñð ð ð ñð ð ð ð$ ð  Ø  S Ô)€J€Jà€JðM$ð M$ð M$ð M$ð M$˜Jñ M$ô M$ð M$ð` (6Ð Ô $Ø(7Ð Ô %Ø�”‘”ð Jð J�I€CˆØ�<Š<˜˜SÑ!Ô!€DØ€GÐ! >¨4 > >°>À#Ô3FÀqÔ3IÑJÔJÐJØ€GÐ! ?¨D ? ?°OÀCÔ4HÑIÔIÐIÐIØ�O S¨$ðXð Xð Xð Xð XÐ1ñ Xô Xð Xðx +Ð ðlHð lHð lHð lHð lH�IÔ'ñ lHô lHð 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-ñ s-ð s-ð s-ðl	H3ð H3ñ H3ð H3ñ H3˜"œ*ñ H3ô H3ð H3ñVñ ð ð ð> €Ô �MÔ(¨-¸Ñ AÔ AÐ AØ €Ô �MÔ(¨%Ñ 0Ô 0Ð 0Ø €Ô ˜Ô,¨iÑ 8Ô 8Ð 8à €Ô ˜-Ô.±¹Ð0AÑ BÔ BÐ Bà €Ô �MÔ(©,Ñ 7Ô 7Ð 7Ð 7Ð 7rE   