L iq NddlmZmZddlmZddlmZddlmZ ddl m Z ddl Z ddlmZmZmZmZmZddlmZdd lmZdd lmZdd lmZmZe j:Zee j<_d ZGd de Z!e"ddZ#e#e jH_%dZ&e&e jN_(dZ)e)e j<_*Gdde Z+dZ,dZ-e-e j<_.e,e j<_/dZ0e0e j<_1dZ2dZ3e2e jh_5e3e jh_6y))noRoundotRound) bit_count)Vector)otTables) supportScalarN)buildVarRegionListbuildSparseVarRegionListbuildSparseVarRegionbuildMultiVarStorebuildMultiVarData)batched)partial) defaultdict)heappushheappopcLtt|jdS)Nc |dSNr)kvs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/varLib/multiVarStore.pyz!_getLocationKey..s BqE)key)tuplesorteditems)locs r_getLocationKeyr s  )9: ;;rcBeZdZdZdZdZdZdZeddZ eddZ y ) OnlineMultiVarStoreBuilderc||_i|_tg||_t |jg|_d|_d|_d|_i|_ i|_ d|_ yN) _axisTags _regionMapr _regionListr _store_data_model _supports_varDataIndices_varDataCaches_cache)selfaxisTagss r__init__z#OnlineMultiVarStoreBuilder.__init__s_!3BA()9)92>   !  rcH|j|j||_yr$) setSupportssupportsr*)r/models rsetModelz#OnlineMultiVarStoreBuilder.setModel)s ( rcd|_t||_|jds |jd=d|_d|_yr)r*listr+r.r))r/r4s rr3z&OnlineMultiVarStoreBuilder.setSupports-s: h~~a q!  rct|jj|j_t|jj |j_|jSr$)lenr'Region RegionCountr( MultiVarDataMultiVarDataCountr/s rfinishz!OnlineMultiVarStoreBuilder.finish5sF'*4+;+;+B+B'C$(+DKK,D,D(E %{{rc|j}|j}|j}g}|D]|}t|}|j |}|Kt ||j }t|jx}||<|jj||j|~t|}|jj |} | ]| |_ |jj| |_|j ||_t|jj$dk(rd} | t'|g|_t|jj|_ |jjj|j|j|j|<||j vri|j |<|j ||_yy)N)r&r'r+r getr r%r:r;appendrr,_outerr(r=r)r-r.Itemr ) r/ regionMap regionListregions regionIndicesregionridx varRegion varDataIdxs r_add_MultiVarDataz,OnlineMultiVarStoreBuilder._add_MultiVarData:sOO %% ..  &F!&)C--$C{0H '*:+<+<'==in!!((3   % &M"))--c2  !$DK11*=DJ--c2DK4::??#v-!  *="=DJdkk667DK KK $ $ + +DJJ 7(, D  %$---+-##C(--c2DK rroundc|jj||}|jd}||j|tfS)NrPr)r* getDeltaspop storeDeltasr)r/ master_valuesrQdeltasbases r storeMastersz'OnlineMultiVarStoreBuilder.storeMasters]sC&&}E&Bzz!}T%%fG%<<z9OnlineMultiVarStoreBuilder.storeDeltas..cs0AuQx0c32K|]}t|ywr$)r)r]r^s rr_z9OnlineMultiVarStoreBuilder.storeDeltas..hs6!U1X6srBrP) ranyNO_VARIATION_INDEXr)rOr.rCr:rFrUraddItemrE)r/rWrQ deltas_tuplevarIdxinners ` rrUz&OnlineMultiVarStoreBuilder.storeDeltasbs0006{% %6v66 zz  " " $.  MDJJOO$ F?  " " $##F'#: : 61++#u,$* L! rN) __name__ __module__ __qualname__r1r6r3r@rOrQrYrUrrrr"r"s0  !3F49= ,1rr"rPctfd|D}t||jk(sJg}|D]}|j||jj |t|j|_y)Nc3.K|] }|ywr$rr\s rr_z'MultiVarData_addItem..~s,58,r`)rr:VarRegionCountextendrFrD ItemCount)r/rWrQvaluesr^s ` rMultiVarData_addItemrr}sn ,V, ,F v;$-- -- - F  a IIV^DNrc|jDcic]=}||jj|j|j|j f?c}Scc}wr$)SparseVarRegionAxis AxisIndexaxisTag StartCoord PeakCoordEndCoord)r/ fvar_axesregs rSparseVarRegion_get_supportr|sQ++   #-- ((3>>3==#,,*WW  sAAc,t|jSr$)boolr=r?s rMultiVarStore___bool__rs !! ""rcDeZdZifdZdZdZdZedZdZ dZ y) MultiVarStoreInstancerc||_||jdk(sJ|r |jng|_|r|jj ng|_|j|y)N)rzFormatr=_varDataSparseVarRegionListr;_regions setLocation)r/ multivarstorerzlocations rr1zMultiVarStoreInstancer.__init__s]"$ (<(<(AAA6C 22 8EM - - 4 42  "rcDt||_|jyr$)dictr _clearCaches)r/rs rrz"MultiVarStoreInstancer.setLocationsX  rci|_yr$)_scalarsr?s rrz#MultiVarStoreInstancer._clearCachess  rc|jj|}|M|j|j|j}t |j |}||j|<|Sr$)rrCr get_supportrzrr)r/ regionIdxscalarsupports r _getScalarz!MultiVarStoreInstancer._getScalars[""9- >mmI.::4>>JG"4==':F'-DMM) $ rc:|s tgSt|t|zdk(sJt|t|ft|t|z}tdg|z}tt|||D]\}}|s |t||zz }|Sr)rr:zipr)rWscalarsmdeltar^ss rinterpolateFromDeltasAndScalarsz6MultiVarStoreInstancer.interpolateFromDeltasAndScalarss": 6{S\)Q.KVc'l0KK. K3w< 'sQw*G4 #DAq VAY] "E # rc|dz |dz}}|tk(r tgS|j}||jDcgc]}|j |}}||j |}|j ||Scc}w)NrbrB)rdrrVarRegionIndexrrFr)r/varidxmajorminorvarDatarirrWs r __getitem__z"MultiVarStoreInstancer.__getitem__s|Vf_u ' '": --181N1NO24??2&OO$$U+33FGDDPsA:c|j}||jDcgc]}|j|}}|j||Scc}wr$)rrrr)r/ varDataIndexrWrrrs rinterpolateFromDeltasz,MultiVarStoreInstancer.interpolateFromDeltassK--181F1U1UV24??2&VV33FGDDWsA N) rirjrkr1rrr staticmethodrrrrrrrrs9:<#  EErrcFtjj||dS)Nr=)VarData)otVarStoresubset_varidxes)r/varIdxess rMultiVarStore_subset_varidxesrs ;; & &tX~ & NNrcFtjj|ddS)Nr=r)r VarRegionList)rr prune_regionsr?s rMultiVarStore_prune_regionsrs& ;; $ $ n4I % rcg}|j|}|jD]=}|jj|}|j |}|j |?|Sr$)r=rrr;rrD)r/rfvarAxesr4rrrKrs rMultiVarStore_get_supportsrseH&G++! ))00;$$X. ! Orc|jjD]I}|jD]8}|j|j|j|j :Kyr$)VarCompositeGlyphsVarCompositeGlyph componentsaddaxisValuesVarIndextransformVarIndex)r/varidxesglyph components rVARC_collect_varidxesrsV((::6)) 6I LL55 6 LL44 5 66rc|jjD];}|jD]*}||j|_||j|_,=yr$)rrrrr)r/ varidxes_maprrs rVARC_remap_varidxesrs\((::T)) TI+7 8T8T+UI (*6y7R7R*SI ' TTr)7fontTools.misc.roundToolsrrfontTools.misc.intToolsrfontTools.misc.vectorrfontTools.ttLib.tablesrrfontTools.varLib.modelsrfontTools.varLib.varStore fontToolsfontTools.varLib.builderr r r r r fontTools.misc.iterToolsr functoolsr collectionsrheapqrrrd MultiVarStorer objectr"rQrrr=rer|SparseVarRegionrr__bool__rrrrrr get_supportsrrVARCcollect_varidxesremap_varidxesrrrrs6-(11 -##**&8#<^^B16 $/"=#32EV2EjO "=#@ !;6T1,r