
    Ng                     ~    d dl mZ d dlmZ d dlZ ej        d          Zd Z	 	 ddZ G d	 d
          Z	d Z
d ZdS )    )is_Default_Ignorable)DecomposingRecordingPenNzfontTools.mergec                 T   i }|D ]z}t          |          D ]h\  }}||v rZ||         }|dz   t          |          z   |v r|dz  }|dz   t          |          z   |v |||<   |dt          |          z   z  }|||<   d||<   i{t          |                                          x| _        }dS )zXModifies passed-in glyphOrders to reflect new glyph names.
    Stores merger.glyphOrder..   N)	enumeratereprlistkeys
glyphOrder)mergerglyphOrders	megaOrderr   i	glyphNamens          P/var/www/html/ai-engine/env/lib/python3.11/site-packages/fontTools/merge/cmap.pycomputeMegaGlyphOrderr      s     I! 	% 	%
%j11 	% 	%LAyI%%i( 3a0Y>>FA !3a0Y>>'(	)$S477]*	 )
1#$Ii  	% %))9)9$:$::F			    皙?皙?c                    t          |           }t          |          }| |         }||         }	|                    |           |	                    |           |j        |j        k    rdS |j        r|n|}
t          |j        |	j        z
            |j        |
z  k    rdS t          |d          r1|j        *t          |j        |	j        z
            |j        |
z  k    rdS dS )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GGDMMMGGDMMMzTZu$(JI  4II
28bh"(Y"666ur8 !6ry29$%%	I(===54r   c                       e Zd Zh dZh dZdS )_CmapUnicodePlatEncodings>      r   r.   r.   r      r.   r      r.   r0   r   >      r   r.   r5   r   r2   r5   r0   
   N)__name__
__module____qualname__BMPFullRepertoire r   r   r,   r,   =   s$        
6
6
6C:::NNNr   r,   c           	         g }t          |          D ]\  }}d}d}|j        D ]e}|j        |j        |j        f}|t
          j        v r|}'|t
          j        v r|}8t          	                    d||j        |j        |j                   f||
                    ||f           ||
                    ||f           i x| _        }	i }
t          | d          rd | j        D             nd}|D ]\  }}|j                                        D ]\  }}|	                    |d          }|||	|<   ||
|<   (t!          |          s|dv r<||k    r| j        |                             |          L|9|
|         }||fD ],}||         "| j        |                                         ||<   -|| j        |         |<   | j        |         |         |k    rt          	                    d||           dS )z'Sets merger.cmap and merger.glyphOrder.NzODropped cmap subtable from font '%s':	format %2s, platformID %2s, platEncID %2sfontsc                     g | ]}d S )Nr>   ).0fs     r   
<listcomp>z#computeMegaCmap.<locals>.<listcomp>c   s    ,,,!,,,r   )i%  z4Dropped mapping from codepoint %#06X to glyphId '%s')r   tablesformat
platformID	platEncIDr,   r<   r=   logwarningappendcmapr   r@   itemsgetr   duplicateGlyphsPerFontgetGlyphSet)r   
cmapTableschosenCmapTablesfontIdxtableformat4format12subtable
propertiesrL   fontIndexForGlyph	glyphSetsunigidoldgid
oldFontIdxidxs                    r   computeMegaCmapr`   B   s    #J// 8 8 	 	H"/8+>@RSJ6:::"8GGG#@O'&    ##Xw$78888 ##Wg$6777 FK$070H0HR,,v|,,,,dI*  w
((** 	 	HCXXc4((F~S	)0!#&&%c** cY.>.>3 09==fEEM ,%6v%>
$+Z#8 Q QC(~517c1B1N1N1P1P	# FIF1':6BB27;FCsJJ KKNPSUX  /	 r   c                     |j         j        d         }i }t          |j        j                                                  D ]\  }}||         }|||<   ||j        _        t          |          |_        dS )z4Rename topDictIndex charStrings based on glyphOrder.r   N)cfftopDictIndexr   CharStringscharStringsvaluesr
   charset)r   r   cffTabletdre   r   vr   s           r   renameCFFCharStringsrk      su    		"1	%BK".4;;==>> # #1qM	!"I!,BNj!!BJJJr   )r   r   )fontTools.merge.unicoder   fontTools.pens.recordingPenr   logging	getLoggerrI   r   r*   r,   r`   rk   r>   r   r   <module>rp      s   
 9 8 8 8 8 8 ? ? ? ? ? ?  g)**; ; ;,    >; ; ; ; ; ; ; ;
> > >B
" 
" 
" 
" 
"r   