§
    èƒñjqR  ã                   óØ  — d Z ddlmZmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZmZ d„ Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de#¦  «        Z$ G d„ de#¦  «        Z%d„ Z& G d„ de#¦  «        Z'dd œd!„Z( G d"„ d#e¦  «        Z) G d$„ d%¦  «        Z*d&S )'zGlyphSets returned by a TTFont.é    )ÚABCÚabstractmethod)ÚMapping)Úcontextmanager)ÚcopyÚdeepcopy©ÚSimpleNamespace)ÚVector)ÚotRoundÚfixedToFloat)ÚdeprecateFunction)Ú	TransformÚDecomposedTransform)ÚTransformPenÚTransformPointPen)ÚDecomposingRecordingPenÚlerpRecordingsÚreplayRecordingc                 óŠ  — d| v r| d         j         S d}|                      d| v rdnd¦  «        }|�|j        }d| v rpt          t	          | d         j                             ¦   «         ¦  «        ¦  «        }t          |j        dd ¦  «        }|�t          ||j
        j        j        ¦  «        }d„ t          |¦  «        D ¦   «         S )NÚfvarr   ÚGVARÚgvarÚCFF2ÚvarStorec                 ó.   — g | ]}t          |¬ ¦  «        ‘ŒS )©ÚaxisTagr	   )Ú.0Úis     úY/data/share/cad/hardware/.venv/lib/python3.11/site-packages/fontTools/ttLib/ttGlyphSet.pyú
<listcomp>z%_getVariationAxes.<locals>.<listcomp>%   s#   € ÐAÐAÐA¨1�O AÐ&Ñ&Ô&ÐAÐAÐAó    )ÚaxesÚgetÚ	axisCountÚnextÚiterÚcffÚvaluesÚgetattrÚCharStringsÚmaxÚ
otVarStoreÚVarRegionListÚRegionAxisCountÚrange)Úfontr&   r   r)   r   s        r!   Ú_getVariationAxesr3      sÏ   € Ø�€~€~Ø�FŒ|Ô Ð ð €IØ�8Š8˜f¨˜n˜n�F�F°&Ñ9Ô9€DØÐØ”Nˆ	Ø�€~€~Ý•4˜˜VœÔ(×/Ò/Ñ1Ô1Ñ2Ô2Ñ3Ô3ˆÝ˜3œ?¨J¸Ñ=Ô=ˆØÐÝØ˜8Ô.Ô<ÔLñô ˆIð BÐAµ°iÑ0@Ô0@ÐAÑAÔAÐAr#   c                   ó’   — e Zd ZdZddddœd„Zedefd„¦   «         Zed	„ ¦   «         Zd
„ Z	d„ Z
d„ Z ede¬¦  «        d„ ¦   «         ZdS )Ú_TTGlyphSetzlGeneric dict-like GlyphSet class that pulls metrics from hmtx and
    glyph shape from TrueType or CFF.
    ÚhmtxÚvmtxT©ÚhMetricsTagÚvMetricsTagÚrecalcBoundsc                óÆ  — || _         || _        t          |¦  «        | _        |�|ni | _        i | _        |�|ni | _        d| _        g | _        g | _	        || _
        || _        || _        ||         j        | _        t          |                     |¦  «        dd ¦  «        | _        d | _        d | _        |rªddlm} t          |                     d¦  «        dd ¦  «        | _        | j        �! || j        j        | j        |¦  «        | _        t          |                     d¦  «        dd ¦  «        | _        | j        �% || j        j        | j        |¦  «        | _        d S d S d S )Nr   Úmetrics©ÚVarStoreInstancerÚHVARÚtableÚVVAR)r;   r2   r3   r$   ÚlocationÚrawLocationÚoriginalLocationÚdepthÚlocationStackÚrawLocationStackÚglyphsMappingÚ_hMetricsTagÚ_vMetricsTagr=   ÚhMetricsr+   r%   ÚvMetricsÚ	hvarTableÚ	vvarTableÚfontTools.varLib.varStorer?   ÚVarStoreÚhvarInstancerÚvvarInstancer)Úselfr2   rC   rI   r9   r:   r;   r?   s           r!   Ú__init__z_TTGlyphSet.__init__-   s~  € ð )ˆÔØˆŒ	Ý% dÑ+Ô+ˆŒ	Ø$,Ð$8˜˜¸bˆŒØˆÔØ,4Ð,@  ÀbˆÔØˆŒ
ØˆÔØ "ˆÔØ*ˆÔØ'ˆÔØ'ˆÔØ˜[Ô)Ô1ˆŒÝ §¢¨Ñ 5Ô 5°yÀ$ÑGÔGˆŒØˆŒØˆŒØð 	ØCÐCÐCÐCÐCÐCå$ T§X¢X¨fÑ%5Ô%5°wÀÑEÔEˆDŒNØŒ~Ð)Ø%6Ð%6Ø”NÔ+¨T¬Y¸ñ&ô &�Ô"õ % T§X¢X¨fÑ%5Ô%5°wÀÑEÔEˆDŒNØŒ~Ð)Ø%6Ð%6Ø”NÔ+¨T¬Y¸ñ&ô &�Ô"Ð"Ð"ð	ð 	ð *Ð)r#   Úresetc              #   óŒ  K  — | j                              | j        ¦  «         | j                             | j        ¦  «         |r&| j                             ¦   «         | _        i | _        n%| j                             ¦   «         | _        i | _        | j                             |¦  «         | j                             |¦  «         	 d V — | j                              ¦   «         | _        | j                             ¦   «         | _        d S # | j                              ¦   «         | _        | j                             ¦   «         | _        w xY w©N)	rG   ÚappendrC   rH   rD   rE   r   ÚupdateÚpop)rT   rC   rV   s      r!   ÚpushLocationz_TTGlyphSet.pushLocationV   s)  è è € àÔ×!Ò! $¤-Ñ0Ô0Ð0ØÔ×$Ò$ TÔ%5Ñ6Ô6Ð6Øð 	"Ø Ô1×6Ò6Ñ8Ô8ˆDŒMØ!ˆDÔÐà œM×.Ò.Ñ0Ô0ˆDŒMØ!ˆDÔØŒ×Ò˜XÑ&Ô&Ð&ØÔ×Ò Ñ)Ô)Ð)ð	;ØˆJˆJˆJà Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐÐøð !Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐ:Ð:Ð:Ð:s   ÃD Ä>Ec              #   óŒ   K  — 	 | j         }| xj         dz  c_         |V — | xj         dz  c_         d S # | xj         dz  c_         w xY w)Né   )rF   )rT   rF   s     r!   Ú	pushDepthz_TTGlyphSet.pushDepthi   sT   è è € ð	Ø”JˆEØˆJŒJ˜!‰OˆJŒJØˆKˆKˆKàˆJŒJ˜!‰OˆJŒJˆJˆJøˆDˆJŒJ˜!‰OˆJŒJˆJˆJˆJˆJs	   „1 ±Ac                 ó   — || j         v S rX   ©rI   ©rT   Ú	glyphNames     r!   Ú__contains__z_TTGlyphSet.__contains__r   s   € Ø˜DÔ.Ð.Ð.r#   c                 óN   — t          | j                             ¦   «         ¦  «        S rX   )r(   rI   Úkeys©rT   s    r!   Ú__iter__z_TTGlyphSet.__iter__u   s   € Ý�DÔ&×+Ò+Ñ-Ô-Ñ.Ô.Ð.r#   c                 ó*   — t          | j        ¦  «        S rX   )ÚlenrI   rg   s    r!   Ú__len__z_TTGlyphSet.__len__x   s   € Ý�4Ô%Ñ&Ô&Ð&r#   z#use 'glyphName in glyphSet' instead)Úcategoryc                 ó   — || j         v S rX   ra   rb   s     r!   Úhas_keyz_TTGlyphSet.has_key{   s   € ð ˜DÔ.Ð.Ð.r#   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rU   r   Úboolr\   r_   rd   rh   rk   r   ÚDeprecationWarningrn   © r#   r!   r5   r5   (   sè   € € € € € ðð ð ØØð&ð &ð &ð &ð &ðR ð;¨Dð ;ð ;ð ;ñ „^ð;ð$ ðð ñ „^ðð/ð /ð /ð/ð /ð /ð'ð 'ð 'ð ÐØ-Ð8Jðñ ô ð/ð /ñô ð/ð /ð /r#   r5   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú_TTGlyphSetGlyfTc                 óê   •— ||         | _         t          ¦   «                              ||| j         | j         j        | j         j        |¬¦  «         |                     | j         j        ¦  «        | _        d S )Nr8   )Ú	glyfTableÚsuperrU   ÚhmtxTagÚvmtxTagr%   ÚgvarTagÚ	gvarTable)rT   r2   rC   ÚglyfTagr;   Ú	__class__s        €r!   rU   z_TTGlyphSetGlyf.__init__ƒ   sk   ø€ Ø˜gœˆŒÝ‰Œ×ÒØØØŒNØœÔ.ØœÔ.Ø%ð 	ñ 	
ô 	
ð 	
ð Ÿš $¤.Ô"8Ñ9Ô9ˆŒˆˆr#   c                 ó0   — t          | || j        ¬¦  «        S ©N©r;   )Ú_TTGlyphGlyfr;   rb   s     r!   Ú__getitem__z_TTGlyphSetGlyf.__getitem__�   s   € Ý˜D )¸$Ô:KÐLÑLÔLÐLr#   )T©ro   rp   rq   rU   r…   Ú__classcell__©r€   s   @r!   rw   rw   ‚   sS   ø€ € € € € ð
:ð 
:ð 
:ð 
:ð 
:ð 
:ðMð Mð Mð Mð Mð Mð Mr#   rw   c                   óF   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zedefd„¦   «         Zˆ xZ	S )Ú_TTGlyphSetCFFc                 ó(  •— d|v rdnd}t          ||         j                             ¦   «         ¦  «        d         j        | _        t          ¦   «                              ||| j        d|v rdndd|v rdnd¬¦  «         |                      |¦  «         d S )	Nr   zCFF r   ÚHMTXr6   ÚVMTXr7   ©r9   r:   )Úlistr)   r*   r,   ÚcharStringsrz   rU   ÚsetLocation)rT   r2   rC   ÚtableTagr€   s       €r!   rU   z_TTGlyphSetCFF.__init__”   s¦   ø€ Ø# t˜^˜^�6�6°ˆÝ  X¤Ô 2× 9Ò 9Ñ ;Ô ;Ñ<Ô<¸QÔ?ÔKˆÔÝ‰Œ×ÒØØØÔØ"(¨D . .˜˜°fØ"(¨D . .˜˜°fð 	ñ 	
ô 	
ð 	
ð 	×Ò˜Ñ"Ô"Ð"Ð"Ð"r#   c                 ó"   — t          | |¦  «        S rX   )Ú_TTGlyphCFFrb   s     r!   r…   z_TTGlyphSetCFF.__getitem__    s   € Ý˜4 Ñ+Ô+Ð+r#   c                 ó°   — d | _         |rEddlm} t          | j        dd ¦  «        }|�% ||j        | j        |¦  «        }|j        | _         d S d S d | _         d S )Nr   r>   r   )ÚblenderrP   r?   r+   r�   r.   r$   ÚinterpolateFromDeltas)rT   rC   r?   r   Ú	instancers        r!   r‘   z_TTGlyphSetCFF.setLocation£   s|   € ØˆŒØð 
	 ð DÐCÐCÐCÐCÐCå˜tÔ/°¸TÑBÔBˆHØÐ#Ø-Ð-¨hÔ.AÀ4Ä9ÈhÑWÔW�	Ø(Ô>�”��ð $Ð#ð  ˆDŒLˆLˆLr#   rV   c              #   ó"  K  — 	 t                                | ||¦  «        5 }|                      | j        ¦  «         |V — d d d ¦  «         n# 1 swxY w Y   |                      | j        ¦  «         d S # |                      | j        ¦  «         w xY wrX   )r5   r\   r‘   rC   )rT   rC   rV   Úvalues       r!   r\   z_TTGlyphSetCFF.pushLocation±   sÎ   è è € ð	,Ý×)Ò)¨$°¸%Ñ@Ô@ð ÀEØ× Ò  ¤Ñ/Ô/Ð/Ø���ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ×Ò˜Tœ]Ñ+Ô+Ð+Ð+Ð+øˆD×Ò˜Tœ]Ñ+Ô+Ð+Ð+øøøs-   „A2  A¿A2 ÁAÁA2 ÁAÁA2 Á2B)
ro   rp   rq   rU   r…   r‘   r   rs   r\   r‡   rˆ   s   @r!   rŠ   rŠ   “   s}   ø€ € € € € ð
#ð 
#ð 
#ð 
#ð 
#ð,ð ,ð ,ð ð  ð  ð ð,¨Dð ,ð ,ð ,ñ „^ð,ð ,ð ,ð ,ð ,r#   rŠ   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_TTGlyphSetVARCc                 óî   •— || _         t          ¦   «                              ||t                               |                     ¦   «         ¦  «        |j        |j        ¬¦  «         |d         j        | _	        d S )NrŽ   ÚVARC)
ÚglyphSetrz   rU   ÚdictÚfromkeysÚgetGlyphOrderrJ   rK   rA   Ú	varcTable)rT   r2   rC   rŸ   r€   s       €r!   rU   z_TTGlyphSetVARC.__init__½   sl   ø€ Ø ˆŒÝ‰Œ×ÒØØÝ�MŠM˜$×,Ò,Ñ.Ô.Ñ/Ô/Ø Ô-Ø Ô-ð 	ñ 	
ô 	
ð 	
ð ˜fœÔ+ˆŒˆˆr#   c                 óf   — | j         }||j        j        vr| j        |         S t	          | |¦  «        S rX   )r£   ÚCoverageÚglyphsrŸ   Ú_TTGlyphVARC)rT   rc   Úvarcs      r!   r…   z_TTGlyphSetVARC.__getitem__È   s6   € ØŒ~ˆØ˜DœMÔ0Ð0Ð0Ø”= Ô+Ð+Ý˜D )Ñ,Ô,Ð,r#   r†   rˆ   s   @r!   rœ   rœ   ¼   sG   ø€ € € € € ð	,ð 	,ð 	,ð 	,ð 	,ð-ð -ð -ð -ð -ð -ð -r#   rœ   c                   ó:   — e Zd ZdZddœd„Zed„ ¦   «         Zd„ ZdS )Ú_TTGlyphaS  Glyph object that supports the Pen protocol, meaning that it has
    .draw() and .drawPoints() methods that take a pen object as their only
    argument. Additionally there are 'width' and 'lsb' attributes, read from
    the 'hmtx' table.

    If the font contains a 'vmtx' table, there will also be 'height' and 'tsb'
    attributes.
    Trƒ   c                ó²  — || _         || _        || _        |j        |         \  | _        | _        |j        �|j        |         \  | _        | _        nd\  | _        | _        |j	        rq|j
        �j|j
        j        €|j                             |¦  «        n|j
        j        j        |         }|j
        j        €|dk    r| xj        |j        |         z  c_        | j        �s|j        �n|j        j        €|j                             |¦  «        n|j        j        j        |         }|j        j        €|dk    r!| xj        |j        |         z  c_        d S d S d S d S )N©NNiÿÿ  )rŸ   Únamer;   rL   ÚwidthÚlsbrM   ÚheightÚtsbrC   rN   ÚAdvWidthMapr2   Ú
getGlyphIDÚmappingrR   rO   ÚAdvHeightMaprS   )rT   rŸ   rc   r;   Úvaridxs        r!   rU   z_TTGlyph.__init__Ù   ss  € Ø ˆŒØˆŒ	Ø(ˆÔØ'Ô0°Ô;ÑˆŒ
�D”HØÔÐ(Ø$,Ô$5°iÔ$@Ñ!ˆDŒK˜œ˜à$.Ñ!ˆDŒK˜œØÔð 		= Ô!3Ð!?ð Ô%Ô1Ð9ð ”×(Ò(¨Ñ3Ô3Ð3àÔ'Ô3Ô;¸IÔFð ð Ô!Ô-Ð9¸VÀvÒ=MÐ=MØ�
”
˜hÔ4°VÔ<Ñ<�
”
ØŒ;Ð" xÔ'9Ð'Eð Ô%Ô2Ð:ð ”×(Ò(¨Ñ3Ô3Ð3àÔ'Ô4Ô<¸YÔGð ð
 Ô!Ô.Ð:¸fÈÒ>NÐ>NØ�”˜xÔ5°fÔ=Ñ=�”��ð #Ð"Ð'EÐ'Eð ?OÐ>Nr#   c                 ó   — t           ‚)údDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
        how that works.
        )ÚNotImplementedError©rT   Úpens     r!   Údrawz_TTGlyph.drawö   s
   € õ
 "Ð!r#   c                 óN   — ddl m} |                       ||¦  «        ¦  «         dS )úeDraw the glyph onto ``pen``. See fontTools.pens.pointPen for details
        how that works.
        r   )ÚSegmentToPointPenN)ÚfontTools.pens.pointPenr¿   r¼   )rT   r»   r¿   s      r!   Ú
drawPointsz_TTGlyph.drawPointsý   s:   € ð 	>Ð=Ð=Ð=Ð=Ð=à�	Š	Ð#Ð# CÑ(Ô(Ñ)Ô)Ð)Ð)Ð)r#   N)ro   rp   rq   rr   rU   r   r¼   rÁ   ru   r#   r!   rª   rª   Ï   sg   € € € € € ðð ð =Að >ð >ð >ð >ð >ð: ð"ð "ñ „^ð"ð*ð *ð *ð *ð *r#   rª   c                   ór   ‡ — e Zd Zddœˆ fd„
Zed„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d	„ Z
ˆ xZS )
r„   Trƒ   c                ó”   •— t          ¦   «                              |||¬¦  «         |j        r|j        €|j        �d | _        d S d S d S d S r‚   )rz   rU   rC   rN   r~   Ú_width)rT   rŸ   rc   r;   r€   s       €r!   rU   z_TTGlyphGlyf.__init__  sb   ø€ Ý‰Œ×Ò˜ 9¸<ÐÑHÔHÐHð Ôð	àÔ"Ð*ØÔ"Ð.àˆDŒKˆKˆKð	ð 	à*Ð*Ø.Ð.r#   c                 ó¼   — | j         €O| j        | j        j        j        v r|                      ¦   «          n"| j        j        | j                 d         | _         | j         S )Nr   )rÄ   r­   rŸ   r~   Ú
variationsÚ_getGlyphInstancerL   rg   s    r!   r®   z_TTGlyphGlyf.width  sV   € àŒ;ÐØŒy˜DœMÔ3Ô>Ð>Ð>à×&Ò&Ñ(Ô(Ð(Ð(ð #œmÔ4°T´YÔ?ÀÔB�”ØŒ{Ðr#   c                 ó   — || _         d S rX   )rÄ   )rT   rš   s     r!   r®   z_TTGlyphGlyf.width  s   € àˆŒˆˆr#   c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )r¸   r   N)Ú_getGlyphAndOffsetrŸ   r_   r¼   ry   ©rT   r»   ÚglyphÚoffsetrF   s        r!   r¼   z_TTGlyphGlyf.draw!  s¶   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	=¨%Øð Ø�à�JŠJ�s˜DœMÔ3°VÑ<Ô<Ð<ð		=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó   ±&A$Á$A(Á+A(c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )r¾   r   N)rÊ   rŸ   r_   rÁ   ry   rË   s        r!   rÁ   z_TTGlyphGlyf.drawPoints-  sË   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	C¨%Øð Ø�à×Ò˜S $¤-Ô"9¸6ÑBÔBÐBð		Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	CrÎ   c                 óÔ   — | j         j        r!| j         j        �|                      ¦   «         }n| j         j        | j                 }t          |d¦  «        r| j        |j        z
  nd}||fS )NÚxMinr   )	rŸ   rC   r~   rÇ   ry   r­   Úhasattrr¯   rÑ   )rT   rÌ   rÍ   s      r!   rÊ   z_TTGlyphGlyf._getGlyphAndOffset9  si   € ØŒ=Ô!ð 	7 d¤mÔ&=Ð&IØ×*Ò*Ñ,Ô,ˆEˆEà”MÔ+¨D¬IÔ6ˆEå*1°%¸Ñ*@Ô*@ÐG�”˜EœJÑ&Ð&ÀaˆØ�fˆ}Ðr#   c           	      óð  — ddl m} ddlm} ddlm} | j        }|j        }|j        j	        | j
                 }|j        }|j        }|                     | j
        ||¦  «        \  }	}
d\  }}|D ]¨} ||j        |j        ¦  «        }|sŒ|j        }d |v rq|€b|                     | j
        ||¦  «        \  }}|d         dk    r|d         n.t#          t%          t'          |d         ¦  «        ¦  «        ¦  «        } ||||¦  «        }|	 ||¦  «        |z  z  }	Œ©t)          || j
                 ¦  «        }t+          ||	|| j        ¬¦  «        \  }}}}|| _        || _        |j        €|| _        |j        €|| _        |S )Nr   )Ú	iup_delta)ÚGlyphCoordinates)ÚsupportScalarr¬   r^   rƒ   )ÚfontTools.varLib.iuprÔ   ÚfontTools.ttLib.tables._g_l_y_frÕ   ÚfontTools.varLib.modelsrÖ   rŸ   ry   r~   rÆ   r­   rL   rM   Ú_getCoordinatesAndControlsrC   r$   Úcoordinatesr�   r1   rj   r   Ú_setCoordinatesr;   r¯   r±   rN   r®   rO   r°   )rT   rÔ   rÕ   rÖ   rŸ   ry   rÆ   rL   rM   rÛ   Ú_Ú
origCoordsÚendPtsÚvarÚscalarÚdeltaÚcontrolrÌ   r®   r¯   r°   r±   s                         r!   rÇ   z_TTGlyphGlyf._getGlyphInstanceB  sÝ  € Ø2Ð2Ð2Ð2Ð2Ð2ØDÐDÐDÐDÐDÐDØ9Ð9Ð9Ð9Ð9Ð9à”=ˆØÔ&ˆ	ØÔ'Ô2°4´9Ô=ˆ
ØÔ$ˆØÔ$ˆØ"×=Ò=ØŒI�x ñ
ô 
‰ˆ�Qð (Ñˆ
�FØð 	<ð 	<ˆCØ"�] 8Ô#4°c´hÑ?Ô?ˆFØð ØØ”OˆEØ�uˆ}ˆ}ØÐ%Ø*3×*NÒ*NØœ	 8¨Xñ+ô +Ñ'�J ð '.¨a¤j°A¢o o˜ œ
˜
½4ÅÅcÈ'ÐRSÌ*ÁoÄoÑ@VÔ@VÑ;WÔ;Wð ð "˜	 %¨°VÑ<Ô<�ØÐ+Ð+¨EÑ2Ô2°VÑ;Ñ;ˆKˆKå�Y˜tœyÔ)Ñ*Ô*ˆÝ"1Ø�; 	¸Ô8Ið#
ñ #
ô #
Ñˆˆs�F˜Cð ˆŒØˆŒØÔÐ%àˆDŒJØÔÐ%Ø ˆDŒKØˆr#   )ro   rp   rq   rU   Úpropertyr®   Úsetterr¼   rÁ   rÊ   rÇ   r‡   rˆ   s   @r!   r„   r„     s¼   ø€ € € € € Ø<@ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ðð ñ „Xðð „\ðð ñ „\ðð
=ð 
=ð 
=ð
Cð 
Cð 
Cðð ð ð)ð )ð )ð )ð )ð )ð )r#   r„   c                   ó   — e Zd Zd„ ZdS )r”   c                 óp   — | j         j        | j                                      || j         j        ¦  «         dS )r¸   N)rŸ   r�   r­   r¼   r–   rº   s     r!   r¼   z_TTGlyphCFF.drawo  s1   € ð 	ŒÔ! $¤)Ô,×1Ò1°#°t´}Ô7LÑMÔMÐMÐMÐMr#   N)ro   rp   rq   r¼   ru   r#   r!   r”   r”   n  s(   € € € € € ðNð Nð Nð Nð Nr#   r”   c                 ó0  — | €dS | j         dk    rH| j        }||         j        }|                     |d¦  «        }| j        }| j        }||cxk    o|k    nc S | j         dk    r8ddlm}	 | j        }
| j	        |	k    r|| j	                 }|r|
|d         z  }
|
dk    S | j         dk    r!| j
        D ]}t          ||||¦  «        s dS ŒdS | j         dk    r!| j
        D ]}t          ||||¦  «        r dS ŒdS | j         d	k    rt          | j
        |||¦  «         S dS )
NTr^   r   é   )ÚNO_VARIATION_INDEXé   Fé   é   )ÚFormatÚ	AxisIndexr   r%   ÚFilterRangeMinValueÚFilterRangeMaxValueÚfontTools.ttLib.tables.otTablesrê   ÚDefaultValueÚVarIdxÚConditionTableÚ_evaluateCondition)Ú	conditionr$   rC   r˜   Ú	axisIndexr   Ú	axisValueÚminValueÚmaxValuerê   rš   ÚdeltasÚsubconditions                r!   rö   rö   v  sž  € ØÐàˆtàÔ˜1ÒÐàÔ'ˆ	Ø�y”/Ô)ˆØ—L’L ¨!Ñ,Ô,ˆ	ØÔ0ˆØÔ0ˆØ˜9Ð0Ð0Ò0Ð0¨Ò0Ð0Ð0Ð0Ð0Ø	Ô	˜QÒ	Ð	àFÐFÐFÐFÐFÐFàÔ&ˆØÔÐ1Ò1Ð1Ø˜yÔ/Ô0ˆFØð #Ø˜ œÑ"�Ø�qŠyÐØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ% l°D¸(ÀIÑNÔNð Ø�u�uðàˆtØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ! ,°°hÀ	ÑJÔJð Ø�t�tðàˆuØ	Ô	˜QÒ	Ð	å%ØÔ$ d¨H°iñ
ô 
ð 
ð 	
ð ˆur#   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r§   c                 ó:  ‡— ddl m}m} | j        }|j        }|j        j                             | j        ¦  «        }|j	        j
        |         }ddlm}	 ddlm}
 |j        Š |	|j        ‰| j        j        ¦  «        }|j        D �]•}|j        �4|j        j        |j                 }t-          |‰| j        j        |¦  «        sŒ>i }|j        �¶|j        j        |j                 }t5          |j        ¦  «        }|j        |k    r|t;          ||j                 d¦  «        z  }t=          |¦  «        t=          |¦  «        k    s&J t=          |¦  «        t=          |¦  «        f¦   «         ‚ˆfd„t?          ||¦  «        D ¦   «         }|j         |k    r1||j                  }tC          |¦  «        }| "                    |¦  «         |j#        }|j$        |j%        z  }| j        j         &                    ||¦  «        5  | j         &                    ||¦  «        5  | j        |j'        k    }|s;	 |rdd	ini } |j(        |j'        || j        j)        fi |¤Ž n# tT          $ r d	}Y nw xY w|rŒ| +                    ¦   «         }|j'        | j        k    r| j        n|j        }||j'                 }|r&tY          ||¦  «        }| -                    |¦  «         n%t]          ||¦  «        }| /                    |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   �Œ—dS )
r¸   r   )ÚVarComponentFlagsrê   )ÚMultiVarStoreInstancerr>   Né   c                 ó2   •— i | ]\  }}‰|         j         |“ŒS ru   r   )r   r    Úvr$   s      €r!   ú
<dictcomp>z&_TTGlyphVARC._draw.<locals>.<dictcomp>Ë  s%   ø€ ÐXÐXÐX±4°1°a˜D œGœO¨QÐXÐXÐXr#   ÚresetUnspecifiedAxesT)0rò   r   rê   rŸ   r£   r¥   r¦   Úindexr­   ÚVarCompositeGlyphsÚVarCompositeGlyphÚfontTools.varLib.multiVarStorer  rP   r?   r$   ÚMultiVarStorerC   Ú
componentsÚconditionIndexÚConditionListrõ   rö   ÚaxisIndicesIndexÚAxisIndicesListÚItemr   Ú
axisValuesÚaxisValuesVarIndexÚfi2flrj   ÚzipÚtransformVarIndexr   ÚapplyTransformDeltasÚ	transformÚflagsÚRESET_UNSPECIFIED_AXESr\   rc   ÚaddVarComponentrD   ÚAttributeErrorÚtoTransformr   rÁ   r   r¼   )rT   r»   Ú
isPointPenr   rê   rŸ   r¨   ÚidxrÌ   r  r?   r˜   Úcompr÷   rC   ÚaxisIndicesr  rü   r  rV   ÚshouldDecomposeÚkwargsÚtÚcompGlyphSetÚgÚtPenr$   s                             @r!   Ú_drawz_TTGlyphVARC._draw£  s*  ø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 ”=ˆØÔ!ˆØŒmÔ"×(Ò(¨¬Ñ3Ô3ˆØÔ'Ô9¸#Ô>ˆàIÐIÐIÐIÐIÐIØ?Ð?Ð?Ð?Ð?Ð?àŒ}ˆØ*Ð*ØÔ  d¤mÔ&<ñ
ô 
ˆ	ð Ô$ð 8	)ñ 8	)ˆDØÔ"Ð.Ø Ô.Ô=¸dÔ>QÔR�	Ý)Ø˜t T¤]Ô%;¸Yñô ð ð àˆHØÔ$Ð0Ø"Ô2Ô7¸Ô8MÔN�Ý# D¤OÑ4Ô4�
ØÔ*Ð.@Ò@Ð@Ø¥%¨	°$Ô2IÔ(JÈBÑ"OÔ"OÑO�JÝ˜;Ñ'Ô'­3¨z©?¬?Ò:Ð:Ð:Ý˜Ñ$Ô$Ý˜
‘O”Oð=Ñ:Ô:Ð:ð YÐXÐXÐX½3¸{ÈJÑ;WÔ;WÐXÑXÔX�àÔ%Ð);Ò;Ð;Ø" 4Ô#9Ô:�Ý ‘~”~�Ø×)Ò)¨&Ñ1Ô1Ð1ØœˆIà”JÐ!2Ô!IÑIˆEØ”Ô'×4Ò4°X¸uÑEÔEð )ð )Ø”]×/Ò/°¸%Ñ@Ô@ð )ð )Ø&*¤i°4´>Ò&A�Oà*ð 
3ð	3ØGLÐ%TÐ&<¸dÐ%CÐ%CÐRT˜FØ/˜CÔ/Ø $¤Ø )Ø $¤Ô 9ðð ð #)ð	ð ð ð øõ  .ð 3ð 3ð 3Ø.2˜O˜O˜Oð3øøøð 'ð )Ø%×1Ò1Ñ3Ô3˜ð  $œ~°´Ò:Ð:ð !œM˜Mà!)Ô!2ð %ð
 )¨¬Ô8˜Ø%ð )Ý#4°S¸!Ñ#<Ô#<˜DØŸLšL¨Ñ.Ô.Ð.Ð.å#/°°QÑ#7Ô#7˜DØŸFšF 4™LœL˜Lð9)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ùð78	)ð 8	)s[   Ç3LÈK7È#'IÉ
K7ÉI	ÉK7ÉI	ÉBK7Ë+LË7K;Ë;LË>K;Ë?LÌL	ÌL	c                 ó2   — |                       |d¦  «         d S )NF©r(  rº   s     r!   r¼   z_TTGlyphVARC.drawó  s   € Ø�
Š
�3˜ÑÔÐÐÐr#   c                 ó2   — |                       |d¦  «         d S )NTr*  rº   s     r!   rÁ   z_TTGlyphVARC.drawPointsö  s   € Ø�
Š
�3˜ÑÔÐÐÐr#   N)ro   rp   rq   r(  r¼   rÁ   ru   r#   r!   r§   r§   ¢  sE   € € € € € ðN)ð N)ð N)ð`ð ð ðð ð ð ð r#   r§   Trƒ   c                óZ  — t          |¦  «        dk    sJ ‚|d         d         }|d         d         }|d         d         }|d         d         }t          d¦  «        D ]}|d= Œ|                      ¦   «         rxt          |¦  «        t          | j        ¦  «        k    sJ ‚d„ | j        D ¦   «         | _        t	          || j        ¦  «        D ]$\  }	}
t          |
d	¦  «        r|	\  |
_        |
_        Œ%nO| j        dk    rt          |¦  «        dk    sJ ‚n.t          |¦  «        t          | j	        ¦  «        k    sJ ‚|| _	        |r|  
                    |¦  «         t          ||z
  ¦  «        }t          ||z
  ¦  «        }t          | j        |z
  ¦  «        }t          || j        z
  ¦  «        }||||fS )
Nrì   éüÿÿÿr   éýÿÿÿéþÿÿÿr^   éÿÿÿÿc                 ó,   — g | ]}t          |¦  «        ‘ŒS ru   )r   )r   r   s     r!   r"   z#_setCoordinates.<locals>.<listcomp>  s   € ÐDÐDÐD¨4�D ™JœJÐDÐDÐDr#   Úx)rj   r1   ÚisCompositer  r  rÒ   r2  ÚyÚnumberOfContoursrÛ   r;   r   rÑ   ÚyMax)rÌ   Úcoordry   r;   Ú	leftSideXÚ
rightSideXÚtopSideYÚbottomSideYrÝ   Úpr   ÚhorizontalAdvanceWidthÚverticalAdvanceWidthÚleftSideBearingÚtopSideBearings                  r!   rÜ   rÜ   ú  sÊ  € åˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?Ø�b”	˜!”€IØ�r”˜1”€JØ�RŒy˜Œ|€HØ˜”)˜A”,€Kå�1‰XŒXð ð ˆØ�"ˆIˆIà×ÒÑÔð 
"Ý�5‰zŒz�S Ô!1Ñ2Ô2Ò2Ð2Ð2Ð2ØDÐD°5Ô3CÐDÑDÔDˆÔÝ˜5 %Ô"2Ñ3Ô3ð 	#ð 	#‰GˆAˆtÝ�t˜SÑ!Ô!ð #Ø!"‘�”˜œøð	#ð 
Ô	 1Ò	$Ð	$Ý�5‰zŒz˜QŠˆˆˆˆå�5‰zŒz�S Ô!2Ñ3Ô3Ò3Ð3Ð3Ð3Ø!ˆÔàð &Ø×Ò˜9Ñ%Ô%Ð%å$ Z°)Ñ%;Ñ<Ô<ÐÝ" 8¨kÑ#9Ñ:Ô:ÐÝ˜eœj¨9Ñ4Ñ5Ô5€OÝ˜X¨¬
Ñ2Ñ3Ô3€NàØØØð	ð r#   c                   ó2   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ ZdS )
ÚLerpGlyphSeta+  A glyphset that interpolates between two other glyphsets.

    Factor is typically between 0 and 1. 0 means the first glyphset,
    1 means the second glyphset, and 0.5 means the average of the
    two glyphsets. Other values are possible, and can be useful to
    extrapolate. Defaults to 0.5.
    ç      à?c                 ó0   — || _         || _        || _        d S rX   )Ú	glyphset1Ú	glyphset2Úfactor)rT   rE  rF  rG  s       r!   rU   zLerpGlyphSet.__init__)  s   € Ø"ˆŒØ"ˆŒØˆŒˆˆr#   c                 ód   — || j         v r|| j        v rt          || ¦  «        S t          |¦  «        ‚rX   )rE  rF  Ú	LerpGlyphÚKeyError©rT   Ú	glyphnames     r!   r…   zLerpGlyphSet.__getitem__.  s9   € Ø˜œÐ&Ð&¨9¸¼Ð+FÐ+FÝ˜Y¨Ñ-Ô-Ð-Ý�yÑ!Ô!Ð!r#   c                 ó&   — || j         v o|| j        v S rX   )rE  rF  rK  s     r!   rd   zLerpGlyphSet.__contains__3  s   € Ø˜DœNÐ*ÐJ¨y¸D¼NÐ/JÐJr#   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S rX   )ÚsetrE  rF  r(   Úintersection©rT   Úset1Úset2s      r!   rh   zLerpGlyphSet.__iter__6  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�D×%Ò% dÑ+Ô+Ñ,Ô,Ð,r#   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S rX   )rO  rE  rF  rj   rP  rQ  s      r!   rk   zLerpGlyphSet.__len__;  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�4×$Ò$ TÑ*Ô*Ñ+Ô+Ð+r#   N)rC  )	ro   rp   rq   rr   rU   r…   rd   rh   rk   ru   r#   r!   rB  rB     sq   € € € € € ðð ðð ð ð ð
"ð "ð "ð
Kð Kð Kð-ð -ð -ð
,ð ,ð ,ð ,ð ,r#   rB  c                   ó   — e Zd Zd„ Zd„ ZdS )rI  c                 ó"   — || _         || _        d S rX   )ÚglyphsetrL  )rT   rL  rW  s      r!   rU   zLerpGlyph.__init__B  s   € Ø ˆŒØ"ˆŒˆˆr#   c                 ó|  — t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         | j        j        }t          t          |j	        |j	        |¦  «        |¦  «         d S rX   )
r   rW  rE  rL  r¼   rF  rG  r   r   rš   )rT   r»   Ú
recording1Ú
recording2rG  s        r!   r¼   zLerpGlyph.drawF  s™   € Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@à”Ô%ˆå� zÔ'7¸Ô9IÈ6ÑRÔRÐTWÑXÔXÐXÐXÐXr#   N)ro   rp   rq   rU   r¼   ru   r#   r!   rI  rI  A  s7   € € € € € ð#ð #ð #ðYð Yð Yð Yð Yr#   rI  N)+rr   Úabcr   r   Úcollections.abcr   Ú
contextlibr   r   r   Útypesr
   ÚfontTools.misc.vectorr   ÚfontTools.misc.fixedToolsr   r   r  ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.transformr   r   ÚfontTools.pens.transformPenr   r   ÚfontTools.pens.recordingPenr   r   r   r3   r5   rw   rŠ   rœ   rª   r„   r”   rö   r§   rÜ   rB  rI  ru   r#   r!   ú<module>re     s5  ðØ %Ð %à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ðBð Bð Bð(W/ð W/ð W/ð W/ð W/�'ñ W/ô W/ð W/ðtMð Mð Mð Mð M�kñ Mô Mð Mð"&,ð &,ð &,ð &,ð &,�[ñ &,ô &,ð &,ðR-ð -ð -ð -ð -�kñ -ô -ð -ð&4*ð 4*ð 4*ð 4*ð 4*ˆsñ 4*ô 4*ð 4*ðneð eð eð eð e�8ñ eô eð eðPNð Nð Nð Nð N�(ñ Nô Nð Nð)ð )ð )ðXUð Uð Uð Uð U�8ñ Uô Uð Uðp >Bð #ð #ð #ð #ð #ðL,ð ,ð ,ð ,ð ,�7ñ ,ô ,ð ,ðBYð Yð Yð Yð Yñ Yô Yð Yð Yð Yr#   