__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

"%vg�E��N�SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
Jr SSKJ
r
 SSKJrJr SSKJrJrJrJrJrJr SSKJrJrJrJrJrJr SS	KJ r! SS
KJ"r# SSKJ$r$ SSK%J&r& SS
K'J(r( SSK)J*r* SSKJ+r+ \(aSSK'J,r,J-r- \R\"\/5r0Sr1Sr2Sr3Sr4Sr5Sr6Sr7Sr8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@S rAS!rBS"rCS#rDS$rES%rFS&rGS'rHS(rIS)rJS*rKS+rLS,rMS-rNS.rOS/rPS0rQS1rRS2rSS3rTS4rUS5rVS6rWS7rXS8rYS9rZS:r[S;r\S<r]S=r^0SS>_S?S@_SASB_SCSD_SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_r_\_R�5VVs0sHupX_M	 snnra0\4SS_SS_S`4Sa_\5SS_SS_S`4Sa_\4SS_S?S_S`4Sb_\5SS_S?S_S`4Sb_\4SS_SS_S`4Sc_\5SS_SS_S`4Sc_\4SS_S?S_S`4Sd_\5SS_S?S_S`4Sd_\4SS_SSeS`4Sf_\5SS_SSeS`4Sf_\4SS_S?SeS`4Sg_\5SS_S?SeS`4Sg_\4SS_SSeS`4Sh_\5SS_SSeS`4Sh_\4SS_S?SeS`4Si_\5SS_S?SeS`4Si_\4SS_SSjS`4Sk_0\5SS_SSjS`4Sk_\4SS_S?SjS`4Sl_\5SS_S?SjS`4Sl_\4SS_SSjS`4Sm_\5SS_SSjS`4Sm_\4SS_S?SjS`4Sn_\5SS_S?SjS`4Sn_\4SS_SSoS`4Sp_\5SS_SSoS`4Sp_\4SS_S?SoS`4Sq_\5SS_S?SoS`4Sq_\4SS_SSoS`4Sr_\5SS_SSoS`4Sr_\4SSeSSoS`4Sr_\5SSeSSoS`4Sr_\4SS_S?SoS`4Ss_\5SS_S?SoS`4Ss_E0\4SS_SStS`4Su_\4SS_SSvS`4Sw_\4SS_SSvS`4Sw_\5SS_SSvS`4Sx_\4SS_S?SvS`4Sy_\4SSeSSvS`4Sz_\5SSeSSvS`4S{_\4SS|SS}S`4S~_\5SS|SS}S`4S_\4SS_SS}S`4S�_\4SSeSS}S`4S�_\5SSeSS}S`4S�_\4SS|SS}S`4S~_\5SS|SS}S`4S_\4SS_SS�Se4S�_\5SS_SS�Se4S�_\4S?S_SS�S`4S�_E0\5S?S_SS�S`4S�_\4S?S_S?S�S`4S�_\5S?S_S?S�S`4S�_\4S?S_SS�S`4S�_\5S?S_SS�S`4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S_4S�_\5S?S_SS�S_4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_E0\4S?S_SS�Se4S�_\5S?S_SS�Se4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S`4S�_\5S?S_SS�S`4S�_\4S?S_SS�S`4S�_\5S?S_SS�S`4S�_\4S?S_SS�S�4S�_\5S?S_SS�S�4S�_\4S?S_SS�S_4S�_\5S?S_SS�S_4S�_\4S?S_SS�Se4S�_E0\5S?S_SS�Se4S�_\4SAS_SS_S`4S�_\5SAS_SS_S`4S�_\4SAS_S?S_S`4S�_\5SAS_S?S_S`4S�_\4SAS_SSeS`4S�_\5SAS_SSeS`4S�_\4SAS_S?SeS`4S�_\5SAS_S?SeS`4S�_\4SAS_SSjS`4S�_\5SAS_SSjS`4S�_\4SAS_S?SjS`4S�_\5SAS_S?SjS`4S�_\4SAS_SSoS`4S�_\5SAS_SSoS`4S�_\4SAS_SS�S�4S�_\4SAS_SS�Se4S�_E0\5SAS_SS�Se4S�_\4SAS_S?SoS`4S�_\5SAS_S?SoS`4S�_\4SES_SS�S`4S�_\5SES_SS�S`4S�_\4SES_SS�S�4S�_\5SES_SS�S�4S�_\4SES_SS�S�4S�_\5SES_SS�S�4S�_\4SES_SS�S`4S�_\5SES_SS�S`4S�_\4SGS_SSoS`4Sr_\5SGS_SSoS`4Sr_\4SGS_SS�S`4S�_\5SGS_SS�S`4S�_\4SKS_SS�S`4S�_\5SKS_SS�S`4S�_Erb\c"S�\b55rd/S�Qre\f"\R�S�S�5(d	\&"S�S�5 S�S�jrhS�S�jriS�S�jrj0rk0rlS�S�jrm"S�S�\5rn\S�\o\p/\4rqS�S�jrrS�S�jrsS�S�jrt\(a\\u\4rvO\rv"S�S�\v5rw\k\wlk\l\wll\+R�"5H;urxry\yR�S�S�5ry\{"\wS�\y3\k\xS5 \{"\wS�\y3\l\x5 M= CkClCxCy"S�S�\w5r|\|r}"S�S�\R65r~0S�S�\4SSS_S4_S�S�\4SSSoS4_S�S�\4SSS�S?4_S�S�\4SASSoS4_S�S�\4SASS�S?4_S�S�\4SS?S}S4_S�S�\4SSSvS4_S�S�\4SS?SvS4_S�S�\4SSAS}S4_S�S�\4S?SS�S4_S�S�\4S?SS�S4_S�S�\4S?SS�S?4_S�S�\4SESS�S4_S�S�\4SGSS�S4_S�S�\4SKSS�S4_S�S�\5SS?S}S4_S�S�\5SSSvS4_S�\5SS?SvS4S�\5SSAS}S4S�.ErS�S�jr�"S�S�\GR5r�S�S�jr�\GR"\~GR
\~\h5 \GR"\~GR
\�5 \GR"\~GR
\�5 \GR"\~GR
S�S�/5 \GR"\~GR
S�5 gs snnf)��)�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�sIIsMM��iiiii
i�iiiiiii(i-i1i2i;i=i@iBiC�DiEiJiRiSi[iii��i��iI�is�ii�i�ii��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�)�1z1;I)r?z1;IR)r?r?)r?z1;R)r&)�LzL;2I)r@zL;2IR)r@zL;2)r@zL;2R)r*)r@zL;4I)r@zL;4IR)r@zL;4)r@zL;4R)r2)r@zL;I)r@zL;IR)r@r@)r@zL;R)�)�I;16zI;12)�)rBrB)�I;16BrD)rBzI;16R)�I�I;16S)rE�I;16BS)r()� )�F�F;32F)rI�F;32BF)rEzI;32N)rE�I;32S)rE�I;32BS)r2r2)�LArN)r2r2r2)�RGBrO)rOzRGB;R)r2r2r2r2)�RGBArP�r)rO�RGBX)r2r2r2r2r2�rr)rO�RGBXX)r2r2r2r2r2r2)rrr)rO�RGBXXX)rP�RGBa)rr)rP�RGBaX)rrr)rP�RGBaXX)r&r)rP�RGBAX)r&rr)rP�RGBAXX)i�)rCrCrC)rOzRGB;16L)rOzRGB;16B)rCrCrCrC)rPzRGBA;16L)rPzRGBA;16B)rOzRGBX;16L)rOzRGBX;16B)rPzRGBa;16L)rPzRGBa;16B)�PzP;1)r[zP;1R)r[zP;2)r[zP;2R)r[zP;4)r[zP;4R)r[r[)r[�PX)�PAr])r[zP;R)�CMYKr^)r^�CMYKX)r^�CMYKXX)r^zCMYK;16L)r^zCMYK;16B)�LABrac#�># �UHn[US5v� M g7f)r*N)�len)�.0�key_tps  �5/usr/lib/python3/dist-packages/PIL/TiffImagePlugin.py�	<genexpr>rgs���A�y�V�#�f�Q�i�.�.�y�s�)�MM*�II*sMM*sII*sMM+sII+�libtiff_support_custom_tagsTz*Support for LibTIFF earlier than version 4rAc��USS[;$�Nr*)�PREFIXES��prefixs rf�_acceptrp"s���"�1�:��!�!�c��[U5S:�n[U(aSU-OU5RU5nU(aUSSS2$U$)Nr���)�abs�IFDRational�limit_rational)�val�max_val�inv�n_ds    rf�_limit_rationalr{&sC���c�(�Q�,�C�
��a�#�g�#�
.�
=�
=�g�
F�C��3�t��t�9�$��$rqruc��[U5nURUR4n[SU55U:a[	U[U55n[
SU55n[U5U:�a[	USUS-U5nU$)Nc3�8# �UHn[U5v� M g7f�N��float�rd�is  rfrg�)_limit_signed_rational.<locals>.<genexpr>4s���
!�S��5��8�8�S���c3�8# �UHn[U5v� M g7fr~rr�s  rfrgr�7s���,��1�e�A�h�h��r�rr)r�	numerator�denominator�minr{rt�tuple�max)rwrx�min_val�fracrz�	n_d_floats      rf�_limit_signed_rationalr�.s~���C�=�D�-1�^�^�T�=M�=M�-M�C�
�
!�S�
!�!�G�+��c�3�w�<�0���,��,�,�I�
�9�~����i��l�Y�q�\�9�7�C���Jrqc�$^�SU4SjjnU$)Nc�6>�[URT5"U6$r~)�getattr�_val)�self�args�ops  �rf�delegate�_delegate.<locals>.delegateFs����t�y�y�"�%�t�,�,rq)r�rur�ztuple[float, ...]�returnzbool | float | Fractionr>)r�r�s` rf�	_delegater�Es'���-��-�"3�-�	 �-�
�Orqc�p�\rSrSrSrSrS*S+Sjjr\S,Sj5r\S-Sj5r	S.Sjr
S/SjrS-S	jrS0S
jr
S1SjrS2Sjr\"S
5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r \"S5r!\"S5r"\"S5r#\"S 5r$\"S!5r%\"S"5r&\"S#5r'\"S$5r(\"S%5r)\"S&5r*\+"\,S'5(a\"S'5r-S(r.g)S(r.g))3ruiNz�Implements a rational class where 0/0 is a legal value to match
the in the wild use of exif rationals.

e.g., DigitalZoomRatio - 0.00/0.00  indicates that no digital zoom was used
)�
_numerator�_denominatorr�c�8�U [U[5(a4URUlURUlURUlg[U[5(a#URUlURUlO-[(a[[U5UlOXlX lUS:Xa[S5UlgUS:Xa[U5Ulg[U5U:Xa[[U5U5Ulg[X-5Ulg)z�
:param value: either an integer numerator, a
float/rational/other number, or an IFDRational
:param denominator: Optional integer denominator
Nr�nanr)
�
isinstancerur�r�r�r�r�rr
rrr��int)r��valuer�s   rf�__init__�IFDRational.__init__\s���	
��e�[�)�)�#�o�o�D�O� %� 1� 1�D���
�
�D�I���e�X�&�&�#�o�o�D�O� %� 1� 1�D���}�"&�|�U�";���"'�� +���!���e��D�I�
�A�
� ���D�I�
��Z�5�
 � ��U��[�9�D�I� ��!4�5�D�Irqc��UR$r~)r��r�s rfr��IFDRational.numerator~s�����rqc��UR$r~)r�r�s rfr��IFDRational.denominator�s��� � � rqc��URS:XaURUR4$[UR[5(deURRU5nURUR4$)zm

:param max_denominator: Integer, the maximum denominator value
:returns: Tuple of (numerator, denominator)
r)r�r�r�r�r�limit_denominator)r��max_denominator�fs   rfrv�IFDRational.limit_rational�se�����q� ��>�>�4�#3�#3�3�3��$�)�)�X�.�.�.�.��I�I�'�'��8���{�{�A�M�M�)�)rqc�>�[[UR55$r~)�strr�r�r�s rf�__repr__�IFDRational.__repr__�s���5����#�$�$rqc�6�URR5$r~)r��__hash__r�s rfr��IFDRational.__hash__�s���y�y�!�!�#�#rqc��URn[U[5(aURn[U[5(a[U5nX!:H$r~)r�r�rur�)r��otherrws   rf�__eq__�IFDRational.__eq__�s?���i�i���e�[�)�)��J�J�E��e�U�#�#���*�C��|�rqc�H�URURUR/$r~)r�r�r�r�s rf�__getstate__�IFDRational.__getstate__�s���	�	�4�?�?�D�,=�,=�>�>rqc��[RUS5 Uup#n[U[[45(deX l[(a[[U5Ul	OX0l	[U[5(deX@lg�Nr)rur�r�r�rr�r
rrr�r�r�)r��stater�r�r�s     rf�__setstate__�IFDRational.__setstate__�sj�����T�1�%�).�&��,��$��� 1�2�2�2�2��	��=�"�<��<�D�O�(�O��,��,�,�,�,�(�rq�__add__�__radd__�__sub__�__rsub__�__mul__�__rmul__�__truediv__�__rtruediv__�__floordiv__�
__rfloordiv__�__mod__�__rmod__�__pow__�__rpow__�__pos__�__neg__�__abs__�	__trunc__�__lt__�__gt__�__le__�__ge__�__bool__�__ceil__�	__floor__�	__round__�__int__)r�r�r�Nr=)r��float | Fraction | IFDRationalr�r�r��None)r�r�r�r�)r�r�r�ztuple[IntegralLike, int]�r�r�)r��objectr��bool)r��%list[float | Fraction | IntegralLike])r�r�r�r�)/�__name__�
__module__�__qualname__�__firstlineno__�__doc__�	__slots__r��propertyr�r�rvr�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��hasattrrr��__static_attributes__r>rqrfruruNs�����
7�I�IJ� 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�^^�SUU4SjjnU$)Nc�>�SSKJn URRS5(a"URSSR	SS5UT'TU4[
T'U$)Nrr�load_r,�_� )rrr��
startswith�replace�_load_dispatch)�funcr�idx�sizes  ��rf�	decorator�#_register_loader.<locals>.decorator�sO���#��=�=�#�#�G�,�,����q�r�*�2�2�3��<�E�#�J�"�D�j��s���rq)r��_LoaderFuncr�r�r>)r�r�r�s`` rf�_register_loaderr��s������rqc�^�SU4SjjnU$)Nc�>�U[T'U$r~)�_write_dispatch)r�r�s �rfr��#_register_writer.<locals>.decorator�s���#�����rq)r��Callable[..., Any]r�rr>)r�r�s` rf�_register_writerr�s�����rqc�^^�SSKJn UunmnX1U'[R"ST35mSSUU4SjjjnTU4[U'U4Sj[
U'g)Nrr�=c�H>�UR[U5T-T3U5$r~)�_unpackrc)r��data�
legacy_api�fmtr�s   ��rf�
basic_handler�&_register_basic.<locals>.basic_handler�s)����|�|�s�4�y�D�0�1�#��7��>�>rqc�>>^�SRUU4SjU55$)Nrqc3�H># �UHnTRTU5v� M g7fr~)�_pack)rdr�rr�s  ��rfrg�4_register_basic.<locals>.<lambda>.<locals>.<genexpr>�s����<�V�E����C��'�'�V�s�"��join)r��valuesrs` �rf�<lambda>�!_register_basic.<locals>.<lambda>�s������<�V�<�<rq�T)r�r�r�bytesrr�r��tuple[Any, ...])rr�struct�calcsizer�r�)�idx_fmt_namerr��namer	rr�s     @@rf�_register_basicr�sz����!�N�C��d��#�J��?�?�Q�s�e�9�%�D�FJ�?�#�?�+0�?�>B�?�	�?�?�
�
�-�N�3���O�C�rqc���\rSrSr%Sr0rS\S'0rS\S'S?S@Sjjr\	"S	5r
\	"S
5r\	SASj5r\RSBSj5rSCS
jrSDSjrSESjrSFSjrSGSjrSHSjrSISjrSJSjrSKSjrSLSjrSMSjrSNSjr\"\"\\R<SS4\R>SS4\R@SS4\RBSS 4\RDS!S"4\RFS#S$4\RHS%S&4\RJSS4\RLS'S(4/	55 \'"S)S)5SOSPS*jj5r(\)"S)5SQS+j5r*\'"S,S)5SOSRS-jj5r+\)"S,5SSS.j5r,\'"S/S05SOSTS1jj5r-\)"S/5SUS2j5r.\'"S3S)5SOSPS4jj5r/\)"S35SVS5j5r0\'"S6S05SOSTS7jj5r1\)"S65SUS8j5r2SWS9jr3SXS:jr4S;r5SYSZS<jjr6S[S=jr7S>r8g)\r��a�This class represents a TIFF tag directory.  To speed things up, we
don't decode tags unless they're asked for.

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

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

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

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

Data Structures:

    * ``self.tagtype = {}``

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

      .. versionadded:: 3.0.0

'Internal' data structures:

    * ``self._tags_v2 = {}``

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

    * ``self._tagdata = {}``

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

    * ``self._tags_v1 = {}``

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

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

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

z"dict[int, tuple[int, _LoaderFunc]]r�zdict[int, Callable[..., Any]]r�Nc���[U5(dS[U5S3n[U5eUbUOUSSUlUR[:XaSUlO)UR[:XaSUlO
Sn[U5eUSS:HUlX0l0Ul	UR5 UR(aURS	US
S5SOURSUS
S5SUlSUl
g)a_Initialize an ImageFileDirectory.

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

:param ifh: One of the accepted magic headers (cf. PREFIXES); also sets
      endianness.
:param prefix: Override the endianness of the file.
znot a TIFF file (header z not valid)Nr&�>�<znot a TIFF IFD�+�Qr2rr@r*F)rp�repr�SyntaxError�_prefix�MM�_endian�II�_bigtiff�group�tagtype�resetr�next�_legacy_api)r��ifhror*�msgs     rfr��ImageFileDirectory_v2.__init__Gs��� �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�.�	
�	�
!��rqc��UR$r~)r%r�s rfr�ImageFileDirectory_v2.<lambda>n���4�<�<rqc��UR$r~)�_offsetr�s rfrr3or4rqc��UR$r~�r.r�s rfr� ImageFileDirectory_v2.legacy_apiqs�����rqc��Sn[U5e)Nz"Not allowing setting of legacy api)�	Exception)r�r�r0s   rfrr9us��2����n�rqc�X�0Ul0Ul0Ul0UlSUlSUlgr~)�_tags_v1�_tags_v2�_tagdatar+�_nextr6r�s rfr,�ImageFileDirectory_v2.resetzs,��(*��
�(*��
�*,��
������
�#'��rqc�*�[[U55$r~)r��dictr�s rf�__str__�ImageFileDirectory_v2.__str__�s���4��:��rqc��UR5VVs0sH0up[R"XR5RU_M2 snn$s snnf)zi
:returns: dict of name|key: value

Returns the complete tag dictionary, with named tags where possible.
)�itemsr�lookupr*r)r��coder�s   rf�named�ImageFileDirectory_v2.named�sI�� $�z�z�|�
�+���
�O�O�D�*�*�-�2�2�E�9�+�
�	
��
s�7Ac�j�[[UR5[UR5-5$r~)rc�setr?r>r�s rf�__len__�ImageFileDirectory_v2.__len__��$���3�t�}�}�%��D�M�M�(:�:�;�;rqc�(�XR;aDURUnURUnURUupEU"XUR5X'URUnUR(a[U[[45(dU4nU$r~)r>r?r+r�rr�r�r)r��tagr�typr��handlerrws       rf�__getitem__�!ImageFileDirectory_v2.__getitem__�s}���m�m�#��=�=��%�D��,�,�s�#�C� �/�/��4�M�D���D�O�O�<�D�I��m�m�C� ���?�?�:�c�E�5�>�#B�#B��&�C��
rqc�H�XR;=(d XR;$r~)r>r?�r�rRs  rf�__contains__�"ImageFileDirectory_v2.__contains__�����m�m�#�;�s�m�m�';�;rqc�<�URXUR5 gr~)�_setitemr)r�rRr�s   rf�__setitem__�!ImageFileDirectory_v2.__setitem__�s���
�
�c�$�/�/�2rqc	�	^�[[[4n[R"XR
5m[
X$5(aU/OUnXR;GaqTR(aTRURU'GOE[RURU'[SU55(aeUH@n[
U[5(deUS:dM"[RURU' GO� [RURU'GO�[SU55(a�SnSnSn	UH]n[
U[5(deU(aSUs=::aS:dO SnU(aSUs=:aS:dO SnU	(dMSUS:dM[Sn	M_ U(a[RURU'GOU(a[R URU'O�U	(a[R"URU'O�[R$URU'O�[S	U55(a[R&URU'Oi[S
U55(a[R(URU'O4[SU55(a[R*URU'URU[R:Xa:UVs/sH,n[
U[5(aUR-SS
5OUPM. nnOSURU[R:Xa2UVs/sH%n[
U[5(a[/U5OUPM' nnURU[R":H=(a [
U[05n
U
(d[3U4SjU55nU(aUR4OUR6nU
(d�TR8S:XdDURU[R*:Xd#TR8cY[;U5S:XaJU(dCU(a4URU[R[R4;aU4nUuX�'gX[U'gs snfs snf![<a0 [>R@"SUS[;U5S35 USX�'gf=f)Nc3�B# �UHn[U[5v� M g7fr~)r�ru�rd�vs  rfrg�1ImageFileDirectory_v2._setitem.<locals>.<genexpr>�s���B�6�a�z�!�[�1�1�6���rc3�B# �UHn[U[5v� M g7fr~)r�r�rbs  rfrgrd�����<�V���A�s�+�+�V�reTr Fi���i�c3�B# �UHn[U[5v� M g7fr~)r�r�rbs  rfrgrd�����>�v�!��A�u�-�-�v�rec3�B# �UHn[U[5v� M g7fr~)r�r�rbs  rfrgrd�rgrec3�B# �UHn[U[5v� M g7fr~)r�rrbs  rfrgrd�rire�asciir�c3�t># �UH-n[U[5(aTRU5OUv� M/ g7fr~)r�r��cvt_enum)rdr��infos  �rfrgrd�s2�����#�E�)3�5�#�(>�(>��
�
�e�$�E�I�#�s�58rzMetadata Warning, tag z had too many entries: z, expected 1)!rrr�rrHr*r�r+�type�	UNDEFINED�allru�SIGNED_RATIONAL�RATIONALr��SHORT�SIGNED_SHORT�LONG�SIGNED_LONG�DOUBLE�ASCII�BYTE�encoder�rCr�r=r>�lengthrc�
ValueError�warnings�warn)
r�rRr�r�	basetypesrrc�short�signed_short�long�is_ifd�destros
            @rfr]�ImageFileDirectory_v2._setitem�s�����U�C�(�	����s�J�J�/��&�u�8�8�%��e���l�l�"��y�y�$(�I�I����S�!�$,�$6�$6����S�!��B�6�B�B�B�#��)�!�[�9�9�9�9��q�5�08�0H�0H�D�L�L��-�!�	$�-5�,=�,=����S�)��<�V�<�<�<� �E�#'�L��D�#��)�!�S�1�1�1�1� �!�q�.�5�.�$)�E�'��A�1E��1E�+0�L��4�A��E�#(�D�$��,4�N�N����S�)�%�,4�,A�,A����S�)��,4�M�M����S�)�,4�,@�,@����S�)��>�v�>�>�>�(0���D�L�L��%��<�V�<�<�<�(0���D�L�L��%��>�v�>�>�>�(0�
�
�D�L�L��%��<�<���� 2� 2�2� ���A�1;�1�c�0B�0B�����)�,��I��
��F��\�\�#�
�(�"3�"3�
3�EK�L�V��*�Q��"4�"4�e�A�h�!�;�V�F�L����c�"�h�m�m�3�P�
�6�4�8P�����#���F�
!+�t�}�}��
�
���
�[�[�A�
��|�|�C� �H�M�M�1����#��F��q�(8���d�l�l�3�/��!�!��(�(�4��!���
&�%������I��[��
M��:�
&��
�
�,�S�E�1H��6�{�m�<�1��#�1�I��	�

&�s�.3R�	,R�R�7S�Sc��URRUS5 URRUS5 URRUS5 gr~)r>�popr=r?rXs  rf�__delitem__�!ImageFileDirectory_v2.__delitem__s>���
�
���#�t�$��
�
���#�t�$��
�
���#�t�$rqc�j�[[UR5[UR5-5$r~)�iterrMr?r>r�s rf�__iter__�ImageFileDirectory_v2.__iter__�$���C��
�
�&��T�]�]�);�;�<�<rqc�J�[R"URU-U5$r~)r�unpackr')r�rrs   rfr�ImageFileDirectory_v2._unpack
s���}�}�T�\�\�C�/��6�6rqc�J�[R"URU-/UQ76$r~)r�packr')r�rrs   rfr
�ImageFileDirectory_v2._pack
s���{�{�4�<�<�#�-�7��7�7rq�Hr�r@r��bzsigned byte�hzsigned short�lzsigned longr�r��d�doubler"�long8rc��U$r~r>�r�rrs   rf�	load_byte�ImageFileDirectory_v2.load_byte!����rqc��[U[5(a[U5n[U[5(a[U45nU$r~)r�rur�r�r�rs  rf�
write_byte� ImageFileDirectory_v2.write_byte%s5���d�K�(�(��t�9�D��d�C� � ��$��>�D��rqr&c�\�URS5(aUSSnURSS5$)N�rszlatin-1r�)�endswith�decoder�s   rf�load_string�!ImageFileDirectory_v2.load_string-s-���=�=�������9�D��{�{�9�i�0�0rqc��[U[5(a[U5n[U[5(dUR	SS5nUS-$)Nrlr�r�)r�r�r�rr|�r�r�s  rf�write_string�"ImageFileDirectory_v2.write_string3sA���e�S�!�!���J�E��%��'�'��L�L��)�4�E��u�}�rqr,r2c
�^^�UR[U5S-S3U5nSU4Sjjm[U4Sj[USSS2USSS2555$)Nr*r@c�.>�T(aX4$[X5$r~�ru��ar�rs  �rf�combine�4ImageFileDirectory_v2.load_rational.<locals>.combineB����'�A�6�>�[��->�>rqc3�8># �UHupT"X5v� M g7fr~r>�rd�num�denomr�s   �rfrg�6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>E�����V�;U�Z�S�W�S�(�(�;U���r&r�r�r�r�r�r�ztuple[int, int] | IFDRational�rrcr��zip�r�rr�valsr�s  ` @rf�
load_rational�#ImageFileDirectory_v2.load_rational<�W����|�|�s�4�y�A�~�.�a�0�$�7��	?��V�3�t�C�a�C�y�$�q�t�RS�t�*�;U�V�V�Vrqc�:^�SRU4SjU55$)Nrqc3�^># �UH"nTR"S/[US5Q76v� M$ g7f)�2Ll��N)r
r{�rdr�r�s  �rfrg�7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>Is)����
�LR�D�D�J�J�t�?�o�d�I�>�?�F�s�*-r�r�rs` rf�write_rational�$ImageFileDirectory_v2.write_rationalGs!����x�x�
�LR�
�
�	
rqr0c��U$r~r>r�s   rf�load_undefined�$ImageFileDirectory_v2.load_undefinedMr�rqc��[U[5(a[U5n[U[5(a[U5R	SS5nU$)Nrlr�)r�rur�r�r|r�s  rf�write_undefined�%ImageFileDirectory_v2.write_undefinedQs@���e�[�)�)���J�E��e�S�!�!���J�%�%�g�y�9�E��rq�
c
�^^�UR[U5S-S3U5nSU4Sjjm[U4Sj[USSS2USSS2555$)Nr*r�c�.>�T(aX4$[X5$r~r�r�s  �rfr��;ImageFileDirectory_v2.load_signed_rational.<locals>.combine_r�rqc3�8># �UHupT"X5v� M g7fr~r>r�s   �rfrg�=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>br�r�r&rr�r�r�s  ` @rf�load_signed_rational�*ImageFileDirectory_v2.load_signed_rationalYr�rqc�:^�SRU4SjU55$)Nrqc	3�`># �UH#nTR"S/[USS5Q76v� M% g7f)�2li���i�N)r
r�r�s  �rfrg�>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>fs0����
���
�J�J�t�P�4�T�9�h�O�P��s�+.rr�s` rf�write_signed_rational�+ImageFileDirectory_v2.write_signed_rationalds!����x�x�
��
�
�	
rqc��URU5n[U5U:waSUS[U5S3n[U5eU$)Nz&Corrupt EXIF data.  Expecting to read � bytes but only got z. )�readrc�OSError)r��fpr��retr0s     rf�_ensure_read�"ImageFileDirectory_v2._ensure_readksN���g�g�d�m���s�8�t��%�%)�F�*>�s�3�x�j��L�
��#�,���
rqc
���UR5 UR5UlUR(a"UR	SURUS55O!UR	SURUS55Sn[
U5GHnUR(a"UR	SURUS55O!UR	SURUS	55upEpg[R"X@R5Rn[R"US
5n	SUSUS
U	SUS3	n
URUup�Xk-n
X�R(aSOS:�a{UR5nUR	UR(aSOSU5unU
SUSU3-
n
UR#U5 [$R&"X5nUR#U5 OUSU
n[)U5U
:wa@[*R,"SU
S[)U5SU35 [R!U
5 GM�U(d[R!U
5 GM�XpR.U'XPR0U'U
S-
n
X�S:�aSU
S3O
[3U5-
n
[R!U
5 GM UR(a"UR	SURUS55O!UR	SURUS55uUlg![a [R!SX�5 GM�f=f![6a)n
[*R,"[9U
55 Sn
A
gSn
A
ff=f)Nr"r2r�r&r�HHQ8s��HHL4srA�unknownztag: � (�
) - type: �)z%s - unsupported type %sr*r@z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read r�z. Skipping tag z
 - value: rH�<table: � bytes>)r,�tellr6r)rr��rangerrHr*rr�getr��KeyError�logger�debug�seekr�
_safe_readrcrr�r?r+r#r-r�r�)r�r��	tag_countr�rRrS�countr�tagname�typnamer0�	unit_sizerTr��here�offsets                rf�load�ImageFileDirectory_v2.loadus����
�
���w�w�y���=	��=�=����S�$�"3�"3�B��":�;��\�\�#�t�'8�'8��Q�'?�@��	�I�
�9�%���}�}��L�L��$�*;�*;�B��*C�D����g�t�/@�/@��R�/H�I�&��%�#�/�/�#�z�z�:�?�?���)�)�C��3���g�Y�b���Z��y��3�%�q�I���)-�)<�)<�S�)A�&�I��(���
�
�1�1�5��7�7�9�D� $���D�M�M�S�s�D� Q�I�V��_�T�F�2D�V�H�M�M�C��G�G�F�O�$�/�/��9�D��G�G�D�M����;�D��t�9��$��M�M�-�-1�F�2F�s�4�y�k�R)�),��/��
�L�L��%����L�L��%��%)�
�
�c�"�$'���S�!��|�#���"�9��$��w�/�$�t�*�L�����S�!�]&�d�=�=����S�$�"3�"3�B��":�;��\�\�#�t�'8�'8��Q�'?�@�
�T�Y��G ���L�L�!;�S�F����P�	��M�M�#�c�(�#���	�s=�DL+�7L�F:L+� L(�#L+�'L(�(L+�+
M�5M�Mc�,�URURSUR(aSOS5-nUR(aXRSSS5-
nXR(aURSS5-
nU$URS	S5-
nU$)
Nr�r!�*�HHr2rr"rCr@)r%r
r)�r�r/s  rf�_get_ifh�ImageFileDirectory_v2._get_ifh�sw���l�l�T�Z�Z��4�=�=�R�b�I�I���=�=��:�:�d�A�q�)�)�C��m�m�t�z�z�#�r�"�K���
�:>���C��9K�K���
rqc��URUR(aSOS[UR55n/nU[U5[UR5UR(aSOS--S--
nSnUR(aSOSnUR(aSOSn[	URR55GHaupxU[:Xa[U5nURUn	[RSXy[U55 U	[R:H=(a [U[5n
U
(aV[UR!5US	9nURUnUR5H	up�X�U
'M UR#U5nO0[U[$5(aUOU4nUR&U	"U/UQ76n[R("XpR*5R,nU
(aS
O[.R0"U	S5nSUS
USUS
U	S3	nU[U5S:�aS[U5S3O
[3U5-
n[RU5 U
(aSnOJU	[R4[R6[R84;a[U5nO[U5n[U5U::a(UR;XyUUR=US5S45 GM&UR;XyUURXQ5U45 U[U5S-S-S--
nGMd Ub�X4upynp�U(aOUR>U	unnU"XUR@5Vs/sHnUU-PM
 nnUR&U	"U/UQ76nO&URXPRCXX5SU-5nXyUX�4X4'UH[upynp�[RSXyU[U5[U55 X RUR(aSOSXyUU5-
nM] US-
nUH%upynp�X/-
n[U5S-(dM US-
nM' U$s snf)Nr"r�r�rAr*r@r2zTag %s, Type: %s, Value: %s)r*�ifdr�zsave: r�r�z) - value: rCr�r�rr�rqr&rz%s %s %s %s %sr�r�s)"r
r)rcr>�sortedrG�STRIPOFFSETSr+r�r�r#rrwr�rCr�r�tobytesr�r�rHr*rrr�r�r{rzrq�append�ljustr�rr)r�r�result�entries�stripoffsetsr�fmt_sizerRr�rSr�rr�ifd_tag�	ifd_valuerrrr0r�r�rTrws                       rfr�ImageFileDirectory_v2.tobytes�s������4�=�=�C�c�3�t�}�}�;M�N��<>���#�f�+��D�M�M� 2�D�M�M�b�r� R�R�UV�V�V�����]�]�c����
�
�1�1�� ����!4�!4�!6�7�J�C��l�"�"�7�|���,�,�s�#�C��L�L�6��$�u�+�N��H�M�M�)�E�j���.E�F��+�D�M�M�O�3�G�����s�+��*0�,�,�.�&�G�#,��L�+9��{�{�6�*��",�U�E�":�":������+�+�C�0��?��?���o�o�c�:�:�6�;�;�G�%�e�5�9�9�S�)�+D�G��7�)�2�c�U�*�W�I�R��u�K�P�C��C��I��O�X�c�$�i�[��0��V��T�C��L�L��������������8J�8J�K�K��D�	���F����4�y�H�$�����%����H�e�1L�c�R�S�����%����C�1H�$�O�P��3�t�9�q�=�Q�.��2�2��E8�J�#�+2�+@�(�C�e�U�� $� 3� 3�C� 8�
��g�29�$�d�o�o�2V�W�2V�3�#��,�2V��W��+�+�C�0��?��?���
�
�3���S�(@��(C�f�(L�M��$'�e�U�$@�G�!�-4�(�C�e�U��L�L�)�3�U�D��K��d��T��j�j��=�=��g�s����
�F�-4�	�+���-4�(�C�e�U��N�F��4�y�1�}�}��%���-4�
�
��-Xs�&Qc���UR5S:XaURUR55 UR5nURU5nURU5 U[	U5-$r�)r��writerrrc)r�r�rrs    rf�save�ImageFileDirectory_v2.save
sU��
�7�7�9��>��H�H�T�]�]�_�%���������f�%��
�������F��#�#rq)r)r'r.r@r6r%r?r=r>r*r-r+)sII*NN)r/rrozbytes | Noner*�
int | Noner�r�)r�r�)r�r�r�r
�r�r�r�)r�zdict[str, Any]r��rRr�r�r�rRr�r�r��rRr�r�rr�r�)rRr�r�rrr�r�r�)rRr�r�r��r�z
Iterator[int])rr�rrr�r)rr�rrr�rr)rrrr�r�r)r�bytes | int | IFDRationalr�r)rrrr�r�r�)r�zstr | bytes | intr�r)rrrr�r�z)tuple[tuple[int, int] | IFDRational, ...])rrur�r)r�r%r�r)r��	IO[bytes]r�r�r�r)r�r&r�r�rQ)rr�r�r)r�r&r�r�)9r�r�r�r�r�r��__annotations__r�r�r�rorr�setterr,rDrJrNrUrYr^r]r�r�rr
�list�maprrrurw�SIGNED_BYTErvrx�FLOATry�IFD�LONG8r�r�rr�r�r�r�r�r�r�r�r�r�rrrrr�r>rqrfr�r�s���:�x:<�N�6�;�57�O�2�7�3�#� �	%!�
�%!��%!��	%!�

�%!�N�/�
0�F�
�/�
0�F�
� �� �������(��	
�<�	�<�3�\�|%�
=�7�8�	�������g�.�����V�,��%�%�s�M�:��&�&��^�<��%�%�s�M�:�����g�.����#�x�0����s�F�+�����g�.�

�
	
��"�a�������a������a���1��1�
�a������a���.2�W��W�'+�W�	2�W��W��a��
��
�
�a�������a������b�!��.2�W��W�'+�W�	2�W��W��b��
��
��A�F�K�Z$rqr�r�r��write_c�^�\rSrSr%SrSU4Sjjr\"S5r\"S5rS\	S'\
SSj5rSS	jrSS
jr
SSjrSSjrSS
jrSSjrSrU=r$)�ImageFileDirectory_v1i!a�This class represents the **legacy** interface to a TIFF tag directory.

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

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

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

Values are returned as a tuple.

..  deprecated:: 3.0.0
c�4>�[TU]"U0UD6 SUlg)NT)�superr�r.)r�r��kwargs�	__class__s   �rfr��ImageFileDirectory_v1.__init__4s���
���$�)�&�)���rqc��UR$r~)r=r�s rfr�ImageFileDirectory_v1.<lambda>8s����rqc��UR$r~)r?r�s rfrr89s��D�M�Mrqzdict[int, int]r+c��U"URS9nURUlURUlURUlU$)aReturns 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)ror?r+r-)�cls�originalrs   rf�from_v2�ImageFileDirectory_v1.from_v2?s<������)���(�(����&�&����=�=����
rqc���[URS9n[UR5Ul[UR5Ul[UR
5UlU$)aReturns 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�rorCr?r+r>)r�rs  rf�to_v2�ImageFileDirectory_v1.to_v2QsG��$�4�;�;�7���D�M�M�*����4�<�<�(����D�M�M�*����
rqc�H�XR;=(d XR;$r~)r=r?rXs  rfrY�"ImageFileDirectory_v1.__contains__br[rqc�j�[[UR5[UR5-5$r~)rcrMr?r=r�s rfrN�ImageFileDirectory_v1.__len__erPrqc�j�[[UR5[UR5-5$r~)r�rMr?r=r�s rfr��ImageFileDirectory_v1.__iter__hr�rqc�:�SHnURXU5 M g�N)FT)r])r�rRr�rs    rfr^�!ImageFileDirectory_v1.__setitem__ks��'�J��M�M�#�j�1�(rqc	� �XR;aQURUnURUnURUupESHnUR	X"XU5U5 M URUn[U[[45(dU4nU$rI)r=r?r+r�r]r�r�r)r�rRrrSr�rT�legacyrws        rfrU�!ImageFileDirectory_v1.__getitem__os����m�m�#��=�=��%�D��,�,�s�#�C� �/�/��4�M�D�'���
�
�c�7�4�v�#>��G�(��m�m�C� ���#��u�~�.�.��&�C��
rqr8)r�rr4rr�r�)r<r�r�r1)r�r�r"r�r$r#r!)r�r�r�r�r�r�r��tags�tagdatar'�classmethodr=r@rYrNr�r^rUr��
__classcell__�r5s@rfr1r1!se����$ ��.�/�D��1�2�G���!�����"�"<�<�=�2�
�
rqr1c��^�\rSrSrSrSrSrSSU4SjjjrSSjr\	SSj5r
SSjrSS	jrSS
jr
SSjrSU4SjjrSS
jrSSjrSSjrSSjrSrU=r$)�
TiffImageFilei��TIFFz
Adobe TIFFFc�0>�U U [TU]X5 gr~)r3r�)r�r��filenamer5s   �rfr��TiffImageFile.__init__�s���
	
�5��"�
����&rqc��URRS5nUSS:XaXRRS5-
n[U5UlURR=UlUlSUlURUl/Ul	SUl
[RS5 [RSUR
5 [RS[U55 URS	5 g)
z#Open the first image in a TIFF filer2r&r!rsNz*** TiffImageFile._open ***z
- __first: %sz	- ifh: %sr)r�r�r��tag_v2r-�_TiffImageFile__first�_TiffImageFile__next�_TiffImageFile__frame�_fp�
_frame_pos�	_n_framesr�r�r#�_seekr
s  rf�_open�TiffImageFile._open�s����g�g�l�l�1�o���q�6�R�<��7�7�<�<��?�"�C�+�C�0���&*�[�[�%5�%5�5���t�{�����7�7���%'���%)������2�3����_�d�l�l�3����[�$�s�)�,�	
�
�
�1�
rqc�\�URnUc�UR5nUR[UR55 URc1URUR5S-5 URcM1URU5 URceUR$)Nr)r`r�rarcr_r�)r��current_n_frames�currents   rf�n_frames�TiffImageFile.n_frames�s����>�>���#��i�i�k�G��J�J�s�4�?�?�+�,��.�.�(��
�
�4�9�9�;��?�+��.�.�(��I�I�g���~�~�)�)�)��~�~�rqc��URU5(dgURU5 URbQURRUR
:wd$URRUR:waSUlggg)z%Select a given frame as current imageN)�_seek_checkra�_im�imr��
_tile_size�mode)r��frames  rfr��TiffImageFile.seek�sg������&�&���
�
�5���8�8���G�G�L�L�D�O�O�+�t�w�w�|�|�t�y�y�/H��D�H�0I� rqc���URUl[UR5U::Ga�UR(d
Sn[U5e[RSUURURURR55 URS:�a
Sn[U5eURRUR5 URRUR5 [RSURR55 URRUR5 URRUR;aSUlOURRUlURS:Xa
US-Ul[UR5S:XaURS:gUlU=RS-
sl[UR5U::aGM�URRURU5 URRUR5 [$UR;a!UR[$UR&S'OSUR&;a
UR&S	UR)5 [*R-UR5=UlUlXlUR35 g)	Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %slzUnable to seek to framezLoading tags, location: %srr�xmp)r^r�rcr_r\�EOFErrorr�r�r]r�r~r�rrZrr-r`�is_animated�XMPro�_reload_exifr1r=rRr�_setup)r�ror0s   rfra�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������
rqc��UR$)zReturn the current frame number)r]r�s rfr��TiffImageFile.tell�s���|�|�rqc��0nURR[RR5nU(a�USSS:Xa�[USS5n[R"USS-S-5S-n[USU-SU-5nUSU-SU-U-nSU0X'U[R"SU-U-S-5S-SnUSSS:XaM�U$)	a

Returns a dictionary of Photoshop "Image Resource Blocks".
The keys are the image resource ID. For more information, see
https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1037727

:returns: Photoshop "Image Resource Blocks" in a dictionary.
Nr*s8BIMr.rr&r�r)	rZr�r�Base�ImageResources�i16�math�ceil�i32)r��blocksrw�id�nr�rs       rf�get_photoshop_blocks�"TiffImageFile.get_photoshop_blocks�s������k�k�o�o�h�m�m�:�:�;����b�q�'�W�$���Q�q��]���I�I�s�1�v��z�Q�.�/�!�3���3�q�1�u�r�A�v�.�/���2��6�B��F�T�M�2��$�d�^��
��$�)�)�R�!�V�d�]�a�$7�8�1�<�>�?���b�q�'�W�$��
rqc�>�UR(a!UR(aUR5$[TU]5$r~)�tile�use_load_libtiff�
_load_libtiffr3r)r�r5s �rfr�TiffImageFile.load
s-����9�9��.�.��%�%�'�'��w�|�~�rqc��URcY[R"UR5 [RRURUR5Ul[RRU5 gr~)
rkr�_decompression_bomb_checkrm�core�newrnrlr�load_preparer�s rfr��TiffImageFile.load_preparesP���8�8���+�+�D�O�O�<��j�j�n�n�T�Y�Y����@�D�G����(�(��.rqc�x�UR(dFSUlUR5n[RHnX!;aM
URU5 M [R"USS9 [RRUR;a&UR[RR	gg)NT)�in_place)rt�!_close_exclusive_fp_after_loading�getexifr�TAGS_V2_GROUPS�get_ifdr�exif_transposerr|�OrientationrZ)r��exif�keys   rf�load_end�TiffImageFile.load_ends������59�D�2��<�<�>�D��.�.���?�����S�!�/�
	����t�4��=�=�$�$����3����H�M�M�5�5�6�4rqc��[RRU5 UR5 [UR5S:Xd
Sn[U5eURSSnURSSn[
URS5=(a URR5n[
URS5(aURR5 U(a1[U[5(de[U5nXES'[U5n[R"URS	X0R5nUR!UR"U5 UR&=(a UR((+n[
URS5(aA[*R-S
5 UR/URR155up�O�U(a�[*R-S5 U(dURR3S5 [4R6"US[4R85nUR/S5up�[4R6"XK[4R:5 O[[*R-S5 URR3S5 UR/URR=55up�/UlSUlURA5 U(a!URRC5 SUlU
S:a[U
5e[RRU5$![
a SnGN~f=f![$anS
n[U5UeSnAff=f)zOOverload method triggered when we detect a compressed tiff
Calls out to libtiffrzNot exactly one tilerr(�fileno�flushFr&�libtiffzCouldn't set the imageN�getvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.sfpfpz+don't have fileno or getvalue. just reading)"rrr�rcr�r�r�r�r�r�r�r�r)�_getdecoderrn�
decoderconfig�setimagerlr~�
_exclusive_fprtr�r�r�r�r��os�lseek�SEEK_CUR�SEEK_SETr��readonlyr��close)r�r0�extentsr�r��	args_list�decoder�e�
close_self_fpr��err�poss            rfr��TiffImageFile._load_libtiff&s���	������������4�9�9�~��"�(�C��#�,���)�)�A�,�q�/���y�y��|�A���

	�����(�+�@������0@�B��t�w�w��(�(����
�
����d�E�*�*�*�*��T�
�I��a�L���#�D��#�#�D�I�I�y�$�@R�@R�S��	&����T�W�W�g�.�
�*�*�C�4�3C�3C�/C�
��4�7�7�J�'�'�
�L�L�P�Q��^�^�D�G�G�$4�$4�$6�7�F�A�s�
��L�L�N�O� ������Q���(�(�2�q�"�+�+�.�C��^�^�G�,�F�A��H�H�R�b�k�k�*�
�L�L�F�G��G�G�L�L��O��^�^�D�G�G�L�L�N�3�F�A���	���
��
�
����G�G�M�M�O��D�G���7��#�,���{�{����%�%��E�	��B�	���	&�*�C��#�,�A�%��	&�s+�;A,M�M)�M&�%M&�)
N�3N�Nc
�`�SUR;a
Sn[U5e[URR[S5UlURR[S5UlURR[S5nUR
S:XaSnURR[S5n[RS5 [RSUR
5 [RS	U5 [RS
UR5 [RSU5 [RSURR[55 UR[nUR[n[#U[$5(a[#U[$5(d
Sn['U5eXE4UlURR[*R,R.5nUS;a	XT4UlOXE4Ul[RSUR25 URR[4S5n[7U5S:�a$[9U5[;U5s=:XaS:XaO OSnURR[<S5n	URR[>S5n
US;aSnOUS:XaSnOSnU[7U
5-
n[7U	5nURR[@UR
S:XaUS;aSOS5n
U
[B:�a#[RESU
5 Sn[GU5eX�:aU	SU
n	OX�:�a
US:XaX�-n	[7U	5U
:wa
Sn[GU5eURRHUUUU	U
4n[RSU5 [JUuUl&n[RSU5 [RS URN5 UR
URPS!'URR[RS5nURR[TS5nU(a�U(a�URR[V5nUS":XaUU4URPS#'OUUS:XaUS$-US$-4URPS#'O7Uc#UU4URPS#'UU4URPS%'OUU4URPS%'S=n=nn/Ul,[Z=(d UR
S&:gUl.UR\(a�US":Xa5USSS-USS-n[RSU5 [JUuUl&nUS:Xa#UR
S':XaURS:XaS(nO=US):XaS*nO4UR_S+5(dUR_S,5(aUSS-S.-nX�R
S/URR`4nURXRc[dRf"S0SSXE4SU55 GO�[hUR;d[jUR;Ga�[hUR;a6UR[hnURR[lU5nUnO�UR[jnURR[n5nURR[p5n[#U[$5(a[#U[$5(d
S1n['U5eUnUH�nUU-U:�aU[sU	5-S2-nOSnUnURS":Xa
UUnUU-nU[%U5S4nURXRc[dRf"UR
UU[;UU-U5[;UU-U54UU55 UU-nUU:�dM�SUU-nnUU:�dM�S=nnUS-
nM� O"[RS35 Sn[GU5e[tUR;a UR[tURPS4'URNS5;a[UR[vVs/sHn[yUS6-5PM n n[zR|"S7S8RU 55Ul@gg![anS
n[!U5UeSnAff=f![a(n[RS5 Sn[GU5UeSnAff=fs snf)9z-Setup this image object based on current tagsi�z+Windows Media Photo files not yet supportedrrr/r.z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %szMissing dimensionsNzInvalid dimensions)r,r.r0r2z
- size: %sr=r>)r&r.r2r(r,r*)r&r.z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %s�compressionr&�dpigR���Q@�
resolutionr%r1rOrB�I;16Nz;16Bz;16Lrs�NFr�zInvalid tile dimensionsr2z- unsupported data organization�icc_profile�r[r]r"�RGB;Lrq)ArZr��COMPRESSION_INFOr��COMPRESSION�_compression�PLANAR_CONFIGURATION�_planar_configuration�PHOTOMETRIC_INTERPRETATION�	FILLORDERr�r��YCBCRSUBSAMPLING�
IMAGEWIDTH�IMAGELENGTHr��	TypeErrorr�r�r~rmrr|r��_sizer��SAMPLEFORMATrcr�r��
BITSPERSAMPLE�EXTRASAMPLES�SAMPLESPERPIXEL�MAX_SAMPLESPERPIXEL�errorr$ro�	OPEN_INFO�_modernro�X_RESOLUTION�Y_RESOLUTION�RESOLUTION_UNITr��READ_LIBTIFFr�r�rrr�_Tiler�TILEOFFSETS�ROWSPERSTRIP�	TILEWIDTH�
TILELENGTH�sum�
ICCPROFILE�COLORMAPrrr%r�palette)!r�r0�photo�	fillorder�xsize�ysizer��orientation�
sample_format�	bps_tuple�extra_tuple�	bps_count�bps_actual_count�samples_per_pixelr��rawmode�xres�yres�resunit�x�y�layerr��offsetsr��w�	tilewidthr�stride�tile_rawmoder�r�r�s!                                 rfrw�TiffImageFile._setup�s����T�[�[� �?�C��#�,��-�T�[�[�_�_�[�!�-L�M���%)�[�[�_�_�5I�1�%M��"������ :�A�>������+��E��K�K�O�O�I�q�1�	����&�'����(�$�*;�*;�<����7��?����1�4�3M�3M�N����'��3����.������@P�0Q�R�	(��K�K�
�+�E��K�K��,�E��%��%�%�Z��s�-C�-C�&�C��S�/�!��,����k�k�o�o�h�m�m�&?�&?�@���,�&���D�J���D�J����\�4�9�9�-�������d�;�
��}���!�c�-�&8�C�
�<N�&S�RS�&S�!�M��K�K�O�O�M�4�8�	��k�k�o�o�l�B�7���I���I�
�a�Z��I��I��S��%�%�	��y�>�� �K�K�O�O���"�"�k�1�e�v�o�A�1�
��
�2�2��L�L�@�BS�
�8�C��c�"�"��/�"�"4�#4�5�I�
�
1�6F�!�6K�"�5�I��y�>�.�.�-�C��c�"�"�
�K�K��������

��	���%�s�+�	*�"+�C�.��D�J��	���%�w�/����%�t�y�y�1�#'�#4�#4��	�	�-� ��{�{���|�Q�/���{�{���|�Q�/���D��k�k�o�o�o�6�G��!�|�$(�$�<��	�	�%� ��A��$(�4�K����#=��	�	�%� ���$(�$�<��	�	�%� �+/��*��	�	�,�'�*.��*��	�	�,�'�����A����	� ,� J��0A�0A�U�0J���� � ��A�~��"�1�g��n�s�1�2�w�.�����-�s�3�'0��n�#��
�G���
��%�%��/��.�.�!�3���
�F�"�!���!�!�&�)�)�W�-=�-=�f�-E�-E�!�#�2�,��,���+�+�U�D�K�K�4F�4F�G�A��I�I���Y�_�_�Y��A�u�8L�a�QR�S�T�
�T�[�[�
(�K�4�;�;�,F��t�{�{�*��+�+�l�3���K�K�O�O�L�%�8�����+�+�k�2�� �K�K�O�O�I�6�	��K�K�O�O�J�/��!�)�S�1�1��A�s�9K�9K�3�C�$�S�/�)���!���q�5�5�=���Y��/�!�3�F��F�&���-�-��2�#*�5�>�L��i�'�F�$�c�&�k�1�5���	�	� � ��O�O��)�)��A�s�1�q�5�%�0�#�a�!�e�U�2C�D���	����E����:��a�!�e�q�A��E�z� !�	��A���
��7"�:
�L�L�:�;�-�C��c�"�"�����$�'+�{�{�:�'>�D�I�I�m�$��9�9��#�-1�[�[��-B�C�-B��r�!�s�(�|�-B�G�C�'�+�+�G�S�X�X�g�5F�G�D�L�$��S�	(�&�C��C�.�a�'��	(��P�	*��L�L�/�0�&�C��c�"��)��	*��DDs6�6&c�c6�d+�
c3� c.�.c3�6
d(�#d#�#d()�__first�__frame�__nextr�r�r^r_rkr�r`r�r�rmr�rrlrtr�r�rRrZr�r�r~)r��StrOrBytesPath | IO[bytes]rWzstr | bytes | Noner�r�r r�)ror�r�r�)r�zdict[int, dict[str, bytes]])r�zImage.core.PixelAccess | None)r�r�r�r��format�format_descriptionr�r�rbr�rgr�rar�r�rr�r�r�rwr�rQrRs@rfrTrT�s����
�F�%��(-�%�
(,�'�&�'�%�'�
�	'�'��0�	��	�	�*�X��*�
/�7�"]&�~kH�kHrqrTr?r@rNr[r]rErLrBrFrIrJrOrRrPr^�YCbCrrarMrDrGrK)rGrKc��[URup4pVpxURnUR
n[
US9n
URS5(aSU
lUSnUcSnOUS:XaS	nOUS
:XaSn[=(d US:gnSU
['URS
U
['URSU
[ 'SU;aUSnOKSU;aCUSn[U["5(a([$R&"5nUR)U5 UnO0n[*R-S[/U55 [U[05(aUR35nUH|n[U[$R&5(a)U[4R6;aUR9U5U
U'OURU5U
U'UR:UU
R:U'M~ 0n[?US5(aUR@R35n0UE[CUS05En[D[F4HnUU;dMUU	M [?US5(a�[H[J[L[N[P[R4H�nUURT;dMU[N:Xa@URTR:U[4RV[4RX4;aUU	M_URTUU
U'URTR:UU
R:U'M� URSURRS55nU(a	UU
[Z'[\S4[JS4[LS4[JS4[LS4[HS4[^S4[`S4[bS4[dS44
HunnUU;dMUUU
U'M URS5nU(a!SU
[H'US
U
[J'USU
[L'US:wa)X}[f'[iU5S:wa[iU5U
[j'UbX�[l'US:waXm[F'[nU
;a	X][n'O�URS ;a�U
[nS
:Xa�URS!:XarURq5nUR)5nUbN[sURt5H3nURv5HnUUU4S":XaS
OS"UUU4'M M5 UnO[xRz"U5nURS#;axUR|RS$S%5n/n[iU5S&-n[sS&5H4n UUUU -UU S--V!s/sHn!U!S'-PM
 sn!-
nUS
/S'U-
--
nM6 UU
[�'U
[U
[ n#n"[iU5U"US
-S(-S)--n$[�U
;acU(aIURS*[�5n%U$S
:XaSO[�U%U$-U#5n&US	:Xa[�U&S(-S)-S)-U#5n&OU#n&U&S
:XaSn&U&U
[�'U$S
:XaSOU$U
[�-n'U#U
[�-S-
U
[�-n(U'S+:�a![4R�U
R:[�'U'4U(S-
-U$U#-U'U(S-
--
4-U
[�'[�[sS
U'U(-U'55U
[�'[�RUS5U
[�'URS,:Xa8[�S-[�S.0R�5Hunn)U
R�UU)5 M [�[�[�[�/n*U(Ga�S/U;aOUS/n+[U+[5(aU+S
:dU+S0:�a
S1n
[�U
5eUS	:wa
S2n
[�U
5eU+U
[�'[*R-S35 [*R-S4[�U
R�555 S
n,[?US55(a"UR�S
5 UR�5n,0n-U*[�[�[�[�[�[�/-
n*[fUS
0n.[�R�"U
R�5UR�55GHFunn/U[4R�;a�[C[$R�S6S75(dM=U[4R6;a[4R�U-U'OvUU
R:;aU
R:UU-U'OS[U/[[�[�["45(dM�[4R�"U5R�n0U0(aU0U-U'UU.;dM�UU*;dM�[U/[�5(aU/R�S8S95S:-U.U'GM[U/[�5(a[�U/5U.U'GMAU/U.U'GMI [FU.;a)[iU.[F5S:XaU.[FS
U.[F'[*R-S;[�U.R�555 URS<;aS=n[/U.R�55n1U1R�5 X>U,UU1U-4n2[$R�"URS>U2U5n3U3R�UR|S?UR-5 U3R�[�R�5SSun4n5U,(dUR�U55 U4(aOMGU4S
:aS@U4SA3n
[U
5eO]U*HnU
U	M U
R�U5n6[�R�"UU[�R�"SS?UR-U6UU$S45/5 SBU;a[�USBU
5 gg![a!n	SURS3n
[U
5U	eSn	A	ff=f![a6 URRS5n[U[5(aSnGNhf=f![<a G
Mf=fs sn!f![�R�a GN
f=f)CNzcannot write mode z as TIFFrn�big_tiffTr�r%r/r1r7r3rr�tiffinfor�zTiffinfo Keys: %srRrZr��descriptionr��x_resolution�y_resolution�resolution_unit�software�	date_time�artist�	copyrightr�r&r=)r?r@r?r!r�rOr�r(r"r0r2�
strip_sizer r�)rr)rr!�r!r
r!�quality�dzInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %sr�rjFrlr�r�zConverted items: %s)rDrBr�r�rSzencoder error z when writing image file�_debug_multipage)q�	SAVE_INFOrnr�r��encoderinfo�
encoderconfigr�r�r)ror�r��
WRITE_LIBTIFFr�r�r�r�rr�Exifrr�r�r)r1r@rr�r�r+r;r�rRr��EXIFIFDr�r�r�r��IPTC_NAA_CHUNK�PHOTOSHOP_CHUNKrurZr{rqr��IMAGEDESCRIPTION�SOFTWARE�	DATE_TIME�ARTIST�	COPYRIGHTr�rcr�r�r��copyr��height�widthr�invertrl�
getpaletter�r��
STRIP_SIZEr�rw�STRIPBYTECOUNTSr�r�COMPRESSION_INFO_REVr�r��REFERENCEBLACKWHITErG�
setdefaultr�r�r��TILEBYTECOUNTSr~�JPEGQUALITYrr�r��io�UnsupportedOperation�OSUBFILETYPE�TRANSFERFUNCTION�SUBIFD�	itertools�chain�LIBTIFF_COREr�r.r�r�rHrpr|ru�sort�_getencoderr�r�MAXBLOCKrr�_saver��setattr)7rlr�rWr�ror�r��bits�extrar�r0rrrr�r�ror�r��
legacy_ifd�
supplied_tagsrR�iccrr��inverted_im�pxr�r��lut�colormap�colorsr�rcr�r�r��
im_strip_size�rows_per_strip�strip_byte_counts�strips_per_image�
default_value�	blocklistrr^�types�attsr�rprNr��encoder�errcoderrs7                                                       rfr2r2�s��"�6?����6H�3����
�.�.�K��$�$�M�
�v�
.�C����z�"�"�����!�-�0������	��	#���	��	&�*���3�{�e�3�G�!"�C����g�g�a�j�C�
�O��w�w�q�z�C����[� ��:�&��	�;�	��6�"���d�E�"�"��:�:�<�D��I�I�d�O��D����
�L�L�$�d�4�j�1��$�-�.�.��z�z�|�����d�E�J�J�'�'�C�8�3J�3J�,J��|�|�C�(�C��H��x�x��}�C��H�	�#�|�|�C�0�C�K�K���
��J��r�5����V�V�\�\�^�
�?�z�?�W�R��2�%>�?�M�	��	���-���c�"���r�8���
������

�C��b�i�i���.�(�R�Y�Y�->�->�s�-C��M�M��&�&�L�.�&�c�*�!�y�y��~�C��H�')�y�y�'8�'8��'=�C�K�K��$�!
�(�/�/�-������]�)C�
D�C�
���J��
�=�)�	�|�$�	�|�$�	�~�&�	�~�&�	�+�,�	�:��	�K� �	���	�K� ��	��T��;��"�4�(�C��H���/�/�%�
 �C�
� ��O����F��L����F��L���t�|�!�M���t�9��>�#&�t�9�C�� ���!�L��
��{�"�L��!��,�*/�&�'�	���J�	�3�'A�#B�a�#G�
�7�7�c�>��'�'�)�K��!�!�#�B��~��{�1�1�2�A�"�;�#4�#4�5��(*�1�a�4��C��1�S��1�a�4��6�3�!�������$�B�	�w�w�+���e�e���u�g�.�����S��Q����q��A��#�f�q�j�6�Q��U�;K�*L�M�*L�Q��S��*L�M�M�H����s�V�|�,�,�H��!��H�
��z�?�C��,�q�A�
��Y�1�t�A�w�;��?�q�0�
1�F��3���'�O�O�L�*�E�M�"(�A�+�Q�3�}��7N�PQ�3R�N��f�$�!$�~��'9�a�&?�1�%D�a�!H����N��Q���N�*��L��#�q�[��f�s�<�7H�.H���C��-�-��1�c�,�6G�G���E�!�'/�}�}����O�$�-�/�3C�a�3G�H���
�&�*:�Q�*>�?�?�L��C����
�a�"�%5�5�7H�I��C���,�/�/��Q�?�C���	�w�w�'���f��!=�#
��%�'�#��C��
�N�N�3�
�.�	#��J��^�D�I����#�!�)�,�G��g�s�+�+�w��{�g��m�/�� ��o�%��f�$�M�� ��o�%�&�C������3�4����[�&�����"5�6����2�x� � �
�����
��i�i�k��
��	�������

�	
�	�!.�t�A�w�7��$�/�/�#�)�)�+�}�7J�7J�7L�M�J�C��
�(�/�/�/��u�z�z�+H�%�P�P���(�1�1�1�!)���E�#�J��C�K�K�'�!$���S�!1�E�#�J�$�U�S�%��e�,D�E�E��#�?�?�3�/�4�4�D��%)��c�
��$��3�i�#7��e�S�)�)� %���W�i� @�5� H�D��I���{�3�3� %�e��D��I� %�D��I�3N�6�4��C��\�(:�$;�q�$@�!%�l�!3�A�!6�D������*�F�4�:�:�<�,@�A��7�7�'�'��G�
�D�J�J�L�!���	�	��
�3��$��>���#�#�B�G�G�Y��=�I������������ 0�1��#�N�N�9�+=�+=�>�q�r�B�M�G�T�����������Q�;�"�7�)�+C�D�C��#�,���
�C��C������"��������
�_�_�U�F�R�W�W�$4�f�w��PQ�>R�
S�T�	
��[�(���&��,�)��]	�"�"�2�7�7�)�8�4���c�l��!��"�����g�g�k�k�-�0���k�3�'�'��K��	��T�	��	��|N��t�*�*�
��
�sS�m�n�8o	�o�	!o �
n�"m>�>n�<o�o�	
o�o� o8�7o8c�n�\rSrSr/SQr1SkrS!S"SjjrS#SjrS#SjrS#Sjr	S$Sjr
S%S	jrS&S
jr\
R4S'SjjrS#SjrS(S
jrS#SjrS)SjrS*SjrS+SjrS&SjrS&Sjr\S,Sj5rS-SjrS.SjrS-SjrS-SjrS-SjrS-SjrS#Sjr S#Sjr!S/Sjr"S0S1Sjjr#Sr$g )2�AppendingTiffWriteri�)rrrr&r*r2rrr&r*r2r*r2r*r&r*r2>r��	r#� r$c�^�U [U5(a(XlSUl[X(aSOS5UlO#[
[[U5UlSUlURR5Ul
UR5 g![
a [US5UlNMf=f)NTzw+bzr+bF)rr�close_fp�openr�r�rr	rr��	beginning�setup)r��fnr�s   rfr��AppendingTiffWriter.__init__�s�����2�;�;��I� �D�M�
)��b�3�%�E�:����"�U�)�R�(�D�F�!�D�M����������
�
���
�
)��b�%����
)�s�B�B,�+B,c��URRUR[R5 SUlSUlURRS5=UlnU(dSUl	gSUl	US:XaURS5 O%US:XaURS5 O
S	n[U5eUR5 UR5 g)
Nrr*TFrir rhrzInvalid TIFF file header)r�r�rPr�r��whereToWriteNewIFDOffset�offsetOfNewPager��IIMM�isFirst�	setEndian�RuntimeError�skipIFDs�goToEnd)r��iimmr0s   rfrQ�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�#�#��
�
�����rqc��UR(agURRUR5 URR	S5nU(dgXR
:wa
Sn[
U5eUR5nX0R-
nURceURRUR5 URU5 URRU5 UR5 g)Nr*z1IIMM of new page doesn't match IIMM of first page)rXr�r�rVr�rWrZ�readLongrU�	writeLong�fixIFD)r�r]r0�
ifd_offsets    rf�finalize�AppendingTiffWriter.finalizes����<�<��	
�����D�(�(�)��v�v�{�{�1�~�����9�9��E�C��s�#�#��]�]�_�
��*�*�*�
��,�,�8�8�8������D�1�1�2����z�"������J�����
rqc�D�UR5 UR5 gr~)rdrQr�s rf�newFrame�AppendingTiffWriter.newFrame's���
�
���
�
�rqc��U$r~r>r�s rf�	__enter__�AppendingTiffWriter.__enter__,s���rqc�H�UR(aUR5 ggr~)rNr�)r�r�s  rf�__exit__�AppendingTiffWriter.__exit__/s���=�=��J�J�L�rqc�P�URR5UR-
$r~)r�r�rVr�s rfr��AppendingTiffWriter.tell3s���v�v�{�{�}�t�3�3�3�3rqc��U[R:XaXR-
nURR	X5 UR5$)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�rVr�r�r�)r�r�whences   rfr��AppendingTiffWriter.seek6s:���R�[�[� ��*�*�*�F������F�#��y�y�{�rqc�B�URRS[R5 URR	5nSUS--
nSUs=:aS:a'O O$URR[
U55 URR	5Ulg)NrrC)r�r�r��SEEK_ENDr�rrrV)r�r��	pad_bytess   rfr\�AppendingTiffWriter.goToEndCsj�������A�r�{�{�#��f�f�k�k�m����r��M�	��y��2���F�F�L�L��y�)�*�#�v�v�{�{�}��rqc��XlURS3UlURS3UlURS3Ulg)Nr@r��HHL)�endian�longFmt�shortFmt�	tagFormat)r�rzs  rfrY�AppendingTiffWriter.setEndianMs=�����+�+��a�(����;�;�-�q�)��
� �K�K�=��,��rqc�*�UR5nUS:Xa#URR5S-
UlgURR	U5 UR5nURR	US-[R5 M�)Nrr*rA)r`r�r�rUr��	readShortr�r�)r�rc�num_tagss   rfr[�AppendingTiffWriter.skipIFDsSsl�������J��Q��04�����
��0A��-���F�F�K�K�
�#��~�~�'�H��F�F�K�K��2�
�r�{�{�3�rqc�8�URRU5$r~)r�rr�s  rfr�AppendingTiffWriter.write^s���v�v�|�|�D�!�!rqc�L�SSSS.U$![a Sn[U5ef=f)Nr�r@r")r&r*r2zoffset is not supported)r�rZ)r��
field_sizer0s   rf�_fmt�AppendingTiffWriter._fmtas8��	$��s�s�+�J�7�7���	$�+�C��s�#�#�	$�s��#c��[R"URURU5-URRU55unU$r~)rr�rzr�r�r�)r�r�r�s   rf�_read�AppendingTiffWriter._readhs=���=�=��K�K�$�)�)�J�/�/������Z�1H�
����rqc�$�URS5$�Nr&�r�r�s rfr��AppendingTiffWriter.readShortn����z�z�!�}�rqc�$�URS5$rlr�r�s rfr`�AppendingTiffWriter.readLongqr�rqc�<�UbX:waSUSU3n[U5egg)Nzwrote only z bytes but wanted )rZ)�
bytes_written�expectedr0s   rf�_verify_bytes_written�)AppendingTiffWriter._verify_bytes_writtents4���$��)B��
��.@��
�K�C��s�#�#�*C�$rqc���URRS[R5 URR	[
R"URU55nURUS5 g)N���r*)	r�r�r�r�rrr�r{r��r�r�r�s   rf�rewriteLastShortToLong�*AppendingTiffWriter.rewriteLastShortToLongzsI�������B����$������V�[�[����u�%E�F�
��"�"�=�!�4rqc��URRU*[R5 URR	[
R"URURU5-U55nURX25 gr~)
r�r�r�r�rrr�rzr�r�)r�r�r�r�s    rf�_rewriteLast� AppendingTiffWriter._rewriteLasts\�������Z�K����-�������K�K����d�i�i�
�&;�;�U�C�
�
�	
�"�"�=�=rqc�&�URUS5$r��r�r�s  rf�rewriteLastShort�$AppendingTiffWriter.rewriteLastShort����� � ���*�*rqc�&�URUS5$rlr�r�s  rf�rewriteLastLong�#AppendingTiffWriter.rewriteLastLong�r�rqc��URR[R"URU55nURUS5 gr�)r�rrr�r|r�r�s   rf�
writeShort�AppendingTiffWriter.writeShort�s3�������V�[�[�����%F�G�
��"�"�=�!�4rqc��URR[R"URU55nURUS5 grl)r�rrr�r{r�r�s   rfra�AppendingTiffWriter.writeLong�s3�������V�[�[����u�%E�F�
��"�"�=�!�4rqc�|�UR5 UR(aURR5 ggr~)rdrNr�r�r�s rfr��AppendingTiffWriter.close�s$���
�
���=�=��F�F�L�L�N�rqc��UR5n[U5GHmn[R"URUR
R
S55up4nURUnXe-nUS:*nU(d.UR5UR-n	URU	5 X0R;a�UR
R5n
U(a1URXV5 UR
RU
S-5 M�UR
RW	5 URXV5 UR
RU
5 GM9U(dGMCUR
RS[R 5 GMp g)Nr2r*)r�r�rr�r}r�r��
fieldSizesr`rVr��Tagsr��_fixOffsetsr�r�r�)r�r�r�rR�
field_typer�r��
total_size�is_localr�cur_poss           rfrb�AppendingTiffWriter.fixIFD�s���>�>�#���x��A�%+�]�]�4�>�>�4�6�6�;�;�q�>�%R�"�C�U�����4�J�#�+�J�!�Q��H������4�+?�+?�?���$�$�V�,��i�i���&�&�+�+�-����$�$�U�7��F�F�K�K��!��,��F�F�K�K��'��$�$�U�7��F�F�K�K��(��������A�r�{�{�+�/!rqc���[U5H�nURU5nX@R-
nUS:Xa�US:�a�US:wa
Sn[U5eUR	U5 UR
R
S[R5 UR[R5 UR
R
S[R5 M�URXB5 M� g)Nr&r rznot implementedi����r2)
r�r�rVrZr�r�r�r�r�r�rrwr�)r�r�r�r�rr0s      rfr��AppendingTiffWriter._fixOffsets�s����u��A��Z�Z�
�+�F��*�*�*�F��Q��6�U�?��A�:�+�C�&�s�+�+��+�+�F�3������C����-�����
�
�.������A�r�{�{�+��!�!�&�5�!rqc�P�U(aSnOU(aSnOSnURX5$)Nr&r*r)r�)r�r��isShort�isLongr�s     rf�
fixOffsets�AppendingTiffWriter.fixOffsets�s*����J�
��J��J�����2�2rq)rWrPrNrzr�rXr{rrVr|r}rUN)F)rRr�r�r�r�r�r )r�rI)r�r�r�r�r�)rr�rrr�r�r�)rzr�r�r�)rrr�r�)r�r�r�r�)r�r�r�r�)r�rr�r�r�r�)r�r�r�r�)r�r�r�r�r�r�)r�r�r�r�r�r�)FF)r�r�r�r�r�r�r�r�)%r�r�r�r�r�r�r�rQrdrgrjrmr�r'r�r�r\rYr[rr�r�r�r`�staticmethodr�r�r�r�r�r�rar�rbr�r�r�r>rqrfrIrI�s����J�(�D�
��2�0�
��4�/1�k�k��-�-�	4�"�$�����$��$�
5�
>�+�+�5�5��
,�86�(AF�	3��	3�#'�	3�9=�	3�	
�	3�	3rqrIc��URR5nURn[UR	S/55n[US5(dU(d[
XU5$UR5n[U5nU/U-H~nX8lXHl[US5(dSn	OURn	[U	5H@n
URU
5 UR5 [
X�U5 UR5 MB M� SSS5 URU5 g!,(df   N =f!URU5 f=f)N�
append_imagesrgr)rrrr)r�r�r2r�rIrgr�r�rrg)rlr�rWrrr��cur_idx�tf�ims�nfrr�s           rf�	_save_allr��s���.�.�%�%�'�K��$�$�M������"�=�>�M��2�z�"�"�=��R�X�&�&��g�g�i�G��
 ��
$���t�m�+��"-��$1�!��s�J�/�/��C��,�,�C� ��:�C��H�H�S�M��H�H�J��#�8�,��K�K�M�	&�,�%�	�����%�
$��	�����s%�7D6�B	D%�D6�%
D3�/D6�6E	z.tifz.tiffz
image/tiff)rorr�r�)rwr�rxr�r��!tuple[IntegralLike, IntegralLike])rwrurxr�r�r�r�r�)r�r�r�r)r�r�r�r�r�z$Callable[[_LoaderFunc], _LoaderFunc])r�r�r�z2Callable[[Callable[..., Any]], Callable[..., Any]])rztuple[int, str, str]r�r�)rlzImage.Imager�r&rWzstr | bytesr�r�)��
__future__rr'r,�loggingrr�rr�collections.abcrr�	fractionsr�numbersrr�typingr	r
rrr
r�rrrrrr�_binaryrr~rr�r�
_deprecater�_typingr�_utilrrrr�	getLoggerr�r�r�rr r(r&r)r�r�r�r�r�r�rrr�r�r!r�r�r�r�r*rrr�	PREDICTORr�r�r�r�r%r+r�r��
JPEGTABLESr�r#rrrr�rrur&�IMAGEJ_META_DATA_BYTE_COUNTS�IMAGEJ_META_DATAr�rGr"r�r�r�rmr�r�rpr{r�r�r�r�rurr�r�r�rrr��
_IFDv2Baser�r�rr�r3r1�ImageFileDirectoryrTrr2�BytesIOrIr��
register_openr��
register_save�register_save_all�register_extensions�
register_mime)�krcs00rf�<module>r�sm��R#�	����	�
��4��$�C�C�J�J�!�!��!�#����-�	�	�	�8�	$�����
�
�
�
��
����
�
����
��� ���	������������������������	�	���	����	�
�
�����	������
�
������	�����
�
�
��	���� %������u���|���x�	�
�x���z�
��{���v�����
�=��
�:��
���
�>��
�=��
�?�� 
�6�!�"
�6�#�$
�6�%��**:�)?�)?�)A�B�)A�����)A�B��|
���D�!�T�2���|
���D�!�T�2���	|
�
��D�!�T�2��
�|
���D�!�T�2��
�
|
���D�!�T�2��
�|
���D�!�T�2��
�|
���D�!�T�2���|
���D�!�T�2���|
���D�!�T�2��
�|
���D�!�T�2��
�|
���D�!�T�2���|
���D�!�T�2���|
���D�!�T�2���|
� ��D�!�T�2���!|
�"��D�!�T�2��
�#|
�$��D�!�T�2��
�%|
�&��D�!�T�2��
�'|
�(��D�!�T�2��
�)|
�*��D�!�T�2���+|
�,��D�!�T�2���-|
�.��D�!�T�2���/|
�0��D�!�T�2���1|
�2��D�!�T�2��
�3|
�4��D�!�T�2��
�5|
�6��D�!�T�2���7|
�8��D�!�T�2���9|
�:��D�!�T�2��
�;|
�<��D�!�T�2��
�=|
�>��D�!�T�2��
�?|
�@��D�!�T�2��
�A|
�B��D�!�T�2��
�C|
�D��D�!�T�2��
�E|
�F��D�!�T�2���G|
�H��D�!�T�2���I|
�J��D�!�U�B��!1�K|
�L��D�!�U�B��!1�M|
�N��D�!�U�B��!1�O|
�P��D�!�U�B��!3�Q|
�R��D�!�U�B��!2�S|
�T��D�!�U�B���U|
�V��D�!�U�B���W|
�X��D�!�U�B���Y|
�Z��D�!�U�B���[|
�\��D�!�U�B���]|
�^��D�!�U�B���_|
�`��D�!�U�B���a|
�b��D�!�U�B���c|
�d��D�!�U�B���e|
�f��D�!�V�T�"�L�g|
�h��D�!�V�T�"�L�i|
�j��D�!�Y��#�^�k|
�l��D�!�Y��#�^�m|
�n��D�!�Y��#�%5�o|
�p��D�!�Y��#�%5�q|
�r��D�!�\�2�&�(8�s|
�t��D�!�\�2�&�(8�u|
�v��D�!�\�4�(�/�w|
�x��D�!�\�4�(�/�y|
�z��D�!�_�f�-�/?�{|
�|��D�!�_�f�-�/?�}|
�~��D�!�'��3�5F�|
�@��D�!�'��3�5F�A|
�B��D�!�\�4�(�*:�C|
�D��D�!�\�4�(�*:�E|
�F��D�!�_�f�-�/@�G|
�H��D�!�_�f�-�/@�I|
�J��D�!�'��3�5G�K|
�L��D�!�'��3�5G�M|
�N��D�!�\�4�(�*:�O|
�P��D�!�\�4�(�*:�Q|
�R��D�!�_�f�-�/@�S|
�T��D�!�_�f�-�/@�U|
�V��D�!�'��3�5G�W|
�X��D�!�'��3�5G�Y|
�Z��D�!�\�6�*�,<�[|
�\��D�!�\�6�*�,<�]|
�^��D�!�\�2�&�(:�_|
�`��D�!�\�2�&�(:�a|
�b��D�!�%�r�*�,@�c|
�d��D�!�%�r�*�,@�e|
�f��D�!�%�t�,�.A�g|
�h��D�!�%�t�,�.A�i|
�j��D�!�%�t�,�.B�k|
�l��D�!�%�t�,�.B�m|
�n��D�!�%�t�,�.B�o|
�p��D�!�%�t�,�.B�q|
�r��D�!�T�2���s|
�t��D�!�T�2���u|
�v��D�!�T�2��
�w|
�x��D�!�T�2��
�y|
�z��D�!�T�2���{|
�|��D�!�T�2���}|
�~��D�!�T�2��
�|
�@��D�!�T�2��
�A|
�B��D�!�T�2���C|
�D��D�!�T�2���E|
�F��D�!�T�2��
�G|
�H��D�!�T�2��
�I|
�J��D�!�T�2��
�K|
�L��D�!�T�2��
�M|
�N��D�!�V�T�"�K�O|
�P��D�!�V�T�"�L�Q|
�R��D�!�V�T�"�L�S|
�T��D�!�T�2���U|
�V��D�!�T�2���W|
�X��D�!�\�2�&�(8�Y|
�Z��D�!�\�2�&�(8�[|
�\��D�!�_�d�+�->�]|
�^��D�!�_�d�+�->�_|
�`��D�!�'��0�2D�a|
�b��D�!�'��0�2D�c|
�d��D�!�%�r�*�,@�e|
�f��D�!�%�r�*�,@�g|
�h��D�!�T�2��
�i|
�j��D�!�T�2��
�k|
�p��D�!�Y��#�_�q|
�r��D�!�Y��#�_�s|
�t��D�!�Y��#�^�u|
�v��D�!�Y��#�^�w|
�	�|�A�y�A�A�����u�z�z�8�$�?�?�
�:�B�?�"�%�	'�%�25�%�&�%�
�	�
�"�
�-0�
�&�
�&�����G'�(�G'�T�/���=�s�B�C��	���$���S��)�J��J�M$�J�M$�`(6��$�(7��%�����I�C���<�<��S�!�D��!�U�4�&�>�>�#�3F�q�3I�J��!�V�D�6�?�O�C�4H�I���O�S�$�X�1�X�x+��lH�I�'�'�lH�l
��#�r�1�a��t�	$�
��#�r�1�a��t�	$�	
�
	�4��Q��6�1�
%�
��#�r�1�a��t�	$�

�	�4��Q��6�1�
%�
��'�2�q�!�U�D�	)�
��V�R��A�u�d�+�
��g�r�1�a���
-�
��'�2�q�!�U�D�	)�
�
�E�2�q�!�Y��-�
��V�R��A�|�Q�/�
��V�R��A�|�Q�/�
��V�R��A�|�T�2�
� �g�r�1�a��D�
1�!
�"
�E�2�q�!�Y��-�#
�$
�x��Q��5�$�/�%
�&�g�r�1�a���
-�'
�(��Q��5�$�/���Q��5�$�/�+
�	�2s-�l	H3�"�*�*�H3�V�>���M�(�(�-��A����M�(�(�%�0����
�,�,�i�8����-�.�.���0A�B����M�(�(�,�7��MCCs�`!

Filemanager

Name Type Size Permission Actions
BdfFontFile.cpython-313.pyc File 4.28 KB 0644
BlpImagePlugin.cpython-313.pyc File 23.93 KB 0644
BmpImagePlugin.cpython-313.pyc File 17.97 KB 0644
BufrStubImagePlugin.cpython-313.pyc File 2.68 KB 0644
ContainerIO.cpython-313.pyc File 6.72 KB 0644
CurImagePlugin.cpython-313.pyc File 2.37 KB 0644
DcxImagePlugin.cpython-313.pyc File 2.73 KB 0644
DdsImagePlugin.cpython-313.pyc File 22.58 KB 0644
EpsImagePlugin.cpython-313.pyc File 15.76 KB 0644
ExifTags.cpython-313.pyc File 11.43 KB 0644
FitsImagePlugin.cpython-313.pyc File 6.06 KB 0644
FliImagePlugin.cpython-313.pyc File 6.76 KB 0644
FontFile.cpython-313.pyc File 4.45 KB 0644
FpxImagePlugin.cpython-313.pyc File 7.66 KB 0644
FtexImagePlugin.cpython-313.pyc File 5.25 KB 0644
GbrImagePlugin.cpython-313.pyc File 3.68 KB 0644
GdImageFile.cpython-313.pyc File 3.35 KB 0644
GifImagePlugin.cpython-313.pyc File 44.88 KB 0644
GimpGradientFile.cpython-313.pyc File 5.35 KB 0644
GimpPaletteFile.cpython-313.pyc File 2.12 KB 0644
GribStubImagePlugin.cpython-313.pyc File 2.68 KB 0644
Hdf5StubImagePlugin.cpython-313.pyc File 2.65 KB 0644
IcnsImagePlugin.cpython-313.pyc File 17 KB 0644
IcoImagePlugin.cpython-313.pyc File 14.92 KB 0644
ImImagePlugin.cpython-313.pyc File 12.76 KB 0644
Image.cpython-313.pyc File 165.73 KB 0644
ImageChops.cpython-313.pyc File 10.63 KB 0644
ImageCms.cpython-313.pyc File 42.28 KB 0644
ImageColor.cpython-313.pyc File 12.22 KB 0644
ImageDraw.cpython-313.pyc File 43.5 KB 0644
ImageDraw2.cpython-313.pyc File 9.43 KB 0644
ImageEnhance.cpython-313.pyc File 5.28 KB 0644
ImageFile.cpython-313.pyc File 30.8 KB 0644
ImageFilter.cpython-313.pyc File 22.79 KB 0644
ImageFont.cpython-313.pyc File 65.84 KB 0644
ImageGrab.cpython-313.pyc File 6.56 KB 0644
ImageMath.cpython-313.pyc File 15.95 KB 0644
ImageMode.cpython-313.pyc File 2.75 KB 0644
ImageMorph.cpython-313.pyc File 11.03 KB 0644
ImageOps.cpython-313.pyc File 28.21 KB 0644
ImagePalette.cpython-313.pyc File 12.04 KB 0644
ImagePath.cpython-313.pyc File 306 B 0644
ImageQt.cpython-313.pyc File 8.46 KB 0644
ImageSequence.cpython-313.pyc File 3.33 KB 0644
ImageShow.cpython-313.pyc File 13.72 KB 0644
ImageStat.cpython-313.pyc File 7.13 KB 0644
ImageTransform.cpython-313.pyc File 5.19 KB 0644
ImageWin.cpython-313.pyc File 11.44 KB 0644
ImtImagePlugin.cpython-313.pyc File 2.55 KB 0644
IptcImagePlugin.cpython-313.pyc File 8.91 KB 0644
Jpeg2KImagePlugin.cpython-313.pyc File 18.34 KB 0644
JpegImagePlugin.cpython-313.pyc File 33.72 KB 0644
JpegPresets.cpython-313.pyc File 7.9 KB 0644
McIdasImagePlugin.cpython-313.pyc File 2.23 KB 0644
MicImagePlugin.cpython-313.pyc File 3.85 KB 0644
MpegImagePlugin.cpython-313.pyc File 3.68 KB 0644
MpoImagePlugin.cpython-313.pyc File 8.04 KB 0644
MspImagePlugin.cpython-313.pyc File 5.87 KB 0644
PSDraw.cpython-313.pyc File 7.67 KB 0644
PaletteFile.cpython-313.pyc File 1.9 KB 0644
PalmImagePlugin.cpython-313.pyc File 9.46 KB 0644
PcdImagePlugin.cpython-313.pyc File 2.05 KB 0644
PcfFontFile.cpython-313.pyc File 9.68 KB 0644
PcxImagePlugin.cpython-313.pyc File 7.27 KB 0644
PdfImagePlugin.cpython-313.pyc File 9.64 KB 0644
PdfParser.cpython-313.pyc File 52.78 KB 0644
PixarImagePlugin.cpython-313.pyc File 1.94 KB 0644
PngImagePlugin.cpython-313.pyc File 61.98 KB 0644
PpmImagePlugin.cpython-313.pyc File 14.13 KB 0644
PsdImagePlugin.cpython-313.pyc File 10.81 KB 0644
QoiImagePlugin.cpython-313.pyc File 6.02 KB 0644
SgiImagePlugin.cpython-313.pyc File 8.37 KB 0644
SpiderImagePlugin.cpython-313.pyc File 12.27 KB 0644
SunImagePlugin.cpython-313.pyc File 3.42 KB 0644
TarIO.cpython-313.pyc File 1.86 KB 0644
TgaImagePlugin.cpython-313.pyc File 8.11 KB 0644
TiffImagePlugin.cpython-313.pyc File 99.07 KB 0644
TiffTags.cpython-313.pyc File 18.43 KB 0644
WalImageFile.cpython-313.pyc File 4.01 KB 0644
WebPImagePlugin.cpython-313.pyc File 13.27 KB 0644
WmfImagePlugin.cpython-313.pyc File 6.19 KB 0644
XVThumbImagePlugin.cpython-313.pyc File 2.61 KB 0644
XbmImagePlugin.cpython-313.pyc File 4.05 KB 0644
XpmImagePlugin.cpython-313.pyc File 4.2 KB 0644
__init__.cpython-313.pyc File 1.98 KB 0644
__main__.cpython-313.pyc File 346 B 0644
_binary.cpython-313.pyc File 3.24 KB 0644
_deprecate.cpython-313.pyc File 2.37 KB 0644
_tkinter_finder.cpython-313.pyc File 745 B 0644
_typing.cpython-313.pyc File 2.14 KB 0644
_util.cpython-313.pyc File 1.5 KB 0644
_version.cpython-313.pyc File 222 B 0644
features.cpython-313.pyc File 13.58 KB 0644
report.cpython-313.pyc File 278 B 0644
Filemanager