
    khH                         d dl mZ d dlmZ d dlZ ej
                  d      Zd Z	 	 ddZd Z	 G d d	      Z
d
 Zd Zy)    )is_Default_Ignorable)DecomposingRecordingPenNzfontTools.mergec                 &   i }|D ]j  }t        |      D ]Z  \  }}||v rL||   }|dz   t        |      z   |v r|dz  }|dz   t        |      z   |v r|||<   |dt        |      z   z  }|||<   d||<   \ l t        |j                               x| _        }y)zXModifies passed-in glyphOrders to reflect new glyph names.
    Stores merger.glyphOrder..   N)	enumeratereprlistkeys
glyphOrder)mergerglyphOrders	megaOrderr   i	glyphNamens          f/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/fontTools/merge/cmap.pycomputeMegaGlyphOrderr      s     I! 	%
%j1 	%LAyI%i( 3a0Y>FA !3a0Y>'(	)$S47]*	 )
1#$Ii 	%	% %))9$::F	    c                    t        |       }t        |      }| |   }||   }	|j                  |       |	j                  |       |j                  |j                  k7  ry|j                  r|n|}
t        |j                  |	j                  z
        |j                  |
z  kD  ryt        |d      r?|j                  3t        |j                  |	j                  z
        |j                  |
z  kD  ryy)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	6	B	6	BGGDMGGDMzzTZZ$(JJ 4II
288bhh"((Y"66r8!6ryy299$%		I(==r   c                 $   i }| j                   }|D ]]  }|j                  j                         D ]>  \  }}||vri ||<   |D ]+  \  }}|j                  |      |k(  rd}|||   vs$|||   |<   - @ _ |D ]  }g ||   j                         ||<    |S )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 
I-2]]-@-@-B 		I)z /-/)*+5 I'i88L)Y6 $Iw/@'AA?HG-.|<I		I
I % K%Jw/@'A'G'G'I%J!"K Nr   c                   "    e Zd Zh dZh dZdhZy)_CmapUnicodePlatEncodings>      r   r7   r7   r      r7   r      r7   r9   r   >      r   r7   r>   r   r;   r>   r9   
   )   r      N)__name__
__module____qualname__BMPFullRepertoireUVS r   r   r5   r5   S   s    
6C:N,Cr   r5   c           	         g }g }t        |      D ]  \  }}d}d}d}|j                  D ]  }	|	j                  |	j                  |	j                  f}
|
t
        j                  v r|	};|
t
        j                  v r|	}P|
t
        j                  v r|	}et        j                  d||	j                  |	j                  |	j                          ||j                  ||f       n||j                  ||f       ||j                  |        i x| _        }i }t        | d      r| j                  D cg c]  }d c}nd}|D ]  \  }}|j                  j                         D ]  \  }}|j!                  |d      }||||<   |||<   %t#        |      s|dv r5||k7  s;| j$                  |   j!                  |      I|4||   }||fD ](  }||   	| j                  |   j'                         ||<   * || j$                  |   |<   | j$                  |   |   |k7  st        j                  d||         t)        | |      | _        yc c}w )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   rG   rH   rI   logwarningappendr*   r   rL   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   computeMegaCmaprg   Y   s    O#J/ - 	H"//8+>+>@R@RSJ6:::"8GGG#8<<<#@OO''&&	" ##Xw$78 ##Wg$67""8,7-< FK$070Hv||,!,dI* w

((* 	HCXXc4(F~S	)0!#&%c*cY.>3 009==fEM ,%6v%>
$+Z#8 QC(~517c1B1N1N1P	#Q
 FIF11':6B227;FCsJ KKNPSUX/	: $FO<FN? -s   ,	Ic                     |j                   j                  d   }i }t        |j                  j                  j                               D ]  \  }}||   }|||<    ||j                  _        t        |      |_        y)z4Rename topDictIndex charStrings based on glyphOrder.r   N)cfftopDictIndexr   CharStringscharStringsvaluesr
   charset)r   r   cffTabletdrl   r   vr   s           r   renameCFFCharStringsrr      ss    		"	"1	%BK"..44;;=> #1qM	!"I# "-BNNj!BJr   )g?g?)fontTools.merge.unicoder   fontTools.pens.recordingPenr   logging	getLoggerrQ   r   r(   r3   r5   rg   rr   rJ   r   r   <module>rw      sR   
 9 ?  g)*;, 64 G=T
"r   