§
    yØ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j"        e!j#        e!e¦  «          ej$        e!j#        e¦  «          ej%        e!j#        d$¦  «          ej&        e!j#        d%¦  «         dS )(é    )Úannotations>   úPIL._binaryÚioÚmathÚwarningsN)ÚBytesIO)ÚceilÚlog)Ú
NamedTupleé   )ÚBmpImagePluginÚImageÚ	ImageFileÚPngImagePlugin)Úi16le)Úi32le)Úo8)Úo16le)Úo32leF)ÚIOs      ÚimúImage.ImageÚfpú	IO[bytes]Úfilenameústr | bytesÚreturnÚNonec                óú	  ‡— |                      t          ¦  «         | j                             d¦  «        dk    }d| j        v r(t	          t          | j        d         ¦  «        ¦  «        }n,t          | j        ¦  «        dk     r| j        gnd„ dD ¦   «         }g }| g| j                             dg ¦  «        z   }|D �]VŠ‰d         t          d	| j        ¦  «        k    s‰d
         t          d	| j	        ¦  «        k    rŒB|D ]¢}|j        ‰k    rŒ| 
                    |¦  «         |r|t          j        |j                 d
         }|g}	|D ]Y}
|
j        ‰k    rŒt          j        |
j                 d
         }||	vr*| 
                    |
¦  «         |	 
                    |¦  «         ŒZ not          ˆfd„|D ¦   «         d„ | ¬¦  «        }|                     ¦   «         }|                     ‰t           j        j        d ¬¦  «         | 
                    |¦  «         �ŒX|sd}t'          |¦  «        ‚|                      t)          t+          |¦  «        ¦  «        ¦  «         |                     ¦   «         t+          |¦  «        dz  z   }|D �]|}|j        \  }}|                      t/          |d	k     r|nd¦  «        ¦  «         |                      t/          |d	k     r|nd¦  «        ¦  «         |rt          j        |j                 d
d …         nd\  }}|                      t/          |¦  «        ¦  «         |                      d¦  «         |                      d¦  «         |                      t)          |¦  «        ¦  «         t1          ¦   «         }|rc|                     |d¦  «         |dk    rFt!          j        d‰¦  «        }t7          j        ||t7          j        dddg‰¢R dd¦  «        g¦  «         n|                     |d¦  «         |                     d¦  «         |                     ¦   «         }|r(|d d…         tA          |dz  ¦  «        z   |dd …         z   }t+          |¦  «        }|                      tA          |¦  «        ¦  «         |                      tA          |¦  «        ¦  «         |                     ¦   «         }|                     |¦  «         |                      |¦  «         ||z   }|                     |¦  «         �Œ~d S )NÚbitmap_formatÚbmpÚsizesé   c                ó   — g | ]}||f‘ŒS © r%   )Ú.0Úds     ú‡/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/PIL/IcoImagePlugin.pyú
<listcomp>z_save.<locals>.<listcomp>H   s   € ÐAÐAÐA˜Q�1�a�&ÐAÐAÐAó    )r#   é   é    é0   é@   é€   é   Úappend_imagesr   r0   r   c              3  ó`   •K  — | ](}|j         ‰d          k    ¯|j        ‰d         k    ¯$|V — Œ)dS )r   r   N©ÚwidthÚheight)r&   Úprovided_imÚsizes     €r(   ú	<genexpr>z_save.<locals>.<genexpr>d   sS   øè è € ð ð à#Ø"Ô(¨D°¬GÒ3Ð3¸Ô8JÈdÐSTÌgÒ8UÐ8Uð  à8UÐ8UÐ8UÐ8Uðð r*   c                ó    — | j         | j        z  S ©Nr3   )r6   s    r(   ú<lambda>z_save.<locals>.<lambda>i   s   € ¨Ô(9¸KÔ<NÑ(N€ r*   )ÚkeyÚdefault)Úreducing_gapzAll sizes too large for image)r,   r   ó    s     Údibr,   Ú1Úraw)rA   r   éÿÿÿÿÚpngé   é   é   )!ÚwriteÚ_MAGICÚencoderinfoÚgetÚsortedÚsetÚminr7   r4   r5   Úappendr   ÚSAVEÚmodeÚcopyÚ	thumbnailr   Ú
ResamplingÚLANCZOSÚ
ValueErrorÚo16ÚlenÚtellr   r   ÚsaveÚnewr   Ú_saveÚ_TileÚseekÚreadÚo32)r   r   r   r!   r"   ÚframesÚprovided_imsr6   ÚbitsÚ	bits_usedÚother_imÚsourceÚframeÚmsgÚoffsetr4   r5   ÚcolorsÚimage_ioÚand_maskÚimage_bytesÚ	bytes_lenÚcurrentr7   s                          @r(   r\   r\   ?   sñ  ø€ Ø‡H‚H�VÑÔÐØ
Œ.×
Ò
˜_Ñ
-Ô
-°Ò
6€CØ�"”.Ð Ð Ý•s˜2œ>¨'Ô2Ñ3Ô3Ñ4Ô4ˆˆõ �2”7‰|Œ|˜bÒ Ð ð ŒWˆIˆIàAÐAÐ"@ÐAÑAÔAð 	ð
 €FØ�4˜"œ.×,Ò,¨_¸bÑAÔAÑA€LØð #!ñ #!ˆØ�Œ7•S˜˜bœhÑ'Ô'Ò'Ð'¨4°¬7µS¸¸b¼iÑ5HÔ5HÒ+HÐ+HØà'ð 	!ð 	!ˆKØÔ 4Ò'Ð'ØØ�MŠM˜+Ñ&Ô&Ð&Øð /Ý%Ô*¨;Ô+;Ô<¸QÔ?�Ø!˜F�	Ø ,ð /ð /�HØ”}¨Ò,Ð,Ø Ý)Ô.¨x¬}Ô=¸aÔ@�DØ 9Ð,Ð,ð Ÿš hÑ/Ô/Ð/Ø!×(Ò(¨Ñ.Ô.Ð.øØˆEõ ðð ð ð à'3ðñ ô ð
 OÐNØðñ ô ˆFð —K’K‘M”MˆEØ�OŠO˜D¥%Ô"2Ô":ÈˆOÑNÔNÐNØ�MŠM˜%Ñ Ô Ð ùØð Ø-ˆÝ˜‰oŒoÐØ‡H‚H�S•�V‘”ÑÔÑÔÐØ�WŠW‰YŒY�˜V™œ rÑ)Ñ)€FØð $ñ $ˆØœ
‰ˆˆvà
�Š•˜U Sš[˜[�E�E¨aÑ0Ô0Ñ1Ô1Ð1Ø
�Š•˜f sšl˜l�F�F°Ñ2Ô2Ñ3Ô3Ð3à>AÐN•~Ô*¨5¬:Ô6°q°r°rÔ:Ð:Àw‰ˆˆfØ
�Š•�F‘”ÑÔÐØ
�Š�‰ŒˆØ
�Š�ÑÔÐØ
�Š•�T‘”ÑÔÐå‘9”9ˆØð 	(Ø�JŠJ�x Ñ'Ô'Ð'à�rŠzˆzÝ œ9 S¨$Ñ/Ô/�Ý”ØØÝ”_ U¨Q°¨M°D¨M¨M¸1¸lÑKÔKÐLñô ð øð �JŠJ�x Ñ'Ô'Ð'Ø�Š�aÑÔÐØ—m’m‘o”oˆØð 	OØ% b q bœ/­C°¸±
©O¬OÑ;¸kÈ"È#È#Ô>NÑNˆKÝ˜Ñ$Ô$ˆ	Ø
�Š•�Y‘”Ñ Ô Ð Ø
�Š•�V‘”ÑÔÐØ—'’'‘)”)ˆØ
�Š�‰ŒˆØ
�Š�ÑÔÐØ˜)Ñ#ˆØ
�Š�ÑÔÐÑðI$ð $r*   ÚprefixÚbytesÚboolc                ó6   — |                       t          ¦  «        S r:   )Ú
startswithrI   )rp   s    r(   Ú_acceptru   œ   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<   dS )Ú
IconHeaderÚintr4   r5   Únb_colorÚreservedÚplanesÚbppr7   ri   útuple[int, int]ÚdimÚsquareÚcolor_depthN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r%   r*   r(   rw   rw       s{   € € € € € € Ø€J€J�JØ€K€K�KØ€M€M�MØ€M€M�MØ€K€K�KØ€H€H�HØ€I€I�IØ€K€K�KØÐÐÑØ€K€K�KØÐÐÑÐÐr*   rw   c                  ó:   — e Zd Zdd„Zdd„Zddd„Zddd„Zdd„ZdS )ÚIcoFileÚbufr   r   r   c                ó  — |                      d¦  «        }t          |¦  «        sd}t          |¦  «        ‚|| _        g | _        t          |d¦  «        | _        t          | j        ¦  «        D ]ß}|                      d¦  «        }|d         pd}|d         pd}|d         }t          |d¦  «        }t          ||||d	         t          |d¦  «        t          |d¦  «        t          |d
¦  «        t          |d¦  «        ||f||z  |p$|dk    rt          t          |d¦  «        ¦  «        pd¬¦  «        }	| j                             |	¦  «         Œàt          | j        d„ ¬¦  «        | _        t          | j        d„ d¬¦  «        | _        dS )zL
        Parse image from file-like object containing ico file data
        é   znot an ICO fileé   r#   r   r0   r   rF   é   rE   rG   )r4   r5   ry   rz   r{   r|   r7   ri   r~   r   r€   c                ó   — | j         S r:   )r€   ©Úxs    r(   r;   z"IcoFile.__init__.<locals>.<lambda>Ý   s   € °a´m€ r*   )r<   c                ó   — | j         S r:   )r   r�   s    r(   r;   z"IcoFile.__init__.<locals>.<lambda>ß   s   € °a´h€ r*   T)r<   ÚreverseN)r_   ru   ÚSyntaxErrorr‡   ÚentryÚi16Únb_itemsÚrangerw   Úi32r	   r
   rO   rL   )
Úselfr‡   Úsrh   Úir4   r5   ry   r|   Úicon_headers
             r(   Ú__init__zIcoFile.__init__¯   s�  € ð �HŠH�Q‰KŒKˆÝ�q‰zŒ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”yÝ˜˜1‘I”IÝ˜˜A‘Y”YÝ˜1˜b‘z”zØ˜F�OØ˜v‘~ð  ÐT H°¢MÐ$Lµd½3¸xÈÑ;KÔ;KÑ6LÔ6LÐTÐQTðñ ô ˆKð  ŒJ×Ò˜kÑ*Ô*Ð*Ð*å˜DœJÐ,CÐ,CÐDÑDÔDˆŒ
å˜DœJÐ,>Ð,>ÈÐMÑMÔMˆŒ
ˆ
ˆ
r*   úset[tuple[int, int]]c                ó$   — d„ | j         D ¦   «         S )zI
        Get a set of all available icon sizes and color depths.
        c                ó*   — h | ]}|j         |j        f’ŒS r%   r3   )r&   Úhs     r(   ú	<setcomp>z IcoFile.sizes.<locals>.<setcomp>å   s!   € Ð8Ð8Ð8¨�”˜!œ(Ð#Ð8Ð8Ð8r*   )r’   ©r—   s    r(   r"   zIcoFile.sizesá   s   € ð 9Ð8¨T¬ZÐ8Ñ8Ô8Ð8r*   Fr7   r}   r|   ú
int | boolrx   c                óv   — t          | j        ¦  «        D ]#\  }}||j        k    r|du s||j        k    r|c S Œ$dS )NFr   )Ú	enumerater’   r~   r€   )r—   r7   r|   r™   rŸ   s        r(   ÚgetentryindexzIcoFile.getentryindexç   sM   € Ý˜dœjÑ)Ô)ð 	ð 	‰DˆAˆqØ�q”uŠ}ˆ} #¨ , ,°#¸¼Ò2FÐ2FØ���øØˆqr*   r   c                óT   — |                       |                      ||¦  «        ¦  «        S )z,
        Get an image from the icon
        )rg   r¥   )r—   r7   r|   s      r(   ÚgetimagezIcoFile.getimageí   s&   € ð �zŠz˜$×,Ò,¨T°3Ñ7Ô7Ñ8Ô8Ð8r*   Úidxc                ó  — | j         |         }| j                             |j        ¦  «         | j                             d¦  «        }| j                             |j        ¦  «         |dd…         t
          j        k    r4t          j        | j        ¦  «        }t          j	        |j
        ¦  «         �nPt          j        | j        ¦  «        }t          j	        |j
        ¦  «         |j
        d         t          |j
        d         dz  ¦  «        f|_        |j        d         \  }}}}t!          j        |ddg|j
        ¢R ||¦  «        |j        d<   |j        dk    r™| j                             |¦  «         | j                             |j
        d         |j
        d         z  dz  ¦  «        ddd…         }		 t          j        d	|j
        |	d
d¦  «        }
�n# t(          $ r t           j        rd}
n‚ Y nèw xY w|j
        d         }|dz  dk    r|d|j
        d         dz  z
  z  }t          ||j
        d         z  dz  ¦  «        }|j        |j
        z   |z
  }| j                             |¦  «         | j                             |¦  «        }	 t          j        d|j
        |d
dt          |dz  ¦  «        df¦  «        }
n # t(          $ r t           j        rd}
n‚ Y nw xY w|
r*|                     d¦  «        }|                     |
¦  «         |S )z-
        Get an image from frame idx
        rE   Nr   r   rF   r,   rŠ   r‹   ÚLrB   )rª   r   rC   rA   z1;IrC   ÚRGBA)r’   r‡   r^   ri   r_   r   rI   ÚPngImageFiler   Ú_decompression_bomb_checkr7   r   ÚDibImageFilerx   Ú_sizeÚtiler   r]   r|   Ú
frombufferrV   ÚLOAD_TRUNCATED_IMAGESÚconvertÚputalpha)r—   r¨   ÚheaderÚdatar   r'   ÚeÚoÚaÚalpha_bytesÚmaskÚwÚtotal_bytesÚand_mask_offsetÚ	mask_datas                  r(   rg   zIcoFile.frameó   s  € ð
 ”˜C”ˆàŒ�Š�f”mÑ$Ô$Ð$ØŒx�}Š}˜QÑÔˆØŒ�Š�f”mÑ$Ô$Ð$ð ���Œ8•~Ô,Ò,Ð,åÔ,¨T¬XÑ6Ô6ˆBÝÔ+¨B¬GÑ4Ô4Ð4Ñ4õ  Ô,¨T¬XÑ6Ô6ˆBÝÔ+¨B¬GÑ4Ô4Ð4ð œ œ
¥C¨¬°¬
°Q©Ñ$7Ô$7Ð8ˆBŒHØœ œ‰JˆAˆq�!�QÝ"œ¨¨Q°Ð,<°B´GÐ,<Ð,<¸aÀÑCÔCˆBŒG�A‰Jð Œz˜RÒÐð ”—’˜aÑ Ô Ð à"œhŸmšm¨B¬G°A¬J¸¼À¼Ñ,CÀaÑ,GÑHÔHÈÈÈAÈÔN�ðÝ Ô+ØØœØ#ØØ$ñô �D‘Døõ "ð ð ð Ý Ô6ð Ø#˜˜àð ˜ðøøøð ”G˜A”J�Ø˜‘F˜a’<�<à˜˜rœw qœz¨B™Ñ/Ñ/�Aõ
 " 1 r¤w¨q¤z¡>°QÑ"6Ñ7Ô7�Ø"(¤-°&´+Ñ"=ÀÑ"K�à”—’˜oÑ.Ô.Ð.Ø œHŸMšM¨+Ñ6Ô6�	ðÝ Ô+ØØœØ!ØØ¥ A¨¡E¡
¤
¨BÐ/ñô �D�Døõ "ð ð ð Ý Ô6ð Ø#˜˜àð ˜ðøøøð ð "Ø—Z’Z Ñ'Ô'�Ø—’˜DÑ!Ô!Ð!àˆ	s$   Æ3G ÇG/Ç.G/Ê0J6 Ê6KËKN)r‡   r   r   r   )r   rœ   )F)r7   r}   r|   r¢   r   rx   )r7   r}   r|   r¢   r   r   )r¨   rx   r   r   )r�   r‚   rƒ   r›   r"   r¥   r§   rg   r%   r*   r(   r†   r†   ®   s�   € € € € € ð0Nð 0Nð 0Nð 0Nðd9ð 9ð 9ð 9ðð ð ð ð ð9ð 9ð 9ð 9ð 9ðZð Zð Zð Zð Zð Zr*   r†   c                  ól   — 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dS )Ú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 Iconr   r   c                óì   — | j         €J ‚t          | j         ¦  «        | _        | j                             ¦   «         | j        d<   | j        j        d         j        | _        |                      ¦   «          d S )Nr"   r   )	r   r†   Úicor"   Úinfor’   r~   r7   Úloadr¡   s    r(   Ú_openzIcoImageFile._openl  s]   € ØŒwÐ"Ð"Ð"Ý˜4œ7Ñ#Ô#ˆŒØ!œXŸ^š^Ñ-Ô-ˆŒ	�'ÑØ”H”N 1Ô%Ô)ˆŒ	Ø�	Š	‰Œˆˆˆr*   r}   c                ó   — | j         S r:   )r¯   r¡   s    r(   r7   zIcoImageFile.sizes  s
   € àŒzÐr*   Úvaluec                óT   — || j         d         vrd}t          |¦  «        ‚|| _        d S )Nr"   z2This is not one of the allowed sizes of this image)rÅ   rV   r¯   )r—   rÉ   rh   s      r(   r7   zIcoImageFile.sizew  s0   € à˜œ	 'Ô*Ð*Ð*ØFˆCÝ˜S‘/”/Ð!ØˆŒ
ˆ
ˆ
r*   úImage.core.PixelAccess | Nonec                ó†  — | j         �4| j        j        | j        k    rt          j                             | ¦  «        S | j                             | j        ¦  «        }|                     ¦   «          |j        | _        |j        | _        |j	        r|j	        | _	        |j        | j        k    rzt          j        d¦  «         | j                             | j        ¦  «        }t          | j        d         ¦  «        }|j        ||<   t          |¦  «        | j        d<   |j        | _        t          j                             | ¦  «        S )NzImage was not the expected sizer"   )Ú_imr   r7   r   rÆ   rÄ   r§   rQ   Ú_modeÚpaletter   Úwarnr¥   ÚlistrÅ   rM   )r—   r   Úindexr"   s       r(   rÆ   zIcoImageFile.load~  s   € ØŒ8Ð D¤G¤L°D´IÒ$=Ð$=å”;×#Ò# DÑ)Ô)Ð)ØŒX×Ò˜tœyÑ)Ô)ˆà
�Š‰	Œ	ˆ	Ø”%ˆŒØ”WˆŒ
ØŒ:ð 	&Øœ:ˆDŒLØŒ7�d”iÒÐÝŒMÐ;Ñ<Ô<Ð<à”H×*Ò*¨4¬9Ñ5Ô5ˆEÝ˜œ 7Ô+Ñ,Ô,ˆEØœ7ˆE�%‰LÝ!$ U¡¤ˆDŒI�gÑàœˆDŒIÝŒ{×Ò Ñ%Ô%Ð%r*   Úposrx   c                ó   — d S r:   r%   )r—   rÓ   s     r(   Ú	load_seekzIcoImageFile.load_seek”  s	   € ð 	ˆr*   N)r   r   )r   r}   )rÉ   r}   r   r   )r   rË   )rÓ   rx   r   r   )r�   r‚   rƒ   Ú__doc__ÚformatÚformat_descriptionrÇ   Úpropertyr7   ÚsetterrÆ   rÕ   r%   r*   r(   rÁ   rÁ   T  s©   € € € € € ðð ð( €FØ'Ððð ð ð ð ðð ð ñ „Xðð 
„[ðð ð ñ „[ðð&ð &ð &ð &ð,ð ð ð ð ð r*   rÁ   z.icozimage/x-icon)r   r   r   r   r   r   r   r   )rp   rq   r   rr   )'Ú
__future__r   Ú__lazy_modules__r   r   r   r   r	   r
   Útypingr   Ú r   r   r   r   Ú_binaryr   r“   r   r–   r   r   rW   r   r`   ÚTYPE_CHECKINGr   rI   r\   ru   rw   r†   rÁ   Úregister_openr×   Úregister_saveÚregister_extensionÚregister_mimer%   r*   r(   ú<module>rå      s7  ððJ #Ð "Ð "Ð "Ð "Ð "à<Ð<Ð<Ð à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !à€Øð ØÐÐÐÐÐð
 
€ðZð Zð Zð Zðz%ð %ð %ð %ðð ð ð ð �ñ ô ð ð_ð _ð _ð _ð _ñ _ô _ð _ðLCð Cð Cð Cð C�9Ô&ñ Cô Cð CðT €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô ˜Ô,¨fÑ 5Ô 5Ð 5à €Ô �LÔ'¨Ñ 8Ô 8Ð 8Ð 8Ð 8r*   