a
    èÝEbp!  ã                   @   sÎ  d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
T d dlZe d¡Zeeeeeeedœe d	¡_d
eeeeedd„ eeedd„ dœZeeedd„ eeeƒeeeeeeeeedd„ eedœe d¡_eeeeeeeeeeeeeedœe d¡_eeeeeeeeeeeeeedœe d¡_d
dd„ eeeeedœZdd„ Zeeeeeeeeeeeeeeeeeeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒdœe d¡_ee d¡ƒdd„ ƒZeeeeedd„ ed d„ ee ƒd!d„ d"œ
e d#¡_ee d$œ e d%¡_e d&¡_eed'œe d(¡_eed)œe d*¡_ee e!d+œe d,¡_ee d,¡ƒd-d„ ƒZd.d„ e d/¡_d0d„ e d1¡_d2d„ e d3¡_d4d„ e d5¡_ee d6¡ƒd7d„ ƒZee d8¡ƒd9d„ ƒZdS ):é    )ÚttLibÚcffLib)ÚDefaultTable)Ú
add_methodÚmergeObjects)ÚcomputeMegaCmap)Ú*NzfontTools.merge)r   ÚtableTagÚtableVersionÚ	numGlyphsZ
maxStorageZmaxFunctionDefsZmaxInstructionDefsZmaxpé   c                 C   s   dS ©Nr   © ©Úbitr   r   úV/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/fontTools/merge/tables.pyÚ<lambda>#   ó    r   c                 C   s   dS r   r   r   r   r   r   r   '   r   )Úsizer   é   é   é   é   é   é   é   é   é   c                 C   s   dS r   r   ©Úlstr   r   r   r   .   r   c                 C   s   dS )Nr   r   r   r   r   r   r   :   r   )r	   r
   ZfontRevisionZcheckSumAdjustmentZmagicNumberÚflagsZ
unitsPerEmÚcreatedÚmodifiedZxMinZyMinZxMaxZyMaxZmacStyleZlowestRecPPEMZfontDirectionHintZindexToLocFormatZglyphDataFormatÚhead)r   r	   r
   ÚascentÚdescentÚlineGapZadvanceWidthMaxZminLeftSideBearingZminRightSideBearingZ
xMaxExtentÚcaretSlopeRiseÚcaretSlopeRunÚcaretOffsetZnumberOfHMetricsZhhea)r   r	   r
   r$   r%   r&   ZadvanceHeightMaxZminTopSideBearingZminBottomSideBearingZ
yMaxExtentr'   r(   r)   ZnumberOfVMetricsZvheac                 C   s   dS r   r   r   r   r   r   r   c   r   )r   r   r   r   r   é   é	   c                 C   s    t | ƒ} tdd„ | D ƒƒrdS tt| ƒƒD ]T}| | d@ rL| |  dM  < q*| | d@ rj| |  dO  < q*| | dkr*d| |< q*ttƒ| ƒ}|d@ rœ|d	M }|S )
Nc                 s   s   | ]}|d kV  qdS )r   Nr   )Ú.0Úitemr   r   r   Ú	<genexpr>m   r   z!mergeOs2FsType.<locals>.<genexpr>r   é   éýÿÿÿr*   é   r   ióÿÿÿ)ÚlistÚallÚrangeÚlenÚ	mergeBitsÚos2FsTypeMergeBitMap)r   ÚiÚfsTyper   r   r   ÚmergeOs2FsTypek   s    
r:   )r   r	   ÚversionZxAvgCharWidthr9   ZpanoseZulUnicodeRange1ZulUnicodeRange2ZulUnicodeRange3ZulUnicodeRange4ZfsFirstCharIndexZfsLastCharIndexZsTypoAscenderZsTypoDescenderZsTypoLineGapZusWinAscentZusWinDescentZulCodePageRange1ZulCodePageRange2ZsxHeightZ
sCapHeightZusDefaultCharZusBreakCharZusMaxContextZusLowerOpticalPointSizeZusUpperOpticalPointSizezOS/2c                 C   sL   t  | ||¡ | jdk r&|  jdM  _| jdkrH| jd@ rH|  jdM  _| S )Nr   iÿüÿÿr   r*   éûÿÿÿ)r   Úmerger;   r9   )ÚselfÚmÚtablesr   r   r   r=   £   s    


r=   c                 C   s   dS r   r   r   r   r   r   r   ·   r   c                 C   s   dS r   r   r   r   r   r   r   ¹   r   c                 C   s   g S ©Nr   r   r   r   r   r   »   r   )
r   r	   Z
formatTypeZisFixedPitchZminMemType42ZmaxMemType42ZminMemType1ZmaxMemType1ÚmappingZ
extraNamesÚpost)r	   ZmetricsZvmtxZhmtx)r	   ÚnamesÚname)r   r	   Zloca)r	   ÚglyphsÚ
glyphOrderZglyfc                 C   sN   t |ƒD ]6\}}|j ¡ D ]"}|r*| ¡  | ¡ r| |¡ qqt | ||¡S rA   )Ú	enumeraterF   ÚvaluesZremoveHintingZisCompositeÚexpandr   r=   )r>   r?   r@   r8   ÚtableÚgr   r   r   r=   Ó   s    c                 C   s   t |ƒS rA   ©Úfirst©r>   r   r   r   r   r   á   r   Úprepc                 C   s   t |ƒS rA   rM   rO   r   r   r   r   â   r   Zfpgmc                 C   s   t |ƒS rA   rM   rO   r   r   r   r   ã   r   zcvt c                 C   s   t |ƒS rA   rM   rO   r   r   r   r   ä   r   ZgaspzCFF c                 C   s¤  t dd„ |D ƒƒrtdƒ‚|D ]}|j ¡  q|d }|jd }|j}g }g }t| ¡ ƒ}	|jjD ]"}
|
|	vrz| |
¡ qb| |
¡ qbt	|j
ƒ}|j}t dt|ƒ¡ t|dd … dd�D ]È\}}|jd }||_t| ¡ ƒ}|jjD ]}
|
|v ræ| |
¡ qæ|j}|jj}t d|t|ƒ¡ | |j
¡ |j�rht|jt|ƒd�D ]"\}}
||j|
< |jj d ¡ �qD|jD ]}
||
 ||
< �qnqº||_
t|ƒ|_|| |j_|S )	Nc                 s   s   | ]}t |d ƒV  qdS )ZFDSelectN)Úhasattr)r,   rK   r   r   r   r.   é   r   zmerge.<locals>.<genexpr>z1Merging CID-keyed CFF tables is not supported yetr   zFONT 0 CharStrings: %d.r   )ÚstartzFont %d CharStrings: %d.)ÚanyÚNotImplementedErrorZcffZdesubroutinizeZPrivateÚsetZgetGlyphOrderÚstringsÚappendr2   ÚcharsetZCharStringsÚlogÚdebugr5   rH   ZGlobalSubrsÚextendZcharStringsAreIndexedZcharStringsZcharStringsIndexÚitemsr   )r>   r?   r@   rK   ZnewcffZnewfontÚprivateZstoredNamesStringsZglyphOrderStringsrG   rE   ZchrsetZnewcsr8   ÚfontZfontGlyphOrderÚcsÚgsr   r   r   r=   æ   sP    ÿ





Úcmapc                 C   sÈ   t |dƒst||ƒ |j}dd„ | ¡ D ƒ}g | _t d¡}t|ƒt|ƒkr~|jd dƒ}d|_	d|_
d|_||_| j |¡ |jd dƒ}d|_	d	|_
d|_||_| j d|¡ d| _t| jƒ| _| S )
Nra   c                 S   s   i | ]\}}|d kr||“qS )iÿÿ  r   )r,   ÚuniÚgidr   r   r   Ú
<dictcomp>"  r   zmerge.<locals>.<dictcomp>r/   r   é
   r   r1   r   )rQ   r   ra   r\   r@   r   ZgetTableModuler5   Zcmap_classesZ
platformIDZ	platEncIDÚlanguagerW   Úinsertr
   ZnumSubTables)r>   r?   r@   ra   ZcmapBmpOnlyÚmoduleZ	cmapTabler   r   r   r=     s,    


)"Z	fontToolsr   r   Z#fontTools.ttLib.tables.DefaultTabler   ZfontTools.merge.baser   r   ZfontTools.merge.cmapr   ZfontTools.merge.utilÚloggingÚ	getLoggerrY   ÚmaxÚequalÚsumrN   ZgetTableClassZmergeMapZ
bitwise_orZbitwise_andZheadFlagsMergeBitMapr6   Úcurrent_timeÚminZrecalculater7   r:   Zavg_intZonlyExistingr=   ZsumDictsZsumListsr   r   r   r   Ú<module>   s&  
ùõîòòù
ã 
öþþþý

3