Ë
    ÚÍ: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y)é    N)ÚIterableÚIteratorÚListÚOptionalÚTextÚTupleé   )Úcolor_unified_diff_line)Úrun_external_diffÚu_diff)Úfile_existsÚget_tables_argument_listÚoutputÚreturnc                 ó<  — | syt         j                  j                  «       s t         j                  j                  | «       yt	        j
                  d«      xs t        j                  d«      }|s t         j                  j                  | «       y|g}dt        j                  j                  |«      v r|j                  d«       t        j                  |t        j                  d¬«      }	 |j                  j                  | «       |j                  j                  «        |j!                  «        y# t"        t$        f$ r+ |j                  r|j                  j                  «        Y yY yt&        $ r( |j                  r|j                  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       úl/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/diff/__init__.pyÚpipe_outputr-      s.  € ñ Øä�:‰:×ÑÔÜ�
‰
×Ñ˜Ô Øä�I‰I�gÓÒ6¤&§,¡,¨vÓ"6€EáÜ�
‰
×Ñ˜Ô Øà�€IØ”—‘×!Ñ! %Ó(Ñ(Ø×Ñ˜Ôä×Ñ˜I¬Z¯_©_À4ÔH€DðØ�
‰
×Ñ˜Ô Ø�
‰
×ÑÔØ�	‰	�øÜÔ.Ð/ò ð �:Š:Ø�J‰J×ÑÖñ ô ò Ø�:Š:Ø�J‰J×ÑÔØðús   Ã,AD2 Ä25FÅ+0FÚ	diff_toolc                 óÚ   — 	 t        j                  | dgt         j                  t         j                  d¬«      }|j                  xs d|j
                  xs dz   }d|v S # t        $ r Y yw xY w)z9Returns True if the provided diff executable is GNU diff.z	--versionT)r   Ústderrr   FÚ zGNU diffutils)r!   Úrunr#   ÚOSErrorr   r0   )r.   r+   Úversion_outputs      r,   Ú_is_gnu_diffr5   3   sk   € ðÜ�~‰~Ø˜Ð$Ü—?‘?Ü—?‘?Øô	
ˆð —k‘kÒ' R¨D¯K©KÒ,=¸2Ñ>€NØ˜nÐ,Ð,øô	 ò Ùðús   ‚7A Á	A*Á)A*ÚtagsÚinclude_tablesÚexclude_tablesc              #   ó>   K  — | D ]  }|r||v rŒ
|r||vrŒ|–— Œ y ­w)N© )r6   r7   r8   Útags       r,   Ú_iter_filtered_table_tagsr<   C   s6   è ø€ ð
 ò ˆÙ˜c ^Ñ3ØÙ˜c¨Ñ7ØØ‹	ñùs   ‚Úfile1Úfile2Úfont_number_1Úfont_number_2c                 óî  — ddl m}  || d|¬«      5 } ||d|¬«      5 }|j                  j                  «       D �	ch c]  }	t	        |	«      ’Œ }
}	|j                  j                  «       D �	ch c]  }	t	        |	«      ’Œ }}	t        t        t        |
|z  ||¬«      «      «      }|D �	cg c]  }	|	|
v sŒ|	|vsŒ|	‘Œ }}	|D �	cg c]  }	|	|v sŒ|	|
vsŒ|	‘Œ }}	|D �	cg c]  }	|	|
v sŒ|	|v sŒ|	‘Œ }}	d}g }|j                  d«       |j                  d| › d�«       |j                  d	|› d�«       |rUd
}|j                  dt        |«      › d�«       |D ]0  }	|j                  d|	› dt        |j                  |	   «      › d�«       Œ2 |rUd
}|j                  dt        |«      › d�«       |D ]0  }	|j                  d|	› dt        |j                  |	   «      › d�«       Œ2 |j                  dt        |«      › d�«       |D ]v  }	|j                  |	   }|j                  |	   }||k(  r"|j                  d|	› dt        |«      › d�«       ŒHd
}|j                  d|	› dt        |«      › dt        |«      › d�«       Œx |r|j                  d«       n|j                  d«       |dj                  |«      fcd d d «       cd d d «       S c c}	w c c}	w c c}	w c c}	w c c}	w # 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)Nr   ©ÚTTFontT©ÚlazyÚ
fontNumber©r7   r8   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
r1   )ÚfontTools.ttLibrC   ÚreaderÚkeysÚstrÚsortedÚsetr<   r    ÚlenÚjoin)r=   r>   r7   r8   r?   r@   rC   Úfont1Úfont2r;   Útags1Útags2Úall_tagsÚonly1Úonly2ÚbothÚ	identicalÚlinesÚdata1Údata2s                       r,   Ú	summarizer]   P   s  € õ 'ñ 	ˆu˜4¨MÔ:ð6)Ø>CÙˆu˜4¨MÔ:ð6)à>Cà%*§\¡\×%6Ñ%6Ó%8Ö9˜c”�S•Ð9ˆÐ9Ø%*§\¡\×%6Ñ%6Ó%8Ö9˜c”�S•Ð9ˆÐ9äÜÜ)Ø˜E‘MØ#1Ø#1ôóó
ˆð !)ÖN˜¨C°5ªL¸SÈÒ=M’ÐNˆÐNØ (ÖN˜¨C°5ªL¸SÈÒ=M’ÐNˆÐNØ'ÖI˜¨3°%ª<¸CÀ5ºL’ÐIˆÐIàˆ	Øˆà�‰Ð.Ô0Ø�‰�y   rÐ*Ô+Ø�‰�y   rÐ*Ô+áØˆIØ�L‰LÐ3´C¸³J°<¸tÐDÔEØò L�Ø—‘˜r #  b¬¨U¯\©\¸#Ñ->Ó)?Ð(@À	ÐJÕKðLáØˆIØ�L‰LÐ3´C¸³J°<¸tÐDÔEØò L�Ø—‘˜r #  b¬¨U¯\©\¸#Ñ->Ó)?Ð(@À	ÐJÕKðLð 	�‰Ð)¬#¨d«)¨°DÐ9Ô:Øò 	VˆCØ—L‘L Ñ%ˆEØ—L‘L Ñ%ˆEØ˜Š~Ø—‘˜r #  h¬s°5«z¨l¸)ÐDÕEà!�	Ø—‘˜r #  h¬s°5«z¨l¸$¼sÀ5»z¸lÈ)ÐTÕUð	Vñ Ø�L‰LÐ+Õ,à�L‰LÐ0Ô1à˜"Ÿ'™' %›.Ð(÷m6)÷ 6)ò 6)ùò :ùÚ9ùò OùÚNùÚI÷'6)ð 6)ú÷ 6)÷ 6)ñ 6)úsˆ   ’K+žK»J=ÁKÁ+KÁ=)KÂ&	KÂ0KÂ5KÂ9KÂ?	KÃ	KÃKÃKÃ	KÃ"KÃ'KÃ+F?KÊ*	K+Ê=KËK	ËK+Ë+K4c                 óŠ  — ddl m}  || d|¬«      5 } ||d|¬«      5 }|j                  j                  «       D �	ch c]  }	t	        |	«      ’Œ }
}	|j                  j                  «       D �	ch c]  }	t	        |	«      ’Œ }}	t        t        t        |
|z  ||¬«      «      «      }|D �	cg c]  }	|	|
v sŒ|	|v sŒ|	‘Œ }}	t        «       }|D ]7  }	|j                  |	   }|j                  |	   }||k(  sŒ'|j                  |	«       Œ9 |cd d d «       cd d d «       S c c}	w c c}	w c c}	w # 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)Nr   rB   TrD   rG   )	rI   rC   rJ   rK   rL   rM   rN   r<   Úadd)r=   r>   r7   r8   r?   r@   rC   rQ   rR   r;   rS   rT   rU   rX   Úoutr[   r\   s                    r,   Úget_binary_exclude_tablesra   “   sB  € õ 'ñ 	ˆu˜4¨MÔ:ðØ>CÙˆu˜4¨MÔ:ðà>Cà%*§\¡\×%6Ñ%6Ó%8Ö9˜c”�S•Ð9ˆÐ9Ø%*§\¡\×%6Ñ%6Ó%8Ö9˜c”�S•Ð9ˆÐ9äÜÜ)Ø˜E‘MØ#1Ø#1ôóó
ˆð  (ÖI˜¨3°%ª<¸CÀ5ºL’ÐIˆÐIÜ‹eˆàò 	ˆCØ—L‘L Ñ%ˆEØ—L‘L Ñ%ˆEØ˜‹~Ø—‘˜•ð		ð ÷5÷ ò ùò :ùÚ9ùò J÷#ð ú÷ ÷ ñ ús]   ’D9žD$»DÁD$Á+DÁ=)D$Â&	DÂ0DÂ5DÂ94D$Ã.D$Ä	D9ÄD$Ä$D-	Ä)D9Ä9Ec                  óB  — d} 	 t        t        j                  dd «      } | S # t        $ r Y | S t        $ rh t        j                  t
        j                  t
        j                  «      }t        j                  |t        j                  j                  «       «       Y | S w xY w)z!Compare two fonts for differencesr   r	   N)r2   r   Úargvr'   r&   r   ÚopenÚdevnullÚO_WRONLYÚdup2r   Úfileno)Úretre   s     r,   Úmainrj   º   sˆ   € ð €Cð.Ü”#—(‘(˜1˜2�,Óˆð €Jøô ò Øð €Jô ò .ô —'‘'œ"Ÿ*™*¤b§k¡kÓ2ˆÜ
�‰�œŸ™×*Ñ*Ó,Õ-Ø€Jð.ús   „" ¢	B®A,BÂBrc   c                 ó¼  — t        j                  d¬«      }|j                  dddd¬«       |j                  dd	t        d
d¬«       |j                  ddt        dd d¬«       |j                  ddt        dd d¬«       |j                  dt        d¬«       |j                  dt        d d¬«       |j                  dg d¢dd¬«       |j                  dt        d d!d"¬#«       |j                  d$t        d d!d%¬#«       |j                  d&d'dd(¬«       |j                  d)d*dd+¬«       |j                  d,d-dd.¬«       |j                  d/d0¬1«       |j                  d2d3¬1«       |j                  | «      }|j                  rI|j                  r=|j                  s0t        j                  j                  d4t        j                  › �«       y5|j                  sd6|_        t        |j                  «      sJ|j                  s=t        j                  j                  d7|j                  › d8t        j                  › �«       y5t        |j                   «      sJ|j                  s=t        j                  j                  d7|j                   › d8t        j                  › �«       y5t#        |j$                  «      }t#        |j&                  «      }|j(                  rn	 t+        |j                  |j                   |||j,                  |j.                  ¬9«      \  }}|j                  st        j0                  j                  |«       |rd:S d;S |j                  rnt5        |j                  |j                   |||j,                  |j.                  ¬9«      }|�|D �	cg c]	  }	|	|vsŒ|	‘Œ }}	n|€g }|j7                  t9        |«      «       |j:                  }
|j<                  d=k(  xs+ |j<                  dk(  xr t        j0                  j>                  }|
€tA        jB                  d>«      }
nc|
ratA        jB                  |
«      }
|
€J|j                  s=t        j                  j                  d?|j:                  › d@t        j                  › �«       y5	 |
r§|jD                  }|€L|jF                  d
k(  rdAg}ndBjI                  |jF                  «      g}tK        |
«      r"|jM                  dC«       n|jO                  «       }tQ        |
||j                  |j                   |||j,                  |j.                  d6¬D«	      }nEtS        |j                  |j                   |jF                  |||j,                  |j.                  d6¬E«      }|r|D �cg c]  }tU        |«      ‘Œ }}dFjW                  |«      }|j                  stY        |«       |rd;S d:S # t2        $ rH}|j                  s2t        j                  j                  d<|› t        j                  › �«       Y d }~y5d }~ww xY wc c}	w c c}w # t2        $ rH}|j                  s2t        j                  j                  d<|› t        j                  › �«       Y d }~y5d }~ww xY w)GNz&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Údefaultro   z-tz	--includeú+z5Font tables to include. Multiple options are allowed.)rq   Únargsrr   ro   z-xz	--excludez5Font tables to exclude. Multiple options are allowed.z--diffz.Run external diff tool command (default: diff))rq   ro   z
--diff-argz*External diff tool arguments (default: -u)z--color)ÚautoÚneverÚalwaysru   z*Whether to colorize output (default: auto))Úchoicesrr   ro   z--y1éÿÿÿÿÚNUMBERzMSelect font number for TrueType Collection (.ttc/.otc) FILE1, starting from 0)rq   rr   Úmetavarro   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)ro   Ú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.)r7   r8   r?   r@   r   r	   z[*] ERROR: rw   Údiffz.[*] ERROR: The external diff tool executable 'z' was not found.z-uz-u{}z-F^\s\s<)r7   r8   Úfont_number_aÚfont_number_bÚuse_multiprocess)Úcontext_linesr7   r8   r€   r�   r‚   r1   )-ÚargparseÚArgumentParserÚadd_argumentÚintrL   Ú
parse_argsrw   ÚbinaryÚquietr   r0   r   r   Úlinesepr   r|   r}   r   ÚincludeÚexcludeÚsummaryr]   Úy1Úy2r   r(   ra   ÚextendrM   r   Úcolorr   r   r   Údiff_argrZ   Úformatr5   r    Úsplitr   r   r
   rP   r-   )rc   ÚparserÚargsÚinclude_listÚexclude_listrY   r   ÚeÚexcluded_binary_tablesr;   r.   Úcolor_outputr“   Úlines                 r,   r2   r2   Î   s  € ô ×$Ñ$Ø<ô€Fð ×ÑØØØØ=ð	 ô ð ×ÑØØÜØØDð ô ð ×ÑØØÜØØØDð ô ð ×ÑØØÜØØØDð ô ð ×ÑØ”sÐ!Qð ô ð ×ÑØÜØØ9ð	 ô ð ×ÑØÚ+ØØ9ð	 ô ð ×ÑØÜØØØ\ð ô ð ×ÑØÜØØØ\ð ô ð ×ÑØØØØ6ð	 ô ð ×ÑØØØØ?ð	 ô ð ×ÑØˆi Ð3Hð ô ð ×Ñ˜Ð&8ÐÔ9Ø
×Ñ˜Ð&8ÐÔ9à%×0Ñ0°Ó6€Dð ‡{‚{�t—{’{Ø�zŠzÜ�J‰J×ÑðHÜHJÏ
É
À|ðUôð Ø�;Š;ØˆŒô �t—z‘zÔ"Ø�zŠzÜ�J‰J×ÑØ,¨T¯Z©Z¨LÐ8KÌBÏJÉJÈ<ÐXôð Ü�t—z‘zÔ"Ø�zŠzÜ�J‰J×ÑØ,¨T¯Z©Z¨LÐ8KÌBÏJÉJÈ<ÐXôð ô *BÀ$Ç,Á,Ó)O€LÜ)AÀ$Ç,Á,Ó)O€Là‡|‚|ð	Ü )Ø—
‘
Ø—
‘
Ø+Ø+Ø"Ÿg™gØ"Ÿg™gô!ÑˆI�vð —:’:Ü—
‘
× Ñ  Ô(Ù!�1Ð( qÐ(ð ‡{‚{Ü!:Ø�J‰JØ�J‰JØ'Ø'ØŸ'™'ØŸ'™'ô"
Ðð Ð#à+öØ¨sÐ:PÒ/P’ðˆLñ ð Ð#Ø!�Ø×Ñ¤Ð'=Ó >Ô?à—	‘	€IØ—:‘: Ñ)ò Ø�
‰
�fÑÒ2¤§¡×!2Ñ!2ð ð ÐÜ—L‘L Ó(‰	Ù	Ü—L‘L Ó+ˆ	ØÐØ—:’:Ü—
‘
× Ñ ðØŸ	™	�{Ð"2´2·:±:°,ð@ôð ð/ÙØ—}‘}ˆHØÐØ—:‘: ’?Ø $˜v‘Hà &§¡¨d¯j©jÓ 9Ð:�HÜ 	Ô*Ø—O‘O KÕ0à#Ÿ>™>Ó+�ä&ØØØ—
‘
Ø—
‘
Ø+Ø+Ø"Ÿg™gØ"Ÿg™gØ!%ô
‰Fô Ø—
‘
Ø—
‘
Ø"Ÿj™jØ+Ø+Ø"Ÿg™gØ"Ÿg™gØ!%ô	ˆFñ Ø@FÖG¸Ô-¨dÕ3ÐGˆFÐGà—‘˜“ˆØ�zŠzÜ˜ÔÙˆqÐ! Ð!øôe ò 	Ø—:’:Ü—
‘
× Ñ  ;¨q¨c´"·*±*°Ð!>Ô?Üûð	üòùò| Høô ò Ø�zŠzÜ�J‰J×Ñ˜{¨1¨#¬b¯j©j¨\Ð:Ô;Üûðús\   ËA*V, Ì6V, Î	X ÎX Ñ6C4X
 Õ*XÕ<-X
 Ö*X
 Ö,	W=Ö5>W8×8W=ØX
 Ø
	YØ>YÙY)NN)NNry   ry   )r„   r   r   r   r!   Útypingr   r   r   r   r   r   r’   r
   r   r   r   Úutilsr   r   rL   r-   Úboolr5   r<   r‡   r]   ra   rj   r2   r:   ó    r,   ú<module>r¢      s–  ðÛ Û 	Û 
Û Û ß B× Bå *ß +ß 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r¡   