+
    f7iq   c                   sR   ^ RI HtHt ^ RIHt ^ RIHt ^ RIHt	 ^ RI
Ht ^ RIt^ RIHtHtHtHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ]	P:                  t]]	P<                  n        R t ! R R] 4      t!R]"/R lt#]#]	PH                  n%        R t&]&]	PN                  n(        R t)])]	P<                  n*         ! R R] 4      t+R t,R t-]-]	P<                  n.        ],]	P<                  n/        R t0]0]	P<                  n1        R t2R t3]2]	Ph                  n5        ]3]	Ph                  n6        R# )    )noRoundotRound)	bit_count)Vector)otTables)supportScalarN)buildVarRegionListbuildSparseVarRegionListbuildSparseVarRegionbuildMultiVarStorebuildMultiVarData)batched)partial)defaultdict)heappushheappopc                 sL    \        \        V P                  4       R  R7      4      # )c                 s    V ^ ,          # r     )Zkv   &E/usr/lib64/python3.14/site-packages/fontTools/varLib/multiVarStore.pyZ<lambda>Z!_getLocationKey.<locals>.<lambda>   s    BqE    )key)tupleZsortedZitems)Zlocr   r   _getLocationKeyr      s    		)9:;;r   c                   sZ   a  ] tR t^t o R tR tR tR tR tR]	/R lt
R]	/R ltR	tV tR
# )OnlineMultiVarStoreBuilderc                s    Wn         / V n        \        . V4      V n        \	        V P                  . 4      V n        R V n        R V n        R V n        / V n	        / V n
        R V n        R # N)	_axisTags
_regionMapr   _regionListr
   _store_data_model	_supports_varDataIndices_varDataCaches_cache)selfZaxisTags   &&r   __init__Z#OnlineMultiVarStoreBuilder.__init__   s]    !3BA()9)92>
! r   c                sH    V P                  VP                  4       Wn        R # r   )setSupportssupportsr    )r%   Zmodelr&   r   setModelZ#OnlineMultiVarStoreBuilder.setModel)   s    (r   c                s    R V n         \        V4      V n        V P                  ^ ,          '       g   V P                  ^  R V n        R V n        R # r   )r    Zlistr!   r$   r   )r%   r)   r&   r   r(   Z&OnlineMultiVarStoreBuilder.setSupports-   s=    h~~a  q!
r   c                s    \        V P                  P                  4      V P                  n        \        V P                  P
                  4      V P                  n        V P                  # r   )lenr   RegionZRegionCountr   MultiVarDataZMultiVarDataCountr%   r   r   finishZ!OnlineMultiVarStoreBuilder.finish5   sF    '*4+;+;+B+B'C$(+DKK,D,D(E%{{r   c                s   V P                   pV P                  pV P                  p. pV F}  p\        V4      pVP	                  V4      pVfJ   \        WPP                  4      p\        VP                  4      ;qqV&   VP                  P                  V4       VP                  V4       K  	  \        V4      pV P                  P	                  V4      p	V	eg   Wn        V P                  P                  V	,          V n        V P                   V,          V n        \        V P                  P$                  4      R8X  d   R p	V	f   \'        V. 4      V n        \        V P                  P                  4      V n        V P                  P                  P                  V P                  4       V P                  V P                  V&   W`P                   9  d   / V P                   V&   V P                   V,          V n        R # R # )N  )r   r   r!   r   getr	   r   r+   r,   appendr   r"   _outerr   r-   r   r#   r$   Itemr   )
r%   Z	regionMapZ
regionListZregionsZregionIndicesregionr   ZidxZ	varRegionZ
varDataIdxs
   &         r   _add_MultiVarDataZ,OnlineMultiVarStoreBuilder._add_MultiVarData:   s   OO	%%
..F!&)C--$C{0H	'*:+<+<'==n!!((3  %  M"))--c2
!$K11*=DJ--c2DK4::??#v-!
*="=DJdkk667DKKK$$++DJJ7(,D  %---+-##C(--c2DK r   roundc               s    V P                   P                  WR 7      pVP                  ^ 4      pW@P                  V\        R 7      3# )r7   )r    Z	getDeltasZpopstoreDeltasr   )r%   Zmaster_valuesr7   deltasZbases   &&$  r   storeMastersZ'OnlineMultiVarStoreBuilder.storeMasters]   s?    &&}&Bzz!}%%fG%<<<r   c               s  a \         ;QJ d    . V3R  lV 4       F  NK  	  5M! V3R  lV 4       4      p\        V4      '       g   \        # \         ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV P                  '       g   V P	                  4        V P
                  P                  V4      pVe   V# \        V P                  P                  4      pVR8X  d(   V P	                  4        V P                  V\        R7      # V P                  P                  V\        R7       V P                  ^,          V,           pW@P
                  V&   V# )c              3   4   <"   T F  pS! V4      x  K  	  R # 5ir   r   .0dr7      & r   	<genexpr>9OnlineMultiVarStoreBuilder.storeDeltas.<locals>.<genexpr>c   s     0AuQxx   c              3   s8   "   T F  p\        V4      x  K  	  R # 5ir   )r   )r>   r?   s   & r   rA   rB   h   s     6v!U1XXvs   r0   r8   )r   ZanyNO_VARIATION_INDEXr   r6   r$   r1   r+   r4   r9   r   addItemr3   )r%   r:   r7   Zdeltas_tupleZvarIdxZinners   &&d   r   r9   Z&OnlineMultiVarStoreBuilder.storeDeltasb   s    000006{{%%u6v6uu6v66zzz""$.MDJJOO$F?""$##F'#::

61++#u,$*L!r   )r   r$   r   r    r3   r   r   r   r!   r#   r"   N)__name__
__module____qualname____firstlineno__r'   r*   r(   r/   r6   r7   r;   r9   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s<     

!3F=5 =
5  r   r   r7   c                sF  a \         ;QJ d    . V3R  lV 4       F  NK  	  5M! V3R  lV 4       4      p\        V4      V P                  8X  g   Q h. pV F  pVP                  V4       K  	  V P                  P                  V4       \        V P                  4      V n        R# )c              3   r<   r   r   r=   r@   r   rA   Z'MultiVarData_addItem.<locals>.<genexpr>~   s     ,V588VrC   N)r   r+   ZVarRegionCountZextendr4   r2   Z	ItemCount)r%   r:   r7   Zvaluesr?   s   &&d  r   MultiVarData_addItemrN   }   sw    U,V,UU,V,,Fv;$-----Fa  	IIV^DNr   c                 s    V P                    Uu/ uFA  pWP                  ,          P                  VP                  VP                  VP
                  3bKC  	  up# u upi r   )ZSparseVarRegionAxisZ	AxisIndexZaxisTagZ
StartCoordZ	PeakCoordZEndCoord)r%   	fvar_axesZregs   && r   SparseVarRegion_get_supportrP      sT     +++C 	-- ((3>>3==#,,*WW+  s   AAc                 s,    \        V P                  4      # r   )Zboolr-   r.   r   r   MultiVarStore___bool__rQ      s    !!""r   c                   sZ   a  ] tR t^t o / 3R ltR tR tR t]R 4       t	R t
R tRtV tR	# )
MultiVarStoreInstancerc                s    W n         Ve   VP                  ^8X  g   Q hV'       d   VP                  M. V n        V'       d   VP                  P
                  M. V n        V P                  V4       R # r   )rO   ZFormatr-   _varDataSparseVarRegionListr,   _regionssetLocation)r%   ZmultivarstorerO   locations   &&&&r   r'   ZMultiVarStoreInstancer.__init__   s[    "$(<(<(AAA6C228EM--442 	 	"r   c                sF    \        V4      V n        V P                  4        R # r   )ZdictrW   _clearCaches)r%   rW   r&   r   rV   Z"MultiVarStoreInstancer.setLocation   s    Xr   c                s    / V n         R # r   )_scalarsr.   r   r   rX   Z#MultiVarStoreInstancer._clearCaches   s	    r   c                s    V P                   P                  V4      pVfQ   V P                  V,          P                  V P                  4      p\        V P                  V4      pW P                   V&   V# r   )rY   r1   rU   get_supportrO   r   rW   )r%   	regionIdxZscalarsupport   &&  r   
_getScalarZ!MultiVarStoreInstancer._getScalar   sY    ""9->mmI.::4>>JG"4==':F'-MM)$r   c                s   V '       g   \        . 4      # \        V 4      \        V4      ,          ^ 8X  g   Q \        V 4      \        V4      34       h\        V 4      \        V4      ,          p\        ^ .V,          4      p\        \        W4      V4       F(  w  rEV'       g   K  V\        V4      V,          ,          pK*  	  V# r   )r   r+   Zzipr   )r:   scalarsZmZdeltar?   Zss   &&    r   interpolateFromDeltasAndScalarsZ6MultiVarStoreInstancer.interpolateFromDeltasAndScalars   s    ":6{S\)Q.KVc'l0KK.K3w<'sQw*G4DAVAY]"E 5 r   c                s$   V^,	          VR,          r2V\         8X  d   \        . 4      # V P                  pWB,          P                   Uu. uF  qPP	                  V4      NK  	  ppWB,          P
                  V,          pV P                  Wv4      # u upi )i   r0   )rD   r   rS   VarRegionIndexr^   r4   r`   )r%   ZvaridxmajorZminorvarDatarir_   r:   s   &&      r   __getitem__Z"MultiVarStoreInstancer.__getitem__   s{    |Vf_u''":--181N1NO1N2??2&1NO$$U+33FDD Ps   Bc                s    V P                   pW1,          P                   Uu. uF  q@P                  V4      NK  	  ppV P                  W%4      # u upi r   )rS   ra   r^   r`   )r%   ZvarDataIndexr:   rc   rd   r_   s   &&&   r   interpolateFromDeltasZ,MultiVarStoreInstancer.interpolateFromDeltas   sH    --181F1U1UV1U2??2&1UV33FDD Ws   A)rU   rY   rS   rO   rW   N)rF   rG   rH   rI   r'   rV   rX   r^   Zstaticmethodr`   re   rf   rJ   rK   rL   rM   r   rR   rR      sB     :< # 
 
EE Er   rR   c                 sD    \         P                  P                  WR R7      # )r-   )VarData)otVarStoresubset_varidxes)r%   ZvarIdxesr&   r   MultiVarStore_subset_varidxesrk      s    ;;&&t~&NNr   c                 sF    \         P                  P                  V R RR7      # )r-   rT   )rg   ZVarRegionList)rh   ri   prune_regionsr.   r   r   MultiVarStore_prune_regionsrm      s&    ;;$$n4I %  r   c                 s    . pV P                   V,          pVP                   FB  pV P                  P                  V,          pVP	                  V4      pVP                  V4       KD  	  V# r   )r-   ra   rT   r,   rZ   r2   )r%   rb   ZfvarAxesr)   rc   r[   r5   r\   s   &&&     r   MultiVarStore_get_supportsrn      s`    H&G++	))00;$$X.  , Or   c                 s    V P                   P                   FL  pVP                   F9  pVP                  VP                  4       VP                  VP
                  4       K;  	  KN  	  R # r   )VarCompositeGlyphsVarCompositeGlyph
componentsZaddaxisValuesVarIndextransformVarIndex)r%   Zvaridxesglyph	componentr]   r   VARC_collect_varidxesrv      sL    ((::))ILL556LL445 * ;r   c                 s    V P                   P                   FD  pVP                   F1  pWP                  ,          Vn        WP                  ,          Vn        K3  	  KF  	  R # r   )ro   rp   rq   rr   rs   )r%   Zvaridxes_maprt   ru   r]   r   VARC_remap_varidxesrw      sJ    ((::))I+78T8T+UI(*67R7R*SI' * ;r   )7ZfontTools.misc.roundToolsr   r   ZfontTools.misc.intToolsr   ZfontTools.misc.vectorr   ZfontTools.ttLib.tablesr   rh   ZfontTools.varLib.modelsr   ZfontTools.varLib.varStoreZ	fontToolsZfontTools.varLib.builderr   r   r	   r
   r   ZfontTools.misc.iterToolsr   Z	functoolsr   Zcollectionsr   Zheapqr   r   rD   ZMultiVarStorer   Zobjectr   r7   rN   r-   rE   rP   ZSparseVarRegionrZ   rQ   Z__bool__rR   rk   rm   rl   rj   rn   Zget_supportsrv   rw   ZVARCZcollect_varidxesZremap_varidxesr   r   r   <module>rx      s   6 - ( 1 1    -  # # ** &8   #<^ ^B
$ 
$ /  "=   # 3   2EV 2EjO "=   #@     !;   6T 1 , r   