+
    f7i  c                   s    ^ RI Ht ^ RIHtHtHt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 ^R	IHt ^ R
It^ R
It]P8                  ! ]4      t^RIH t   ! R R] 4      t!R
# )    )sstruct)fixedToFloatfloatToFixedfloatToFixedToStrstrToFixedToFloat)	bytesjoinsafeEval)otRound)piecewiseLinearMap)VarStoreInstancerNO_VARIATION_INDEX)
TTLibError)DefaultTable)otTablesN)BaseTTXConverterc                   st   a a ] tR t^t oRtR.tR
V 3R lltV 3R ltV 3R ltR t	V 3R lt
RR ltR	tVtV ;t# )table__a_v_a_raO  Axis Variations table

This class represents the ``avar`` table of a variable font. The object has one
substantive attribute, ``segments``, which maps axis tags to a segments dictionary::

    >>> font["avar"].segments   # doctest: +SKIP
    {'wght': {-1.0: -1.0,
      0.0: 0.0,
      0.125: 0.11444091796875,
      0.25: 0.23492431640625,
      0.5: 0.35540771484375,
      0.625: 0.5,
      0.75: 0.6566162109375,
      0.875: 0.81927490234375,
      1.0: 1.0},
     'ital': {-1.0: -1.0, 0.0: 0.0, 1.0: 1.0}}

Notice that the segments dictionary is made up of normalized values. A valid
``avar`` segment mapping must contain the entries ``-1.0: -1.0, 0.0: 0.0, 1.0: 1.0``.
fontTools does not enforce this, so it is your responsibility to ensure that
mappings are valid.

See also https://learn.microsoft.com/en-us/typography/opentype/spec/avar
fvarc                s4   < \         SV `  V4       / V n        R # N)super__init__segments)selfZtag	__class__s   &&F/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/_a_v_a_r.pyr   Ztable__a_v_a_r.__init__4   s        c                s  < VR ,          P                    Uu. uF  q"P                  NK  	  pp\        V R4      '       g   \        P                  ! 4       V n        \        V P
                  R4      '       g   ^ V P
                  n        \        V R^4      ^,          \        V R^ 4      ,          V P
                  n        \        V4      V P
                  n
        . V P
                  n        V F  pV P                  V,          p\        P                  ! 4       p\        V4      Vn        . Vn        \        VP!                  4       4       FA  w  rg\        P                  ! 4       pWhn        Wxn        VP                  P'                  V4       KC  	  V P
                  P                  P'                  V4       K  	  \(        S	V `U  V4      # u upi )r   tableReservedmajorVersionminorVersion)axesaxisTaghasattrr   avarr   r   getattrVersionZlenZ	AxisCountAxisSegmentMapr   ZPositionMapCountAxisValueMapsorteditemsFromCoordinateToCoordinateappendr   compile)
r   ttFontaxisaxisTagsZmappings
segmentMapkeyvalueZvalueMapr   s
   &&       r   r+   Ztable__a_v_a_r.compile8   sY   -3F^-@-@A-@TLL-@AtW%%!DJtzz:.."#DJJ%dNA>"D.!I
 


  #8}

$&

!D}}T*H!002J*-h-J'&(J#$X^^%56
#002*-'(-%''..x8	 7
 JJ%%,,Z8  wv&&+ Bs   G c                s<  < \         SV `  W4       V P                  P                  ^,	          V n        V P                  P                  R,          V n        V P                  R9  d   \        R4      hVR,          P                   Uu. uF  q3P                  NK  	  ppV F  p/ V P                  V&   K  	  \        W@P                  P                  4       F@  w  r5/ ;q`P                  V&   VP                   F  pVP                  WgP                  &   K  	  KB  	  R# u upi )i   i  Unknown avar table versionr   Ni   i   )r   	decompiler   r#   r   r   NotImplementedErrorr   r   r   zipr$   r%   r)   r(   )	r   Zdatar,   r-   r.   r/   r   segmentr   s	   &&&     r   r4   Ztable__a_v_a_r.decompileP   s    $' JJ.."4 JJ..7F*%&BCC-3F^-@-@A-@TLL-@AD"$DMM$  #Hjj.G.G HD-//H}}T*%223:3G3G//0 3 !I Bs   Dc           
     s   VP                  R \        V R^4      \        V R^ 4      R7       VP                  4        VR,          P                   Uu. uF  q3P                  NK  	  ppV F  pVP                  RVR7       VP                  4        \        V P                  V,          P                  4       4       FC  w  rV\        V^4      p\        V^4      pVP                   ! R/ RVRV/B  VP                  4        KE  	  VP                  R4       VP                  4        K  	  \        V R^4      ^8  d   V P                  P                  '       d(   V P                  P                  P                  WR	R
7       V P                  P                  '       d(   V P                  P                  P                  W4       R# R# R# u upi )versionr   r   )majorminorr   r7   )r-   fromto	VarIdxMap)nameN)mapping)Z	simpletagr"   Znewliner   r   Zbegintagr&   r   r'   fl2strZendtagr   r=   toXMLVarStore)r   Zwriterr,   r-   r.   r0   r1   s   &&&    r   rA   Ztable__a_v_a_r.toXML^   sq   $2$2 	 	

 	-3F^-@-@A-@TLL-@ADOOIDO1NN$T]]4%8%>%>%@A
S"oub)  IvsD%.HI 	 B
 MM)$NN  4+q0zz###

$$**6*Lzz"""

##))&9 # 1 Bs   G c                s  < \        V R 4      '       g   \        P                  ! 4       V n        \        V P                  R4      '       g   ^ V P                  n        VR8X  df   \        VR,          4      V n        \        VR,          4      V n        \        V R^4      ^,          \        V R^ 4      ,          V P                  n	        R# VR8X  d   VR,          p/ ;q`P                  V&   V Fo  p\        V\        4      '       g   K  Vw  rp
VR	8X  g   K)  \        V	R
,          ^4      p\        V	R,          ^4      pW9   d   \        P                  RW4       WV&   Kq  	  R# \         SV `E  WW44       R# )r   r   r8   r9   r:   r   r   r7   r-   r?   r;   r<   z#duplicate entry for %s in axis '%s'N)r    r   r!   r   r   r   r   r   r"   r#   r   Z
isinstanceZtuplestr2fllogZwarningr   fromXML)r   r>   ZattrsZcontentr,   r-   r7   ZelementZelementNameZelementAttrsZ_Z	fromValueZtoValuer   s   &&&&&        r   rE   Ztable__a_v_a_r.fromXMLv   s2   tW%%!DJtzz:.."#DJJ9 (w 8D (w 8D")$"Bb"HGnaM "DJJ Y=D,..GmmD)"gu--3:0Kq"i/$*<+?$D	"(d);R"@$/KK Ey .5	* # GOD9r   c           	     s$  a \        V R ^4      pVR9  d   \        R4      hV P                  p/ oVP                  4        F+  w  rgVP	                  VR4      pVe   \        Wx4      pVSV&   K-  	  V^8  d   S# V P                  P                  p	V P                  P                  p
VR,          P                  pV
e   \        WS4      p\        V3R lV 4       4      p. p\        V4       FX  w  ppV	e	   W,          pV
e2   XV,          pV\        V4      ,          p\        \        VR4      R4      pVP!                  V4       KZ  	  \#        W4       UUu/ uF.  w  ppV^ 8w  g   V'       d   K  VP$                  \'        V^4      bK0  	  uppoS# u uppi )r   r2   Nr   c              3   sp   <"   T F+  p\        SP                  VP                  ^ 4      ^4      x  K-  	  R# 5i)r    N)fl2figetr   )Z.0r-   mappedLocations   & r   Z	<genexpr>Z5table__a_v_a_r.renormalizeLocation.<locals>.<genexpr>   s.     VQUeN..t||Q?DDQUs   36r3   i @  i )r"   r5   r   r'   rG   r	   r   r=   rB   r   r
   ZlistZ	enumerater   ZminZmaxr*   r6   r   fi2fl)r   ZlocationZfontZ
dropZeroesr   ZavarSegmentsr   r1   ZavarMappingZ	varIdxMapZvarStorer   Z	instancerZcoordsZoutZvarIdxZvZdeltar-   rH   s   &&&&               @r   renormalizeLocationZ"table__a_v_a_r.renormalizeLocation   s   t^Q7v%%&BCC}}&nn.NG&**7D9K&*5>&+N7#	 / !!! JJ((	::&&F|  )(.IIVQUVV"6*IFA$"*#!&)WU^#Az*J7JJqM + s>
)4AvZ 'DLL%2,&)
 
s   F+F)r   r   r   r   r   )T)__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__Zdependenciesr   r+   r4   rA   rE   rJ   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r   r   r      s7     2 8L'0H:0:8/ /r   r   )"ZfontTools.miscr   ZfontTools.misc.fixedToolsr   rI   r   rF   r   r@   r   rC   ZfontTools.misc.textToolsr   r   ZfontTools.misc.roundToolsr   ZfontTools.varLib.modelsr	   ZfontTools.varLib.varStorer
   r   ZfontTools.ttLibr   Z r   r   ZstructZloggingZ	getLoggerrK   rD   ZotBaser   r   ) r   r   <module>rL      sS    "  9 - 6 K &     ! $i% ir   