§
    ¢”j:5  ã                   óú  — d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZmZ ddlmZmZ deddfd	„Zd
edefd„Z	 	 ddee         de	ee                  de	ee                  dee         fd„Z	 	 	 	 ddedede	ee                  de	ee                  dededeeef         fd„Z	 	 	 	 ddedede	ee                  de	ee                  dededeeef         fd„Zd„ Zdee
         fd„ZdS )é    N)ÚIterableÚIteratorÚListÚOptionalÚTextÚTupleé   ©Úcolor_unified_diff_line)Úrun_external_diffÚu_diff)Úfile_existsÚget_tables_argument_listÚoutputÚreturnc                 ó0  — | sdS t           j                             ¦   «         s!t           j                             | ¦  «         dS t	          j        d¦  «        pt          j        d¦  «        }|s!t           j                             | ¦  «         dS |g}dt          j         	                    |¦  «        v r| 
                    d¦  «         t          j        |t          j        d¬¦  «        }	 |j                             | ¦  «         |j                             ¦   «          |                     ¦   «          dS # t"          t$          f$ r' |j        r|j                             ¦   «          Y dS Y dS t&          $ r" |j        r|j                             ¦   «          ‚ w xY w)zDPipes output to a pager if stdout is a TTY and a pager is available.NÚPAGERÚlessz-RT)ÚstdinÚtext)ÚsysÚstdoutÚisattyÚwriteÚosÚgetenvÚshutilÚwhichÚpathÚbasenameÚappendÚ
subprocessÚPopenÚPIPEr   ÚcloseÚwaitÚBrokenPipeErrorÚKeyboardInterruptÚ	Exception)r   ÚpagerÚ	pager_cmdÚprocs       úf/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/diff/__init__.pyÚpipe_outputr.      s   € ð ð ØˆåŒ:×ÒÑÔð ÝŒ
×Ò˜Ñ Ô Ð ØˆåŒI�gÑÔÐ6¥&¤,¨vÑ"6Ô"6€Eàð ÝŒ
×Ò˜Ñ Ô Ð Øˆà�€IØ•”×!Ò! %Ñ(Ô(Ð(Ð(Ø×Ò˜ÑÔÐåÔ˜I­Z¬_À4ÐHÑHÔH€DðØŒ
×Ò˜Ñ Ô Ð ØŒ
×ÒÑÔÐØ�	Š	‰ŒˆˆˆøÝÕ.Ð/ð ð ð ð Œ:ð 	ØŒJ×ÒÑÔÐÐÐÐð	ð 	ð 	õ ð ð ð ØŒ:ð 	ØŒJ×ÒÑÔÐØðøøøs   Ã*AD3 Ä31FÅ*+FÚ	diff_toolc                 ó²   — 	 t          j        | dgt           j        t           j        d¬¦  «        }n# t          $ r Y dS w xY w|j        pd|j        pdz   }d|v S )z9Returns True if the provided diff executable is GNU diff.z	--versionT)r   Ústderrr   FÚ zGNU diffutils)r"   Úrunr$   ÚOSErrorr   r1   )r/   r,   Úversion_outputs      r-   Ú_is_gnu_diffr6   3   s}   € ðÝŒ~Ø˜Ð$Ý”?Ý”?Øð	
ñ 
ô 
ˆˆøõ ð ð ð Øˆuˆuðøøøð ”kÐ' R¨D¬KÐ,=¸2Ñ>€NØ˜nÐ,Ð,s   ‚.1 ±
?¾?ÚtagsÚinclude_tablesÚexclude_tablesc              #   ó8   K  — | D ]}|r||v rŒ	|r||vrŒ|V — Œd S )N© )r7   r8   r9   Útags       r-   Ú_iter_filtered_table_tagsr=   C   sV   è è € ð
 ð ð ˆØð 	˜c ^Ð3Ð3ØØð 	˜c¨Ð7Ð7ØØˆ	ˆ	ˆ	ˆ	ðð ó    éÿÿÿÿÚfile1Úfile2Úfont_number_1Úfont_number_2c                 ó  ‡‡— ddl m}  || d|¬¦  «        5 } ||d|¬¦  «        5 }d„ |j                             ¦   «         D ¦   «         Šd„ |j                             ¦   «         D ¦   «         Št	          t          t          ‰‰z  ||¬¦  «        ¦  «        ¦  «        }	ˆˆfd„|	D ¦   «         }
ˆˆfd	„|	D ¦   «         }ˆˆfd
„|	D ¦   «         }d}g }|                     d¦  «         |                     d| › d�¦  «         |                     d|› d�¦  «         |
rad}|                     dt          |
¦  «        › d�¦  «         |
D ]6}|                     d|› dt          |j        |         ¦  «        › d�¦  «         Œ7|rad}|                     dt          |¦  «        › d�¦  «         |D ]6}|                     d|› dt          |j        |         ¦  «        › d�¦  «         Œ7|                     dt          |¦  «        › d�¦  «         |D ]‡}|j        |         }|j        |         }||k    r*|                     d|› dt          |¦  «        › d�¦  «         ŒLd}|                     d|› dt          |¦  «        › dt          |¦  «        › d�¦  «         Œˆ|r|                     d¦  «         n|                     d¦  «         |d 	                    |¦  «        fcd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S ) Nr   ©ÚTTFontT©ÚlazyÚ
fontNumberc                 ó,   — h | ]}t          |¦  «        ’ŒS r;   ©Ústr©Ú.0r<   s     r-   ú	<setcomp>zsummarize.<locals>.<setcomp>^   ó   € Ð9Ð9Ð9˜c•�S‘”Ð9Ð9Ð9r>   c                 ó,   — h | ]}t          |¦  «        ’ŒS r;   rK   rM   s     r-   rO   zsummarize.<locals>.<setcomp>_   rP   r>   ©r8   r9   c                 ó$   •— g | ]}|‰v ¯|‰v¯
|‘ŒS r;   r;   ©rN   r<   Útags1Útags2s     €€r-   ú
<listcomp>zsummarize.<locals>.<listcomp>k   ó+   ø€ ÐNÐNÐN˜¨C°5¨L¨L¸SÈÐ=MÐ=M�Ð=MÐ=MÐ=Mr>   c                 ó$   •— g | ]}|‰v ¯|‰v¯
|‘ŒS r;   r;   rT   s     €€r-   rW   zsummarize.<locals>.<listcomp>l   rX   r>   c                 ó$   •— g | ]}|‰v ¯|‰v ¯
|‘ŒS r;   r;   rT   s     €€r-   rW   zsummarize.<locals>.<listcomp>m   ó&   ø€ ÐIÐIÐI˜¨3°%¨<¨<¸CÀ5¸L¸L�¸L¸L¸Lr>   zBinary table summary:
z	  file1: ú
z	  file2: Fz
Tables only in file1 (z):
z- z (z bytes)
z
Tables only in file2 (z+ z
Tables in both (z  z: SAME (z* z: DIFF (z vs z
Result: SAME
z
Result: DIFFERENT
r2   )
ÚfontTools.ttLibrF   ÚreaderÚkeysÚsortedÚsetr=   r!   ÚlenÚjoin)r@   rA   r8   r9   rB   rC   rF   Úfont1Úfont2Úall_tagsÚonly1Úonly2ÚbothÚ	identicalÚlinesr<   Údata1Údata2rU   rV   s                     @@r-   Ú	summarizern   P   sS  øø€ ð 'Ð&Ð&Ð&Ð&Ð&ð 	ˆˆu˜4¨MÐ:Ñ:Ô:ð6)Ø>CØˆˆu˜4¨MÐ:Ñ:Ô:ð6)à>Cà9Ð9 U¤\×%6Ò%6Ñ%8Ô%8Ð9Ñ9Ô9ˆØ9Ð9 U¤\×%6Ò%6Ñ%8Ô%8Ð9Ñ9Ô9ˆåÝÝ)Ø˜E‘MØ#1Ø#1ðñ ô ñô ñ
ô 
ˆð OÐNÐNÐNÐN ÐNÑNÔNˆØNÐNÐNÐNÐN ÐNÑNÔNˆØIÐIÐIÐIÐI˜xÐIÑIÔIˆàˆ	Øˆà�ŠÐ/Ñ0Ô0Ð0Ø�ŠÐ* Ð*Ð*Ð*Ñ+Ô+Ð+Ø�ŠÐ* Ð*Ð*Ð*Ñ+Ô+Ð+àð 	LØˆIØ�LŠLÐDµC¸±J´JÐDÐDÐDÑEÔEÐEØð Lð L�Ø—’ÐJ #ÐJÐJ­¨U¬\¸#Ô->Ñ)?Ô)?ÐJÐJÐJÑKÔKÐKÐKØð 	LØˆIØ�LŠLÐDµC¸±J´JÐDÐDÐDÑEÔEÐEØð Lð L�Ø—’ÐJ #ÐJÐJ­¨U¬\¸#Ô->Ñ)?Ô)?ÐJÐJÐJÑKÔKÐKÐKà�ŠÐ9­#¨d©)¬)Ð9Ð9Ð9Ñ:Ô:Ð:Øð 	Vð 	VˆCØ”L Ô%ˆEØ”L Ô%ˆEØ˜Š~ˆ~Ø—’ÐD #ÐDÐD­s°5©z¬zÐDÐDÐDÑEÔEÐEÐEà!�	Ø—’ÐT #ÐTÐT­s°5©z¬zÐTÐT½sÀ5¹z¼zÐTÐTÐTÑUÔUÐUÐUàð 	2Ø�LŠLÐ+Ñ,Ô,Ð,Ð,à�LŠLÐ0Ñ1Ô1Ð1à˜"Ÿ'š' %™.œ.Ð(ðm6)ð 6)ð 6)ð 6)ñ 6)ô 6)ð 6)ð 6)ð 6)ð 6)ð 6)ñ 6)ô 6)ð 6)ð 6)ð 6)ð 6)ð 6)ð 6)øøøð 6)ð 6)ð 6)ð 6)ð 6)ð 6)ð 6)ñ 6)ô 6)ð 6)ð 6)ð 6)ð 6)ð 6)ð 6)ð 6)øøøð 6)ð 6)ð 6)ð 6)ð 6)ð 6)s5   —K>¦J'K&ËK>Ë&K*	Ë*K>Ë-K*	Ë.K>Ë>LÌLc                 ód  ‡‡— ddl m}  || d|¬¦  «        5 } ||d|¬¦  «        5 }d„ |j                             ¦   «         D ¦   «         Šd„ |j                             ¦   «         D ¦   «         Št	          t          t          ‰‰z  ||¬¦  «        ¦  «        ¦  «        }	ˆˆfd„|	D ¦   «         }
t          ¦   «         }|
D ]7}|j        |         }|j        |         }||k    r|                     |¦  «         Œ8|cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   rE   TrG   c                 ó,   — h | ]}t          |¦  «        ’ŒS r;   rK   rM   s     r-   rO   z,get_binary_exclude_tables.<locals>.<setcomp>¡   rP   r>   c                 ó,   — h | ]}t          |¦  «        ’ŒS r;   rK   rM   s     r-   rO   z,get_binary_exclude_tables.<locals>.<setcomp>¢   rP   r>   rR   c                 ó$   •— g | ]}|‰v ¯|‰v ¯
|‘ŒS r;   r;   rT   s     €€r-   rW   z-get_binary_exclude_tables.<locals>.<listcomp>®   r[   r>   )r]   rF   r^   r_   r`   ra   r=   Úadd)r@   rA   r8   r9   rB   rC   rF   rd   re   rf   ri   Úoutr<   rl   rm   rU   rV   s                  @@r-   Úget_binary_exclude_tablesru   “   s  øø€ ð 'Ð&Ð&Ð&Ð&Ð&ð 	ˆˆu˜4¨MÐ:Ñ:Ô:ðØ>CØˆˆu˜4¨MÐ:Ñ:Ô:ðà>Cà9Ð9 U¤\×%6Ò%6Ñ%8Ô%8Ð9Ñ9Ô9ˆØ9Ð9 U¤\×%6Ò%6Ñ%8Ô%8Ð9Ñ9Ô9ˆåÝÝ)Ø˜E‘MØ#1Ø#1ðñ ô ñô ñ
ô 
ˆð JÐIÐIÐIÐI˜xÐIÑIÔIˆÝ‰eŒeˆàð 	ð 	ˆCØ”L Ô%ˆEØ”L Ô%ˆEØ˜Š~ˆ~Ø—’˜‘”�øàð5ð ð ð ñ ô ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s5   —D%¦CDÃ4D%ÄD	ÄD%ÄD	ÄD%Ä%D)Ä,D)c                  ó:  — d} 	 t          t          j        dd…         ¦  «        } nu# t          $ r Y nit          $ r] t          j        t
          j        t
          j        ¦  «        }t          j	        |t          j
                             ¦   «         ¦  «         Y nw xY w| S )z!Compare two fonts for differencesr   r	   N)r3   r   Úargvr(   r'   r   ÚopenÚdevnullÚO_WRONLYÚdup2r   Úfileno)Úretry   s     r-   Úmainr~   º   s�   € ð €Cð.Ý•#”(˜1˜2˜2”,ÑÔˆˆøÝð ð ð ØˆÝð .ð .ð .õ ”'�"œ*¥b¤kÑ2Ô2ˆÝ
Œ��œ×*Ò*Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-ð	.øøøð
 €Js   „!& ¦
B²A#BÂBrw   c                 ó¤  ‡— t          j        d¬¦  «        }|                     dddd¬¦  «         |                     dd	t          d
d¬¦  «         |                     ddt          dd d¬¦  «         |                     ddt          dd d¬¦  «         |                     dt          d¬¦  «         |                     dt          d d¬¦  «         |                     dg d¢dd¬¦  «         |                     dt          d d!d"¬#¦  «         |                     d$t          d d!d%¬#¦  «         |                     d&d'dd(¬¦  «         |                     d)d*dd+¬¦  «         |                     d,d-dd.¬¦  «         |                     d/d0¬1¦  «         |                     d2d3¬1¦  «         |                     | ¦  «        }|j        r<|j        r5|j        s,t          j
                             d4t          j        › �¦  «         d5S |j        sd6|_        t          |j        ¦  «        s=|j        s4t          j
                             d7|j        › d8t          j        › �¦  «         d5S t          |j        ¦  «        s=|j        s4t          j
                             d7|j        › d8t          j        › �¦  «         d5S t#          |j        ¦  «        }t#          |j        ¦  «        }|j        r¦	 t+          |j        |j        |||j        |j        ¬9¦  «        \  }}|j        st          j                             |¦  «         |rd:nd;S # t2          $ r@}|j        s.t          j
                             d<|› t          j        › �¦  «         Y d }~d5S d }~ww xY w|j        r`t5          |j        |j        |||j        |j        ¬9¦  «        Š|�ˆfd=„|D ¦   «         }n&|€g }|                     t9          ‰¦  «        ¦  «         |j        }|j        d>k    p|j        dk    ot          j        j        }	|€tA          j!        d?¦  «        }nU|rStA          j!        |¦  «        }|€=|j        s4t          j
                             d@|j        › dAt          j        › �¦  «         d5S 	 |r™|j"        }
|
€O|j#        d
k    rdBg}
ndC $                    |j#        ¦  «        g}
tK          |¦  «        r|
 &                    dD¦  «         n|
 '                    ¦   «         }
tQ          ||
|j        |j        |||j        |j        d6¬E¦	  «	        }n0tS          |j        |j        |j#        |||j        |j        d6¬F¦  «        }|	rdG„ |D ¦   «         }dH *                    |¦  «        }|j        stW          |¦  «         |rd;nd:S # t2          $ r@}|j        s.t          j
                             d<|› t          j        › �¦  «         Y d }~d5S d }~ww xY w)INz&An OpenType table diff tool for fonts.)Údescriptionz-lz	--summaryÚ
store_truez.Report table presence and binary equality only)ÚactionÚhelpz-Uz--linesé   z5Number of context lines for unified diff (default: 3))ÚtypeÚdefaultrƒ   z-tz	--includeú+z5Font tables to include. Multiple options are allowed.)r…   Únargsr†   rƒ   z-xz	--excludez5Font tables to exclude. Multiple options are allowed.z--diffz.Run external diff tool command (default: diff))r…   rƒ   z
--diff-argz*External diff tool arguments (default: -u)z--color)ÚautoÚneverÚalwaysr‰   z*Whether to colorize output (default: auto))Úchoicesr†   rƒ   z--y1r?   ÚNUMBERzMSelect font number for TrueType Collection (.ttc/.otc) FILE1, starting from 0)r…   r†   Úmetavarrƒ   z--y2zMSelect font number for TrueType Collection (.ttc/.otc) FILE2, starting from 0z-az--alwaysz'Compare tables even if binary identicalz-bz--binaryz0Compare tables only if binaries differ (default)z-qz--quietzSuppress all outputÚFILE1zFont file path 1)rƒ   ÚFILE2zFont file path 2zv[*] Error: --always and --binary are mutually exclusive options. Please use ONLY one of these options in your command.é   Tz[*] ERROR: The file path 'z' can not be found.)r8   r9   rB   rC   r   r	   z[*] ERROR: c                 ó   •— g | ]}|‰v¯|‘Œ	S r;   r;   )rN   r<   Úexcluded_binary_tabless     €r-   rW   zrun.<locals>.<listcomp>q  s+   ø€ ð ð ð Ø¨sÐ:PÐ/PÐ/P�Ð/PÐ/PÐ/Pr>   r‹   Údiffz.[*] ERROR: The external diff tool executable 'z' was not found.z-uz-u{}z-F^\s\s<)r8   r9   Úfont_number_aÚfont_number_bÚuse_multiprocess)Úcontext_linesr8   r9   r•   r–   r—   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r;   r
   )rN   Úlines     r-   rW   zrun.<locals>.<listcomp>¯  s!   € ÐGÐGÐG¸Õ-¨dÑ3Ô3ÐGÐGÐGr>   r2   ),ÚargparseÚArgumentParserÚadd_argumentÚintrL   Ú
parse_argsr‹   ÚbinaryÚquietr   r1   r   r   Úlinesepr   r�   r�   r   ÚincludeÚexcludeÚsummaryrn   Úy1Úy2r   r)   ru   Úextendr`   r”   Úcolorr   r   r   Údiff_argrk   Úformatr6   r!   Úsplitr   r   rc   r.   )rw   ÚparserÚargsÚinclude_listÚexclude_listrj   r   Úer/   Úcolor_outputrª   r“   s              @r-   r3   r3   Î   sk  ø€ õ Ô$Ø<ðñ ô €Fð ×ÒØØØØ=ð	 ñ ô ð ð ×ÒØØÝØØDð ñ ô ð ð ×ÒØØÝØØØDð ñ ô ð ð ×ÒØØÝØØØDð ñ ô ð ð ×ÒØ•sÐ!Qð ñ ô ð ð ×ÒØÝØØ9ð	 ñ ô ð ð ×ÒØØ+Ð+Ð+ØØ9ð	 ñ ô ð ð ×ÒØÝØØØ\ð ñ ô ð ð ×ÒØÝØØØ\ð ñ ô ð ð ×ÒØØØØ6ð	 ñ ô ð ð ×ÒØØØØ?ð	 ñ ô ð ð ×ÒØˆi Ð3Hð ñ ô ð ð ×Ò˜Ð&8ÐÑ9Ô9Ð9Ø
×Ò˜Ð&8ÐÑ9Ô9Ð9à%×0Ò0°Ñ6Ô6€Dð „{ð �t”{ð ØŒzð 	ÝŒJ×ÒðUÝHJÌ
ðUð Uñô ð ð ˆqØŒ;ð ØˆŒõ �t”zÑ"Ô"ð ØŒzð 	ÝŒJ×ÒØX¨T¬ZÐXÐXÍBÌJÐXÐXñô ð ð ˆqÝ�t”zÑ"Ô"ð ØŒzð 	ÝŒJ×ÒØX¨T¬ZÐXÐXÍBÌJÐXÐXñô ð ð ˆqõ *BÀ$Ä,Ñ)OÔ)O€LÝ)AÀ$Ä,Ñ)OÔ)O€Là„|ð ð	Ý )Ø”
Ø”
Ø+Ø+Ø"œgØ"œgð!ñ !ô !ÑˆI�vð ”:ð )Ý”
× Ò  Ñ(Ô(Ð(Ø!Ð(�1�1 qÐ(øÝð 	ð 	ð 	Ø”:ð @Ý”
× Ò Ð!>¨qÐ!>µ"´*Ð!>Ð!>Ñ?Ô?Ð?Ø�1�1�1�1�1øøøøð	øøøð
 „{ð @Ý!:ØŒJØŒJØ'Ø'Øœ'Øœ'ð"
ñ "
ô "
Ðð Ð#ðð ð ð Ø+ðñ ô ˆLˆLð Ð#Ø!�Ø×Ò¥Ð'=Ñ >Ô >Ñ?Ô?Ð?à”	€IØ”: Ò)ð ØŒ
�fÒÐ2¥¤Ô!2ð ð ÐÝ”L Ñ(Ô(ˆ	ˆ	Ø	ð Ý”L Ñ+Ô+ˆ	ØÐØ”:ð Ý”
× Ò ð@Øœ	ð@ð @Ý35´:ð@ð @ñô ð ð �1ð/Øð !	Ø”}ˆHØÐØ”: ’?�?Ø $˜v�H�Hà &§¢¨d¬jÑ 9Ô 9Ð:�HÝ 	Ñ*Ô*ð 1Ø—O’O KÑ0Ô0Ð0øà#Ÿ>š>Ñ+Ô+�å&ØØØ”
Ø”
Ø+Ø+Ø"œgØ"œgØ!%ð
ñ 
ô 
ˆFˆFõ Ø”
Ø”
Ø"œjØ+Ø+Ø"œgØ"œgØ!%ð	ñ 	ô 	ˆFð ð 	HØGÐGÀÐGÑGÔGˆFà—’˜‘”ˆØŒzð 	 Ý˜ÑÔÐØÐ!ˆqˆq Ð!øåð ð ð ØŒzð 	<ÝŒJ×ÒÐ:¨1Ð:­b¬jÐ:Ð:Ñ;Ô;Ð;Øˆqˆqˆqˆqˆqøøøøðøøøs2   ËAL, Ì,
M6Ì65M1Í1M6Ñ;D	V Ö
WÖ5W
×
W)NN)NNr?   r?   )r›   r   r   r   r"   Útypingr   r   r   r   r   r   r©   r   r”   r   r   Úutilsr   r   rL   r.   Úboolr6   r=   rž   rn   ru   r~   r3   r;   r>   r-   ú<module>r¶      s   ðØ €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà *Ð *Ð *Ð *Ð *Ð *Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð#˜ð # ð #ð #ð #ð #ðL-˜Cð - Dð -ð -ð -ð -ð$ +/Ø*.ð
ð 
Ø
�3Œ-ð
à˜T #œYÔ'ð
ð ˜T #œYÔ'ð
ð ˆc„]ð	
ð 
ð 
ð 
ð  +/Ø*.ØØð@)ð @)Øð@)àð@)ð ˜T #œYÔ'ð@)ð ˜T #œYÔ'ð	@)ð
 ð@)ð ð@)ð ˆ4�ˆ9Ôð@)ð @)ð @)ð @)ðL +/Ø*.ØØð$ð $Øð$àð$ð ˜T #œYÔ'ð$ð ˜T #œYÔ'ð	$ð
 ð$ð ð$ð ˆ4�ˆ9Ôð$ð $ð $ð $ðNð ð ð(kˆd�4Œjð kð kð kð kð kð kr>   