+
    iDD                        R t ^ RIHtHt ^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHt ^ R
IHtHt ^ RIHtHtHt  ! R R]4      t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]"4      t# ! R R]"4      t$R t% ! R R]"4      t&RR/R lt' ! R  R!]4      t( ! R" R#4      t)R$# )%zGlyphSets returned by a TTFont.)ABCabstractmethod)Mapping)contextmanager)copydeepcopy)SimpleNamespace)Vector)otRoundfixedToFloat)deprecateFunction)	TransformDecomposedTransform)TransformPenTransformPointPen)DecomposingRecordingPenlerpRecordingsreplayRecordingc                      a  ] tR t^t o RtRR/R lt]V 3R lR l4       t]R 4       tR t	R	 t
R
 t]! R]R7      R 4       tRtV tR# )_TTGlyphSetzdGeneric dict-like GlyphSet class that pulls metrics from hmtx and
glyph shape from TrueType or CFF.
recalcBoundsTc                  W@n         Wn        R V P                  9   d8   V P                  R ,          P                   Uu/ uF  qUP                  ^ bK  	  upM/ V n        Ve   TM/ V n        / V n        Ve   TM/ V n        ^ V n        . V n	        . V n
        W0n        VR,          P                  V n        \        VP                  R4      RR4      V n        RV n        V'       dn   ^ RIHp \        VP                  R4      RR4      V n        V P"                  e7   V! V P"                  P(                  VR ,          P                  V4      V n        R# R# R# u upi )fvarNhmtxvmtxmetricsVarStoreInstancerHVARtable)r   fontaxesaxisTagdefaultLocationNormalizedlocationrawLocationoriginalLocationdepthlocationStackrawLocationStackglyphsMappingr   hMetricsgetattrgetvMetrics	hvarTablefontTools.varLib.varStorer   VarStorehvarInstancer)selfr    r$   r*   r   axisr   s   &&&&$  z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/ttLib/ttGlyphSet.py__init___TTGlyphSet.__init__   s'   (	 " *.6):)?)?@)?\\1_)?@ 	&
 %-$8b,4,@b
 "*V,, 0)TBC$TXXf%5wEDN~~)%6NN++T&\->->&" *	  As   Ec                    < V ^8  d   QhRS[ /#    resetbool)format__classdict__s   "r5   __annotate___TTGlyphSet.__annotate__6   s     ; ;D ;    c              #    "   V P                   P                  V P                  4       V P                  P                  V P                  4       V'       d@   V P
                  P                  4       V n        V P                  P                  4       V n        M&V P                  P                  4       V n        / V n        V P                  P                  V4       V P                  P                  V4        R x  V P                   P                  4       V n        V P                  P                  4       V n        R #   T P                   P                  4       T n        T P                  P                  4       T n        i ; i5iN)
r(   appendr$   r)   r%   r&   r   r#   updatepop)r3   r$   r;   s   &&&r5   pushLocation_TTGlyphSet.pushLocation5   s    !!$--0$$T%5%56 11668DM#==BBDD MM..0DM!DX&)	;J ..224DM#4488:D !..224DM#4488:Ds    C.E81D5 5A E85A E55E8c              #     "    V P                   pV ;P                   ^,          un         Vx  V ;P                   ^,          un         R#   T ;P                   ^,          un         i ; i5i)   N)r'   )r3   r'   s   & r5   	pushDepth_TTGlyphSet.pushDepthH   s?     	JJEJJ!OJKJJ!OJDJJ!OJs   A&)A A&A##A&c                    WP                   9   # rD   r*   r3   	glyphNames   &&r5   __contains___TTGlyphSet.__contains__Q   s    ....rB   c                H    \        V P                  P                  4       4      # rD   )iterr*   keysr3   s   &r5   __iter___TTGlyphSet.__iter__T   s    D&&++-..rB   c                ,    \        V P                  4      # rD   )lenr*   rW   s   &r5   __len___TTGlyphSet.__len__W   s    4%%&&rB   z#use 'glyphName in glyphSet' instead)categoryc                    WP                   9   # rD   rO   rP   s   &&r5   has_key_TTGlyphSet.has_keyZ   s     ....rB   )r#   r'   r    r*   r+   r2   r/   r$   r(   r&   r%   r)   r   r.   N)__name__
__module____qualname____firstlineno____doc__r6   r   rH   rL   rR   rX   r\   r   DeprecationWarningr`   __static_attributes____classdictcell__r?   s   @r5   r   r      sl     d 8 ; ;$  //' -8J//rB   r   c                   <   a a ] tR t^at oRV 3R lltR tRtVtV ;t# )_TTGlyphSetGlyfc                   < VR ,          V n         \        SV `	  WV P                   VR7       VP                  R4      V n        R# )glyfr   gvarN)	glyfTablesuperr6   r-   	gvarTable)r3   r    r$   r   	__class__s   &&&&r5   r6   _TTGlyphSetGlyf.__init__b   s6    flS&)rB   c                0    \        WV P                  R 7      # )ro   )_TTGlyphGlyfr   rP   s   &&r5   __getitem___TTGlyphSetGlyf.__getitem__g   s    D$:K:KLLrB   )rq   rs   )T	rb   rc   rd   re   r6   rx   rh   ri   __classcell__rt   r?   s   @@r5   rl   rl   a   s     *
M MrB   rl   c                   Z   a a ] tR t^kt oV 3R ltR tR t]V3R lR l4       tRt	Vt
V ;t# )_TTGlyphSetCFFc                   < R V9   d   R MRp\        W,          P                  P                  4       4      ^ ,          P                  V n        \
        SV `  WV P                  4       V P                  V4       R# )CFF2zCFF N)listcffvaluesCharStringscharStringsrr   r6   setLocation)r3   r    r$   tableTagrt   s   &&& r5   r6   _TTGlyphSetCFF.__init__l   s\    #t^6 2 2 9 9 ;<Q?KK)9)9:"rB   c                    \        W4      # rD   )_TTGlyphCFFrP   s   &&r5   rx   _TTGlyphSetCFF.__getitem__r   s    4++rB   c                    R V n         V'       df   ^ RIHp \        V P                  RR 4      pVeC   V! VP
                  V P                  R,          P                  V4      pVP                  V n         R # R # R V n         R # )Nr   varStorer   )	blenderr0   r   r,   r   
otVarStorer    r!   interpolateFromDeltas)r3   r$   r   r   	instancers   &&   r5   r   _TTGlyphSetCFF.setLocationu   so     Dt//TBH#-''6):)?)?	  )>>	 $  DLrB   c                    < V ^8  d   QhRS[ /# r9   r<   )r>   r?   s   "r5   r@   _TTGlyphSetCFF.__annotate__   s     0 0D 0rB   c              #  (  "   V P                  V4       \        P                  WV4      ;_uu_ 4       p Vx  V P                  V P                  4        R R R 4       R #   T P                  T P                  4       i ; i  + '       g   i     R # ; i5irD   )r   r   rH   r$   )r3   r$   r;   values   &&& r5   rH   _TTGlyphSetCFF.pushLocation   sm     "%%de<<0  /	 =<   /	 =<<s2   0BA>AA>
BA;;A>>B			B)r   r   )rb   rc   rd   re   r6   rx   r   r   rH   rh   ri   r{   r|   s   @@r5   r~   r~   k   s-     #,   0 0 0rB   r~   c                   8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )_TTGlyphSetVARCc                d   < W0n         \        SV `	  WV4       VR ,          P                  V n        R# )VARCN)glyphSetrr   r6   r   	varcTable)r3   r    r$   r   rt   s   &&&&r5   r6   _TTGlyphSetVARC.__init__   s(     2f++rB   c                    V P                   pWP                  P                  9  d   V P                  V,          # \	        W4      # rD   )r   Coverageglyphsr   _TTGlyphVARC)r3   rQ   varcs   && r5   rx   _TTGlyphSetVARC.__getitem__   s5    ~~MM000==++D,,rB   )r   r   rz   r|   s   @@r5   r   r      s     ,
- -rB   r   c                   H   a  ] tR t^t o RtRR/R lt]R 4       tR tRt	V t
R# )	_TTGlypha;  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.
r   Tc               6   Wn         W n        W0n        VP                  V,          w  V n        V n        VP                  e"   VP                  V,          w  V n        V n        MR R uV n        V n        VP                  '       d   VP                  e   VP                  P                  f   VP                  P                  V4      M&VP                  P                  P                  V,          pV ;P                  VP                  V,          ,          un        R # R # R # rD   )r   namer   r+   widthlsbr.   heighttsbr$   r/   AdvWidthMapr    
getGlyphIDmappingr2   )r3   r   rQ   r   varidxs   &&&$ r5   r6   _TTGlyph.__init__   s     	('00;
DH($,$5$5i$@!DK$($!DK!3!3!? %%119 ((3''33;;IF 
 JJ(0088J "@rB   c                    \         h)TDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
how that works.
)NotImplementedErrorr3   pens   &&r5   draw_TTGlyph.draw   s
    
 "!rB   c                @    ^ RI Hp V P                  V! V4      4       R# )UDraw the glyph onto ``pen``. See fontTools.pens.pointPen for details
how that works.
)SegmentToPointPenN)fontTools.pens.pointPenr   r   )r3   r   r   s   && r5   
drawPoints_TTGlyph.drawPoints   s     	>		#C()rB   )r   r   r   r   r   r   r   N)rb   rc   rd   re   rf   r6   r   r   r   rh   ri   rj   s   @r5   r   r      s4     9D 9$ " "* *rB   r   c                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )rw   c                   V P                  4       w  r#V P                  P                  4       ;_uu_ 4       pV'       d   ^ pVP                  WP                  P                  V4       RRR4       R#   + '       g   i     R# ; ir   N)_getGlyphAndOffsetr   rL   r   rq   r3   r   glyphoffsetr'   s   &&   r5   r   _TTGlyphGlyf.draw   sX     //1]]$$&&%JJsMM33V<	 '&&&   1A00B	c                   V P                  4       w  r#V P                  P                  4       ;_uu_ 4       pV'       d   ^ pVP                  WP                  P                  V4       RRR4       R#   + '       g   i     R# ; i)r   N)r   r   rL   r   rq   r   s   &&   r5   r   _TTGlyphGlyf.drawPoints   sZ     //1]]$$&&%S--"9"96B	 '&&&r   c                B   V P                   P                  '       d*   V P                   P                  e   V P                  4       pM'V P                   P                  V P
                  ,          p\        VR4      '       d   V P                  VP                  ,
          M^ pW3# )NxMin)	r   r$   rs   _getGlyphInstancerq   r   hasattrr   r   )r3   r   r   s   &  r5   r   _TTGlyphGlyf._getGlyphAndOffset   so    ==!!!dmm&=&=&I**,EMM++DII6E*1%*@*@EJJ&a}rB   c           	     \   ^ RI Hp ^ RIHp ^ RIHp V P                  pVP                  pVP                  P                  V P                  ,          pVP                  pVP                  pVP                  V P                  Wx4      w  rRRrV F  pV! VP                  VP                  4      pV'       g   K*  VP                   pRV9   dh   Vf[   VP                  V P                  Wx4      w  ppV^ ,          ^8  d
   V^,          M#\#        \%        \'        V^,          4      4      4      pV! WV4      pW! V4      V,          ,          p	K  	  \)        WPP                  ,          4      p\+        VWV P,                  R7      w  ppppVV n        VV n        VP2                  f   VV n        VV n        V# )    )	iup_delta)GlyphCoordinates)supportScalarNro   )fontTools.varLib.iupr   fontTools.ttLib.tables._g_l_y_fr   fontTools.varLib.modelsr   r   rq   rs   
variationsr   r+   r.   _getCoordinatesAndControlsr$   r!   coordinatesr   ranger[   r   _setCoordinatesr   r   r   r/   r   r   )r3   r   r   r   r   rq   r   r+   r.   r   _
origCoordsendPtsvarscalardeltacontrolr   r   r   r   r   s   &                     r5   r   _TTGlyphGlyf._getGlyphInstance   s   2D9==&&	''22499=
$$$$"==IIx
 "4FC"8#4#4chh?FOOEu}%*3*N*N		8+'J '.ajAo
4c'RS*o@V;W  "%V<+E2V;;K   Yyy)*"1;8I8I#
sFC %DJ DKrB   )r   r   r   r   N)
rb   rc   rd   re   r   r   r   r   rh   ri   rj   s   @r5   rw   rw      s     
=
C( (rB   rw   c                   &   a  ] tR tRt o R tRtV tR# )r   i  c                    V P                   P                  V P                  ,          P                  WP                   P                  4       R# r   )r   r   r   r   r   r   s   &&r5   r   _TTGlyphCFF.draw  s/     	!!$)),11#}}7L7LMrB    N)rb   rc   rd   re   r   rh   ri   rj   s   @r5   r   r     s     N NrB   r   c                    V P                   ^8X  d^   V P                  pW,          P                  pVP                  V^ 4      pV P                  pV P
                  pYvu;8*  ;'       d    V8*  # u # V P                   ^8X  d2   V P                  p	WV P                  ,          ^ ,          ,          p	V	^ 8  # V P                   ^8X  d+   V P                   F  p
\        WW#4      '       d   K   R# 	  R# V P                   ^8X  d+   V P                   F  p
\        WW#4      '       g   K   R# 	  R# V P                   ^8X  d   \        V P                  WV4      '       * # R# )rK   FT)Format	AxisIndexr"   r-   FilterRangeMinValueFilterRangeMaxValueDefaultValueVarIdxConditionTable_evaluateConditionconditionTable)	conditionfvarAxesr$   r   	axisIndexr"   	axisValueminValuemaxValuer   subconditions   &&&&       r5   r   r     s9   1''	%--LL!,	0000000000			Q	&&9++,Q//qy			Q	%44L%lhRR 5 			Q	%44L!,(NN 5 			Q	%$$h)
 
 	
 rB   c                   2   a  ] tR tRt o R tR tR tRtV tR# )r   i@  c           
     \   ^ RI HpHp V P                  pVP                  pVP
                  P                  P                  V P                  4      pVP                  P                  V,          p^ RIHp	 ^ RIHp
 VP                  R,          P                   pV	! VP"                  WP                  P$                  4      pVP&                   EF  pVP(                  VP*                  ,          '       dQ   VP,                  P.                  VP0                  ,          p\3        WV P                  P$                  V4      '       g   Kw  / pVP4                  e   VP6                  P8                  VP4                  ,          p\;        VP<                  4      pVP>                  V8w  d$   V\A        WP>                  ,          ^4      ,          p\C        V4      \C        V4      8X  g   Q \C        V4      \C        V4      34       h\E        VV4       UUu/ uF  w  ppVV,          PF                  VbK  	  pppVPH                  V8w  d/   WPH                  ,          p\K        V4      pVPM                  V4       VPN                  pVP(                  VPP                  ,          pV P                  P                  PS                  VV4      ;_uu_ 4        V P                  PS                  VV4      ;_uu_ 4        V P                  VPT                  8H  pV'       g3    VPW                  VPT                  VV P                  PX                  4       V'       d   VP]                  4       pVPT                  V P                  8w  d   V P                  MVP                  pVVPT                  ,          pV'       d   \_        VV4      pVPa                  V4       M\c        VV4      pVPe                  V4       RRR4       RRR4       EK   	  R# u uppi   \Z         d    Rp Li ; i  + '       g   i     L8; i  + '       g   i     EKb  ; i)r   )VarComponentFlagsNO_VARIATION_INDEX)MultiVarStoreInstancerr   r   NT)3fontTools.ttLib.tables.otTablesr   r   r   r   r   r   indexr   VarCompositeGlyphsVarCompositeGlyphfontTools.varLib.multiVarStorer   r0   r   r    r!   MultiVarStorer$   
componentsflagsHAVE_CONDITIONConditionListr   conditionIndexr   axisIndicesIndexAxisIndicesListItemr	   
axisValuesaxisValuesVarIndexfi2flr[   zipr"   transformVarIndexr   applyTransformDeltas	transformRESET_UNSPECIFIED_AXESrH   rQ   addVarComponentr%   AttributeErrortoTransformr   r   r   r   )r3   r   
isPointPenr   r   r   r   idxr   r   r   r   r   compr   r$   axisIndicesr  ivdeltasr  r;   shouldDecomposetcompGlyphSetgtPens   &&&                         r5   _draw_TTGlyphVARC._drawA  sD   	

 ==!!mm""((3''99#>I?==(--*--*@*@
	 $$Dzz-<<<< ..==d>Q>QR	))?)?  H$$0"22778M8MN#DOO4
**.@@%	2I2I(JB"OOJ;'3z?: $
O= :
 8;;
7S7Stq!HQK''*7S   %%);;"#9#9:~))&1IJJ!2!I!IIE''44XuEE]]//%@@&*ii4>>&AO*3// $	4==;T;T '%113  $~~: !MM!)!2!2 %
 )8%#4S!#<DLL.#/Q#7DFF4L1 A FE; %$(  . 3.2O3 A@ FEEs[    O-<%P!"P1O3
5P=AP;PP3P PPPPPP+c                *    V P                  VR 4       R# )FNr#  r   s   &&r5   r   _TTGlyphVARC.draw  s    

3rB   c                *    V P                  VR 4       R# )TNr&  r   s   &&r5   r   _TTGlyphVARC.drawPoints  s    

3rB   r   N)	rb   rc   rd   re   r#  r   r   rh   ri   rj   s   @r5   r   r   @  s     L)\ rB   r   r   Tc                   \        V4      ^8  g   Q hVR,          ^ ,          pVR,          ^ ,          pVR,          ^,          pVR,          ^,          p\        ^4       F  pVR K  	  V P                  4       '       d   \        V4      \        V P                  4      8X  g   Q hV P                   U	u. uF  p	\	        V	4      NK  	  up	V n        \        WP                  4       F(  w  r\        V	R4      '       g   K  V
w  V	n        V	n        K*  	  MOV P                  ^ 8X  d   \        V4      ^ 8X  g   Q hM+\        V4      \        V P                  4      8X  g   Q hWn
        V'       d   V P                  V4       \        WT,
          4      p\        Wg,
          4      p\        V P                  V,
          4      p\        W`P                  ,
          4      pVVVV3# u up	i )   x)r[   r   isCompositer  r   r  r   r,  ynumberOfContoursr   r   r
   r   yMax)r   coordrq   r   	leftSideX
rightSideXtopSideYbottomSideYr   r  phorizontalAdvanceWidthverticalAdvanceWidthleftSideBearingtopSideBearings   &&&$           r5   r   r     s   u:??b	!Ir1JRy|H)A,K1X"I  5zS!1!12222383C3CD3C4DJ3CD5"2"23GAtS!!!" 4 
		1	$5zQ5zS!2!23333!9%$Z%;<"8#9:ejj945OX

23N	 # Es   1Gc                   F   a  ] tR tRt o RtR
R ltR tR tR tR t	Rt
V tR	# )LerpGlyphSeti  a  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                *    Wn         W n        W0n        R # rD   )	glyphset1	glyphset2factor)r3   rB  rC  rD  s   &&&&r5   r6   LerpGlyphSet.__init__  s    ""rB   c                n    WP                   9   d   WP                  9   d   \        W4      # \        V4      hrD   )rB  rC  	LerpGlyphKeyErrorr3   	glyphnames   &&r5   rx   LerpGlyphSet.__getitem__  s+    &9+FY--y!!rB   c                J    WP                   9   ;'       d    WP                  9   # rD   )rB  rC  rI  s   &&r5   rR   LerpGlyphSet.__contains__  s    NN*JJyNN/JJrB   c                    \        V P                  4      p\        V P                  4      p\        VP	                  V4      4      # rD   )setrB  rC  rU   intersectionr3   set1set2s   &  r5   rX   LerpGlyphSet.__iter__  s4    4>>"4>>"D%%d+,,rB   c                    \        V P                  4      p\        V P                  4      p\        VP	                  V4      4      # rD   )rO  rB  rC  r[   rP  rQ  s   &  r5   r\   LerpGlyphSet.__len__  s4    4>>"4>>"4$$T*++rB   )rD  rB  rC  N)g      ?)rb   rc   rd   re   rf   r6   rx   rR   rX   r\   rh   ri   rj   s   @r5   r@  r@    s)     
"
K-
, ,rB   r@  c                   ,   a  ] tR tRt o R tR tRtV tR# )rG  i  c                    W n         Wn        R # rD   )glyphsetrJ  )r3   rJ  rY  s   &&&r5   r6   LerpGlyph.__init__  s     "rB   c                   \        V P                  P                  4      pV P                  P                  V P                  ,          P	                  V4       \        V P                  P
                  4      pV P                  P
                  V P                  ,          P	                  V4       V P                  P                  p\        \        VP                  VP                  V4      V4       R # rD   )
r   rY  rB  rJ  r   rC  rD  r   r   r   )r3   r   
recording1
recording2rD  s   &&   r5   r   LerpGlyph.draw  s    ,T]]-D-DE
/44Z@,T]]-D-DE
/44Z@%%z'7'79I9I6RTWXrB   )rJ  rY  N)rb   rc   rd   re   r6   r   rh   ri   rj   s   @r5   rG  rG    s     #Y YrB   rG  N)*rf   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   r   rl   r~   r   r   rw   r   r   r   r   r@  rG  r   rB   r5   <module>ri     s    % # # %  ! ( D 9 C G J/' J/ZMk M!0[ !0H
-k 
-)*s )*XJ8 JZN( N FS8 Sl#T #L,7 ,BY YrB   