
    (ph                    <   S SK Jr  S SKJr  S SKJr  SSKJrJr  SSK	J
r  SSK	Jr  SSKJr  S	S
S.rSS jrSS jrSS jrSS jrSS jr " S S\R                  5      r\R.                  " \R0                  \5        \R2                  " \R0                  S5        S rg)    )annotations)BytesIO)Sequence   )Image	ImageFile)i16be)i32be)	deprecaterawjpeg)r      c                X    U S:X  a  [        SS5        gS[         SU  S3n[        U5      e)NPADzIptcImagePlugin.PAD          zmodule 'z' has no attribute '')r   __name__AttributeError)namemsgs     F/var/www/html/venv/lib/python3.13/site-packages/PIL/IptcImagePlugin.py__getattr__r      s7    u}',XJ24&
:C

    c                $    [        SU -   SS  5      $ )Nr   )i32cs    r   _ir    *   s    a%&&r   c                :    [        U [        5      (       a  U $ U S   $ Nr   )
isinstanceintr   s    r   _i8r%   .   s    1c""1,!,r   c                0    [        SS5        [        U 5      $ ).. deprecated:: 10.2.0zIptcImagePlugin.ir   )r   r    r   s    r   ir(   2   s    !2&a5Lr   c                l    [        SS5        U  H  n[        [        U5      S SS9  M     [        5         g)r'   zIptcImagePlugin.dumpr   02x )endN)r   printr%   )r   r(   s     r   dumpr.   8   s.    $b)Q3' 	Gr   c                  @    \ rS rSrSrSrS
S jrSS jrSS jrS r	Sr
g	)IptcImageFileE   IPTCzIPTC/NAAc                2    [        U R                  U   5      $ )N)r    info)selfkeys     r   getintIptcImageFile.getintI   s    $))C.!!r   c                |   U R                   R                  S5      nUR                  S5      (       d  gUS   US   4nUS   S:w  d	  US   S;  a  S	n[        U5      eUS
   nUS:  a  Sn[	        U5      eUS:X  a  SnX$4$ US:  a*  [        U R                   R                  US-
  5      5      nX$4$ [        US
5      nX$4$ )Nr       r"   r      r      )
r   r;         r            	      zinvalid IPTC/NAA filer=      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr    i16)r5   stagr   sizes        r   fieldIptcImageFile.fieldL   s     GGLLOwwwdAaDj Q44<3q6)II)Cc"" t#:9C#,S[D y CZdggll4#:./D y q!9Dyr   c                    U R                   R                  5       nU R                  5       u  p#U(       a  US:X  a  OU(       a  U R                   R                  U5      nOS nX R                  ;   a`  [        U R                  U   [        5      (       a  U R                  U   R                  U5        O-U R                  U   U/U R                  U'   OX@R                  U'   M  U R                  S   S   nU R                  S   S   nSU R                  ;   a  U R                  S   S   S-
  nOSnUS:X  a  U(       d  SU l        O/US:X  a  U(       a  SU   U l        OUS	:X  a  U(       a
  S
U   U l        U R                  S5      U R                  S5      4U l
         [        U R                  S5         nUS:X  a  SSU R                  -   X4/U l        g g ! [         a  n	Sn
[        U
5      U	eS n	A	ff = f)NrA   
   )r=   <   r   r   )r=   A   Lr=   RGBr>   CMYK)r=      )r=      )r=   x   zUnknown IPTC image compressioniptc)r   r   )rF   tellrO   rG   r4   r#   listappend_moder7   _sizeCOMPRESSIONKeyErrorrJ   rN   tile)r5   offsetrM   rN   tagdatalayers	componentidcompressioner   s              r   _openIptcImageFile._openh   s   WW\\^F

IC#.'',,t,iidiind33IIcN))'2&*iing%>DIIcN!(		# $ 7#A&IIg&q)	dii7#A&*BBQ;yDJq[YrDJq[YDJ [[)4;;w+??
	&%dkk(&;<K '> &499"4fJKDI   	&2C#,A%	&s   G 
G-G((G-c                   [        U R                  5      S:w  d  U R                  S   S   S:w  a  [        R                  R                  U 5      $ U R                  S   SS  u  pU R                  R                  U5        [        5       nUS:X  a  UR                  SU R                  -  5         U R                  5       u  pEUS:w  a  O\US:  aT  U R                  R                  [        US5      5      nU(       d  O'UR                  U5        U[        U5      -  nUS:  a  MT  Mu  [        R                  " U5       nUR                  5         UR                  U l        S S S 5        g ! , (       d  f       g = f)	Nr   r   r\   r;   r   s   P5
%d %d
255
rR   i    )lenrd   r   loadrF   seekr   writerN   rO   rG   minr   openim)r5   re   rj   otyperN   rL   _ims           r   rp   IptcImageFile.load   s   tyy>Q$))A,q/V";&&++D11"iil12.V I% GG'$))34JDw(GGLLT41
A (	  ZZ]cHHJffDG ]]s   8"E##
E1)r`   ra   ru   rd   N)r6   ztuple[int, int]returnr$   )rz   z"tuple[tuple[int, int] | None, int])rz   None)r   
__module____qualname____firstlineno__formatformat_descriptionr7   rO   rl   rp   __static_attributes__ r   r   r0   r0   E   s#    F#"8-L^r   r0   z.iimc                   SSK JnJn  Sn[        U [        5      (       a  U R
                  $ [        XR                  5      (       a4  U R
                  R                  S5      nU(       a  UR                  S5      nO>[        XR                  5      (       a$   U R                  R                  UR                     nUc  g " S S5      nU" 5       n [        U l        0 U l        [        U5      U l         U R#                  5         U R
                  $ ! [        [        4 a     Nff = f! [$        [        4 a     U R
                  $ f = f)z
Get IPTC information from TIFF, JPEG, or IPTC file.

:param im: An image containing IPTC data.
:returns: A dictionary containing IPTC information, or None if
    no IPTC information block was found.
r   )JpegImagePluginTiffImagePluginN	photoshopi  c                      \ rS rSrSrg)getiptcinfo.<locals>.FakeImage   r   N)r   r|   r}   r~   r   r   r   r   	FakeImager      s    r   r   ) r   r   r#   r0   r4   JpegImageFilegetTiffImageFilerM   rf   IPTC_NAA_CHUNKr   rc   	__class__r   rF   rl   
IndexError)ru   r   r   datar   r   s         r   getiptcinfor      s    3D"m$$ww	B55	6	6GGKK,	==(D	B55	6	6	66>>/"@"@AD |  
B BL BGDMBE

 77N- ) 		& ! 77Ns$   #D 0D" DD"E ?E N)r   strrz   bytes)r   r   rz   r$   )r   zint | bytesrz   r$   )r   zSequence[int | bytes]rz   r{   )
__future__r   ior   typingr   r   r   r   _binaryr	   rK   r
   r   
_deprecater   rb   r   r    r%   r(   r.   r0   register_openr   register_extensionr   r   r   r   <module>r      s   " #    ! ! !F#'-mI'' m`   M((- 8   --v 61r   