Ë
    ï%9jç@ ã                  ó  — 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_e_jÁ                  «       D � �ci c]  \  } }|| “Œ
 c}} Zai e4d d_dd_d`fda“e5d d_dd_d`fda“e4d d_d?d_d`fdb“e5d d_d?d_d`fdb“e4dd_dd_d`fdc“e5dd_dd_d`fdc“e4dd_d?d_d`fdd“e5dd_d?d_d`fdd“e4d d_dded`fdf“e5d d_dded`fdf“e4d d_d?ded`fdg“e5d d_d?ded`fdg“e4dd_dded`fdh“e5dd_dded`fdh“e4dd_d?ded`fdi“e5dd_d?ded`fdi“e4d d_ddjd`fdk“i e5d d_ddjd`fdk“e4d d_d?djd`fdl“e5d d_d?djd`fdl“e4dd_ddjd`fdm“e5dd_ddjd`fdm“e4dd_d?djd`fdn“e5dd_d?djd`fdn“e4d d_ddod`fdp“e5d d_ddod`fdp“e4d d_d?dod`fdq“e5d d_d?dod`fdq“e4dd_ddod`fdr“e5dd_ddod`fdr“e4ddeddod`fdr“e5ddeddod`fdr“e4dd_d?dod`fds“e5dd_d?dod`fds“¥i e4dd_ddtd`fdu“e4d d_ddvd`fdw“e4dd_ddvd`fdw“e5dd_ddvd`fdx“e4dd_d?dvd`fdy“e4ddeddvd`fdz“e5ddeddvd`fd{“e4d d|dd}d`fd~“e5d d|dd}d`fd“e4dd_dd}d`fd€“e4ddedd}d`fd�“e5ddedd}d`fd‚“e4dd|dd}d`fd~“e5dd|dd}d`fd“e4dd_ddƒdefd„“e5dd_ddƒdefd„“e4d?d_dd…d`fd†“¥i 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‘“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ˆdefd‰“e5d?d_ddˆdef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£“e4d?d_ddŸd_fd¤“e5d?d_ddŸd_fd¥“e4d?d_ddŸdefd “¥i e5d?d_ddŸdefd¡“e4dAd_dd_d`fd¦“e5dAd_dd_d`fd¦“e4dAd_d?d_d`fd§“e5dAd_d?d_d`fd§“e4dAd_dded`fd¨“e5dAd_dded`fd¨“e4dAd_d?ded`fd©“e5dAd_d?ded`fd©“e4dAd_ddjd`fdª“e5dAd_ddjd`fdª“e4dAd_d?djd`fd«“e5dAd_d?djd`fd«“e4dAd_ddod`fd¬“e5dAd_ddod`fd¬“e4dAd_ddƒdŠfd­“e4dAd_ddƒdefd®“¥i e5dAd_ddƒdefd®“e4dAd_d?dod`fd¯“e5dAd_d?dod`f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�d�fd²“e5dEd_dd�d�fd²“e4dEd_ddŸd`fd³“e5dEd_ddŸd`fd´“e4dGd_ddod`fdr“e5dGd_ddod`fdr“e4dGd_dd…d`fd‹“e5dGd_dd…d`fd‹“e4dKd_dd…d`fdµ“e5dKd_dd…d`fdµ“¥Zb ecd¶„ ebD «       «      Zdg d·¢Ze efejÎ                  d¸d¹«      s	 e&dºd»«       dìd¼„Zh	 	 	 	 	 	 díd½„Zi	 	 	 	 	 	 	 	 dîd¿„Zji Zki ZldïdÀ„Zm G dÁ„ d¾e«      ZnedÂeoepgef   ZqdðdÃ„ZrdñdÄ„ZsdòdÅ„Ztereeuef   ZvneZv G dÆ„ dÂev«      Zwekew_k        elew_l         e+jÀ                  «       D ]:  \  ZxZyeyjõ                  dÇdÈ«      Zy e{ewdÉey› �ekex   d   «        e{ewdÊey› �elex   «       Œ< [k[l[x[y G dË„ dÌew«      Z|e|Z} G dÍ„ dÎej6                  «      Z~i dÏdÏe4ddd_df“dÐdÐe4dddodf“dÑdÑe4dddƒd?f“dÒdÒe4dAddodf“dÓdÓe4dAddƒd?f“dÔdÕe4dd?d}df“dÖdÖe4dddvdf“d×d×e4dd?dvd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dvdf“dâe5dd?dvd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ë«       yc c}} w )ôé    )ÚannotationsN)ÚIteratorÚMutableMapping)ÚFraction)ÚNumberÚRational)ÚIOÚTYPE_CHECKINGÚAnyÚCallableÚNoReturnÚcasté   )ÚExifTagsÚImageÚ	ImageFileÚImageOpsÚImagePaletteÚTiffTags)Úi16be)Úi32be)Úo8)Ú	deprecate)ÚStrOrBytesPath)Úis_path©ÚTYPES)ÚBufferÚIntegralLikeFé   s   IIs   MMéÿ   é   i  i  i  i  i
  i  é  i  i  i  i  i  i  i(  i-  i1  i2  i;  i=  i@  iB  iC  éD  iE  iJ  iR  iS  i[  i  i  i˜‚  i»ƒ  iI†  is‡  ii‡  i¼  i  i–Æ  i—Æ  Úrawé   Ú
tiff_ccitté   Úgroup3é   Úgroup4é   Útiff_lzwé   Ú	tiff_jpegé   Újpegé   Útiff_adobe_deflatei€  Útiff_raw_16i€  Úpackbitsi)€  Útiff_thunderscani²€  Útiff_deflateit‡  Útiff_sgilogiu‡  Útiff_sgilog24imˆ  ÚlzmaiPÃ  ÚzstdiQÃ  Úwebp©r   © )Ú1z1;I)r?   z1;IR)r?   r?   )r?   z1;R)r&   )ÚLzL;2I)r@   zL;2IR)r@   zL;2)r@   zL;2R)r*   )r@   zL;4I)r@   zL;4IR)r@   zL;4)r@   zL;4R)r2   )r@   zL;I)r@   zL;IR)r@   r@   )r@   zL;R)é   )úI;16zI;12)é   )rB   rB   )úI;16BrD   )rB   zI;16R)ÚIúI;16S)rE   úI;16BS)r(   )é    )ÚFúF;32F)rI   úF;32BF)rE   zI;32N)rE   úI;32S)rE   úI;32BS)r2   r2   )ÚLArN   )r2   r2   r2   )ÚRGBrO   )rO   zRGB;R)r2   r2   r2   r2   )ÚRGBArP   ©r   )rO   ÚRGBX)r2   r2   r2   r2   r2   ©r   r   )rO   ÚRGBXX)r2   r2   r2   r2   r2   r2   )r   r   r   )rO   ÚRGBXXX)rP   ÚRGBa)r   r   )rP   ÚRGBaX)r   r   r   )rP   ÚRGBaXX)r&   r   )rP   ÚRGBAX)r&   r   r   )rP   ÚRGBAXX)iç  )rC   rC   rC   )rO   zRGB;16L)rO   zRGB;16B)rC   rC   rC   rC   )rP   zRGBA;16L)rP   zRGBA;16B)rO   zRGBX;16L)rO   zRGBX;16B)rP   zRGBa;16L)rP   zRGBa;16B)ÚPzP;1)r[   zP;1R)r[   zP;2)r[   zP;2R)r[   zP;4)r[   zP;4R)r[   r[   )r[   ÚPX)ÚPAr]   )r[   zP;R)ÚCMYKr^   )r^   ÚCMYKX)r^   ÚCMYKXX)r^   zCMYK;16L)r^   zCMYK;16B)ÚLABra   c              #  ó8   K  — | ]  }t        |d    «      –— Œ y­w)r*   N)Úlen)Ú.0Úkey_tps     úO/var/www/html/truck-me/venv/lib/python3.12/site-packages/PIL/TiffImagePlugin.pyú	<genexpr>rg     s   è ø€ ÒA¨Vœ#˜f Q™iŸ.ÑAùs   ‚)ó   MM *ó   II* s   MM* s   II *s   MM +s   II+ Úlibtiff_support_custom_tagsTz*Support for LibTIFF earlier than version 4rA   c                ó   — | d d t         v S ©Nr*   )ÚPREFIXES©Úprefixs    rf   Ú_acceptrp   "  s   € Ø�"�1ˆ:œÐ!Ð!ó    c                óŠ   — t        t        | «      «      dkD  }t        |rd| z  n| «      j                  |«      }|r|d d d…   S |S )Nr   éÿÿÿÿ)ÚabsÚfloatÚIFDRationalÚlimit_rational)ÚvalÚmax_valÚinvÚn_ds       rf   Ú_limit_rationalr|   &  sH   € ô Œe�C‹j‹/˜AÑ
€CÜ
¡�a˜#’g¨#Ó
.×
=Ñ
=¸gÓ
F€CÙˆ3‰t�ˆt‰9Ð$ Ð$rq   rv   c                ó
  — t        | «      }|j                  |j                  f}t        d„ |D «       «      |k  rt	        | t        |«      «      }t        d„ |D «       «      }t        |«      |kD  rt	        |d   |d   z  |«      }|S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N©ru   ©rd   Úis     rf   rg   z)_limit_signed_rational.<locals>.<genexpr>4  s   è ø€ Ò
!˜Œ5��8Ñ
!ùó   ‚c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   r€   r�   s     rf   rg   z)_limit_signed_rational.<locals>.<genexpr>7  s   è ø€ Ò, 1”e˜A—hÑ,ùrƒ   r   r   )r   Ú	numeratorÚdenominatorÚminr|   rt   ÚtupleÚmax)rx   ry   Úmin_valÚfracr{   Ú	n_d_floats         rf   Ú_limit_signed_rationalr�   .  s~   € ô �C‹=€DØ-1¯^©^¸T×=MÑ=MÐ-M€Cä
Ñ
!˜SÔ
!Ó! GÒ+Ü˜c¤3 w£<Ó0ˆäÑ,¨Ô,Ó,€IÜ
ˆ9ƒ~˜ÒÜ˜i¨™l¨Y°q©\Ñ9¸7ÓCˆà€Jrq   c                ó    ‡ — 	 	 	 	 	 	 dˆ fd„}|S )Nc                ó6   •—  t        | j                  ‰«      |Ž S r   )ÚgetattrÚ_val)ÚselfÚargsÚops     €rf   Údelegatez_delegate.<locals>.delegateF  s   ø€ ð &Œw�t—y‘y "Ó% tÐ,Ð,rq   )r’   rv   r“   ztuple[float, ...]Úreturnzbool | float | Fractionr>   )r”   r•   s   ` rf   Ú	_delegater—   E  s'   ø€ ð-Øð-Ø"3ð-à	 õ-ð
 €Orq   c                  óF  — e Zd ZdZ	 dZ	 d(	 	 	 	 	 d)d„Zed*d„«       Zed+d„«       Zd,d„Z	d-d„Z
d+d„Zd.d	„Zd/d
„Zd0d„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d «      Z$ ed!«      Z% ed"«      Z& ed#«      Z' ed$«      Z( ed%«      Z) e*e+d&«      r	 ed&«      Z,y'y')1rv   zÀImplements a rational class where 0/0 is a legal value to match
    the in the wild use of exif rationals.

    e.g., DigitalZoomRatio - 0.00/0.00  indicates that no digital zoom was used
    )Ú
_numeratorÚ_denominatorr‘   c                ó  — |  t        |t        «      r4|j                  | _        |j                  | _        |j                  | _        yt        |t        «      r#|j                  | _        |j                  | _        n*t        rt        t        |«      | _        n|| _        || _        |dk(  rt        d«      | _        y|dk(  rt        |«      | _        yt        |«      |k(  rt        t        |«      |«      | _        yt        ||z  «      | _        y)z®
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        Nr   Únanr   )Ú
isinstancerv   r…   r™   r†   rš   r‘   r   r
   r   r   ru   Úint)r’   Úvaluer†   s      rf   Ú__init__zIFDRational.__init__\  sÐ   € ñ 	Ü�eœ[Ô)Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÔØŸ
™
ˆDŒIØä�eœXÔ&Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÕåÜ"&¤|°UÓ";�•à"'�”Ø +ˆDÔà˜!ÒÜ˜e›ˆD�IØ˜AÒÜ  ›ˆD�IÜ�‹Z˜5Ò Ü ¤ U£¨[Ó9ˆD�Iä  ¨Ñ!4Ó5ˆD�Irq   c                ó   — | j                   S r   )r™   ©r’   s    rf   r…   zIFDRational.numerator~  s   € à�‰Ðrq   c                ó   — | j                   S r   )rš   r¢   s    rf   r†   zIFDRational.denominator‚  s   € à× Ñ Ð rq   c                óî   — | j                   dk(  r| j                  | j                   fS t        | j                  t        «      sJ ‚| 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’   Úmax_denominatorÚfs      rf   rw   zIFDRational.limit_rational†  sb   € ð ×Ñ˜qÒ Ø—>‘> 4×#3Ñ#3Ð3Ð3ä˜$Ÿ)™)¤XÔ.Ð.Ð.Ø�I‰I×'Ñ'¨Ó8ˆØ�{‰{˜AŸM™MÐ)Ð)rq   c                ó>   — t        t        | j                  «      «      S r   )Ústrru   r‘   r¢   s    rf   Ú__repr__zIFDRational.__repr__”  s   € Ü”5˜Ÿ™Ó#Ó$Ð$rq   c                ó6   — | j                   j                  «       S r   )r‘   Ú__hash__r¢   s    rf   r¬   zIFDRational.__hash__—  s   € Ø�y‰y×!Ñ!Ó#Ð#rq   c                ó’   — | j                   }t        |t        «      r|j                   }t        |t        «      rt        |«      }||k(  S r   )r‘   r�   rv   ru   )r’   Úotherrx   s      rf   Ú__eq__zIFDRational.__eq__š  s;   € Ø�i‰iˆÜ�eœ[Ô)Ø—J‘JˆEÜ�eœUÔ#Ü˜“*ˆCØ�e‰|Ðrq   c                óH   — | j                   | j                  | j                  gS r   )r‘   r™   rš   r¢   s    rf   Ú__getstate__zIFDRational.__getstate__¢  s   € Ø—	‘	˜4Ÿ?™?¨D×,=Ñ,=Ð>Ð>rq   c                óò   — t         j                  | d«       |\  }}}t        |t        t        f«      sJ ‚|| _        t        rt        t        |«      | _	        n|| _	        t        |t        «      sJ ‚|| _        y )Nr   )rv   r    r�   ru   r   r‘   r
   r   r   r™   rž   rš   )r’   Ústater‘   r™   rš   s        rf   Ú__setstate__zIFDRational.__setstate__¥  sj   € Ü×Ñ˜T 1Ô%Ø).Ñ&ˆˆj˜,Ü˜$¤¬Ð 1Ô2Ð2Ð2ØˆŒ	ÝÜ"¤<°Ó<ˆD�Oà(ˆDŒOÜ˜,¬Ô,Ð,Ð,Ø(ˆÕrq   Ú__add__Ú__radd__Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__Ú__pos__Ú__neg__Ú__abs__Ú	__trunc__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__bool__Ú__ceil__Ú	__floor__Ú	__round__Ú__int__Nr=   )rŸ   úfloat | Fraction | IFDRationalr†   rž   r–   ÚNone)r–   r   ©r–   rž   )r¦   rž   r–   ztuple[IntegralLike, int]©r–   r©   )r®   Úobjectr–   Úbool)r–   ú%list[float | Fraction | IntegralLike])r³   rÖ   r–   rÑ   )-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r    Úpropertyr…   r†   rw   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>   rq   rf   rv   rv   N  s¢  „ ñðð
 7€Ið IJð 6Ø3ð 6ØBEð 6à	ó 6ðD òó ðð ò!ó ð!ó*ó%ó$óó?ó
)ðñ ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜MÓ*€KÙ˜^Ó,€LÙ˜^Ó,€LÙ˜oÓ.€MÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜	Ó"€GÙ˜	Ó"€GÙ˜+Ó&€IÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ˜Ó$€HÙ˜Ó$€HÙ˜+Ó&€IÙ˜+Ó&€Iáˆx˜Ô#Ù˜IÓ&‰ð $rq   ÚImageFileDirectory_v2c                ó   ‡ ‡— dˆ ˆfd„}|S )Nc                ó¤   •— ddl m} | j                  j                  d«      r"| j                  dd  j	                  dd«      |‰<   ‰| ft
        ‰<   | S )Nr   r   Úload_r,   Ú_ú )r   r   r×   Ú
startswithÚreplaceÚ_load_dispatch)Úfuncr   ÚidxÚsizes     €€rf   Ú	decoratorz#_register_loader.<locals>.decoratorÜ  sL   ø€ Ý#à�=‰=×#Ñ# GÔ,ØŸ™ q rÐ*×2Ñ2°3¸Ó<ˆE�#‰JØ" D˜jŒ�sÑØˆrq   )rç   Ú_LoaderFuncr–   rë   r>   )rè   ré   rê   s   `` rf   Ú_register_loaderrì   Û  s   ù€ öð Ðrq   c                ó   ‡ — dˆ fd„}|S )Nc                ó   •— | t         ‰<   | S r   )Ú_write_dispatch)rç   rè   s    €rf   rê   z#_register_writer.<locals>.decoratorè  s   ø€ Ø#Œ˜ÑØˆrq   )rç   úCallable[..., Any]r–   rð   r>   )rè   rê   s   ` rf   Ú_register_writerrñ   ç  s   ø€ õð Ðrq   c                ó¨   ‡‡— ddl m} | \  }Š}|||<   t        j                  d‰› �«      Š	 d	 	 	 	 	 	 	 dˆˆfd„}‰|ft        |<   ˆfd„t
        |<   y )Nr   r   ú=c                óH   •— | j                  t        |«      ‰z  › ‰› �|«      S r   )Ú_unpackrc   )r’   ÚdataÚ
legacy_apiÚfmtré   s      €€rf   Úbasic_handlerz&_register_basic.<locals>.basic_handlerö  s)   ø€ ð �|‰|œs 4›y¨DÑ0Ð1°#°Ð7¸Ó>Ð>rq   c                ó<   •‡ — dj                  ˆˆ fd„|D «       «      S )Nrq   c              3  óB   •K  — | ]  }‰j                  ‰|«      –— Œ y ­wr   )Ú_pack)rd   rŸ   rø   r’   s     €€rf   rg   z4_register_basic.<locals>.<lambda>.<locals>.<genexpr>ý  s   øè ø€ Ò<¨E�—‘˜C ×'Ñ<ùs   ƒ©Újoin)r’   Úvaluesrø   s   ` €rf   ú<lambda>z!_register_basic.<locals>.<lambda>ü  s   ù€ Ø�‰Ô<°VÔ<Ó<ð rq   ©T)r’   rÞ   rö   Úbytesr÷   rÕ   r–   útuple[Any, ...])r   r   ÚstructÚcalcsizeræ   rï   )Úidx_fmt_namer   rè   Únamerù   rø   ré   s        @@rf   Ú_register_basicr  ï  sw   ù€ Ýà!�N€CˆˆdØ€Eˆ#�JÜ�?‰?˜Q˜s˜e˜9Ó%€Dð FJð?Ø#ð?Ø+0ð?Ø>Bð?à	ö?ð
  Ð-„N�3Ñó„O�CÒrq   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d>d
„«       Zej                  d?d„«       Zd@d„ZdAd„ZdBd„ZdCd„ZdDd„ZdEd„ZdFd„ZdGd„ZdHd„ZdId„ZdJd„ZdKd„Z e eeej:                  ddfej<                  ddfej>                  ddfej@                  ddfejB                  d d!fejD                  d"d#fejF                  d$d%fejH                  ddfejJ                  d&d'fg	«      «        e&d(d(«      dLdMd)„«       Z' e(d(«      dNd*„«       Z) e&d+d(«      dLdOd,„«       Z* e(d+«      dPd-„«       Z+ e&d.d/«      	 dL	 	 	 	 	 dQd0„«       Z, e(d.«      dRd1„«       Z- e&d2d(«      dLdMd3„«       Z. e(d2«      dSd4„«       Z/ e&d5d/«      	 dL	 	 	 	 	 dQd6„«       Z0 e(d5«      dRd7„«       Z1dTd8„Z2dUd9„Z3dVdWd:„Z4dXd;„Z5y)YrÞ   a  This class represents a TIFF tag directory.  To speed things up, we
    don't decode tags unless they're asked for.

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

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

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

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

    Data Structures:

        * ``self.tagtype = {}``

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

          .. versionadded:: 3.0.0

    'Internal' data structures:

        * ``self._tags_v2 = {}``

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

        * ``self._tagdata = {}``

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

        * ``self._tags_v1 = {}``

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

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

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

    z"dict[int, tuple[int, _LoaderFunc]]ræ   zdict[int, Callable[..., Any]]rï   Nc                óØ  — 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                  «        | j                  r| j                  d	|d
d «      d   n| j                  d|dd «      d   | _        d| _        y)a—  Initialize an ImageFileDirectory.

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

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

        Returns the complete tag dictionary, with named tags where possible.
        )Úitemsr   Úlookupr  r  )r’   ÚcoderŸ   s      rf   ÚnamedzImageFileDirectory_v2.named…  sH   € ð  $Ÿz™z›|÷
á��eô �O‰O˜D $§*¡*Ó-×2Ñ2°EÑ9ó
ð 	
ùó 
s   ”5Ac                ój   — t        t        | j                  «      t        | j                  «      z  «      S r   )rc   Úsetr'  r&  r¢   s    rf   Ú__len__zImageFileDirectory_v2.__len__�  ó$   € Ü”3�t—}‘}Ó%¬¨D¯M©MÓ(:Ñ:Ó;Ð;rq   c                ó  — || j                   vrG| j                  |   }| j                  |   }| j                  |   \  }} || || j                  «      | |<   | j                   |   }| j                  rt        |t        t        f«      s|f}|S r   )r&  r'  r  ræ   r÷   r�   rˆ   r  )r’   Útagrö   Útypré   Úhandlerrx   s          rf   Ú__getitem__z!ImageFileDirectory_v2.__getitem__“  s‚   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ù  d¨D¯O©OÓ<ˆD�‰IØ�m‰m˜CÑ ˆØ�?Š?¤:¨c´E¼5°>Ô#BØ�&ˆCØˆ
rq   c                ó>   — || j                   v xs || j                  v S r   )r&  r'  ©r’   r6  s     rf   Ú__contains__z"ImageFileDirectory_v2.__contains__ž  ó   € Ø�d—m‘mÐ#Ò; s¨d¯m©mÐ';Ð;rq   c                ó>   — | j                  ||| j                  «       y r   )Ú_setitemr÷   )r’   r6  rŸ   s      rf   Ú__setitem__z!ImageFileDirectory_v2.__setitem__¡  s   € Ø�‰�c˜5 $§/¡/Õ2rq   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 «       «      rAt        d„ |D «       «      rt        j                  nt        j                  | j                  |<   �nAt        d„ |D «       «      r t        d„ |D «       «      rt        j                  | j                  |<   nÿt        d„ |D «       «      rt        j                  | j                  |<   nÏt        d„ |D «       «      rt        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(  r2|D �cg c]&  }t        |t        «      r|j)                  d
d«      n|‘Œ( }}nJ| j                  |   t        j                  k(  r*|D �cg c]  }t        |t*        «      rt-        |«      n|‘Œ! }}| j                  |   t        j                  k(  xr t        |t.        «      }|st1        ˆ	fd„|D «       «      }|r| j2                  n| j4                  }|sˆ‰	j6                  dk(  s<| j                  |   t        j&                  k(  s‰	j6                  €Mt9        |«      dk(  r?|s=|r2| j                  |   t        j                  t        j                  fv r|f}	 |\  ||<   y |||<   y c c}w c c}w # t:        $ r0 t=        j>                  d|› dt9        |«      › d�«       |d   ||<   Y y w xY w)Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )r�   rv   ©rd   Úvs     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¯  s   è ø€ ÒB°a”z !¤[×1ÑBùó   ‚c              3  ó&   K  — | ]	  }|d k\  –— Œ y­w©r   Nr>   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>²  s   è ø€ Ò6¨!˜q A�vÑ6ùó   ‚c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )r�   rž   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>µ  ó   è ø€ Ò<°œ A¤s×+Ñ<ùrE  c              3  ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)r   r    Nr>   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¶  s   è ø€ Ò:¨a˜1 ž> EŸ>˜>Ñ:ùrE  c              3  ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)i €ÿÿi €  Nr>   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¸  s   è ø€ ÒB°a˜X¨Ö1¨E×1Ð1ÑBùrE  c              3  ó&   K  — | ]	  }|d k\  –— Œ y­wrG  r>   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>½  s   è ø€ Ò":¨a 1¨¥6Ñ":ùrH  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )r�   ru   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>À  ó   è ø€ Ò>°!œ A¤u×-Ñ>ùrE  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )r�   r©   rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Â  rJ  rE  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )r�   r  rC  s     rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ä  rO  rE  Úasciirå   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )Úcvt_enum)rd   rŸ   Úinfos     €rf   rg   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ñ  s   øè ø€ ÒD°E˜4Ÿ=™=¨×/ÑDùs   ƒr   zMetadata Warning, tag z had too many entries: z, expected 1r   ) r   r  r©   r   r.  r  r�   r  ÚtypeÚ	UNDEFINEDÚallÚRATIONALÚSIGNED_RATIONALÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEÚencoderž   ru   r*  rˆ   r%  r&  Úlengthrc   Ú
ValueErrorÚwarningsÚwarn)
r’   r6  rŸ   r÷   Ú	basetypesrÿ   rD  Úis_ifdÚdestrU  s
            @rf   r?  zImageFileDirectory_v2._setitem¤  sE  ø€ ÜœU¤CÐ(ˆ	ä�‰˜s D§J¡JÓ/ˆÜ& u¨iÔ8�%‘¸eˆà�d—l‘lÒ"Ø�yŠyØ$(§I¡I�—‘˜SÓ!ä$,×$6Ñ$6�—‘˜SÑ!ÜÑB¸6ÔBÔBô Ñ6¨vÔ6Ô6ô !×)Ò)ä%×5Ñ5ð —L‘L Ó%ô
 Ñ<°VÔ<Ô<ÜÑ:°6Ô:Ô:Ü,4¯N©N˜Ÿ™ SÒ)ÜÑB¸6ÔBÔBÜ,4×,AÑ,A˜Ÿ™ SÒ)ô  #Ñ":°6Ô":Ô:ô %ŸMšMä!)×!5Ñ!5ð Ÿ™ SÒ)ô
 Ñ>°vÔ>Ô>Ü(0¯©�D—L‘L Ò%ÜÑ<°VÔ<Ô<Ü(0¯©�D—L‘L Ò%ÜÑ>°vÔ>Ô>Ü(0¯©�D—L‘L Ñ%à�<‰<˜Ñ¤× 2Ñ 2Ò2ð  öàô 1;¸1¼cÔ0B�—‘˜ )Ô,ÈÑIðˆFñ ð �\‰\˜#Ñ¤(×"3Ñ"3Ò3ØEKÖLÀ¤*¨Q´Ô"4”e˜A”h¸!Ñ;ÐLˆFÐLà—‘˜cÑ"¤h§m¡mÑ3ÒP¼
À6Ì4Ó8PˆÙÜÓD¸VÔDÓDˆFá *ˆt�}Š}°·±ˆñ Ø�[‰[˜AÒØ�|‰|˜CÑ ¤H§M¡MÒ1Ø—‘Ð#¬¨F«°qÒ(8Áñ ˜dŸl™l¨3Ñ/Ü×!Ñ!Ü×(Ñ(ð4ñ ð !˜�ð&Ø%‘��c’ð ˆD�ŠIùòUùò
 Møô4 ò &ä—‘Ø,¨S¨EÐ1HÜ˜6“{�m <ð1ôð # 1™I��S“	ð&ús   É+N9Ê!$N>Î+O Ï6O<Ï;O<c                ó¬   — | j                   j                  |d «       | j                  j                  |d «       | j                  j                  |d «       y r   )r&  Úpopr%  r'  r;  s     rf   Ú__delitem__z!ImageFileDirectory_v2.__delitem__ô  s>   € Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÕ$rq   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S r   )Úiterr2  r'  r&  r¢   s    rf   Ú__iter__zImageFileDirectory_v2.__iter__ù  ó$   € Ü”C˜Ÿ™Ó&¬¨T¯]©]Ó);Ñ;Ó<Ð<rq   c                óH   — t        j                  | j                  |z   |«      S r   )r  Úunpackr  )r’   rø   rö   s      rf   rõ   zImageFileDirectory_v2._unpackü  s   € Ü�}‰}˜TŸ\™\¨CÑ/°Ó6Ð6rq   c                óH   — t        j                  | j                  |z   g|¢­Ž S r   )r  Úpackr  )r’   rø   rÿ   s      rf   rü   zImageFileDirectory_v2._packÿ  s   € Ü�{‰{˜4Ÿ<™<¨#Ñ-Ð7°Ò7Ð7rq   ÚHÚshortr@   ÚlongÚbzsigned byteÚhzsigned shortÚlzsigned longr§   ru   ÚdÚdoubler  Úlong8r   c                ó   — |S r   r>   ©r’   rö   r÷   s      rf   Ú	load_bytezImageFileDirectory_v2.load_byte  ó   € àˆrq   c                ót   — t        |t        «      rt        |«      }t        |t        «      rt        |f«      }|S r   )r�   rv   rž   r  ©r’   rö   s     rf   Ú
write_bytez ImageFileDirectory_v2.write_byte  s/   € ä�dœKÔ(Ü�t“9ˆDÜ�dœCÔ Ü˜$˜“>ˆDØˆrq   r&   c                óR   — |j                  d«      r|d d }|j                  dd«      S )Nó    rs   zlatin-1rå   )ÚendswithÚdecoder  s      rf   Úload_stringz!ImageFileDirectory_v2.load_string  s*   € à�=‰=˜ÔØ˜˜�9ˆDØ�{‰{˜9 iÓ0Ð0rq   c                ó†   — t        |t        «      rt        |«      }t        |t        «      s|j	                  dd«      }|dz   S )NrR  rå   r†  )r�   rž   r©   r  rb  ©r’   rŸ   s     rf   Úwrite_stringz"ImageFileDirectory_v2.write_string%  s;   € ô �eœSÔ!Ü˜“JˆEÜ˜%¤Ô'Ø—L‘L ¨)Ó4ˆEØ�u‰}Ðrq   r,   r2   c           
     ó¨   ‡‡— | j                  t        |«      dz  › d�|«      }dˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr*   r@   c                ó(   •— ‰r| |fS t        | |«      S r   ©rv   ©Úarx  r÷   s     €rf   Úcombinez4ImageFileDirectory_v2.load_rational.<locals>.combine4  ó   ø€ Ù'�A�q�6Ð>¬[¸¸AÓ->Ð>rq   c              3  ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr   r>   ©rd   ÚnumÚdenomr’  s      €rf   rg   z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>7  ó   øè ø€ ÒV©Z¨S°%‘W˜S %×(ÑVùó   ƒr&   r   ©r‘  rž   rx  rž   r–   ztuple[int, int] | IFDRational©rõ   rc   rˆ   Úzip©r’   rö   r÷   Úvalsr’  s     ` @rf   Úload_rationalz#ImageFileDirectory_v2.load_rational.  óW   ù€ ð �|‰|œs 4›y¨A™~Ð.¨aÐ0°$Ó7ˆõ	?ô ÓV¼3¸tÁCÀaÀC¹yÈ$ÈqÈtÐRSÈtÉ*Ó;UÔVÓVÐVrq   c                ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nrq   c              3  óX   •K  — | ]!  } ‰j                   d gt        |d«      ¢­Ž –— Œ# y­w)Ú2Ll   ÿÿ N)rü   r|   ©rd   r‹   r’   s     €rf   rg   z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>;  s-   øè ø€ ò 
ØDHˆJˆD�J‰J�tÐ?œo¨d°IÓ>Ö?ñ
ùs   ƒ'*rý   ©r’   rÿ   s   ` rf   Úwrite_rationalz$ImageFileDirectory_v2.write_rational9  s!   ø€ à�x‰xó 
ØLRô
ó 
ð 	
rq   r0   c                ó   — |S r   r>   r  s      rf   Úload_undefinedz$ImageFileDirectory_v2.load_undefined?  r�  rq   c                ó’   — t        |t        «      rt        |«      }t        |t        «      rt        |«      j	                  dd«      }|S )NrR  rå   )r�   rv   rž   r©   rb  r‹  s     rf   Úwrite_undefinedz%ImageFileDirectory_v2.write_undefinedC  s:   € ä�eœ[Ô)Ü˜“JˆEÜ�eœSÔ!Ü˜“J×%Ñ% g¨yÓ9ˆEØˆrq   é
   c           
     ó¨   ‡‡— | j                  t        |«      dz  › d�|«      }dˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr*   rz  c                ó(   •— ‰r| |fS t        | |«      S r   r�  r�  s     €rf   r’  z;ImageFileDirectory_v2.load_signed_rational.<locals>.combineQ  r“  rq   c              3  ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr   r>   r•  s      €rf   rg   z=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>T  r˜  r™  r&   r   rš  r›  r�  s     ` @rf   Úload_signed_rationalz*ImageFileDirectory_v2.load_signed_rationalK  r   rq   c                ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nrq   c           	   3  óZ   •K  — | ]"  } ‰j                   d gt        |dd«      ¢­Ž –— Œ$ y­w)Ú2liÿÿÿi   €N)rü   r�   r¤  s     €rf   rg   z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>X  s3   øè ø€ ò 
àð ˆD�J‰J�tÐPÔ4°T¸9ÀhÓOÖPñ
ùs   ƒ(+rý   r¥  s   ` rf   Úwrite_signed_rationalz+ImageFileDirectory_v2.write_signed_rationalV  s!   ø€ à�x‰xó 
àô
ó 
ð 	
rq   c                ó~   — |j                  |«      }t        |«      |k7  rd|› dt        |«      › d�}t        |«      ‚|S )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )Úreadrc   ÚOSError)r’   Úfpré   Úretr  s        rf   Ú_ensure_readz"ImageFileDirectory_v2._ensure_read]  sN   € Ø�g‰g�d‹mˆÜˆs‹8�tÒð%Ø%) FÐ*>¼sÀ3»x¸jÈðLð ô ˜#“,ÐØˆ
rq   c           
     óx  — | j                  «        |j                  «       | _        	 | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      d   }t        |«      D �]   }| j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d	«      «      \  }}}}t        j                  || j                  «      j                  }t        j                  |d
«      }	d|› d|› d|	› d|› d�	}
	 | j                  |   \  }}||z  }|| j                  rdndkD  rv|j                  «       }| j	                  | j                  rdnd|«      \  }|
d|› d|› �z  }
|j#                  |«       t%        j&                  ||«      }|j#                  |«       n|d | }t)        |«      |k7  r>t+        j,                  d|› dt)        |«      › d|› �«       t        j!                  |
«       �Œš|st        j!                  |
«       �Œ³|| j.                  |<   || j0                  |<   |
d|dkD  rd|z  n
t3        |«      z   z  }
t        j!                  |
«       �Œ | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      \  | _        y # t        $ r t        j!                  d|
|«       Y �Œw xY w# t6        $ r(}
t+        j,                  t9        |
«      «       Y d }
~
y d }
~
ww xY w)Nr  r2   ru  r&   r   ÚHHQ8sé   ÚHHL4srA   Úunknownztag: ú (ú
) - type: ú)z%s - unsupported type %sr*   r@   z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read rµ  z. Skipping tag ú
 - value: rH   ú<table: %d bytes>)r  Útellr   r  rõ   rº  Úranger   r.  r  r  r   Úgetræ   ÚKeyErrorÚloggerÚdebugÚseekr   Ú
_safe_readrc   re  rf  r'  r  r  r  r·  r©   )r’   r¸  Ú	tag_countr‚   r6  r7  Úcountrö   ÚtagnameÚtypnamer  Ú	unit_sizer8  ré   ÚhereÚoffsets                   rf   ÚloadzImageFileDirectory_v2.loadg  s  € Ø�
‰
ŒØ—w‘w“yˆŒð=	ð —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@Øñ	ˆIô
 ˜9Ó%ó ."�ð —}’}ð —L‘L ¨$×*;Ñ*;¸BÀÓ*CÔDàŸ™ g¨t×/@Ñ/@ÀÀRÓ/HÓIñ &��S˜% ô #Ÿ/™/¨#¨t¯z©zÓ:×?Ñ?�ÜŸ)™) C¨Ó3�Ø˜g˜Y b¨¨¨Z¸°yÀÀ3À%ÀqÐI�ðØ)-×)<Ñ)<¸SÑ)AÑ&�I˜wð ˜yÑ(�Ø §¢™1°1Ò5ØŸ7™7›9�DØ $§¡°D·M²M©SÀsÈDÓ Q‘I�VØ˜_¨T¨FÐ2DÀVÀHÐMÑM�CØ—G‘G˜F”OÜ$×/Ñ/°°DÓ9�DØ—G‘G˜D•Mà  ˜;�Dä�t“9 Ò$Ü—M‘Mð-Ø-1¨FÐ2FÄsÈ4ÃyÀkð R)Ø),¨ð/ôô
 —L‘L Ô%ÙáÜ—L‘L Ô%Ùà%)�—‘˜cÑ"Ø$'�—‘˜SÑ!à�|Ø26¸²)Ð'¨$Ò.ÄÀdÃññ �ô —‘˜SÖ!ð]."ðd —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@ñ ˆT�YøôG  ò Ü—L‘LÐ!;¸SÀ#ÔFÚðûôP ò 	Ü�M‰Mœ#˜c›(Ô#Üûð	ús=   §DL Ä.K!Å F L Ë! LÌL ÌLÌL Ì	L9ÌL4Ì4L9c                ó¸  — | j                  dt        | j                  «      «      }g }|t        |«      z   t        | j                  «      dz  z   dz   }d }t        | j                  j	                  «       «      D �]P  \  }}|t
        k(  rt        |«      }| j                  |   }t        j                  d||t        |«      «       |t        j                  k(  xr t        |t        «      }|r_| j                  dk(  rd}	nd}	t        |	|¬«      }
| j                  |   }|j	                  «       D ]
  \  }}||
|<   Œ |
j!                  |«      }n+t        |t"        «      r|n|f} | j$                  |   | g|¢­Ž }t        j&                  || j(                  «      j*                  }|rd	nt-        j.                  |d
«      }d|› d|› d|› d|› d�	}|dt        |«      dk\  rdt        |«      z  n
t1        |«      z   z  }t        j                  |«       |rd}nH|t        j2                  t        j4                  t        j6                  fv rt        |«      }nt        |«      }t        |«      dk  r(|j9                  ||||j;                  dd«      df«       �Œ|j9                  |||| j                  d|«      |f«       |t        |«      dz   dz  dz  z  }�ŒS |�Œ||   \  }}}}}|rM| j<                  |   \  }} || || j>                  «      D �cg c]  }||z   ‘Œ	 }} | j$                  |   | g|¢­Ž }n(| j                  d| jA                  d|«      d   |z   «      }|||||f||<   |D ]L  \  }}}}}t        j                  d|||t        |«      t        |«      «       || j                  d||||«      z  }ŒN |dz  }|D ]!  \  }}}}}||z  }t        |«      dz  sŒ|dz  }Œ# |S c c}w )Nru  rA   r*   zTag %s, Type: %s, Value: %sr  s   II*    s   MM *   )r  Úifdr¿  zsave: rÀ  rÁ  rÂ  rÃ  rC   rÄ  r   r†  rq   r@   r&   r   z%s %s %s %s %sr¾  s       )!rü   rc   r&  Úsortedr-  ÚSTRIPOFFSETSr  rÉ  rÊ  r  r   r]  r�   r*  r  rÞ   Útobytesrˆ   rï   r.  r  r  r   rÇ  r©   ra  r`  rW  ÚappendÚljustræ   r÷   rõ   )r’   rÓ  ÚresultÚentriesÚstripoffsetsr6  rŸ   r7  rh  r  rÖ  rÿ   Úifd_tagÚ	ifd_valuerö   rÏ  rÐ  r  rÎ  ré   r8  rx   s                         rf   rÙ  zImageFileDirectory_v2.tobytesª  sÜ  € à—‘˜C¤ T§]¡]Ó!3Ó4ˆà<>ˆØœ#˜f›+Ñ%¬¨D¯M©MÓ(:¸RÑ(?Ñ?À!ÑCˆØˆô ! §¡×!4Ñ!4Ó!6Ó7ó (	3‰JˆC�Ø”lÒ"Ü" 7›|�Ø—,‘,˜sÑ#ˆCÜ�L‰LÐ6¸¸SÄ$ÀuÃ+ÔNØœHŸM™MÑ)ÒE¬j¸ÄÓ.EˆFÙØ—<‘< 3Ò&Ø7‘Cà7�CÜ+¨C°sÔ;�ØŸ™ sÑ+�Ø*0¯,©,«.ò -Ñ&�G˜YØ#,�C˜’Lð-à—{‘{ 6Ó*‘ä",¨U´EÔ":™ÀÀ�Ø0�t×+Ñ+¨CÑ0°Ð?¸Ò?�ä—o‘o c¨4¯:©:Ó6×;Ñ;ˆGÙ%‘e¬5¯9©9°S¸)Ó+DˆGØ˜7˜) 2 c U¨*°W°I¸RÀ¸uÀAÐFˆCØ�<Ü36°t³9À²?Ð#¤c¨$£iÒ/ÌÈFËññ ˆCô �L‰L˜Ôñ Ø‘ØœŸ™¬¯©¼×8JÑ8JÐKÑKÜ˜D›	‘ä˜F›�ä�4‹y˜AŠ~Ø—‘  S¨%°·±¸A¸uÓ1EÀsÐKÖLà—‘  S¨%°·±¸CÀÓ1HÈ$ÐOÔPØœ3˜t›9 q™=¨QÑ.°Ñ2Ñ2’ðQ(	3ðV Ð#Ø+2°<Ñ+@Ñ(ˆC��e˜U DÙØ $× 3Ñ 3°CÑ 8‘��gÙ29¸$ÀÀdÇoÁoÓ2VÖW¨3˜# ›,ÐW�ÐWØ0�t×+Ñ+¨CÑ0°Ð?¸Ò?‘àŸ
™
 3¨¯©°S¸%Ó(@ÀÑ(CÀfÑ(LÓM�Ø$'¨¨e°U¸DÐ$@ˆG�LÑ!ð -4ò 	BÑ(ˆC��e˜U DÜ�L‰LÐ)¨3°°U¼DÀ»KÌÈdËÔTØ�d—j‘j ¨#¨s°E¸5ÓAÑA‰Fð	Bð
 	�+Ñˆð -4ò 	 Ñ(ˆC��e˜U DØ�d‰NˆFÜ�4‹y˜1‹}Ø˜%‘‘ð	 ð
 ˆùò) Xs   ÌOc                ó  — |j                  «       dk(  r/|j                  | j                  | j                  ddd«      z   «       |j                  «       }| j	                  |«      }|j                  |«       |t        |«      z   S )Nr   ÚHLé*   r2   )rÅ  Úwriter  rü   rÙ  rc   )r’   r¸  rÓ  rÜ  s       rf   ÚsavezImageFileDirectory_v2.saveù  se   € Ø�7‰7‹9˜Š>à�H‰H�T—\‘\ D§J¡J¨t°R¸Ó$;Ñ;Ô<à—‘“ˆØ—‘˜fÓ%ˆØ
�‰�ÔØœ˜F›Ñ#Ð#rq   )s   II*     NN)r  r  ro   zbytes | Noner  ú
int | Noner–   rÑ   )r–   rÕ   )rŸ   rÕ   r–   r   ©r–   rÑ   rÓ   )r–   zdict[str, Any]rÒ   ©r6  rž   r–   r   ©r6  rÔ   r–   rÕ   ©r6  rž   rŸ   r   r–   rÑ   )r6  rž   rŸ   r   r÷   rÕ   r–   rÑ   )r6  rž   r–   rÑ   ©r–   zIterator[int])rø   r©   rö   r  r–   r  )rø   r©   rÿ   r   r–   r  r  )rö   r  r÷   rÕ   r–   r  )rö   úbytes | int | IFDRationalr–   r  )rö   r  r÷   rÕ   r–   r©   )rŸ   zstr | bytes | intr–   r  )rö   r  r÷   rÕ   r–   z)tuple[tuple[int, int] | IFDRational, ...])rÿ   rv   r–   r  )rŸ   rì  r–   r  )r¸  ú	IO[bytes]ré   rž   r–   r  )r¸  rí  r–   rÑ   rQ   )rÓ  rž   r–   r  )r¸  rí  r–   rž   )6r×   rØ   rÙ   rÚ   ræ   Ú__annotations__rï   r    rÜ   ro   rÓ  r÷   Úsetterr  r+  r0  r3  r9  r<  r@  r?  rl  ro  rõ   rü   ÚlistÚmapr  r   r[  r]  ÚSIGNED_BYTEr\  r^  ÚFLOATr_  ÚIFDÚLONG8rì   r€  rñ   r„  r‰  rŒ  rŸ  r¦  r¨  rª  r¯  r³  rº  rÔ  rÙ  rå  r>   rq   rf   rÞ   rÞ     sÓ  … ñ:ðx :<€NÐ6Ó;Ø57€OÐ2Ó7ð )Ø#Ø ð	%!àð%!ð ð%!ð ð	%!ð
 
ó%!ñN Ñ/Ó0€FÙÑ/Ó0€Fàò ó ð ð ×Ñòó ðó(óó	
ó<ó	ó<ó3óNó`%ó
=ó7ó8ñ 	ÙØà—‘  gÐ.Ø—‘  VÐ,Ø×%Ñ% s¨MÐ:Ø×&Ñ&¨¨^Ð<Ø×%Ñ% s¨MÐ:Ø—‘  gÐ.Ø—‘ # xÐ0Ø—‘˜s FÐ+Ø—‘  gÐ.ð
ó	
ôñ" �a˜Óóó ðñ �aÓòó ðñ �a˜Óó1ó ð1ñ
 �aÓòó ðñ �a˜Óà.2ðWØðWØ'+ðWà	2òWó ðWñ �aÓò
ó ð
ñ
 �a˜Óóó ðñ �aÓòó ðñ �b˜!Óà.2ðWØðWØ'+ðWà	2òWó ðWñ �bÓò
ó ð
óóAôFMô^$rq   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
    c                ó2   •— t        ‰| �  |i |¤Ž d| _        y )NT)Úsuperr    r  )r’   r“   ÚkwargsÚ	__class__s      €rf   r    zImageFileDirectory_v1.__init__!  s   ø€ Ü‰Ñ˜$Ð) &Ò)ØˆÕrq   c                ó   — | j                   S r   )r%  r¢   s    rf   r   zImageFileDirectory_v1.<lambda>%  s
   €  §¡€ rq   c                ó   — | j                   S r   )r'  r¢   s    rf   r   zImageFileDirectory_v1.<lambda>&  s
   €  D§M¡M€ rq   zdict[int, int]r  c                ó’   —  | |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`

        rn   )ro   r'  r  r  )ÚclsÚoriginalrÖ  s      rf   Úfrom_v2zImageFileDirectory_v1.from_v2,  s<   € ñ ˜Ÿ™Ô)ˆØ×(Ñ(ˆŒØ×&Ñ&ˆŒØ—=‘=ˆŒØˆ
rq   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`

        rn   )rÞ   ro   r*  r'  r  r&  )r’   rÖ  s     rf   Úto_v2zImageFileDirectory_v1.to_v2>  sG   € ô $¨4¯;©;Ô7ˆÜ˜DŸM™MÓ*ˆŒÜ˜4Ÿ<™<Ó(ˆŒÜ˜DŸM™MÓ*ˆŒØˆ
rq   c                ó>   — || j                   v xs || j                  v S r   )r%  r'  r;  s     rf   r<  z"ImageFileDirectory_v1.__contains__O  r=  rq   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S r   )rc   r2  r'  r%  r¢   s    rf   r3  zImageFileDirectory_v1.__len__R  r4  rq   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S r   )rn  r2  r'  r%  r¢   s    rf   ro  zImageFileDirectory_v1.__iter__U  rp  rq   c                ó8   — dD ]  }| j                  |||«       Œ y ©N)FT)r?  )r’   r6  rŸ   r÷   s       rf   r@  z!ImageFileDirectory_v1.__setitem__X  s!   € Ø'ò 	2ˆJØ�M‰M˜#˜u jÕ1ñ	2rq   c           	     ó  — || j                   vrR| j                  |   }| j                  |   }| j                  |   \  }}dD ]  }| j	                  | || ||«      |«       Œ | j                   |   }t        |t        t        f«      s|f}|S r	  )r%  r'  r  ræ   r?  r�   rˆ   r  )r’   r6  rö   r7  ré   r8  Úlegacyrx   s           rf   r9  z!ImageFileDirectory_v1.__getitem__\  s�   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ø'ò H�Ø—‘˜c¡7¨4°°vÓ#>ÀÕGðHà�m‰m˜CÑ ˆÜ˜#¤¤u˜~Ô.Ø�&ˆCØˆ
rq   )r“   r   rû  r   r–   rÑ   )r  rÞ   r–   rø  )r–   rÞ   ré  rÒ   rë  rê  rè  )r×   rØ   rÙ   rÚ   r    rÜ   ÚtagsÚtagdatarî  Úclassmethodr  r  r<  r3  ro  r@  r9  Ú__classcell__©rü  s   @rf   rø  rø    s`   ø… ñõ$ ñ Ñ.Ó/€DÙÑ1Ó2€Gð ÓØ!àòó ðó"ó"<ó<ó=ó2÷
rq   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 TIFFFc                ó2   •— |  	 |  	 t         ‰| �  ||«       y r   )rú  r    )r’   r¸  Úfilenamerü  s      €rf   r    zTiffImageFile.__init__v  s    ø€ ñ
 	Ø5áØ"ä‰Ñ˜˜XÕ&rq   c                ó   — | j                   j                  d«      }|d   dk(  r|| j                   j                  d«      z  }t        |«      | _        | j                  j                  x| _        | _        d| _        | j                   | _        g | _	        d| _
        t        j                  d«       t        j                  d| j
                  «       t        j                  dt        |«      «       | j                  d	«       y)
z#Open the first image in a TIFF filer2   r&   r  rs   Nz*** TiffImageFile._open ***z- __first: %sz	- ifh: %sr   )r¸  r¶  rÞ   Útag_v2r  Ú_TiffImageFile__firstÚ_TiffImageFile__nextÚ_TiffImageFile__frameÚ_fpÚ
_frame_posÚ	_n_framesrÉ  rÊ  r  Ú_seek)r’   r  s     rf   Ú_openzTiffImageFile._openƒ  sº   € ð �g‰g�l‰l˜1‹oˆØˆq‰6�RŠ<Ø�4—7‘7—<‘< “?Ñ"ˆCä+¨CÓ0ˆŒð &*§[¡[×%5Ñ%5Ð5ˆŒ�t”{ØˆŒØ—7‘7ˆŒØ%'ˆŒØ%)ˆŒä�‰Ð2Ô3Ü�‰�_ d§l¡lÔ3Ü�‰�[¤$ s£)Ô,ð 	�
‰
�1�rq   c                óR  — | j                   }|€€| j                  «       }| j                  t        | j                  «      «       | j                   €/| j                  | j                  «       dz   «       | j                   €Œ/| j                  |«       | j                   €J ‚| j                   S )Nr   )r  rÅ  r  rc   r  rË  )r’   Úcurrent_n_framesÚcurrents      rf   Ún_frameszTiffImageFile.n_frames›  s„   € àŸ>™>ÐØÐ#Ø—i‘i“kˆGØ�J‰J”s˜4Ÿ?™?Ó+Ô,Ø—.‘.Ð(Ø—
‘
˜4Ÿ9™9›;¨™?Ô+ð —.‘.Ñ(à�I‰I�gÔØ�~‰~Ð)Ð)Ð)Ø�~‰~Ðrq   c                ó   — | j                  |«      sy| j                  |«       | j                  �O| j                  j                  | j
                  k7  s#| j                  j                  | j                  k7  rd| _        yyy)z%Select a given frame as current imageN)Ú_seek_checkr  Ú_imÚimré   Ú
_tile_sizeÚmode)r’   Úframes     rf   rË  zTiffImageFile.seek§  sd   € à×Ñ Ô&ØØ�
‰
�5ÔØ�8‰8ÐØ�G‰G�L‰L˜DŸO™OÒ+¨t¯w©w¯|©|¸t¿y¹yÒ/Hð ˆD�Hð 0Ið  rq   c                ó  — | j                   | _        | j                  j                  «        t        | j                  «      |k  �rÐ| j
                  sd}t        |«      ‚t        j                  d|| j                  | j
                  | j                  j                  «       «       | j
                  dk\  rd}t        |«      ‚| j                  j                  | j
                  «       | j                  j                  | j
                  «       t        j                  d| j                  j                  «       «       | 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k7  | _        | xj                  dz  c_	        t        | j                  «      |k  r�ŒÐ| j                  j                  | j                  |   «       | j                  j                  | j                  «       t$        | j                  v r!| j                  t$           | j&                  d<   nd| j&                  v r| j&                  d= | j)                  «        t*        j-                  | j                  «      x| _        | _        || _	        | j3                  «        y )	Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %sl            zUnable to seek to framezLoading tags, location: %sr   r   Úxmp)r  r¸  rÅ  rc   r  r  ÚEOFErrorrÉ  rÊ  r  rd  rË  rÚ  r  rÔ  r  r  Úis_animatedÚXMPrU  Ú_reload_exifrø  r  r6  rÖ  Ú_setup)r’   r*  r  s      rf   r  zTiffImageFile._seek²  s  € Ø—(‘(ˆŒð 	�‰�‰Œä�$—/‘/Ó" eÓ+Ø—;’;Ø3�Ü˜s“mÐ#Ü�L‰LØKØØ—‘Ø—‘Ø—‘—‘“ôð �{‰{˜eÒ#Ø/�Ü  “oÐ%Ø�G‰G�L‰L˜Ÿ™Ô%Ø�O‰O×"Ñ" 4§;¡;Ô/Ü�L‰LÐ5°t·w±w·|±|³~ÔFØ�K‰K×Ñ˜TŸW™WÔ%Ø�{‰{×Ñ 4§?¡?Ñ2ð  �•à"Ÿk™k×.Ñ.�”Ø�{‰{˜aÒØ!&¨¡�”Ü�4—?‘?Ó# qÒ(Ø#'§;¡;°!Ñ#3�Ô Ø�LŠL˜AÑ�Lô9 �$—/‘/Ó" eÔ+ð: 	�‰�‰�T—_‘_ UÑ+Ô,Ø�‰×Ñ˜Ÿ™Ô!Ü�$—+‘+ÑØ#Ÿ{™{¬3Ñ/ˆD�I‰I�eÒØ�d—i‘iÑØ—	‘	˜%Ð Ø×ÑÔä3×;Ñ;¸D¿K¹KÓHÐHˆŒ�4”8ØˆŒØ�‰�rq   c                ó   — | j                   S )zReturn the current frame number)r  r¢   s    rf   rÅ  zTiffImageFile.tellâ  s   € à�|‰|Ðrq   c                óŽ  — i }| j                   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(  rŒ…|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’   Úblocksrx   ÚidÚnré   rö   s          rf   Úget_photoshop_blocksz"TiffImageFile.get_photoshop_blocksæ  sâ   € ð ˆØ�k‰k�o‰oœhŸm™m×:Ñ:Ó;ˆÙØ�b�q�'˜WÒ$Ü˜˜Q˜q˜“]�Ü—I‘I˜s 1™v¨™z¨QÑ.Ó/°!Ñ3�Ü˜3˜q 1™u r¨A¡vÐ.Ó/�Ø˜2 ™6 B¨¡F¨T¡MÐ2�Ø$ d˜^��r‘
àœ$Ÿ)™) R¨!¡V¨d¡]°aÑ$7Ó8¸1Ñ<Ð>Ð?�ð �b�q�'˜WÓ$ð ˆrq   c                óp   •— | j                   r| j                  r| j                  «       S t        ‰| �  «       S r   )ÚtileÚuse_load_libtiffÚ_load_libtiffrú  rÔ  )r’   rü  s    €rf   rÔ  zTiffImageFile.loadû  s-   ø€ Ø�9Š9˜×.Ò.Ø×%Ñ%Ó'Ð'Ü‰w‰|‹~Ðrq   c                ó
  — | j                   €Xt        j                  | j                  «       t        j                  j                  | j                  | j                  «      | _        t        j                  j                  | «       y r   )
r&  r   Ú_decompression_bomb_checkr(  ÚcoreÚnewr)  r'  r   Úload_preparer¢   s    rf   rF  zTiffImageFile.load_prepare   sP   € Ø�8‰8ÐÜ×+Ñ+¨D¯O©OÔ<Ü—j‘j—n‘n T§Y¡Y°·±Ó@ˆDŒGÜ×Ñ×(Ñ(¨Õ.rq   c                óš  — | j                   s\d| _        | j                  j                  «        | j	                  «       }t
        j                  D ]  }||vrŒ|j                  |«       Œ t        j                  | d¬«       t        j                  j                  | j                  v r&| j                  t        j                  j                  = y y )NT)Úin_place)r.  Ú!_close_exclusive_fp_after_loadingr¸  rÅ  Úgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   r4  ÚOrientationr  )r’   ÚexifÚkeys      rf   Úload_endzTiffImageFile.load_end  sŸ   € ð ×ÒØ59ˆDÔ2ð �G‰G�L‰LŒNð —<‘<“>ˆDÜ×.Ñ.ò "�Ø˜d‘?ØØ—‘˜SÕ!ð"ô
 	×Ñ ¨tÕ4Ü�=‰=×$Ñ$¨¯©Ñ3Ø—‘œHŸM™M×5Ñ5Ñ6ð 4rq   c                ó  — t         j                   j                  | «       | j                  «        t        | j                  «      dk(  sd}t        |«      ‚| j                  d   d   }| j                  d   d   }	 t        | j                  d«      xr | j                  j                  «       }t        | j                  d«      r| j                  j                  «        |r-t        |t        «      sJ ‚t        |«      }||d<   t        |«      }t        j                  | j                  d	|| j                  «      }	 |j!                  | j"                  |«       | j&                  xr | j(                   }t        | j                  d«      rBt*        j-                  d«       |j/                  | j                  j1                  «       «      \  }	}
n¥|rGt*        j-                  d«       |s| j                  j3                  d«       |j/                  d«      \  }	}
n\t*        j-                  d«       | j                  j3                  d«       |j/                  | j                  j5                  «       «      \  }	}
g | _        d| _        | j9                  «        |r!| j                  j;                  «        d| _        |
dk  rt        |
«      ‚t         j                   j                  | «      S # t
        $ r d}Y �Œw xY w# t$        $ r}d
}t        |«      |‚d}~ww xY w)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Ô  rF  rc   r?  r·  rÝ   r¸  rS  rT  r�   rˆ   rð  Ú_getdecoderr)  ÚdecoderconfigÚsetimager'  rd  Ú_exclusive_fpr.  rÉ  rÊ  rˆ  rV  rË  r¶  ÚreadonlyrQ  Úclose)r’   r  Úextentsr“   r¸  Ú	args_listÚdecoderÚeÚclose_self_fpr<  Úerrs              rf   rA  zTiffImageFile._load_libtiff  se  € ô 	�‰×Ñ˜Ôà×ÑÔä�4—9‘9‹~ Ò"Ø(ˆCÜ˜#“,Ðð —)‘)˜A‘,˜q‘/ˆØ�y‰y˜‰|˜A‰ˆð

	Ü˜Ÿ™ (Ó+Ò@°·±·±Ó0@ˆBô �t—w‘w Ô(Ø—‘—‘”ñ Ü˜d¤EÔ*Ð*Ð*Ü˜T›
ˆIØˆI�a‰LÜ˜Ó#ˆDä×#Ñ# D§I¡I¨y¸$À×@RÑ@RÓSˆð	&Ø×Ñ˜TŸW™W gÔ.ð
 ×*Ñ*ÒC°4×3CÑ3CÐ/CˆÜ�4—7‘7˜JÔ'ô �L‰LÐPÔQØ—^‘^ D§G¡G×$4Ñ$4Ó$6Ó7‰FˆA‰sÙä�L‰LÐNÔOÙ Ø—‘—‘˜Q”à—^‘^ GÓ,‰FˆA‰sô �L‰LÐFÔGØ�G‰G�L‰L˜ŒOà—^‘^ D§G¡G§L¡L£NÓ3‰FˆAˆsàˆŒ	ØˆŒà�‰ŒáØ�G‰G�M‰MŒOØˆDŒGà�Š7Ü˜#“,Ðä�{‰{×Ñ Ó%Ð%øôs ò 	ð ‹Bð	ûô ò 	&Ø*ˆCÜ˜#“, AÐ%ûð	&ús+   Á:A"K Ä8K. ËK+Ë*K+Ë.	L
Ë7LÌL
c                ó’  — d| j                   v rd}t        |«      ‚t        | j                   j                  t        d«         | _        | j                   j                  t        d«      | _        | j                   j                  t        d«      }| j
                  dk(  rd}| j                   j                  t        d«      }t        j                  d«       t        j                  d| j
                  «       t        j                  d	|«       t        j                  d
| j                  «       t        j                  d|«       t        j                  d| j                   j                  t        «      «       | j                   j                  t        «      }| j                   j                  t        «      }t        |t         «      rt        |t         «      sd}t#        |«      ‚||f| _        | j                   j                  t&        j(                  j*                  «      }|dv r
||f| _        n	||f| _        t        j                  d| j.                  «       | j                   j                  t0        d«      }t3        |«      dkD  r"t5        |«      t7        |«      cxk(  rdk(  rn nd}| j                   j                  t8        d«      }| j                   j                  t:        d«      }	|dv rd}
n
|dk(  rd}
nd}
|
t3        |	«      z  }
t3        |«      }| j                   j                  t<        | j
                  dk(  r|dv rdnd«      }|t>        kD  r#t        jA                  d|«       d}tC        |«      ‚||k  r|d| }n||kD  r
|dk(  r||z  }t3        |«      |k7  rd}tC        |«      ‚| j                   jD                  |||||	f}t        j                  d|«       	 tF        |   \  | _$        }t        j                  d|«       t        j                  d| jL                  «       | j
                  | jN                  d <   | j                   j                  tP        d«      }| j                   j                  tR        d«      }|r‹|r‰| j                   j                  tT        «      }|d!k(  r||f| jN                  d"<   nS|dk(  r|d#z  |d#z  f| jN                  d"<   n6|€#||f| jN                  d"<   ||f| jN                  d$<   n||f| jN                  d$<   dx}x}}g | _+        tX        xs | j
                  d%k7  | _-        | jZ                  rí|d!k(  r5|dd dz   |dd z   }t        j                  d|«       tF        |   \  | _$        }|d&k(  rd'}d(|v r|j]                  d(d)«      }d*|v r|j]                  d*d)«      }|dk(  r | j
                  d+k(  r| j                  dk(  rd,}|| j
                  d-| j                   j^                  f}| jV                  ja                  tc        jd                  d.dd||fd|«      «       �nÖtf        | j                   v sth        | j                   v �r�tf        | j                   v r6| j                   tf           }| j                   j                  tj        |«      }|}n€| j                   th           }| j                   j                  tl        «      }| j                   j                  tn        «      }t        |t         «      rt        |t         «      sd/}t#        |«      ‚|}|D ]Á  }||z   |kD  r|tq        |«      z  d0z  }nd}|}| j                  d!k(  r
||   }||
z  }|t!        |«      df}| jV                  ja                  tc        jd                  | j
                  ||t7        ||z   |«      t7        ||z   |«      f||«      «       ||z   }||k\  sŒ¬d||z   }}||k\  sŒ¹dx}}|dz  }ŒÃ n"t        j                  d1«       d}tC        |«      ‚tr        | j                   v r | j                   tr           | jN                  d2<   | jL                  d3v rW| j                   tt           D �cg c]  }tw        |d4z  «      ‘Œ } }ty        jz                  d5d6j}                  | «      «      | _?        yy# tJ        $ r(}t        j                  d«       d}tC        |«      |‚d}~ww xY wc c}w )7z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r/   r.   z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %szInvalid dimensions)r,   r.   r0   r2   z
- size: %sr=   r>   )r&   r.   r2   r(   r,   r*   )r&   r.   z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelNzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %sÚcompressionr&   ÚdpigR¸…ëQ@Ú
resolutionr%   rB   úI;16Nz;16Bz;16Nz;16Lr1   rO   FrU  zInvalid tile dimensionsr2   z- unsupported data organizationÚicc_profile©r[   r]   r"   úRGB;Lrq   )@r  r·  ÚCOMPRESSION_INFOrÇ  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationÚPHOTOMETRIC_INTERPRETATIONÚ	FILLORDERrÉ  rÊ  ÚYCBCRSUBSAMPLINGÚ
IMAGEWIDTHÚIMAGELENGTHr�   rž   rd  r(  r   r4  rN  Ú_sizeré   ÚSAMPLEFORMATrc   r‰   r‡   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELÚerrorr  ro   Ú	OPEN_INFOÚ_moderÈ  r)  rU  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITr?  ÚREAD_LIBTIFFr@  rå   rÓ  rÚ  r   Ú_TilerØ  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILEÚCOLORMAPr   r   r%   rþ   Úpalette)!r’   r  ÚphotoÚ	fillorderÚxsizeÚysizeÚorientationÚsample_formatÚ	bps_tupleÚextra_tupleÚ	bps_countÚbps_actual_countÚsamples_per_pixelrP  Úrawmoder`  ÚxresÚyresÚresunitÚxÚyÚlayerr‘  Úoffsetsry  ÚwÚ	tilewidthrÓ  ÚstrideÚtile_rawmoder“   rx  rŠ  s!                                    rf   r1  zTiffImageFile._setupq  sÄ  € ð �T—[‘[Ñ Ø?ˆCÜ˜#“,Ðô -¨T¯[©[¯_©_¼[È!Ó-LÑMˆÔØ%)§[¡[§_¡_Ô5IÈ1Ó%MˆÔ"ð —‘—‘Ô :¸AÓ>ˆð ×Ñ Ò+ØˆEà—K‘K—O‘O¤I¨qÓ1ˆ	ä�‰Ð&Ô'Ü�‰Ð(¨$×*;Ñ*;Ô<Ü�‰Ð7¸Ô?Ü�‰Ð1°4×3MÑ3MÔNÜ�‰Ð'¨Ô3Ü�‰Ð.°·±·±Ô@PÓ0QÔRð —‘—‘¤
Ó+ˆØ—‘—‘¤Ó,ˆÜ˜%¤Ô%¬Z¸¼sÔ-CØ&ˆCÜ˜S“/Ð!Ø ˜,ˆŒØ—k‘k—o‘o¤h§m¡m×&?Ñ&?Ó@ˆØ˜,Ñ&Ø ˜ˆD�Jà ˜ˆDŒJä�‰�\ 4§9¡9Ô-àŸ™Ÿ™¬°dÓ;ˆÜˆ}Ó Ò!¤c¨-Ó&8¼CÀÓ<NÔ&SÐRSÕ&Sð !ˆMà—K‘K—O‘O¤M°4Ó8ˆ	Ø—k‘k—o‘o¤l°BÓ7ˆØ�IÑØ‰IØ�aŠZØ‰IàˆIØ”S˜Ó%Ñ%ˆ	Ü˜y›>ÐØ ŸK™KŸO™OÜØ×"Ñ" kÒ1°e¸v±o‰AÈ1ó
Ðð
 Ô2Ò2ä�L‰LØ@ÐBSôð 8ˆCÜ˜cÓ"Ð"àÐ/Ò/ð "Ð"4Ð#4Ð5‰IØÐ!1Ò1Ð6FÈ!Ò6Kð "Ð$5Ñ5ˆIäˆy‹>Ð.Ò.Ø-ˆCÜ˜cÓ"Ð"ð �K‰K×ÑØØØØØð
ˆô 	�‰Ð% sÔ+ð	*Ü"+¨C¡.ÑˆDŒJ˜ô 	�‰Ð% wÔ/Ü�‰Ð% t§y¡yÔ1à#'×#4Ñ#4ˆ�	‰	�-Ñ à�{‰{�‰œ|¨QÓ/ˆØ�{‰{�‰œ|¨QÓ/ˆá‘DØ—k‘k—o‘o¤oÓ6ˆGØ˜!Š|Ø$(¨$ <�—	‘	˜%Ò Ø˜A’Ø$(¨4¡K°¸±Ð#=�—	‘	˜%Ò Ø�Ø$(¨$ <�—	‘	˜%Ñ ð +/°¨*�—	‘	˜,Ò'à*.°¨*�—	‘	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ü ,Ò J°×0AÑ0AÀUÑ0JˆÔØ× Ò ð ˜AŠ~à˜"˜1�g ‘n s¨1¨2 wÑ.�Ü—‘Ð-¨sÔ3ô '0°¡nÑ#�”
˜Gð
 ˜&Ò Ø!�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�ð
 ˜’
Ø×%Ñ%¨Ò/Ø×.Ñ.°!Ò3à�ð ˜$×+Ñ+¨U°D·K±K×4FÑ4FÐGˆAØ�I‰I×ÑœYŸ_™_¨Y¸¸A¸uÀeÐ8LÈaÐQRÓSÖTä˜TŸ[™[Ñ(¬K¸4¿;¹;Ò,Fä˜tŸ{™{Ñ*ØŸ+™+¤lÑ3�Ø—K‘K—O‘O¤L°%Ó8�Ø‘ð Ÿ+™+¤kÑ2�Ø ŸK™KŸO™O¬IÓ6�	Ø—K‘K—O‘O¤JÓ/�Ü! )¬SÔ1¼ÀAÄsÔ9KØ3�CÜ$ S›/Ð)Ø�à!ò #�Ø�q‘5˜5’=Ø¤ Y£Ñ/°!Ñ3‘Fà�Fà&�Ø×-Ñ-°Ò2à#*¨5¡>�Là˜iÑ'�Fà$¤c¨&£k°1Ð5�Ø—	‘	× Ñ Ü—O‘OØ×)Ñ)Ø˜Aœs 1 q¡5¨%Ó0´#°a¸!±e¸UÓ2CÐDØØó	ôð ˜‘E�Ø˜“:Ø˜a !™e�q�AØ˜E“zØ !˜	˜˜AØ ™
™ñ7#ô: �L‰LÐ:Ô;Ø-ˆCÜ˜cÓ"Ð"ô ˜Ÿ™Ñ$Ø'+§{¡{´:Ñ'>ˆD�I‰I�mÑ$ð �9‰9˜Ñ#Ø-1¯[©[¼Ñ-BÖC¨”r˜!˜s™(•|ÐCˆGÐCÜ'×+Ñ+¨G°S·X±X¸gÓ5FÓGˆD�Lð $øôI ò 	*Ü�L‰LÐ/Ô0Ø&ˆCÜ˜cÓ"¨Ð)ûð	*üòJ Ds   Ïb ácâ	câ#b<â<cr   )r¸  úStrOrBytesPath | IO[bytes]r  zstr | bytes | Noner–   rÑ   rç  rÒ   )r*  rž   r–   rÑ   )r–   zdict[int, dict[str, bytes]])r–   zImage.core.PixelAccess | None)r×   rØ   rÙ   ÚformatÚformat_descriptionrI  r    r  rÜ   r#  rË  r  rÅ  r=  rÔ  rF  rQ  rA  r1  r  r  s   @rf   r  r  q  s…   ø„ Ø€FØ%ÐØ(-Ð%ð
 (,ð'à&ð'ð %ð'ð 
õ	'óð0 ò	ó ð	ó	ó.ó`óõ*ó
/ó7ó*T&÷ljHrq   r  r?   r@   rN   r[   r]   rE   rL   rB   rF   rI   rJ   rO   rR   rP   r^   ÚYCbCrra   rM   rD   rG   rK   )rG   rK   c                óÚ  — 	 t         | j                     \  }}}}}}t	        |¬«      }| j
                  }| j                  }	 |d   }|€d}n|dk(  rd}n|dk(  rd	}t        xs |dk7  }d
|t        <   | j                  d   |t        <   | j                  d
   |t        <   d|v r|d   }nCd|v r=|d   }t        |t         «      r*t#        j$                  «       }|j'                  |«       |}ni }t(        j+                  dt-        |«      «       t        |t.        «      r|j1                  «       }|D ]t  }t        |t"        j$                  «      r'|t2        j4                  v r|j7                  |«      ||<   n|j                  |«      ||<   	 |j8                  |   |j8                  |<   Œv i }t=        | d«      r| j>                  j1                  «       }i |¥tA        | di «      ¥}tB        tD        fD ]
  }||v sŒ||= Œ t=        | d«      r²tF        tH        tJ        tL        tN        tP        fD ]�  }|| jR                  v sŒ|tL        k(  r=| jR                  j8                  |   t2        jT                  t2        jV                  fvr||= ŒX| jR                  |   ||<   | jR                  j8                  |   |j8                  |<   Œ‘ |j                  d| j                  j                  d«      «      }|r	||tX        <   tZ        dftH        dftJ        dftH        dftJ        dftF        dft\        dft^        dft`        dftb        dff
D ]  \  }}||v sŒ||   ||<   Œ |j                  d«      }|r!d|tF        <   |d   |tH        <   |d
   |tJ        <   |dk7  r)||td        <   tg        |«      d
k7  rtg        |«      |th        <   |�	||tj        <   |d
k7  r	||tD        <   tl        |vr
||tl        <   nª| j                  dv rœ|tl           dk(  r�| j                  dk(  rl| jo                  «       }|j'                  «       }|�_tq        |jr                  «      D ]/  }tq        |jt                  «      D ]  }|||f   d k(  rdnd |||f<   Œ Œ1 |} ntw        jx                  | «      } | j                  d!v rs| jz                  j}                  d"d#«      }g }tg        |«      d$z  }tq        d$«      D ]0  } |||| z  || d
z   z   D �!cg c]  }!|!d%z  ‘Œ	 c}!z  }|dgd%|z
  z  z  }Œ2 ||t~        <   |t           |t           }#}"tg        |«      |"|d   z  d&z   d'z  z  }$t€        |vr[|rG|j                  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!t2        j†                  |j8                  tˆ        <   |'f|(d
z
  z  |$|#z  |'|(d
z
  z  z
  fz   |tˆ        <   t‹        tq        d|'|(z  |'«      «      |tŒ        <   tŽ        j                  |d
«      |t�        <   | j                  d*k(  r6t’        d+t”        d,ij—                  «       D ]  \  }})|j™                  ||)«       Œ tš        tœ        tž        t         g}*|�rPd-|v rG|d-   }+t        |+t        «      r
|+dk  s|+d.kD  rd/}
t£        |
«      ‚|dk7  rd0}
t£        |
«      ‚|+|t¤        <   t(        j+                  d1«       t(        j+                  d2t§        |j—                  «       «      «       d},t=        |d3«      r"	 |j©                  d«       |j«                  «       },i }-|*t°        t”        tˆ        tŒ        t²        t´        gz  }*td        |d   i}.t·        j¸                  |j—                  «       |j—                  «       «      D ]ò  \  }}/|t2        jº                  vr„tA        t"        j¼                  d4d5«      sŒ4||j8                  v r|j8                  |   |-|<   nGt        |/t        t¾        tÀ        t         f«      sŒvt3        jÂ                  |«      jÄ                  }0|0r|0|-|<   ||.vsŒ¡||*vsŒ¦t        |/tÀ        «      r|/jÇ                  d6d7«      d8z   |.|<   ŒÏt        |/tÈ        «      rt¿        |/«      |.|<   Œî|/|.|<   Œô tD        |.v r(tg        |.tD           «      d
k(  r|.tD           d   |.tD        <   t(        j+                  d9t§        |.j—                  «       «      «       | j                  d:v rd;}t-        |.j—                  «       «      }1|1jË                  «        |||,||1|-f}2t#        jÌ                  | j                  d<|2|«      }3|3jÏ                  | jz                  d=| j                  z   «       	 |3jÇ                  tÐ        jÒ                  «      d
d  \  }4}5|,s|jÕ                  |5«       |4rnŒ<|4dk  rjd>|4› d?�}
t        |
«      ‚|*D ]  }||= Œ |j×                  |«      }6tÑ        jØ                  | |tÑ        jÚ                  dd=| j                  z   |6||$d
f«      g«       d@|v rtÝ        | d@|«       y y # t        $ r!}	d| j                  › d�}
t        |
«      |	‚d }	~	ww xY w# t        $ r1 | j                  j                  d«      }t        |t        «      rd }Y �
Œtw xY w# t:        $ r Y �	Œ w xY wc c}!w # t¬        j®                  $ r Y �Œ”w xY w)ANzcannot write mode z as TIFFrn   rd  r%   r/   r1   r7   r3   r   r   ÚtiffinforO  zTiffinfo Keys: %sr6  r  rh  Údescriptionrf  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightre  r&   r=   )r?   r@   r?   r!   ri  rO   rj  r(   r"   r0   r2   Ú
strip_sizer    r¥  )r   r   )r   r!   é€   r!   r±  r!   Úqualityéd   zInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %srS  rj   FrR  rå   r†  zConverted items: %s)rD   rB   rg  rU  rS   zencoder error z when writing image fileÚ_debug_multipage)oÚ	SAVE_INFOr)  rÈ  r·  rÞ   ÚencoderinfoÚencoderconfigrU  rÇ  r�   rž   ÚWRITE_LIBTIFFrn  ré   rs  rt  r  r   ÚExifrÔ  rÉ  rÊ  rð  rø  r  r   rK  rL  r  r#  rÝ   r6  r�   ÚEXIFIFDrv  r€  r~  r  ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKr/  r  ra  rW  rˆ  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTrw  rc   ry  rx  rp  ÚcopyrÆ  ÚheightÚwidthr   Úinvertr'  Ú
getpaletter‰  r„  Ú
STRIP_SIZEr‡   r]  ÚSTRIPBYTECOUNTSrˆ   rØ  ÚCOMPRESSION_INFO_REVrl  rr  ÚREFERENCEBLACKWHITEr-  Ú
setdefaultr…  r†  rƒ  ÚTILEBYTECOUNTSrd  ÚJPEGQUALITYr×  rË  rS  ÚioÚUnsupportedOperationÚOSUBFILETYPEÚTRANSFERFUNCTIONÚSUBIFDÚ	itertoolsÚchainÚLIBTIFF_CORErD  ru   r©   r.  rV  rb  rv   ÚsortÚ_getencoderrY  r   ÚMAXBLOCKrä  rå  Ú_saver‚  Úsetattr)7r'  r¸  r  r–  ro   r‹  r£  ÚbitsÚextrar`  r  rÖ  r¶  r·  rd  rU  rU  rO  rP  Ú
legacy_ifdÚsupplied_tagsr6  Úiccr  re  Úinverted_imÚpxr›  rš  ÚlutÚcolormapÚcolorsr‚   rD  rž  ry  r   Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imageÚdefault_valueÚ	blocklistr²  r  ÚtypesÚattsrŸ   rV  r  r‘  ÚencoderÚerrcoderö   rÓ  s7                                                          rf   rÙ  rÙ  ~  sú
  € ð"Ü6?ÀÇÁÑ6HÑ3ˆ�˜ ¨¨eô
   vÔ
.€Cà—.‘.€KØ×$Ñ$€MðØ! -Ñ0ˆð ÐØ‰Ø	˜Ò	#à‰Ø	˜Ò	&Ø*ˆäÒ3˜{¨eÑ3€Gð !"€CÔÑà—g‘g˜a‘j€CŒ
�OØ—w‘w˜q‘z€CŒÑð �[Ñ Ø˜:Ñ&‰Ø	�;Ñ	Ø˜6Ñ"ˆÜ�dœEÔ"Ü—:‘:“<ˆDØ�I‰I�dŒOØ‰DàˆÜ
‡L�LÐ$¤d¨4£jÔ1Ü�$Ô-Ô.Ø�z‰z‹|ˆØò ˆÜ�dœEŸJ™JÔ'¨C´8×3JÑ3JÑ,JØ—|‘| CÓ(ˆC�ŠHà—x‘x “}ˆC�‰Hð	Ø#Ÿ|™|¨CÑ0ˆC�K‰K˜Òðð €JÜˆr�5ÔØ—V‘V—\‘\“^ˆ
à?�zÐ?¤W¨R°¸2Ó%>Ð?€Mô 	äð	ò #ˆð �-ÒØ˜cÑ"ð#ô ˆr�8Ôô ÜÜÜÜÜð
ò 	>ˆCð �b—i‘iÒØœ.Ò(¨R¯Y©Y×->Ñ->¸sÑ-CÜ—M‘MÜ×&Ñ&ðLñ .ð & cÑ*à!Ÿy™y¨™~�C˜‘HØ')§y¡y×'8Ñ'8¸Ñ'=�C—K‘K Ò$ð!	>ð( �/‰/˜-¨¯©¯©°]Ó)CÓ
D€CÙ
ØˆŒJ‰ô 
˜=Ð)Ü	�|Ð$Ü	�|Ð$Ü	�~Ð&Ü	�~Ð&Ü	Ð+Ð,Ü	�:ÐÜ	�KÐ Ü	�ÐÜ	�KÐ ðò )‰	ˆˆTð �;ÒØ" 4Ñ(ˆC�ŠHð)ð �/‰/˜%Ó
 €CÙ
Ø ˆŒOÑØ ™FˆŒLÑØ ™FˆŒLÑàˆt‚|Ø!ˆŒMÑÜˆt‹9˜Š>Ü#& t£9ˆC”Ñ ØÐØ!ˆŒLÑØ�‚{Ø"ˆŒLÑä!¨Ñ,Ø*/ˆÔ&Ò'Ø	�‰�JÑ	 3Ô'AÑ#BÀaÒ#GØ�7‰7�cŠ>ØŸ'™'›)ˆKØ×!Ñ!Ó#ˆBØˆ~Ü˜{×1Ñ1Ó2ò A�AÜ" ;×#4Ñ#4Ó5ò A˜Ø(*¨1¨a¨4©°Cª¡1¸S˜˜1˜a˜4šñAðAð !‘ä—‘ Ó$ˆBà	‡w�w�+ÑØ�e‰e×Ñ˜u gÓ.ˆØˆÜ�S“˜Q‘ˆÜ�q“ò 	-ˆAØ¨#¨f°q©j¸6ÀQÈÁUÑ;KÐ*LÖM Q˜˜S›ÒMÑMˆHØ˜˜˜s V™|Ñ,Ñ,‰Hð	-ð !ˆŒH‰àŒz‰?˜C¤Ñ,€q€AÜ�‹Y˜1˜t A™w™;¨™?¨qÑ0Ñ1€FÜ˜3ÑáØ'ŸO™O¨L¼*ÓEˆMØ"(¨A¢+™Q´3°}ÈÑ7NÐPQÓ3RˆNà˜fÒ$Ü!$ ~¸Ñ'9¸aÑ&?À1Ñ%DÀaÓ!H‘àˆNØ˜QÒØˆNØ*ˆŒLÑØ# qš[™¨f°s¼<Ñ7HÑ.HÐØ˜C¤Ñ-Ñ-°Ñ1°c¼,Ñ6GÑGÐØ˜EÒ!Ü'/§}¡}ˆ�‰”OÑ$Ø-Ð/Ð3CÀaÑ3GÑHØ�‰
Ð&Ð*:¸QÑ*>Ñ?Ñ?ðLñ €CŒÑô ÜˆaÐ"Ð%5Ñ5Ð7HÓIó€CŒÑô ,×/Ñ/°¸QÓ?€CŒÑà	‡w�w�'Òä˜fÜÐ!=ð#
÷ ‰%‹'ò	/ÑˆC�ð �N‰N˜3 Õ.ð		/ô œJ¬´^ÐD€IÚØ˜Ñ#Ø! )Ñ,ˆGÜ˜g¤sÔ+¨w¸ª{¸gÈºmØ/�Ü  “oÐ%Ø˜fÒ$ØM�Ü  “oÐ%Ø&ˆC”Ñä�‰Ð3Ô4Ü�‰�[¤&¨¯©«Ó"5Ô6ØˆÜ�2�xÔ ðØ—‘˜”
Ø—i‘i“k�ð
 ˆð 	ÜÜÜÜÜÜð
ñ 	
ˆ	ô !.¨t°A©wÐ7ˆô $Ÿ/™/¨#¯)©)«+°}×7JÑ7JÓ7LÓMò 	&‰JˆC�ð
 œ(×/Ñ/Ñ/ÜœuŸz™zÐ+HÈ%ÔPØà˜#Ÿ+™+Ñ%Ø!$§¡¨SÑ!1�E˜#’JÜ$ U¬S´%¼¼eÐ,DÔEØä#Ÿ?™?¨3Ó/×4Ñ4�DÙØ%)˜˜c™
Ø˜$Š 3¨iÒ#7Ü˜e¤SÔ)Ø %§¡¨W°iÓ @À5Ñ H�D˜’IÜ ¤{Ô3Ü % e£�D˜’Ià %�D˜’Ið/	&ô2 ˜4Ñ¤C¨¬\Ñ(:Ó$;¸qÒ$@Ø!%¤lÑ!3°AÑ!6ˆD”Ñä�‰Ð*¬F°4·:±:³<Ó,@ÔAð �7‰7Ð'Ñ'ØˆGô
 �D—J‘J“LÓ!ˆØ�	‰	ŒØ�k 3¨°$¸Ð>ˆÜ×#Ñ# B§G¡G¨Y¸¸=ÓIˆØ×Ñ˜Ÿ™ ¨¯©Ñ 0Ô1ØØ#ŸN™N¬9×+=Ñ+=Ó>¸q¸rÐB‰MˆG�TÙØ—‘˜”ÙØð ð �QŠ;Ø" 7 )Ð+CÐDˆCÜ˜#“,Ðð ò 	ˆCØ�C‘ð	à—‘˜"“ˆä�‰ØØÜ�_‰_˜U F¨R¯W©WÑ$4°f¸wÈÐPQÐ>RÓSÐTô	
ð ˜[Ñ(ä�Ð&¨Õ,ð )øôS	 ò "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"ûô ò Ø—g‘g—k‘k -Ó0ˆÜ�k¤3Ô'àˆKúð	ûôT ò 	Úð	üò| Nøôt ×*Ñ*ò ÚðúsS   ‚i Áj Æj>ÓkÜ4!k é	i>éi9é9i>ê6j;ê:j;ê>	kë
këk*ë)k*c                  ó*  — e Zd Zg d¢Zh d£Zdd d„Zd!d„Zd!d„Zd!d„Zd"d„Z	d#d„Z
d$d	„Zej                  fd%d
„Zd!d„Zd&d„Zd!d„Zd'd„Zd(d„Zd)d„Zd$d„Z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d!d„Zd!d„Z d-d„Z!	 d.	 	 	 	 	 	 	 d/d„Z"y)0ÚAppendingTiffWriter)r   r   r   r&   r*   r2   r   r   r&   r*   r2   r*   r2   r*   r&   r*   r2   >   é  é  é	  é   r#   r$   c                óL  — |  t        |«      r%|| _        d| _        	 t        ||rdnd«      | _        n#t        t        t           |«      | _        d| _        | j                  j                  «       | _
        | j                  «        y # t
        $ r t        |d«      | _        Y ŒLw xY w)NTzw+bzr+bF)r   r  Úclose_fpÚopenr§   r·  r   r	   r  rÅ  Ú	beginningÚsetup)r’   ÚfnrE  s      rf   r    zAppendingTiffWriter.__init__Í  s„   € ÙÜ�2Œ;ØˆDŒIØ ˆDŒMð)Ü˜b©3¡%°EÓ:�•ô œ"œU™) RÓ(ˆDŒFØ!ˆDŒMØŸ™Ÿ™›ˆŒØ�
‰
�øô ò )Ü˜b %›�–ð)ús   �B ÂB#Â"B#c                ó¤  — | j                   j                  | j                  t        j                  «       d | _        d| _        | j                   j                  d«      x| _        }|sd| _	        y d| _	        |dk(  r| j                  d«       n$|dk(  r| j                  d«       nd	}t        |«      ‚| j                  «        | j                  «        y )
Nr   r*   TFri   r  rh   r  zInvalid TIFF file header)r§   rË  rø  ÚosÚSEEK_SETÚwhereToWriteNewIFDOffsetÚoffsetOfNewPager¶  ÚIIMMÚisFirstÚ	setEndianÚRuntimeErrorÚskipIFDsÚgoToEnd)r’   Úiimmr  s      rf   rù  zAppendingTiffWriter.setupÜ  s¢   € à�‰�‰�D—N‘N¤B§K¡KÔ0à48ˆÔ%Ø ˆÔàŸ6™6Ÿ;™; q›>Ð)ˆŒ	�DÙàˆDŒLØàˆŒØ�=Ò Ø�N‰N˜3ÕØ�]Ò"Ø�N‰N˜3Õà,ˆCÜ˜sÓ#Ð#à�‰ŒØ�‰�rq   c                óø  — | j                   ry | j                  j                  | j                  «       | j                  j	                  d«      }|sy || j
                  k7  rd}t        |«      ‚| j                  «       }|| j                  z  }| j                  €J ‚| j                  j                  | j                  «       | j                  |«       | j                  j                  |«       | j                  «        y )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       rf   ÚfinalizezAppendingTiffWriter.finalizeõ  s¿   € Ø�<Š<Øð 	�‰�‰�D×(Ñ(Ô)à�v‰v�{‰{˜1‹~ˆÙàà�4—9‘9ÒØEˆCÜ˜sÓ#Ð#à—]‘]“_ˆ
Ø�d×*Ñ*Ñ*ˆ
Ø×,Ñ,Ð8Ð8Ð8Ø�‰�‰�D×1Ñ1Ô2Ø�‰�zÔ"Ø�‰�‰�JÔØ�‰�rq   c                óD   — | j                  «        | j                  «        y r   )r  rù  r¢   s    rf   ÚnewFramezAppendingTiffWriter.newFrame  s   € à�‰ŒØ�
‰
�rq   c                ó   — | S r   r>   r¢   s    rf   Ú	__enter__zAppendingTiffWriter.__enter__  s   € Øˆrq   c                ó>   — | j                   r| j                  «        y y r   )rö  r\  )r’   r“   s     rf   Ú__exit__zAppendingTiffWriter.__exit__  s   € Ø�=Š=Ø�J‰J�Lð rq   c                óP   — | j                   j                  «       | j                  z
  S r   )r§   rÅ  rÿ  r¢   s    rf   rÅ  zAppendingTiffWriter.tell  s   € Ø�v‰v�{‰{‹}˜t×3Ñ3Ñ3Ð3rq   c                óž   — |t         j                  k(  r|| j                  z  }| j                  j	                  ||«       | 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.
        )rü  rý  rÿ  r§   rË  rÅ  )r’   rÓ  Úwhences      rf   rË  zAppendingTiffWriter.seek  s>   € ð ”R—[‘[Ò Ø�d×*Ñ*Ñ*ˆFà�‰�‰�F˜FÔ#Ø�y‰y‹{Ðrq   c                ó>  — | j                   j                  dt        j                  «       | j                   j	                  «       }d|dz  z
  }d|cxk  rdk  r'n n$| j                   j                  t        |«      «       | j                   j	                  «       | _        y )Nr   rC   )r§   rË  rü  ÚSEEK_ENDrÅ  rä  r  rÿ  )r’   ÚposÚ	pad_bytess      rf   r  zAppendingTiffWriter.goToEnd)  sj   € Ø�‰�‰�A”r—{‘{Ô#Ø�f‰f�k‰k‹mˆð ˜˜r™‘Mˆ	ØˆyÔ˜2ÕØ�F‰F�L‰Lœ˜yÓ)Ô*Ø#Ÿv™vŸ{™{›}ˆÕrq   c                óŠ   — || _         | j                   › d�| _        | j                   › d�| _        | j                   › d�| _        y )Nr@   ru  ÚHHL)ÚendianÚlongFmtÚshortFmtÚ	tagFormat)r’   r  s     rf   r  zAppendingTiffWriter.setEndian3  s?   € ØˆŒØŸ+™+˜ aÐ(ˆŒØŸ;™;˜- qÐ)ˆŒØ ŸK™K˜=¨Ð,ˆ�rq   c                ó&  — 	 | j                  «       }|dk(  r#| j                  j                  «       dz
  | _        y | j                  j	                  |«       | j                  «       }| j                  j	                  |dz  t        j                  «       Œ‘)Nr   r*   rA   )r  r§   rÅ  rþ  rË  Ú	readShortrü  ÚSEEK_CUR)r’   r  Únum_tagss      rf   r  zAppendingTiffWriter.skipIFDs9  sl   € ØØŸ™›ˆJØ˜QŠØ04·±·±³ÀÑ0A�Ô-Øà�F‰F�K‰K˜
Ô#Ø—~‘~Ó'ˆHØ�F‰F�K‰K˜ 2™¤r§{¡{Ô3ð rq   c               ó8   — | j                   j                  |«      S r   )r§   rä  rƒ  s     rf   rä  zAppendingTiffWriter.writeD  s   € Ø�v‰v�|‰|˜DÓ!Ð!rq   c                óJ   — 	 ddddœ|   S # t         $ r d}t        |«      ‚w xY w)Nru  r@   r  )r&   r*   r2   zoffset is not supported)rÈ  r  )r’   Ú
field_sizer  s      rf   Ú_fmtzAppendingTiffWriter._fmtG  s8   € ð	$Ø˜s sÑ+¨JÑ7Ð7øÜò 	$Ø+ˆCÜ˜sÓ#Ð#ð	$ús   ‚ ‹"c                ó    — t        j                  | j                  | j                  |«      z   | j                  j                  |«      «      \  }|S r   )r  rr  r  r'  r§   r¶  )r’   r&  rŸ   s      rf   Ú_readzAppendingTiffWriter._readN  s=   € Ü—=‘=Ø�K‰K˜$Ÿ)™) JÓ/Ñ/°·±·±¸ZÓ1Hó
‰ˆð ˆrq   c                ó$   — | j                  d«      S ©Nr&   ©r)  r¢   s    rf   r!  zAppendingTiffWriter.readShortT  ó   € Ø�z‰z˜!‹}Ðrq   c                ó$   — | j                  d«      S rl   r,  r¢   s    rf   r  zAppendingTiffWriter.readLongW  r-  rq   c                ó:   — | �| |k7  rd| › d|› �}t        |«      ‚y y )Nzwrote only z bytes but wanted )r  )Úbytes_writtenÚexpectedr  s      rf   Ú_verify_bytes_writtenz)AppendingTiffWriter._verify_bytes_writtenZ  s6   € àÐ$¨¸(Ò)BØ ˜Ð.@ÀÀ
ÐKˆCÜ˜sÓ#Ð#ð *CÐ$rq   c                óî   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }| j                  |d«       y )Néþÿÿÿr*   )	r§   rË  rü  r"  rä  r  rt  r  r2  ©r’   rŸ   r0  s      rf   ÚrewriteLastShortToLongz*AppendingTiffWriter.rewriteLastShortToLong`  sI   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØ×"Ñ" =°!Õ4rq   c                ó  — | j                   j                  | t        j                  «       | j                   j	                  t        j                  | j                  | j                  |«      z   |«      «      }| j                  ||«       y r   )
r§   rË  rü  r"  rä  r  rt  r  r'  r2  )r’   rŸ   r&  r0  s       rf   Ú_rewriteLastz AppendingTiffWriter._rewriteLaste  s^   € Ø�‰�‰�Z�K¤§¡Ô-ØŸ™Ÿ™Ü�K‰K˜Ÿ™ d§i¡i°
Ó&;Ñ;¸UÓCó
ˆð 	×"Ñ" =°*Õ=rq   c                ó&   — | j                  |d«      S r+  ©r8  r‹  s     rf   ÚrewriteLastShortz$AppendingTiffWriter.rewriteLastShortl  ó   € Ø× Ñ  ¨Ó*Ð*rq   c                ó&   — | j                  |d«      S rl   r:  r‹  s     rf   ÚrewriteLastLongz#AppendingTiffWriter.rewriteLastLongo  r<  rq   c                óš   — | j                   j                  t        j                  | j                  |«      «      }| j                  |d«       y r+  )r§   rä  r  rt  r  r2  r5  s      rf   Ú
writeShortzAppendingTiffWriter.writeShortr  s3   € ØŸ™Ÿ™¤V§[¡[°·±ÀÓ%FÓGˆØ×"Ñ" =°!Õ4rq   c                óš   — | j                   j                  t        j                  | j                  |«      «      }| j                  |d«       y rl   )r§   rä  r  rt  r  r2  r5  s      rf   r	  zAppendingTiffWriter.writeLongv  s3   € ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØ×"Ñ" =°!Õ4rq   c                ór   — | j                  «        | j                  r| j                  j                  «        y y r   )r  rö  r§   r\  r¢   s    rf   r\  zAppendingTiffWriter.closez  s$   € Ø�‰ŒØ�=Š=Ø�F‰F�L‰L�Nð rq   c                óú  — | j                  «       }t        |«      D �]\  }t        j                  | j                  | j
                  j                  d«      «      \  }}}| j                  |   }||z  }|dk  }|s.| j                  «       | j                  z   }	| j                  |	«       || j                  v r—| j
                  j                  «       }
|r1| j                  ||«       | j
                  j                  |
dz   «       Œå| j
                  j                  	«       | j                  ||«       | j
                  j                  |
«       �Œ/|s�Œ3| j
                  j                  dt        j                   «       �Œ_ y )Nr2   r*   )r!  rÆ  r  rr  r  r§   r¶  Ú
fieldSizesr  rÿ  r>  ÚTagsrÅ  Ú_fixOffsetsrË  rü  r"  )r’   r#  r‚   r6  Ú
field_typerÎ  r&  Ú
total_sizeÚis_localrÓ  Úcur_poss              rf   r
  zAppendingTiffWriter.fixIFD  s  € Ø—>‘>Ó#ˆä�x“ó 	,ˆAÜ%+§]¡]°4·>±>À4Ç6Á6Ç;Á;ÈqÃ>Ó%RÑ"ˆC�˜UàŸ™¨Ñ4ˆJØ# eÑ+ˆJØ! Q‘ˆHÙØŸ™›¨4×+?Ñ+?Ñ?�Ø×$Ñ$ VÔ,à�d—i‘iÑØŸ&™&Ÿ+™+›-�áØ×$Ñ$ U¨JÔ7Ø—F‘F—K‘K ¨!¡Õ,à—F‘F—K‘K Ô'Ø×$Ñ$ U¨JÔ7Ø—F‘F—K‘K Ö(ãà—‘—‘˜AœrŸ{™{Ö+ñ/	,rq   c                óÊ  — t        |«      D ]Õ  }| j                  |«      }|| j                  z  }|dk(  rœ|dk\  r—|dk7  rd}t        |«      ‚| j	                  |«       | j
                  j                  dt        j                  «       | j                  t        j                  «       | j
                  j                  dt        j                  «       ŒÄ| j                  ||«       Œ× y )Nr&   r    r   znot implementediöÿÿÿr2   )rÆ  r)  rÿ  r  r6  r§   rË  rü  r"  r@  r   r]  r8  )r’   rÎ  r&  r‚   rÓ  r  s         rf   rF  zAppendingTiffWriter._fixOffsets›  s³   € Ü�u“ò 	6ˆAØ—Z‘Z 
Ó+ˆFØ�d×*Ñ*Ñ*ˆFØ˜QŠ 6¨U¢?à˜A’:Ø+�CÜ& sÓ+Ð+ð ×+Ñ+¨FÔ3Ø—‘—‘˜C¤§¡Ô-Ø—‘¤§¡Ô.Ø—‘—‘˜AœrŸ{™{Õ+à×!Ñ! &¨*Õ5ñ!	6rq   c                ó>   — |rd}n|rd}nd}| j                  ||«      S )Nr&   r*   r   )rF  )r’   rÎ  ÚisShortÚisLongr&  s        rf   Ú
fixOffsetszAppendingTiffWriter.fixOffsets®  s,   € ñ Ø‰JÙØ‰JàˆJØ×Ñ  zÓ2Ð2rq   N)F)rú  r¢  rE  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ž   )r0  ræ  r1  rž   r–   rÑ   )rŸ   rž   r–   rÑ   )rŸ   rž   r&  rž   r–   rÑ   )rÎ  rž   r&  rž   r–   rÑ   )FF)rÎ  rž   rM  rÕ   rN  rÕ   r–   rÑ   )#r×   rØ   rÙ   rD  rE  r    rù  r  r  r  r  rÅ  rÎ  rý  rË  r  r  r  rä  r'  r)  r!  r  Ústaticmethodr2  r6  r8  r;  r>  r@  r	  r\  r
  rF  rO  r>   rq   rf   rð  rð  ¯  sÖ   „ ò€Jò(€Dôóó2ó0ó
óó4ð /1¯k©kô ó-ó-ó	4ó"ó$óóóð ò$ó ð$ó
5ó
>ó+ó+ó5ó5óó
,ó86ð( AFð	3Øð	3Ø#'ð	3Ø9=ð	3à	ô	3rq   rð  c                ór  — | j                   j                  «       }| j                  }t        |j	                  dg «      «      }t        | d«      s|st        | ||«      S | j                  «       }	 t        |«      5 }| g|z   D ]y  }||_         ||_        t        |d«      sd}	n|j                  }	t        |	«      D ]@  }
|j                  |
«       |j                  «        t        |||«       |j                  «        ŒB Œ{ 	 d d d «       | j                  |«       y # 1 sw Y   ŒxY w# | j                  |«       w xY w)NÚappend_imagesr#  r   )r¶  rÂ  r·  rð  rÇ  rÝ   rÙ  rÅ  rð  r#  rÆ  rË  rÔ  r  )r'  r¸  r  r¶  r·  rR  Úcur_idxÚtfÚimsÚnfrrè   s              rf   Ú	_save_allrW  º  s  € Ø—.‘.×%Ñ%Ó'€KØ×$Ñ$€MÜ˜Ÿ™¨¸"Ó=Ó>€MÜ�2�zÔ"©=Ü�R˜˜XÓ&Ð&à�g‰g‹i€GðÜ  Ó$ð 	"¨Ø�t˜mÑ+ò "�Ø"-�”Ø$1�Ô!Ü˜s JÔ/Ø‘CàŸ,™,�Cä  ›:ò "�CØ—H‘H˜S”MØ—H‘H”JÜ˜#˜r 8Ô,Ø—K‘K•Mñ	"ñ"÷	"ð 	�‰�Õ÷	"ð 	"ûð 	�‰�Õús%   Á.D# Á9BDÃ=D# ÄD ÄD# Ä#D6z.tifz.tiffz
image/tiff)ro   r  r–   rÕ   )rx   rÐ   ry   rž   r–   ú!tuple[IntegralLike, IntegralLike])rx   rv   ry   rž   rŠ   rž   r–   rX  )r”   r©   r–   r   )rè   rž   ré   rž   r–   z$Callable[[_LoaderFunc], _LoaderFunc])rè   rž   r–   z2Callable[[Callable[..., Any]], Callable[..., Any]])r  ztuple[int, str, str]r–   rÑ   )r'  zImage.Imager¸  rí  r  zstr | bytesr–   rÑ   )ŠÚ
__future__r   rÎ  rÓ  Úloggingr7  rü  r  re  Úcollections.abcr   r   Ú	fractionsr   Únumbersr   r   Útypingr	   r
   r   r   r   r   Ú r   r   r   r   r   r   Ú_binaryr   r6  r   r9  r   Ú
_deprecater   Ú_typingr   Ú_utilr   r   r   r   Ú	getLoggerr×   rÉ  r�  r¸  rÇ  r  r  rÐ  rs  rt  rw  rl  rp  rq  r½  rØ  ry  r„  rÈ  r~  r  rn  r€  rÑ  r¾  r¿  rÀ  Ú	PREDICTORr‰  r…  r†  rƒ  rÌ  rÒ  rx  rv  Ú
JPEGTABLESrr  rÊ  rÁ  r»  r¼  rˆ  rº  r/  rÍ  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATArk  r-  rÉ  r|  r‰   rz  rm   r�   rD  rp   r|   r�   ræ   rï   r—   rv   r  rÕ   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_mime)ÚkrD  s   00rf   ú<module>rr     s}  ðõR #ã 	Û Û Û Û 	Û Û ß 4Ý ß $ß C× Cç J× JÝ !Ý !Ý Ý !Ý #Ý Ý áß-à	ˆ×	Ñ	˜8Ó	$€ð €Ø€Ø€
à
€Ø
€ð €Ø€
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* *:×)?Ñ)?Ó)A×B¡  A˜˜1™ÓBÐ ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð	|ð
 ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð 
ð|ð ˆˆD�!�T˜2Ð 
ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð ˆˆD�!�T˜2Ð ð|ð  ˆˆD�!�T˜2Ð ð!|ð" ˆˆD�!�T˜2Ð ð#|ð$ ˆˆD�!�T˜2Ð ð%|ð& ˆˆD�!�T˜2Ð ñ'|ð( ˆˆD�!�T˜2Ð ð)|ð* ˆˆD�!�T˜2Ð ð+|ð, ˆˆD�!�T˜2Ð ð-|ð. ˆˆD�!�T˜2Ð ð/|ð0 ˆˆD�!�T˜2Ð ð1|ð2 ˆˆD�!�T˜2Ð ð3|ð4 ˆˆD�!�T˜2Ð ð5|ð6 ˆˆD�!�T˜2Ð ð7|ð8 ˆˆD�!�T˜2Ð ð9|ð: ˆˆD�!�T˜2Ð ð;|ð< ˆˆD�!�T˜2Ð ð=|ð> ˆˆD�!�T˜2Ð 
ð?|ð@ ˆˆD�!�T˜2Ð 
ðA|ðB ˆˆD�!�T˜2Ð 
ðC|ðD ˆˆD�!�T˜2Ð 
ðE|ðF ˆˆD�!�T˜2Ð ðG|ðH ˆˆD�!�T˜2Ð òI|ðJ ˆˆD�!�U˜BÐÐ!1ðK|ðL ˆˆD�!�U˜BÐÐ!1ðM|ðN ˆˆD�!�U˜BÐÐ!1ðO|ðP ˆˆD�!�U˜BÐÐ!3ðQ|ðR ˆˆD�!�U˜BÐÐ!2ðS|ðT ˆˆD�!�U˜BÐ ðU|ðV ˆˆD�!�U˜BÐ ðW|ðX ˆˆD�!�U˜BÐ ðY|ðZ ˆˆD�!�U˜BÐ ð[|ð\ ˆˆD�!�U˜BÐ ð]|ð^ ˆˆD�!�U˜BÐ ð_|ð` ˆˆD�!�U˜BÐ ða|ðb ˆˆD�!�U˜BÐ ðc|ðd ˆˆD�!�U˜BÐ ðe|ðf ˆˆD�!�V˜TÐ" Lðg|ðh ˆˆD�!�V˜TÐ" Lði|ðj ˆˆD�!�Y Ð# ^òk|ðl ˆˆD�!�Y Ð# ^ðm|ðn ˆˆD�!�Y Ð#Ð%5ðo|ðp ˆˆD�!�Y Ð#Ð%5ðq|ðr ˆˆD�!�\ 2Ð&Ð(8ðs|ðt ˆˆD�!�\ 2Ð&Ð(8ðu|ðv ˆˆD�!�\ 4Ð(¨/ðw|ðx ˆˆD�!�\ 4Ð(¨/ðy|ðz ˆˆD�!�_ fÐ-Ð/?ð{|ð| ˆˆD�!�_ fÐ-Ð/?ð}|ð~ ˆˆD�!Ð'¨Ð3Ð5Fð|ð@ ˆˆD�!Ð'¨Ð3Ð5FðA|ðB ˆˆD�!�\ 4Ð(Ð*:ðC|ðD ˆˆD�!�\ 4Ð(Ð*:ðE|ðF ˆˆD�!�_ fÐ-Ð/@ðG|ðH ˆˆD�!�_ fÐ-Ð/@ðI|ðJ ˆˆD�!Ð'¨Ð3Ð5GðK|ðL ˆˆD�!Ð'¨Ð3Ð5GòM|ðN ˆˆD�!�\ 4Ð(Ð*:ðO|ðP ˆˆD�!�\ 4Ð(Ð*:ðQ|ðR ˆˆD�!�_ fÐ-Ð/@ðS|ðT ˆˆD�!�_ fÐ-Ð/@ðU|ðV ˆˆD�!Ð'¨Ð3Ð5GðW|ðX ˆˆD�!Ð'¨Ð3Ð5GðY|ðZ ˆˆD�!�\ 6Ð*Ð,<ð[|ð\ ˆˆD�!�\ 6Ð*Ð,<ð]|ð^ ˆˆD�!�\ 2Ð&Ð(:ð_|ð` ˆˆD�!�\ 2Ð&Ð(:ða|ðb ˆˆD�!Ð% rÐ*Ð,@ðc|ðd ˆˆD�!Ð% rÐ*Ð,@ðe|ðf ˆˆD�!Ð% tÐ,Ð.Aðg|ðh ˆˆD�!Ð% tÐ,Ð.Aði|ðj ˆˆD�!Ð% tÐ,Ð.Bðk|ðl ˆˆD�!Ð% tÐ,Ð.Bðm|ðn ˆˆD�!Ð% tÐ,Ð.Bòo|ðp ˆˆD�!Ð% tÐ,Ð.Bðq|ðr ˆˆD�!�T˜2Ð ðs|ðt ˆˆD�!�T˜2Ð ðu|ðv ˆˆD�!�T˜2Ð ðw|ðx ˆˆD�!�T˜2Ð ðy|ðz ˆˆD�!�T˜2Ð ð{|ð| ˆˆD�!�T˜2Ð ð}|ð~ ˆˆD�!�T˜2Ð ð|ð@ ˆˆD�!�T˜2Ð ðA|ðB ˆˆD�!�T˜2Ð ðC|ðD ˆˆD�!�T˜2Ð ðE|ðF ˆˆD�!�T˜2Ð ðG|ðH ˆˆD�!�T˜2Ð ðI|ðJ ˆˆD�!�T˜2Ð 
ðK|ðL ˆˆD�!�T˜2Ð 
ðM|ðN ˆˆD�!�V˜TÐ" KðO|ðP ˆˆD�!�V˜TÐ" LòQ|ðR ˆˆD�!�V˜TÐ" LðS|ðT ˆˆD�!�T˜2Ð ðU|ðV ˆˆD�!�T˜2Ð ðW|ðX ˆˆD�!�\ 2Ð&Ð(8ðY|ðZ ˆˆD�!�\ 2Ð&Ð(8ð[|ð\ ˆˆD�!�_ dÐ+Ð->ð]|ð^ ˆˆD�!�_ dÐ+Ð->ð_|ð` ˆˆD�!Ð'¨Ð0Ð2Dða|ðb ˆˆD�!Ð'¨Ð0Ð2Dðc|ðd ˆˆD�!Ð% rÐ*Ð,@ðe|ðf ˆˆD�!Ð% rÐ*Ð,@ðg|ðh ˆˆD�!�T˜2Ð 
ði|ðj ˆˆD�!�T˜2Ð 
ðk|ðp ˆˆD�!�Y Ð# _ðq|ðr ˆˆD�!�Y Ð# _ðs|ðt ˆˆD�!�Y Ð# ^ðu|ðv ˆˆD�!�Y Ð# ^ñw|€	ñ| ÑA°yÔAÓAÐ ò€ñ ˆu�z‰zÐ8¸$Ô?ÙÐ:¸BÔ?ó"ð%Ø	'ð%Ø25ð%à&ó%ðØ	ðØ"ðØ-0ðà&óð& €Ø€óôG'�(ô G'ðT Ð/°¸Ð=¸sÐBÑC€ó	óóñ$ Ø  S Ñ)�Jà€Jôz$˜Jô z$ðz (6Ð Ô $Ø(7Ð Ô %Ø�—‘“ò J�I€CˆØ�<‰<˜˜SÓ!€DÙÐ! U¨4¨& >°>À#Ñ3FÀqÑ3IÔJÙÐ! V¨D¨6 ?°OÀCÑ4HÕIðJð �O S¨$ôXÐ1ô Xðx +Ð ôjH�I×'Ñ'ô jHðhð ˆ#ˆ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¨$Ð/ò+€	ó2n-ôb	H3˜"Ÿ*š*ô H3óVð> €× Ò �M×(Ò(¨-¸Ô AØ €× Ò �M×(Ò(¨%Ô 0Ø €× Ò ˜×,Ò,¨iÔ 8à €× Ò ˜-×.Ò.°¸Ð0AÔ Bà €× Ò �M×(Ò(¨,Õ 7ùóYB Cs   Å`