§
    ¢”j�Q  ã                   ó¤  — d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZ ddlZddlZdZd	ZdZ	 	 dd
lmZ n# e$ r ddlZY nw xY wdZn# e$ r dZY nw xY w G d„ de¦  «        Z G d„ de¦  «        Zd8d„Zd9d„ZdZ dZ!d8d„Z"d8d„Z#d„ Z$d„ Z%d„ Z&d8d„Z'dZ( ej)        dej*        ¬¦  «        Z+dZ,d Z-d!Z. ej)        d"¦  «        Z/d#„ Z0d$„ Z1d%„ Z2d&„ Z3 ej)        d'¦  «        Z4d(„ Z5d)„ Z6d*„ Z7 e8e¦  «        Z9e9 :                    d+¦  «          e8e¦  «        Z;e; <                    d,d-g¦  «         g d.¢Z=d/Z>g d0¢Z?d1Z@d2ZAd3ZBd4d5gZCd6d7gZDdS ):aš  fontTools.t1Lib.py -- Tools for PostScript Type 1 fonts.

Functions for reading and writing raw Type 1 data:

read(path)
	reads any Type 1 font file, returns the raw data and a type indicator:
	'LWFN', 'PFB' or 'OTHER', depending on the format of the file pointed
	to by 'path'.
	Raises an error when the file does not contain valid Type 1 data.

write(path, data, kind='OTHER', dohex=False)
	writes raw Type 1 data to the file pointed to by 'path'.
	'kind' can be one of 'LWFN', 'PFB' or 'OTHER'; it defaults to 'OTHER'.
	'dohex' is a flag which determines whether the eexec encrypted
	part should be written as hexadecimal or binary, but only if kind
	is 'OTHER'.
é    N)Úeexec)ÚgetMacCreatorAndType)ÚbytechrÚbyteordÚ	bytesjoinÚtobytes)Ú_type1_pre_eexec_orderÚ_type1_fontinfo_orderÚ_type1_post_eexec_order)ÚStandardEncodingÚjvrz1.0b3)ÚResé   c                   ó   — e Zd ZdS )ÚT1ErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/t1Lib/__init__.pyr   r   0   s   € € € € € Ø€Dr   r   c                   óT   — e Zd ZdZdd„Zdd„Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zdd„ZdS )ÚT1FontztType 1 font class.

    Uses a minimal interpeter that supports just about enough PS to parse
    Type 1 fonts.
    ÚasciiNc                 ó  — |€t          |¦  «        \  | _        }n`|dk    rt          |¦  «        | _        nE|dk    rt          |¦  «        | _        n*|dk    rt	          |¦  «        | _        nt          |¦  «        ‚|| _        d S )NÚLWFNÚPFBÚOTHER)ÚreadÚdataÚreadLWFNÚreadPFBÚ	readOtherÚ
ValueErrorÚencoding)ÚselfÚpathr%   ÚkindÚ_s        r   Ú__init__zT1Font.__init__;   s{   € Øˆ<Ý ™:œ:‰LˆDŒI�q�qØ�VŠ^ˆ^Ý  ™œˆDŒIˆIØ�UŠ]ˆ]Ý ™œˆDŒIˆIØ�WŠ_ˆ_Ý! $™œˆDŒIˆIå˜TÑ"Ô"Ð"Ø ˆŒˆˆr   Fc                 óN   — t          ||                      ¦   «         ||¦  «         d S ©N)ÚwriteÚgetData)r&   r'   ÚtypeÚdohexs       r   ÚsaveAszT1Font.saveAsH   s$   € Ýˆd�D—L’L‘N”N D¨%Ñ0Ô0Ð0Ð0Ð0r   c                 ób   — t          | d¦  «        s|                      ¦   «         | _        | j        S )Nr    )ÚhasattrÚ
createDatar    ©r&   s    r   r.   zT1Font.getDataK   s-   € Ý�t˜VÑ$Ô$ð 	*ØŸšÑ)Ô)ˆDŒIØŒyÐr   c                 ó   — | d         S )a‚  Return a generic GlyphSet, which is a dict-like object
        mapping glyph names to glyph objects. The returned glyph objects
        have a .draw() method that supports the Pen protocol, and will
        have an attribute named 'width', but only *after* the .draw() method
        has been called.

        In the case of Type 1, the GlyphSet is simply the CharStrings dict.
        ÚCharStringsr   r5   s    r   ÚgetGlyphSetzT1Font.getGlyphSetP   s   € ð �MÔ"Ð"r   c                 ód   — t          | d¦  «        s|                      ¦   «          | j        |         S )NÚfont)r3   Úparser:   )r&   Úkeys     r   Ú__getitem__zT1Font.__getitem__[   s-   € Ý�t˜VÑ$Ô$ð 	Ø�JŠJ‰LŒLˆLØŒy˜Œ~Ðr   c                 ód  — ddl m} ddl m} |                     | j        | j        ¦  «        | _        | j        d         }| j        d                              dd¦  «        }|dk    sJ ‚| j        d         d         }|                     ¦   «         D ]?\  }}t          j
        |d	¦  «        \  }}|                     ||d …         |¬
¦  «        ||<   Œ@t          t          |¦  «        ¦  «        D ]B}	t          j
        ||	         d	¦  «        \  }}|                     ||d …         |¬
¦  «        ||	<   ŒC| `d S )Nr   )ÚpsLib)ÚpsCharStringsr7   ÚPrivateÚlenIVé   ÚSubrséê  )Úsubrs)ÚfontTools.miscr?   r@   Úsuckfontr    r%   r:   ÚgetÚitemsr   ÚdecryptÚT1CharStringÚrangeÚlen)
r&   r?   r@   ÚcharStringsrB   rF   Ú	glyphNameÚ
charStringÚRÚis
             r   r;   zT1Font.parse`   sU  € Ø(Ð(Ð(Ð(Ð(Ð(Ø0Ð0Ð0Ð0Ð0Ð0à—N’N 4¤9¨d¬mÑ<Ô<ˆŒ	Ø”i Ô.ˆØ”	˜)Ô$×(Ò(¨°!Ñ4Ô4ˆØ˜ŠzˆzˆzˆzØ”	˜)Ô$ WÔ-ˆØ%0×%6Ò%6Ñ%8Ô%8ð 	ð 	Ñ!ˆI�zÝ!œM¨*°dÑ;Ô;‰MˆJ˜Ø%2×%?Ò%?Ø˜5˜6˜6Ô"¨%ð &@ñ &ô &ˆK˜	Ñ"Ð"õ •s˜5‘z”zÑ"Ô"ð 	Sð 	SˆAÝ!œM¨%°¬(°DÑ9Ô9‰MˆJ˜Ø$×1Ò1°*¸U¸V¸VÔ2DÈEÐ1ÑRÔRˆE�!‰HˆHØˆIˆIˆIr   c           	      ó(  — | j         }d}i }g }|                     |                      d|d         › �¦  «        |                      dt          j        › d�¦  «        |                      d|d         › �¦  «        g¦  «         d}|dz  }|d	z  }t
          D ]}|t          ||v ¦  «        z  }Œ|                     |                      |› d
�¦  «        ¦  «         |                     ¦   «         D ]ú\  }}|r|||<   Œ|dk    r­|d         }d}t          D ]}	|t          |	|v ¦  «        z  }Œ|                     |                      d|› d
�¦  «        ¦  «         |                     ¦   «         D ].\  }	}
|                     |  
                    |	|
¦  «        ¦  «         Œ/|                     d¦  «         ŒÀ|t          v r|||<   d}ŒÑ|                     |  
                    ||¦  «        ¦  «         Œû|                     d¦  «         |                      |¦  «        }|                     t          d|g¦  «        ¦  «         t          d¦  «        D ]*}|                     |                      d¦  «        ¦  «         Œ+|                     g d¢¦  «         t          |d¦  «        }|S )NFz%!FontType1-1.1: ÚFontNamez
%t1Font: (ú)z%%BeginResource: font é   r   é   ú dict dup beginÚFontInfoz
/FontInfo s   end defTó   ends   currentfile eexec é   Ú@0000000000000000000000000000000000000000000000000000000000000000)s   cleartomarks   %%EndResources   %%EOFú
)r:   ÚextendÚ_tobytesÚ	fontToolsÚversionÚfont_dictionary_keysÚintÚappendrJ   ÚFontInfo_dictionary_keysÚ_make_linesr   Úencode_eexecr   rM   )r&   ÚsfÚeexec_beganÚ
eexec_dictÚlinesÚsizer<   ÚvalueÚfiÚsubkeyÚsubvalueÚeexec_portionr)   r    s                 r   r4   zT1Font.createDatas   sÈ  € ØŒYˆàˆØˆ
ØˆØ�Šà—’ÐB°"°Z´.ÐBÐBÑCÔCØ—’Ð?­9Ô+<Ð?Ð?Ð?Ñ@Ô@Ø—’ÐG°r¸*´~ÐGÐGÑHÔHðñ	
ô 	
ð 	
ð ˆØ�‰	ˆØ�‰ˆÝ'ð 	#ð 	#ˆCØ•C˜˜r˜	‘N”NÑ"ˆDˆDØ�Š�T—]’] dÐ#;Ð#;Ð#;Ñ<Ô<Ñ=Ô=Ð=àŸ(š(™*œ*ð 	;ð 	;‰JˆC�Øð Ø"'�
˜3‘Øà�jÒ Ð Ø˜
”^�à�Ý6ð .ð .�FØ�C ¨" Ñ-Ô-Ñ-�D�DØ—’˜TŸ]š]Ð+M¸Ð+MÐ+MÐ+MÑNÔNÑOÔOÐOà(*¯ª©
¬
ð Eð EÑ$�F˜HØ—L’L ×!1Ò!1°&¸(Ñ!CÔ!CÑDÔDÐDÐDØ—’˜ZÑ(Ô(Ð(Ð(ØÕ/Ð/Ð/Ø"'�
˜3‘Ø"��à—’˜T×-Ò-¨c°5Ñ9Ô9Ñ:Ô:Ð:Ð:Ø�Š�VÑÔÐØ×)Ò)¨*Ñ5Ô5ˆØ�Š•YÐ 5°}ÐEÑFÔFÑGÔGÐGå�q‘”ð 	2ð 	2ˆAØ�LŠL˜Ÿš xÑ0Ô0Ñ1Ô1Ð1Ð1Ø�ŠÐAÐAÐAÑBÔBÐBå˜ Ñ%Ô%ˆØˆr   c                 óº  — g }d\  }}}d}t           }t          |                     ¦   «         d„ ¬¦  «        }|D �]Î\  }	}
|	dk    �rU|d         }d}t          D ]}|t	          ||v ¦  «        z  }Œ|                     d¦  «         |                     |                      |› d�¦  «        ¦  «         |                     ¦   «         D �]Õ\  }}|s|t          k    r|}n|s|t          v r|}n|s|t          v r|}|d	k    r|}|d
k    r.|                     |                      t          ¦  «        ¦  «         Œm|dk    �r8|D ]}|                     ¦   «          Œd„ |D ¦   «         }|                     dt          |¦  «        › d�                     d¦  «        ¦  «         t          |¦  «        D ]ž\  }}t          j        t#          t$          d |…         |g¦  «        d¦  «        \  }}|                     t#          |                      d|› dt          |¦  «        › d|› d�¦  «        ||                      d|› �¦  «        g¦  «        ¦  «         ŒŸ|                     d¦  «         |                     d¦  «         �Œ¬|                     |                      ||¦  «        ¦  «         �Œ×�Œb|	dk    �r<|                     d¦  «         |                     |                      t          |d         ¦  «        › d�¦  «        ¦  «         |d                              ¦   «         D ]·\  }}|                     ¦   «          t          j        t#          t$          d |…         |j        g¦  «        d¦  «        \  }}|                     t#          |                      d|› dt          |¦  «        › d|› d�¦  «        ||                      d|› �¦  «        g¦  «        ¦  «         Œ¸|                     d¦  «         �Œ¥|                     |                      |	|
¦  «        ¦  «         �ŒÐ|                     g d¢¦  «         t#          |d¦  «        }t          j        t#          t,          |g¦  «        d¦  «        \  }}|S )N)NNNrC   c                 ó   — | d         dk    S )Nr   rA   r   )Úitems    r   ú<lambda>z%T1Font.encode_eexec.<locals>.<lambda>±   s   € À$ÀqÄ'ÈYÒBV€ r   )r<   rA   rW   s   dup /PrivaterY   rB   Ú
OtherSubrsrD   c                 ó   — g | ]	}|j         ‘Œ
S r   )Úbytecode)Ú.0Úsubr_bins     r   ú
<listcomp>z'T1Font.encode_eexec.<locals>.<listcomp>Í   s   € Ð LÐ LÐ L°x Ô!2Ð LÐ LÐ Lr   z/Subrs z arrayr   rE   údup ú ó   defs   putr7   s   dup /CharStringsú/s   end put)r[   s%   dup /FontName get exch definefont pops   marks   currentfile closefile
r^   éqÙ  )Ú	std_subrsÚsortedrJ   ÚPrivate_dictionary_keysrd   re   r`   ÚRD_valueÚ	ND_valuesÚ	PD_valuesÚ
hintothersÚcompilerN   ÚencodeÚ	enumerater   Úencryptr   Úchar_IVr_   rg   ry   Úeexec_IV)r&   rk   rl   ÚRD_keyÚND_keyÚNP_keyrB   rF   ÚsortedItemsr<   rn   Úprrm   rp   rq   r{   rS   Úencrypted_subrrR   Ú
glyph_nameÚchar_binÚencrypted_charrr   Úencrypted_eexecs                           r   rh   zT1Font.encode_eexec¨   sí  € Øˆð "2Ñˆ�˜ØˆÝˆõ ˜Z×-Ò-Ñ/Ô/Ð5VÐ5VÐWÑWÔWˆà%ð G	;ñ G	;‰JˆC�Ø�iÒÑØ 	Ô*�à�Ý5ð .ð .�FØ�C ¨" Ñ-Ô-Ñ-�D�DØ—’˜_Ñ-Ô-Ð-Ø—’˜TŸ]š]¨dÐ+CÐ+CÐ+CÑDÔDÑEÔEÐEØ(*¯ª©
¬
ð &Iñ &IÑ$�F˜HØ!ð ( hµ(Ò&:Ð&:Ø!'˜˜Ø#ð (¨µIÐ(=Ð(=Ø!'˜˜Ø#ð (¨µIÐ(=Ð(=Ø!'˜à Ò(Ð(Ø (˜à Ò-Ð-àŸš T§]¢]µ:Ñ%>Ô%>Ñ?Ô?Ð?Ð?Ø 7Ò*Ñ*Ø(0ð /ð /˜HØ$×,Ò,Ñ.Ô.Ð.Ð.Ø LÐ LÀ8Ð LÑ LÔ L˜ØŸšÐ%A­s°5©z¬zÐ%AÐ%AÐ%A×%HÒ%HÈÑ%QÔ%QÑRÔRÐRÝ+4°UÑ+;Ô+;ð ð ™K˜A˜xÝ05´Ý )­7°6°E°6¬?¸HÐ*EÑ FÔ FÈñ1ô 1Ñ-˜N¨Að "ŸLšLÝ )à(,¯ªØ,V°1Ð,VÐ,Vµs¸>Ñ7JÔ7JÐ,VÐ,VÈVÐ,VÐ,VÐ,Vñ)*ô )*ð )7Ø(,¯ª°l¸&°l°lÑ(CÔ(Cð%&ñ!"ô !"ñ
ô 
ð 
ð 
ð Ÿš VÑ,Ô,Ð,àŸš VÑ,Ô,Ð,Ñ,àŸš T×%5Ò%5°f¸hÑ%GÔ%GÑHÔHÐHÑHñM&IðN ˜Ò%Ñ%Ø—’Ð0Ñ1Ô1Ð1Ø—’Ø—M’M¥S¨°MÔ)BÑ%CÔ%CÐ"TÐ"TÐ"TÑUÔUñô ð ð -7°}Ô,E×,KÒ,KÑ,MÔ,Mð ð Ñ(�J Ø×$Ò$Ñ&Ô&Ð&Ý(-¬Ý!¥7¨6¨E¨6¤?°HÔ4EÐ"FÑGÔGÈñ)ô )Ñ%�N Að —L’LÝ!à $§¢Ø$T¨
Ð$TÐ$TµS¸Ñ5HÔ5HÐ$TÐ$TÈ6Ð$TÐ$TÐ$Tñ!"ô !"ð !/Ø $§¢¨l°&¨l¨lÑ ;Ô ;ðñô ñ
ô 
ð 
ð 
ð —’˜ZÑ(Ô(Ð(Ñ(à—’˜T×-Ò-¨c°5Ñ9Ô9Ñ:Ô:Ð:Ñ:à�Šðð ð ñ	
ô 	
ð 	
õ " %¨Ñ.Ô.ˆÝ"œ]­9µhÀÐ5NÑ+OÔ+OÐQVÑWÔWÑˆ˜àÐr   c           
      óR  — |dk    r|                       d|› d|› d�¦  «        gS |dv r!|                       d|› d|rdnd› d�¦  «        gS |d	k    r·|t          k    r|                       d|› d
�¦  «        gS g }|                     d¦  «         |                     d¦  «         t          d¦  «        D ]?}||         }|dk    r/|                     |                       d|› d|› d�¦  «        ¦  «         Œ@|                     d¦  «         |S t	          |t
          ¦  «        r|                       d|› d|› d�¦  «        gS t	          |t          ¦  «        r!|                       d|› d|rdnd› d�¦  «        gS t	          |t          ¦  «        r:|                       d|› dd                     d„ |D ¦   «         ¦  «        › d�¦  «        gS t	          |t          ¦  «        r:|                       d|› dd                     d„ |D ¦   «         ¦  «        › d�¦  «        gS |                       d|› d|› d�¦  «        gS )NrU   r€   z /z def)ÚisFixedPitchÚ	ForceBoldÚ	RndStemUpr~   ÚtrueÚfalseÚEncodingz StandardEncoding defs   /Encoding 256 arrays'   0 1 255 {1 index exch /.notdef put} foré   z.notdefr}   z putr   z (z) defz [c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r,   ©Ústr©rz   Úvs     r   ú	<genexpr>z%T1Font._make_lines.<locals>.<genexpr>"  s(   è è € Ð5LÐ5LÀµc¸!±f´fÐ5LÐ5LÐ5LÐ5LÐ5LÐ5Lr   z] defz {c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r,   r¢   r¤   s     r   r¦   z%T1Font._make_lines.<locals>.<genexpr>$  s(   è è € Ð6MÐ6MÀ!µs¸1±v´vÐ6MÐ6MÐ6MÐ6MÐ6MÐ6Mr   z} def)
r`   r   re   rM   Ú
isinstancer£   ÚboolÚlistÚjoinÚtuple)r&   r<   rn   rl   rS   Únames         r   rg   zT1Font._make_lines
  s¢  € Ø�*ÒÐØ—M’MÐ"8 cÐ"8Ð"8¨UÐ"8Ð"8Ð"8Ñ9Ô9Ð:Ð:ØÐ<Ð<Ð<Ø—M’MÐ"N cÐ"NÐ"N°eÐ,H¨F¨FÀÐ"NÐ"NÐ"NÑOÔOÐPÐPØ�JÒÐØÕ(Ò(Ð(ØŸšÐ&D¨#Ð&DÐ&DÐ&DÑEÔEÐFÐFð �Ø—’Ð3Ñ4Ô4Ð4Ø—’ÐGÑHÔHÐHÝ˜s™œð Lð L�AØ  œ8�DØ˜yÒ(Ð(ØŸš T§]¢]Ð3I¸!Ð3IÐ3I¸tÐ3IÐ3IÐ3IÑ%JÔ%JÑKÔKÐKøØ—’˜VÑ$Ô$Ð$Ø�Ý�e�SÑ!Ô!ð 		:Ø—M’MÐ"9 cÐ"9Ð"9¨UÐ"9Ð"9Ð"9Ñ:Ô:Ð;Ð;Ý˜�tÑ$Ô$ð 	:Ø—M’MÐ"N cÐ"NÐ"N°eÐ,H¨F¨FÀÐ"NÐ"NÐ"NÑOÔOÐPÐPÝ˜�tÑ$Ô$ð 	:Ø—M’MÐ"S cÐ"SÐ"S¨S¯XªXÐ5LÐ5LÀeÐ5LÑ5LÔ5LÑ-LÔ-LÐ"SÐ"SÐ"SÑTÔTÐUÐUÝ˜�uÑ%Ô%ð 	:Ø—M’MÐ"U cÐ"UÐ"U¨c¯hªhÐ6MÐ6MÀuÐ6MÑ6MÔ6MÑ.MÔ.MÐ"UÐ"UÐ"UÑVÔVÐWÐWà—M’MÐ"7 cÐ"7Ð"7¨EÐ"7Ð"7Ð"7Ñ8Ô8Ð9Ð9r   Ústrictc                 ó.   — t          || j        |¦  «        S r,   )r   r%   )r&   ÚsÚerrorss      r   r`   zT1Font._tobytes(  s   € Ý�q˜$œ-¨Ñ0Ô0Ð0r   )r   N©F)r®   )r   r   r   Ú__doc__r*   r1   r.   r8   r=   r;   r4   rh   rg   r`   r   r   r   r   r   4   sÈ   € € € € € ðð ð!ð !ð !ð !ð1ð 1ð 1ð 1ðð ð ð
	#ð 	#ð 	#ðð ð ð
ð ð ð&3ð 3ð 3ðj`ð `ð `ðD:ð :ð :ð<1ð 1ð 1ð 1ð 1ð 1r   r   Fc                 ó  — t           j                             | ¦  «        \  }}|                     ¦   «         }t	          | ¦  «        \  }}|dk    rt          | |¦  «        dfS |dk    rt          | |¦  «        dfS t          | ¦  «        dfS )z,reads any Type 1 font file, returns raw datar   z.pfbr   r   )Úosr'   ÚsplitextÚlowerr   r!   r"   r#   )r'   Ú
onlyHeaderr)   ÚextÚcreatorÚtyps         r   r   r   /  s†   € åŒW×Ò˜dÑ#Ô#�F€A€sØ
�)Š)‰+Œ+€CÝ'¨Ñ-Ô-�L€GˆSØ
ˆf‚}€}Ý˜˜jÑ)Ô)¨6Ð1Ð1Ø
ˆf‚}€}Ý�t˜ZÑ(Ô(¨%Ð/Ð/å˜‰Œ Ð'Ð'r   r   c                 ó  — t          |¦  «         |                     ¦   «         }	 t          j        | ¦  «         n# t          j        $ r Y nw xY wd}	 |dk    rt          | |¦  «         n(|dk    rt          | |¦  «         nt          | ||¦  «         d}|r4t          s/	 t          j        | ¦  «         d S # t          j        $ r Y d S w xY wd S d S # |r2t          s,	 t          j        | ¦  «         w # t          j        $ r Y w w xY ww w xY w)Nr   r   r   r   )	ÚassertType1Úupperrµ   ÚremoveÚerrorÚ	writeLWFNÚwritePFBÚ
writeOtherÚDEBUG)r'   r    r(   r0   Úerrs        r   r-   r-   <  s[  € Ý�ÑÔÐØ�:Š:‰<Œ<€DðÝ
Œ	�$‰ŒˆˆøÝŒ8ð ð ð Øˆðøøøà
€CðØ�6Š>ˆ>Ý�d˜DÑ!Ô!Ð!Ð!Ø�UŠ]ˆ]Ý�T˜4Ñ Ô Ð Ð å�t˜T 5Ñ)Ô)Ð)Øˆàð 	•uð 	ðÝ”	˜$‘”���øÝ”8ð ð ð Ø��ðøøøð	ð 	ð 	ð 	øˆ3ð 	•uð 	ðÝ”	˜$‘”��øÝ”8ð ð ð Ø�ðøøøð	ð 	øøøsR   ¥: ºAÁAÁAC ÂB3 Â3CÃCÃ
DÃC-Ã,DÃ-C?Ã<DÃ>C?Ã?DiÐ  éP   c                 óê  — ddl m}  || ¦  «        }	 g }|                     dg ¦  «        D ]û}t          |j        d         ¦  «        }t          |j        d         ¦  «        dk    rt          d¦  «        ‚|dv r-|r|dk    r n¥|                     |j        dd…         ¦  «         Œz|d	v r n||d
k    rPt          | d¦  «        5 }|                     |                     ¦   «         ¦  «         ddd¦  «         n# 1 swxY w Y   ŒÖ|dk    rŒÝt          dt          |¦  «        z   ¦  «        ‚| 
                    ¦   «          n# | 
                    ¦   «          w xY wt          |¦  «        }t          |¦  «         |S )z)reads an LWFN font file, returns raw datar   )ÚResourceReaderÚPOSTr   zcorrupt LWFN file©r   rX   rX   N)rW   é   rC   Úrbúbad chunk code: )ÚfontTools.misc.macResrÈ   rI   r   r    r   re   Úopenr   ÚreprÚcloser   r½   )r'   r¸   rÈ   Úreaderr    ÚresÚcodeÚfs           r   r!   r!   Z  s»  € à4Ð4Ð4Ð4Ð4Ð4àˆ^˜DÑ!Ô!€FðØˆØ—:’:˜f bÑ)Ô)ð 	?ð 	?ˆCÝ˜3œ8 Aœ;Ñ'Ô'ˆDÝ�s”x ”{Ñ#Ô# qÒ(Ð(ÝÐ1Ñ2Ô2Ð2Ø�vˆ~ˆ~Øð  $¨!¢) )Ø�EØ—’˜CœH Q R RœLÑ)Ô)Ð)Ð)Ø˜��Ø�Ø˜’�Ý˜$ Ñ%Ô%ð *¨Ø—K’K §¢¡¤Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *øà˜’�ØåÐ0µ4¸±:´:Ñ=Ñ>Ô>Ð>à�Š‰Œˆˆøˆ�Š‰ŒˆˆøøøÝ�T‰?Œ?€DÝ�ÑÔÐØ€Ks0   “B.D< Ã(C5Ã)D< Ã5C9	Ã9D< Ã<C9	Ã=*D< Ä<Ec                 óf  — g }t          | d¦  «        5 }	 |                     d¦  «        t          d¦  «        k    rt          d¦  «        ‚t	          |                     d¦  «        ¦  «        }|dv rbt          |                     d¦  «        ¦  «        }|                     |¦  «        }t          |¦  «        |k    sJ ‚|                     |¦  «         n&|dk    rn#t          d	t          |¦  «        z   ¦  «        ‚|rnŒçd
d
d
¦  «         n# 1 swxY w Y   t          |¦  «        }t          |¦  «         |S )z'reads a PFB font file, returns raw datarÌ   Tr   é€   zcorrupt PFB filerÊ   rC   rW   rÍ   N)rÏ   r   r   r   r   ÚstringToLongrN   re   rÐ   r   r½   )r'   r¸   r    rÕ   rÔ   ÚchunklenÚchunks          r   r"   r"   y  sb  € à€DÝ	ˆd�DÑ	Ô	ð ˜Qð	Ø�vŠv�a‰yŒy�G C™LœLÒ(Ð(ÝÐ0Ñ1Ô1Ð1Ý˜1Ÿ6š6 !™9œ9Ñ%Ô%ˆDØ�vˆ~ˆ~Ý'¨¯ª¨q©	¬	Ñ2Ô2�ØŸš˜xÑ(Ô(�Ý˜5‘z”z XÒ-Ð-Ð-Ð-Ø—’˜EÑ"Ô"Ð"Ð"Ø˜’�ØåÐ0µ4¸±:´:Ñ=Ñ>Ô>Ð>Øð Øð	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ  �T‰?Œ?€DÝ�ÑÔÐØ€Ks   “C)DÄDÄDc                 óŠ  — t          | d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          |¦  «         t          |¦  «        }g }|D ]V\  }}|r:t	          |dd…         ¦  «        r#|                     t          |¦  «        ¦  «         ŒA|                     |¦  «         ŒWt          |¦  «        S )z'reads any (font) file, returns raw datarÌ   NrC   )rÏ   r   r½   ÚfindEncryptedChunksÚisHexre   ÚdeHexStringr   )r'   rÕ   r    ÚchunksÚisEncryptedrÚ   s         r   r#   r#   ‘  s  € å	ˆd�DÑ	Ô	ð ˜QØ�vŠv‰xŒxˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�ÑÔÐÝ  Ñ&Ô&€FØ€DØ$ð ð Ñˆ�UØð 	�5  r¨ r¤Ñ+Ô+ð 	Ø�KŠK� EÑ*Ô*Ñ+Ô+Ð+Ð+à�KŠK˜ÑÔÐÐÝ�T‰?Œ?Ðs   ‘2²6¹6c                 ój  — t          j        | ddd¦  «         t          j        | d¦  «        }	 t          j        |¦  «         d}t	          |¦  «        }|D ]u\  }}|rd}nd}|rgt          j        t          |¦  «        dz   |d t          dz
  …         z   ¦  «        }|                     d|d	¦  «         |t          dz
  d …         }|dz   }|°gŒvt          j        t          d
¦  «        dz   ¦  «        }|                     d|d	¦  «         t          j	        |¦  «         d S # t          j	        |¦  «         w xY w)NÚjustr   r   rX   iõ  r   ú rÉ   Ú rË   )
r   ÚFSpCreateResFileÚFSOpenResFileÚ
UseResFilerÜ   ÚResourcer   ÚLWFNCHUNKSIZEÚAddResourceÚCloseResFile)	r'   r    ÚresRefÚresIDrß   rà   rÚ   rÔ   rÓ   s	            r   rÁ   rÁ   £  sQ  € åÔ˜˜v v¨qÑ1Ô1Ð1ÝÔ˜t QÑ'Ô'€Fð!ÝŒ�vÑÔÐØˆÝ$ TÑ*Ô*ˆØ"(ð 		"ð 		"ÑˆK˜Øð Ø��à�Øð "Ý”l¥7¨4¡=¤=°4Ñ#7¸%Ð@SÅ-ÐRSÑBSÐ@SÔ:TÑ#TÑUÔU�Ø—’ ¨¨rÑ2Ô2Ð2Ø�m¨aÑ/Ð1Ð1Ô2�Ø ™	�ð	 ð "øõ
 Œl�7 1™:œ:¨Ñ,Ñ-Ô-ˆØ�Š˜  rÑ*Ô*Ð*åÔ˜Ñ Ô Ð Ð Ð ø�Ô˜Ñ Ô Ð Ð øøøs   ®CD ÄD2c           	      óä  — t          |¦  «        }t          | d¦  «        5 }|D ]‚\  }}|rd}nd}|                     t          d¦  «        t          |¦  «        z   ¦  «         |                     t	          t          |¦  «        ¦  «        ¦  «         |                     |¦  «         Œƒ|                     t          d¦  «        t          d¦  «        z   ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚwbrX   r   r×   rW   )rÜ   rÏ   r-   r   ÚlongToStringrN   )r'   r    rß   rÕ   rà   rÚ   rÔ   s          r   rÂ   rÂ   »  s  € Ý  Ñ&Ô&€FÝ	ˆd�DÑ	Ô	ð 	+˜QØ"(ð 	ð 	ÑˆK˜Øð Ø��à�Ø�GŠG•G˜C‘L”L¥7¨4¡=¤=Ñ0Ñ1Ô1Ð1Ø�GŠG•L¥ U¡¤Ñ,Ô,Ñ-Ô-Ð-Ø�GŠG�E‰NŒNˆNˆNØ	�Š•˜‘”�w q™zœzÑ)Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s    B8C%Ã%C)Ã,C)c           	      óŠ  — t          |¦  «        }t          | d¦  «        5 }t          dz  }|D ]|\  }}|rd}nd}|dk    rU|rS|rP|                     t	          j        |d |…         ¦  «        ¦  «         |                     d¦  «         ||d …         }|°PŒg|                     |¦  «         Œ}	 d d d ¦  «         d S # 1 swxY w Y   d S )Nrï   rX   r   ó   )rÜ   rÏ   ÚHEXLINELENGTHr-   r   Ú	hexString)	r'   r    r0   rß   rÕ   Ú
hexlinelenrà   rÚ   rÔ   s	            r   rÃ   rÃ   É  s,  € Ý  Ñ&Ô&€FÝ	ˆd�DÑ	Ô	ð ˜QÝ" aÑ'ˆ
Ø"(ð 	ð 	ÑˆK˜Øð Ø��à�Ø�qŠyˆy˜UˆyØð /Ø—G’G�EœO¨E°+°:°+Ô,>Ñ?Ô?Ñ@Ô@Ð@Ø—G’G˜E‘N”N�NØ! * + +Ô.�Eð ð /øð
 —’˜‘”��ð	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s    B
B8Â8B<Â?B<ó   currentfile eexecs   (0[ 	
]*){512})Úflagss   currentfile closefiles   %-- eexec starts   %-- eexec ends   [0-9A-Fa-f]*$c                 ó:   — t                                | ¦  «        d uS r,   )Ú_ishexREÚmatch)Útexts    r   rÝ   rÝ   è  s   € Ý�>Š>˜$ÑÔ tÐ+Ð+r   c                 ó$  — t          | ¦  «        }g } |D �]m\  }}|ròt          |d d…         ¦  «        rt          |¦  «        }t          j        |d¦  «        \  }}|dd …         }|t          t          ¦  «         dz
  d…         t          k    r8|t          t          ¦  «         dz
  d…         t          k    rt          d¦  «        ‚|d t          t          ¦  «         dz
  …         dz   }|                      t          |z   t          z   ¦  «         Œú|t          t          ¦  «         dz
  d…         t          k    r5|                      |d t          t          ¦  «         dz
  …         ¦  «         �ŒX|                      |¦  «         �Œot          | ¦  «        S )	NrC   r�   r   éÿÿÿÿrX   éþÿÿÿzinvalid end of eexec partrò   )rÜ   rÝ   rÞ   r   rK   rN   ÚEEXECINTERNALENDr   re   ÚEEXECBEGINMARKERÚEEXECENDMARKERÚ
EEXECBEGINr   )r    rß   rà   rÚ   Ú	decryptedrR   s         r   ÚdecryptType1r  ì  sŒ  € Ý  Ñ&Ô&€FØ€DØ$ð #ñ #Ñˆ�UØð 	#Ý�U˜2˜A˜2”YÑÔð +Ý# EÑ*Ô*�Ý œ=¨°Ñ6Ô6‰LˆI�qØ! ! " "œˆIà�3Õ/Ñ0Ô0Ð0°1Ñ4°rÐ9Ô:Õ>NÒNÐNØ�sÕ#3Ñ4Ô4Ð4°qÑ8¸2Ð=Ô>ÕBRÒRÐRåÐ9Ñ:Ô:Ð:Ø!Ð">¥SÕ)9Ñ%:Ô%:Ð$:¸QÑ$>Ð">Ô?À%ÑGˆIØ�KŠKÕ(¨9Ñ4µ~ÑEÑFÔFÐFÐFà•c�*‘o”oÐ%¨Ñ)¨BÐ.Ô/µ:Ò=Ð=Ø—’˜EÐ"8¥S­¡_¤_Ð$4°qÑ$8Ð"8Ô9Ñ:Ô:Ð:Ñ:à—’˜EÑ"Ô"Ð"Ñ"Ý�T‰?Œ?Ðr   c           	      óê  — g }	 |                       t          ¦  «        }|dk     r�n6|t          t          ¦  «        z   dz   }t                               | |¦  «        }|€t          d¦  «        ‚|                     ¦   «         }| ||dz   …         }t          |d d…         ¦  «        rt          |¦  «        }t          j
        |d¦  «        \  }}|                      t          ¦  «        }|dk     rt          d¦  «        ‚|                     d| d |…         f¦  «         |                     d|d |t          t          ¦  «        z   dz   …         f¦  «         | |d …         } �ŒX|                     d| f¦  «         |S )NTr   r   zcan't find end of eexec partrX   rC   r�   )Úfindr  rN   ÚEEXECENDÚsearchr   ÚstartrÝ   rÞ   r   rK   rÿ   re   )	r    rß   ÚeBeginÚendMatchÚeEndÚ
cypherTextÚ	plainTextrR   Ú	eEndLocals	            r   rÜ   rÜ     so  € Ø€FðØ—’�:Ñ&Ô&ˆØ�AŠ:ˆ:ÙØ�#�j™/œ/Ñ)¨AÑ-ˆÝ—?’? 4¨Ñ0Ô0ˆØÐÝÐ8Ñ9Ô9Ð9Ø�~Š~ÑÔˆØ˜& 4¨!¡8Ð+Ô,ˆ
Ý�˜B˜Q˜B”Ñ Ô ð 	1Ý$ ZÑ0Ô0ˆJÝ”} Z°Ñ7Ô7‰ˆ	�1Ø—N’NÕ#3Ñ4Ô4ˆ	Ø�qŠ=ˆ=ÝÐ8Ñ9Ô9Ð9Ø�Š�q˜$˜w ˜wœ-Ð(Ñ)Ô)Ð)Ø�Š�q˜*Ð%L yµ3Õ7GÑ3HÔ3HÑ'HÈ1Ñ'LÐ%LÔMÐNÑOÔOÐOØ�D�E�EŒ{ˆñ%ð& ‡M‚M�1�d�)ÑÔÐØ€Mr   c                 óh   — t          j        t          |                      ¦   «         ¦  «        ¦  «        S r,   )r   rÞ   r   Úsplit)Ú	hexstrings    r   rÞ   rÞ     s%   € ÝÔ�Y y§¢Ñ'8Ô'8Ñ9Ô9Ñ:Ô:Ð:r   s   /FontType\s+1\s+defc                 ó
  — dD ]}| d t          |¦  «        …         |k    r nŒ t          d¦  «        ‚t                               | ¦  «        st          d¦  «        ‚|                      d¦  «        dk     rt          d¦  «        ‚| S )N)s   %!PS-AdobeFonts   %!FontType1znot a PostScript fontznot a Type 1 fontrö   r   znot an encrypted Type 1 font)rN   r   Ú_fontType1REr  r  )r    Úheads     r   r½   r½   &  s—   € Ø3ð /ð /ˆØ�•#�d‘)”)�Ô Ò$Ð$ØˆEð %õ Ð-Ñ.Ô.Ð.Ý×Ò˜tÑ$Ô$ð +ÝÐ)Ñ*Ô*Ð*Ø‡y‚yÐ%Ñ&Ô&¨Ò*Ð*ÝÐ4Ñ5Ô5Ð5à€Kr   c                 óp   — d}t          d¦  «        D ]#}|t          | d|dz  z  z  |dz  z	  ¦  «        z  }Œ$|S )Nr   rC   éÿ   r\   )rM   r   )Úlongr°   rS   s      r   rð   rð   7  sK   € Ø€AÝ�1‰XŒXð :ð :ˆØ	�W�d˜d q¨1¡u™oÑ.°1°q±5Ñ8Ñ9Ô9Ñ9ˆˆØ€Hr   c                 ó®   — t          | ¦  «        dk    rt          d¦  «        ‚d}t          d¦  «        D ] }|t          | |         ¦  «        |dz  z  z  }Œ!|S )NrC   zstring must be 4 bytes longr   r\   )rN   r$   rM   r   )r°   ÚlrS   s      r   rØ   rØ   >  s^   € Ý
ˆ1�v„v�‚{€{ÝÐ6Ñ7Ô7Ð7Ø	€AÝ�1‰XŒXð &ð &ˆØ	�W�Q�q”T‰]Œ]˜q 1™uÑ%Ñ%ˆˆØ€Hr   Ú
FontMatrixÚFSTypeÚ	Copyright)rD   rw   ÚUniqueIDÚ
BlueValuesÚ
OtherBluesÚFamilyBluesÚFamilyOtherBluesÚ	BlueScaleÚ	BlueShiftÚBlueFuzzÚStdHWÚStdVWÚ	StemSnapHÚ	StemSnapVr›   ÚLanguageGroupÚpasswordrB   Ú
MinFeaturerœ   zá/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def)s   Ž‹!s   ‹Œs   ‹�ó   s	   ŽŒŽ
s   ccccs   )ÚstringÚcurrentfileÚexchÚ
readstringÚpop)Údef)Únoaccessr3  )Úput)r4  r5  r²   )r   F)Er³   ra   rG   r   ÚfontTools.misc.macCreatorTyper   ÚfontTools.misc.textToolsr   r   r   r   ÚfontTools.misc.psOperatorsr	   r
   r   Ú$fontTools.encodings.StandardEncodingr   rµ   ÚreÚ
__author__Ú__version__rÄ   ÚCarbonr   ÚImportErrorÚhaveMacSupportÚ	Exceptionr   Úobjectr   r   r-   ré   ró   r!   r"   r#   rÁ   rÂ   rÃ   r  r‰   ÚMr  rÿ   r   r  rù   rÝ   r  rÜ   rÞ   r  r½   rð   rØ   rª   rc   r¿   rf   r_   r„   rˆ   r‚   rŽ   r�   r…   r†   r‡   r   r   r   ú<module>rC     s²  ððð ð$ Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø >Ð >Ð >Ð >Ð >Ð >Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ð ð ð ð ð
 BÐ AÐ AÐ AÐ AÐ AØ 	€	€	€	Ø 	€	€	€	à€
Ø€Ø	€ððØÐÐÐÐÐÐøØð ð ð Øˆ
ˆ
ˆ
ˆ
ˆ
ðøøøð
 €N€Nøð ð ð ð Ø€N€N€Nðøøøð	ð 	ð 	ð 	ð 	ˆiñ 	ô 	ð 	ðu1ð u1ð u1ð u1ð u1ˆVñ u1ô u1ð u1ðv
(ð 
(ð 
(ð 
(ðð ð ð ð4 €Ø€ðð ð ð ð>ð ð ð ð0ð ð ð$!ð !ð !ð0+ð +ð +ðð ð ð ð( "€
ð ˆ2Œ:Ð+°2´4Ð8Ñ8Ô8€Ø+Ð Ø'Ð Ø#€àˆ2Œ:Ð&Ñ'Ô'€ð,ð ,ð ,ðð ð ð0ð ð ð2;ð ;ð ;ð ˆrŒzÐ1Ñ2Ô2€ðð ð ð"ð ð ðð ð ð �tÐ2Ñ3Ô3Ð ð × Ò ˜LÑ )Ô )Ð )à˜4Ð 5Ñ6Ô6Ð à × Ò àØðñô ð ðð ð Ð ð8P€
ðð ð €	ð €Ø
€ØA€ØÐ*Ð+€	ØÐ*Ð+€	€	€	s/   ¿A ÁA Á	AÁA ÁAÁA ÁA"Á!A"