ó
    oñ:iƒ(  ã                    ó>  • S r SrSSKJr  SSKJr  SSKJr  SSKJ	r	J
r
  SSKJr  SSKJr  SS	KJrJrJrJrJrJrJr  S
rS\\/\4   S\\   S\\\      4S jrS\S\S\4S jr " S S\	5      r\" SS9 " S S\5      5       r\" SS9 " S S\5      5       r0 \R>                  S4\" 5       /_\R>                  S4\" SS9/_\R@                  S4\" SS9/_\RB                  S 4\" S!S"S#9/_\R@                  S4\" 5       /_\RD                  S4\" S$S9/_\RF                  S4\" S%S&S'9\" S(S)S'9/_\RH                  S4\" S%S&S'9\" S*S+S'9/_\RJ                  S4\" S,S-S'9\" S.S/S'9/_\RL                  S4\" S0S9/_\RL                  S4\" 5       /_\RL                  S14\" 5       /_\RN                  S4\" S2S9/_\RN                  S4\" 5       /_\RN                  S14\" S3S49\" S5S49\" S6S49/_\RP                  S4\" S7S9/_\RP                  S4\" 5       /_\RP                  S14\" 5       /\RR                  S4\" S8S9/\RR                  S4\" 5       /\RR                  S14\" S3S49\" S5S49\" S6S49/\RT                  S4\" S9S9\" S3S49\" S6S49/\RV                  S 4\" S:S9/\RX                  S 4\" S;S9/\RZ                  S 4\" 5       /\R\                  S 4\" S<S49/\R^                  S 4\" S=S9/\R`                  S 4\" S>S?S'9/\Rb                  S 4\" S@SAS'9/\Rd                  S 4\" SBSCS'9\" SDSES'9/0Er3\\Rh                  Rj                  SF4   r6SG\Rh                  SH\S\\6   4SI jr7\\\6   \\6   /S 4   r8SG\Rh                  SH\SJ\8S\\6   4SK jr9SL\Rt                  SM\\   4SN jr;g )OzReorder glyphs in a font.zRod Sheeteré    )ÚttLib)ÚotBase)ÚotTables)ÚABCÚabstractmethod)Ú	dataclass)Údeque)ÚOptionalÚAnyÚCallableÚDequeÚIterableÚListÚTupleÚCoverageÚget_glyph_idÚglyphsÚparallel_listc                 ó¦   ^ • U(       a;  [        S [        X5       5       U 4S jS9n[        [        [        U6 5      u  pEXRS S & O
[        UT S9nXAS S & g )Nc              3   ó,   #   • U  H
  u  pX4v •  M     g 7f©N© )Ú.0ÚgÚes      Ú`/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/ttLib/reorderGlyphs.pyÚ	<genexpr>Ú_sort_by_gid.<locals>.<genexpr>$   s   é € Ð;Ò :™˜ˆa�VÒ :ùs   ‚c                 ó   >• T" U S   5      $ )Nr   r   )Útr   s    €r   Ú<lambda>Ú_sort_by_gid.<locals>.<lambda>%   s   ø€ ™, q¨¡tÔ,ó    ©Úkey)ÚsortedÚzipÚmapÚlist)r   r   r   Ú	reorderedÚsorted_glyphsÚsorted_parallel_lists   `     r   Ú_sort_by_gidr-      sR   ø€ ö
 ÜÙ;¤ FÔ :Ó;Ü,ñ
ˆ	ô /2´$¼¸Y¸Ó.HÑ+ˆØ/‘aÑä˜v¨<Ñ8ˆà‰1�Ir#   ÚvalueÚdotted_attrÚreturnc                 ó’   • UR                  S5      nU(       d   eU(       a%  UR                  S5      n[        X5      n U(       a  M%  U $ )NÚ.r   )ÚsplitÚpopÚgetattr)r.   r/   Ú
attr_namesÚ	attr_names       r   Ú_get_dotted_attrr8   /   sC   € Ø×"Ñ" 3Ó'€JÞÐˆ:æ
Ø—N‘N 1Ó%ˆ	Ü˜Ó)ˆ÷ ˆ*ð €Lr#   c                   ó`   • \ rS rSrSr\S\R                  S\R                  SS4S j5       r
Srg)	ÚReorderRuleé9   zEA rule to reorder something in a font to match the fonts glyph order.Úfontr.   r0   Nc                 ó   • g r   r   )Úselfr<   r.   s      r   ÚapplyÚReorderRule.apply<   s   € ØJMr#   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   ÚTTFontr   Ú	BaseTabler?   Ú__static_attributes__r   r#   r   r:   r:   9   s,   † ÙOàØM˜%Ÿ,™,ÐM¨v×/?Ñ/?ÐMÀDÓMó ÛMr#   r:   T)Úfrozenc                   óz   • \ rS rSr% SrSr\\   \S'   \	r
\\S'   S\R                  S\R                  SS4S	 jrS
rg)ÚReorderCoverageé@   zNReorder a Coverage table, and optionally a list that is sorted parallel to it.NÚparallel_list_attrÚcoverage_attrr<   r.   r0   c                 ó  • [        X R                  5      n[        U5      [        La™  S nU R                  (       ad  [        X R                  5      n[        U5      [        L d   U R                   S35       e[        U5      [        UR                  5      :X  d   S5       e[        UR                  UR                  U5        g U R                  (       a
   SU  35       eU H$  n[        UR                  UR                  S 5        M&     g )Nú should be a listzNothing makes sensez2Can't have multiple coverage AND a parallel list; )	r8   rN   Útyper)   rM   Úlenr   r-   Ú
getGlyphID)r>   r<   r.   Úcoverager   Úcoverage_entrys         r   r?   ÚReorderCoverage.applyH   sä   € Ü# E×+=Ñ+=Ó>ˆä�‹>¤Ò%à ˆMØ×&×&Ü 0°×8OÑ8OÓ P�ä˜Ó'¬4Ò/ðAà×-Ñ-Ð.Ð.?Ð@óAØ/ä˜=Ó)¬S°·±Ó-AÓAÐXÐCXÓXÐAä˜Ÿ™¨(¯/©/¸=ÕIð
 ×+×+ðKàCÀDÀ6ÐJóKØ+ã"*�Ü˜TŸ_™_¨n×.CÑ.CÀTÖJò #+r#   r   )rA   rB   rC   rD   rE   rM   r
   ÚstrÚ__annotations__Ú_COVERAGE_ATTRrN   r   rF   r   rG   r?   rH   r   r#   r   rK   rK   @   sH   ‡ áXð )-Ð˜ ™Ó,Ø'€M�3Ó'ðK˜%Ÿ,™,ð K¨v×/?Ñ/?ð KÀD÷ Kr#   rK   c                   ól   • \ rS rSr% Sr\\S'   \\S'   S\R                  S\	R                  SS4S	 jrS
rg)ÚReorderListé`   a+  Reorder the items within a list to match the updated glyph order.

Useful when a list ordered by coverage itself contains something ordered by a gid.
For example, the PairSet table of https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-2-pair-adjustment-positioning-subtable.
Ú	list_attrr%   r<   r.   r0   Nc                 ó®   ^ ^• [        UT R                  5      n[        U[        5      (       d   T R                   S35       eUR	                  UU 4S jS9  g )NrP   c                 óN   >• TR                  [        U TR                  5      5      $ r   )rS   r5   r%   )Úvr<   r>   s    €€r   r!   Ú#ReorderList.apply.<locals>.<lambda>n   s   ø€ ˜tŸ™¬w°q¸$¿(¹(Ó/CÔDr#   r$   )r8   r]   Ú
isinstancer)   Úsort)r>   r<   r.   Úlsts   ``  r   r?   ÚReorderList.applyk   sG   ù€ Ü˜u d§n¡nÓ5ˆÜ˜#œt×$Ñ$ÐJ¨¯©Ð(8Ð8IÐ&JÓJÐ$Ø�‰ÕDˆÒEr#   r   )rA   rB   rC   rD   rE   rW   rX   r   rF   r   rG   r?   rH   r   r#   r   r[   r[   `   s;   ‡ ñð ƒNØ	ƒHðF˜%Ÿ,™,ð F¨v×/?Ñ/?ð FÀD÷ Fr#   r[   é   é   ÚValue)rM   ÚPairSetNÚPairValueRecordÚSecondGlyphr$   ÚEntryExitRecordÚMarkCoveragezMarkArray.MarkRecord)rN   rM   ÚBaseCoveragezBaseArray.BaseRecordÚLigatureCoveragezLigatureArray.LigatureAttachÚMark1CoveragezMark1Array.MarkRecordÚMark2CoveragezMark2Array.Mark2RecordÚ
PosRuleSeté   ÚChainPosRuleSetÚBacktrackCoverage)rN   ÚInputCoverageÚLookAheadCoverageÚ
SubRuleSetÚChainSubRuleSetÚ
SubstituteÚAttachPointÚLigGlyphÚExtendedShapeCoverageÚItalicsCorrectionÚTopAccentCoverageÚTopAccentAttachmentÚMathKernCoverageÚMathKernInfoRecordsÚVertGlyphCoverageÚVertGlyphConstructionÚHorizGlyphCoverageÚHorizGlyphConstruction.ÚrootÚroot_accessorc              #   ó:   #   • [        XS 5       S h  v•N   g  N7f)Nc                 ó$   • U R                  U5      $ r   )Úextend)ÚfrontierÚnews     r   r!   Ú!_bfs_base_table.<locals>.<lambda>×   s   € °8·?±?À3Ô3Gr#   )Ú_traverse_ot_data)r‡   rˆ   s     r   Ú_bfs_base_tabler�   Ó   s   é € ô !ØÑGó÷ ó ùs   ‚“”Úadd_to_frontier_fnc              #   óP  #   • [        5       nUR                  [        R                  R	                  X5      45        U(       ab  UR                  5       nUS   R                  nUv •  / nUR                  5        H  nUR                  XG4-   5        M     U" X65        U(       a  Ma  g g 7f)Néÿÿÿÿ)r	   Úappendr   rG   ÚSubTableEntryÚpopleftr.   ÚiterSubTables)r‡   rˆ   r‘   rŒ   ÚpathÚcurrentÚnew_entriesÚsubtable_entrys           r   r�   r�   ß   sŽ   é € ô
 %*£G€HØ‡O�O”V×%Ñ%×3Ñ3°MÓHÐJÔKÞ
à×ÑÓ!ˆØ�r‘(—.‘.ˆàŠ
àˆØ%×3Ñ3Ö5ˆNØ×Ñ˜tÐ&7Ñ7Ö8ñ 6ñ 	˜8Ô1÷ Š(ùs   ‚B B&Â$B&r<   Únew_glyph_orderc           	      óŠ  ^ • T R                  5       n[        U5      [        U5      :w  a$  [        S[        U5       S[        U5       S35      e[        U5      [        U5      :w  a;  [        S[        U5      [        U5      -
   S[        U5      [        U5      -
   35      eT R	                  5         [        U 4S jT R                  5        5       5      nU(       a  [        SU 35      eT R                  U5        1 SknU H“  nUT R                  5       ;   d  M  [        T U   R                  S	U S
35       HY  nUS   R                  n[        U5      [        USS 5      4n[        R                  U/ 5       H  n	U	R                  T U5        M     M[     M•     S H¢  nUT ;   d  M  T U   n
U
R                   R"                  S   R$                  R&                  nXR                   R"                  S   l        U Vs0 s H  oÌUR                  U5      _M     snU
R                   R"                  S   R$                  l        M¤     g s  snf )NzNew glyph order contains z glyphs, but font has z glyphszTNew glyph order does not contain the same set of glyphs as the font:
* only in new: z
* only in old: c              3   óX   >#   • U  H  nTR                  U5      (       a  M  Uv •  M!     g 7fr   )ÚisLoaded)r   r    r<   s     €r   r   Ú reorderGlyphs.<locals>.<genexpr>  s   øé € ÐG¢;˜a°d·m±mÀA×6FŸ™¢;ùs   ƒ*¡	*z/Everything should be loaded, following aren't: >   ÚGDEFÚGPOSÚGSUBÚMATHzfont["z"]r“   ÚFormat)zCFF ÚCFF2r   )ÚgetGlyphOrderrR   Ú
ValueErrorÚsetÚensureDecompiledr&   ÚkeysÚsetGlyphOrderr�   Útabler.   rQ   r5   Ú_REORDER_RULESÚgetr?   ÚcffÚtopDictIndexÚCharStringsÚcharStringsÚcharset)r<   rœ   Úold_glyph_orderÚ
not_loadedÚcoverage_containersÚtagr˜   r.   Úreorder_keyÚreorderÚ	cff_tableÚcharstringsÚks   `            r   ÚreorderGlyphsr¾   ô   s  ø€ Ø×(Ñ(Ó*€OÜ
ˆ?Óœs ?Ó3Ó3ÜØ'¬¨OÓ(<Ð'=ð >Ü Ó0Ð1°ð:ó
ð 	
ô
 ˆ?Óœs ?Ó3Ó3ÜðÜ! /Ó2´S¸Ó5IÑIÐJð KÜ! /Ó2´S¸Ó5IÑIÐJðLó
ð 	
ð 	×ÑÔÜÔG 4§9¡9¤;ÓGÓG€JÞÜÐJÈ:È,ÐWÓXÐXà×Ñ�Ô'â:ÐÛ"ˆØ�$—)‘)“+ÕÜ'¨¨S©	¯©¸6À#ÀÀbÐ9IÖJ�Ø˜R™Ÿ™�Ü# E›{¬G°E¸8ÀTÓ,JÐK�Ü-×1Ñ1°+¸rÖB�GØ—M‘M $¨Ö.ó  Có Kñ #ó  ˆØ�$�;Ø˜S™	ˆIØ#Ÿ-™-×4Ñ4°QÑ7×CÑC×OÑOˆKØ4C�M‰M×&Ñ& qÑ)Ô1á/>óEÚ/>¨!�;—?‘? 1Ó%Ò%©ñEˆI�M‰M×&Ñ& qÑ)×5Ñ5ÖAò  ùò
Es   Ç7I )<rE   Ú
__author__Ú	fontToolsr   ÚfontTools.ttLib.tablesr   r   ÚotÚabcr   r   Údataclassesr   Úcollectionsr	   Útypingr
   r   r   r   r   r   r   rY   rW   Úintr-   r8   r:   rK   r[   Ú	SinglePosÚPairPosri   Ú
CursivePosÚMarkBasePosÚ
MarkLigPosÚMarkMarkPosÚ
ContextPosÚChainContextPosÚContextSubstÚChainContextSubstÚReverseChainSingleSubstÚ
AttachListÚLigCaretListÚMarkGlyphSetsDefÚMathGlyphInfoÚMathItalicsCorrectionInfoÚMathTopAccentAttachmentÚMathKernInfoÚMathVariantsr®   rG   r•   ÚSubTablePathr�   ÚAddToFrontierFnr�   rF   r¾   r   r#   r   Ú<module>rÝ      s•  ðÙ à€
õ Ý )Ý 1ß #Ý !Ý ÷÷ ñ ð €ðØ˜C˜5 #˜:Ñ&ðà�‰Iðð ˜D ™IÑ&ôð$˜Cð ¨cð °cô ôN�#ô Nñ �$ÑôK�kó Kó ðKñ> �$ÑôF�+ó Fó ðFð$Xà‡\�\�1Ð™Ó)Ð*ðXð ‡\�\�1Ð™¸7ÑCÐDðXð ‡Z�Z�€O‘o¸ÑCÐDð	Xð
 ‡Z�Z�Ð™Ð%6¸MÑJÐKðXð ‡Z�Z�€O‘oÓ'Ð(ðXð ‡]�]�AÐ™Ð<MÑNÐOðXð ‡^�^�QÐÙØ(Ð=Sñ	
ñ 	Ø(Ð=Sñ	
ð	ðXð  ‡]�]�AÐÙØ(Ð=Sñ	
ñ 	Ø,Ø=ñ	
ð	ð!Xð2 ‡^�^�QÐÙØ)Ð>Uñ	
ñ 	Ø)Ð>Vñ	
ð	ð3XðB ‡]�]�AÐ™¸LÑIÐJðCXðD ‡]�]�AÐ™Ó*Ð+ðEXðF ‡]�]�AÐ™Ó*Ð+ðGXðH ×Ñ˜Ð™oÐARÑSÐTðIXðJ ×Ñ˜Ð™oÓ/Ð0ðKXðL ×Ñ˜ÐÙÐ&9Ñ:Ù oÑ6ÙÐ&9Ñ:ððMXðX ‡_�_�aÐ™?¸lÑKÐLðYXðZ ‡_�_�aÐ™?Ó,Ð-ð[Xð\ ‡_�_�aÐ™?Ó,Ð-Ø×Ñ˜1Ð¡ÐCTÑ UÐVØ×Ñ˜1Ð¡Ó 1Ð2Ø×Ñ˜1ÐÙÐ&9Ñ:Ù oÑ6ÙÐ&9Ñ:ð ð
 ×Ñ Ð#Ù¨<Ñ8ÙÐ&9Ñ:ÙÐ&9Ñ:ð&ð ‡]�]�DÐ™O¸}ÑMÐNØ‡_�_�dÐ™oÀÑLÐMØ×Ñ˜$Ð¡/Ó"3Ð!4à×Ñ�tÐ™Ð=TÑUÐVØ×!Ñ! 4Ð(ÙÐ+>Ñ?ð+ð ×Ñ Ð&ÙØ-ÐBWñ	
ð)ð
 ‡_�_�dÐÙØ,ÐAVñ	
ðð
 ‡_�_�dÐÙØ-Ø6ñ	
ñ 	Ø.Ø7ñ	
ð	ñ]X€ðz �V×%Ñ%×3Ñ3°SÐ8Ñ9€ðØ
×
Ñ
ðØ+.ðàˆlÑôð ˜E ,Ñ/°°lÑ1CÐDÀdÐJÑK€ð2Ø
×
Ñ
ð2Ø+.ð2ØDSð2àˆlÑô2ð*)˜Ÿ™ð )°t¸C±yõ )r#   