
    hH                         S SK Jr  S SKJr  S SKr\R
                  " S5      rS r  SS jrS r	 " S S	5      r
S
 rS rg)    )is_Default_Ignorable)DecomposingRecordingPenNzfontTools.mergec                 0   0 nU Hn  n[        U5       H\  u  pEXR;   aN  X%   nUS-   [        U5      -   U;   a  US-  nUS-   [        U5      -   U;   a  M  XbU'   US[        U5      -   -  nXSU'   SX%'   M^     Mp     [        UR                  5       5      =U l        ng)zTModifies passed-in glyphOrders to reflect new glyph names.
Stores merger.glyphOrder..   N)	enumeratereprlistkeys
glyphOrder)mergerglyphOrders	megaOrderr   i	glyphNamens          N/var/www/fran/franai/venv/lib/python3.13/site-packages/fontTools/merge/cmap.pycomputeMegaGlyphOrderr      s     I!
%j1LA%( 3a0Y>FA !3a0Y>'()$S47]*	 )1#$I  2 " %))9$::F	    c                    [        U 5      n[        U5      nX   nX   n	UR                  U5        U	R                  U5        UR                  UR                  :w  a  gUR                  (       a  UOUn
[        UR                  U	R                  -
  5      UR                  U
-  :  a  g[        US5      (       aA  UR                  b4  [        UR                  U	R                  -
  5      UR                  U
-  :  a  gg)NFheightT)r   drawvalueabswidthhasattrr   )	glyphSet1	glyphSet2glyph1glyph2advanceToleranceadvanceToleranceEmptypen1pen2g1g2	tolerances              r   _glyphsAreSamer(      s     #9-D"9-D		B		BGGDMGGDMzzTZZ$(JJ 4II
288bhh"((Y"66r8!6ryy299$%		I(==r   c                 0   0 nU R                   nU Hb  nUR                  R                  5        HA  u  pVXR;  a  0 X%'   U H-  u  pxUR                  U5      U:X  a  SnXrU   ;  d  M&  XU   U'   M/     MC     Md     U H  n/ X%   R                  5       QX%'   M     U$ )z-Returns merged UVS subtable (cmap format=14).N)cmapuvsDictitemsget)	r   	uvsTablesr+   r*   tablevariationSelector
uvsMappingunicodeValuer   s	            r   computeMegaUvsr3   9   s    G;;D-2]]-@-@-B) /-/*+5'88L)Y6 $I/@'AA?H-.|< ,6 .C  %%Jw'A'G'G'I%J" % Nr   c                   *    \ rS rSr1 Skr1 SkrS1rSrg)_CmapUnicodePlatEncodingsS   >      r   r8   r8   r      r8   r      r8   r:   r   >      r   r8   r?   r   r<   r?   r:   
   )   r       N)__name__
__module____qualname____firstlineno__BMPFullRepertoireUVS__static_attributes__rE   r   r   r5   r5   S   s    
6C:N,Cr   r5   c           	         / n/ n[        U5       GH  u  pESnSnSnUR                   H  n	U	R                  U	R                  U	R                  4n
U
[
        R                  ;   a  U	nM>  U
[
        R                  ;   a  U	nMV  U
[
        R                  ;   a  U	nMn  [        R                  SUU	R                  U	R                  U	R                  5        M     Ub  UR                  Xt45        OUb  UR                  Xd45        Uc  M  UR                  U5        GM     0 =U l        n0 n[        U S5      (       a  U R                   Vs/ s H  nSPM     snOSnU GH  u  pTUR                  R                  5        H  u  nnUR!                  US5      nUc
  UX'   XLU'   M%  [#        U5      (       d  US;   a  M=  UU:w  d  ME  U R$                  U   R!                  U5      cO  Ub8  UU   nUU4 H+  nUU   b  M  U R                  U   R'                  5       UU'   M-     UU R$                  U   U'   M  U R$                  U   U   U:w  d  M  [        R                  SUU5        M     GM	     [)        X5      U l        gs  snf )z$Sets merger.cmap and merger.uvsDict.NzODropped cmap subtable from font '%s':	format %2s, platformID %2s, platEncID %2sfonts)i%  z4Dropped mapping from codepoint %#06X to glyphId '%s')r   tablesformat
platformID	platEncIDr5   rJ   rK   rL   logwarningappendr*   r   rO   r,   r-   r   duplicateGlyphsPerFontgetGlyphSetr3   r+   )r   
cmapTableschosenCmapTableschosenUvsTablesfontIdxr/   format4format12format14subtable
propertiesr*   fontIndexForGlyphf	glyphSetsunigidoldgid
oldFontIdxidxs                       r   computeMegaCmaprj   Y   se    O#J/H"//8+>+>@R@RSJ6:::"8GGG#8<<<#@OO''&& %" ##X$78 ##W$67""8,7 0< FK$070H0Hv||,|!|,dI*

((*HCXXc4(F~	)0#&%c**cY.>3 009==fEM ,%6v%>
$+Z#8C(~517c1B1N1N1P	# $9
 FIF11':6B227;FCsJ KKNPSUX/ + +: $F<FN? -s   I0c                     UR                   R                  S   n0 n[        UR                  R                  R                  5       5       H  u  pVX   nXdU'   M     XCR                  l        [        U5      Ul        g)z4Rename topDictIndex charStrings based on glyphOrder.r   N)cfftopDictIndexr   CharStringscharStringsvaluesr
   charset)r   r   cffTabletdro   r   vr   s           r   renameCFFCharStringsru      sf    		"	"1	%BK"..44;;=>M	!"I ? "-NNj!BJr   )g?g?)fontTools.merge.unicoder   fontTools.pens.recordingPenr   logging	getLoggerrT   r   r(   r3   r5   rj   ru   rE   r   r   <module>rz      sP   
 9 ?  )*;, 64 G=T
"r   