Ë
    ^ãjù5  ã                  ó  — d dl mZ h d£Zd dlZd dlmZ d dlmZmZ d dl	m
Z
 ddl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Zerd dl	mZ dZdd„Zdd„Z G d„ de
«      Z G d„ d«      Z  G d„ dej                  «      Z! ejD                  e!jF                  e!e«        ejH                  e!jF                  e«        ejJ                  e!jF                  d«        ejL                  e!jF                  d«       y)é    )Úannotations>   úPIL._binaryÚioÚmathÚwarningsN)ÚBytesIO)ÚceilÚlog)Ú
NamedTupleé   )ÚBmpImagePluginÚImageÚ	ImageFileÚPngImagePlugin)Úi16le)Úi32le)Úo8)Úo16le)Úo32leF)ÚIOs      c                ó	  ‡— |j                  t        «       | j                  j                  d«      dk(  }d| j                  v r"t	        t        | j                  d   «      «      }n7t        | j                  «      dk  r| j                  gndD �cg c]  }||f‘Œ c}}g }| g| j                  j                  dg «      z   }|D �]M  Š‰d   t        d| j                  «      kD  s‰d	   t        d| j                  «      kD  rŒ=|D ]§  }|j                  ‰k7  rŒ|j                  |«       |r�t        j                  |j                     d	   }	|	g}
|D ]Y  }|j                  ‰k7  rŒt        j                  |j                     d	   }	|	|
vsŒ8|j                  |«       |
j                  |	«       Œ[  Œè t        ˆfd
„|D «       d„ | ¬«      }|j                  «       }|j                  ‰t         j"                  j$                  d ¬«       |j                  |«       �ŒP |sd}t'        |«      ‚|j                  t)        t+        |«      «      «       |j-                  «       t+        |«      dz  z   }|D �]  }|j                  \  }}|j                  t/        |dk  r|nd«      «       |j                  t/        |dk  r|nd«      «       |r t        j                  |j                     d	d  nd\  }	}|j                  t/        |«      «       |j                  d«       |j                  d«       |j                  t)        |	«      «       t1        «       }|ra|j3                  |d«       |	dk7  r\t!        j4                  d‰«      }t7        j8                  ||t7        j:                  dddg‰¢­dd«      g«       n|j3                  |d«       |j=                  d«       |j?                  «       }|r|d d tA        |dz  «      z   |dd  z   }t+        |«      }|j                  tA        |«      «       |j                  tA        |«      «       |j-                  «       }|j=                  |«       |j                  |«       ||z   }|j=                  |«       �Œ y c c}w )NÚbitmap_formatÚbmpÚsizesé   )r   é   é    é0   é@   é€   é   Úappend_imagesr   r!   r   c              3  ój   •K  — | ]*  }|j                   ‰d    k\  r|j                  ‰d   k\  r|–— Œ, y­w)r   r   N©ÚwidthÚheight)Ú.0Úprovided_imÚsizes     €úT/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/IcoImagePlugin.pyú	<genexpr>z_save.<locals>.<genexpr>d   s=   øè ø€ ò à#Ø"×(Ñ(¨D°©GÒ3¸×8JÑ8JÈdÐSTÉgÒ8Uô  ñùs   ƒ03c                ó4   — | j                   | j                  z  S ©Nr$   )r(   s    r*   ú<lambda>z_save.<locals>.<lambda>i   s   € ¨×(9Ñ(9¸K×<NÑ<NÑ(N€ ó    )ÚkeyÚdefault)Úreducing_gapzAll sizes too large for image)r   r   ó    s     Údibr   Ú1Úraw)r5   r   éÿÿÿÿÚpngé   é   é   )!ÚwriteÚ_MAGICÚencoderinfoÚgetÚsortedÚsetÚminr)   r%   r&   Úappendr   ÚSAVEÚmodeÚcopyÚ	thumbnailr   Ú
ResamplingÚLANCZOSÚ
ValueErrorÚo16ÚlenÚtellr   r   ÚsaveÚnewr   Ú_saveÚ_TileÚseekÚreadÚo32)ÚimÚfpÚfilenamer   r   ÚdÚframesÚprovided_imsr(   ÚbitsÚ	bits_usedÚother_imÚsourceÚframeÚmsgÚoffsetr%   r&   ÚcolorsÚimage_ioÚand_maskÚimage_bytesÚ	bytes_lenÚcurrentr)   s                           @r*   rP   rP   ?   sï  ø€ Ø‡H�HŒVÔØ
�.‰.×
Ñ
˜_Ó
-°Ñ
6€CØ�"—.‘.Ñ Ü”s˜2Ÿ>™>¨'Ñ2Ó3Ó4‰ô �2—7‘7‹|˜bÒ ð �W‰W‰Ià"@ÖA˜Q�1�a’&ÒAð 	ð
 €FØ�4˜"Ÿ.™.×,Ñ,¨_¸bÓAÑA€LØó #!ˆØ�‰7”S˜˜bŸh™hÓ'Ò'¨4°©7´S¸¸b¿i¹iÓ5HÒ+HØà'ò 	!ˆKØ×Ñ 4Ò'ØØ�M‰M˜+Ô&ÙÜ%×*Ñ*¨;×+;Ñ+;Ñ<¸QÑ?�Ø!˜F�	Ø ,ò /�HØ—}‘}¨Ò,Ø Ü)×.Ñ.¨x¯}©}Ñ=¸aÑ@�DØ 9Ò,ð Ÿ™ hÔ/Ø!×(Ñ(¨Õ.ð/ñ ð!	!ô& óà'3ôñ
 OØôˆFð —K‘K“MˆEØ�O‰O˜D¤%×"2Ñ"2×":Ñ":ÈˆOÔNØ�M‰M˜%Ö ðG#!ñH Ø-ˆÜ˜‹oÐØ‡H�HŒS”�V“ÓÔØ�W‰W‹Yœ˜V› rÑ)Ñ)€FØó $ˆØŸ
™
‰ˆˆvà
�‰”˜U Sš[‘E¨aÓ0Ô1Ø
�‰”˜f sšl‘F°Ó2Ô3á>A”~×*Ñ*¨5¯:©:Ñ6°q°rÑ:Àw‰ˆˆfØ
�‰”�F“ÔØ
�‰�ŒØ
�‰�ÔØ
�‰”�T“Ôä“9ˆÙØ�J‰J�x Ô'à�rŠzÜ Ÿ9™9 S¨$Ó/�Ü—‘ØØÜ—_‘_ U¨Q°¨M°D©M¸1¸lÓKÐLõð �J‰J�x Ô'Ø�‰�aÔØ—m‘m“oˆÙØ% b q˜/¬C°¸±
«OÑ;¸kÈ"È#Ð>NÑNˆKÜ˜Ó$ˆ	Ø
�‰”�Y“Ô Ø
�‰”�V“ÔØ—'‘'“)ˆØ
�‰�ŒØ
�‰�ÔØ˜)Ñ#ˆØ
�‰�ÖñI$ùò[ Bs   ÂQ=c                ó,   — | j                  t        «      S r-   )Ú
startswithr=   )Úprefixs    r*   Ú_acceptrk   œ   s   € Ø×ÑœVÓ$Ð$r/   c                  ó|   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   y)Ú
IconHeaderÚintr%   r&   Únb_colorÚreservedÚplanesÚbppr)   ra   útuple[int, int]ÚdimÚsquareÚcolor_depthN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r/   r*   rm   rm       s;   … ØƒJØƒKØƒMØƒMØƒKØ	ƒHØ
ƒIØƒKØ	ÓØƒKØÔr/   rm   c                  ó8   — e Zd Zdd„Zdd„Zd	d
d„Zd	dd„Zdd„Zy)ÚIcoFilec                ó¬  — |j                  d«      }t        |«      sd}t        |«      ‚|| _        g | _        t        |d«      | _        t        | j                  «      D ]¹  }|j                  d«      }|d   xs d}|d   xs d}|d   }t        |d«      }t        ||||d	   t        |d«      t        |d«      t        |d
«      t        |d«      ||f||z  |xs  |dk7  xr t        t        |d«      «      xs d¬«      }	| j                  j                  |	«       Œ» t        | j                  d„ ¬«      | _        t        | j                  d„ d¬«      | _        y)zL
        Parse image from file-like object containing ico file data
        é   znot an ICO fileé   r   r   r!   r   r:   é   r9   r;   )r%   r&   ro   rp   rq   rr   r)   ra   rt   ru   rv   c                ó   — | j                   S r-   )rv   ©Úxs    r*   r.   z"IcoFile.__init__.<locals>.<lambda>Ý   s
   € °a·m±m€ r/   )r0   c                ó   — | j                   S r-   )ru   rƒ   s    r*   r.   z"IcoFile.__init__.<locals>.<lambda>ß   s
   € °a·h±h€ r/   T)r0   ÚreverseN)rS   rk   ÚSyntaxErrorÚbufÚentryÚi16Únb_itemsÚrangerm   Úi32r	   r
   rC   r@   )
Úselfrˆ   Úsr`   Úir%   r&   ro   rr   Úicon_headers
             r*   Ú__init__zIcoFile.__init__¯   sM  € ð �H‰H�Q‹KˆÜ�qŒzØ#ˆCÜ˜cÓ"Ð"àˆŒØˆŒ
ô ˜A˜q›	ˆŒô �t—}‘}Ó%ò 	+ˆAØ—‘˜“ˆAð �a‘D’K˜CˆEØ�q‘T’[˜SˆFð ˜‘tˆHÜ�a˜“)ˆCÜ$ØØØ!Ø˜1™Ü˜1˜a“yÜ˜˜1“IÜ˜˜A“YÜ˜1˜b“zØ˜F�OØ˜v‘~ð  ÒT H°¡MÒ$L´d¼3¸xÈÓ;KÓ6LÒTÐQTôˆKð  �J‰J×Ñ˜kÕ*ð5	+ô8 ˜DŸJ™JÑ,CÔDˆŒ
ä˜DŸJ™JÑ,>ÈÔMˆ�
r/   c                ól   — | j                   D �ch c]  }|j                  |j                  f’Œ c}S c c}w )zI
        Get a set of all available icon sizes and color depths.
        )r‰   r%   r&   )rŽ   Úhs     r*   r   zIcoFile.sizesá   s)   € ð .2¯Z©ZÖ8¨�—‘˜!Ÿ(™(Ò#Ò8Ð8ùÒ8s   �1c                óŒ   — t        | j                  «      D ],  \  }}||j                  k(  sŒ|du s||j                  k(  sŒ*|c S  y)NFr   )Ú	enumerater‰   rt   rv   )rŽ   r)   rr   r�   r”   s        r*   ÚgetentryindexzIcoFile.getentryindexç   sD   € Ü˜dŸj™jÓ)ò 	‰DˆAˆqØ�q—u‘u‹} #¨¡,°#¸¿¹Ó2FØ’ð	ð r/   c                óD   — | j                  | j                  ||«      «      S )z,
        Get an image from the icon
        )r_   r—   )rŽ   r)   rr   s      r*   ÚgetimagezIcoFile.getimageí   s    € ð �z‰z˜$×,Ñ,¨T°3Ó7Ó8Ð8r/   c                óœ  — | j                   |   }| j                  j                  |j                  «       | j                  j	                  d«      }| j                  j                  |j                  «       |dd t
        j                  k(  r@t        j                  | j                  «      }t        j                  |j                  «       |S t        j                  | j                  «      }t        j                  |j                  «       |j                  d   t        |j                  d   dz  «      f|_        |j                  d   \  }}}}t!        j"                  |ddg|j                  ¢­||«      |j                  d<   |j$                  dk(  r�| j                  j                  |«       | j                  j	                  |j                  d   |j                  d   z  dz  «      ddd…   }		 t        j&                  d	|j                  |	d
d«      }
nÒ|j                  d   }|dz  dkD  r|d|j                  d   dz  z
  z  }t        ||j                  d   z  dz  «      }|j                  |j                  z   |z
  }| j                  j                  |«       | j                  j	                  |«      }	 t        j&                  d|j                  |d
dt        |dz  «      df«      }
|
r"|j-                  d«      }|j/                  |
«       |S # t(        $ r t         j*                  rd}
n‚ Y ŒEw xY w# t(        $ r t         j*                  rd}
n‚ Y Œhw xY w)z-
        Get an image from frame idx
        r9   Nr   r   r:   r   r€   r�   ÚLr6   )r›   r   r7   r5   z1;Ir7   ÚRGBA)r‰   rˆ   rR   ra   rS   r   r=   ÚPngImageFiler   Ú_decompression_bomb_checkr)   r   ÚDibImageFilern   Ú_sizeÚtiler   rQ   rr   Ú
frombufferrJ   ÚLOAD_TRUNCATED_IMAGESÚconvertÚputalpha)rŽ   ÚidxÚheaderÚdatarU   rX   ÚeÚoÚaÚalpha_bytesÚmaskÚwÚtotal_bytesÚand_mask_offsetÚ	mask_datas                  r*   r_   zIcoFile.frameó   sÑ  € ð
 —‘˜C‘ˆà�‰�‰�f—m‘mÔ$Ø�x‰x�}‰}˜QÓˆØ�‰�‰�f—m‘mÔ$ð ��ˆ8”~×,Ñ,Ò,ä×,Ñ,¨T¯X©XÓ6ˆBÜ×+Ñ+¨B¯G©GÔ4ðV ˆ	ôQ  ×,Ñ,¨T¯X©XÓ6ˆBÜ×+Ñ+¨B¯G©GÔ4ð Ÿ™ ™
¤C¨¯©°©
°Q©Ó$7Ð8ˆBŒHØŸ™ ™‰JˆAˆq�!�QÜ"Ÿ™¨¨Q°Ð,<°B·G±GÑ,<¸aÀÓCˆB�G‰G�A‰Jð �z‰z˜RÒð —‘—‘˜aÔ à"Ÿh™hŸm™m¨B¯G©G°A©J¸¿¹À¹Ñ,CÀaÑ,GÓHÈÈÈAÈÑN�ðÜ ×+Ñ+ØØŸ™Ø#ØØ$ó‘Dð —G‘G˜A‘J�Ø˜‘F˜a’<à˜˜rŸw™w q™z¨B™Ñ/Ñ/�Aô
 " 1 r§w¡w¨q¡z¡>°QÑ"6Ó7�Ø"(§-¡-°&·+±+Ñ"=ÀÑ"K�à—‘—‘˜oÔ.Ø ŸH™HŸM™M¨+Ó6�	ðÜ ×+Ñ+ØØŸ™Ø!ØØ¤ A¨¡E£
¨BÐ/ó�Dñ  Ø—Z‘Z Ó'�Ø—‘˜DÔ!àˆ	øôW "ò Ü ×6Ò6Ø#™àñ ðûô< "ò Ü ×6Ò6Ø#™àñ ðús$   Ç,#L Ê02L+ ÌL(Ì'L(Ì+MÍ
MN)rˆ   ú	IO[bytes]ÚreturnÚNone)r³   zset[tuple[int, int]])F)r)   rs   rr   ú
int | boolr³   rn   )r)   rs   rr   rµ   r³   úImage.Image)r¦   rn   r³   r¶   )rw   rx   ry   r’   r   r—   r™   r_   r{   r/   r*   r}   r}   ®   s   „ ó0Nód9ôô9ôZr/   r}   c                  óh   — e Zd ZdZdZdZd
d„Zedd„«       Zej                  dd„«       Zdd„Z
dd„Zy	)ÚIcoImageFileaý  
    PIL read-only image support for Microsoft Windows .ico files.

    By default the largest resolution image in the file will be loaded. This
    can be changed by altering the 'size' attribute before calling 'load'.

    The info dictionary has a key 'sizes' that is a list of the sizes available
    in the icon file.

    Handles classic, XP and Vista icon formats.

    When saving, PNG compression is used. Support for this was only added in
    Windows Vista. If you are unable to view the icon in Windows, convert the
    image to "RGBA" mode before saving.

    This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis
    <casadebender@gmail.com>.
    https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki
    ÚICOzWindows Iconc                ó  — | j                   €J ‚t        | j                   «      | _        | j                  j                  «       | j                  d<   | j                  j
                  d   j                  | _        | j                  «        y )Nr   r   )	rV   r}   Úicor   Úinfor‰   rt   r)   Úload©rŽ   s    r*   Ú_openzIcoImageFile._openl  s^   € Ø�w‰wÐ"Ð"Ð"Ü˜4Ÿ7™7Ó#ˆŒØ!ŸX™XŸ^™^Ó-ˆ�	‰	�'ÑØ—H‘H—N‘N 1Ñ%×)Ñ)ˆŒ	Ø�	‰	�r/   c                ó   — | j                   S r-   )r    r¾   s    r*   r)   zIcoImageFile.sizes  s   € à�z‰zÐr/   c                óN   — || j                   d   vrd}t        |«      ‚|| _        y )Nr   z2This is not one of the allowed sizes of this image)r¼   rJ   r    )rŽ   Úvaluer`   s      r*   r)   zIcoImageFile.sizew  s)   € à˜Ÿ	™	 'Ñ*Ñ*ØFˆCÜ˜S“/Ð!Øˆ�
r/   c                ó
  — | j                   �B| j                  j                  | j                  k(  rt        j                  j	                  | «      S | j
                  j                  | j                  «      }|j	                  «        |j                  | _        |j                  | _        |j                  r|j                  | _	        |j                  | j                  k7  rŠt        j                  d«       | j
                  j                  | j                  «      }t        | j                  d   «      }|j                  ||<   t        |«      | j                  d<   |j                  | _        t        j                  j	                  | «      S )NzImage was not the expected sizer   )Ú_imrU   r)   r   r½   r»   r™   rE   Ú_modeÚpaletter   Úwarnr—   Úlistr¼   rA   )rŽ   rU   Úindexr   s       r*   r½   zIcoImageFile.load~  s  € Ø�8‰8Ð D§G¡G§L¡L°D·I±IÒ$=ä—;‘;×#Ñ# DÓ)Ð)Ø�X‰X×Ñ˜tŸy™yÓ)ˆà
�‰Œ	Ø—%‘%ˆŒØ—W‘WˆŒ
Ø�:Š:ØŸ:™:ˆDŒLØ�7‰7�d—i‘iÒÜ�M‰MÐ;Ô<à—H‘H×*Ñ*¨4¯9©9Ó5ˆEÜ˜Ÿ™ 7Ñ+Ó,ˆEØŸ7™7ˆE�%‰LÜ!$ U£ˆD�I‰I�gÑàŸ™ˆDŒIÜ�{‰{×Ñ Ó%Ð%r/   c                 ó   — y r-   r{   )rŽ   Úposs     r*   Ú	load_seekzIcoImageFile.load_seek”  s   € ð 	r/   N)r³   r´   )r³   rs   )rÂ   rs   r³   r´   )r³   zImage.core.PixelAccess | None)rË   rn   r³   r´   )rw   rx   ry   Ú__doc__ÚformatÚformat_descriptionr¿   Úpropertyr)   Úsetterr½   rÌ   r{   r/   r*   r¸   r¸   T  sO   „ ñð( €FØ'Ðóð òó ðð 
‡[�[òó ðó&ô,r/   r¸   z.icozimage/x-icon)rU   r¶   rV   r²   rW   zstr | bytesr³   r´   )rj   Úbytesr³   Úbool)'Ú
__future__r   Ú__lazy_modules__r   r   r   r   r	   r
   Útypingr   Ú r   r   r   r   Ú_binaryr   rŠ   r   r�   r   r   rK   r   rT   ÚTYPE_CHECKINGr   r=   rP   rk   rm   r}   r¸   Úregister_openrÎ   Úregister_saveÚregister_extensionÚregister_mimer{   r/   r*   ú<module>rÞ      sâ   ðõJ #â<Ð ã Ý ß Ý ç >Ó >Ý !Ý !Ý Ý !Ý !à€ÙÝð
 
€óZóz%ô�ô ÷_ñ _ôLC�9×&Ñ&ô CðT €× Ñ �L×'Ñ'¨°wÔ ?Ø €× Ñ �L×'Ñ'¨Ô /Ø €× Ñ ˜×,Ñ,¨fÔ 5à €× Ñ �L×'Ñ'¨Õ 8r/   