@tscircuit/runframe 0.0.2757 → 0.0.2758
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/standalone.min.js
CHANGED
|
@@ -5287,183 +5287,7 @@ endloop
|
|
|
5287
5287
|
endfacet`;A.push(g)}}return A.join(`
|
|
5288
5288
|
`)};return _Ye={serializeText:e},_Ye}var fYe,H$t;function Eti(){if(H$t)return fYe;H$t=1;const{geometries:t,modifiers:e}=aYe(),{flatten:n,toArray:o}=Cti(),{serializeBinary:i}=yti(),{serializeText:r}=xti();return fYe={mimeType:"application/sla",serialize:(A,...c)=>{A=Object.assign({},{binary:!0,statusCallback:null},A),c=n(c);let g=c.filter(u=>t.geom3.isA(u));if(g.length===0)throw new Error("only 3D geometries can be serialized to STL");return c.length!==g.length&&console.warn("some objects could not be serialized to STL"),g=o(e.generalize({snap:!0,triangulate:!0},g)),A.binary?i(g,A):r(g,A)}},fYe}var Bti=Eti();const Sti=jC(Bti);function ri(t,e){return Array.isArray(e)?[t.a*e[0]+t.c*e[1]+t.e,t.b*e[0]+t.d*e[1]+t.f]:{x:t.a*e.x+t.c*e.y+t.e,y:t.b*e.x+t.d*e.y+t.f}}function bti(){return{a:1,c:0,e:0,b:0,d:1,f:0}}function Gq(t){return typeof t>"u"}function fP(t,e=0){return{a:1,c:0,e:t,b:0,d:1,f:e}}function Rue(...t){t=Array.isArray(t[0])?t[0]:t;const e=(n,o)=>({a:n.a*o.a+n.c*o.b,c:n.a*o.c+n.c*o.d,e:n.a*o.e+n.c*o.f+n.e,b:n.b*o.a+n.d*o.b,d:n.b*o.c+n.d*o.d,f:n.b*o.e+n.d*o.f+n.f});switch(t.length){case 0:throw new Error("no matrices provided");case 1:return t[0];case 2:return e(t[0],t[1]);default:{const[n,o,...i]=t,r=e(n,o);return Rue(r,...i)}}}function IYe(...t){return Rue(...t)}const{cos:Qti,sin:vti}=Math;function O$t(t,e,n){const o=Qti(t),i=vti(t),r={a:o,c:-i,e:0,b:i,d:o,f:0};return Gq(e)||Gq(n)?r:Rue([fP(e,n),r,fP(-e,-n)])}function Pti(t,e=void 0,n=void 0,o=void 0){Gq(e)&&(e=t);const i={a:t,c:0,e:0,b:0,d:e,f:0};return Gq(n)||Gq(o)?i:Rue([fP(n,o),i,fP(-n,-o)])}var wti={0:[[{x:.019944796633211075,y:.35828068632415006},{x:.020222641007547733,y:.3550960892473839},{x:.020327535068617307,y:.3519011161217302},{x:.02060526835904108,y:.3507104904820116},{x:.02071153113201321,y:.34949252766745387},{x:.047065531132013214,y:.20882352766745393},{x:.047989939967683706,y:.20564918300405605},{x:.04875673163473768,y:.20243312543665407},{x:.04922094308839032,y:.20142201853303832},{x:.04953201774467938,y:.20035381349539033},{x:.05105794824635218,y:.1974208061920286},{x:.05243742793298141,y:.1944161379022362},{x:.1205174279329814,y:.07784313790223615},{x:.1216536619223176,y:.07627409360623287},{x:.12261018498510404,y:.07458945972562232},{x:.1242345189777056,y:.07271014544101197},{x:.12569143736362237,y:.07069826276137084},{x:.12711194429242206,y:.06938103546641537},{x:.12837874379901673,y:.06791537974577894},{x:.130338502698373,y:.06638906779986004},{x:.132159925645859,y:.06470007355882942},{x:.13381011622947792,y:.06368528357115737},{x:.13533850978527173,y:.062494930337889824},{x:.2330665097852717,y:.000743930337889824},{x:.2364974226485404,y:-.000978818921256936},{x:.23988324554357096,y:-.0027885789630079164},{x:.24043487144166406,y:-.0029559128497863825},{x:.24095002304009888,y:-.0032145836671228292},{x:.2446511035824589,y:-.0042348928870151745},{x:.24832493550927423,y:-.005349337618145378},{x:.24889860729226898,y:-.005405839357118937},{x:.2494543245702404,y:-.005559038796006631},{x:.2532833423420387,y:-.0058376980655201055},{x:.257104,y:-.006214000000000011},{x:.344948,y:-.006214000000000011},{x:.34876845169289644,y:-.005837718351308385},{x:.352597265623821,y:-.005559109487024962},{x:.35315318526669126,y:-.00540585978827806},{x:.3537270644907258,y:-.005349337618145378},{x:.3574006983675983,y:-.004234952964808514},{x:.36110158881940224,y:-.0032147329490055873},{x:.36161692908913895,y:-.0029559733581057666},{x:.36216875445642904,y:-.0027885789630079164},{x:.36555439482758706,y:-.000978916482299381},{x:.3689851386556908,y:.0007437082019616584},{x:.4667151386556908,y:.06249470820196166},{x:.46824382031514195,y:.0636852631221029},{x:.4698943035897058,y:.06470024765114774},{x:.4717154585013725,y:.06638901501054441},{x:.47367495473362387,y:.0679150932923645},{x:.4749419974608878,y:.0693810030307532},{x:.47636275350351887,y:.0706984782301942},{x:.4778194532662604,y:.07271008609647399},{x:.47944357522443626,y:.07458911996296573},{x:.4804002872780698,y:.07627405043044727},{x:.48153671723081914,y:.07784338646721853},{x:.5496157172308191,y:.19441638646721857},{x:.5509951179002539,y:.19742093333312605},{x:.5525209822553206,y:.20035381349539033},{x:.5528320971760705,y:.20142215679791795},{x:.5532963622471587,y:.2024333975455826},{x:.5540631001039363,y:.20564932060673602},{x:.5549874688679868,y:.20882352766745393},{x:.5813414688679868,y:.34949252766745387},{x:.5814477200321959,y:.3507103574246747},{x:.581725430046729,y:.351900851345405},{x:.5818303474337426,y:.35509595676374855},{x:.5821082033667889,y:.35828068632415006},{x:.5819748261451739,y:.3594958443979094},{x:.5820149461972951,y:.36071764184793353},{x:.5710349461972951,y:.5284976418479336},{x:.5705756858728281,y:.5312810757499365},{x:.5703149436633981,y:.5340900680661724},{x:.5698592272920282,y:.5356233082419208},{x:.5695988288779222,y:.5372015019922555},{x:.5686053720955593,y:.5398418557477263},{x:.5678016327590553,y:.5425460057826548},{x:.5216826327590552,y:.6556800057826547},{x:.5211943471023096,y:.656605995281004},{x:.5208498728309648,y:.6575945381025444},{x:.5191405880551111,y:.6605007631972294},{x:.5175679428069421,y:.6634831423933323},{x:.5169083878327574,y:.664296079457111},{x:.5163776774005638,y:.665198424109003},{x:.5141342596628157,y:.6677153419860701},{x:.5120099990343735,y:.6703336077343061},{x:.511204521070525,y:.6710022516480534},{x:.510507969381766,y:.6717837215313657},{x:.425955969381766,y:.7497057215313657},{x:.4243831978740034,y:.750892537075826},{x:.42294870744900304,y:.7522432326643229},{x:.4208707687817478,y:.7535430209032156},{x:.4189143183619635,y:.7550193610827685},{x:.4171402309909699,y:.7558765397994217},{x:.4154697962599445,y:.7569214269519826},{x:.41317820849544135,y:.7577908544006052},{x:.41097133104084405,y:.7588571425751742},{x:.40906410498936707,y:.7593517435666508},{x:.4072219198222394,y:.7600506678559823},{x:.3127869198222394,y:.7856226678559822},{x:.3097655669518694,y:.7861297177594856},{x:.3067801557646532,y:.7868174624905968},{x:.3054245519856559,y:.7868582361795984},{x:.30408703940192616,y:.7870827004032797},{x:.3010248204508113,y:.7869905707806608},{x:.2979626007613803,y:.7870826758597451},{x:.29662508997676323,y:.7868582009159747},{x:.29526948652460844,y:.786817416361878},{x:.2922840808497275,y:.7861296477028675},{x:.28926273204343433,y:.7856225735833884},{x:.19483073204343437,y:.7600505735833885},{x:.19298859701529922,y:.7593516514268194},{x:.1910814199885863,y:.7588570511522524},{x:.1888745059729717,y:.757790729268721},{x:.18658288068670334,y:.7569212665731724},{x:.18491249471518256,y:.7558763912940257},{x:.18313845528709377,y:.7550192228447639},{x:.18118197558509466,y:.7535428424712565},{x:.17910400699337814,y:.7522430123425641},{x:.17766956207459372,y:.7508923379118444},{x:.17609683558545802,y:.7497055417906873},{x:.09154583558545802,y:.6717835417906872},{x:.09084937681091164,y:.6710021668773223},{x:.09004400096562647,y:.6703336077343061},{x:.087919657143162,y:.6677152394449524},{x:.08567616637982708,y:.6651982097729843},{x:.0851455285488078,y:.6642959763928821},{x:.08448605719305789,y:.6634831423933323},{x:.08291335035419628,y:.6605006463960624},{x:.08120401576602496,y:.6575942974079984},{x:.08085959099279398,y:.6566058778839782},{x:.08037136724094471,y:.6556800057826547},{x:.03425236724094472,y:.5425460057826548},{x:.03344866581310472,y:.5398419832899659},{x:.03245524021837327,y:.537201759963462},{x:.0321948107181119,y:.5356234361255728},{x:.03173905633660196,y:.5340900680661724},{x:.03147832642517492,y:.5312812082371015},{x:.031019071243648687,y:.5284979083423142},{x:.020038071243648682,y:.36071790834231426},{x:.020078188427320915,y:.3594959771633442},{x:.019944796633211075,y:.35828068632415006}],[{x:.11021604810185967,y:.3604951889884744},{x:.12035004420691338,y:.5153337161267963},{x:.1599220965290545,y:.612407472440097},{x:.22898846858521874,y:.6760588762479813},{x:.301025186831377,y:.6955662779655215},{x:.373064807645506,y:.6760587099720985},{x:.44213195602343713,y:.6124073435241713},{x:.48170390405887986,y:.5153338430353971},{x:.49183697687726113,y:.3604953223188204},{x:.4679633532090146,y:.23306575687188358},{x:.4093572783633461,y:.13271343144136735},{x:.3319224534250481,y:.08378599999999999},{x:.27012977192577264,y:.08378599999999999},{x:.19269670382412518,y:.13271332265415062},{x:.13408961949133952,y:.23306590258843124},{x:.11021604810185967,y:.3604951889884744}]],1:[[{x:.17556757075794932,y:.5951166967821685},{x:.17573368487361973,y:.586296718297643},{x:.17761729959585784,y:.5776786204828649},{x:.18114602866723137,y:.5695935920037709},{x:.1861842650084615,y:.5623523359706766},{x:.19253839202243023,y:.5562331297919906},{x:.19996422417142623,y:.5514711311294693},{x:.20817639089041826,y:.548249340921154},{x:.21685930321783156,y:.5466915707579493},{x:.225679281702357,y:.5468576848736197},{x:.2342973795171352,y:.5487412995958578},{x:.24238240799622912,y:.5522700286672314},{x:.24962366402932343,y:.5573082650084615},{x:.33662600000000004,y:.6314944876419193},{x:.33662600000000004,y:.051034000000000024},{x:.33749066238185466,y:.042254935509274234},{x:.3400514210369921,y:.033813245543570986},{x:.3442098674463855,y:.026033339514117928},{x:.34980619484660536,y:.019214194846605387},{x:.35662533951411796,y:.013617867446385483},{x:.364405245543571,y:.00945942103699212},{x:.3728469355092743,y:.006898662381854659},{x:.381626,y:.0060340000000000255},{x:.3904050644907258,y:.006898662381854659},{x:.3988467544564291,y:.00945942103699212},{x:.40662666048588214,y:.01361786744638549},{x:.4134458051533947,y:.019214194846605387},{x:.41904213255361455,y:.026033339514117928},{x:.42320057896300795,y:.033813245543570986},{x:.4257613376181454,y:.042254935509274255},{x:.426626,y:.051034000000000024},{x:.426626,y:.729004},{x:.42636789988195944,y:.7316245344755278},{x:.4263183151263803,y:.7342572817023569},{x:.42593657376816557,y:.7360038620015019},{x:.4257613376181454,y:.7377830644907257},{x:.42499695590681574,y:.7403028932959718},{x:.4244347004041422,y:.7428753795171351},{x:.42371955318609683,y:.744513925721078},{x:.42320057896300795,y:.746224754456429},{x:.4219592904188853,y:.7485470419835442},{x:.42090597133276864,y:.7509604079962291},{x:.419884900961423,y:.7524279516932593},{x:.41904213255361455,y:.7540046604858821},{x:.41737163919932724,y:.7560401625275525},{x:.41586773499153856,y:.7582016640293234},{x:.4145799806286405,y:.7594418083381722},{x:.4134458051533947,y:.7608238051533946},{x:.41141030311172405,y:.7624942985076821},{x:.4095136079775698,y:.7643208702080094},{x:.40800865730110464,y:.7652859570783687},{x:.40662666048588214,y:.7664201325536145},{x:.40430437295876726,y:.767661421097737},{x:.4020877758285738,y:.7690828688705307},{x:.4004234632490515,y:.7697358105551997},{x:.3988467544564291,y:.7705785789630079},{x:.39632692565118355,y:.7713429606743374},{x:.3938756091095818,y:.772304659078846},{x:.39211589322607654,y:.7726203633950566},{x:.3904050644907258,y:.7731393376181454},{x:.3877845300151986,y:.7733974377361859},{x:.3851926967821685,y:.7738624292420507},{x:.38340520248922366,y:.7738287638499798},{x:.381626,y:.774004},{x:.37900546552447173,y:.7737458998819594},{x:.376372718297643,y:.7736963151263803},{x:.37462613799849803,y:.7733145737681656},{x:.3728469355092743,y:.7731393376181454},{x:.3703271067040287,y:.7723749559068158},{x:.36775462048286484,y:.7718127004041422},{x:.3661160742789217,y:.7710975531860966},{x:.364405245543571,y:.7705785789630079},{x:.3620829580164563,y:.7693372904188854},{x:.3596695920037709,y:.7682839713327686},{x:.35820204830674063,y:.7672629009614229},{x:.35662533951411796,y:.7664201325536145},{x:.3545898374724472,y:.7647496391993269},{x:.35242833597067663,y:.7632457349915385},{x:.1912283359706766,y:.6257917349915385},{x:.18510912979199054,y:.6194376079775697},{x:.18034713112946932,y:.6120117758285738},{x:.17712534092115398,y:.6037996091095817},{x:.17556757075794932,y:.5951166967821685}]],2:[[{x:.034589999999999996,y:.05195499999999997},{x:.034692251306008066,y:.05091682506774448},{x:.03463809526377374,y:.04987503351343359},{x:.03512383076438082,y:.04653492529109402},{x:.03545466238185463,y:.043175935509274184},{x:.03575748683953214,y:.042177657057450094},{x:.03590761484026801,y:.04114531791601493},{x:.0370356398580977,y:.03796415123181852},{x:.03801542103699209,y:.034734245543570935},{x:.03850718127225641,y:.0338142268532408},{x:.03885582398108696,y:.03283101233894428},{x:.040582789147307716,y:.02993103764454602},{x:.04217386744638545,y:.02695433951411788},{x:.04283566538917773,y:.026147936387598623},{x:.04336942466232366,y:.025251630882832152},{x:.04562896367409083,y:.022744292579413156},{x:.04777019484660536,y:.020135194846605337},{x:.04857659797312457,y:.019473396903813094},{x:.04927496174105457,y:.01869844492647086},{x:.0519802417813102,y:.01668009861889986},{x:.05458933951411791,y:.014538867446385433},{x:.055509358204447995,y:.01404710721112114},{x:.05634548873920743,y:.013423289731094336},{x:.05939254741314285,y:.011971499336069797},{x:.062369245543570956,y:.01038042103699207},{x:.0633675239953951,y:.010077596579314544},{x:.06430928926944049,y:.00962888655251979},{x:.06758102982102647,y:.008799443560749052},{x:.07081093550927423,y:.007819662381854608},{x:.0718491104415297,y:.007717411075846537},{x:.07286031894352762,y:.007461052176974015},{x:.07623101021818018,y:.0072858316174737835},{x:.07959,y:.006954999999999975},{x:.522462,y:.006954999999999975},{x:.5312410644907257,y:.007819662381854608},{x:.539682754456429,y:.01038042103699207},{x:.5474626604858821,y:.014538867446385433},{x:.5542818051533946,y:.020135194846605337},{x:.5598781325536145,y:.02695433951411788},{x:.5640365789630079,y:.034734245543570935},{x:.5665973376181453,y:.043175935509274205},{x:.567462,y:.05195499999999997},{x:.5665973376181453,y:.06073406449072574},{x:.5640365789630079,y:.06917575445642901},{x:.5598781325536145,y:.07695566048588207},{x:.5542818051533946,y:.08377480515339461},{x:.5474626604858821,y:.08937113255361451},{x:.539682754456429,y:.09352957896300787},{x:.5312410644907257,y:.09609033761814534},{x:.522462,y:.09695499999999997},{x:.1815000359059797,y:.09695499999999997},{x:.2783905550735291,y:.2032469617410546},{x:.2792807818102756,y:.20444017254595384},{x:.28031851181367967,y:.20550758629318672},{x:.43775551181367967,y:.4029575862931866},{x:.4393581707982963,y:.4054309283363016},{x:.4411189018513206,y:.4077943501865292},{x:.5036359018513206,y:.5115903501865292},{x:.5044316302389797,y:.5132634494776924},{x:.5054127007337849,y:.5148350555317778},{x:.5063216043693862,y:.5172373109446714},{x:.5074247535047713,y:.5195567934026113},{x:.5078787867151084,y:.5213529834674229},{x:.5085344010842773,y:.5230857889106145},{x:.5229384010842772,y:.5764717889106146},{x:.5230947969602031,y:.5774089507908463},{x:.5233933154704733,y:.5783109589719573},{x:.5238196553887738,y:.5817524776504878},{x:.5243904806061233,y:.5851730002877248},{x:.5243610401661515,y:.586122666187007},{x:.5244778496604383,y:.5870655806061408},{x:.5252778496604383,y:.6189585806061408},{x:.525154398698275,y:.6206444560860672},{x:.5252359209411441,y:.6223328785443973},{x:.5248330095087286,y:.6250334227224941},{x:.5246336028763079,y:.6277565667648055},{x:.5241836259995084,y:.6293859645321488},{x:.5239341869342451,y:.6310578486269935},{x:.5118811869342451,y:.6790048486269935},{x:.5115474759395316,y:.6799350391147754},{x:.5113589931552627,y:.6809051378786065},{x:.5100605296725933,y:.6840797730170447},{x:.5089023081582834,y:.6873082151493771},{x:.5083935381649621,y:.6881554285023456},{x:.5080194201443183,y:.6890701159233712},{x:.5061265656819337,y:.6919304336788418},{x:.5043607612540449,y:.6948708843926746},{x:.5036964840076373,y:.6956025626767983},{x:.5031511078963445,y:.6964266878303904},{x:.4695951078963445,y:.7376876878303904},{x:.46829294792790443,y:.7390014838193654},{x:.46714904955699066,y:.7404551608815331},{x:.46519525859727806,y:.7421268539092958},{x:.4633851429208498,y:.7439531446668906},{x:.4618516947085211,y:.7449876576267703},{x:.4604461776978856,y:.7461902391902692},{x:.4582037971525157,y:.7474486453977692},{x:.45607217068925404,y:.7488867084403534},{x:.4543663637878686,y:.7496021826182516},{x:.45275324136800726,y:.7505074541480116},{x:.3913892413680073,y:.7774134541480116},{x:.3883140702117422,y:.7784156528007931},{x:.3852957573995619,y:.7795779210778271},{x:.3841283231887951,y:.779779788263216},{x:.3830018757962646,y:.7801468976050565},{x:.3797902739335826,y:.7805299031606142},{x:.3766032098633093,y:.781080995160135},{x:.2948022098633093,y:.7870669951601349},{x:.29450281220893076,y:.7870594704966325},{x:.2942070489499988,y:.7871065838776864},{x:.29009611613079095,y:.7869487184427649},{x:.2859834519838158,y:.7868453561974301},{x:.28569127516043946,y:.7867795665334233},{x:.28539200354491423,y:.7867680740946454},{x:.2381110035449142,y:.7802710740946455},{x:.2365476307297285,y:.7798972084805876},{x:.2349498387179436,y:.7797212234138579},{x:.23226739693423346,y:.7788736316211718},{x:.2295313767481002,y:.7782193386355017},{x:.22807098126622102,y:.7775476578384392},{x:.22653822336325463,y:.7770633405173258},{x:.15287222336325462,y:.7455503405173259},{x:.15277120515837472,y:.7454948388638573},{x:.15266147866932564,y:.7454595513468599},{x:.14890641990559073,y:.7433714396994592},{x:.14514076206912752,y:.7413025033471496},{x:.1450525127361761,y:.7412283604682699},{x:.14495177886390068,y:.7411723444149347},{x:.14167624287507044,y:.7383917796239132},{x:.1383865705572421,y:.7356279539035645},{x:.138314481468594,y:.7355380190685297},{x:.13822661135931125,y:.7354634271443719},{x:.09327661135931127,y:.6889934271443718},{x:.09215967204365061,y:.6875853345117547},{x:.09088652507606766,y:.6863167230283468},{x:.0894249598835053,y:.6841377631074377},{x:.0877944205712414,y:.6820821900242812},{x:.08697364817646357,y:.6804832494460014},{x:.08597245819367963,y:.6789906353246448},{x:.0849640705590952,y:.6765684062835642},{x:.08376588401722862,y:.6742342280213215},{x:.08327282036617045,y:.6725058858871059},{x:.08258206253775009,y:.6708466294514168},{x:.06737006253775008,y:.6210196294514168},{x:.06563362911198059,y:.61237067498716},{x:.06561788807912042,y:.6035491464015462},{x:.0673234443582347,y:.5948940500909503},{x:.07068475437800403,y:.5867379965527546},{x:.07557264487941309,y:.5793944183504645},{x:.08179927697165325,y:.5731455250760676},{x:.08912536467535526,y:.5682314581936796},{x:.09726937054858317,y:.56484106253775},{x:.10591832501283995,y:.5631046291119806},{x:.11473985359845373,y:.5630888880791204},{x:.12339494990904962,y:.5647944443582347},{x:.13155100344724535,y:.568155754378004},{x:.13889458164953555,y:.5730436448794131},{x:.14514347492393234,y:.5792702769716532},{x:.15005754180632036,y:.5865963646753553},{x:.1534479374622499,y:.5947403705485832},{x:.16549687462406137,y:.6342067386764809},{x:.19660916323298405,y:.666371100226128},{x:.2563653288901179,y:.6919337213587163},{x:.29295461470925055,y:.696961546277117},{x:.3623268316838737,y:.6918850546595318},{x:.40664087103378327,y:.672454875030618},{x:.4270299373286165,y:.6473841495451277},{x:.4351521014718352,y:.6150740687208592},{x:.4346413299816387,y:.5947115247998124},{x:.4232850296720603,y:.5526213103922067},{x:.3655461500158852,y:.45675834907300783},{x:.21087613207581168,y:.2627785664153893},{x:.04633344492647088,y:.0822700382589454},{x:.04431509861889995,y:.07956475821868986},{x:.04217386744638545,y:.07695566048588207},{x:.04168210721112112,y:.0760356417955519},{x:.04105828973109435,y:.07519951126079251},{x:.03960649933606985,y:.07215245258685718},{x:.03801542103699209,y:.06917575445642901},{x:.037712596579314576,y:.0681774760046049},{x:.037263886552519804,y:.06723571073055948},{x:.036434443560749034,y:.06396397017897336},{x:.03545466238185463,y:.06073406449072574},{x:.03535241107584656,y:.059695889558470286},{x:.035096052176974035,y:.05868468105647236},{x:.03492083161747381,y:.05531398978181981},{x:.034589999999999996,y:.05195499999999997}]],3:[[{x:.02624429558875499,y:.07454886751538828},{x:.02628189246403191,y:.06572740500388341},{x:.028039748887915363,y:.057082779207475086},{x:.03145031142385274,y:.04894719824755728},{x:.036382514066253493,y:.04163330793793327},{x:.042646815033581253,y:.035422176981524986},{x:.05000248075272204,y:.030552495657744837},{x:.05816683711519421,y:.027211403088916904},{x:.11448783711519421,y:.010388403088916982},{x:.11753114712885143,y:.009796523380387901},{x:.12053464064709668,y:.009027703431080128},{x:.20267064064709667,y:-.0035892965689199724},{x:.20562630159751,y:-.003749783589053152},{x:.20856537842676282,y:-.004101230781641964},{x:.30947437842676284,y:-.00620423078164193},{x:.31075400531193675,y:-.006105070212514369},{x:.31203499449415534,y:-.0061847225744922005},{x:.3151428517207607,y:-.005764970678224511},{x:.3182695531731509,y:-.005522677007230838},{x:.31950524711917533,y:-.005175778959545043},{x:.3207771618583987,y:-.005003992231664048},{x:.3829651618583987,y:.009716007768336019},{x:.3849642059743718,y:.010402067561162992},{x:.38702295869345676,y:.010879972006216251},{x:.389126076828856,y:.011830396347599064},{x:.3913090018652735,y:.012579562954916447},{x:.3931357912831918,y:.013642434461507345},{x:.39506175111398195,y:.014512798837572657},{x:.47719975111398194,y:.06182779883757265},{x:.47924722409526294,y:.06329195880211928},{x:.48141099047099317,y:.06457804786673271},{x:.4828265323572166,y:.06585154318044145},{x:.484375351035892,y:.06695911252196202},{x:.4860978389589892,y:.06879458122658251},{x:.48796912564078,y:.07047808832945178},{x:.54077112564078,y:.12830608832945176},{x:.5409949120745448,y:.12860551518367325},{x:.5412686389329152,y:.1288600940829806},{x:.5436334835107667,y:.13213593090859313},{x:.5460522072884215,y:.13537218987116906},{x:.5462132784472015,y:.1357095218897727},{x:.546432079841298,y:.13601261058785885},{x:.5481124005325159,y:.13968686141763526},{x:.5498532864078638,y:.14333280617235186},{x:.5499454524173568,y:.14369507987504085},{x:.5501009199323095,y:.14403503084321223},{x:.5735679199323094,y:.2123790308432122},{x:.5742003382158373,y:.21504899342087444},{x:.5750294951185407,y:.21766455299430504},{x:.5752146521018063,y:.21933125436759},{x:.575601167738761,y:.22096305773765262},{x:.575700550423256,y:.22370509641963415},{x:.5760035049491392,y:.22643215923642232},{x:.5758599468852712,y:.22810295774565637},{x:.5759206866877095,y:.2297788119316045},{x:.5754832145523405,y:.2324875517091097},{x:.575248324328873,y:.23522131827456078},{x:.563515324328873,y:.2983063182745607},{x:.5624930457986839,y:.30183400865706583},{x:.561587550163308,y:.3053934651440046},{x:.5612670272694029,y:.3060647673464004},{x:.5610599744254687,y:.30677926765590185},{x:.5593691204378909,y:.31003973780923805},{x:.5577866081350055,y:.3133541469027738},{x:.5573412794357957,y:.31395001930700017},{x:.5569988129587381,y:.31461039668740554},{x:.5547043620842722,y:.317478348572073},{x:.5525056481741942,y:.32042033938948294},{x:.4997036481741942,y:.378250339389483},{x:.4970091109540712,y:.38067456957783247},{x:.49440132723244246,y:.38319188697894757},{x:.4937347452782226,y:.3836204617554604},{x:.49314561461057166,y:.3841504927896343},{x:.49002990831948917,y:.38600246394071897},{x:.48698112816844114,y:.387962658427834},{x:.4171684643874312,y:.4237087345514058},{x:.48487098803351525,y:.4540412587201935},{x:.4882241875669253,y:.4559584413246188},{x:.4916233115558361,y:.4577929691542233},{x:.4920492459188098,y:.45814540790983926},{x:.4925291804180174,y:.45841980913886743},{x:.49544392539098053,y:.4609543303938907},{x:.49841983754054403,y:.46341674447922576},{x:.545354837540544,y:.5107317444792258},{x:.5454749496657809,y:.5108793107625336},{x:.5456205162109946,y:.5110018387655073},{x:.548258239278959,y:.5142987798858712},{x:.5509236260451226,y:.5175733969812307},{x:.5510126414958236,y:.5177415605329735},{x:.5511315069931322,y:.5178901328189077},{x:.5530753456471339,y:.5216383183828395},{x:.5550506716503533,y:.525370005791429},{x:.5551051696126684,y:.5255523041806199},{x:.555192766127671,y:.525721211199887},{x:.5563680197383496,y:.5297766005381628},{x:.5575773743081012,y:.5338219516056334},{x:.5575952604559016,y:.5340113792074108},{x:.557648221703651,y:.5341941299579837},{x:.569382221703651,y:.5972801299579837},{x:.5696549699390315,y:.6004540423597167},{x:.5701008412017201,y:.6036082951002054},{x:.5700318821169291,y:.6048400880993865},{x:.5701375119403227,y:.6060692795769916},{x:.5697858198023349,y:.6092354166829699},{x:.5696077595908724,y:.6124160465097288},{x:.5692998146426919,y:.6136107177017713},{x:.5691636114574624,y:.614836897966064},{x:.5682009942777376,y:.6178735869028962},{x:.5674058453461934,y:.6209583639953996},{x:.5668707486862845,y:.622070002836373},{x:.5664979467044567,y:.623246050467446},{x:.5649613973213707,y:.6260365929822823},{x:.5635797167972587,y:.6289069710868302},{x:.5283787167972587,y:.6867359710868302},{x:.526364685994031,y:.6894131274243959},{x:.524479650893362,y:.6921826271628648},{x:.5237177195860089,y:.6929316152663909},{x:.5230754099184859,y:.6937854072711274},{x:.5205777908604191,y:.6960182048823972},{x:.5181886735848373,y:.6983667373551676},{x:.4595186735848373,y:.7456807373551677},{x:.45627545779875317,y:.7478078267647688},{x:.4530837115337172,y:.7500113951823929},{x:.4525909707504246,y:.7502243275150239},{x:.4521421155924859,y:.7505187128152536},{x:.44854624273044896,y:.7519722107862162},{x:.4449859301027389,y:.7535107594479447},{x:.362848930102739,y:.7797967594479446},{x:.36158078031831586,y:.7800691142952486},{x:.3603625229719573,y:.7805143446587972},{x:.35727696699365546,y:.7809934249999153},{x:.35422405316989464,y:.781649085623381},{x:.352927136733123,y:.7816688034988555},{x:.3516454277250751,y:.7818678086678129},{x:.2577774277250751,y:.7871168086678129},{x:.2534831925795917,y:.7869349938938289},{x:.24918809681378723,y:.7867747925856998},{x:.2490774333618657,y:.786748457272228},{x:.24896378128970398,y:.7867436453266514},{x:.24478752897123962,y:.7857275603552258},{x:.2406062159909945,y:.7847325056542677},{x:.16433721599099446,y:.7584545056542678},{x:.1612047546311144,y:.7570179671101032},{x:.15801334200327716,y:.7557176430739929},{x:.09817134200327716,y:.7241756430739928},{x:.09479788711775466,y:.721949723610623},{x:.09138819905405325,y:.7197797137879894},{x:.05384019905405325,y:.6903397137879895},{x:.04746503339724546,y:.6842424293748122},{x:.0424018859405069,y:.677018569451043},{x:.0388453306011542,y:.6689457429023652},{x:.036932043806339465,y:.6603341839257509},{x:.036735552094603836,y:.6515148299032538},{x:.03826340653223549,y:.6428266036640077},{x:.041456892530026886,y:.6346033888699733},{x:.046193286212010486,y:.6271611990540533},{x:.05229057062518783,y:.6207860333972455},{x:.05951443054895701,y:.615722885940507},{x:.06758725709763488,y:.6121663306011542},{x:.07619881607424907,y:.6102530438063395},{x:.08501817009674617,y:.6100565520946039},{x:.09370639633599236,y:.6115844065322356},{x:.1019296111300268,y:.6147778925300269},{x:.10937180094594674,y:.6195142862120105},{x:.14372643260130716,y:.6464504840370294},{x:.1969218011618275,y:.6744891243755197},{x:.2615721948597163,y:.6967640072977177},{x:.3408866683163358,y:.6923288252210377},{x:.40955721054777616,y:.6703524458415177},{x:.4555820596629536,y:.6332360369266462},{x:.477752059875079,y:.596814658492312},{x:.4716998550115053,y:.5642759337587675},{x:.44042564505409965,y:.532748518309004},{x:.3700728058889163,y:.5012285825754976},{x:.28267158635688694,y:.4816496665818946},{x:.2026156257994338,y:.47140070238604853},{x:.19958923290487823,y:.4707064281346213},{x:.19652752938874105,y:.4701896668089735},{x:.19529880233776667,y:.46972217540403877},{x:.1940174323454584,y:.4694282207777866},{x:.19118463692903986,y:.4681568668470777},{x:.18828257832087977,y:.4670527262205195},{x:.18716866396437967,y:.46635450477580015},{x:.18596926283986664,y:.4658162155208443},{x:.1834389276407875,y:.4640166393294268},{x:.18080803842542348,y:.46236755090702814},{x:.17985174386742717,y:.4614654316810775},{x:.17878040392329292,y:.4607034939516098},{x:.17664976830422657,y:.45844485220330683},{x:.1743911520787843,y:.45631418952832026},{x:.17362922718285934,y:.45524284045707714},{x:.17272711941234267,y:.45428653509274164},{x:.17107806250525512,y:.45165562612327925},{x:.16927851662463225,y:.44912526936741537},{x:.1687402417372368,y:.44792586179486843},{x:.1680420336360506,y:.4468119390745141},{x:.1669379277730794,y:.44390986724015796},{x:.1656666077762714,y:.4410770565945043},{x:.16537266849946,y:.43979568308103084},{x:.16490519181337332,y:.438566950430106},{x:.16438846716364272,y:.4355052407239498},{x:.16369422916516244,y:.43247883951296023},{x:.16365592142049992,y:.43116474252408066},{x:.16343714101639506,y:.42986841944927895},{x:.1635276550184117,y:.4267647316583033},{x:.16343717819520762,y:.42366104278329114},{x:.1636559741278381,y:.4223647223293339},{x:.1636942976139514,y:.42105062579943375},{x:.1643885718653787,y:.41802423290487795},{x:.16490533319102646,y:.414962529388741},{x:.1653728245959611,y:.41373380233776696},{x:.1656667792222133,y:.41245243234545836},{x:.1669381331529224,y:.40961963692903947},{x:.16804227377948042,y:.40671757832087974},{x:.16874049522419982,y:.4056036639643795},{x:.16927878447915568,y:.4044042628398666},{x:.17107836067057278,y:.40187392764078794},{x:.1727274490929718,y:.3992430384254234},{x:.17362956831892262,y:.3982867438674269},{x:.17439150604839013,y:.3972154039232929},{x:.1766501477966929,y:.39508476830422673},{x:.1787808104716797,y:.39282615207878424},{x:.17985215954292283,y:.39206422718285927},{x:.18080846490725827,y:.39116211941234263},{x:.18343937387672077,y:.38951306250525497},{x:.18596973063258454,y:.3877135166246322},{x:.18716913820513145,y:.3871752417372368},{x:.1882830609254858,y:.38647703363605057},{x:.19118513275984234,y:.3853729277730792},{x:.19401794340549564,y:.3841016077762714},{x:.19529931691896882,y:.38380766849946},{x:.19652804956989395,y:.38334019181337325},{x:.19958975927605035,y:.38282346716364263},{x:.20261616048703973,y:.3821292291651624},{x:.28149235433605535,y:.37203226198800626},{x:.3678476199052635,y:.34785057975990136},{x:.4387239808422848,y:.31155986033736477},{x:.4773813812672204,y:.26922136053481893},{x:.48460036747312013,y:.2304069273293995},{x:.4680118822440525,y:.1820955353962423},{x:.4262197745588727,y:.1363254129914362},{x:.35583608100487274,y:.09578139608686695},{x:.3056218275014876,y:.083895601213743},{x:.2134048551529998,y:.08581745449589688},{x:.13726972612583144,y:.09751265420048184},{x:.0839251628848058,y:.11344659691108305},{x:.0752658675153883,y:.11513070441124498},{x:.06644440500388343,y:.11509310753596806},{x:.05779977920747511,y:.11333525111208462},{x:.0496641982475573,y:.10992468857614723},{x:.04235030793793329,y:.10499248593374648},{x:.036139176981525016,y:.09872818496641873},{x:.03126949565774486,y:.09137251924727793},{x:.027928403088916927,y:.08320816288480577},{x:.02624429558875499,y:.07454886751538828}]],4:[[{x:.003828000000000005,y:.27580099999999996},{x:.0040512821902059844,y:.2735339778783202},{x:.004058111165048277,y:.2712559968420181},{x:.004482570943879651,y:.26915502967601196},{x:.004692662381854638,y:.26702193550927417},{x:.005353928343121064,y:.26484203377636983},{x:.005805038155045426,y:.26260915577382815},{x:.0066312204192078995,y:.26063136609773396},{x:.0072534210369921,y:.25858024554357095},{x:.008327258689269697,y:.2565712366005347},{x:.009205313441189196,y:.2544692698811785},{x:.010401468469599332,y:.25269066304309135},{x:.011411867446385462,y:.25080033951411784},{x:.01285700981091242,y:.2490394284479652},{x:.014128266351129452,y:.24714915041402313},{x:.01564842657685691,y:.24563807727727646},{x:.017008194846605366,y:.24398119484660533},{x:.018769105912757822,y:.24253605248207852},{x:.020384710565360974,y:.24093010545831445},{x:.022170457083446928,y:.23974463571613375},{x:.023827339514117918,y:.23838486744638543},{x:.025836348457154004,y:.2373110297941079},{x:.027734214441385185,y:.2360511294240198},{x:.029716922014597604,y:.23523682001377813},{x:.031607245543570965,y:.23422642103699207},{x:.03378714727647517,y:.23356515507572567},{x:.03589434066689576,y:.23269971862397582},{x:.03799781495511128,y:.23228786299963877},{x:.040048935509274235,y:.2316656623818546},{x:.04231595763095386,y:.23144238019164864},{x:.0445515001672978,y:.23100466589573537},{x:.046694905833262405,y:.23101109143797494},{x:.048828,y:.23080099999999998},{x:.36918100000000004,y:.23080099999999998},{x:.36918100000000004,y:.05103000000000002},{x:.37004566238185466,y:.04225093550927423},{x:.3726064210369921,y:.03380924554357098},{x:.3767648674463855,y:.026029339514117924},{x:.38236119484660536,y:.019210194846605383},{x:.38918033951411796,y:.013613867446385479},{x:.396960245543571,y:.009455421036992116},{x:.4054019355092743,y:.006894662381854655},{x:.414181,y:.0060300000000000215},{x:.4229600644907258,y:.006894662381854655},{x:.4314017544564291,y:.009455421036992116},{x:.43918166048588214,y:.013613867446385486},{x:.4460008051533947,y:.019210194846605383},{x:.45159713255361456,y:.026029339514117924},{x:.45575557896300795,y:.03380924554357098},{x:.4583163376181454,y:.04225093550927425},{x:.459181,y:.05103000000000002},{x:.459181,y:.23080099999999998},{x:.553224,y:.23080099999999998},{x:.5620030644907258,y:.2316656623818546},{x:.5704447544564291,y:.23422642103699207},{x:.5782246604858822,y:.23838486744638543},{x:.5850438051533947,y:.24398119484660533},{x:.5906401325536146,y:.25080033951411784},{x:.5947985789630079,y:.25858024554357095},{x:.5973593376181454,y:.26702193550927417},{x:.5982240000000001,y:.27580099999999996},{x:.5973593376181454,y:.28458006449072576},{x:.5947985789630079,y:.293021754456429},{x:.5906401325536146,y:.3008016604858821},{x:.5850438051533947,y:.3076208051533946},{x:.5782246604858822,y:.3132171325536145},{x:.5704447544564291,y:.3173755789630079},{x:.5620030644907258,y:.31993633761814533},{x:.553224,y:.32080099999999995},{x:.459181,y:.32080099999999995},{x:.459181,y:.421833},{x:.4583163376181454,y:.4306120644907258},{x:.45575557896300795,y:.439053754456429},{x:.45159713255361456,y:.4468336604858821},{x:.4460008051533947,y:.4536528051533947},{x:.43918166048588214,y:.45924913255361455},{x:.4314017544564291,y:.4634075789630079},{x:.4229600644907258,y:.4659683376181454},{x:.414181,y:.466833},{x:.4054019355092743,y:.4659683376181454},{x:.396960245543571,y:.4634075789630079},{x:.38918033951411796,y:.45924913255361455},{x:.38236119484660536,y:.4536528051533947},{x:.3767648674463855,y:.4468336604858821},{x:.3726064210369921,y:.439053754456429},{x:.37004566238185466,y:.4306120644907258},{x:.36918100000000004,y:.421833},{x:.36918100000000004,y:.32080099999999995},{x:.1436046917940101,y:.32080099999999995},{x:.4533648945416855,y:.700560710565361},{x:.45824387057598015,y:.7079102144413851},{x:.4615952813760241,y:.7160703406668958},{x:.46329033410426457,y:.7247275001672978},{x:.46326388883495173,y:.7335490031579818},{x:.46151696184495455,y:.7421958442261718},{x:.45811668655881077,y:.7503357301188214},{x:.4531937336488705,y:.7576558495859769},{x:.446937289434639,y:.7638748945416856},{x:.4395877855586148,y:.7687538705759801},{x:.43142765933310423,y:.7721052813760241},{x:.42277049983270215,y:.7738003341042645},{x:.41394899684201814,y:.7737738888349517},{x:.40530215577382817,y:.7720269618449546},{x:.39716226988117853,y:.7686266865588108},{x:.38984215041402315,y:.7637037336488706},{x:.38362310545831446,y:.757447289434639},{x:.013957105458314502,y:.304244289434639},{x:.012771635716133971,y:.30245854291655333},{x:.011411867446385462,y:.3008016604858821},{x:.010338029794107799,y:.29879265154284573},{x:.009078129424019837,y:.29689478555861476},{x:.008263820013778204,y:.2949120779854024},{x:.0072534210369921,y:.293021754456429},{x:.006592155075725704,y:.29084185272352475},{x:.005726718623975863,y:.2887346593331042},{x:.0053148629996388475,y:.28663118504488877},{x:.004692662381854638,y:.28458006449072576},{x:.00446938019164866,y:.282313042369046},{x:.00403166589573542,y:.2800774998327022},{x:.00403809143797499,y:.27793409416673776},{x:.003828000000000005,y:.27580099999999996}]],5:[[{x:.029951000000000005,y:.38529899999999995},{x:.030026331329377584,y:.3845341481773043},{x:.029977079633894697,y:.38376717530271315},{x:.030458063889865227,y:.38015069392879464},{x:.03081566238185464,y:.37651993550927415},{x:.03103876142924568,y:.3757844765131909},{x:.03114008507636279,y:.3750226322781917},{x:.0323173678705276,y:.3715694759531816},{x:.0333764210369921,y:.36807824554357094},{x:.033738714231120716,y:.3674004426508694},{x:.033986719409902104,y:.366673004302166},{x:.03581505842470893,y:.3635158758870829},{x:.03753486744638546,y:.3602983395141178},{x:.03802243206297786,y:.35970424030984804},{x:.03840758807348568,y:.3590391628952293},{x:.04081672126593952,y:.35629938906452685},{x:.04313119484660537,y:.3534791948466053},{x:.04372529405087513,y:.3529916302300129},{x:.04423279956362368,y:.3524144723015426},{x:.04713014529619686,y:.3501973410270508},{x:.04995033951411792,y:.3478828674463854},{x:.05062814240681941,y:.3475205742522568},{x:.05123849426956635,y:.347053515665452},{x:.054512709170605814,y:.34544423005866864},{x:.057730245543570965,y:.343724421036992},{x:.05846570453965444,y:.3435013219896009},{x:.05915544727260316,y:.34316231154402344},{x:.06268070509966306,y:.34222271554831923},{x:.06617193550927424,y:.3411636623818546},{x:.0669367873319697,y:.34108833105247705},{x:.06767941450870582,y:.34089039672943083},{x:.07132024158048059,y:.34065659849198926},{x:.074951,y:.34029899999999996},{x:.0757158518226955,y:.3403743313293775},{x:.07648282469728679,y:.34032507963389463},{x:.08009930607120508,y:.3408060638898651},{x:.08373006449072577,y:.3411636623818546},{x:.0844655234868091,y:.3413867614292456},{x:.08522736772180821,y:.34148808507636275},{x:.2701097088502776,y:.3848544225750548},{x:.39095673206080095,y:.3699215697302287},{x:.4312208460684155,y:.34735587040502247},{x:.4569274445394237,y:.3179203076157562},{x:.4808881134259603,y:.2201177906149206},{x:.47151862074291284,y:.1781066999956386},{x:.4461217481742335,y:.14395206669668215},{x:.3876788357927069,y:.10680533743499816},{x:.3169820044514503,y:.08634947983662909},{x:.2505487358362677,y:.08307118781270932},{x:.19638270317906092,y:.09339965838335124},{x:.15518503458472022,y:.11245499400015477},{x:.1051531598037562,y:.15775209985578706},{x:.09806479623887651,y:.16300326318775482},{x:.09008818244690309,y:.16677065575830224},{x:.0815298552225249,y:.16890949878372125},{x:.07271870628140957,y:.16933759772602197},{x:.06399334313601493,y:.16803850098293246},{x:.05568907659877849,y:.16506213211374782},{x:.04812503497563989,y:.16052287130494386},{x:.041591900144212934,y:.15459515980375618},{x:.03634073681224515,y:.1475067962388765},{x:.03257334424169774,y:.13953018244690307},{x:.03043450121627874,y:.13097185522252489},{x:.03000640227397801,y:.12216070628140954},{x:.031305499017067515,y:.1134353431360149},{x:.034281867886252176,y:.10513107659877846},{x:.03882112869505611,y:.09756703497563987},{x:.044748840196243804,y:.09103390014421289},{x:.09986584019624378,y:.041132900144212926},{x:.10178680031290575,y:.03970982481314967},{x:.10357183338498165,y:.03811957700249835},{x:.10532248536915285,y:.037090537646117014},{x:.10695420376112348,y:.035881736812245144},{x:.10911588139237749,y:.0348607662023731},{x:.11117685751196796,y:.03364931723433351},{x:.16362485751196798,y:.009390317234333478},{x:.1646572774363771,y:.009030847933342759},{x:.16562545909873666,y:.008523173483185618},{x:.16881529925253239,y:.0075831025339957205},{x:.1719558576504946,y:.006489618860012841},{x:.17303856889723523,y:.006338471796353147},{x:.17408718959239433,y:.0060294350406820685},{x:.23897018959239436,y:-.00634256495931787},{x:.2399001168767359,y:-.006426714843400178},{x:.24080591100583193,y:-.006653392925378379},{x:.24428588214420577,y:-.0068235863462415185},{x:.247755834543085,y:-.007137585190079683},{x:.24868431036339586,y:-.007038698344381461},{x:.24961692261229596,y:-.007084309202250054},{x:.32666292261229596,y:-.003282309202250082},{x:.32746661284147915,y:-.0031629125067284265},{x:.32827905619988357,y:-.00317336931171093},{x:.3318231917274382,y:-.002515696572186591},{x:.33538870069659477,y:-.001986002452099067},{x:.33615365510360457,y:-.0017121077449900682},{x:.3369525276121403,y:-.0015638637889859724},{x:.4188855276121403,y:.02214313621101406},{x:.4207304127428032,y:.02287964098341223},{x:.42264402370761556,y:.023412682727046455},{x:.4248170355152836,y:.024511079778651145},{x:.4270783417525648,y:.02541382586724525},{x:.42874409297954025,y:.02649609814118395},{x:.43051694316083267,y:.027392224616519634},{x:.5014129431608326,y:.07245422461651957},{x:.5044011686844615,y:.0747943741105689},{x:.5074525565132345,y:.07705154573740032},{x:.5078697672823866,y:.07751071502587484},{x:.5083582165656543,y:.07789323111579813},{x:.5108324836553944,y:.0807713891731658},{x:.5133848875831327,y:.08358048611421783},{x:.5494628875831328,y:.1320994861142178},{x:.5497798823390716,y:.1326268676033582},{x:.5501811109693575,y:.13309337858567127},{x:.5520495631508493,y:.13640291633591076},{x:.5540074974944301,y:.13966031511116345},{x:.5542155142604781,y:.14023940572188273},{x:.5545180216173755,y:.1407752286491667},{x:.5557049132287019,y:.14438569149730107},{x:.5569897394368822,y:.14796247431004633},{x:.5570807842453774,y:.1485710199149322},{x:.5572729451408087,y:.14915556341258465},{x:.5710219451408087,y:.2108035634125847},{x:.5712046210163666,y:.21230267395853206},{x:.5715791512667351,y:.2137656948046034},{x:.571736996194895,y:.21667155541097086},{x:.5720890113736304,y:.2195603313107129},{x:.5719757152243157,y:.2210662751632623},{x:.5720576277729665,y:.2225742517011615},{x:.5716455344736617,y:.2254550710286549},{x:.5714272135589309,y:.2283570146640783},{x:.5710222992922247,y:.22981191924551903},{x:.5708084462858501,y:.23130690078257787},{x:.5417354462858501,y:.3499769007825779},{x:.5411002871662289,y:.3517814599872898},{x:.540669734049328,y:.3536454570484658},{x:.5396393400617131,y:.355932176655931},{x:.5388066121493867,y:.3582980512419798},{x:.5378316053978042,y:.3599440229503987},{x:.537045677451414,y:.361688207084494},{x:.5355889653307644,y:.36372996812105773},{x:.5343106788169316,y:.36588792593376723},{x:.5330332933960605,y:.36731205637621067},{x:.5319221933904076,y:.36886939956510134},{x:.49389619339040763,y:.4124113995651013},{x:.49150876583293945,y:.41465677330496736},{x:.4892379705562563,y:.41702003426923534},{x:.48830169237996507,y:.41767302336482964},{x:.48747017448549057,y:.4184550652905171},{x:.4846905699931398,y:.420191530792605},{x:.4820023580684325,y:.4220663721783498},{x:.4272473580684325,y:.4527533721783498},{x:.42330567688981036,y:.45447898255061825},{x:.4193723578126433,y:.45622356923745777},{x:.4192660752068488,y:.4562474610875831},{x:.4191662841579818,y:.4562911481493166},{x:.41496369139475175,y:.45721461755172516},{x:.4107655979622113,y:.4581583300092093},{x:.27317359796221125,y:.47516033000920926},{x:.26964530070808584,y:.4752477446385603},{x:.2661231753027132,y:.4754739203661053},{x:.26524270860794985,y:.4753568201865933},{x:.26435476148695686,y:.47537881934450843},{x:.2608772057270339,y:.4747762176787918},{x:.2573786322781918,y:.4743109149236372},{x:.119951,y:.44207564006371447},{x:.119951,y:.684004},{x:.527101,y:.684004},{x:.5358800644907258,y:.6848686623818546},{x:.544321754456429,y:.6874294210369921},{x:.5521016604858822,y:.6915878674463855},{x:.5589208051533947,y:.6971841948466053},{x:.5645171325536146,y:.7040033395141179},{x:.5686755789630079,y:.711783245543571},{x:.5712363376181454,y:.7202249355092742},{x:.5721010000000001,y:.729004},{x:.5712363376181454,y:.7377830644907257},{x:.5686755789630079,y:.746224754456429},{x:.5645171325536146,y:.7540046604858821},{x:.5589208051533947,y:.7608238051533946},{x:.5521016604858822,y:.7664201325536145},{x:.544321754456429,y:.7705785789630079},{x:.5358800644907258,y:.7731393376181454},{x:.527101,y:.774004},{x:.074951,y:.774004},{x:.06617193550927424,y:.7731393376181454},{x:.05773024554357094,y:.7705785789630079},{x:.04995033951411792,y:.7664201325536145},{x:.04313119484660537,y:.7608238051533946},{x:.03753486744638546,y:.7540046604858821},{x:.0333764210369921,y:.746224754456429},{x:.03081566238185464,y:.7377830644907257},{x:.029951000000000005,y:.729004},{x:.029951000000000005,y:.38529899999999995}]],6:[[{x:.01994450211145162,y:.2755194646798348},{x:.020758274672659796,y:.26806396163938684},{x:.0201773643330274,y:.24423363638780976},{x:.020440223451033163,y:.2406784570189078},{x:.020568639264984916,y:.237115887070161},{x:.02076496657089406,y:.23628629421823594},{x:.02082782677693791,y:.23543610758842642},{x:.021779216218601925,y:.23200052126419074},{x:.022600187477202785,y:.22853145778054884},{x:.04459918747720279,y:.16442145778054884},{x:.04602253566469808,y:.16130748249724527},{x:.047307319174730654,y:.15813382633120915},{x:.06831231917473066,y:.11806482633120913},{x:.06934150993632018,y:.11649740482650416},{x:.07018719324152095,y:.11482382676006757},{x:.07175673818837072,y:.11281909673987861},{x:.07315419088510985,y:.11069082519836773},{x:.0744693948008918,y:.10935430641546007},{x:.07562532742241568,y:.1078778703106287},{x:.1253733274224157,y:.055788870310628645},{x:.12585541612958862,y:.055374327647901005},{x:.12626130847256478,y:.0548849335871293},{x:.1291958120945167,y:.0525019586891126},{x:.1320620582603259,y:.05003730581521479},{x:.13261575702973094,y:.04972477931463493},{x:.1331093263100589,y:.049323974491408525},{x:.1861743263100589,y:.014262974491408516},{x:.18683955107784095,y:.013911818906951787},{x:.187438960697758,y:.013457349607970202},{x:.1907349034619545,y:.011855559414887177},{x:.19397565070571454,y:.010144849670490022},{x:.19469660042216425,y:.009930220356283175},{x:.19537315511619574,y:.009601422573216056},{x:.19891826102894206,y:.008673416864759805},{x:.2024304811380398,y:.007627816351770726},{x:.20317945010986724,y:.007557961391993223},{x:.20390715026053782,y:.0073674706392518954},{x:.2857161502605378,y:-.005654529360748083},{x:.2860775594607644,y:-.005676122674759226},{x:.28642923596273784,y:-.0057621838110407525},{x:.2904772893795591,y:-.005938995755027237},{x:.2945219894833068,y:-.006180656673914681},{x:.2948806669536751,y:-.006131327641200151},{x:.2952423757850646,y:-.006147126454864343},{x:.38700037578506463,y:-.001139126454864331},{x:.39074801870473747,y:-.000562375362895672},{x:.3945101708776463,y:-8942684208443352e-20},{x:.395102371884912,y:.00010774663253235539},{x:.3957192721812796,y:.00020268575218489876},{x:.39928238663684656,y:.0014994835976446027},{x:.4028799824314506,y:.002697304024131271},{x:.47474098243145063,y:.03475230402413133},{x:.4764407459001163,y:.03572046389197228},{x:.4782361407270164,y:.03649705052245801},{x:.48026428101539703,y:.03789829234877595},{x:.4824063061811086,y:.03911835786940705},{x:.4838845305509628,y:.04039952221931584},{x:.48549392283388365,y:.041511451110380196},{x:.5363469228338836,y:.08458545111038014},{x:.5369424578291695,y:.08519979361043255},{x:.5376274627831791,y:.08571247952886965},{x:.5400078699953618,y:.08836201411598918},{x:.5424869876672573,y:.09091942444541115},{x:.5429512273484354,y:.09163814564059086},{x:.5435230500634102,y:.09227461827992436},{x:.5453408198626901,y:.09533763721244376},{x:.5472733759789791,y:.0983295594844189},{x:.5475884798754501,y:.09912503932225875},{x:.5480251455251356,y:.09986083939589693},{x:.5756631455251356,y:.15896283939589692},{x:.5756676990332947,y:.1589757429605767},{x:.575674675284325,y:.15898751446598428},{x:.5771354507402345,y:.1631350040011944},{x:.5785987361645655,y:.16728160865370237},{x:.5786006848177536,y:.16729515262537814},{x:.5786052305152959,y:.16730805894366996},{x:.5792288025114348,y:.17166083878445604},{x:.5798550088797246,y:.1760132404159827},{x:.5798542777922926,y:.17602690430741857},{x:.5798562182477396,y:.17604044945602063},{x:.5820672182477395,y:.2261264494560206},{x:.5819074721227447,y:.22907858468741052},{x:.5819395990078049,y:.232034864293962},{x:.5816696541741431,y:.23347350033714379},{x:.5815905637246603,y:.23493510513282764},{x:.580857954063737,y:.2377993509905685},{x:.5803127220992973,y:.2407050941577823},{x:.5648357220992973,y:.2937960941577823},{x:.5632290277642941,y:.2977974374258546},{x:.5616400226499054,y:.30180583827676916},{x:.5384240226499054,y:.3468838382767692},{x:.5373215489467563,y:.3485896803397862},{x:.5364060617863755,y:.35040275195151915},{x:.5349331318310961,y:.3522852445680167},{x:.5336357086983223,y:.35429272914301846},{x:.5322216254408594,y:.35575071197935654},{x:.5309700163849885,y:.3573503432435408},{x:.49559401638498846,y:.39441334324354077},{x:.4926979475395651,y:.39690515537305066},{x:.48986855873600776,y:.3994724304741097},{x:.48935820160472765,y:.3997787125549045},{x:.48890701524930746,y:.4001669186691625},{x:.48558046512393155,y:.4020458563236817},{x:.4823045917066957,y:.404011815580751},{x:.4336605917066957,y:.42705181558075106},{x:.43309173356321873,y:.4272557130907893},{x:.4325654489917744,y:.42755269513041455},{x:.42894434743018467,y:.4287422729922158},{x:.4253563740806812,y:.43002832091195864},{x:.42475866795602985,y:.4301173218701226},{x:.42418455747331046,y:.430305924456616},{x:.35674655747331047,y:.44533192445661596},{x:.3529000911149492,y:.4457998510145922},{x:.3490659246900917,y:.4463596961147396},{x:.28494592469009167,y:.4493636961147396},{x:.2805873413475358,y:.449139645094856},{x:.27622830276644406,y:.44892463285807194},{x:.20879130276644411,y:.4389076328580719},{x:.2058686377582091,y:.4381749274884603},{x:.2029059705898912,y:.4376259000221244},{x:.2015992206546876,y:.4371045944779896},{x:.20023455588710068,y:.4367624761715421},{x:.19751099279397463,y:.4354736658725529},{x:.19471236238975773,y:.4343572001231398},{x:.1250653623897577,y:.39829620012313977},{x:.12281565387932818,y:.3968352958512946},{x:.12046004217050754,y:.3955521266688945},{x:.11912493361112,y:.39443863469229795},{x:.1176668837895426,y:.39349181371392206},{x:.11574541108214431,y:.3916200839502759},{x:.11440461043594556,y:.3905018447245139},{x:.11499744675527566,y:.4076710597897629},{x:.14015918883207887,y:.48309781218266834},{x:.17625691985197756,y:.5624688107059582},{x:.22079283681825793,y:.6049160879451294},{x:.2812243215554422,y:.6473094683632384},{x:.35529887985725983,y:.6721340784004237},{x:.44197867319461825,y:.699237682451455},{x:.450099621980826,y:.7026829408131323},{x:.45739239245003865,y:.7076463180152294},{x:.4635767275229571,y:.7139370742553635},{x:.4684149666709443,y:.7213134592991232},{x:.47172117907685873,y:.729492002806001},{x:.4733683088520865,y:.7381584079356077},{x:.4732930577230865,y:.7469796295989887},{x:.471498317548545,y:.7556166731946181},{x:.4680530591868676,y:.7637376219808258},{x:.4630896819847706,y:.7710303924500386},{x:.4567989257446365,y:.7772147275229571},{x:.4494225407008768,y:.7820529666709441},{x:.4412439971939989,y:.7853591790768587},{x:.43257759206439217,y:.7870063088520864},{x:.4237563704010112,y:.7869310577230865},{x:.41511932680538177,y:.7851363175485448},{x:.32800332680538175,y:.7578963175485449},{x:.32758097645219697,y:.7577171382279785},{x:.32713377373466446,y:.7576146941984534},{x:.2464307737346645,y:.7305686941984535},{x:.24453959681011464,y:.7297206474805041},{x:.2425703892464572,y:.7290741531131611},{x:.24052462272791658,y:.727920241844807},{x:.2383814751569417,y:.7269592057619036},{x:.2366920823739949,y:.725758503708645},{x:.23488683737580707,y:.7247402582115807},{x:.16634483737580705,y:.6766572582115807},{x:.16379281785599412,y:.6744641039532857},{x:.16114120086592887,y:.6723924725748345},{x:.10785520086592887,y:.6216054725748346},{x:.10512406158167997,y:.61843588774195},{x:.10236095541706475,y:.6152941312068447},{x:.10224621895073822,y:.6150960484276141},{x:.1020967920615373,y:.6149226331776604},{x:.10003648617852028,y:.6112811321861437},{x:.09793939861820375,y:.6076606883504815},{x:.057256398618203745,y:.5182076883504814},{x:.05649445644348035,y:.515973451082899},{x:.055531562043165734,y:.5138181769891187},{x:.02756156204316574,y:.4299731769891187},{x:.02710606704062858,y:.4279720709807987},{x:.026442901166776424,y:.42602987841114226},{x:.0261294707087366,y:.42368163359604843},{x:.025603668479436986,y:.4213716499642221},{x:.02554732210120287,y:.4193201319800137},{x:.025275801747494525,y:.4172858808521062},{x:.022290801747494524,y:.3308368808521062},{x:.022305383523873214,y:.330608131273329},{x:.022277364333027405,y:.33038063638780973},{x:.021194122115214913,y:.2859434614650037},{x:.02071653916751727,y:.2843071590959475},{x:.01994450211145162,y:.2755194646798348}],[{x:.11034731747482908,y:.25010871966048204},{x:.11054573733688708,y:.2582483748303443},{x:.14138614929871246,y:.28974619429248377},{x:.17280436841728808,y:.32166563054627706},{x:.2294333737827033,y:.3509863272379111},{x:.2851142784460479,y:.35925709287120927},{x:.3409693478959939,y:.3566403020317264},{x:.39969116147327427,y:.34355637352239615},{x:.43624565447916347,y:.3262425111990739},{x:.46138408324665353,y:.29990528863548604},{x:.47964461062187336,y:.2644492215688011},{x:.49182659739178797,y:.22266115801633354},{x:.4903391577658353,y:.18896604218391924},{x:.47066764412974615,y:.14689983627465894},{x:.4322187986209955,y:.11433252320671945},{x:.3738017517723872,y:.08827446060346957},{x:.29512698962943984,y:.08398052210424463},{x:.22766698305582697,y:.09471851188045},{x:.18695506157646963,y:.1216176107024183},{x:.1450838647757246,y:.1654591474507099},{x:.12861258258928074,y:.1968796571354811},{x:.11034731747482908,y:.25010871966048204}]],7:[[{x:.026534000000000002,y:.729004},{x:.027398662381854635,y:.7202249355092742},{x:.029959421036992097,y:.711783245543571},{x:.03411786744638546,y:.7040033395141179},{x:.039714194846605363,y:.6971841948466053},{x:.046533339514117915,y:.6915878674463855},{x:.05431324554357096,y:.6874294210369921},{x:.06275493550927423,y:.6848686623818546},{x:.071534,y:.684004},{x:.4019606654607806,y:.684004},{x:.4004737160341744,y:.6825246433416329},{x:.3773547160341744,y:.6545006433416328},{x:.37631768094411194,y:.6529571778549935},{x:.37511206403824765,y:.6515414747212956},{x:.3516100640382476,y:.6177174747212957},{x:.35070717908442606,y:.6160998190359583},{x:.34962595461558005,y:.6145955036421288},{x:.32637595461558006,y:.5744575036421288},{x:.32562538351875275,y:.5728072168885044},{x:.3246890272988689,y:.5712547864166106},{x:.3023170272988689,y:.5242907864166106},{x:.3017220252289498,y:.5226423026482856},{x:.3009361907094137,y:.5210757809262708},{x:.2800741907094137,y:.4667717809262708},{x:.2796297795277362,y:.4651572895546526},{x:.27899211910181604,y:.46360891205912846},{x:.26027511910181605,y:.40145091205912853},{x:.2599700482242006,y:.399900691568321},{x:.2594722021762355,y:.3984012246220316},{x:.2435242021762355,y:.3278752246220315},{x:.24329560198997774,y:.32604433113097486},{x:.24285939794168837,y:.32425152465814894},{x:.22552039794168838,y:.201651524658149},{x:.22543629437721757,y:.19966542745190077},{x:.2251384028560513,y:.1976999971774209},{x:.21759140285605127,y:.0533799971774209},{x:.2179964236931644,y:.04456775725283754},{x:.22011284489303193,y:.03600385769296016},{x:.22385933357584556,y:.028017404355184638},{x:.22909191428257988,y:.020915312162427036},{x:.23560950187114016,y:.014970510534755857},{x:.24316162910560324,y:.010411454864839347},{x:.25145807197163045,y:.007413347105324521},{x:.2601800028225791,y:.006091402856051323},{x:.26899224274716244,y:.0064964236931644576},{x:.27755614230703984,y:.008612844893031955},{x:.2855425956448154,y:.0123593335758456},{x:.29264468783757297,y:.017591914282579925},{x:.29858948946524416,y:.02410950187114019},{x:.30314854513516065,y:.03166162910560326},{x:.30614665289467546,y:.03995807197163046},{x:.3074685971439487,y:.04868000282257914},{x:.3149118365119932,y:.19101580586964154},{x:.33171443080019297,y:.3098230069615897},{x:.3469078029209317,y:.3770118558572018},{x:.3646876244488305,y:.43605754408347375},{x:.3843219343355222,y:.48716585412502805},{x:.40516196826036527,y:.5309139031705462},{x:.42657620329737017,y:.5678827017045378},{x:.4479617026009278,y:.5986606409626235},{x:.4682073320853445,y:.6232016470905397},{x:.5069453480603512,y:.6602460238293135},{x:.5211069187127709,y:.670919967941474},{x:.553634852004927,y:.6903949675582732},{x:.5545334052571363,y:.6910607030437311},{x:.5555196604858821,y:.6915878674463855},{x:.5580709875097788,y:.6936816874233654},{x:.5607229359621996,y:.6956465083018619},{x:.5614743452153894,y:.6964747509099635},{x:.5623388051533946,y:.6971841948466053},{x:.5644326251303754,y:.699735521870503},{x:.5666502995990071,y:.7021799587443133},{x:.5672256886169725,y:.7031388795761127},{x:.5679351325536145,y:.7040033395141179},{x:.5694909811561905,y:.7069141275182039},{x:.5711891576548912,y:.709744242049125},{x:.5715664145603537,y:.7107969903148255},{x:.5720935789630078,y:.711783245543571},{x:.5730516658019124,y:.7149416345772374},{x:.5741650843601849,y:.7180486670509921},{x:.5743297113818354,y:.7191547862251302},{x:.5746543376181453,y:.7202249355092742},{x:.574977843953461,y:.7235095504532041},{x:.5754637165205229,y:.7267740993542682},{x:.5754093871342436,y:.7278910818973009},{x:.575519,y:.729004},{x:.5751954936646845,y:.7322886149439295},{x:.5750351484302645,y:.735585225488817},{x:.5747639504839017,y:.7366701463880269},{x:.5746543376181453,y:.7377830644907257},{x:.5736962507792408,y:.7409414535243923},{x:.5728958497207748,y:.7441434388186243},{x:.5724182051993175,y:.7451546051722857},{x:.5720935789630078,y:.746224754456429},{x:.570537730360432,y:.749135542460515},{x:.5691280324417267,y:.752119852004927},{x:.5684622969562688,y:.7530184052571364},{x:.5679351325536145,y:.7540046604858821},{x:.5658413125766343,y:.756555987509779},{x:.563876491698138,y:.7592079359621996},{x:.5630482490900365,y:.7599593452153895},{x:.5623388051533946,y:.7608238051533946},{x:.5597874781294971,y:.7629176251303754},{x:.5573430412556867,y:.7651352995990072},{x:.5563841204238874,y:.7657106886169726},{x:.5555196604858821,y:.7664201325536145},{x:.5526088724817957,y:.7679759811561907},{x:.5497787579508749,y:.7696741576548912},{x:.5487260096851745,y:.7700514145603538},{x:.547739754456429,y:.7705785789630079},{x:.5445813654227618,y:.7715366658019126},{x:.5414743329490078,y:.7726500843601849},{x:.5403682137748697,y:.7728147113818356},{x:.5392980644907257,y:.7731393376181454},{x:.5360134495467959,y:.773462843953461},{x:.5327489006457318,y:.7739487165205229},{x:.531631918102699,y:.7738943871342436},{x:.530519,y:.774004},{x:.071534,y:.774004},{x:.06275493550927423,y:.7731393376181454},{x:.054313245543570934,y:.7705785789630079},{x:.046533339514117915,y:.7664201325536145},{x:.039714194846605363,y:.7608238051533946},{x:.03411786744638546,y:.7540046604858821},{x:.029959421036992097,y:.746224754456429},{x:.027398662381854635,y:.7377830644907257},{x:.026534000000000002,y:.729004}]],8:[[{x:.018998734783549534,y:.19034712298183487},{x:.01918983868826437,y:.187136446932327},{x:.01920952916989005,y:.18392014879903562},{x:.019451409422642358,y:.18274188004279768},{x:.019522877627479743,y:.18154116541629586},{x:.0203366813486396,y:.1784294641291047},{x:.020983462121705806,y:.17527880768498513},{x:.021450563544301488,y:.17417036752890672},{x:.021754906310756543,y:.17300666705236456},{x:.02316013582774355,y:.17011352146289485},{x:.024409151469860245,y:.16714958466818597},{x:.06244715146986025,y:.097021584668186},{x:.06364531823888224,y:.0952519506947441},{x:.06465809579443724,y:.09337006609963419},{x:.0661122558858275,y:.09160840391706095},{x:.06739294989385258,y:.08971688123025286},{x:.06891333268610705,y:.08821500101819715},{x:.07027378747657535,y:.08656685940733966},{x:.07204368953204261,y:.0851227396301211},{x:.07366879313388441,y:.08351741302778071},{x:.0754529644913056,y:.08234100299139627},{x:.07710881500204132,y:.08098994152260804},{x:.14910981500204132,y:.03317594152260801},{x:.1504928100364302,y:.03244176283843531},{x:.15177178054792087,y:.031538475488709236},{x:.15438005907773164,y:.030378172358910993},{x:.15690151209615905,y:.029039630272177964},{x:.1584011644246711,y:.028589367572161194},{x:.15983178249634203,y:.027952951404511282},{x:.24949378249634205,y:-.0017990485954887184},{x:.251605077566582,y:-.002276091838878668},{x:.25365804064979064,y:-.002962007073194259},{x:.2558970148670134,y:-.0032458471890824472},{x:.2580984148155577,y:-.003743249464233246},{x:.2602622084630055,y:-.003799233220341744},{x:.26240953986016613,y:-.0040714555567724145},{x:.33848653986016614,y:-.006196455556772458},{x:.34211630259529946,y:-.0059410451417675775},{x:.3457527120689106,y:-.005810898556388326},{x:.34651004211407876,y:-.005631877045722989},{x:.3472863241290845,y:-.005577253499755554},{x:.35079651389094996,y:-.004618619143417753},{x:.3543376604369356,y:-.0037815449929937683},{x:.4535096604369356,y:.03022045500700621},{x:.45591274590665615,y:.03131812424947078},{x:.4583949217344816,y:.03222283453480715},{x:.45991547545056405,y:.03314647083206772},{x:.461533744189149,y:.033885655452327273},{x:.46367651039942226,y:.035431052006208004},{x:.4659344916938285,y:.03680262701864639},{x:.5338604916938285,y:.08780462701864639},{x:.5368034713408607,y:.09050382186837246},{x:.5397962541268131,y:.09314768896709699},{x:.5400513850489728,y:.09348269124727963},{x:.5403617177400871,y:.09376731720532937},{x:.5427215620660051,y:.09698879462990716},{x:.5451410464862535,y:.10016572352111452},{x:.5453259194365666,y:.1005440624001799},{x:.5455747614022292,y:.10088376225489704},{x:.547260782913003,y:.10450372268352329},{x:.5490139895381407,y:.10809162577156875},{x:.5802599895381407,y:.1920326257715688},{x:.5808621946470703,y:.19431314395649216},{x:.5816704362178704,y:.19652903198349428},{x:.5819856183913868,y:.19856748893015458},{x:.5825122482529622,y:.20056180773987195},{x:.5826579751325236,y:.20291599079595712},{x:.5830183882594349,y:.20524698126417715},{x:.5829298310737253,y:.20730775882392333},{x:.5830572695913885,y:.20936649774620245},{x:.5827409180393249,y:.21170387573884492},{x:.582639652248002,y:.21406038999182395},{x:.570412652248002,y:.30012638999182395},{x:.5703409363500996,y:.30042034316527866},{x:.5703238989157716,y:.30072243812390526},{x:.5692961437829783,y:.3047027979582916},{x:.5683217827960937,y:.30869656381164773},{x:.5681940974797931,y:.30897087767968473},{x:.5681184516122305,y:.3092638441298401},{x:.5663339148242972,y:.3129672173863048},{x:.5645991308441736,y:.31669415574996157},{x:.5644203829845738,y:.31693828858446854},{x:.5642890357120441,y:.31721086798977133},{x:.5618162960169492,y:.32049493611094637},{x:.5593877558190667,y:.3238118228336772},{x:.5591648145961691,y:.32401639274673566},{x:.5589828135206953,y:.3242581100335041},{x:.5032838135206953,y:.3848241100335041},{x:.5011622073766187,y:.38671918495638496},{x:.4991781602202921,y:.38875783119234486},{x:.4978799327840818,y:.3896509997457094},{x:.496704700181234,y:.39070074870143656},{x:.4942541493273608,y:.39214550546522026},{x:.4919105049301597,y:.39375791128677606},{x:.42072451102124153,y:.4330589294870645},{x:.4777200661568854,y:.4633968522602595},{x:.4805213378044988,y:.46526159042857346},{x:.48340658539474834,y:.46699355971902134},{x:.4841865730327025,y:.4677014480666941},{x:.48506339053858555,y:.46828512408085676},{x:.487447044167244,y:.4706605328159332},{x:.4899389620874836,y:.4729221066835925},{x:.4905658603159866,y:.4737685611946159},{x:.49131196047780046,y:.47451208064740324},{x:.493186393615322,y:.4773068743236967},{x:.4951892188573616,y:.48001114175313947},{x:.5250762188573616,y:.5299501417531395},{x:.5263287500632193,y:.5326029758232522},{x:.5277533683388757,y:.5351675080991},{x:.5282078804872482,y:.5365829335183069},{x:.5288425912810938,y:.5379272372855163},{x:.5295535131980511,y:.5407734546091212},{x:.5304504424054924,y:.5435666393545394},{x:.5306200854295579,y:.5450435386925929},{x:.5309803397786421,y:.5464858379730204},{x:.5311223320761199,y:.5494160600145488},{x:.5314571037289079,y:.5523305567062068},{x:.5328161037289079,y:.6362725567062067},{x:.5325682225912138,y:.6392892202473488},{x:.5325070847315841,y:.6423154334158161},{x:.5322077563487247,y:.6436760218476847},{x:.5320936668790056,y:.6450644677251389},{x:.5312620268462096,y:.647974807711247},{x:.530611678831884,y:.6509309456375182},{x:.530052664324664,y:.6522069946735811},{x:.5296698946987799,y:.6535465042014387},{x:.5282864552309536,y:.656238677898982},{x:.5270718895714029,y:.659011137860374},{x:.493108889571403,y:.7195761378603741},{x:.49086599866607616,y:.7227903647520136},{x:.4886941713149356,y:.7260530293196586},{x:.4883443495413535,y:.7264040725827037},{x:.48806074906628455,y:.7268104928286833},{x:.4852338901214668,y:.7295253929429124},{x:.4824672795427586,y:.7323016638284542},{x:.4820556943532359,y:.7325777150511769},{x:.48169825452511067,y:.7329209983380867},{x:.4783960621447291,y:.7350322395860499},{x:.4751409876314614,y:.737215426256307},{x:.4058559876314614,y:.774404426256307},{x:.40535390944732597,y:.7746134197603937},{x:.4048950878292554,y:.7749053846735706},{x:.40128606998249994,y:.7763066859700772},{x:.39771184087056327,y:.7777944834687843},{x:.3971786373679402,y:.7779015106266721},{x:.3966716723496766,y:.778098353858693},{x:.39285862044769176,y:.7787686450898307},{x:.3890628142527955,y:.7795305574683767},{x:.38851897614326597,y:.7795315052864096},{x:.3879833501061526,y:.7796256622622586},{x:.29017035010615255,y:.7870576622622585},{x:.28883979914978264,y:.7870279344512828},{x:.28751770557027906,y:.7871806372910648},{x:.2844390802539456,y:.7869296114679608},{x:.28135100845003463,y:.7868606162788429},{x:.2800518232654171,y:.7865718820648824},{x:.2787253424971381,y:.7864637231002555},{x:.20264834249713812,y:.7726567231002556},{x:.20090732012312768,y:.7721604024311715},{x:.19912055356042774,y:.7718689262507037},{x:.1966754417776232,y:.7709540028332816},{x:.19416478523538352,y:.7702382792713757},{x:.19255404347725652,y:.7694118386491953},{x:.19085847331495095,y:.7687773822377194},{x:.12157447331495094,y:.7347753822377193},{x:.11864840230662128,y:.7329636093328938},{x:.1156466869822177,y:.7312801255296781},{x:.11490452792065226,y:.7306454666247165},{x:.11407427694169714,y:.7301313894804525},{x:.11155788892673538,y:.7277835811487093},{x:.10894228211787771,y:.7255468394054793},{x:.1083381992447159,y:.7247795872431081},{x:.10762419278113186,y:.7241134140161837},{x:.10561419113974596,y:.7213197952150451},{x:.1034852091492498,y:.7186157522626143},{x:.05457920914924981,y:.6421127522626143},{x:.05400544809690788,y:.6409849569633866},{x:.05327967340990527,y:.639948436299892},{x:.05200937551205521,y:.6370614399018406},{x:.05057918033015655,y:.6342502218929852},{x:.050236465883645505,y:.633032161635733},{x:.04972685190376166,y:.6318739658087451},{x:.04904418748077848,y:.6287946194110116},{x:.04818991452487371,y:.6257584009293389},{x:.04809141700817653,y:.6244968850866522},{x:.047817547914863534,y:.6232615229122788},{x:.04774875137767971,y:.6201081640700103},{x:.04750322987838258,y:.6169636252890404},{x:.04765273449582791,y:.6157071332072875},{x:.04762513492475421,y:.6144420789610904},{x:.04817285008571219,y:.6113358894861711},{x:.048545515296550656,y:.608203873267779},{x:.04893727666953319,y:.607000691233013},{x:.04915700725673716,y:.6057545602402229},{x:.06817600725673716,y:.537751560240223},{x:.0695259178796919,y:.5342803033966695},{x:.07076883034011841,y:.5307693133112962},{x:.07112252784165454,y:.530174666206544},{x:.07137329591617819,y:.5295298232221028},{x:.07337447700044117,y:.5263886201035727},{x:.07527846743280868,y:.5231875729003385},{x:.0757413786311829,y:.522673354732434},{x:.07611313089295507,y:.5220898246495332},{x:.07868867817173447,y:.5193993899302627},{x:.08118057729149615,y:.5166313000580217},{x:.13823757729149616,y:.46456630005802163},{x:.1415344063491032,y:.46210392848613274},{x:.14479841194755694,y:.45959821041612353},{x:.17870395742216458,y:.4385038845164132},{x:.16590813892329467,y:.43401753680148847},{x:.1630836262780146,y:.43270367241359486},{x:.16018787852971583,y:.4315553012665589},{x:.15909238677042803,y:.43084708753997614},{x:.15790960896480868,y:.43029690071741367},{x:.15539569076452509,y:.4284572467838155},{x:.15277962009410193,y:.4267660089056696},{x:.07398562009410191,y:.3640750089056696},{x:.07334669706368892,y:.36345515994886657},{x:.07261876409580822,y:.3629427646304707},{x:.07018582297292754,y:.3603886489381779},{x:.067654053855944,y:.3579324619307791},{x:.06714833408498834,y:.3571998754981266},{x:.06653435151263618,y:.35655531303498644},{x:.06464644192410274,y:.3535756306924294},{x:.06264249835499126,y:.3506727149773525},{x:.06228941637067996,y:.3498555439546183},{x:.061812979199786275,y:.3491035845207174},{x:.026491979199786284,y:.27897658452071744},{x:.026206182636496978,y:.2782362375154344},{x:.02580526951533789,y:.27755135647970497},{x:.024619992088609113,y:.2741272608068926},{x:.023315086847465263,y:.27074694483548933},{x:.02317921632066564,y:.26996506724675395},{x:.022919620294515476,y:.2692151317381758},{x:.022425125568608657,y:.2656255929487299},{x:.02180476064715109,y:.2620556544171705},{x:.02182403758498896,y:.26126229336223583},{x:.021715734783549545,y:.26047612298183487},{x:.018998734783549534,y:.19034712298183487}],[{x:.10940940002433477,y:.19920410482166873},{x:.1112697837122767,y:.2472228194523932},{x:.137749803196691,y:.2997967648781603},{x:.20286290613296581,y:.3516028102138205},{x:.27392321813344717,y:.3765172983642545},{x:.30180455045059645,y:.38547932587505673},{x:.3589974388819276,y:.364332623176267},{x:.44199758150171664,y:.31850914110336725},{x:.48327372240847105,y:.27362627516037924},{x:.4919267227459848,y:.21271770175329152},{x:.46927072007314496,y:.15185335046477932},{x:.41758736799183827,y:.11304708595854013},{x:.33285528741119674,y:.08399594043457195},{x:.2715476841223936,y:.0857083982994813},{x:.19388634557978268,y:.1114782912788902},{x:.13622191473335832,y:.14977174687660325},{x:.10940940002433477,y:.19920410482166873}],[{x:.1412545940070051,y:.610603192179028},{x:.17253143522148345,y:.6595291354872365},{x:.22488466829434647,y:.6852221473073319},{x:.28911227954018853,y:.6968786351876549},{x:.37167628924266627,y:.6906052797020977},{x:.4210229734590171,y:.664118250196117},{x:.4426312796779887,y:.6255849325813003},{x:.4416638895166663,y:.5658316839266069},{x:.4243877259953326,y:.5369644730960824},{x:.3411654121752423,y:.49266641996418925},{x:.3038587353431559,y:.48067475972705925},{x:.2482367446999157,y:.5012406330709052},{x:.1958501022844071,y:.5338329684082593},{x:.1513751879049268,y:.5744167077770947},{x:.1412545940070051,y:.610603192179028}]],9:[[{x:.04617702144416433,y:.5785043710151274},{x:.046308257010348054,y:.5777836867379841},{x:.04632014162646953,y:.5770512474182771},{x:.047097404355444614,y:.5734500590446777},{x:.04775742235616295,y:.5698255492446179},{x:.06775742235616294,y:.499825549244618},{x:.06870401207934061,y:.497431122678351},{x:.06945142103699212,y:.4949672455435709},{x:.07032179921115676,y:.4933388825112154},{x:.07100061044171635,y:.4916218095236955},{x:.07239614115864691,y:.4894580616864063},{x:.07360986744638548,y:.48718733951411786},{x:.07478119941633177,y:.4857600673791044},{x:.07578195180149752,y:.48420841696912487},{x:.07757279404935197,y:.4823584994767568},{x:.07920619484660538,y:.4803681948466053},{x:.1292061948466054,y:.43036819484660543},{x:.1324047212320044,y:.4277432320802026},{x:.1355710052680468,y:.42507946670648067},{x:.13581237417673697,y:.4249466435819557},{x:.13602533951411794,y:.4247718674463855},{x:.13967451194327588,y:.422821344145996},{x:.14329963156393744,y:.42082647364918746},{x:.21329963156393744,y:.39082647364918743},{x:.21510775104315333,y:.39025382151681987},{x:.2168404136401385,y:.3894823898342746},{x:.21930272871556003,y:.3889252240779052},{x:.22170947225776405,y:.3881629808537447},{x:.22359456811709633,y:.38795407868297094},{x:.22544443694348562,y:.38753549554788497},{x:.30544443694348566,y:.37753549554788496},{x:.30933066171136914,y:.37743373006124875},{x:.3132134481214367,y:.3772411973248817},{x:.31373545479679327,y:.3773183852372503},{x:.314262956584918,y:.37730457196617717},{x:.3180943620951528,y:.37796292671622445},{x:.321940103126635,y:.37853158749346005},{x:.39912055139763536,y:.39782669956121014},{x:.3920145202755848,y:.3793136184800785},{x:.3919728818872528,y:.3791621799808353},{x:.39190347676812315,y:.3790212888743934},{x:.33928123709710245,y:.23902627390054626},{x:.29593066247424293,y:.13853176000209894},{x:.2601678276974797,y:.06104561798577861},{x:.25727396725620644,y:.05271224015242973},{x:.25606147289685455,y:.04397442167208486},{x:.2565769400976792,y:.035167952008718584},{x:.2588005597432301,y:.02663125885276897},{x:.2626468793775489,y:.018692402534786497},{x:.2679680870941297,y:.011656468850909336},{x:.274559691864592,y:.005793844786811796},{x:.2821683820142214,y:.0013298276974796769},{x:.29050175984757026,y:-.0015640327437935753},{x:.29923957832791515,y:-.002776527103145486},{x:.30804604799128144,y:-.002261059902320825},{x:.31658274114723106,y:-3744025676995222e-20},{x:.32452159746521353,y:.003808879377548882},{x:.3315575311490907,y:.009130087094129706},{x:.33742015521318824,y:.015721691864591977},{x:.34188417230252033,y:.023330382014221395},{x:.3778841723025203,y:.10133038201422136},{x:.3780704961344211,y:.10186693411204945},{x:.37834550457920557,y:.10236389998544072},{x:.42234550457920556,y:.2043638999854408},{x:.4226728981736059,y:.20538920106595157},{x:.42314852323187685,y:.20635471112560658},{x:.47609350933819694,y:.3472083534084579},{x:.5496013805841499,y:.5387157021808093},{x:.5512752235949963,y:.542063388202502},{x:.5520259437659378,y:.5440252139743784},{x:.5529745491659372,y:.5458993775022888},{x:.553598518494472,y:.5481347580495968},{x:.5544279630456541,y:.5503023109672317},{x:.5547815251174404,y:.5523728990468965},{x:.5553462721645,y:.554396114781092},{x:.555522150986547,y:.5567102734952235},{x:.5559127893965689,y:.5589979940959194},{x:.5558556061770612,y:.5610977729446709},{x:.5560147919588762,y:.5631922898391183},{x:.5557358213499382,y:.5654962948984841},{x:.5556726416037749,y:.5678162673625252},{x:.5552069106120301,y:.5698645436567753},{x:.5549544177082778,y:.5719498706018395},{x:.5349544177082779,y:.6619498706018395},{x:.5345092452033302,y:.663307558548854},{x:.5342480120020212,y:.6647122835522489},{x:.5331378863550271,y:.6674899313564284},{x:.5322058990004909,y:.6703323081518522},{x:.5315044085816177,y:.6715770596583215},{x:.5309741466497647,y:.6729038291953012},{x:.5293434595512297,y:.6754115305058349},{x:.5278748598680685,y:.6780174701150343},{x:.5269440094186665,y:.6791014500786302},{x:.5261650964249364,y:.6802992771399491},{x:.4861650964249363,y:.7302992771399491},{x:.4855393928217795,y:.7309407996522789},{x:.48502142797480674,y:.7316720783612058},{x:.48246447922773295,y:.7340934525762789},{x:.48000567043073006,y:.7366144244690945},{x:.4792668347133476,y:.7371215515888083},{x:.4786161570168623,y:.7377377290536072},{x:.47563595264764597,y:.7396137412876539},{x:.4727325719538572,y:.7416065836124539},{x:.4719089971645242,y:.7419598267287414},{x:.4711506117974981,y:.7424372235949962},{x:.4111506117974981,y:.7724372235949962},{x:.40814803697660645,y:.7735862009991664},{x:.4052110607504687,y:.7748937847545917},{x:.4040364518244048,y:.77515955677446},{x:.40291168903276836,y:.7755899630456542},{x:.39974265347336024,y:.7761310898824948},{x:.39660701348596056,y:.7768405731449995},{x:.3166070134859606,y:.7868395731449994},{x:.31542693671630134,y:.7868704603456931},{x:.31426350899694466,y:.7870703881908964},{x:.3110259999999998,y:.7869856499834279},{x:.3077884910030554,y:.7870703881908964},{x:.3066250632836987,y:.7868704603456931},{x:.30544498651403945,y:.7868395731449994},{x:.22544498651403946,y:.7768405731449995},{x:.22359484289355938,y:.7764219517671516},{x:.22170947225776405,y:.7762130191462554},{x:.21930299190993624,y:.775450859278766},{x:.2168409392495313,y:.7748937847545917},{x:.21510801459933976,y:.7741222619544408},{x:.21329963156393744,y:.7735495263508126},{x:.14329963156393744,y:.7435495263508126},{x:.1396745119432796,y:.741554655854006},{x:.13602533951411788,y:.7396041325536146},{x:.13581237417673678,y:.7394293564180442},{x:.1355710052680468,y:.7392965332935194},{x:.13240472123200803,y:.7366327679198006},{x:.12920619484660534,y:.7340078051533947},{x:.07920619484660535,y:.6840078051533947},{x:.07757279404935197,y:.6820175005232432},{x:.0757819518014975,y:.6801675830308751},{x:.07478119941633177,y:.6786159326208956},{x:.07360986744638545,y:.6771886604858821},{x:.07239614115864686,y:.6749179383135936},{x:.07100061044171635,y:.6727541904763045},{x:.07032179921115676,y:.6710371174887846},{x:.06945142103699209,y:.669408754456429},{x:.06870401207934061,y:.666944877321649},{x:.06775742235616294,y:.664550450755382},{x:.04775742235616295,y:.5945504507553819},{x:.0470974043554446,y:.590925940955322},{x:.04632014162646953,y:.5873247525817227},{x:.046308257010348054,y:.5865923132620157},{x:.04617702144416433,y:.5858716289848723},{x:.0462367922883029,y:.5821879999999999},{x:.04617702144416433,y:.5785043710151274}],[{x:.13782670643108905,y:.5821879999999999},{x:.15109114488080894,y:.6286135345740196},{x:.18671787059591238,y:.6642402602891231},{x:.24291204200407931,y:.688323476606909},{x:.311026,y:.696836869931924},{x:.377796042530131,y:.6884914492411893},{x:.4220611757635009,y:.6663588826245044},{x:.4493630453483168,y:.6322315456434845},{x:.46363172164975686,y:.5680225022870041},{x:.4540425513192988,y:.5488441616260881},{x:.42235697647551157,y:.5171585867823008},{x:.37255000597497323,y:.48395393978194207},{x:.30826669745594837,y:.4678831126521858},{x:.24291230161158606,y:.4760524121327311},{x:.1867178705959123,y:.500135739710877},{x:.15109114488080894,y:.5357624654259804},{x:.13782670643108905,y:.5821879999999999}]],"!":[[{x:.20646600000000004,y:.05103000000000002},{x:.20733066238185466,y:.04225093550927423},{x:.20989142103699213,y:.03380924554357098},{x:.2140498674463855,y:.026029339514117927},{x:.21964619484660539,y:.019210194846605383},{x:.22646533951411793,y:.013613867446385479},{x:.23424524554357098,y:.009455421036992116},{x:.24268693550927425,y:.006894662381854655},{x:.251466,y:.0060300000000000215},{x:.350587,y:.0060300000000000215},{x:.3593660644907258,y:.006894662381854655},{x:.36780775445642905,y:.009455421036992116},{x:.3755876604858821,y:.013613867446385479},{x:.38240680515339465,y:.019210194846605383},{x:.3880031325536145,y:.026029339514117927},{x:.3921615789630079,y:.03380924554357098},{x:.39472233761814535,y:.04225093550927425},{x:.39558699999999997,y:.05103000000000002},{x:.39472233761814535,y:.05980906449072579},{x:.3921615789630079,y:.06825075445642906},{x:.3880031325536145,y:.07603066048588211},{x:.38240680515339465,y:.08284980515339466},{x:.3755876604858821,y:.08844613255361455},{x:.36780775445642905,y:.09260457896300792},{x:.3593660644907258,y:.09516533761814538},{x:.350587,y:.09603000000000002},{x:.251466,y:.09603000000000002},{x:.24268693550927425,y:.09516533761814538},{x:.23424524554357098,y:.09260457896300792},{x:.22646533951411793,y:.08844613255361455},{x:.21964619484660539,y:.08284980515339466},{x:.2140498674463855,y:.07603066048588211},{x:.20989142103699213,y:.06825075445642906},{x:.20733066238185466,y:.05980906449072579},{x:.20646600000000004,y:.05103000000000002}],[{x:.25602600000000003,y:.25043400000000005},{x:.25689066238185465,y:.24165493550927428},{x:.2594514210369921,y:.233213245543571},{x:.2636098674463855,y:.22543333951411795},{x:.26920619484660535,y:.2186141948466054},{x:.27602533951411795,y:.2130178674463855},{x:.283805245543571,y:.20885942103699215},{x:.2922469355092743,y:.20629866238185468},{x:.301026,y:.20543400000000006},{x:.3098050644907258,y:.20629866238185468},{x:.3182467544564291,y:.20885942103699215},{x:.32602666048588214,y:.2130178674463855},{x:.3328458051533947,y:.2186141948466054},{x:.33844213255361455,y:.22543333951411795},{x:.34260057896300794,y:.233213245543571},{x:.3451613376181454,y:.24165493550927428},{x:.346026,y:.25043400000000005},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.25043400000000005}]],'"':[[{x:.12004,y:.476978},{x:.12090466238185463,y:.4681989355092742},{x:.1234654210369921,y:.459757245543571},{x:.12762386744638546,y:.4519773395141179},{x:.13322019484660536,y:.44515819484660535},{x:.1400393395141179,y:.4395618674463855},{x:.14781924554357095,y:.4354034210369921},{x:.15626093550927422,y:.43284266238185465},{x:.16504,y:.43197800000000003},{x:.17381906449072576,y:.43284266238185465},{x:.18226075445642903,y:.4354034210369921},{x:.19004066048588208,y:.4395618674463855},{x:.19685980515339463,y:.44515819484660535},{x:.20245613255361453,y:.4519773395141179},{x:.2066145789630079,y:.459757245543571},{x:.20917533761814536,y:.4681989355092742},{x:.21004,y:.476978},{x:.21004,y:.729004},{x:.20917533761814536,y:.7377830644907257},{x:.2066145789630079,y:.746224754456429},{x:.20245613255361453,y:.7540046604858821},{x:.19685980515339463,y:.7608238051533946},{x:.19004066048588208,y:.7664201325536145},{x:.18226075445642903,y:.7705785789630079},{x:.17381906449072576,y:.7731393376181454},{x:.16504,y:.774004},{x:.15626093550927422,y:.7731393376181454},{x:.14781924554357095,y:.7705785789630079},{x:.1400393395141179,y:.7664201325536145},{x:.13322019484660536,y:.7608238051533946},{x:.12762386744638546,y:.7540046604858821},{x:.1234654210369921,y:.746224754456429},{x:.12090466238185463,y:.7377830644907257},{x:.12004,y:.729004},{x:.12004,y:.476978}],[{x:.392013,y:.476978},{x:.3928776623818546,y:.4681989355092742},{x:.39543842103699206,y:.459757245543571},{x:.39959686744638545,y:.4519773395141179},{x:.4051931948466053,y:.44515819484660535},{x:.4120123395141179,y:.4395618674463855},{x:.419792245543571,y:.4354034210369921},{x:.42823393550927424,y:.43284266238185465},{x:.437013,y:.43197800000000003},{x:.4457920644907258,y:.43284266238185465},{x:.45423375445642905,y:.4354034210369921},{x:.4620136604858821,y:.4395618674463855},{x:.46883280515339465,y:.44515819484660535},{x:.4744291325536145,y:.4519773395141179},{x:.4785875789630079,y:.459757245543571},{x:.48114833761814535,y:.4681989355092742},{x:.48201299999999997,y:.476978},{x:.48201299999999997,y:.729004},{x:.48114833761814535,y:.7377830644907257},{x:.4785875789630079,y:.746224754456429},{x:.4744291325536145,y:.7540046604858821},{x:.46883280515339465,y:.7608238051533946},{x:.4620136604858821,y:.7664201325536145},{x:.45423375445642905,y:.7705785789630079},{x:.4457920644907258,y:.7731393376181454},{x:.437013,y:.774004},{x:.42823393550927424,y:.7731393376181454},{x:.419792245543571,y:.7705785789630079},{x:.4120123395141179,y:.7664201325536145},{x:.4051931948466053,y:.7608238051533946},{x:.39959686744638545,y:.7540046604858821},{x:.39543842103699206,y:.746224754456429},{x:.3928776623818546,y:.7377830644907257},{x:.392013,y:.729004},{x:.392013,y:.476978}]],"#":[[{x:-.04343582416242281,y:.17932596542766122},{x:-.043155600373289436,y:.1705088746946064},{x:-.04116063193533153,y:.16191587083690517},{x:-.037527584366828626,y:.15387717817379684},{x:-.03239607364840174,y:.1467017191561739},{x:-.025963300859175642,y:.14066524265003977},{x:-.01847647384989975,y:.13599972706223024},{x:-.010223307183879607,y:.1328844655403335},{x:-.0015209654276611437,y:.13143917583757725},{x:.007296125305393629,y:.13171939962671061},{x:.11028337660265361,y:.14517801654688708},{x:.10171449233133083,y:.05447855391336175},{x:.10174959121806887,y:.04565708110917159},{x:.10350499965956604,y:.03701195788446062},{x:.10691325829386003,y:.02887541147651351},{x:.11184338965300836,y:.02156012480075985},{x:.11810593155372849,y:.015347220221688843},{x:.1254602180228497,y:.01047545617803717},{x:.13362362795569505,y:.007132051829885598},{x:.14228244608663826,y:.005445492331330834},{x:.15110391889082841,y:.0054805912180688685},{x:.1597490421155394,y:.0072359996595660475},{x:.1678855885234865,y:.010644258293860037},{x:.17520087519924016,y:.015574389653008364},{x:.18141377977831116,y:.02183693155372849},{x:.18628554382196283,y:.029191218022849703},{x:.18962894817011441,y:.03735462795569504},{x:.19131550766866917,y:.04601344608663827},{x:.2018142041879224,y:.1571394809935999},{x:.36570083500909,y:.17855657247605955},{x:.35397849233133083,y:.05447855391336175},{x:.35401359121806886,y:.04565708110917159},{x:.35576899965956604,y:.03701195788446062},{x:.35917725829386,y:.02887541147651351},{x:.3641073896530084,y:.02156012480075985},{x:.3703699315537285,y:.015347220221688843},{x:.37772421802284967,y:.01047545617803717},{x:.38588762795569503,y:.007132051829885598},{x:.39454644608663825,y:.005445492331330834},{x:.4033679188908284,y:.0054805912180688685},{x:.4120130421155394,y:.0072359996595660475},{x:.4201495885234865,y:.010644258293860037},{x:.42746487519924015,y:.015574389653008364},{x:.4336777797783111,y:.02183693155372849},{x:.4385495438219628,y:.029191218022849703},{x:.44189294817011443,y:.03735462795569504},{x:.44357950766866916,y:.04601344608663827},{x:.45723166259435877,y:.19051803692277236},{x:.5748861253053936,y:.20589339962671058},{x:.5834791291630949,y:.20788836806466848},{x:.5915178218262032,y:.2115214156331714},{x:.5986932808438261,y:.21665292635159827},{x:.6047297573499603,y:.22308569914082438},{x:.6093952729377698,y:.23057252615010027},{x:.6125105344596665,y:.2388256928161204},{x:.6139558241624228,y:.24752803457233888},{x:.6136756003732894,y:.25634512530539366},{x:.6116806319353315,y:.2649381291630949},{x:.6080475843668286,y:.2729768218262032},{x:.6029160736484017,y:.2801522808438262},{x:.5964833008591757,y:.2861887573499603},{x:.5889964738498997,y:.29085427293776983},{x:.5807433071838796,y:.29396953445966656},{x:.5720409654276611,y:.2954148241624228},{x:.5632238746946063,y:.2951346003732895},{x:.4659139564059225,y:.28241791072205386},{x:.48521785958998953,y:.48674482074743597},{x:.6064180682130128,y:.5025833921657807},{x:.6150110746232834,y:.5045783496089273},{x:.6230497719348954,y:.5082113868918628},{x:.6302252375183169,y:.5133428884292346},{x:.6362617222552247,y:.5197756534947408},{x:.640927247422479,y:.5272624745344501},{x:.6440425195043586,y:.5355156372144642},{x:.645487820341822,y:.544217977121417},{x:.6452076078342193,y:.5530350682130128},{x:.6432126503910727,y:.5616280746232835},{x:.6395796131081373,y:.5696667719348955},{x:.6344481115707654,y:.576842237518317},{x:.6280153465052593,y:.5828787222552247},{x:.6205285254655499,y:.587544247422479},{x:.6122753627855358,y:.5906595195043587},{x:.603573022878583,y:.592104820341822},{x:.5947559317869872,y:.5918246078342193},{x:.493900150869001,y:.5786446677402959},{x:.5066445076686692,y:.7135404460866382},{x:.5066094087819312,y:.7223619188908285},{x:.5048540003404339,y:.7310070421155394},{x:.50144574170614,y:.7391435885234865},{x:.4965156103469916,y:.7464588751992401},{x:.4902530684462715,y:.7526717797783111},{x:.4828987819771503,y:.7575435438219629},{x:.47473537204430494,y:.7608869481701144},{x:.4660765539133617,y:.7625735076686692},{x:.45725508110917157,y:.7625384087819311},{x:.44860995788446056,y:.760783000340434},{x:.4404734114765135,y:.7573747417061399},{x:.43315812480075977,y:.7524446103469916},{x:.4269452202216888,y:.7461820684462716},{x:.42207345617803715,y:.7388277819771503},{x:.41873005182988554,y:.730664372044305},{x:.4170434923313308,y:.7220055539133617},{x:.40236933467780645,y:.5666833238969633},{x:.23848272425781383,y:.5452664483557571},{x:.25438050766866915,y:.7135404460866382},{x:.2543454087819311,y:.7223619188908285},{x:.25259000034043394,y:.7310070421155394},{x:.24918174170614,y:.7391435885234865},{x:.2442516103469916,y:.7464588751992401},{x:.23798906844627152,y:.7526717797783111},{x:.2306347819771503,y:.7575435438219629},{x:.22247137204430495,y:.7608869481701144},{x:.21381255391336174,y:.7625735076686692},{x:.20499108110917158,y:.7625384087819311},{x:.1963459578844606,y:.760783000340434},{x:.18820941147651346,y:.7573747417061399},{x:.1808941248007598,y:.7524446103469916},{x:.17468122022168883,y:.7461820684462716},{x:.16980945617803714,y:.7388277819771503},{x:.16646605182988555,y:.730664372044305},{x:.16477949233133082,y:.7220055539133617},{x:.14695190806661926,y:.5333051045124245},{x:.02716793178698713,y:.5176516078342193},{x:.01857492537671658,y:.5156566503910727},{x:.01053622806510461,y:.5120236131081373},{x:.0033607624816830023,y:.5068921115707654},{x:-.0026757222552247634,y:.5004593465052593},{x:-.0073412474224789775,y:.4929725254655499},{x:-.010456519504358698,y:.48471936278553585},{x:-.011901820341822023,y:.476017022878583},{x:-.011621607834219276,y:.4671999317869871},{x:-.00962665039107264,y:.45860692537671655},{x:-.005993613108137223,y:.45056822806510455},{x:-.0008621115707654614,y:.44339276248168297},{x:.005570653494740684,y:.4373562777447752},{x:.013057474534450029,y:.432690752577521},{x:.02131063721446411,y:.42957548049564126},{x:.03001297712141698,y:.42813017965817796},{x:.03883006821301287,y:.4284103921657807},{x:.13826961678760774,y:.4414052575195645},{x:.1189656704142173,y:.23707789034616855},{x:-.004366125305393629,y:.2209606003732895},{x:-.012959129163094893,y:.21896563193533158},{x:-.0209978218262032,y:.2153325843668287},{x:-.028173280843826164,y:.2102010736484018},{x:-.034209757349960276,y:.2037683008591757},{x:-.03887527293776982,y:.1962814738498998},{x:-.041990534459666565,y:.18802830718387967},{x:-.04343582416242281,y:.17932596542766122}],[{x:.2104964979994861,y:.24903935479288136},{x:.22980043297880234,y:.4533666013628972},{x:.39368704339879496,y:.4747834769041034},{x:.3743831288206537,y:.27045644627534104},{x:.2104964979994861,y:.24903935479288136}]],$:[[{x:.030517420733400163,y:.165091535964518},{x:.03086584266660257,y:.1562768767808978},{x:.032927224468652025,y:.14769956254897784},{x:.06950822446865203,y:.04228956254897785},{x:.0704003940010533,y:.04035550336969822},{x:.07109145007989037,y:.03834080913001754},{x:.07224350295250744,y:.03635998272422403},{x:.073203348392932,y:.034279214644477654},{x:.0744556913660193,y:.03255637151138059},{x:.07552651634405921,y:.03071520740954014},{x:.07704287290513265,y:.02899719639360223},{x:.07839021289928177,y:.02714366624511229},{x:.07995460247492134,y:.0256982470536212},{x:.08136404514878363,y:.02410136799351792},{x:.08318643266605391,y:.022712194567306505},{x:.08486948969354943,y:.02115713247420773},{x:.0866858072576693,y:.0200446838732511},{x:.08837970353582197,y:.01875345702162473},{x:.17373770353582196,y:-.03394954297837521},{x:.17475219432147746,y:-.03444582628601368},{x:.17568351020275566,y:-.03508468417701866},{x:.17870701554383397,y:-.03638050305696308},{x:.18166188368778688,y:-.037826008286632525},{x:.18275370138776084,y:-.03811483831561822},{x:.18379175728720304,y:-.038559730016208084},{x:.18700996854351615,y:-.03924079346911771},{x:.19019006380536974,y:-.04008205754340442},{x:.19131725047775072,y:-.0401523347177012},{x:.19242215448928965,y:-.04038616328932037},{x:.262121,y:-.048110644533924524},{x:.262121,y:-.08350199999999997},{x:.2629856623818546,y:-.09228106449072573},{x:.26554642103699205,y:-.100722754456429},{x:.26970486744638544,y:-.10850266048588206},{x:.2753011948466053,y:-.1153218051533946},{x:.2821203395141179,y:-.1209181325536145},{x:.28990024554357097,y:-.12507657896300786},{x:.29834193550927424,y:-.12763733761814533},{x:.307121,y:-.12850199999999995},{x:.3159000644907258,y:-.12763733761814533},{x:.32434175445642904,y:-.12507657896300786},{x:.3321216604858821,y:-.1209181325536145},{x:.33894080515339464,y:-.1153218051533946},{x:.3445371325536145,y:-.10850266048588206},{x:.3486955789630079,y:-.100722754456429},{x:.35125633761814534,y:-.09228106449072573},{x:.35212099999999996,y:-.08350199999999997},{x:.35212099999999996,y:-.05796857189257534},{x:.3537665284657676,y:-.05798865052825875},{x:.3565834008023822,y:-.05822276473922817},{x:.35816715833059226,y:-.05804234673933715},{x:.35976104048452195,y:-.05806179518994546},{x:.3625398346041163,y:-.05754422155704884},{x:.36534825494544937,y:-.05722429279787242},{x:.3668663832111493,y:-.05673836571308556},{x:.3684334335709129,y:-.056446489484502926},{x:.37105786033397337,y:-.05539674504422484},{x:.37374990266128777,y:-.05453506799769968},{x:.49568890266128773,y:-.0018330679976996528},{x:.4995437197067623,y:.0003036028478311586},{x:.5033988605511543,y:.0024396894158641644},{x:.5034014762743246,y:.0024419030290919073},{x:.503404473339876,y:.00244356426035406},{x:.5067683773534712,y:.005291217073469004},{x:.510132712931077,y:.008138360005776092},{x:.5101348465393426,y:.008141041387321917},{x:.510137461926978,y:.00814325539697476},{x:.5128811799638975,y:.011592456477016289},{x:.5156254207452635,y:.015041241667436683},{x:.5156269902452553,y:.015044287773311453},{x:.5156291234470946,y:.015046969478205698},{x:.5176472159618929,y:.018965167962033513},{x:.519665902312761,y:.02288306052976895},{x:.5684429023127611,y:.1458620605297689},{x:.5688122064775901,y:.14714915498994666},{x:.5693537919217377,y:.14837377040805427},{x:.5700262192706007,y:.15138021786244946},{x:.5708758841928585,y:.15434145989163614},{x:.5709869926090132,y:.15567587086110493},{x:.5712792610244494,y:.1569826137160382},{x:.5713522390683521,y:.16006247719363653},{x:.5716078682563359,y:.16313258119086366},{x:.5714565110896938,y:.16446302800441426},{x:.5714882307651191,y:.1658016809010868},{x:.5709589549987614,y:.16883660297565092},{x:.5706107247661352,y:.1718975865660398},{x:.570202718587728,y:.17317294089875004},{x:.5699726705538047,y:.1744920601570685},{x:.5455836705538047,y:.26233106015706853},{x:.5448796820390573,y:.26415145628779163},{x:.5443792359109676,y:.2660379863232085},{x:.5432925447356423,y:.2682555269445408},{x:.5424018225194911,y:.2705587850827968},{x:.5413562192793141,y:.27220686146627543},{x:.5404973453311464,y:.27395951015977},{x:.5389989139081434,y:.2759224384285429},{x:.5376759632977357,y:.2780076688235372},{x:.5363289272782685,y:.2794200908086057},{x:.5351446315541886,y:.28097150485378414},{x:.5332920437627642,y:.28260438653745124},{x:.5315877050081386,y:.28439145495451523},{x:.529991002048182,y:.2855139439563835},{x:.528526796368706,y:.2868045033815319},{x:.4553637963687061,y:.3395095033815319},{x:.4552094954443409,y:.33959910378534747},{x:.4550747122553104,y:.3397160246969866},{x:.45139660000367776,y:.341813199213456},{x:.44773515946955245,y:.3439393468807752},{x:.44756634322254935,y:.3439971230209339},{x:.4474113397164003,y:.34408550243429054},{x:.4433947629085852,y:.34542481622689836},{x:.43938888509457313,y:.34679579895012297},{x:.43921204103863115,y:.34681953052195974},{x:.439042773913178,y:.34687597206574233},{x:.35212099999999996,y:.3666493043587998},{x:.35212099999999996,y:.6320956693586206},{x:.3838005126074005,y:.6288356018928482},{x:.4577579663937751,y:.5527249728659002},{x:.46449612147708186,y:.5470313904751531},{x:.47221556762189953,y:.5427617575185425},{x:.48061965084199804,y:.5400801535961528},{x:.48938540693229315,y:.5390896312428609},{x:.49817597280212744,y:.5398282556772123},{x:.5066535319349293,y:.5422676419764202},{x:.5144922964874953,y:.5463140458930298},{x:.5213910271340998,y:.551811966393775},{x:.5270846095248467,y:.5585501214770818},{x:.5313542424814575,y:.5662695676218995},{x:.534035846403847,y:.5746736508419981},{x:.535026368757139,y:.5834394069322931},{x:.5342877443227877,y:.5922299728021274},{x:.5318483580235798,y:.6007075319349293},{x:.5278019541069703,y:.6085462964874953},{x:.5223040336062249,y:.6154450271340998},{x:.4369490336062249,y:.7032850271340998},{x:.435089451582588,y:.7048563301588934},{x:.43337550685970433,y:.706585327551969},{x:.43172842132509603,y:.7076963215886295},{x:.4302108785229181,y:.7089786095248467},{x:.4280804818333404,y:.7101569339468108},{x:.4260621594195314,y:.7115183351118896},{x:.4242299779872524,y:.7122866512623272},{x:.42249143237810044,y:.7132482424814575},{x:.4201720909726226,y:.7139883059538676},{x:.4179269538663623,y:.7149297930076584},{x:.4159800862413552,y:.7153259053130885},{x:.41408734915800194,y:.715929846403847},{x:.4116681940261354,y:.716203208702491},{x:.4092825215873294,y:.7166886008255086},{x:.35212099999999996,y:.7225709645831306},{x:.35212099999999996,y:.7597659999999999},{x:.35125633761814534,y:.7685450644907257},{x:.3486955789630079,y:.776986754456429},{x:.3445371325536145,y:.7847666604858821},{x:.33894080515339464,y:.7915858051533946},{x:.3321216604858821,y:.7971821325536145},{x:.32434175445642904,y:.8013405789630078},{x:.3159000644907258,y:.8039013376181453},{x:.307121,y:.804766},{x:.29834193550927424,y:.8039013376181453},{x:.28990024554357097,y:.8013405789630078},{x:.2821203395141179,y:.7971821325536145},{x:.2753011948466053,y:.7915858051533946},{x:.26970486744638544,y:.7847666604858821},{x:.26554642103699205,y:.776986754456429},{x:.2629856623818546,y:.7685450644907257},{x:.262121,y:.7597659999999999},{x:.262121,y:.7318326623736131},{x:.23856652158732947,y:.7342566008255086},{x:.23743405616423266,y:.7342615520061975},{x:.23631438427367413,y:.7344313675125375},{x:.2330314335362298,y:.7342808004350606},{x:.22974506326706257,y:.734295168567351},{x:.22863339192208898,y:.7340790915684273},{x:.22750210485113245,y:.7340272069677483},{x:.2243116092711877,y:.7332390610779145},{x:.22108558260167874,y:.7326120140964958},{x:.22003742624118275,y:.7321832126358507},{x:.21893799871753236,y:.7319116218242595},{x:.21596256725097532,y:.7305161851266182},{x:.21292085857685591,y:.729271820095334},{x:.21197649726195836,y:.7286467727726252},{x:.21095117966878213,y:.7281659128327016},{x:.2083051564782311,y:.7262168111769735},{x:.20556465695803808,y:.7244029483461277},{x:.204760381964467,y:.7236056753794367},{x:.20384857668186554,y:.7229340254890024},{x:.10629557668186554,y:.6350940254890024},{x:.10393291169686979,y:.6325042238563513},{x:.10146752815288923,y:.6300120075116347},{x:.10096488682836192,y:.6292508655939548},{x:.10035013880638408,y:.6285770182897039},{x:.09853811700104832,y:.6255760458964971},{x:.09660631239978806,y:.6226507443205297},{x:.09626182060918942,y:.6218061670735107},{x:.09579034588565258,y:.6210253361666956},{x:.09459860224176168,y:.6177285186990383},{x:.0932746147506803,y:.6144825495908574},{x:.056695614750680294,y:.49150554959085735},{x:.05654965816703397,y:.490750439567249},{x:.05628361804350595,y:.49002883224693095},{x:.05571374572525952,y:.48642582571377374},{x:.055021470477783566,y:.4828443224653027},{x:.055025633066628665,y:.4820752469521588},{x:.05490548343396577,y:.4813156032607913},{x:.055049472757300266,y:.47767065091379934},{x:.05506921600663437,y:.4740229090450286},{x:.05522333780201598,y:.4732694231830167},{x:.05525369594322076,y:.472500935801646},{x:.05610601347919053,y:.46895411111540136},{x:.056837016503334954,y:.46538031130067065},{x:.05713517469108906,y:.46467137112890816},{x:.05731487395982006,y:.46392357259662753},{x:.08169987395982006,y:.39365157259662753},{x:.08192222202041206,y:.3931695328553223},{x:.08205835369770847,y:.3926564352635495},{x:.08376780756696771,y:.3891683934837906},{x:.08539480756850773,y:.3856411369034641},{x:.08570692456181836,y:.38521173737536313},{x:.08594054088151196,y:.3847350567827023},{x:.08829763126802886,y:.38164753465350854},{x:.09058150254284453,y:.37850546527353984},{x:.0909713939878581,y:.378145207541698},{x:.09129351720579659,y:.37772326251599964},{x:.09420766244788897,y:.3751549117812935},{x:.09706063710369874,y:.372518777565862},{x:.09751331969083687,y:.37224150613287915},{x:.09791157079240381,y:.3718905117848512},{x:.17107757079240382,y:.3191875117848513},{x:.17123114354048857,y:.3190983419119289},{x:.17136528774468962,y:.3189819753030134},{x:.17504412834709762,y:.3168843854977816},{x:.17870637355344754,y:.314757953928811},{x:.1788743916234626,y:.3147004579868701},{x:.17902866028359976,y:.31461249756570947},{x:.183046032465951,y:.31327291855818423},{x:.1870527548771027,y:.3119018143721617},{x:.18722876142884332,y:.31187820189800686},{x:.18739722608682208,y:.3118220279342577},{x:.262121,y:.2948235482063542},{x:.262121,y:.04244038202745839},{x:.212402420161311,y:.04795051974434915},{x:.14928483997433578,y:.08692151049617265},{x:.11795277553134796,y:.17720643745102208},{x:.114257651607068,y:.18521678535552225},{x:.10907078710071823,y:.1923523337548876},{x:.10259151030645056,y:.1983388675257922},{x:.09506881619784838,y:.20294632753270694},{x:.08679179769072982,y:.20599765167145945},{x:.07807853596451803,y:.20737557926659977},{x:.06926387678089782,y:.20702715733339738},{x:.0606865625489779,y:.20496577553134793},{x:.052676214644477706,y:.20127065160706795},{x:.04554066624511235,y:.1960837871007182},{x:.039554132474207776,y:.18960451030645054},{x:.034946672467293015,y:.18208181619784836},{x:.03189534832854049,y:.1738047976907298},{x:.030517420733400163,y:.165091535964518}],[{x:.14709211773983194,y:.4797371545422716},{x:.17592903295677773,y:.5766856037244347},{x:.24922570721126042,y:.6426843927572041},{x:.262121,y:.6413573671491031},{x:.262121,y:.3871228845247169},{x:.21626819752335621,y:.3975536737173561},{x:.16206100150816494,y:.4366002507010456},{x:.14709211773983194,y:.4797371545422716}],[{x:.35212099999999996,y:.034163101195078524},{x:.35212099999999996,y:.2743499680404371},{x:.4101709471377665,y:.26114452085874473},{x:.4630938273127818,y:.2230200535785049},{x:.47920731446793274,y:.1649859973145621},{x:.44287681685863156,y:.07338773859643172},{x:.35212099999999996,y:.034163101195078524}]],"'":[[{x:.25602600000000003,y:.476978},{x:.25689066238185465,y:.4681989355092742},{x:.2594514210369921,y:.459757245543571},{x:.2636098674463855,y:.4519773395141179},{x:.26920619484660535,y:.44515819484660535},{x:.27602533951411795,y:.4395618674463855},{x:.283805245543571,y:.4354034210369921},{x:.2922469355092743,y:.43284266238185465},{x:.301026,y:.43197800000000003},{x:.3098050644907258,y:.43284266238185465},{x:.3182467544564291,y:.4354034210369921},{x:.32602666048588214,y:.4395618674463855},{x:.3328458051533947,y:.44515819484660535},{x:.33844213255361455,y:.4519773395141179},{x:.34260057896300794,y:.459757245543571},{x:.3451613376181454,y:.4681989355092742},{x:.346026,y:.476978},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.476978}]],"(":[[{x:.14398102142772873,y:.343473372436119},{x:.14438344127795402,y:.34024506484177663},{x:.14461855620935057,y:.33700027938992067},{x:.15480555620935058,y:.27783527938992064},{x:.15553530200183258,y:.27518493680242373},{x:.1560666158259812,y:.2724877993619115},{x:.1764416158259812,y:.20487079936191147},{x:.17757136816824137,y:.2021290142392397},{x:.17852197521392682,y:.19932008699588913},{x:.2090839752139268,y:.13170208699588917},{x:.21040800505224358,y:.12940389577393302},{x:.21154775445201235,y:.12700896170152925},{x:.25229575445201236,y:.05939296170152925},{x:.2531150427152032,y:.05829379345186112},{x:.2537782786760274,y:.05709399256856861},{x:.29452927867602746,y:-.0020700074314313824},{x:.29560111146026063,y:-.0033391000809501682},{x:.29650963843516415,y:-.004729783512322571},{x:.3372576384351641,y:-.05544378351232261},{x:.3386866074193021,y:-.05690267270426387},{x:.3399537097957662,y:-.05850416001284604},{x:.38070370979576623,y:-.10073716001284601},{x:.38742176905533504,y:-.10645444032360908},{x:.3951261287468799,y:-.11075123635207199},{x:.40352071464810957,y:-.11346242463653189},{x:.41228292753057777,y:-.11448381573166892},{x:.42107604046711683,y:-.11377615815049966},{x:.4295621390588101,y:-.11136664677700951},{x:.4374151072958377,y:-.10734787778201216},{x:.444333160012846,y:-.10187429020423372},{x:.4500504403236091,y:-.09515623094466494},{x:.45434723635207197,y:-.08745187125312004},{x:.4570584246365319,y:-.07905728535189037},{x:.45807981573166895,y:-.07029507246942218},{x:.4573721581504997,y:-.06150195953288313},{x:.45496264677700954,y:-.053015860941189874},{x:.45094387778201217,y:-.04516289270416226},{x:.44547029020423373,y:-.03824483998715393},{x:.4061377413616867,y:.0025191240684850026},{x:.3677075745656829,y:.050348403515145926},{x:.3286739379437331,y:.10701906379590062},{x:.2900025757951927,y:.1711891536907596},{x:.2617573982317254,y:.23368121626802973},{x:.24303344075060918,y:.2958190240226623},{x:.23462816944303005,y:.34463593546989096},{x:.24303340667749923,y:.39345182392970596},{x:.26175739639474455,y:.45558881969516635},{x:.2900026404789191,y:.5180819536434618},{x:.328674029726828,y:.5822520885061939},{x:.36770768599197223,y:.6389237351633864},{x:.4061420841180472,y:.6867582808236831},{x:.4454798975405431,y:.7275528000242046},{x:.45095135740921277,y:.7344725356602282},{x:.45496771125722263,y:.7423267393839987},{x:.45737461285859093,y:.7508135785511003},{x:.458079566334583,y:.759606908691815},{x:.4570554807184589,y:.768368807060192},{x:.4543417110461325,y:.7767625588156633},{x:.4500425459642118,y:.7844655967855365},{x:.4443231999757953,y:.791181897540543},{x:.4374034643397718,y:.7966533574092127},{x:.4295492606160011,y:.8006697112572226},{x:.42106242144889966,y:.8030766128585909},{x:.41226909130818484,y:.803781566334583},{x:.403507192939808,y:.8027574807184589},{x:.39511344118433667,y:.8000437110461325},{x:.3874104032144634,y:.7957445459642117},{x:.38069410245945684,y:.7900251999757952},{x:.33994410245945683,y:.7477661999757953},{x:.338681775527778,y:.7461697396410558},{x:.3372576384351641,y:.7447157835123226},{x:.29650963843516415,y:.6940017835123226},{x:.2956010143988682,y:.6926109515089496},{x:.29452907712829884,y:.6913417148135671},{x:.2537780771282988,y:.6321767148135672},{x:.25311493656839296,y:.6309770641401381},{x:.25229575445201236,y:.6298780382984708},{x:.21154775445201235,y:.5622620382984707},{x:.21040795156345282,y:.5598669918310725},{x:.2090838723444427,y:.5575686854051248},{x:.17852187234444272,y:.48994968540512485},{x:.17757135012625538,y:.48714095747585867},{x:.17644166886939822,y:.4843993766680373},{x:.1560666688693982,y:.4167833766680374},{x:.15553533856931018,y:.4140862136984408},{x:.15480557779123924,y:.4114358459543075},{x:.14461857779123924,y:.3522718459543075},{x:.14438345368873493,y:.3490270611669966},{x:.14398102471397584,y:.3457987547100726},{x:.14406527252602844,y:.3446360634540339},{x:.14398102142772873,y:.343473372436119}]],")":[[{x:.14397318426833106,y:-.07029507246942218},{x:.14499457536346808,y:-.07905728535189037},{x:.14770576364792798,y:-.08745187125312004},{x:.1520025596763909,y:-.09515623094466495},{x:.15771983998715397,y:-.10187429020423372},{x:.16463789270416226,y:-.10734787778201214},{x:.1724908609411899,y:-.11136664677700951},{x:.18097695953288315,y:-.11377615815049966},{x:.1897700724694222,y:-.11448381573166892},{x:.19853228535189038,y:-.11346242463653189},{x:.20692687125312006,y:-.11075123635207199},{x:.21463123094466496,y:-.10645444032360907},{x:.22134929020423375,y:-.10073716001284601},{x:.2620992902042337,y:-.05850416001284604},{x:.2633660586938147,y:-.05690309470300352},{x:.26479468609075496,y:-.05544462417080616},{x:.30554468609075497,y:-.004730624170806122},{x:.3064541047100432,y:-.003338648753719708},{x:.307526891803669,y:-.002068307996824087},{x:.348273891803669,y:.05709569200317591},{x:.3489362195699084,y:.058293979727073175},{x:.3497544895549002,y:.059391707275619196},{x:.39050548955490016,y:.12700770727561922},{x:.39164563057902163,y:.12940326331913213},{x:.3929700247860732,y:.13170208699588917},{x:.42353202478607316,y:.19932008699588913},{x:.4244827292530259,y:.20212930210713742},{x:.4256125601984483,y:.2048713835354543},{x:.4459865601984483,y:.27248838353545435},{x:.4465177787005257,y:.27518522990297933},{x:.4472474437906494,y:.27783527938992064},{x:.4574344437906494,y:.33700027938992067},{x:.45766955872204595,y:.3402450648417768},{x:.4580719785722712,y:.34347337243611903},{x:.45798772747397154,y:.3446360634540339},{x:.4580719752860241,y:.3457987547100726},{x:.45766954631126505,y:.34902706116699656},{x:.45743442220876074,y:.3522718459543075},{x:.44724742220876074,y:.4114358459543075},{x:.4465177421348676,y:.414085920594514},{x:.44598650715958776,y:.4167827924880124},{x:.42561250715958776,y:.4843987924880123},{x:.42448274729464536,y:.48714066960378194},{x:.42353212765555726,y:.48994968540512485},{x:.3929701276555573,y:.5575686854051248},{x:.39164568407140216,y:.5598676242877579},{x:.39050548955490016,y:.5622632927243807},{x:.3497544895549002,y:.6298792927243808},{x:.3489363257182038,y:.6309768778726063},{x:.34827409333092635,y:.6321750153799588},{x:.3075270933309263,y:.6913400153799587},{x:.3064542017711834,y:.692610500189881},{x:.30554468609075497,y:.6940026241708062},{x:.26479468609075496,y:.7447166241708062},{x:.26337089070969094,y:.7461701617493295},{x:.2621088975405431,y:.7477661999757953},{x:.2213588975405431,y:.7900251999757952},{x:.21464259678553657,y:.7957445459642117},{x:.20693955881566328,y:.8000437110461325},{x:.19854580706019195,y:.8027574807184589},{x:.1897839086918151,y:.803781566334583},{x:.1809905785511003,y:.8030766128585909},{x:.17250373938399882,y:.8006697112572226},{x:.16464953566022822,y:.7966533574092127},{x:.15772980002420467,y:.791181897540543},{x:.15201045403578817,y:.7844655967855365},{x:.14771128895386743,y:.7767625588156633},{x:.14499751928154103,y:.7683688070601918},{x:.14397343366541698,y:.759606908691815},{x:.14467838714140904,y:.7508135785511002},{x:.14708528874277732,y:.7423267393839987},{x:.1511016425907872,y:.7344725356602282},{x:.15657310245945688,y:.7275528000242046},{x:.19591129092993145,y:.6867578918874246},{x:.23434697314436972,y:.6389240958672278},{x:.27337685298529213,y:.5822523693404118},{x:.3120516621801016,y:.518081284004684},{x:.34029647741491703,y:.4555890988936643},{x:.35901954136421654,y:.39345212569273014},{x:.36742483055696995,y:.344635935469891},{x:.359019507292604,y:.29581872226323463},{x:.3402964755778617,y:.23368093707349602},{x:.3120517268674457,y:.17118982332763816},{x:.27337694476991303,y:.10701878295300266},{x:.23434708457036935,y:.05034804280413771},{x:.1959156338111051,y:.0025195128948044543},{x:.15658270979576625,y:-.03824483998715393},{x:.1511091222179878,y:-.045162892704162266},{x:.14709035322299047,y:-.053015860941189874},{x:.1446808418495003,y:-.06150195953288312},{x:.14397318426833106,y:-.07029507246942218}]],"*":[[{x:.03611444520266741,y:.4654782574484574},{x:.03652686631141767,y:.45666636076295464},{x:.038650478626155074,y:.4481042415682919},{x:.04240367291655979,y:.4401209373034283},{x:.04764221603086716,y:.4330232418741738},{x:.05416479369500318,y:.42708391573544136},{x:.06172074690723879,y:.42253120385992987},{x:.07001970462305517,y:.4195400644118251},{x:.0787427425515426,y:.41822544520266736},{x:.08755463923704532,y:.41863786631141764},{x:.09611675843170807,y:.42076147862615504},{x:.25602600000000003,y:.47756000598755177},{x:.25602600000000003,y:.31805799999999995},{x:.25689066238185465,y:.30927893550927416},{x:.2594514210369921,y:.30083724554357094},{x:.2636098674463855,y:.29305733951411783},{x:.26920619484660535,y:.2862381948466053},{x:.27602533951411795,y:.2806418674463854},{x:.283805245543571,y:.276483421036992},{x:.2922469355092743,y:.2739226623818546},{x:.301026,y:.27305799999999997},{x:.3098050644907258,y:.2739226623818546},{x:.3182467544564291,y:.276483421036992},{x:.32602666048588214,y:.2806418674463854},{x:.3328458051533947,y:.2862381948466053},{x:.33844213255361455,y:.29305733951411783},{x:.34260057896300794,y:.30083724554357094},{x:.3451613376181454,y:.30927893550927416},{x:.346026,y:.31805799999999995},{x:.346026,y:.47756000598755177},{x:.505935241568292,y:.42076147862615504},{x:.5144973607629547,y:.41863786631141764},{x:.5233092574484575,y:.41822544520266736},{x:.5320322953769449,y:.4195400644118251},{x:.5403312530927612,y:.42253120385992987},{x:.5478872063049969,y:.42708391573544136},{x:.5544097839691329,y:.4330232418741738},{x:.5596483270834403,y:.4401209373034283},{x:.5634015213738449,y:.4481042415682919},{x:.5655251336885824,y:.45666636076295464},{x:.5659375547973327,y:.4654782574484574},{x:.5646229355881749,y:.4742012953769448},{x:.5616317961400701,y:.4825002530927612},{x:.5570790842645587,y:.4900562063049968},{x:.5511397581258262,y:.4965787839691328},{x:.5440420626965717,y:.5018173270834402},{x:.5360587584317081,y:.5055705213738448},{x:.37146215609131306,y:.5640339630732496},{x:.47696549129035026,y:.7165911114148321},{x:.48124783600971727,y:.7243035129909579},{x:.48394328176908086,y:.732703166943666},{x:.4849482440995321,y:.7414672792821342},{x:.48422410286230105,y:.7502590500841659},{x:.48179868639903156,y:.758740616528321},{x:.47776520210421775,y:.7665860367726678},{x:.4722786545173053,y:.7734938157169785},{x:.4655498885851679,y:.7791984912903502},{x:.45783748700904214,y:.7834808360097172},{x:.449437833056334,y:.7861762817690807},{x:.4406737207178658,y:.7871812440995319},{x:.431881949915834,y:.786457102862301},{x:.4234003834716789,y:.7840316863990314},{x:.4155549632273321,y:.7799982021042177},{x:.40864718428302144,y:.7745116545173052},{x:.40294250870964976,y:.7677828885851677},{x:.301026,y:.6204122684209616},{x:.19910949129035027,y:.7677828885851677},{x:.19340481571697854,y:.7745116545173052},{x:.18649703677266788,y:.7799982021042177},{x:.17865161652832107,y:.7840316863990314},{x:.17017005008416597,y:.786457102862301},{x:.1613782792821342,y:.7871812440995319},{x:.15261416694366597,y:.7861762817690807},{x:.14421451299095783,y:.7834808360097172},{x:.13650211141483212,y:.7791984912903502},{x:.12977334548269473,y:.7734938157169785},{x:.12428679789578226,y:.7665860367726678},{x:.12025331360096844,y:.758740616528321},{x:.11782789713769894,y:.7502590500841659},{x:.11710375590046794,y:.7414672792821342},{x:.11810871823091917,y:.732703166943666},{x:.12080416399028275,y:.7243035129909579},{x:.1250865087096497,y:.7165911114148321},{x:.23058984390868703,y:.5640339630732496},{x:.06599324156829194,y:.5055705213738448},{x:.058009937303428294,y:.5018173270834402},{x:.05091224187417384,y:.4965787839691328},{x:.04497291573544139,y:.4900562063049968},{x:.04042020385992993,y:.4825002530927612},{x:.03742906441182516,y:.4742012953769448},{x:.03611444520266741,y:.4654782574484574}]],"+":[[{x:-.002030999999999998,y:.33155},{x:-.0011663376181453647,y:.3227709355092742},{x:.0013944210369920967,y:.314329245543571},{x:.005552867446385459,y:.3065493395141179},{x:.011149194846605363,y:.29973019484660535},{x:.017968339514117915,y:.2941338674463855},{x:.025748245543570962,y:.2899754210369921},{x:.03418993550927423,y:.28741466238185465},{x:.042969,y:.28655},{x:.256023,y:.28655},{x:.256023,y:.09133899999999995},{x:.2568876623818546,y:.08255993550927418},{x:.25944842103699206,y:.07411824554357091},{x:.26360686744638545,y:.06633833951411786},{x:.2692031948466054,y:.05951919484660531},{x:.2760223395141179,y:.053922867446385414},{x:.2838022455435709,y:.049764421036992045},{x:.2922439355092742,y:.04720366238185458},{x:.301023,y:.04633899999999995},{x:.3098020644907258,y:.04720366238185458},{x:.31824375445642905,y:.049764421036992045},{x:.3260236604858821,y:.053922867446385414},{x:.3328428051533946,y:.05951919484660531},{x:.3384391325536145,y:.06633833951411786},{x:.3425975789630079,y:.07411824554357091},{x:.34515833761814535,y:.08255993550927418},{x:.34602299999999997,y:.09133899999999995},{x:.34602299999999997,y:.28655},{x:.559083,y:.28655},{x:.5678620644907257,y:.28741466238185465},{x:.576303754456429,y:.2899754210369921},{x:.5840836604858821,y:.2941338674463855},{x:.5909028051533947,y:.29973019484660535},{x:.5964991325536145,y:.3065493395141179},{x:.6006575789630079,y:.314329245543571},{x:.6032183376181454,y:.3227709355092742},{x:.604083,y:.33155},{x:.6032183376181454,y:.3403290644907258},{x:.6006575789630079,y:.348770754456429},{x:.5964991325536145,y:.35655066048588213},{x:.5909028051533947,y:.3633698051533947},{x:.5840836604858821,y:.36896613255361455},{x:.576303754456429,y:.37312457896300794},{x:.5678620644907257,y:.3756853376181454},{x:.559083,y:.37655},{x:.34602299999999997,y:.37655},{x:.34602299999999997,y:.571777},{x:.34515833761814535,y:.5805560644907257},{x:.3425975789630079,y:.588997754456429},{x:.3384391325536145,y:.5967776604858821},{x:.3328428051533946,y:.6035968051533946},{x:.3260236604858821,y:.6091931325536145},{x:.31824375445642905,y:.6133515789630078},{x:.3098020644907258,y:.6159123376181453},{x:.301023,y:.616777},{x:.2922439355092742,y:.6159123376181453},{x:.2838022455435709,y:.6133515789630078},{x:.2760223395141179,y:.6091931325536145},{x:.2692031948466054,y:.6035968051533946},{x:.26360686744638545,y:.5967776604858821},{x:.25944842103699206,y:.588997754456429},{x:.2568876623818546,y:.5805560644907257},{x:.256023,y:.571777},{x:.256023,y:.37655},{x:.042969,y:.37655},{x:.03418993550927421,y:.3756853376181454},{x:.025748245543570934,y:.37312457896300794},{x:.017968339514117904,y:.36896613255361455},{x:.011149194846605356,y:.3633698051533947},{x:.005552867446385459,y:.35655066048588213},{x:.0013944210369920967,y:.348770754456429},{x:-.0011663376181453647,y:.3403290644907258},{x:-.002030999999999998,y:.33155}]],",":[[{x:.1703425796668749,y:-.03158948169003215},{x:.1707557440557006,y:-.035050650253961146},{x:.17102563140319493,y:-.03852592771911176},{x:.17127771326913271,y:-.039423300660751795},{x:.17138819577001116,y:-.0403488367651378},{x:.1724686618106471,y:-.0436628955719719},{x:.1734113563482083,y:-.04701874414557815},{x:.1738336633079298,y:-.04784969558537063},{x:.17412258605517572,y:-.048735893706360625},{x:.1758288320436127,y:-.05177548533469908},{x:.17740810654883146,y:-.054882941638058576},{x:.177984409582707,y:-.05561553857817519},{x:.17844066943717352,y:-.05642834261896521},{x:.18070712529694977,y:-.05907665726715373},{x:.18286228913625774,y:-.06181630349720979},{x:.26855428913625773,y:-.1511263034972098},{x:.27525630293239317,y:-.15686238451505874},{x:.2829485933055849,y:-.16118075031492074},{x:.2913355498506774,y:-.16391544852087458},{x:.3000948665311021,y:-.16496138621450188},{x:.3088899277191117,y:-.1642783685968051},{x:.3173827441455781,y:-.16189264365179173},{x:.3252469416380585,y:-.15789589345116858},{x:.33218030349720973,y:-.1524417108637423},{x:.3379163845150587,y:-.14573969706760687},{x:.3422347503149207,y:-.13804740669441512},{x:.3449694485208745,y:-.12966045014932262},{x:.3460153862145018,y:-.12090113346889794},{x:.34533236859680505,y:-.11210607228088836},{x:.34294664365179167,y:-.10361325585442197},{x:.33894989345116855,y:-.09574905836194152},{x:.33349571086374225,y:-.08881569650279031},{x:.277697993368333,y:-.03066214483501502},{x:.41918956700521515,y:.11679250439324337},{x:.42464400414059766,y:.12372566600271688},{x:.42864104306488354,y:.1315897167531037},{x:.43102707981377775,y:.14008244558427704},{x:.4317104203331251,y:.14887748169003212},{x:.4306648042299889,y:.15763683676513773},{x:.4279304139448243,y:.1660238937063606},{x:.4236123305628265,y:.17371634261896518},{x:.41787649560675666,y:.1804185670052151},{x:.41094333399728317,y:.18587300414059763},{x:.4030792832468963,y:.18987004306488353},{x:.39458655441572293,y:.19225607981377774},{x:.3857915183099679,y:.19293942033312508},{x:.37703216323486227,y:.19189380422998883},{x:.36864510629363945,y:.18915941394482427},{x:.3609526573810348,y:.18484133056282648},{x:.35425043299478487,y:.17910549560675662},{x:.18286343299478489,y:.000495495606756581},{x:.18070816857348473,y:-.0022440714967103576},{x:.1784416154849413,y:-.004892302932393237},{x:.17798532578947307,y:-.005705090221499034},{x:.17740899585940237,y:-.006437666002716908},{x:.1758296072680145,y:-.009545064322455634},{x:.1741232496850793,y:-.012584593305585},{x:.17383429440212667,y:-.013470780818460306},{x:.1734119569351165,y:-.014301716753103766},{x:.1724691391914766,y:-.01765753071433596},{x:.17138855147912546,y:-.02097154985067746},{x:.17127803499816427,y:-.02189708189818214},{x:.17102592018622226,y:-.022794445584277102},{x:.17075590524748027,y:-.02626971313843455},{x:.17034261378549817,y:-.029730866531102167},{x:.17041478319291342,y:-.03066017543569507},{x:.1703425796668749,y:-.03158948169003215}]],"-":[[{x:.12882900000000003,y:.31396500000000005},{x:.12969366238185465,y:.30518593550927425},{x:.13225442103699211,y:.29674424554357104},{x:.13641286744638548,y:.28896433951411793},{x:.14200919484660537,y:.2821451948466054},{x:.14882833951411792,y:.2765488674463855},{x:.15660824554357097,y:.2723904210369921},{x:.16504993550927424,y:.2698296623818547},{x:.173829,y:.26896500000000007},{x:.428224,y:.26896500000000007},{x:.4370030644907258,y:.2698296623818547},{x:.44544475445642906,y:.2723904210369921},{x:.4532246604858821,y:.2765488674463855},{x:.4600438051533946,y:.2821451948466054},{x:.4656401325536145,y:.28896433951411793},{x:.4697985789630079,y:.29674424554357104},{x:.47235933761814536,y:.30518593550927425},{x:.473224,y:.31396500000000005},{x:.47235933761814536,y:.32274406449072585},{x:.4697985789630079,y:.33118575445642906},{x:.4656401325536145,y:.33896566048588217},{x:.4600438051533946,y:.3457848051533947},{x:.4532246604858821,y:.3513811325536146},{x:.44544475445642906,y:.355539578963008},{x:.4370030644907258,y:.3581003376181454},{x:.428224,y:.35896500000000003},{x:.173829,y:.35896500000000003},{x:.16504993550927424,y:.3581003376181454},{x:.15660824554357097,y:.355539578963008},{x:.14882833951411792,y:.3513811325536146},{x:.14200919484660537,y:.3457848051533947},{x:.13641286744638548,y:.33896566048588217},{x:.13225442103699211,y:.33118575445642906},{x:.12969366238185465,y:.32274406449072585},{x:.12882900000000003,y:.31396500000000005}]],".":[[{x:.19450299999999998,y:.148926},{x:.19536766238185463,y:.14014693550927423},{x:.1979284210369921,y:.13170524554357096},{x:.20208686744638546,y:.12392533951411791},{x:.20768319484660536,y:.11710619484660537},{x:.2145023395141179,y:.11150986744638547},{x:.22228224554357093,y:.1073514210369921},{x:.2307239355092742,y:.10479066238185464},{x:.239503,y:.103926},{x:.362549,y:.103926},{x:.3713280644907258,y:.10479066238185464},{x:.3797697544564291,y:.1073514210369921},{x:.38754966048588213,y:.11150986744638547},{x:.3943688051533947,y:.11710619484660537},{x:.39996513255361454,y:.12392533951411791},{x:.40412357896300793,y:.13170524554357096},{x:.4066843376181454,y:.14014693550927423},{x:.407549,y:.148926},{x:.4066843376181454,y:.1577050644907258},{x:.40412357896300793,y:.16614675445642904},{x:.39996513255361454,y:.1739266604858821},{x:.3943688051533947,y:.18074580515339464},{x:.38754966048588213,y:.18634213255361454},{x:.3797697544564291,y:.1905005789630079},{x:.3713280644907258,y:.19306133761814537},{x:.362549,y:.193926},{x:.239503,y:.193926},{x:.2307239355092742,y:.19306133761814537},{x:.22228224554357093,y:.1905005789630079},{x:.2145023395141179,y:.18634213255361454},{x:.20768319484660536,y:.18074580515339464},{x:.20208686744638546,y:.1739266604858821},{x:.1979284210369921,y:.16614675445642904},{x:.19536766238185463,y:.1577050644907258},{x:.19450299999999998,y:.148926}]],"/":[[{x:.017522651058219416,y:-.036644753012328966},{x:.01865919532569161,y:-.04539277458837648},{x:.02148055556003016,y:-.053750976595687026},{x:.02587830846966649,y:-.06139815801845333},{x:.031683450876571484,y:-.06804044196318723},{x:.038672894413609195,y:-.07342256918292836},{x:.04657803868537635,y:-.0773377075469538},{x:.0550950934307649,y:-.07963540048356893},{x:.0638967530123289,y:-.08022734894178067},{x:.07264477458837641,y:-.07909080467430848},{x:.08100297659568695,y:-.07626944443996993},{x:.08865015801845323,y:-.0718716915303336},{x:.09529244196318715,y:-.0660665491234286},{x:.10067456918292828,y:-.059077105586390885},{x:.5777245691829282,y:.7051758944136092},{x:.5816397075469537,y:.7130810386853763},{x:.5839374004835688,y:.7215980934307649},{x:.5845293489417805,y:.7303997530123288},{x:.5833928046743084,y:.7391477745883763},{x:.5805714444399699,y:.747505976595687},{x:.5761736915303335,y:.7551531580184532},{x:.5703685491234285,y:.7617954419631872},{x:.5633791055863908,y:.7671775691829282},{x:.5554739613146237,y:.7710927075469537},{x:.5469569065692351,y:.7733904004835688},{x:.5381552469876711,y:.7739823489417805},{x:.5294072254116237,y:.7728458046743084},{x:.521049023404313,y:.7700244444399699},{x:.5134018419815468,y:.7656266915303335},{x:.5067595580368128,y:.7598215491234285},{x:.5013774308170718,y:.7528321055863908},{x:.024327430817071727,y:-.011420894413609283},{x:.020412292453046287,y:-.019326038685376436},{x:.018114599516431164,y:-.027843093430764996},{x:.017522651058219416,y:-.036644753012328966}]],"<":[[{x:-.002019645490236678,y:.32959917016575135},{x:-.0016099914284145765,y:.3262199732716625},{x:-.0013526191024594778,y:.3228257800560043},{x:-.001080072865731869,y:.3218487260950263},{x:-.0009579981642362373,y:.3208417436418168},{x:.00010303311987996846,y:.3176073966113462},{x:.0010176343561875828,y:.3143286327165328},{x:.0014755574652736251,y:.31342352370653337},{x:.001791739066671412,y:.3124597057316259},{x:.003463372735866293,y:.309494502707312},{x:.00500005526992945,y:.3064571691910689},{x:.005625757523098081,y:.30565878796371126},{x:.0061238953427729045,y:.3047751734513664},{x:.008341891452602095,y:.3021930655225286},{x:.010441601436418424,y:.2995138854085287},{x:.011211037446978121,y:.298852913306643},{x:.011871988327878901,y:.29808345906703315},{x:.014551110531708777,y:.29598367519331337},{x:.017133157288130564,y:.2937656078708368},{x:.01801675806170013,y:.2932674456816211},{x:.018815122032139454,y:.29264172140965955},{x:.021852413166145952,y:.29110495510775264},{x:.024817570086352318,y:.28943323966009543},{x:.5409315700863523,y:.06192123966009548},{x:.5493135321567164,y:.059171271257023414},{x:.5580709293975171,y:.05810938240515066},{x:.5668672199439956,y:.058776380897540545},{x:.5753643672834672,y:.061146634356187606},{x:.583235830808931,y:.06512905526992949},{x:.5901791145914712,y:.07057060143641844},{x:.5959273921291632,y:.07726215728813057},{x:.6002597603399046,y:.08494657008635234},{x:.6030097287429766,y:.09332853215671641},{x:.6040716175948494,y:.10208592939751719},{x:.6034046191024595,y:.11088221994399564},{x:.6010343656438124,y:.11937936728346718},{x:.5970519447300705,y:.12725083080893104},{x:.5916103985635816,y:.13419411459147126},{x:.5849188427118694,y:.1399423921291632},{x:.5772344299136477,y:.14427476033990455},{x:.15453394878652635,y:.33060846154195217},{x:.577233294268374,y:.5169277390666714},{x:.5849178265486336,y:.521259895342773},{x:.5916095409329668,y:.527007988327879},{x:.5970512785903404,y:.5339511220321395},{x:.6010339165943431,y:.5418224757210541},{x:.6034044043999703,y:.5503195576866639},{x:.6040716454902366,y:.5591158298342486},{x:.6030099981642363,y:.5678732563581832},{x:.6002602609333286,y:.5762552942683741},{x:.5959281046572271,y:.5839398265486336},{x:.5901800116721211,y:.5906315409329669},{x:.5832368779678606,y:.5960732785903404},{x:.5753655242789459,y:.6000559165943432},{x:.5668684423133362,y:.6024264043999704},{x:.5580721701657515,y:.6030936454902367},{x:.5493147436418169,y:.6020319981642364},{x:.540932705731626,y:.5992822609333287},{x:.024818705731625975,y:.37178726093332853},{x:.02185350270731245,y:.3701156272641339},{x:.018816169191068974,y:.3685789447300705},{x:.01801778796371134,y:.36795324247690187},{x:.01713417345136639,y:.367455104657227},{x:.01455206552252819,y:.3652371085473975},{x:.011872885408528756,y:.3631373985635815},{x:.011211913306643135,y:.3623679625530219},{x:.010442459067033207,y:.36170701167212105},{x:.008342675193313383,y:.3590278894682912},{x:.006124607870836803,y:.3564458427118694},{x:.005626445681621026,y:.3555622419382997},{x:.005000721409659611,y:.3547638779678605},{x:.0034639551077528313,y:.3517265868338544},{x:.0017922396600954515,y:.3487614299136476},{x:.0014760314771086122,y:.3477976206592673},{x:.0010180834056568513,y:.3468925242789459},{x:.00010339174271701993,y:.34361378560971106},{x:-.0009577287429766018,y:.3403794678432836},{x:-.0010798312165939596,y:.33937248875722786},{x:-.0013524043999703778,y:.33839544231333624},{x:-.001609870336301571,y:.33500125619719334},{x:-.0020196175948493655,y:.3316220706024828},{x:-.001942922029511974,y:.3306106193263084},{x:-.002019645490236678,y:.32959917016575135}]],"=":[[{x:-.002030999999999998,y:.19162999999999997},{x:-.0011663376181453647,y:.1828509355092742},{x:.0013944210369920967,y:.17440924554357093},{x:.005552867446385459,y:.16662933951411787},{x:.011149194846605363,y:.15981019484660533},{x:.017968339514117915,y:.15421386744638543},{x:.025748245543570962,y:.15005542103699207},{x:.03418993550927423,y:.1474946623818546},{x:.042969,y:.14662999999999998},{x:.559083,y:.14662999999999998},{x:.5678620644907257,y:.1474946623818546},{x:.576303754456429,y:.15005542103699207},{x:.5840836604858821,y:.15421386744638543},{x:.5909028051533947,y:.15981019484660533},{x:.5964991325536145,y:.16662933951411787},{x:.6006575789630079,y:.17440924554357093},{x:.6032183376181454,y:.1828509355092742},{x:.604083,y:.19162999999999997},{x:.6032183376181454,y:.20040906449072574},{x:.6006575789630079,y:.208850754456429},{x:.5964991325536145,y:.21663066048588206},{x:.5909028051533947,y:.2234498051533946},{x:.5840836604858821,y:.2290461325536145},{x:.576303754456429,y:.23320457896300786},{x:.5678620644907257,y:.23576533761814533},{x:.559083,y:.23662999999999995},{x:.042969,y:.23662999999999995},{x:.03418993550927421,y:.23576533761814533},{x:.025748245543570934,y:.23320457896300786},{x:.017968339514117904,y:.2290461325536145},{x:.011149194846605356,y:.2234498051533946},{x:.005552867446385459,y:.21663066048588206},{x:.0013944210369920967,y:.208850754456429},{x:-.0011663376181453647,y:.20040906449072574},{x:-.002030999999999998,y:.19162999999999997}],[{x:-.002030999999999998,y:.454102},{x:-.0011663376181453647,y:.4453229355092742},{x:.0013944210369920967,y:.436881245543571},{x:.005552867446385459,y:.4291013395141179},{x:.011149194846605363,y:.42228219484660534},{x:.017968339514117915,y:.41668586744638547},{x:.025748245543570962,y:.4125274210369921},{x:.03418993550927423,y:.40996666238185464},{x:.042969,y:.409102},{x:.559083,y:.409102},{x:.5678620644907257,y:.40996666238185464},{x:.576303754456429,y:.4125274210369921},{x:.5840836604858821,y:.41668586744638547},{x:.5909028051533947,y:.42228219484660534},{x:.5964991325536145,y:.4291013395141179},{x:.6006575789630079,y:.436881245543571},{x:.6032183376181454,y:.4453229355092742},{x:.604083,y:.454102},{x:.6032183376181454,y:.4628810644907258},{x:.6006575789630079,y:.471322754456429},{x:.5964991325536145,y:.4791026604858821},{x:.5909028051533947,y:.48592180515339467},{x:.5840836604858821,y:.49151813255361454},{x:.576303754456429,y:.49567657896300793},{x:.5678620644907257,y:.49823733761814537},{x:.559083,y:.499102},{x:.042969,y:.499102},{x:.03418993550927421,y:.49823733761814537},{x:.025748245543570934,y:.49567657896300793},{x:.017968339514117904,y:.49151813255361454},{x:.011149194846605356,y:.48592180515339467},{x:.005552867446385459,y:.4791026604858821},{x:.0013944210369920967,y:.471322754456429},{x:-.0011663376181453647,y:.4628810644907258},{x:-.002030999999999998,y:.454102}]],">":[[{x:-.002019645490236678,y:.5591158298342487},{x:-.0013524043999703708,y:.5503195576866637},{x:.0010180834056568513,y:.5418224757210541},{x:.005000721409659611,y:.5339511220321396},{x:.01044245906703322,y:.527007988327879},{x:.01713417345136643,y:.521259895342773},{x:.024818705731625975,y:.5169277390666714},{x:.44751805121347366,y:.33060846154195217},{x:.024817570086352318,y:.14427476033990455},{x:.017133157288130554,y:.1399423921291632},{x:.01044160143641841,y:.13419411459147126},{x:.00500005526992945,y:.12725083080893107},{x:.0010176343561875828,y:.11937936728346718},{x:-.0013526191024594778,y:.11088221994399562},{x:-.0020196175948493655,y:.10208592939751718},{x:-.0009577287429766018,y:.0933285321567164},{x:.0017922396600954585,y:.08494657008635234},{x:.00612460787083681,y:.07726215728813059},{x:.011872885408528759,y:.07057060143641844},{x:.018816169191068984,y:.06512905526992947},{x:.02668763271653284,y:.061146634356187606},{x:.03518478005600438,y:.058776380897540545},{x:.04398107060248284,y:.05810938240515066},{x:.052738467843283614,y:.05917127125702342},{x:.06112042991364768,y:.06192123966009548},{x:.5772344299136477,y:.28943323966009543},{x:.5801995868338548,y:.29110495510775297},{x:.5832368779678606,y:.2926417214096596},{x:.5840352419382998,y:.29326744568162105},{x:.5849188427118694,y:.2937656078708368},{x:.5875008894682915,y:.29598367519331353},{x:.5901800116721211,y:.29808345906703315},{x:.5908409625530218,y:.2988529133066429},{x:.5916103985635817,y:.29951388540852875},{x:.5937101085473976,y:.3021930655225282},{x:.5959281046572271,y:.3047751734513664},{x:.5964262424769022,y:.30565878796371176},{x:.5970519447300705,y:.30645716919106897},{x:.5985886272641329,y:.3094945027073105},{x:.6002602609333286,y:.31245970573162596},{x:.6005764425347265,y:.31342352370653376},{x:.6010343656438124,y:.31432863271653283},{x:.6019489668801197,y:.31760739661134507},{x:.6030099981642363,y:.32084174364181683},{x:.6031320728657319,y:.3218487260950267},{x:.6034046191024595,y:.3228257800560044},{x:.6036619914284146,y:.3262199732716634},{x:.6040716454902366,y:.32959917016575135},{x:.603994922029512,y:.330610619326308},{x:.6040716175948494,y:.33162207060248283},{x:.6036618703363014,y:.3350012561971954},{x:.6034044043999703,y:.33839544231333624},{x:.6031318312165941,y:.33937248875722736},{x:.6030097287429766,y:.3403794678432836},{x:.6019486082572825,y:.3436137856097129},{x:.6010339165943431,y:.3468925242789459},{x:.6005759685228916,y:.3477976206592668},{x:.6002597603399046,y:.34876142991364767},{x:.5985880448922466,y:.3517265868338553},{x:.5970512785903404,y:.3547638779678605},{x:.596425554318379,y:.35556224193829966},{x:.5959273921291631,y:.35644584271186947},{x:.5937093248066866,y:.3590278894682911},{x:.5916095409329668,y:.36170701167212105},{x:.5908400866933569,y:.3623679625530219},{x:.5901791145914712,y:.36313739856358157},{x:.5874999344774714,y:.3652371085473978},{x:.5849178265486336,y:.367455104657227},{x:.5840342120362888,y:.36795324247690175},{x:.583235830808931,y:.3685789447300705},{x:.5801984972926872,y:.37011562726413405},{x:.577233294268374,y:.37178726093332853},{x:.06111929426837402,y:.5992822609333287},{x:.05273725635818315,y:.6020319981642364},{x:.04397982983424857,y:.6030936454902367},{x:.035183557686663716,y:.6024264043999704},{x:.02668647572105406,y:.6000559165943432},{x:.018815122032139416,y:.5960732785903404},{x:.011871988327878898,y:.5906315409329669},{x:.006123895342772898,y:.5839398265486336},{x:.001791739066671405,y:.5762552942683741},{x:-.0009579981642362442,y:.5678732563581832},{x:-.002019645490236678,y:.5591158298342487}]],A:[[{x:-.026930267425517032,y:.05053409251215203},{x:-.025968910797820398,y:.041765089843587025},{x:-.02331527881378681,y:.03335213247651147},{x:-.019071349062388714,y:.025618525644501258},{x:-.013400213383949137,y:.018861467521053887},{x:-.006519810342180955,y:.013340628060451547},{x:.0013054500325951415,y:.009268170027042777},{x:.009774847372633092,y:.006800595699190677},{x:.018562907487847988,y:.006032732574482988},{x:.02733191015641301,y:.006994089202179622},{x:.035744867523488544,y:.00964772118621321},{x:.043478474355498745,y:.013891650937611293},{x:.05023553247894613,y:.019562786616050876},{x:.055756371939548466,y:.02644318965781906},{x:.05982882997295724,y:.03426845003259516},{x:.15465984441872488,y:.2705423452957767},{x:.155303,y:.27047899999999997},{x:.433548,y:.27047899999999997},{x:.439584057854266,y:.2710734998088117},{x:.5426964027293978,y:.03313672871631684},{x:.5469805748198717,y:.025425342079263714},{x:.5526868446471364,y:.018697928086846893},{x:.559595923461843,y:.013213017486017727},{x:.5674422992397985,y:.009181392315192764},{x:.5759244401601543,y:.006757985668725375},{x:.5847163823041805,y:.006035927704977205},{x:.5934802562658602,y:.007042966706560308},{x:.6018792712836831,y:.009740402729397836},{x:.6095906579207363,y:.01402457481987169},{x:.6163180719131531,y:.019730844647136342},{x:.6218029825139822,y:.026639923461843008},{x:.6258346076848073,y:.03448629923979854},{x:.6282580143312746,y:.042968440160154345},{x:.6289800722950228,y:.05176038230418057},{x:.6279730332934397,y:.060524256265860256},{x:.6252755972706022,y:.0689232712836832},{x:.3314685972706022,y:.7468972712836831},{x:.3293831787279993,y:.7506509647260751},{x:.32731734906238874,y:.7544154743554987},{x:.32724162770964893,y:.7545056950115825},{x:.32718442518012836,y:.7546086579207363},{x:.324406768107635,y:.7578833802211685},{x:.32164621338394916,y:.7611725324789461},{x:.3215543458189217,y:.761246247067332},{x:.32147815535286367,y:.7613360719131531},{x:.3181150035540548,y:.764005977330098},{x:.314765810342181,y:.7666933719395485},{x:.31466132698386995,y:.7667477476499444},{x:.314569076538157,y:.7668209825139822},{x:.31074967405057474,y:.7687834680795742},{x:.3069405499674049,y:.7707658299729572},{x:.30682746605267575,y:.7707987771773066},{x:.30672270076020147,y:.7708526076848072},{x:.3025938250794972,y:.7720322561793334},{x:.29847115262736695,y:.7732334043008093},{x:.2983538139076442,y:.7732436568565263},{x:.29824055983984565,y:.7732760143312747},{x:.29396088134293,y:.7736274925246428},{x:.289683092512152,y:.774001267425517},{x:.28956600824863027,y:.7739884313326351},{x:.2894486176958195,y:.7739980722950228},{x:.2851826020272766,y:.773507873077374},{x:.280914089843587,y:.7730399107978204},{x:.2808017595188513,y:.7730044793401902},{x:.28068474373413976,y:.7729910332934397},{x:.2765963314836881,y:.7716779947458032},{x:.2725011324765115,y:.7703862788137869},{x:.27239787288194656,y:.7703296136024552},{x:.27228572871631684,y:.7702935972706022},{x:.26853203527393116,y:.7682081787280027},{x:.2647675256445013,y:.7661423490623888},{x:.26467730498841713,y:.7660666277096486},{x:.2645743420792637,y:.7660094251801283},{x:.2612996197788366,y:.7632317681076393},{x:.2580104675210539,y:.7604712133839491},{x:.2579367529326681,y:.7603793458189217},{x:.2578469280868469,y:.7603031553528636},{x:.25517702266989234,y:.7569400035540427},{x:.25248962806045155,y:.7535908103421809},{x:.2524352523500559,y:.7534863269838704},{x:.2523620174860177,y:.753394076538157},{x:.2503995319204231,y:.7495746740505695},{x:.24841717002704278,y:.7457655499674049},{x:-.023694829972957243,y:.06779154996740488},{x:-.026162404300809343,y:.05932215262736691},{x:-.026930267425517032,y:.05053409251215203}],[{x:.19075686729109992,y:.36047899999999994},{x:.2917712201653896,y:.6121588409316518},{x:.4008392655839541,y:.36047899999999994},{x:.19075686729109992,y:.36047899999999994}]],B:[[{x:.018964999999999996,y:.05103000000000002},{x:.018993157630992935,y:.05074411077481729},{x:.01896863696544404,y:.050457886669927884},{x:.019425235762019696,y:.046357147889743},{x:.01982966238185463,y:.04225093550927423},{x:.019913053192865363,y:.04197603284668677},{x:.019944843237820968,y:.04169052471317667},{x:.02119268306568244,y:.037757658485048945},{x:.02239042103699209,y:.03380924554357098},{x:.0225258403659196,y:.03355589379873479},{x:.022612719447780122,y:.03328207355405998},{x:.02460384652213923,y:.029668217721559587},{x:.026548867446385453,y:.026029339514117924},{x:.02673111120436309,y:.02580727485250577},{x:.026869740608734982,y:.025555665255108946},{x:.029527637032761178,y:.022399698271204867},{x:.03214519484660536,y:.019210194846605383},{x:.03236725950821749,y:.019027951088627763},{x:.03255231178483501,y:.01880822135423258},{x:.03577483608951879,y:.016231425260229353},{x:.03896433951411791,y:.013613867446385479},{x:.03921769125895406,y:.013478448117457993},{x:.03944205495260531,y:.013299042336531411},{x:.04310536733612953,y:.011400441961238211},{x:.046744245543570956,y:.009455421036992116},{x:.04701914820615845,y:.009372030225981372},{x:.047274201145921,y:.009239842862072495},{x:.051237522567796415,y:.008092400353164256},{x:.055185935509274225,y:.006894662381854655},{x:.05547182473445692,y:.006866504750861718},{x:.05574776537889109,y:.006786615690234012},{x:.05985878761953148,y:.006434426619834929},{x:.063965,y:.0060300000000000215},{x:.06425088922518268,y:.006058157630992957},{x:.06453711333007213,y:.00603363696544406},{x:.4241221133300721,y:.01060563696544408},{x:.4260098351414485,y:.010815826288282449},{x:.4279092214657345,y:.010813640036582327},{x:.43038314701987823,y:.011302774871886453},{x:.43288947528682337,y:.011581843237821021},{x:.43469991915024053,y:.012156270087817089},{x:.43656323581544765,y:.012524677733968342},{x:.4388942001112364,y:.013487052913568918},{x:.44129792644594007,y:.014249719447780182},{x:.4429615180190356,y:.01516630892323094},{x:.4447171588106798,y:.015891152767997317},{x:.5224141588106799,y:.0573061527679973},{x:.525028554951968,y:.05904868699814221},{x:.5277374225537912,y:.06064039332865708},{x:.5286915199232336,y:.06149010807639827},{x:.529754639763497,y:.06219869339105244},{x:.5319788494519322,y:.06441778869965879},{x:.5343251404217865,y:.06650738469209135},{x:.5350951339540482,y:.06752690757225652},{x:.5359995881074716,y:.06842928201075814},{x:.5377481362120787,y:.07103965980959966},{x:.5396416839038074,y:.07354684346181917},{x:.5707946839038074,y:.12450984346181915},{x:.5718407730360667,y:.12667263757185424},{x:.573076251912317,y:.12873311634664666},{x:.5737567016649755,y:.13063382885667474},{x:.5746357412153917,y:.13245124718509382},{x:.57523978983892,y:.1347765656784282},{x:.576049549867314,y:.13703848290314058},{x:.576346114353134,y:.13903542291661675},{x:.5768537026781452,y:.1409894121704204},{x:.5769924975430949,y:.14338789436140983},{x:.5773454200998597,y:.14576432582559334},{x:.5830324200998597,y:.2611263258255933},{x:.5829003037879823,y:.26382496142481277},{x:.5829742287592172,y:.2665258175697889},{x:.5826851199428378,y:.2682203519457296},{x:.5826010630436497,y:.26993731586400416},{x:.5819450076216034,y:.2725583233230625},{x:.5814906012502021,y:.27522170532098544},{x:.5808764603215925,y:.2768272773619606},{x:.5804590555084463,y:.278494851612457},{x:.5793042728181804,y:.28093750708458076},{x:.5783389976861617,y:.283461062658912},{x:.5774234257367941,y:.284915971131802},{x:.5766887136425759,y:.2864700717712602},{x:.575079581335268,y:.2886405053765124},{x:.5736405324246225,y:.2909272557017569},{x:.5044305324246225,y:.38012925570175693},{x:.5017223718437749,y:.38298983800955333},{x:.499075053174031,y:.3859068173944946},{x:.49869279401231464,y:.38618992769627897},{x:.4983657648506557,y:.38653536283797296},{x:.49515156889241035,y:.38881264393905274},{x:.49198604326106643,y:.39115710813128307},{x:.4915558970220145,y:.39136020348505085},{x:.4911677605809681,y:.39163520096290155},{x:.48757104899345777,y:.3932416662216644},{x:.4840089657752798,y:.3949235187770668},{x:.3737297002329455,y:.43429966367120415},{x:.4408630401939032,y:.4733794631163462},{x:.44336631106573315,y:.475186847643908},{x:.4459719275146733,y:.476843279595192},{x:.4469351296354233,y:.4777635673817196},{x:.4480152047486495,y:.4785433915190981},{x:.45011777274311354,y:.48080441158023823},{x:.45235016915983667,y:.4829373462081214},{x:.4531153243813002,y:.4840278623347861},{x:.4540225100120052,y:.48500341457167107},{x:.4556435746202097,y:.4876311804334344},{x:.4574169612623637,y:.4901586502563309},{x:.45795466509848404,y:.4913774867999537},{x:.45865409861163536,y:.4925112772109775},{x:.4597313632297904,y:.4954048053049642},{x:.460977589843244,y:.49822968107500176},{x:.46126717863714684,y:.4995299988307428},{x:.46173198119508085,y:.5007784564862466},{x:.46222404714804793,y:.5038265501505143},{x:.4628952219429378,y:.5068402734760588},{x:.4768502219429378,y:.6216502734760588},{x:.47694604753136066,y:.6258560133977795},{x:.4770801736029929,y:.6300607061367898},{x:.47704647561686464,y:.6302637547476413},{x:.47705116403527437,y:.6304695272224051},{x:.47632464920624185,y:.6346131496757303},{x:.47563590322258376,y:.6387632171212809},{x:.475563239914934,y:.6389557900590453},{x:.4755276940283349,y:.6391585233384632},{x:.47400675833929046,y:.6430807912362932},{x:.4725216084222428,y:.647016748623825},{x:.4724127722032346,y:.6471914454185},{x:.4723383580201142,y:.6473833485763381},{x:.4700814501766401,y:.6509335313629835},{x:.46785696980463054,y:.6545041220574128},{x:.46771614318912413,y:.6546542292091504},{x:.46760572040480797,y:.6548279275146733},{x:.4646995721096373,y:.6578695936566139},{x:.4618212468158623,y:.6609376018599591},{x:.3721282468158623,y:.739463601859959},{x:.3693406873548985,y:.7414576112446344},{x:.36664335021940475,y:.7435720694617842},{x:.36575927454484214,y:.7440194833243711},{x:.36495338890552403,y:.7445959530105889},{x:.3618303796850022,y:.746007822191186},{x:.35877236079175173,y:.7475554273162446},{x:.35781798626885214,y:.7478217696388809},{x:.3569151218394033,y:.7482299421328396},{x:.35357667835226414,y:.7490054137685334},{x:.3502754956523681,y:.7499266922044516},{x:.21714549565236804,y:.7733246922044517},{x:.2164184100494338,y:.7733799121498203},{x:.21571010443589486,y:.773553134187072},{x:.21202614434596675,y:.7737134914026773},{x:.20834928456346336,y:.7739927377465721},{x:.20762539682958886,y:.7739050492917646},{x:.20689690716677497,y:.7739367593459113},{x:.061505907166774995,y:.7659797593459113},{x:.05835682356136361,y:.7654946428322841},{x:.055185935509274225,y:.7651823376181454},{x:.05400593378019863,y:.7648243880069794},{x:.05278721145616079,y:.7646366437616691},{x:.0497932781460736,y:.7635464928911877},{x:.046744245543570956,y:.7626215789630079},{x:.045656749721751114,y:.7620403003359452},{x:.0444980718907103,y:.7616184026130197},{x:.04177434405403643,y:.7599651112722733},{x:.03896433951411791,y:.7584631325536145},{x:.03801114145411163,y:.7576808631223083},{x:.03695703545532078,y:.7570410252146568},{x:.03460818442533898,y:.7548881284626934},{x:.03214519484660536,y:.7528668051533947},{x:.03136292541529926,y:.7519136070933885},{x:.03045389995114224,y:.7510804176129765},{x:.02857019075568381,y:.7485106500646154},{x:.026548867446385453,y:.7460476604858821},{x:.025967588819322866,y:.7449601646640625},{x:.025238577228599887,y:.7439656426153641},{x:.023892399755650346,y:.7410777589963466},{x:.02239042103699209,y:.738267754456429},{x:.022032471425826126,y:.7370877527273536},{x:.021511489215134356,y:.7359701170349662},{x:.02075457631003429,y:.7328750970932278},{x:.01982966238185463,y:.7298260644907257},{x:.019708797589401895,y:.7285989036590902},{x:.01941586581292807,y:.7274011044358949},{x:.019277305214138767,y:.7242178880520896},{x:.018964999999999996,y:.721047},{x:.018964999999999996,y:.05103000000000002}],[{x:.10896499999999999,y:.09660579683225357},{x:.10896499999999999,y:.37786028838708235},{x:.29722384626437015,y:.36605169579422814},{x:.44137514989764515,y:.3145812530901673},{x:.49232133133007555,y:.24891875813083103},{x:.48801965008125897,y:.1616582425292873},{x:.46925190911582665,y:.130956211173677},{x:.41203782454012283,y:.1004592638951106},{x:.10896499999999999,y:.09660579683225357}],[{x:.10896499999999999,y:.47257215902605326},{x:.10896499999999999,y:.6784424315209651},{x:.20665565807681563,y:.6837888736412973},{x:.32230778354311135,y:.6634626629325134},{x:.3846372425734713,y:.608893375476212},{x:.3762519660226853,y:.5399063743443061},{x:.2981741908903496,y:.4944555775409729},{x:.10896499999999999,y:.47257215902605326}]],C:[[{x:.028007484408327545,y:.4010798543150725},{x:.028340096336253087,y:.39680461654123217},{x:.028649292669517497,y:.39252762152779447},{x:.06572429266951751,y:.1769866215277945},{x:.0657499934516808,y:.17689321918606288},{x:.06575739253020782,y:.1767966283931179},{x:.06691993730130205,y:.17264138379230456},{x:.0680646634579554,y:.1684811950870131},{x:.0681080922997215,y:.16839460141895576},{x:.06813419313592875,y:.16830131007962543},{x:.07008504794245551,y:.16445270857242494},{x:.07201939106115751,y:.16059578172109576},{x:.07207887901649253,y:.16051932447281397},{x:.0721226785698821,y:.1604329177209502},{x:.1274306785698821,y:.07363491772095027},{x:.13009575906138268,y:.07023973030268985},{x:.13274648275581225,y:.06683332229320074},{x:.13281865262016482,y:.06677089175108791},{x:.13287757357360944,y:.06669582922279092},{x:.1361538134974972,y:.06388581079003605},{x:.13941816151489866,y:.0610619864944041},{x:.19692016151489866,y:.020443986494404057},{x:.19808425112310213,y:.019782383965415776},{x:.19914710087537263,y:.01896802966513257},{x:.20191114759162085,y:.01760739299916557},{x:.20458957759683996,y:.01608512525217841},{x:.2058603718000633,y:.015663337846789194},{x:.20706167183504787,y:.015071982836463577},{x:.21003805521400143,y:.014276729186446702},{x:.2129619996426652,y:.013306247159584957},{x:.21429066253234816,y:.013140483931242813},{x:.21558424756339917,y:.01279485365228588},{x:.32760524756339915,y:-.005618146347714133},{x:.32775803960473765,y:-.005628051859015257},{x:.32790622767465843,y:-.005666572281957827},{x:.3321581535063009,y:-.005913311337168391},{x:.3364083102547015,y:-.006188849089881349},{x:.3365600989091985,y:-.006168756021014132},{x:.33671295454862427,y:-.006177626226551311},{x:.34093131721939995,y:-.005590114680318674},{x:.3451535631465426,y:-.005031193603710363},{x:.34529851526132993,y:-.004981874120043047},{x:.3454501643137599,y:-.004960753231150514},{x:.44307616431375996,y:.01857424676884946},{x:.4458503498549469,y:.019539172468847843},{x:.4486819664572553,y:.020319643122350156},{x:.45000735163266253,y:.02098507354168687},{x:.45140809089867484,y:.021472282957461515},{x:.45394072357704407,y:.022959884631265325},{x:.4565656691892177,y:.024277779754777677},{x:.4577357684253341,y:.0251889939358613},{x:.459014543037309,y:.025940112433793877},{x:.4612082951993476,y:.027893222383335445},{x:.4635256946335971,y:.029697896006345384},{x:.5358116946335971,y:.09837789600634546},{x:.5383578959705028,y:.10132350300922108},{x:.5409714489909738,y:.10420951799057969},{x:.5412394420583803,y:.10465705806338507},{x:.5415805729157932,y:.10505169984914184},{x:.5435031902892489,y:.10843744707814906},{x:.545503491029224,y:.11177788699125937},{x:.5456790239480676,y:.11226911056087577},{x:.5459366092786453,y:.11272272074420048},{x:.5471617575812067,y:.11641849583208026},{x:.548471935605029,y:.12008498944441898},{x:.572709935605029,y:.21701898944441894},{x:.5740007070580636,y:.2257455880614603},{x:.5735642017652605,y:.23455632455146336},{x:.571417194380227,y:.24311260725223527},{x:.5676421931927146,y:.25108562301800397},{x:.5623842693813143,y:.2581689733242098},{x:.5558454820094204,y:.2640904489909738},{x:.5482771130087407,y:.26862249102922403},{x:.539970010555581,y:.27159093560502906},{x:.5312434119385397,y:.2728817070580635},{x:.5224326754485367,y:.2724452017652604},{x:.5138763927477648,y:.270298194380227},{x:.5059033769819961,y:.26652319319271456},{x:.49882002667579023,y:.2612652693813142},{x:.49289855100902624,y:.25472648200942033},{x:.488366508970776,y:.24715811300874066},{x:.48539806439497096,y:.23885101055558106},{x:.46433420621000654,y:.15461122058523102},{x:.4102697826671089,y:.10324381045150927},{x:.3332137540403124,y:.08466767669890593},{x:.24039332695070226,y:.09992465997883551},{x:.1985742470214596,y:.12946463056361485},{x:.15288732813236672,y:.2011637190451272},{x:.11884238546013813,y:.39908903228895243},{x:.16184523767713488,y:.5942488915238071},{x:.2166399992296726,y:.6603981208316636},{x:.2708106585112101,y:.6880654725502051},{x:.33167151101531583,y:.6962265900331734},{x:.41875307675349,y:.6679697644015699},{x:.4604926982936834,y:.628705384802963},{x:.487421989657252,y:.5630715564186946},{x:.49155436139101494,y:.5552777692634718},{x:.49712782320648147,y:.5484399232752638},{x:.5039281900917167,y:.5428207930406891},{x:.5116941277610109,y:.5386363185834178},{x:.5201271955849208,y:.5360473069101626},{x:.5289033154962927,y:.5351532522875923},{x:.5376852261286371,y:.5359885127334604},{x:.5461354435813054,y:.5385209896572519},{x:.5539292307365281,y:.5426533613910148},{x:.5607670767247361,y:.5482268232064814},{x:.5663862069593109,y:.5550271900917166},{x:.5705706814165822,y:.5627931277610108},{x:.5731596930898373,y:.5712261955849207},{x:.5740537477124077,y:.5800023154962926},{x:.5732184872665396,y:.588784226128637},{x:.570686010342748,y:.5972344435813053},{x:.540057010342748,y:.6718854435813053},{x:.5396985836895672,y:.6725614478775368},{x:.539454213118803,y:.6732865233897278},{x:.5376352487491008,y:.6764529645154376},{x:.5359246386089851,y:.679679230736528},{x:.5354412171276051,y:.6802723202285732},{x:.5350600868536766,y:.680935789284769},{x:.5326583313554347,y:.6836865257875079},{x:.5303511767935185,y:.686517076724736},{x:.5297613381003629,y:.6870044593160238},{x:.5292580947459566,y:.687580825172473},{x:.47307109474595666,y:.7404358251724731},{x:.4722065860115991,y:.7411021817697292},{x:.4714497622811152,y:.7418887085063782},{x:.4687194058651613,y:.7437900730587934},{x:.46608420409854834,y:.7458212660502541},{x:.46510630693397415,y:.746306161504971},{x:.46421058160492856,y:.7469299263656303},{x:.4611617503991064,y:.748262090618912},{x:.45818091720073817,y:.7497401524453693},{x:.45712721164557074,y:.7500249524971546},{x:.4561270069400303,y:.7504619845480405},{x:.3497190069400303,y:.7849899845480404},{x:.34852117258500637,y:.7852523061157466},{x:.34737251112679673,y:.7856814874310271},{x:.34422084285321763,y:.7861940634064482},{x:.3411016855274714,y:.7868771480384597},{x:.33987569082458696,y:.7869007432807547},{x:.3386653714532072,y:.7870975852636362},{x:.3354742629896646,y:.786985452257037},{x:.33228177619648713,y:.7870468942022847},{x:.3310747354346284,y:.7868308563672394},{x:.32984927004476555,y:.7867877944907101},{x:.25121827004476555,y:.7762437944907102},{x:.24809780050166644,y:.7755083028870222},{x:.24494229970605153,y:.7749416523797719},{x:.24381291428322105,y:.7744983594176508},{x:.24263200473447152,y:.7742200201979198},{x:.2397149814324578,y:.772889887451158},{x:.2367306607297473,y:.771718517308175},{x:.16743766072974728,y:.7363275173081749},{x:.16716950847174827,y:.7361554960544541},{x:.16687461978467572,y:.7360349240533984},{x:.16345937419922074,y:.733775423054901},{x:.16001260855282193,y:.7315643025810339},{x:.15978316844705134,y:.7313432727571054},{x:.15951746839392553,y:.7311674875843215},{x:.15660865257214304,y:.7282851209029094},{x:.15365948376641753,y:.7254440558690711},{x:.15347757306746915,y:.725182511527114},{x:.15325127235232486,y:.7249582685082102},{x:.08558827235232488,y:.6432742685082102},{x:.0845522070982367,y:.6417389136031936},{x:.0833480194008015,y:.6403315480201149},{x:.08209078724421986,y:.6380913122274521},{x:.0806538380596292,y:.6359618836319892},{x:.07993721339171088,y:.6342539038369039},{x:.07903072722802115,y:.632638655023214},{x:.07823470075697891,y:.6301961909068614},{x:.07724079305844417,y:.627827343805619},{x:.07687114846079628,y:.6260123758261444},{x:.07629719958575912,y:.6242513168879111},{x:.02905219958575911,y:.40983931688791114},{x:.028544362954760993,y:.4055813372409792},{x:.028013217832748447,y:.4013262022752188},{x:.028022142274708197,y:.401202753871557},{x:.028007484408327545,y:.4010798543150725}]],D:[[{x:.019456783112310236,y:.0515304721392918},{x:.019516560837245702,y:.0508455251733057},{x:.019462408649259272,y:.05016011050819538},{x:.01989956114396584,y:.04645701928180655},{x:.020223754746627687,y:.042742334175020345},{x:.02041601038349858,y:.04208221032853139},{x:.020496616482350807,y:.04139940114622653},{x:.021647806474261868,y:.03785274800035644},{x:.022690469901424933,y:.03427268656062632},{x:.023007815173924504,y:.033662754022853354},{x:.023220081912440925,y:.03300879029730612},{x:.025041069815762075,y:.029754871123364675},{x:.026762134096652887,y:.026447013104097812},{x:.027192373603928278,y:.025910711240413317},{x:.027528143690388265,y:.025310724430849408},{x:.029948949961216734,y:.02247458551787214},{x:.03228227556070457,y:.019566050047680916},{x:.03280887543977226,y:.01912398863794477},{x:.03325524541805519,y:.01860103590097925},{x:.03618283982900684,y:.01629166847686688},{x:.03903875835284746,y:.013894228942745224},{x:.03964148166567549,y:.013563396159022682},{x:.0401812977878431,y:.013137574275061882},{x:.04350317452751879,y:.011443726034814963},{x:.04677193462845869,y:.0096495146935595},{x:.04742761905614622,y:.009442624254195854},{x:.048040136491355995,y:.009130297319436702},{x:.05162863769958001,y:.008117061901006828},{x:.05518462276008175,y:.0069950292882567724},{x:.05586807071778482,y:.006920031876811272},{x:.05652975076450537,y:.006733202440201605},{x:.060246972352300414,y:.0064395179124900545},{x:.06395352786070822,y:.006032783112310258},{x:.06463847482669428,y:.006092560837245719},{x:.06532388949180462,y:.006038408649259287},{x:.22607288949180462,y:.009146408649259287},{x:.22716730592225892,y:.009275605270020776},{x:.2282688262216939,y:.009242558031150067},{x:.23153975417198444,y:.00979177582685766},{x:.23483359885377353,y:.010180616482350843},{x:.23588178136904675,y:.010520840680108605},{x:.23696858346127098,y:.010703324384590318},{x:.374121583461271,y:.04785532438459028},{x:.3763172878682137,y:.048688585594252994},{x:.37858028056243914,y:.049316523610364836},{x:.3804311803743379,y:.05024979166335608},{x:.3823691959266467,y:.050985260963484026},{x:.38436014929137596,y:.0522308719724549},{x:.38645715458576285,y:.05328823230909956},{x:.47004915458576285,y:.1063032323090996},{x:.47296331256678825,y:.10858070495130694},{x:.47594842000778254,y:.11076435600861785},{x:.476434095048061,y:.11129319075325024},{x:.4769998347544389,y:.11173532762855881},{x:.47941368513584726,y:.11453756329148114},{x:.48191542538645477,y:.11726162167794474},{x:.5445294253864548,y:.20053762167794476},{x:.5457907389554543,y:.20261097926106453},{x:.5472304508598836,y:.2045646816997861},{x:.5480776582474705,y:.2063702359380903},{x:.54911422277829,y:.20807414921008693},{x:.5499468085621922,y:.21035373787896267},{x:.5509777083681839,y:.21255077433219424},{x:.570480708368184,y:.26758877433219413},{x:.5715324066676154,y:.27184261440989077},{x:.5725895850614416,y:.2760950958693092},{x:.5821235850614417,y:.3411630958693092},{x:.5823063349967632,y:.3450227385412275},{x:.5825832689280143,y:.34887676846995497},{x:.5805752689280143,y:.424797768469955},{x:.5800798101377765,y:.42875301375722},{x:.5796594372976747,y:.43271694253692033},{x:.5588164372976746,y:.5335539425369203},{x:.5581925601051908,y:.535556542700639},{x:.5577783377379867,y:.5376127649642906},{x:.5568838034059929,y:.5397575559956548},{x:.5561926080991778,y:.5419762423834013},{x:.555190030621201,y:.5438186507441294},{x:.5543826183570809,y:.5457545524985521},{x:.5020956183570809,y:.6430055524985521},{x:.5018901867095668,y:.6433113858234256},{x:.5017428412228655,y:.6436490624319612},{x:.4994325691935421,y:.6469701275279692},{x:.4971767628200625,y:.6503284258808291},{x:.4969156133622187,y:.650588304977856},{x:.4967052216394318,y:.6508907475465959},{x:.49379143318032753,y:.6536972875938759},{x:.49092379998669317,y:.6565509711937552},{x:.49061696854573045,y:.6567549090549786},{x:.49035161582277553,y:.657010494885618},{x:.39890061582277553,y:.7292364948856179},{x:.3986791836579038,y:.7293785203585265},{x:.39848760231040037,y:.7295587979940886},{x:.39496847203231433,y:.7317585520660096},{x:.39147518928128755,y:.7339991259907827},{x:.39123030407812903,y:.7340952232117042},{x:.391007233490524,y:.7342346611962726},{x:.3871265715837099,y:.7357055993513507},{x:.38326329699273004,y:.7372216156196327},{x:.3830043695523095,y:.737268091626259},{x:.38275838220218455,y:.7373613314362847},{x:.25909638220218456,y:.7708063314362847},{x:.2580664240588666,y:.7709788511982676},{x:.2570738325025125,y:.7713034106651087},{x:.2537238261308602,y:.7717062438265866},{x:.2503960471743838,y:.7722636525302581},{x:.2493522224520667,y:.7722319225075465},{x:.24831538485324267,y:.7723566006488801},{x:.17218438485324267,y:.7739936006488801},{x:.16854768223369815,y:.7737142062783378},{x:.16490357022768087,y:.7735589167265521},{x:.06552457022768086,y:.7594769167265522},{x:.06454980411013514,y:.759239472501363},{x:.06355033417502035,y:.7591522452533723},{x:.06027159361314519,y:.7581973390517399},{x:.056953647958865025,y:.7573891174476861},{x:.056043934769293216,y:.7569660682109414},{x:.05508068656062633,y:.7566855300985751},{x:.05205123903764884,y:.7551093215998242},{x:.04895472299174925,y:.7536693306611393},{x:.04814502249785432,y:.7530769339577588},{x:.0472550131040978,y:.7526138659033472},{x:.04459127858939255,y:.7504769279161366},{x:.04183518952697092,y:.7484605056870383},{x:.041156618064647085,y:.7477215269901124},{x:.040374050047680896,y:.7470937244392954},{x:.03817839436480973,y:.744478178292066},{x:.035868647242901154,y:.7419628147479951},{x:.03534728193289863,y:.7411056525944231},{x:.03470222894274521,y:.7403372416471526},{x:.03305902990826266,y:.7373436013115269},{x:.03128438701344127,y:.73442596046285},{x:.030940263632238257,y:.7334835551134912},{x:.030457514693559486,y:.7326040653715413},{x:.029429919524844063,y:.7293473747667649},{x:.028258579388326675,y:.7261395799150647},{x:.028104922404476318,y:.7251481474789881},{x:.02780302928825676,y:.7241913772399183},{x:.02743052789135989,y:.7207967891595589},{x:.026907504457698045,y:.7174221140620348},{x:.02695021882291786,y:.7164197547317572},{x:.026840783112310238,y:.7154224721392919},{x:.019456783112310236,y:.0515304721392918}],[{x:.1099671672449683,y:.09691838411671685},{x:.1164055200593884,y:.675787686211921},{x:.17390769441284104,y:.6839357418297609},{x:.2408956143230629,y:.6824953400894312},{x:.35035782392371695,y:.652890743688808},{x:.42724604872976657,y:.5921661050862587},{x:.4720072878873445,y:.5089126143655517},{x:.4907125333997566,y:.41841792349882906},{x:.4925121994894803,y:.35037387509349616},{x:.4841787199640398,y:.2934992321564965},{x:.4684498534661817,y:.24911194023683725},{x:.41491413338319044,y:.1779099626338861},{x:.34401115658372555,y:.1329424859013802},{x:.21878934362335548,y:.0990224054430332},{x:.1099671672449683,y:.09691838411671685}]],E:[[{x:.035078,y:.05103000000000002},{x:.03594266238185463,y:.04225093550927423},{x:.03850342103699209,y:.03380924554357098},{x:.042661867446385456,y:.026029339514117924},{x:.04825819484660536,y:.019210194846605383},{x:.05507733951411791,y:.013613867446385479},{x:.06285724554357096,y:.009455421036992116},{x:.07129893550927423,y:.006894662381854655},{x:.080078,y:.0060300000000000215},{x:.521974,y:.0060300000000000215},{x:.5307530644907258,y:.006894662381854655},{x:.5391947544564291,y:.009455421036992116},{x:.5469746604858822,y:.013613867446385479},{x:.5537938051533947,y:.019210194846605383},{x:.5593901325536146,y:.026029339514117924},{x:.5635485789630079,y:.03380924554357098},{x:.5661093376181454,y:.04225093550927425},{x:.5669740000000001,y:.05103000000000002},{x:.5661093376181454,y:.05980906449072579},{x:.5635485789630079,y:.06825075445642906},{x:.5593901325536146,y:.07603066048588211},{x:.5537938051533947,y:.08284980515339466},{x:.5469746604858822,y:.08844613255361455},{x:.5391947544564291,y:.09260457896300792},{x:.5307530644907258,y:.09516533761814538},{x:.521974,y:.09603000000000002},{x:.125078,y:.09603000000000002},{x:.125078,y:.345019},{x:.389405,y:.345019},{x:.3981840644907258,y:.34588366238185464},{x:.40662575445642907,y:.3484444210369921},{x:.4144056604858821,y:.35260286744638547},{x:.42122480515339467,y:.35819919484660534},{x:.42682113255361454,y:.3650183395141179},{x:.4309795789630079,y:.372798245543571},{x:.43354033761814537,y:.3812399355092742},{x:.434405,y:.390019},{x:.43354033761814537,y:.3987980644907258},{x:.4309795789630079,y:.407239754456429},{x:.42682113255361454,y:.4150196604858821},{x:.42122480515339467,y:.42183880515339467},{x:.4144056604858821,y:.42743513255361454},{x:.40662575445642907,y:.43159357896300793},{x:.3981840644907258,y:.43415433761814537},{x:.389405,y:.435019},{x:.125078,y:.435019},{x:.125078,y:.684004},{x:.521974,y:.684004},{x:.5307530644907258,y:.6848686623818546},{x:.5391947544564291,y:.6874294210369921},{x:.5469746604858822,y:.6915878674463855},{x:.5537938051533947,y:.6971841948466053},{x:.5593901325536146,y:.7040033395141179},{x:.5635485789630079,y:.711783245543571},{x:.5661093376181454,y:.7202249355092742},{x:.5669740000000001,y:.729004},{x:.5661093376181454,y:.7377830644907257},{x:.5635485789630079,y:.746224754456429},{x:.5593901325536146,y:.7540046604858821},{x:.5537938051533947,y:.7608238051533946},{x:.5469746604858822,y:.7664201325536145},{x:.5391947544564291,y:.7705785789630079},{x:.5307530644907258,y:.7731393376181454},{x:.521974,y:.774004},{x:.080078,y:.774004},{x:.07129893550927423,y:.7731393376181454},{x:.06285724554357093,y:.7705785789630079},{x:.05507733951411791,y:.7664201325536145},{x:.04825819484660536,y:.7608238051533946},{x:.042661867446385456,y:.7540046604858821},{x:.03850342103699209,y:.746224754456429},{x:.03594266238185463,y:.7377830644907257},{x:.035078,y:.729004},{x:.035078,y:.05103000000000002}]],F:[[{x:.041426000000000004,y:.05103000000000002},{x:.04229066238185464,y:.04225093550927423},{x:.0448514210369921,y:.03380924554357098},{x:.04900986744638546,y:.026029339514117924},{x:.054606194846605366,y:.019210194846605383},{x:.06142533951411792,y:.013613867446385479},{x:.06920524554357096,y:.009455421036992116},{x:.07764693550927423,y:.006894662381854655},{x:.086426,y:.0060300000000000215},{x:.09520506449072577,y:.006894662381854655},{x:.10364675445642904,y:.009455421036992116},{x:.11142666048588211,y:.013613867446385486},{x:.11824580515339464,y:.019210194846605383},{x:.12384213255361454,y:.026029339514117924},{x:.1280005789630079,y:.03380924554357098},{x:.13056133761814537,y:.04225093550927425},{x:.131426,y:.05103000000000002},{x:.131426,y:.347323},{x:.447344,y:.347323},{x:.4561230644907258,y:.3481876623818546},{x:.4645647544564291,y:.35074842103699205},{x:.47234466048588214,y:.35490686744638544},{x:.47916380515339463,y:.3605031948466053},{x:.48476013255361455,y:.36732233951411786},{x:.48891857896300794,y:.37510224554357097},{x:.4914793376181454,y:.3835439355092742},{x:.492344,y:.392323},{x:.4914793376181454,y:.4011020644907258},{x:.48891857896300794,y:.409543754456429},{x:.48476013255361455,y:.4173236604858821},{x:.47916380515339463,y:.42414280515339464},{x:.47234466048588214,y:.4297391325536145},{x:.4645647544564291,y:.4338975789630079},{x:.4561230644907258,y:.43645833761814534},{x:.447344,y:.43732299999999996},{x:.131426,y:.43732299999999996},{x:.131426,y:.679393},{x:.515626,y:.679393},{x:.5244050644907258,y:.6802576623818547},{x:.532846754456429,y:.6828184210369922},{x:.5406266604858821,y:.6869768674463855},{x:.5474458051533947,y:.6925731948466054},{x:.5530421325536146,y:.6993923395141179},{x:.5572005789630079,y:.707172245543571},{x:.5597613376181454,y:.7156139355092743},{x:.5606260000000001,y:.7243930000000001},{x:.5597613376181454,y:.7331720644907258},{x:.5572005789630079,y:.7416137544564291},{x:.5530421325536146,y:.7493936604858822},{x:.5474458051533947,y:.7562128051533947},{x:.5406266604858821,y:.7618091325536146},{x:.532846754456429,y:.7659675789630079},{x:.5244050644907258,y:.7685283376181454},{x:.515626,y:.7693930000000001},{x:.10586481668800227,y:.7693930000000001},{x:.10364675445642904,y:.7705785789630079},{x:.09520506449072577,y:.7731393376181454},{x:.086426,y:.774004},{x:.0776469355092742,y:.7731393376181454},{x:.06920524554357094,y:.7705785789630079},{x:.06142533951411792,y:.7664201325536145},{x:.054606194846605366,y:.7608238051533946},{x:.04900986744638546,y:.7540046604858821},{x:.0448514210369921,y:.746224754456429},{x:.04229066238185464,y:.7377830644907257},{x:.041426000000000004,y:.729004},{x:.041426000000000004,y:.05103000000000002}]],G:[[{x:.011397831509003739,y:.41623356008285023},{x:.011618856500496228,y:.4138403978921803},{x:.011624876992355357,y:.4114370583257866},{x:.031979876992355355,y:.20994505832578658},{x:.0322125865037964,y:.20879027461506633},{x:.03227702681480045,y:.2076140405475535},{x:.033082276634523504,y:.2044745765152392},{x:.033722542929381774,y:.20129735748690203},{x:.034176068118796386,y:.2002101619949014},{x:.03446874211029117,y:.19906910061620064},{x:.03587099832954512,y:.19614705695158466},{x:.03711880677043453,y:.1931557970536144},{x:.03777571891913337,y:.19217797009338475},{x:.03828537929375919,y:.19111593175236494},{x:.08239837929375919,y:.11845093175236496},{x:.08400149586436068,y:.11631468084865614},{x:.08543403702225794,y:.1140604899753128},{x:.08664282877724949,y:.11279494315419919},{x:.08769326713863865,y:.11139516977529508},{x:.08968234215056696,y:.10961271886167734},{x:.09152712825517066,y:.10768131654967852},{x:.15960912825517065,y:.049144316549678456},{x:.16129904644183068,y:.0479582081853546},{x:.16285577619764602,y:.04660201166682107},{x:.1649006360722032,y:.045430348778213794},{x:.16682965744636918,y:.04407642028337947},{x:.16871850259167306,y:.043242789341903884},{x:.17050990103726027,y:.04221635466854622},{x:.25257090103726026,y:.005359354668546305},{x:.2555014876285109,y:.004375276469579791},{x:.2583690572759664,y:.003220377345201267},{x:.25967433471463813,y:.0029740526131209386},{x:.2609335532503684,y:.0025512125194529015},{x:.2639998135747395,y:.0021577721889240492},{x:.26703759331756605,y:.0015844992133087973},{x:.35309859331756605,y:-.006038500786691249},{x:.3541123404679588,y:-.006028536718703998},{x:.3551159915981175,y:-.006171599559831674},{x:.3585153812714738,y:-.005985259459774228},{x:.361919709861342,y:-.005951798491220829},{x:.36291203425126567,y:-.00574425362199294},{x:.3639243106821295,y:-.005688764928569123},{x:.3672220288859873,y:-.004842817275250554},{x:.37055441634545594,y:-.004145847688979236},{x:.3714871835051078,y:-.003748697851442632},{x:.37246918402112983,y:-.003496790022837183},{x:.4525501840211298,y:.02567020997716287},{x:.4548144879103283,y:.026756908839544704},{x:.45716266717941917,y:.02764799841997529},{x:.45878159595452606,y:.02866082810547922},{x:.4605032369247208,y:.02948708879101062},{x:.4625120284186098,y:.03099465081435172},{x:.46464124512829075,y:.032326725408117304},{x:.4660314733714444,y:.03363593119127184},{x:.46755883802994086,y:.034782191000688294},{x:.46923492039795345,y:.03665268142188218},{x:.47106334994415,y:.038374550149380404},{x:.53517534994415,y:.11188255014938031},{x:.5366918789074028,y:.11401106513419482},{x:.5383741006891446,y:.11601120663268963},{x:.5392453250303639,y:.11759493887966013},{x:.5402941837404813,y:.11906705813061697},{x:.5413663203511413,y:.12145053442062861},{x:.5426260104640281,y:.12374042895017842},{x:.5431715236397763,y:.1254636976633839},{x:.5439130326051668,y:.12711215273922669},{x:.5444995752545472,y:.12965899467727895},{x:.5452883245139833,y:.13215064287530112},{x:.5896823245139834,y:.3420786428753011},{x:.5897067631627176,y:.34229945557802055},{x:.5897717252277992,y:.3425119065778641},{x:.5901917436343531,y:.346681442891342},{x:.5906527316031134,y:.3508466486034176},{x:.590633622248786,y:.3510679861958218},{x:.5906558889520306,y:.35128902847947113},{x:.590254400640623,y:.3554603898480228},{x:.5898939395311937,y:.3596354965915505},{x:.5898320165355749,y:.3598488531940917},{x:.589810732180064,y:.3600699922305474},{x:.5886031661213459,y:.3640828755761044},{x:.5874351082520124,y:.3681074363403587},{x:.5873327512810971,y:.3683046127784522},{x:.5872687338126765,y:.3685173503185603},{x:.5853014960930706,y:.3722175427846122},{x:.5833707292727002,y:.37593689595641405},{x:.5832318718474782,y:.3761103148501221},{x:.583127581421558,y:.3763064755095204},{x:.5804762718833937,y:.37955178077467916},{x:.577856994398102,y:.38282299369748307},{x:.5776869727315521,y:.38296599065597503},{x:.5775464171707139,y:.38313803609053093},{x:.5743129241526703,y:.3858037388934479},{x:.5711057933673104,y:.38850110068914456},{x:.5709111412967293,y:.38860818041949885},{x:.5707397220723512,y:.3887494990196469},{x:.5670483068977423,y:.3907331578965531},{x:.5633765710498215,y:.39275301046402805},{x:.5631647689451196,y:.3928200579522583},{x:.5629690736018615,y:.39292521892344706},{x:.5589615952856832,y:.39415060297614785},{x:.5549663571246989,y:.39541532451398326},{x:.5547455444219794,y:.39543976316271745},{x:.5545330934221359,y:.39550472522779906},{x:.5503635571086607,y:.3959247436343527},{x:.5461983513965825,y:.39638573160311336},{x:.5459770138041778,y:.396366622248786},{x:.5457559715205288,y:.3963888889520305},{x:.32969497152052885,y:.39686888895203054},{x:.32091400776945256,y:.3960237321800639},{x:.31246664968143967,y:.39348173381267654},{x:.3046775244904796,y:.389340581421558},{x:.29784596390946905,y:.3837594171707138},{x:.2922345009803531,y:.3769527220723512},{x:.2880587810765529,y:.3691820736018615},{x:.2854792747722009,y:.3607460934221358},{x:.2845951110479695,y:.3519689715205288},{x:.2854402678199361,y:.3431880077694525},{x:.2879822661873235,y:.33474064968143963},{x:.29212341857844204,y:.32695152449047954},{x:.29770458282928614,y:.320119963909469},{x:.3045112779276488,y:.31450850098035305},{x:.31228192639813845,y:.3103327810765529},{x:.3207179065778642,y:.3077532747722009},{x:.3294950284794712,y:.30686911104796943},{x:.49017057214072013,y:.30651215509128404},{x:.45965681956734333,y:.16222033524572274},{x:.4108567628008364,y:.10626833604444391},{x:.35107150330533127,y:.0844934248457151},{x:.2825297162303303,y:.09056463065174497},{x:.21333680545064249,y:.12164203785622632},{x:.15562253329738823,y:.17126485077351794},{x:.1205010051965362,y:.2291186770707186},{x:.10185989085514695,y:.41364510354456796},{x:.13655871914038514,y:.5827099362211221},{x:.190187982415082,y:.6526649281775241},{x:.2569251189377254,y:.6872526727450867},{x:.3715857772516941,y:.6967797369989467},{x:.4883723057362636,y:.6711064406866752},{x:.49713228125159653,y:.6700660353148682},{x:.5059269093127409,y:.6707546074846872},{x:.5144182172953911,y:.6731456957538017},{x:.5222798889957544,y:.6771474119409674},{x:.529209804779262,y:.6826059723372997},{x:.5349416518686954,y:.6893116075279637},{x:.5392551585948644,y:.6970066237131456},{x:.5419845593133248,y:.7053953057362636},{x:.5430249646851317,y:.7141552812515966},{x:.5423363925153128,y:.722949909312741},{x:.5399453042461984,y:.7314412172953911},{x:.5359435880590326,y:.7393028889957545},{x:.5304850276627003,y:.7462328047792621},{x:.5237793924720363,y:.7519646518686954},{x:.5160843762868544,y:.7562781585948645},{x:.5076956942637364,y:.7590075593133249},{x:.38428269426373635,y:.7861375593133247},{x:.3819812519937546,y:.7864108971664274},{x:.3797153389243004,y:.7868977113667894},{x:.37761181025895013,y:.7869298473215656},{x:.37552271874840343,y:.7871779646851318},{x:.3732121724765259,y:.7869970613144796},{x:.370894825552222,y:.7870324638061055},{x:.24049282555222196,y:.7761974638061055},{x:.24043595887820252,y:.7761870527203061},{x:.24037815170992255,y:.776187787986971},{x:.2360978388350013,y:.7753928346522221},{x:.2318155069745089,y:.7746088302209789},{x:.231761764079766,y:.7745875250435272},{x:.2317049242166051,y:.7745769685631748},{x:.227661944055434,y:.7729622424167508},{x:.22361484767780643,y:.7713578609091699},{x:.22356629387164592,y:.7713264803860874},{x:.22351260563766895,y:.7713050378383375},{x:.13987060563766895,y:.7279560378383374},{x:.13900257424615298,y:.727391873258006},{x:.13805978359276902,y:.7269641982011581},{x:.13531067905832161,y:.7249923788161832},{x:.13247402218179744,y:.7231487342752945},{x:.13173273281971745,y:.7224260654354895},{x:.1308914928889356,y:.7218226787027751},{x:.128579894506033,y:.7193524235854973},{x:.12615742040314795,y:.7169907998540069},{x:.12557136040496888,y:.7161373985129647},{x:.12486399957555622,y:.7153814879181388},{x:.05884299957555622,y:.6292624879181389},{x:.05814177883495547,y:.6281337214080167},{x:.057292540659828396,y:.62711165542026},{x:.05581896837632758,y:.6243946553718145},{x:.05418793684040681,y:.6217691571968414},{x:.05372040128165289,y:.6205252782386133},{x:.05308687616260495,y:.6193571728131668},{x:.052171678571706244,y:.6164048994674943},{x:.051084196133809955,y:.613511651036194},{x:.05086831288622884,y:.6122004612006492},{x:.05047484683830003,y:.6109312059739318},{x:.012315846838300032,y:.4250072059739319},{x:.012065742114142504,y:.42261690788694145},{x:.011602778634016861,y:.4202585732767163},{x:.011607833784388823,y:.41824059149262255},{x:.011397831509003739,y:.41623356008285023}]],H:[[{x:.021894999999999998,y:.05103000000000002},{x:.02275966238185463,y:.04225093550927423},{x:.025320421036992093,y:.03380924554357098},{x:.029478867446385455,y:.026029339514117924},{x:.03507519484660536,y:.019210194846605383},{x:.04189433951411791,y:.013613867446385479},{x:.04967424554357096,y:.009455421036992116},{x:.05811593550927423,y:.006894662381854655},{x:.066895,y:.0060300000000000215},{x:.07567406449072576,y:.006894662381854655},{x:.08411575445642903,y:.009455421036992116},{x:.0918956604858821,y:.013613867446385486},{x:.09871480515339463,y:.019210194846605383},{x:.10431113255361453,y:.026029339514117924},{x:.1084695789630079,y:.03380924554357098},{x:.11103033761814536,y:.04225093550927425},{x:.111895,y:.05103000000000002},{x:.111895,y:.359342},{x:.490157,y:.359342},{x:.490157,y:.05103000000000002},{x:.49102166238185463,y:.04225093550927423},{x:.49358242103699207,y:.03380924554357098},{x:.49774086744638546,y:.026029339514117924},{x:.5033371948466053,y:.019210194846605383},{x:.5101563395141179,y:.013613867446385479},{x:.517936245543571,y:.009455421036992116},{x:.5263779355092743,y:.006894662381854655},{x:.535157,y:.0060300000000000215},{x:.5439360644907257,y:.006894662381854655},{x:.552377754456429,y:.009455421036992116},{x:.5601576604858821,y:.013613867446385486},{x:.5669768051533947,y:.019210194846605383},{x:.5725731325536145,y:.026029339514117924},{x:.5767315789630079,y:.03380924554357098},{x:.5792923376181454,y:.04225093550927425},{x:.580157,y:.05103000000000002},{x:.580157,y:.729004},{x:.5792923376181454,y:.7377830644907257},{x:.5767315789630079,y:.746224754456429},{x:.5725731325536145,y:.7540046604858821},{x:.5669768051533947,y:.7608238051533946},{x:.5601576604858821,y:.7664201325536145},{x:.552377754456429,y:.7705785789630079},{x:.5439360644907257,y:.7731393376181454},{x:.535157,y:.774004},{x:.5263779355092743,y:.7731393376181454},{x:.517936245543571,y:.7705785789630079},{x:.5101563395141179,y:.7664201325536145},{x:.5033371948466053,y:.7608238051533946},{x:.49774086744638546,y:.7540046604858821},{x:.49358242103699207,y:.746224754456429},{x:.49102166238185463,y:.7377830644907257},{x:.490157,y:.729004},{x:.490157,y:.44934199999999996},{x:.111895,y:.44934199999999996},{x:.111895,y:.729004},{x:.11103033761814536,y:.7377830644907257},{x:.10846957896300788,y:.746224754456429},{x:.10431113255361453,y:.7540046604858821},{x:.09871480515339463,y:.7608238051533946},{x:.09189566048588207,y:.7664201325536145},{x:.08411575445642903,y:.7705785789630079},{x:.07567406449072576,y:.7731393376181454},{x:.066895,y:.774004},{x:.05811593550927421,y:.7731393376181454},{x:.04967424554357093,y:.7705785789630079},{x:.04189433951411791,y:.7664201325536145},{x:.03507519484660536,y:.7608238051533946},{x:.029478867446385455,y:.7540046604858821},{x:.025320421036992093,y:.746224754456429},{x:.02275966238185463,y:.7377830644907257},{x:.021894999999999998,y:.729004},{x:.021894999999999998,y:.05103000000000002}]],I:[[{x:.25602600000000003,y:.05103000000000002},{x:.25689066238185465,y:.04225093550927423},{x:.2594514210369921,y:.03380924554357098},{x:.2636098674463855,y:.026029339514117924},{x:.26920619484660535,y:.019210194846605383},{x:.27602533951411795,y:.013613867446385479},{x:.283805245543571,y:.009455421036992116},{x:.2922469355092743,y:.006894662381854655},{x:.301026,y:.0060300000000000215},{x:.3098050644907258,y:.006894662381854655},{x:.3182467544564291,y:.009455421036992116},{x:.32602666048588214,y:.013613867446385486},{x:.3328458051533947,y:.019210194846605383},{x:.33844213255361455,y:.026029339514117924},{x:.34260057896300794,y:.03380924554357098},{x:.3451613376181454,y:.04225093550927425},{x:.346026,y:.05103000000000002},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.05103000000000002}]],J:[[{x:.0492700034030052,y:.22191686675397743},{x:.05066400340300519,y:.18438286675397747},{x:.05116783173382979,y:.18068175768771486},{x:.05155979864248331,y:.17696713613904605},{x:.05874879864248331,y:.14209513613904604},{x:.05880353678004782,y:.1419191061579158},{x:.05882437610196882,y:.14173594355086241},{x:.060112741823836933,y:.13770889095133898},{x:.06136821695472819,y:.13367146342030908},{x:.0614562450600313,y:.133509494686791},{x:.06151241721221637,y:.13333391704789688},{x:.07511841721221638,y:.10184091704789687},{x:.07557207470549994,y:.10102219111224012},{x:.07589401217340325,y:.10014328637013822},{x:.07770640675364808,y:.09717031380613761},{x:.07939396242231754,y:.09412474393402119},{x:.07999862852050488,y:.09341025377409445},{x:.08048584585939292,y:.09261104382444658},{x:.10112984585939291,y:.06520804382444652},{x:.10197173470408774,y:.06429305686105671},{x:.10267645797068833,y:.06326868237508665},{x:.10495244591663212,y:.06105354143298789},{x:.10710291637241387,y:.058716353519649434},{x:.10810713366035453,y:.05798319214000915},{x:.10899816141532707,y:.05711598541156246},{x:.1373061614153271,y:.03451898541156248},{x:.13912164740426522,y:.03334117545586675},{x:.1408101373903697,y:.03198757757075004},{x:.14281300361792376,y:.03094638082514127},{x:.14470672673278473,y:.029717813955661344},{x:.1467171079910441,y:.028916819034200267},{x:.14863722796281134,y:.027918638208003034},{x:.20683022796281134,y:.004592638208003076},{x:.20850921914024034,y:.004104279923540699},{x:.2101185278310492,y:.0034204446176558795},{x:.21273469892125257,y:.0028752394826936905},{x:.21530073387518742,y:.0021288719943945503},{x:.21704273768291169,y:.0019774523068977427},{x:.21875453360851305,y:.0016207172553791283},{x:.2976895336085131,y:-.0068802827446208525},{x:.29850402526559744,y:-.006887701289741747},{x:.2993068957135494,y:-.007024999279811796},{x:.30290822222422875,y:-.006927815554356645},{x:.3065107103471747,y:-.0069606277022222565},{x:.30731099906181086,y:-.006809004262418785},{x:.30812522808832776,y:-.0067870318558802545},{x:.3663632280883278,y:.0005399681441197179},{x:.367446910459264,y:.0007860908462292888},{x:.3685549625674647,y:.000870733572342984},{x:.37174033606180384,y:.0017612008405818037},{x:.37496569353784953,y:.0024937343933679954},{x:.37598053709868623,y:.002946543859479297},{x:.3770507853196353,y:.0032457304419443098},{x:.4423997853196353,y:.028649730441944292},{x:.44339023767510893,y:.0291515261148112},{x:.4444435524779453,y:.029502699422305954},{x:.4473177196266577,y:.03114131738307233},{x:.45026902431580135,y:.03263654520916596},{x:.4511425499275847,y:.03332192668785485},{x:.4521071150681948,y:.03387184382278591},{x:.4818761150681948,y:.0549598438227859},{x:.482276572000261,y:.05530719927286456},{x:.48273081061614365,y:.05558049186877649},{x:.48560514894853896,y:.05819439949693127},{x:.48854004666413575,y:.060740123232255375},{x:.48886504324193186,y:.061158929616590856},{x:.48925723704963914,y:.06151558852974905},{x:.5141262370496392,y:.08904658852974903},{x:.5149956342421861,y:.09022293690705172},{x:.5160117353213701,y:.09127516577002369},{x:.5176116053111659,y:.0937625081737249},{x:.5193693801104602,y:.0961408866071265},{x:.519992577896003,y:.09746424275846524},{x:.5207838752101566,y:.09869448482562238},{x:.5385188752101566,y:.1333154848256224},{x:.5396070973995049,y:.13607819549886616},{x:.5408707323766272,y:.1387652058155645},{x:.5412201620380835,y:.14017334347255597},{x:.5417518824254063,y:.14152324205357814},{x:.5422802166156467,y:.1444451696332536},{x:.5429953614930656,y:.1473270727547606},{x:.5523413614930656,y:.2113020727547606},{x:.5524962602601196,y:.21460328519222147},{x:.5528139181508881,y:.2178928278123641},{x:.5518389181508881,y:.7290898278123641},{x:.5509575131661891,y:.7378672271777721},{x:.5483806584624608,y:.7463040176932935},{x:.5442073811208505,y:.7540759782308231},{x:.5385980578491955,y:.7608844367054697},{x:.5317682517950807,y:.7664677478762799},{x:.5239804285749665,y:.7706113482261165},{x:.5155338698677402,y:.7731560015172932},{x:.5067531721876358,y:.7740039181508881},{x:.4979757728222279,y:.7731225131661891},{x:.4895389823067066,y:.7705456584624607},{x:.48176702176917696,y:.7663723811208505},{x:.4749585632945304,y:.7607630578491954},{x:.46937525212372017,y:.7539332517950806},{x:.4652316517738835,y:.7461454285749665},{x:.46268699848270683,y:.7376988698677401},{x:.461839081849112,y:.7289181721876359},{x:.462807763438783,y:.22103394388498027},{x:.45501827222953295,y:.16771351802238937},{x:.44337725180090903,y:.14498874958374325},{x:.42579959063650114,y:.12552955984883984},{x:.4046143325842134,y:.11052217895574154},{x:.34961801160788414,y:.08914271579513207},{x:.3021031758959219,y:.08316481131246532},{x:.2345584384824393,y:.09043912324952764},{x:.18827433696976265,y:.10899157718530504},{x:.16959144206995366,y:.1239052897771866},{x:.155605251275173,y:.14247066404328695},{x:.14596289111822178,y:.16478926233983734},{x:.14046290234137151,y:.19146830095804884},{x:.13920799659699482,y:.22525713324602253},{x:.1380181031040591,y:.23399805813086086},{x:.13514580323043823,y:.24233889189031887},{x:.13070147784947123,y:.24995910096061402},{x:.12485591989314217,y:.25656584498063745},{x:.11783377087548613,y:.26190523048280423},{x:.10990488804518514,y:.26577206787662816},{x:.10137397392283892,y:.2680177567696118},{x:.09256886675397746,y:.2685559965969948},{x:.08382794186913914,y:.26736610310405906},{x:.07548710810968112,y:.26449380323043825},{x:.06786689903938595,y:.2600494778494712},{x:.06126015501936256,y:.2542039198931421},{x:.055920769517195726,y:.24718177087548612},{x:.052053932123371845,y:.23925288804518513},{x:.04980824323038816,y:.2307219739228389},{x:.0492700034030052,y:.22191686675397743}]],K:[[{x:-.009598999999999996,y:.05103000000000002},{x:-.008734337618145363,y:.04225093550927423},{x:-.006173578963007902,y:.03380924554357098},{x:-.002015132553614539,y:.026029339514117924},{x:.003581194846605365,y:.019210194846605383},{x:.010400339514117916,y:.013613867446385479},{x:.018180245543570964,y:.009455421036992116},{x:.026621935509274233,y:.006894662381854655},{x:.035401,y:.0060300000000000215},{x:.04418006449072578,y:.006894662381854655},{x:.05262175445642904,y:.009455421036992116},{x:.06040166048588211,y:.013613867446385486},{x:.06722080515339464,y:.019210194846605383},{x:.07281713255361454,y:.026029339514117924},{x:.07697557896300791,y:.03380924554357098},{x:.07953633761814537,y:.04225093550927425},{x:.080401,y:.05103000000000002},{x:.080401,y:.29048154892126793},{x:.18934433769134518,y:.3772029724897202},{x:.5349508182082354,y:.03415901207017739},{x:.5417907398770268,y:.02858809778868676},{x:.5495860658299886,y:.024458629583942203},{x:.5580372260624178,y:.02192930060321959},{x:.5668194472260474,y:.021097311540784057},{x:.5755952334866855,y:.021994635269720175},{x:.5840273362998535,y:.024586788142349852},{x:.5917917146832189,y:.028774155177474024},{x:.5985899879298227,y:.03439581820823536},{x:.6041609022113132,y:.04123573987702663},{x:.6082903704160578,y:.04903106582998847},{x:.6108196993967804,y:.05748222606241771},{x:.6116516884592159,y:.06626444722604735},{x:.6107543647302798,y:.07504023348668547},{x:.6081622118576502,y:.08347233629985339},{x:.603974844822526,y:.0912367146832188},{x:.5983531817917647,y:.09803498792982254},{x:.26024203797571366,y:.43363918627462555},{x:.5302838206406747,y:.648598708462355},{x:.5366139141989896,y:.654742773070568},{x:.5416237292416561,y:.6620037211908337},{x:.545120741386121,y:.6701025186588768},{x:.5469705624168195,y:.6787279332298585},{x:.5471021047489336,y:.6875484950590041},{x:.5455103132844098,y:.6962252349018474},{x:.542256359676543,y:.7044247105121999},{x:.537465291537645,y:.7118318206406747},{x:.531321226929432,y:.7181619141989897},{x:.5240602788091663,y:.7231717292416562},{x:.5159614813411232,y:.726668741386121},{x:.5073360667701415,y:.7285185624168196},{x:.498515504940996,y:.7286501047489337},{x:.48983876509815266,y:.7270583132844098},{x:.48163928948780005,y:.723804359676543},{x:.47423217935932527,y:.719013291537645},{x:.080401,y:.4055145384845117},{x:.080401,y:.729004},{x:.07953633761814537,y:.7377830644907257},{x:.07697557896300788,y:.746224754456429},{x:.07281713255361454,y:.7540046604858821},{x:.06722080515339464,y:.7608238051533946},{x:.06040166048588208,y:.7664201325536145},{x:.052621754456429054,y:.7705785789630079},{x:.04418006449072578,y:.7731393376181454},{x:.035401,y:.774004},{x:.026621935509274212,y:.7731393376181454},{x:.018180245543570936,y:.7705785789630079},{x:.010400339514117906,y:.7664201325536145},{x:.003581194846605358,y:.7608238051533946},{x:-.002015132553614539,y:.7540046604858821},{x:-.006173578963007902,y:.746224754456429},{x:-.008734337618145363,y:.7377830644907257},{x:-.009598999999999996,y:.729004},{x:-.009598999999999996,y:.05103000000000002}]],L:[[{x:.030439999999999995,y:.05103000000000002},{x:.03130466238185463,y:.04225093550927423},{x:.03386542103699209,y:.03380924554357098},{x:.03802386744638545,y:.026029339514117924},{x:.043620194846605356,y:.019210194846605383},{x:.05043933951411791,y:.013613867446385479},{x:.058219245543570955,y:.009455421036992116},{x:.06666093550927422,y:.006894662381854655},{x:.07544,y:.0060300000000000215},{x:.526613,y:.0060300000000000215},{x:.5353920644907257,y:.006894662381854655},{x:.543833754456429,y:.009455421036992116},{x:.5516136604858821,y:.013613867446385479},{x:.5584328051533947,y:.019210194846605383},{x:.5640291325536145,y:.026029339514117924},{x:.5681875789630079,y:.03380924554357098},{x:.5707483376181454,y:.04225093550927425},{x:.571613,y:.05103000000000002},{x:.5707483376181454,y:.05980906449072579},{x:.5681875789630079,y:.06825075445642906},{x:.5640291325536145,y:.07603066048588211},{x:.5584328051533947,y:.08284980515339466},{x:.5516136604858821,y:.08844613255361455},{x:.543833754456429,y:.09260457896300792},{x:.5353920644907257,y:.09516533761814538},{x:.526613,y:.09603000000000002},{x:.12043999999999999,y:.09603000000000002},{x:.12043999999999999,y:.729004},{x:.11957533761814536,y:.7377830644907257},{x:.11701457896300788,y:.746224754456429},{x:.11285613255361453,y:.7540046604858821},{x:.10725980515339463,y:.7608238051533946},{x:.10044066048588207,y:.7664201325536145},{x:.09266075445642903,y:.7705785789630079},{x:.08421906449072576,y:.7731393376181454},{x:.07544,y:.774004},{x:.06666093550927422,y:.7731393376181454},{x:.05821924554357093,y:.7705785789630079},{x:.05043933951411791,y:.7664201325536145},{x:.043620194846605356,y:.7608238051533946},{x:.03802386744638545,y:.7540046604858821},{x:.03386542103699209,y:.746224754456429},{x:.03130466238185463,y:.7377830644907257},{x:.030439999999999995,y:.729004},{x:.030439999999999995,y:.05103000000000002}]],M:[[{x:-.0025190000000000004,y:.05103000000000002},{x:-.001654337618145367,y:.04225093550927423},{x:.0009064210369920944,y:.03380924554357098},{x:.005064867446385457,y:.026029339514117924},{x:.010661194846605361,y:.019210194846605383},{x:.017480339514117912,y:.013613867446385479},{x:.02526024554357096,y:.009455421036992116},{x:.03370193550927423,y:.006894662381854655},{x:.042481,y:.0060300000000000215},{x:.051260064490725774,y:.006894662381854655},{x:.05970175445642904,y:.009455421036992116},{x:.06748166048588208,y:.013613867446385486},{x:.07430080515339463,y:.019210194846605383},{x:.07989713255361454,y:.026029339514117924},{x:.0840555789630079,y:.03380924554357098},{x:.08661633761814536,y:.04225093550927425},{x:.087481,y:.05103000000000002},{x:.087481,y:.5631122522964573},{x:.26219554141599577,y:.26476777519375044},{x:.26376288989624813,y:.2626088267569117},{x:.2651577075441738,y:.2603345964826191},{x:.26634817172230724,y:.2590477232579252},{x:.26737807478439135,y:.2576290804774607},{x:.2693364970488442,y:.25581739014918375},{x:.271148193983327,y:.2538589739959976},{x:.27256684023788735,y:.25282907571933333},{x:.27385371747828813,y:.25163861588213104},{x:.27612795245761435,y:.25024380590572387},{x:.27828690618147356,y:.24867646470811877},{x:.2798792167324836,y:.24794311979268302},{x:.28137361418054185,y:.2470265916026687},{x:.2838762642998919,y:.24610226374330602},{x:.28629950743227456,y:.24498622954453103},{x:.28800429067823724,y:.24457762002415934},{x:.28964877947809164,y:.24397024514568044},{x:.29228366929688115,y:.24355192080462856},{x:.2948780779631802,y:.2429300821730634},{x:.29662982004000654,y:.24286191068247276},{x:.29836120340931876,y:.24258703019148947},{x:.3010270755894747,y:.24269078533857608},{x:.3036929481196057,y:.24258703918410057},{x:.30542433056167173,y:.24286192551544342},{x:.30717607240852984,y:.24293010291506947},{x:.3097704789772072,y:.24355195029817853},{x:.3124053673848756,y:.24397028352732772},{x:.31404985413590314,y:.24457766395304856},{x:.3157546360035206,y:.24498627922405064},{x:.3181778753712451,y:.24610232159698525},{x:.32068052237260675,y:.24702665789836697},{x:.32217491672899246,y:.24794319112932822},{x:.32376722480624953,y:.2486765414159958},{x:.3259261732430879,y:.2502438898962479},{x:.3282004035173809,y:.2516387075441738},{x:.329487276742075,y:.2528291717223074},{x:.3309059195225393,y:.2538590747843914},{x:.3327176098508159,y:.2558174970488439},{x:.33467602600400237,y:.257629193983327},{x:.3357059242806667,y:.2590478402378874},{x:.33689638411786893,y:.2603347174782881},{x:.3382911940942761,y:.2626089524576143},{x:.3398585352918812,y:.26476790618147356},{x:.514571,y:.5631111449291359},{x:.514571,y:.05103000000000002},{x:.5154356623818547,y:.04225093550927423},{x:.5179964210369922,y:.03380924554357098},{x:.5221548674463855,y:.026029339514117924},{x:.5277511948466054,y:.019210194846605383},{x:.5345703395141179,y:.013613867446385479},{x:.542350245543571,y:.009455421036992116},{x:.5507919355092743,y:.006894662381854655},{x:.559571,y:.0060300000000000215},{x:.5683500644907258,y:.006894662381854655},{x:.576791754456429,y:.009455421036992116},{x:.5845716604858822,y:.013613867446385486},{x:.5913908051533947,y:.019210194846605383},{x:.5969871325536146,y:.026029339514117924},{x:.6011455789630079,y:.03380924554357098},{x:.6037063376181454,y:.04225093550927425},{x:.6045710000000001,y:.05103000000000002},{x:.6045710000000001,y:.729004},{x:.6044399806971988,y:.7303342613054065},{x:.6044919608158994,y:.7316699481196056},{x:.6040085293496043,y:.7347148603514975},{x:.6037063376181454,y:.7377830644907257},{x:.6033183147080721,y:.7390622046001841},{x:.6031087164726723,y:.7403823673848756},{x:.6020405410986152,y:.7432744596816038},{x:.6011455789630079,y:.746224754456429},{x:.6005154639484909,y:.7474036167328832},{x:.600052342101633,y:.7486575223726067},{x:.5984404722003996,y:.7512856532491108},{x:.5969871325536146,y:.7540046604858821},{x:.596139140401289,y:.7550379419131618},{x:.5954402924558263,y:.7561774035173808},{x:.5933466712837743,y:.758440575377949},{x:.5913908051533947,y:.7608238051533946},{x:.5903575237261146,y:.7616717973057207},{x:.589449806016673,y:.7626530260040023},{x:.5869548902613284,y:.7644642664232344},{x:.5845716604858822,y:.7664201325536145},{x:.5833927982094276,y:.7670502475681318},{x:.5823110938185264,y:.7678355352918812},{x:.579510761693201,y:.7691252393162225},{x:.576791754456429,y:.7705785789630079},{x:.5755126143469705,y:.7709666018730812},{x:.5742984925677255,y:.7715257704554689},{x:.5713003592655512,y:.772244375482538},{x:.5683500644907258,y:.7731393376181454},{x:.5670198031853202,y:.7732703569209465},{x:.5657199220368199,y:.7735819178269366},{x:.5626392041392276,y:.7737018082685412},{x:.559571,y:.774004},{x:.5582407386945936,y:.7738729806971988},{x:.5569050518803944,y:.7739249608158993},{x:.5538601396485026,y:.7734415293496042},{x:.5507919355092743,y:.7731393376181454},{x:.5495127953998159,y:.772751314708072},{x:.5481926326151244,y:.7725417164726722},{x:.5453005403183963,y:.7714735410986151},{x:.542350245543571,y:.7705785789630079},{x:.5411713832671168,y:.7699484639484908},{x:.5399174776273933,y:.769485342101633},{x:.5372893467508892,y:.7678734722003996},{x:.5345703395141179,y:.7664201325536145},{x:.5335370580868383,y:.765572140401289},{x:.5323975964826192,y:.7648732924558262},{x:.5301344246220511,y:.7627796712837742},{x:.5277511948466054,y:.7608238051533946},{x:.5269032026942794,y:.7597905237261146},{x:.5259219739959977,y:.7588828060166729},{x:.5241107335767656,y:.7563878902613284},{x:.5221548674463855,y:.7540046604858821},{x:.5215247524318682,y:.7528257982094275},{x:.5207394647081188,y:.7517440938185264},{x:.30102684980758887,y:.3765575080608823},{x:.08131245858400418,y:.7517442248062496},{x:.0805272117946797,y:.752825865136849},{x:.07989713255361454,y:.7540046604858821},{x:.07794121846393844,y:.7563879486998997},{x:.0761299252156086,y:.7588829195225393},{x:.07514874916275306,y:.7597905823884902},{x:.07430080515339463,y:.7608238051533946},{x:.0719175169393771,y:.7627797192430708},{x:.06965428252171184,y:.764873384117869},{x:.06851488325078628,y:.7655721885442563},{x:.06748166048588208,y:.7664201325536145},{x:.06476258657702469,y:.7678735078373721},{x:.06213438581945812,y:.7694854083973313},{x:.06088054980546198,y:.7699484997219428},{x:.05970175445642904,y:.7705785789630079},{x:.056751387338174995,y:.7714735630437544},{x:.05385922052190834,y:.7725417548543195},{x:.05253913197970031,y:.7727513367372549},{x:.051260064490725774,y:.7731393376181454},{x:.04819178511684276,y:.773441536759571},{x:.0451467965906812,y:.7739249698085104},{x:.04381118578262464,y:.7738729881355436},{x:.042481,y:.774004},{x:.039412720626117295,y:.7737018008585744},{x:.03633192759147018,y:.7735818970849305},{x:.035032121291898165,y:.7732703494826018},{x:.03370193550927423,y:.7731393376181454},{x:.030751568391020223,y:.7722443535373988},{x:.02775336399647938,y:.7715257207759494},{x:.026539313032545114,y:.7709665798438982},{x:.02526024554357096,y:.7705785789630079},{x:.02254117163471342,y:.7691252036792503},{x:.01974077519375046,y:.7678354585840041},{x:.01865913486315115,y:.7670502117946798},{x:.017480339514117912,y:.7664201325536145},{x:.015097051300099952,y:.7644642184639381},{x:.012602080477460715,y:.7626529252156086},{x:.011694417611510011,y:.7616717491627533},{x:.010661194846605361,y:.7608238051533946},{x:.008705280756928618,y:.7584405169393763},{x:.006611615882131057,y:.7561772825217118},{x:.005912811455744052,y:.7550378832507868},{x:.005064867446385457,y:.7540046604858821},{x:.0036114921626275165,y:.7512855865770239},{x:.0019995916026687363,y:.7486573858194581},{x:.0015365002780573323,y:.7474035498054622},{x:.0009064210369920944,y:.746224754456429},{x:11436956245516774e-21,y:.7432743873381747},{x:-.0010567548543195318,y:.7403822205219084},{x:-.0012663367372549837,y:.7390621319797002},{x:-.001654337618145367,y:.7377830644907257},{x:-.0019565367595708303,y:.7347147851168438},{x:-.0024399698085105087,y:.7316697965906812},{x:-.0023879881355436095,y:.730334185782624},{x:-.0025190000000000004,y:.729004},{x:-.0025190000000000004,y:.05103000000000002}]],N:[[{x:.022871000000000002,y:.05103000000000002},{x:.023735662381854636,y:.04225093550927423},{x:.026296421036992097,y:.03380924554357098},{x:.03045486744638546,y:.026029339514117924},{x:.036051194846605364,y:.019210194846605383},{x:.042870339514117915,y:.013613867446385479},{x:.05065024554357096,y:.009455421036992116},{x:.05909193550927423,y:.006894662381854655},{x:.067871,y:.0060300000000000215},{x:.07665006449072577,y:.006894662381854655},{x:.08509175445642904,y:.009455421036992116},{x:.0928716604858821,y:.013613867446385486},{x:.09969080515339464,y:.019210194846605383},{x:.10528713255361455,y:.026029339514117924},{x:.10944557896300791,y:.03380924554357098},{x:.11200633761814537,y:.04225093550927425},{x:.112871,y:.05103000000000002},{x:.112871,y:.5841703094604355},{x:.49710429367778214,y:.025528669675955993},{x:.4971050718109503,y:.02552774709009411},{x:.49710565506134197,y:.025526690456344234},{x:.49994880496714983,y:.022156103119426583},{x:.5027917749380927,y:.01878536401177818},{x:.5027927181072235,y:.018784610959395015},{x:.5027934962896407,y:.018783688415073364},{x:.5062395848358414,y:.016032536999645196},{x:.5096855265142521,y:.01328120162562755},{x:.5096865984738844,y:.013280647046104224},{x:.5096875416832135,y:.013279894044071351},{x:.5136041376200112,y:.011253903755746949},{x:.5175206253992491,y:.009227704391234041},{x:.5175217849545753,y:.009227369596750634},{x:.5175228569438108,y:.00922681507445236},{x:.5217594476858983,y:.008003843583871996},{x:.5259959731369073,y:.006780645934087934},{x:.5259971757268666,y:.006780543790608634},{x:.5259983353000632,y:.006780209058025982},{x:.5303921110410749,y:.006407254473822295},{x:.5347858668666982,y:.00603406533837119},{x:.5347870662764328,y:.00603419977121261},{x:.5347882688718429,y:.006034097691931008},{x:.5391703792739257,y:.006525492449663053},{x:.5435525159020149,y:.007016653277689966},{x:.5435536660388816,y:.007017019120673398},{x:.543554865441438,y:.007017153617542397},{x:.547756908459233,y:.008354013692199154},{x:.5519590228368241,y:.009690649448577907},{x:.5519600795017079,y:.0096912326425627},{x:.551961229619043,y:.009691598546943021},{x:.555821723096155,y:.01182254915564361},{x:.559682330324044,y:.013953293677782128},{x:.5596832529099061,y:.01395407181095043},{x:.5596843095436558,y:.013954655061341997},{x:.5630548968806759,y:.016797804967236304},{x:.5664256359882218,y:.01964077493809272},{x:.5664263890406048,y:.019641718107223288},{x:.5664273115849267,y:.019642496289640633},{x:.5691784630004857,y:.02308858483600535},{x:.5719297983743725,y:.026534526514252196},{x:.5719303529538958,y:.0265355984738845},{x:.5719311059559287,y:.0265365416832135},{x:.5739570962443242,y:.03045313762014873},{x:.575983295608766,y:.03436962539924916},{x:.5759836304032494,y:.03437078495457533},{x:.5759841849255477,y:.0343718569438108},{x:.5772071564160691,y:.03860844768569421},{x:.5784303540659121,y:.04284497313690728},{x:.5784304562093915,y:.04284617572686688},{x:.578430790941974,y:.042847335300063204},{x:.5788037455260991,y:.04724111104014873},{x:.5791769346616289,y:.05163486686669809},{x:.5791768002287875,y:.05163606627643281},{x:.5791769023080691,y:.05163726887184294},{x:.5700269023080691,y:.7296112688718429},{x:.5690438463824576,y:.738377865441438},{x:.566369401453057,y:.746784229619043},{x:.5621063449386581,y:.7545073095436557},{x:.5564185037103594,y:.7612503115849266},{x:.5495244583167865,y:.7667541059559286},{x:.5416891430561892,y:.7708071849255477},{x:.5332136646999368,y:.773253790941974},{x:.5244237311281571,y:.773999902308069},{x:.515657134558562,y:.7730168463824576},{x:.507250770380957,y:.770342401453057},{x:.49952769045634426,y:.766079344938658},{x:.4927846884150734,y:.7603915037103594},{x:.4872808940440714,y:.7534974583167865},{x:.4832278150744524,y:.7456621430561892},{x:.480781209058026,y:.7371866646999369},{x:.48003509769193103,y:.7283967311281571},{x:.48718300813543913,y:.19876859615253395},{x:.10494770632221789,y:.754505330324044},{x:.1022980223560627,y:.75764690179997},{x:.09969080515339464,y:.7608238051533946},{x:.09945603456444842,y:.7610164763964532},{x:.09926022506190729,y:.7612486359882218},{x:.09604856383930557,y:.7638129153509474},{x:.0928716604858821,y:.7664201325536145},{x:.09260381265312083,y:.7665633002029657},{x:.09236647348574781,y:.7667527983743725},{x:.08871625734636118,y:.7686412418060533},{x:.08509175445642904,y:.7705785789630079},{x:.08480112262185491,y:.7706667411661766},{x:.08453137460075086,y:.770806295608766},{x:.08058287930375276,y:.7719463312873718},{x:.07665006449072577,y:.7731393376181454},{x:.07634781747275289,y:.773169106351106},{x:.07605602686309273,y:.7732533540659121},{x:.07196099086840901,y:.7736011710596524},{x:.067871,y:.774004},{x:.06756875298202693,y:.7739742312670393},{x:.06726613313330192,y:.7739999346616289},{x:.06318192637768459,y:.7735421665584931},{x:.05909193550927423,y:.7731393376181454},{x:.05880130367469977,y:.7730511754149765},{x:.05849948409798508,y:.77301734672231},{x:.054583060356599135,y:.7717715852937818},{x:.05065024554357096,y:.7705785789630079},{x:.0503823977108098,y:.7704354113136568},{x:.050092977163175983,y:.7703433505514221},{x:.04649484240404986,y:.768357469710569},{x:.042870339514117915,y:.7664201325536145},{x:.04263556892517204,y:.7662274613105563},{x:.04236966967595597,y:.7660807063222179},{x:.03922809820002561,y:.7634310223560591},{x:.036051194846605364,y:.7608238051533946},{x:.03585852360354703,y:.7605890345644487},{x:.035626364011778155,y:.7603932250619073},{x:.033062084649052234,y:.7571815638393052},{x:.03045486744638546,y:.7540046604858821},{x:.030311699797034096,y:.7537368126531205},{x:.03012220162562753,y:.7534994734857478},{x:.028233758193948882,y:.7498492573463653},{x:.026296421036992097,y:.746224754456429},{x:.026208258833823234,y:.7459341226218545},{x:.026068704391234022,y:.7456643746007509},{x:.02492866871262922,y:.741715879303756},{x:.023735662381854636,y:.7377830644907257},{x:.023705893648893955,y:.7374808174727527},{x:.023621645934087915,y:.7371890268630927},{x:.023273828940347806,y:.7330939908684111},{x:.022871000000000002,y:.729004},{x:.022871000000000002,y:.05103000000000002}]],O:[[{x:.012131736117046842,y:.4355587711738732},{x:.012426138979982786,y:.43287355609157196},{x:.012514983726773468,y:.43017371170811375},{x:.012905745911416293,y:.42849911573111366},{x:.01309315536666239,y:.42678977537085305},{x:.07316415536666239,y:.1412837753708531},{x:.07429915106219231,y:.13768552483470178},{x:.07533122192175289,y:.13405641311271962},{x:.07562440736087628,y:.1334840955199844},{x:.07581784742995093,y:.1328708369543332},{x:.07763301835724021,y:.12956315246900071},{x:.0793532628391043,y:.12620512014747703},{x:.07975246842568721,y:.12570099711853563},{x:.0800618324091279,y:.12513726042963025},{x:.08248742256740031,y:.1222472544549173},{x:.0848297326408542,y:.1192893488327618},{x:.1660597326408542,y:.03517334883276172},{x:.16792084009780786,y:.033590824390739155},{x:.16963596886504836,y:.031851158363102774},{x:.17127304088861567,y:.03074040344046043},{x:.172780173663761,y:.0294588683817891},{x:.1749142556657825,y:.0282698357562587},{x:.17693582072022015,y:.026898201947035502},{x:.17875813439943417,y:.026128166777013812},{x:.18048632312818114,y:.025165283073572443},{x:.1828113681007397,y:.02441543612151622},{x:.18506168183103927,y:.023464545648773483},{x:.2739246818310393,y:-.0041824543512264944},{x:.2748960678404206,y:-.004382857312604547},{x:.27582577451608603,y:-.004728396924478621},{x:.2792086173377598,y:-.005272563034129881},{x:.28256427991205235,y:-.0059648570457577},{x:.28355609768991147,y:-.005971901311054349},{x:.2845353517466465,y:-.006129424701440567},{x:.287959355733624,y:-.0060031749164705245},{x:.2913856000541485,y:-.006027509400590186},{x:.29235973459950004,y:-.005840924262640544},{x:.29335090385307644,y:-.005804377895986514},{x:.3811419038530764,y:.006122622104013507},{x:.38318930529213563,y:.00660893405691686},{x:.3852758334501729,y:.006882342567970358},{x:.387470347489584,y:.0076257947232155985},{x:.38972465411174423,y:.008161252125438313},{x:.3916378405507577,y:.009037647936572414},{x:.39363093730084414,y:.009712864429997858},{x:.3956382440479665,y:.010870159811164118},{x:.3977447722434711,y:.011835121954387393},{x:.39945022100051475,y:.01306792222421872},{x:.4012732927522862,y:.01411899850883961},{x:.4916652927522862,y:.07880999850883955},{x:.49276799959381884,y:.07977586317754862},{x:.49398769122063274,y:.08058901093294302},{x:.4960788615418114,y:.08267585840574071},{x:.4983012083703825,y:.08462241954283417},{x:.4991942961599152,y:.08578485282556958},{x:.5002319144966787,y:.08682032620708877},{x:.5018757798210403,y:.08927504258220473},{x:.5036756696393939,y:.09161775945128844},{x:.5043248175140242,y:.09293208968889465},{x:.5051404874699588,y:.09415009603518716},{x:.5560304874699588,y:.18912209603518723},{x:.5570965448702581,y:.19168827319789875},{x:.5583465570022521,y:.1941700494329812},{x:.5587848767756364,y:.19575236841213633},{x:.559414776433869,y:.19726864147332673},{x:.5599597135111237,y:.1999934877429328},{x:.5607015364856348,y:.20267144261291137},{x:.5892585364856349,y:.36700144261291134},{x:.5895780755292599,y:.371318367211785},{x:.589913428370686,y:.37563409214099147},{x:.5899036127276142,y:.3757163259822715},{x:.58990972616553,y:.3757989176124618},{x:.5893809351459178,y:.38009523269056544},{x:.5888678881103582,y:.38439345626922305},{x:.5314878881103581,y:.6446844562692231},{x:.5303800126922803,y:.6480826863142071},{x:.5293998170293023,y:.651519919480997},{x:.5290148883003433,y:.6522699863013032},{x:.5287535704445262,y:.6530715368858165},{x:.5270040207481954,y:.6561883351212919},{x:.5253720883446767,y:.6593682961290664},{x:.5248482251358019,y:.6600288547560561},{x:.5244355536676654,y:.6607640231862051},{x:.522111563906752,y:.6634796128039058},{x:.5198906090097624,y:.6662800975344761},{x:.4528876090097624,y:.7355630975344761},{x:.4513498405668143,y:.7368687638478525},{x:.44995999895015265,y:.7383308981052339},{x:.44799560298794544,y:.7397167316507253},{x:.4461630292013509,y:.741272707045399},{x:.44440008568631667,y:.7422532816059559},{x:.4427517012434998,y:.743416176715023},{x:.4405546878862334,y:.7443921472166956},{x:.43845377075029196,y:.7455607075703166},{x:.43653340109378364,y:.7461785074476045},{x:.43468982031452474,y:.7469974740014746},{x:.32025082031452473,y:.7849044740014746},{x:.3162756641960007,y:.785800462676764},{x:.3123143949565378,y:.7867559771378485},{x:.3119757732525013,y:.7867696456410259},{x:.3116451697261732,y:.786844162718285},{x:.30757159639863574,y:.7869474207351895},{x:.30350003021295163,y:.7871117699623142},{x:.30316524843732107,y:.7870591140117537},{x:.302826459804451,y:.7870677017158569},{x:.29881101440639224,y:.7863742609266953},{x:.29478561927964103,y:.7857411290712295},{x:.173234619279641,y:.7541621290712296},{x:.17180894449846637,y:.7536379076298808},{x:.17032768986057922,y:.753301394035824},{x:.16767817066393412,y:.7521190197025511},{x:.16495505208167519,y:.7511177274253745},{x:.16365904177145735,y:.7503254433998781},{x:.16227189957151614,y:.7497064173758784},{x:.15990395993272244,y:.7480298664806163},{x:.1574285077432372,y:.7465165596726792},{x:.15631196685338702,y:.745486660093817},{x:.15507224418821702,y:.7446089104628228},{x:.08487024418821705,y:.6837459104628228},{x:.08477922863788438,y:.6836498346778195},{x:.08467166808724909,y:.6835727301071804},{x:.08174665618590948,y:.6804486588585436},{x:.07880340242944883,y:.6773417676286113},{x:.07873287917322891,y:.6772297816598538},{x:.07864242772392874,y:.6771331746094597},{x:.07638309517198695,y:.6734984900001298},{x:.07410251962167697,y:.6698770964908778},{x:.07405519882875666,y:.6697535038963435},{x:.0739853324792622,y:.6696411069209627},{x:.07247850415964274,y:.6656354878421232},{x:.07094824805491862,y:.6616387601752097},{x:.07092594823683183,y:.6615083105489945},{x:.0708793519117729,y:.6613844430013583},{x:.013660351911772894,y:.4476944430013583},{x:.013380528959940628,y:.4459977798389246},{x:.012899536483696877,y:.44434683677239306},{x:.012664423003084308,y:.4416557821956227},{x:.012224847112815455,y:.43899048181468664},{x:.012281403443251489,y:.4372718288093888},{x:.012131736117046842,y:.4355587711738732}],[{x:.10337829031332789,y:.4348001396911351},{x:.15424861715004387,y:.6247803934833692},{x:.2060651876410252,y:.6697037849792326},{x:.3045603004668897,y:.6952928559694175},{x:.3958853477721772,y:.6650421672339206},{x:.4463402797077116,y:.6128703383711886},{x:.499069598507425,y:.373676069990286},{x:.47327322171072966,y:.22523195474705573},{x:.4307624349909165,y:.1458974207255564},{x:.35796896612556683,y:.09380119213930618},{x:.2911281310221294,y:.08472041346861442},{x:.22279798440939425,y:.10597924519162948},{x:.15856873728877424,y:.17249047688925445},{x:.10337829031332789,y:.4348001396911351}]],P:[[{x:.025556999999999996,y:.05103000000000002},{x:.02642166238185463,y:.04225093550927423},{x:.02898242103699209,y:.03380924554357098},{x:.033140867446385454,y:.026029339514117924},{x:.03873719484660536,y:.019210194846605383},{x:.04555633951411791,y:.013613867446385479},{x:.053336245543570956,y:.009455421036992116},{x:.061777935509274226,y:.006894662381854655},{x:.070557,y:.0060300000000000215},{x:.07933606449072576,y:.006894662381854655},{x:.08777775445642903,y:.009455421036992116},{x:.09555766048588209,y:.013613867446385486},{x:.10237680515339463,y:.019210194846605383},{x:.10797313255361454,y:.026029339514117924},{x:.1121315789630079,y:.03380924554357098},{x:.11469233761814536,y:.04225093550927425},{x:.11555699999999999,y:.05103000000000002},{x:.11555699999999999,y:.3249696679740436},{x:.22632413005583354,y:.32573306868659574},{x:.22797244585475993,y:.3259068917113995},{x:.2296296407459454,y:.32587748916779646},{x:.3399906407459454,y:.3347734891677965},{x:.3425199358315593,y:.3352301100895628},{x:.3450781711944775,y:.33547763407671893},{x:.4262801711944775,y:.3514846340767189},{x:.43023360415359113,y:.35267647626036297},{x:.4342017122431381,y:.35381850872164355},{x:.49034871224313803,y:.3761405087216436},{x:.49223471805815816,y:.37711419756221787},{x:.49421014578428074,y:.3778905822551455},{x:.4961445509948513,y:.379132728294546},{x:.49818726580808836,y:.3801873213410173},{x:.49984707528076383,y:.38151024250532195},{x:.5016330805772936,y:.3826570960152846},{x:.5368430805772937,y:.4104950960152846},{x:.538268982488492,y:.41186995272090265},{x:.539835277869678,y:.41308244849417974},{x:.5414366048100854,y:.41492417879038607},{x:.5431934850553138,y:.4166181652891421},{x:.5443237674236908,y:.41824478417169497},{x:.5456234206874699,y:.41973955124896434},{x:.546834674823181,y:.4218582966024136},{x:.5482273167355989,y:.4238624839583804},{x:.5490185434436073,y:.4256783549664296},{x:.5500016096439067,y:.4273979502871872},{x:.5725636096439066,y:.4777629502871872},{x:.5732747072201834,y:.47988746499756846},{x:.5741879174558705,y:.48193325814034926},{x:.5746713208988057,y:.4840600657825243},{x:.5753635933927087,y:.4861283376286891},{x:.5756465551694752,y:.4883507586397718},{x:.5761431038835471,y:.49053540091990977},{x:.5762022992770958,y:.49271564988294925},{x:.5764777701286589,y:.49487923612929946},{x:.5763217220435205,y:.4971141570479765},{x:.5763825271473633,y:.4993536938878067},{x:.5706825271473633,y:.5794656938878067},{x:.5700654182420953,y:.5830779192715516},{x:.5695689975224034,y:.5867086990904052},{x:.5693236589408173,y:.5874197813867033},{x:.5691969863455608,y:.5881612549906394},{x:.5678870248015591,y:.5915836805014664},{x:.5666918126627678,y:.5950478490261242},{x:.5415328126627678,y:.6498468490261241},{x:.5413708296623262,y:.6501242105110185},{x:.5412617638147841,y:.650426323944409},{x:.5391478795722351,y:.653930540410781},{x:.5370840246571379,y:.6574644536133865},{x:.536871043573226,y:.6577048843594048},{x:.5367051339883567,y:.6579799150765678},{x:.5339482287199508,y:.661004400648547},{x:.5312345979336611,y:.6640677725799057},{x:.5309788035098929,y:.664262032968313},{x:.5307624259999995,y:.6644994116930277},{x:.47414742599999943,y:.7155204116930277},{x:.47266946719886654,y:.7166100541651699},{x:.4713261182021025,y:.7178618913781634},{x:.46912758296129603,y:.7192213498885075},{x:.46704701478499566,y:.7207552731949938},{x:.4653848758470294,y:.7215356430341334},{x:.4638231175995642,y:.7225013521577397},{x:.4283261175995643,y:.7398953521577398},{x:.4243082080780145,y:.7413960258251278},{x:.4202985181688539,y:.7429185254841078},{x:.34090751816885384,y:.7644395254841077},{x:.3408415384597873,y:.7644506164558663},{x:.3407789202555512,y:.7644741810938074},{x:.33649241770984384,y:.7651816893280429},{x:.33220802793590354,y:.7659018811363755},{x:.33214115226719376,y:.7658998869955335},{x:.33207514002138977,y:.7659107826399355},{x:.2099811400213898,y:.7739077826399355},{x:.20641155146718015,y:.773790767187745},{x:.20284008504333162,y:.7738075792583221},{x:.0663570850433316,y:.7610135792583221},{x:.06408313636872824,y:.7605723800858132},{x:.061777935509274226,y:.7603453376181454},{x:.05976354040438703,y:.759734277543603},{x:.05769704052657306,y:.7593333282846051},{x:.05555285882676713,y:.7584569812513055},{x:.053336245543570956,y:.7577845789630079},{x:.05147976838249502,y:.7567922712467745},{x:.04953119704042999,y:.7559958719887517},{x:.04759918201567506,y:.7547180546196904},{x:.04555633951411791,y:.7536261325536145},{x:.043929123673028744,y:.7522907110247322},{x:.04217336337061703,y:.7511294669445447},{x:.04052776127482757,y:.7494992850446065},{x:.03873719484660536,y:.7480298051533947},{x:.037401773317722896,y:.7464025893123053},{x:.03590629693874444,y:.7449211263687215},{x:.034610347337597366,y:.7430012269141045},{x:.033140867446385454,y:.7412106604858821},{x:.032148559730151835,y:.7393541833248057},{x:.030970837593177758,y:.7376094333079335},{x:.030074343103068113,y:.7354735969579864},{x:.02898242103699209,y:.733430754456429},{x:.028371360962449563,y:.7314163593515414},{x:.027556652268729623,y:.729475372026062},{x:.027094064670152376,y:.7272056777739226},{x:.02642166238185463,y:.7249890644907258},{x:.02621533264498147,y:.722894163516222},{x:.025794946192721373,y:.7208315299365354},{x:.02578404246766777,y:.7185152008594541},{x:.025556999999999996,y:.71621},{x:.025556999999999996,y:.05103000000000002}],[{x:.11555699999999999,y:.414971805397996},{x:.11555699999999999,y:.6752310456989574},{x:.20767337575712835,y:.6838660911730216},{x:.3217031184787672,y:.6763972896549704},{x:.3925929523867085,y:.6571807523203506},{x:.4185706758911827,y:.6444513238436673},{x:.46361487793542,y:.6038578374443203},{x:.4814895996448674,y:.5649247767123354},{x:.48580725170954087,y:.5042413131675768},{x:.4723746184159119,y:.474255736718963},{x:.45098032059796866,y:.45734081304228297},{x:.40480552914494095,y:.4389833995595593},{x:.3301954695220376,y:.42427584033215343},{x:.22404845814303564,y:.41571952231013837},{x:.11555699999999999,y:.414971805397996}]],Q:[[{x:.012134510452571898,y:.39776120903599943},{x:.012467756958298536,y:.3937322544040442},{x:.012734737801221134,y:.38969836671479857},{x:.012831073490929856,y:.38933975275179394},{x:.012861682585025715,y:.38896968840207613},{x:.0716656825850257,y:.06709568840207614},{x:.07243605319674906,y:.06440524795975149},{x:.07301096718930201,y:.06166637692330789},{x:.07364750148994079,y:.06017438890024393},{x:.07409402290033937,y:.05861495861744442},{x:.07537446994903126,y:.05612650608452361},{x:.07647266436288541,y:.053552421842995857},{x:.07738804025928744,y:.05221328363312273},{x:.0781302116420243,y:.05077092937167972},{x:.07987152826568633,y:.04858009458346291},{x:.08145080010539194,y:.04626971775068952},{x:.16096480010539196,y:-.04855928224931053},{x:.16315500529851779,y:-.05070373085173594},{x:.16521251383898505,y:-.052975804178533654},{x:.1663001767861927,y:-.05378319510572523},{x:.1672680674520078,y:-.05473086511953138},{x:.1698345496348827,y:-.056406820906963286},{x:.172295783242646,y:-.058233836978172464},{x:.17352006120728586,y:-.058813521600477286},{x:.17465423537351554,y:-.059554156299027654},{x:.17749836607515132,y:-.06069721323044178},{x:.18026874092294012,y:-.06200896084304842},{x:.2672567409229401,y:-.09317596084304836},{x:.2695830047845554,y:-.09375972267138269},{x:.2718475349769373,y:-.09454977610873284},{x:.2738508793967248,y:-.09483071995927067},{x:.27581299058749986,y:-.09532309988014809},{x:.2782084422243766,y:-.09544181332278269},{x:.28058359188359605,y:-.09577489818042065},{x:.2826032520283714,y:-.0956596106656824},{x:.28462372036011635,y:-.09575974074040533},{x:.28699630390923414,y:-.09540884370631499},{x:.2893907973658866,y:-.09527215971995788},{x:.3753267973658866,y:-.08182715971995795},{x:.37840631600914065,y:-.08102976437129623},{x:.38152495221950905,y:-.08040256216817918},{x:.38266795913198753,y:-.07992627554804835},{x:.3838666954562622,y:-.07961588068444121},{x:.38673147789694834,y:-.07823302278004476},{x:.38966782930723504,y:-.07700945634885908},{x:.3906959547522998,y:-.07631933185595965},{x:.3918111026603398,y:-.07578103928710583},{x:.3943510569158511,y:-.07386586128072498},{x:.3969922811880835,y:-.07209295159323717},{x:.45217017177581864,y:-.026613783173476364},{x:.5097585536672307,y:-.09873256043298734},{x:.5159122791302333,y:-.10505326271144577},{x:.5231808703268614,y:-.11005198218579294},{x:.5312849993737013,y:-.11353662086994384},{x:.5399132291363312,y:-.11537326605347448},{x:.5487339815837399,y:-.1154913364919842},{x:.5574082801461085,y:-.11388629480473579},{x:.5656027763942881,y:-.11061982184365243},{x:.5730025604329874,y:-.10581744633276943},{x:.5793232627114457,y:-.0996637208697668},{x:.5843219821857929,y:-.09239512967313873},{x:.5878066208699438,y:-.08429100062629874},{x:.5896432660534744,y:-.07566277086366895},{x:.5897613364919841,y:-.06684201841626024},{x:.5881562948047357,y:-.058167719853891554},{x:.5848898218436525,y:-.04997322360571205},{x:.5800874463327694,y:-.042573439567012816},{x:.5106129498444961,y:.04443049374200151},{x:.5474711182959175,y:.12365010382899572},{x:.5481373073434039,y:.1255496832776173},{x:.5490025186311253,y:.12736726941208848},{x:.5495935209593992,y:.1297019482663393},{x:.5503905347901464,y:.13197456307270286},{x:.5506733336355601,y:.13396760967066554},{x:.5511673266667299,y:.13591906574595297},{x:.5791213266667299,y:.32118306574595296},{x:.5792865967797204,y:.3243841932678159},{x:.5796238248970751,y:.32757179562983435},{x:.579513579388425,y:.3287806341158348},{x:.5795761658223595,y:.3299928748079828},{x:.5791137513174164,y:.3331647361616822},{x:.5788226293197903,y:.33635687958013644},{x:.5226546293197903,y:.6297998795801365},{x:.5219105438778229,y:.6323181740447382},{x:.521369234544533,y:.6348876981954499},{x:.5206636104444891,y:.6365383151545928},{x:.5201549436340621,y:.6382598551025291},{x:.5189338607071872,y:.6405845973766512},{x:.5179016631869613,y:.6429991446291672},{x:.5168875780620563,y:.6444803850133782},{x:.5160528293589531,y:.6460696100820955},{x:.5144016744792594,y:.6481114616238732},{x:.5129182555439367,y:.6502782422813739},{x:.4473292555439367,y:.7283852422813738},{x:.4454767413796947,y:.7301964293264013},{x:.4437773055972873,y:.732151966404103},{x:.44233025961343425,y:.7332727172827731},{x:.4410215211764534,y:.7345522595114605},{x:.4388512574885805,y:.735967237520439},{x:.4368029695300015,y:.737553656027496},{x:.4351650804791521,y:.7383705673253327},{x:.43363186277883553,y:.7393702013057781},{x:.431227251583759,y:.7403345934673514},{x:.4289088260065632,y:.7414909282302113},{x:.3168848260065632,y:.7842309282302113},{x:.31544522398579106,y:.7846236280557255},{x:.31406876767085296,y:.7851998529634103},{x:.3111991137964475,y:.7857818972901452},{x:.30837424253549156,y:.7865524758495462},{x:.30688569012846406,y:.7866567776362199},{x:.305423266132861,y:.7869533972381565},{x:.30249520063786056,y:.7869644160479279},{x:.2995742760667897,y:.7871690831124285},{x:.29809397750772,y:.7869809786010931},{x:.2966017859654652,y:.7869865939723252},{x:.2937278327647654,y:.7864261638184524},{x:.2908231043767717,y:.786057054147543},{x:.2894079467091229,y:.7855837720890787},{x:.28794333170435554,y:.785298167434039},{x:.16895933170435556,y:.7496931674340391},{x:.16685145995859063,y:.7488293371508981},{x:.16467103610787698,y:.748169732810473},{x:.1627799564873854,y:.7471607878174731},{x:.16079664289106937,y:.7463480029082842},{x:.1588977982379503,y:.7450895455041626},{x:.15688795304330724,y:.7440172356850165},{x:.15523004539103946,y:.7426587459550258},{x:.15344340707901263,y:.7414746531917952},{x:.15182656105367498,y:.739869930478983},{x:.1500645317387979,y:.7384261234461069},{x:.08134353173879794,y:.6698101234461069},{x:.07898814712174665,y:.6669445493412297},{x:.07654417665723892,y:.6641541443502993},{x:.0761910053095167,y:.6635415309608049},{x:.07574199244846258,y:.6629952594015535},{x:.07399091166125166,y:.6597252337561722},{x:.07213828241215867,y:.6565116506297859},{x:.07191141209628055,y:.6558419081228384},{x:.07157759918584938,y:.6552185349547689},{x:.07049811528111428,y:.6516697230205841},{x:.06930802275051184,y:.6481564579560907},{x:.013298022750511833,y:.4072474579560906},{x:.013249789700227431,y:.40687927578320093},{x:.013136451320225305,y:.40652566731159423},{x:.012677284531251238,y:.4025091147450468},{x:.012152162963867598,y:.3985006516980174},{x:.01217668547678935,y:.39813013424102855},{x:.012134510452571898,y:.39776120903599943}],[{x:.1030741934540208,y:.3959601630333355},{x:.15405220468618464,y:.6152256818322884},{x:.20562817178182732,y:.6667228451191239},{x:.2990925609035841,y:.6946913078929434},{x:.38591644511804135,y:.6615657918309754},{x:.4364618489221904,y:.6013735361946543},{x:.4889800495366121,y:.3269984766785998},{x:.4631403994395801,y:.1557472448128009},{x:.4478929247459949,y:.12297570323093639},{x:.3763894463327694,y:.21252056043298723},{x:.3702357208697667,y:.2188412627114457},{x:.36296712967313866,y:.22383998218579282},{x:.35486300062629866,y:.22732462086994373},{x:.34623477086366883,y:.22916126605347437},{x:.3374140184162602,y:.2292793364919841},{x:.3287397198538915,y:.22767429480473567},{x:.32054522360571197,y:.22440782184365232},{x:.31314543956701274,y:.21960544633276935},{x:.3068247372885543,y:.2134517208697667},{x:.30182601781420715,y:.20618312967313862},{x:.2983413791300562,y:.19807900062629863},{x:.2965047339465256,y:.18945077086366885},{x:.29638666350801585,y:.18063001841626014},{x:.2979917051952643,y:.17195571985389144},{x:.30125817815634764,y:.16376122360571194},{x:.3060605536672306,y:.1563614395670127},{x:.3960043024488616,y:.04372356068896105},{x:.3492507773512258,y:.005187991106938553},{x:.28681342879982186,y:-.004580559340762309},{x:.22209853619564562,y:.018606191220169738},{x:.15806156000107346,y:.09497717514193305},{x:.1030741934540208,y:.3959601630333355}]],R:[[{x:-.010088,y:.05588800000000005},{x:-.009223337618145366,y:.04710893550927426},{x:-.006662578963007905,y:.03866724554357101},{x:-.0025041325536145423,y:.030887339514117953},{x:.0030921948466053617,y:.024068194846605412},{x:.009911339514117913,y:.018471867446385508},{x:.01769124554357096,y:.014313421036992145},{x:.02613293550927423,y:.011752662381854684},{x:.034912,y:.01088800000000005},{x:.043691064490725774,y:.011752662381854684},{x:.05213275445642904,y:.014313421036992145},{x:.059912660485882105,y:.018471867446385515},{x:.06673180515339464,y:.024068194846605412},{x:.07232813255361453,y:.030887339514117953},{x:.0764865789630079,y:.03866724554357101},{x:.07904733761814536,y:.04710893550927428},{x:.079912,y:.05588800000000005},{x:.079912,y:.36648688236049143},{x:.25933152798675563,y:.3728389247505383},{x:.2598033776805002,y:.3702688775066002},{x:.2630584474090824,y:.36206984491555727},{x:.26785052379396923,y:.35466338703825},{x:.5319365237939692,y:.022999387038250052},{x:.5380814500271169,y:.016670129897313986},{x:.5453430800394999,y:.011661303295187019},{x:.5534423534621115,y:.008165393629206541},{x:.5620680197594453,y:.00631674674730745},{x:.5708885994130244,y:.006186405112428031},{x:.5795651224933998,y:.00777937768050025},{x:.5877641550844427,y:.011034447409082423},{x:.59517061296175,y:.015826523793969254},{x:.601499870102686,y:.021971450027116944},{x:.606508696704813,y:.02923308003949996},{x:.6100046063707935,y:.03733235346211146},{x:.6118532532526926,y:.04595801975944533},{x:.6119835948875719,y:.05477859941302443},{x:.6103906223194997,y:.06345512249339977},{x:.6071355525909176,y:.07165415508444274},{x:.6023434762060308,y:.07906061296174999},{x:.36492288462028066,y:.3772356888373974},{x:.45122307475864126,y:.3907421966461853},{x:.4517263325772421,y:.3908725352482557},{x:.4522445282141884,y:.3909141268943158},{x:.4559919550269364,y:.3919772876167318},{x:.459762859565968,y:.3929539131315124},{x:.46023101962685037,y:.3931799280437793},{x:.4607311441523136,y:.39332181547170203},{x:.5072261441523136,y:.41160281547170213},{x:.5099186672764574,y:.4129799887569096},{x:.5126912264123276,y:.4141879634543456},{x:.5138373975854011,y:.41498434320238026},{x:.5150799754049854,y:.4156198976243936},{x:.5174520892726079,y:.41749589411441484},{x:.5199357102894067,y:.4192215573713852},{x:.5536387102894067,y:.4479225573713852},{x:.5544422891842978,y:.4487559165260936},{x:.5553578681885658,y:.44946439490120116},{x:.5574982196806069,y:.4519250983842071},{x:.5597619879819907,y:.4542727608851649},{x:.5603875460278954,y:.4552468777427617},{x:.5611473151639865,y:.4561203635073251},{x:.5627664809673836,y:.45895134712470415},{x:.5645287453623273,y:.46169553923588524},{x:.5649522427143585,y:.46277297903182424},{x:.5655270044804562,y:.4637779046177677},{x:.5843050044804562,y:.5056739046177676},{x:.5856980535944053,y:.5098331481877504},{x:.5870956418010017,y:.5139908687307394},{x:.5870987900445207,y:.5140153439302019},{x:.587106627133701,y:.514038743222053},{x:.5876614810321307,y:.5183898384933372},{x:.5882210839336397,y:.522740325535193},{x:.5899430839336397,y:.580600325535193},{x:.589777587866933,y:.5830153029012521},{x:.5898269599494498,y:.5854354407122341},{x:.5894767504310368,y:.5874052295805413},{x:.5893399666658296,y:.589401226848592},{x:.5887065118476329,y:.5917375144207835},{x:.5882827897945603,y:.5941207819778186},{x:.5699357897945603,y:.6593647819778187},{x:.5695566600666073,y:.6603356321127045},{x:.5693270257483343,y:.6613522723710545},{x:.5679549854437747,y:.6644370937206254},{x:.5667268644118839,y:.6675819841936177},{x:.5661656160899001,y:.668460215174679},{x:.5657420574552864,y:.6694125215424361},{x:.5637945617300048,y:.6721703971299327},{x:.5619765010042908,y:.6750152648867381},{x:.5612547025465381,y:.6757671267898905},{x:.5606534967163777,y:.6766185026674012},{x:.5398464967163776,y:.7006785026674012},{x:.5387925287989109,y:.70167944573824},{x:.5378793324857355,y:.7028102896247742},{x:.535601038014175,y:.7047103734673366},{x:.5334498940671065,y:.7067532939324781},{x:.5322209035416287,y:.707529385222465},{x:.5311046373415733,y:.7084603444980107},{x:.5029396373415734,y:.7276033444980106},{x:.49917038563569516,y:.7296565217962586},{x:.49541206095977475,y:.7317296332429761},{x:.4611910609597748,y:.7464366332429762},{x:.457170688924302,y:.7477143925092122},{x:.45316143447737084,y:.7490266191763204},{x:.37177643447737085,y:.7670666191763205},{x:.36787988134157384,y:.7675363076101905},{x:.36399443936523473,y:.7680904503837813},{x:.2290834393652347,y:.7739614503837813},{x:.2260604581328276,y:.7737959747883908},{x:.2230330269857825,y:.7738173839936113},{x:.030818026985782503,y:.7562573839936113},{x:.028490934977474184,y:.7558115802948838},{x:.02613293550927423,y:.7555793376181453},{x:.024169339379190496,y:.7549836872441402},{x:.022154034015341384,y:.7545976128723226},{x:.01995862841458906,y:.7537063820373993},{x:.01769124554357096,y:.7530185789630078},{x:.01588158498580211,y:.7520512952425895},{x:.013980322522940947,y:.7512794726091756},{x:.012000971535783972,y:.7499770641392344},{x:.009911339514117913,y:.7488601325536145},{x:.008325158769029223,y:.7475583876576994},{x:.006611003657363959,y:.7464304774736483},{x:.004923772632206568,y:.7447669421957904},{x:.0030921948466053617,y:.7432638051533946},{x:.0017904499506900475,y:.7416776244083056},{x:.0003292762098528329,y:.7402369716294513},{x:-.001000995511218774,y:.7382762382714833},{x:-.0025041325536145423,y:.7364446604858821},{x:-.0034714162740331275,y:.7346349999281129},{x:-.004623456556617868,y:.732936968032819},{x:-.005545647377387794,y:.7307543864780955},{x:-.006662578963007905,y:.728664754456429},{x:-.007258229337013042,y:.7267011583263452},{x:-.008056863899357211,y:.7248110017280808},{x:-.008535534543753812,y:.7224904473617442},{x:-.009223337618145366,y:.7202230644907257},{x:-.009424464135908606,y:.7181809926864091},{x:-.009839001899660749,y:.7161713490432334},{x:-.009855757323261527,y:.7138019994682},{x:-.010088,y:.711444},{x:-.010088,y:.05588800000000005}],[{x:.079912,y:.45654326739466394},{x:.079912,y:.6703676283824797},{x:.22820062174801237,y:.6839146886946046},{x:.3561457472749752,y:.6783468266821017},{x:.42954781695254723,y:.662076342723345},{x:.4559144639404158,y:.6507448714849071},{x:.47563211893454127,y:.6373433067928232},{x:.48601322722124407,y:.6253391992627579},{x:.4997779385388953,y:.5763903343143285},{x:.4985264355495565,y:.5343392524542002},{x:.48755361344964526,y:.5098575528750181},{x:.467303195590932,y:.4926125823096997},{x:.43241084881177044,y:.4788935374345549},{x:.3509044963348569,y:.4661372945522357},{x:.079912,y:.45654326739466394}]],S:[[{x:.021897597226735628,y:.20918252956592975},{x:.022856530106274857,y:.20041326151782815},{x:.025507836686771486,y:.19199957102060095},{x:.07532383668677148,y:.0752955710206009},{x:.07606476437254353,y:.07394451179196875},{x:.07662717764446286,y:.07250992955787258},{x:.07818101321859919,y:.07008559601860773},{x:.07956562874320691,y:.06756079148160443},{x:.08055589829123208,y:.06638024029801701},{x:.0813873780598424,y:.06508294454561242},{x:.08338432112997196,y:.06300833217803187},{x:.0852348965856767,y:.0608021661408081},{x:.08643645249257384,y:.05983749092219001},{x:.08750504545666679,y:.05872733599970995},{x:.08986835462050304,y:.05708217099364391},{x:.09211377343035676,y:.05527942517977789},{x:.09348044057646428,y:.05456769785378441},{x:.09474508130770348,y:.05368734639231786},{x:.18347008130770348,y:.00406434639231789},{x:.18531117162778632,y:.0032602675504258996},{x:.18705570252460849,y:.0022638899609980986},{x:.18934358471290644,y:.0014991491478438968},{x:.19155425509545604,y:.0005336596975895336},{x:.19351683738147718,y:.0001042099085839361},{x:.19542223123106015,y:-.0005326814704223887},{x:.1978153459361366,y:-.0008363843304376121},{x:.20017189655491793,y:-.0013520417748285815},{x:.2021805498702545,y:-.0013903589963945293},{x:.20417358345551592,y:-.0016432887864569548},{x:.36640558345551594,y:-.006196288786456984},{x:.3683537351453612,y:-.006059465175549666},{x:.37030515940756886,y:-.006136660097762148},{x:.3727431942064551,y:-.005751182385354602},{x:.3752054496398049,y:-.005578251970786187},{x:.37708947517888647,y:-.005063991846688501},{x:.37901846335331396,y:-.004758999502412188},{x:.3813344490261288,y:-.00390529164215812},{x:.3837156558614866,y:-.003255321831637216},{x:.38546315320491126,y:-.002383387922517842},{x:.38729557535780434,y:-.001707928996501587},{x:.5134735753578044,y:.059451071003498376},{x:.5144073364238021,y:.06002293670994077},{x:.5154151369003129,y:.060451046875811966},{x:.5181619939873726,y:.06232241135953579},{x:.5209964106485654,y:.06405830049148753},{x:.5218006642926897,y:.06480134570578519},{x:.5227055800155168,y:.06541784197435321},{x:.5250345719141375,y:.06778913394790613},{x:.5274758708842278,y:.07004463571609586},{x:.5281197100899656,y:.07093030562736781},{x:.5288869656553633,y:.07171149639276676},{x:.5307085905129939,y:.07449158843544039},{x:.5326629540416582,y:.07718002517181716},{x:.5331216364294024,y:.07817428398206286},{x:.5337217466362741,y:.07909014852127505},{x:.5349660004312154,y:.08217220325496363},{x:.5363583234240663,y:.08519025984344057},{x:.5366142220868877,y:.08625489874416871},{x:.5370241250365293,y:.08727024089657527},{x:.5783351250365293,y:.22800124089657534},{x:.5784689928995229,y:.22870739358153944},{x:.5787167010683089,y:.22938208824013706},{x:.5792894483007394,y:.23303529403132756},{x:.5799781923062021,y:.23666841715613338},{x:.579971724381043,y:.23738711763976203},{x:.5800830465086156,y:.23809717369609615},{x:.5799320834693805,y:.24179192160438975},{x:.5798988062915618,y:.2454896025769029},{x:.5797522511369868,y:.24619323160266243},{x:.5797229091764134,y:.2469113620006918},{x:.5788540372904492,y:.2505056649360105},{x:.5781000177526308,y:.2541258039501414},{x:.5778190074010411,y:.2547873214491718},{x:.5776501289474114,y:.2554859288404322},{x:.5462891289474114,y:.3454679288404322},{x:.5453940585085517,y:.34740151578805634},{x:.5446999978282894,y:.3494160105998292},{x:.5435456407901493,y:.3513945829466735},{x:.5425833616033817,y:.3534733584203385},{x:.5413282655917657,y:.35519517245680393},{x:.5402545326513293,y:.3570355547940282},{x:.5387363559437135,y:.3587509055417339},{x:.537387017705137,y:.36060200657115166},{x:.5358201287566253,y:.36204587934864135},{x:.5344079865107593,y:.36364142435019586},{x:.5325843328131388,y:.3650276335315076},{x:.5308997898345437,y:.36657992334222783},{x:.5290813226127058,y:.36769036763963614},{x:.5273850388959807,y:.368979759405903},{x:.44286903889598056,y:.42100375940590296},{x:.4391930936098881,y:.42279580082266366},{x:.4355432374645799,y:.42464039733796655},{x:.4352309585303121,y:.42472736117212373},{x:.4349395777453148,y:.4248694107387315},{x:.430984654780085,y:.42590987723258605},{x:.42704506666901776,y:.42700697873237736},{x:.18802361397643091,y:.46887992641475673},{x:.1445277950559712,y:.506325930968192},{x:.1345999941059918,y:.5433489412625321},{x:.1668438673565076,y:.6442112383308392},{x:.2418447705661005,y:.6964178007533797},{x:.3847076342900009,y:.6886954406015322},{x:.4475324208368403,y:.608018765726417},{x:.4536085342974724,y:.6016234190133417},{x:.4608155671913789,y:.5965363480257236},{x:.46887655728619765,y:.5929530460487544},{x:.47748172525324006,y:.5910112173678703},{x:.48630037931336645,y:.5907854853702875},{x:.49499362353660437,y:.5922845248100812},{x:.5032273814226823,y:.5954507284422511},{x:.5106852342735829,y:.6001624208368403},{x:.5170805809866582,y:.6062385342974724},{x:.5221676519742764,y:.6134455671913789},{x:.5257509539512455,y:.6215065572861976},{x:.5276927826321296,y:.63011172525324},{x:.5279185146297124,y:.6389303793133664},{x:.5264194751899187,y:.6476236235366044},{x:.5232532715577489,y:.6558573814226824},{x:.5185415791631597,y:.663315234273583},{x:.4431175791631597,y:.760171234273583},{x:.4420344490669973,y:.7613112710002186},{x:.44110391182703096,y:.7625789282836855},{x:.4390031114098716,y:.7645018722698176},{x:.4370414657025276,y:.7665665809866583},{x:.43575673751534005,y:.767473404028016},{x:.4345967726198766,y:.768535164822443},{x:.4321611907321885,y:.7700113141492059},{x:.4298344328086211,y:.7716536519742764},{x:.42839747791415833,y:.7722924126294288},{x:.42705266216361437,y:.7731074740629288},{x:.4243758968514515,y:.7740801011395291},{x:.42177344271380235,y:.7752369539512456},{x:.4202394824828045,y:.7755831050064366},{x:.4187614963922926,y:.7761201447252115},{x:.4159464142454535,y:.7765518720385514},{x:.41316827474676,y:.7771787826321297},{x:.4115962584106506,y:.7772190216964318},{x:.4100419001567639,y:.7774574015652649},{x:.23125890015676387,y:.7871214015652648},{x:.22961427991333744,y:.7870487065186679},{x:.22797320559841586,y:.7871788426312305},{x:.22521775007366066,y:.7868543723294609},{x:.22244596265035355,y:.7867318545526676},{x:.22084712542379714,y:.7863397068281228},{x:.21921219559556868,y:.7861471846952227},{x:.21657298639174055,y:.7852913862936938},{x:.21387836011908076,y:.7846304737606538},{x:.21238674832737245,y:.7839339433752962},{x:.2108207924222569,y:.7834261615145331},{x:.2083992528689725,y:.782071922865878},{x:.2058853407234555,y:.7808980140745921},{x:.20455827617124617,y:.7799238683005129},{x:.20312147299647784,y:.7791203404840283},{x:.10291447299647782,y:.7093683404840284},{x:.10181255131472464,y:.7084283417469311},{x:.10059641238964509,y:.7076416809983432},{x:.09846400643554813,y:.7055718520256913},{x:.09620311784593605,y:.7036431918911783},{x:.09530575393663021,y:.7025062807105057},{x:.09426645267874648,y:.7014974784931097},{x:.09257882390791694,y:.6990514089395268},{x:.09073764058529563,y:.6967187299857058},{x:.09007931964022471,y:.6954285972205445},{x:.08925679581402991,y:.6942364212378118},{x:.08807879885369768,y:.6915081121844703},{x:.08672807644060793,y:.6888610579553555},{x:.08633409736450004,y:.6874672826843552},{x:.08575996009935855,y:.6861375475907227},{x:.04484896009935855,y:.5581635475907226},{x:.04400698871411546,y:.5542371548008082},{x:.04309586967447821,y:.5503262293029391},{x:.04308290316808571,y:.5499278363503387},{x:.04299932697019912,y:.5495380927241992},{x:.04293953506277818,y:.5455228840020936},{x:.042808906634767226,y:.5415093553341928},{x:.04287391188557095,y:.5411160877505585},{x:.04286797679041901,y:.5407175280315513},{x:.04359266213029085,y:.5367678055966908},{x:.04424754429113727,y:.532805911414652},{x:.06119154429113727,y:.4696179114146519},{x:.06126294463056804,y:.4694283141856516},{x:.06129777501412092,y:.46922873472253734},{x:.06281676603792068,y:.46530228011432895},{x:.0643004966052513,y:.46136236601319713},{x:.0644075135916399,y:.46119034135699993},{x:.06448061074086608,y:.46100139182805006},{x:.06673642807197144,y:.45744672339211917},{x:.06896028828319853,y:.453871975109843},{x:.06909880931377366,y:.45372413383751425},{x:.06920736414622189,y:.4535530754671619},{x:.07211331798967527,y:.4505067971180214},{x:.07499184614403663,y:.4474345902263458},{x:.07515654793327702,y:.4473166137950705},{x:.07529638874761438,y:.44717002026055797},{x:.1386943887476144,y:.392590020260558},{x:.14135607757337018,y:.39071931904916735},{x:.1439175788350931,y:.3887136217356019},{x:.14495796828078528,y:.38818782053421796},{x:.14591168674437638,y:.38751752344016943},{x:.1488871876674173,y:.38620203695812855},{x:.15179076253542007,y:.38473460266203335},{x:.15291373991533655,y:.3844218744952798},{x:.15397990142199966,y:.3839505182141148},{x:.15715486761053352,y:.383240799869195},{x:.1602889333309822,y:.3823680212676226},{x:.4030282434963717,y:.3398437611206276},{x:.46657219784598525,y:.30072914754350266},{x:.487912612564808,y:.23949853636308405},{x:.45628203537627,y:.13174508671722343},{x:.35793695341674575,y:.08407681754539842},{x:.21775140382412592,y:.0880110894972649},{x:.15207256592030022,y:.12474460286217379},{x:.10828216331322851,y:.2273324289793991},{x:.10404037125679308,y:.23506720851839558},{x:.09837110341432329,y:.2418258338591919},{x:.09149222656964323,y:.24734857482022213},{x:.08366809210217534,y:.25142319556354265},{x:.07519937711167927,y:.2538931106990613},{x:.06641152956592972,y:.2546634027732644},{x:.05764226151782814,y:.2537044698937252},{x:.04922857102060091,y:.2510531633132285},{x:.04149379148160447,y:.24681137125679312},{x:.034735166140808106,y:.24114210341432332},{x:.029212425179777887,y:.23426322656964324},{x:.025137804436457384,y:.22643909210217536},{x:.022667889300938757,y:.21797037711167933},{x:.021897597226735628,y:.20918252956592975}]],T:[[{x:-.022050999999999998,y:.729004},{x:-.021186337618145364,y:.7202249355092742},{x:-.018625578963007903,y:.711783245543571},{x:-.01446713255361454,y:.7040033395141179},{x:-.008870805153394636,y:.6971841948466053},{x:-.002051660485882085,y:.6915878674463855},{x:.005728245543570962,y:.6874294210369921},{x:.014169935509274232,y:.6848686623818546},{x:.022949,y:.684004},{x:.264284,y:.684004},{x:.264284,y:.05103000000000002},{x:.26514866238185464,y:.04225093550927423},{x:.2677094210369921,y:.03380924554357098},{x:.27186786744638547,y:.026029339514117924},{x:.27746419484660534,y:.019210194846605383},{x:.28428333951411794,y:.013613867446385479},{x:.292063245543571,y:.009455421036992116},{x:.30050493550927426,y:.006894662381854655},{x:.309284,y:.0060300000000000215},{x:.3180630644907258,y:.006894662381854655},{x:.32650475445642907,y:.009455421036992116},{x:.3342846604858821,y:.013613867446385486},{x:.34110380515339467,y:.019210194846605383},{x:.34670013255361454,y:.026029339514117924},{x:.3508585789630079,y:.03380924554357098},{x:.35341933761814537,y:.04225093550927425},{x:.354284,y:.05103000000000002},{x:.354284,y:.684004},{x:.579103,y:.684004},{x:.5878820644907258,y:.6848686623818546},{x:.596323754456429,y:.6874294210369921},{x:.6041036604858822,y:.6915878674463855},{x:.6109228051533947,y:.6971841948466053},{x:.6165191325536146,y:.7040033395141179},{x:.6206775789630079,y:.711783245543571},{x:.6232383376181454,y:.7202249355092742},{x:.6241030000000001,y:.729004},{x:.6232383376181454,y:.7377830644907257},{x:.6206775789630079,y:.746224754456429},{x:.6165191325536146,y:.7540046604858821},{x:.6109228051533947,y:.7608238051533946},{x:.6041036604858822,y:.7664201325536145},{x:.596323754456429,y:.7705785789630079},{x:.5878820644907258,y:.7731393376181454},{x:.579103,y:.774004},{x:.022949,y:.774004},{x:.014169935509274211,y:.7731393376181454},{x:.005728245543570935,y:.7705785789630079},{x:-.0020516604858820953,y:.7664201325536145},{x:-.008870805153394643,y:.7608238051533946},{x:-.01446713255361454,y:.7540046604858821},{x:-.018625578963007903,y:.746224754456429},{x:-.021186337618145364,y:.7377830644907257},{x:-.022050999999999998,y:.729004}]],U:[[{x:.027022176378557076,y:.7288780077818786},{x:.02808017637855708,y:.35099900778187865},{x:.02823473618726791,y:.3494735334648019},{x:.028192796744230073,y:.34794082288884604},{x:.035484796744230065,y:.24514582288884607},{x:.03612518708694976,y:.24139252668431194},{x:.03666424897987138,y:.2376233431565944},{x:.055316248979871384,y:.16148034315659432},{x:.05618736340037885,y:.15900518320818077},{x:.05685851158014249,y:.15646848905542057},{x:.057648252259250334,y:.15485425480263812},{x:.058244846291224776,y:.15315910934454152},{x:.0595821022437829,y:.15090145489330362},{x:.06073523897858293,y:.14854443712190207},{x:.09649723897858292,y:.0906284371219021},{x:.09834293286415725,y:.08820732921922435},{x:.10003759110096133,y:.08567820232322114},{x:.10101147458130413,y:.08470684222595504},{x:.10184538199049184,y:.08361295562088691},{x:.10412794610596264,y:.08159844564215248},{x:.10628345014049506,y:.07944852663140606},{x:.15306845014049508,y:.041154526631406},{x:.15518086878702558,y:.03974701384514513},{x:.15716842451696925,y:.03816808161035298},{x:.15884280372557036,y:.03730705230772802},{x:.16040964618671547,y:.03626305906247794},{x:.1627560674239954,y:.03529470367371844},{x:.16501346722603244,y:.034133863066459845},{x:.23490646722603245,y:.006476863066459913},{x:.23625924682734178,y:.006089880823813601},{x:.23754823013535448,y:.005525708919597472},{x:.24049103862888763,y:.004879315347967098},{x:.24338780663402787,y:.004050652809021178},{x:.24479008944495417,y:.003935020529692536},{x:.24616436977860445,y:.0036331571990539033},{x:.3343553697786044,y:-.006825842800946093},{x:.3363658265006992,y:-.006865793301669296},{x:.3383604992721398,y:-.007120376900508131},{x:.34076517153289726,y:-.0069532142518240045},{x:.3431751712391958,y:-.00700110421331946},{x:.3451547915551648,y:-.0066480664270605625},{x:.3471608040448924,y:-.0065086169201366215},{x:.4090588040448924,y:.003962383079863387},{x:.4119620232343868,y:.004752615784895447},{x:.4149089852784979,y:.005359710588792872},{x:.4162090298953196,y:.005908616535408058},{x:.4175706649775032,y:.0062792425557079215},{x:.42026393287145114,y:.0076206811274584655},{x:.4230358315454356,y:.008791034549085273},{x:.4738028315454356,y:.03637303454908527},{x:.4760785863358737,y:.0379161826666043},{x:.4784624107710392,y:.03928649177082543},{x:.47972093897980134,y:.04038599604431689},{x:.48110410464379305,y:.04132389563682743},{x:.48303507818089647,y:.043281370330868374},{x:.4851057640535682,y:.045090410406577325},{x:.5154867640535682,y:.07740541040657731},{x:.5155903820373309,y:.07753992155387555},{x:.5157174079857786,y:.07765259073212467},{x:.5182811318880063,y:.08103290449336144},{x:.5208701788099869,y:.08439386230433626},{x:.5209455639802052,y:.08454600372347547},{x:.521048168494406,y:.08468128952824439},{x:.5340921684944061,y:.10592328952824437},{x:.5341054861393935,y:.10595068243490303},{x:.5341238592672674,y:.10597497562685786},{x:.5360339092314592,y:.10991723311331511},{x:.5379492688231333,y:.11385691363208547},{x:.5379569864823256,y:.11388637833537296},{x:.5379702672090579,y:.11391378915988949},{x:.557924267209058,y:.16807278915988946},{x:.5580810067186996,y:.16867450001810444},{x:.5583366124011981,y:.1692413235937006},{x:.5591915686944892,y:.17293786157308777},{x:.5601479818122073,y:.1766094575809222},{x:.5601843216510317,y:.17723018509512725},{x:.5603244341481242,y:.17783598350956487},{x:.5696394341481241,y:.2495799835095649},{x:.569721927352796,y:.25224539988339456},{x:.5700114646960025,y:.2548963275892337},{x:.5750284646960026,y:.7275053275892338},{x:.5742570402937379,y:.7362930758081182},{x:.5717860339652341,y:.7447614724740409},{x:.5677104050979391,y:.752585081852262},{x:.5621867778235843,y:.7594632470219072},{x:.5554274220406369,y:.7651316439528263},{x:.5476920960011455,y:.7693724393298378},{x:.5392780639467868,y:.7720226617648687},{x:.5305086724107663,y:.7729804646960026},{x:.5217209241918819,y:.7722090402937379},{x:.5132525275259592,y:.7697380339652341},{x:.505428918147738,y:.7656624050979391},{x:.4985507529780929,y:.7601387778235843},{x:.49288235604717384,y:.753379422040637},{x:.48864156067016223,y:.7456440960011456},{x:.48599133823513135,y:.7372300639467868},{x:.4850335353039975,y:.7284606724107663},{x:.48004487037154997,y:.258520878697574},{x:.4717248917269394,y:.19444051929027983},{x:.4550625667192203,y:.14921575933773623},{x:.4467624246683876,y:.135699076001046},{x:.42448554918380393,y:.11200409455592171},{x:.3866565267646711,y:.09145137140181527},{x:.33852910612300163,y:.08330987698295},{x:.2625775703514966,y:.09231733933890664},{x:.20464797458906397,y:.11524036210229632},{x:.16911733402594603,y:.14432255403825953},{x:.14104265103985364,y:.1897890642955865},{x:.12498883901236212,y:.25532548983758135},{x:.11807553704626646,y:.35278200048003916},{x:.11702182362144292,y:.7291299922181214},{x:.11613258476624799,y:.737906601393955},{x:.11354820087598706,y:.7463410885908555},{x:.10936798837422372,y:.7541093211959605},{x:.10375259048311052,y:.7609127703867312},{x:.09691780379445152,y:.7664899834261845},{x:.0891262853276994,y:.770626631144951},{x:.08067745876799748,y:.7731637444910576},{x:.07189600778187862,y:.7740038236214429},{x:.06311939860604492,y:.773114584766248},{x:.05468491140914452,y:.770530200875987},{x:.04691667880403945,y:.7663499883742237},{x:.04011322961326877,y:.7607345904831105},{x:.03453601657381558,y:.7538998037944515},{x:.030399368855048972,y:.7461082853276993},{x:.027862255508942363,y:.7376594587679974},{x:.027022176378557076,y:.7288780077818786}]],V:[[{x:-.017163400590915968,y:.72836062945125},{x:-.016173311217885875,y:.7195948244454146},{x:-.01349212241321528,y:.7111906087794154},{x:.27875887758678475,y:.033216608779415485},{x:.2789749302503264,y:.03282594254600198},{x:.27911899522766415,y:.032403397706182537},{x:.2811076886540147,y:.028969490703698003},{x:.2830281292409603,y:.025496951748158487},{x:.28331624571443165,y:.0251559418405784},{x:.28353997693249255,y:.024769621764193565},{x:.2861603801951793,y:.021789671162821947},{x:.2887213787977949,y:.018758515442121357},{x:.2890704869266977,y:.018480266679882864},{x:.2893652865202418,y:.018145017430816868},{x:.2925166989914198,y:.015733541060992128},{x:.2956198378696305,y:.013260254189586457},{x:.29601652162435305,y:.013055459516578674},{x:.296371060610326,y:.012784164535463174},{x:.29993237527606087,y:.011033834081706148},{x:.30345840254303674,y:.009213463087028258},{x:.303887417589348,y:.00908999264768462},{x:.3042880712333465,y:.00889307764850001},{x:.3081224287682413,y:.00787115732855266},{x:.3119358411735324,y:.006773658047051503},{x:.31238070070379703,y:.0067362567411129665},{x:.3128120721109714,y:.0066212890568466964},{x:.3167721203052928,y:.006367050695504971},{x:.32072637054875,y:.006034599409084053},{x:.3211699788607,y:.006084704547762943},{x:.3216154906697884,y:.006056102322046737},{x:.325549047092249,y:.006579316156958459},{x:.3294921755545854,y:.0070246887821141385},{x:.32991748502957097,y:.007160374853030322},{x:.330360016471596,y:.007219237253358143},{x:.3341159167548444,y:.008499796470269213},{x:.33789639122058457,y:.00970587758678474},{x:.33828705745399834,y:.009921930250326543},{x:.33870960229381747,y:.01006599522766418},{x:.3421435092963017,y:.012054688654014527},{x:.34561604825184156,y:.013975129240960359},{x:.3459570581594215,y:.014263245714431577},{x:.34634337823580646,y:.014486976932492547},{x:.34932332883717915,y:.01710738019518028},{x:.35235448455787866,y:.01966837879779494},{x:.3526327333201171,y:.020017486926697612},{x:.35296798256918316,y:.020312286520241793},{x:.3553794589390082,y:.023463698991420194},{x:.3578527458104136,y:.026566837869630475},{x:.3580575404834214,y:.026963521624353053},{x:.35832883546453687,y:.02731806061032596},{x:.3600791659182934,y:.03087937527605991},{x:.3618995369129718,y:.03440540254303673},{x:.3620230073523154,y:.034834417589348},{x:.3622199223515,y:.0352350712333465},{x:.6163569223515,y:.7132090712333464},{x:.6186287109431533,y:.7217330721109714},{x:.6191938976779532,y:.7305364906697883},{x:.6180307627466418,y:.7392810164715959},{x:.6151840047723358,y:.7476306022938175},{x:.6107630230675074,y:.7552643782358064},{x:.6049377134797582,y:.7618889825691831},{x:.597931939389674,y:.7672498354645368},{x:.5900149287666535,y:.7711409223515},{x:.5814909278890286,y:.7734127109431533},{x:.5726875093302116,y:.7739778976779532},{x:.5639429835284039,y:.7728147627466418},{x:.5555933977061824,y:.7699680047723358},{x:.5479596217641935,y:.7655470230675074},{x:.5413350174308168,y:.7597217134797583},{x:.5359741645354631,y:.7527159393896741},{x:.5320830776484999,y:.7447989287666535},{x:.3171703309688009,y:.17146543337864517},{x:.06915612241321528,y:.7468173912205845},{x:.06488687075903964,y:.7545370482518415},{x:.059193621202205074,y:.7612754845578786},{x:.05229516213036956,y:.7667737458104136},{x:.04445659745696326,y:.7708205369129717},{x:.0359791588264676,y:.7732603419529485},{x:.027188629451250054,y:.773999400590916},{x:.01842282444541461,y:.7730093112178859},{x:.010018608779415478,y:.7703281224132152},{x:.0022989517481584835,y:.7660588707590397},{x:-.004439484557878664,y:.7603656212022051},{x:-.009937745810413578,y:.7534671621303695},{x:-.013984536912971763,y:.7456285974569633},{x:-.016424341952948517,y:.7371511588264675},{x:-.017163400590915968,y:.72836062945125}]],W:[[{x:-.04486424190193638,y:.7324968210037928},{x:-.04468360364824366,y:.7236771280279449},{x:.03511539635175633,y:.05429612802794491},{x:.03538914303981033,y:.053053468981350556},{x:.035486899606724354,y:.05178477579191172},{x:.03633616861564037,y:.04875449496443272},{x:.037013200434797444,y:.04568114375463893},{x:.03752411791055629,y:.04451576738270255},{x:.03786750587531561,y:.043290523137271594},{x:.039291634880795206,y:.040484152470619886},{x:.040555238800576446,y:.03760193719815913},{x:.041283692791972554,y:.036558628261303676},{x:.041859515947665654,y:.035423918409107566},{x:.04380377647068911,y:.032949305154171604},{x:.045605392901094464,y:.030368987735599786},{x:.046523389329760155,y:.02948784001117424},{x:.047309519115439125,y:.028487270815480248},{x:.049699194314460494,y:.02643951297186818},{x:.05196958814642765,y:.024260253558522238},{x:.05304184892442764,y:.02357512905942291},{x:.054008074813295476,y:.022747151833295932},{x:.056751330810561565,y:.021204943586542027},{x:.059403252082379655,y:.019510489895534},{x:.060588570829346225,y:.019047717572039012},{x:.06169776130235942,y:.01842415101594414},{x:.06468917630833097,y:.01744675856409077},{x:.06762071317273859,y:.01630222750050557},{x:.06887353875396018,y:.016079591433481148},{x:.07008306824328207,y:.01568439886046892},{x:.07320768385688461,y:.015309382847312772},{x:.07630617899620724,y:.014758758098063603},{x:.07757836602719018,y:.014784814066709744},{x:.07884175299285809,y:.014633182505734484},{x:.08197949198836539,y:.014874954586349768},{x:.08512587197205507,y:.014939396351756326},{x:.08636853101864941,y:.015213143039810315},{x:.08763722420808827,y:.015310899606724347},{x:.09066750503556728,y:.016160168615640357},{x:.09374085624536103,y:.01683720043479743},{x:.09490623261729739,y:.017348117910556266},{x:.09613147686272838,y:.017691505875315594},{x:.09893784752938008,y:.01911563488079519},{x:.10182006280184085,y:.020379238800576432},{x:.10286337173869634,y:.02110769279197256},{x:.1039980815908924,y:.02168351594766564},{x:.10647269484582828,y:.023627776470689026},{x:.1090530122644002,y:.025429392901094458},{x:.10993415998882576,y:.026347389329760156},{x:.11093472918451973,y:.02713351911543911},{x:.11298248702813177,y:.02952319431446044},{x:.11516174644147774,y:.03179358814642764},{x:.11584687094057705,y:.032865848924427614},{x:.11667484816670405,y:.03383207481329547},{x:.118217056413458,y:.03657533081056164},{x:.11991151010446596,y:.039227252082379635},{x:.12037428242796094,y:.040412570829346184},{x:.12099784898405583,y:.041521761302359406},{x:.2862381791186236,y:.4176126753554925},{x:.4644074439049092,y:.03214939722735514},{x:.46457066699968924,y:.031871550040082325},{x:.46468087848244366,y:.03156873942729889},{x:.4668033610072479,y:.028070937443703255},{x:.4688757411162635,y:.024543219843286366},{x:.46909003322228215,y:.024302554657928657},{x:.4692572024422568,y:.02402706365982141},{x:.47202128937582516,y:.021010546759784428},{x:.47474207284479647,y:.017954914566682648},{x:.47499919883659564,y:.017760680011347015},{x:.4752169015744166,y:.01752309559247584},{x:.47851637060601154,y:.015103786828781735},{x:.4817809992520572,y:.012637666274559728},{x:.4820710779219699,y:.012497326674279732},{x:.48233094798351184,y:.012306779070622963},{x:.4860390023686124,y:.010577651122297159},{x:.4897220183436901,y:.008795813836836655},{x:.4900339021311097,y:.008714762363747632},{x:.4903259528556443,y:.008578574212853553},{x:.49430009414373083,y:.007606076497244536},{x:.4982599612093785,y:.006576997488159493},{x:.4985816645952609,y:.006558348904918078},{x:.4988946726372282,y:.006481753841050326},{x:.5029821768073245,y:.006303258899985619},{x:.5070667194929276,y:.00606648509648134},{x:.5073858795965667,y:.006110956057683261},{x:.5077078162324508,y:.006096897586191266},{x:.5117516027915979,y:.006719264880154805},{x:.5158038544123874,y:.0072838953667157535},{x:.5161082060899873,y:.007389776878261636},{x:.5164266994754154,y:.007438795258320738},{x:.5202713679739276,y:.008838107561233023},{x:.5241356027726449,y:.01018244390490916},{x:.524413449959918,y:.010345666999689355},{x:.5247162605727012,y:.010455878482443691},{x:.5282140625562944,y:.012578361007246536},{x:.5317417801567137,y:.014650741116263542},{x:.5319824453420714,y:.01486503322228222},{x:.5322579363401786,y:.01503220244225683},{x:.535274453240215,y:.01779628937582467},{x:.5383300854333174,y:.020517072844796484},{x:.5385243199886531,y:.020774198836595797},{x:.5387619044075241,y:.0209919015744166},{x:.5411812131712181,y:.024291370606011366},{x:.5436473337254403,y:.027555999252057217},{x:.5437876733257202,y:.027846077921969747},{x:.5439782209293771,y:.028105947983511865},{x:.5457073488777034,y:.03181400236861376},{x:.5474891861631633,y:.0354970183436901},{x:.5475702376362523,y:.03580890213110964},{x:.5477064257871465,y:.03610095285564429},{x:.548678923502756,y:.040075094143733274},{x:.5497080025118405,y:.04403496120937851},{x:.5497266510950819,y:.04435666459526063},{x:.5498032461589497,y:.04466967263722821},{x:.6466002461589497,y:.7226436726372282},{x:.6469851024138088,y:.7314568162324507},{x:.6456432047416794,y:.7401756994754154},{x:.6426261215175564,y:.7484652605727011},{x:.6380497975577433,y:.7560069363401786},{x:.6320900984255835,y:.7625109044075241},{x:.6249760520164882,y:.7677272209293771},{x:.6169810471443558,y:.7714554257871464},{x:.6084123273627718,y:.7735522461589497},{x:.5995991837675493,y:.7739371024138088},{x:.5908803005245846,y:.7725952047416793},{x:.5825907394272989,y:.7695781215175563},{x:.5750490636598214,y:.7650017975577432},{x:.5685450955924759,y:.7590420984255835},{x:.563328779070623,y:.7519280520164882},{x:.5596005742128536,y:.7439330471443557},{x:.5575037538410503,y:.7353643273627718},{x:.4822251865940539,y:.2081071670095049},{x:.3260455560950909,y:.5459966027726448},{x:.3245096626856286,y:.5486110836728201},{x:.32313748405233433,y:.5513150815908924},{x:.32228015650766817,y:.5524062697730983},{x:.32157725888373645,y:.5536027801567136},{x:.3195608173147473,y:.5558673865996665},{x:.3176874808845609,y:.5582517291845196},{x:.31663374639442166,y:.5591546941850146},{x:.31571092715520355,y:.5601910854333173},{x:.3132914281453504,y:.5620187898634509},{x:.3109889251867045,y:.563991848166704},{x:.30977927817660644,y:.5646718895469083},{x:.3086720007479428,y:.5655083337254402},{x:.3059424242873038,y:.566828898486493},{x:.3032992386976406,y:.5683148489840557},{x:.30198016522380455,y:.5687458331350992},{x:.3007309816563099,y:.5693501861631632},{x:.29779622383750376,y:.570112862691949},{x:.29491393175671793,y:.571054601139531},{x:.29353612307299787,y:.5712199655821879},{x:.29219303879062153,y:.5715690025118404},{x:.28916588071079274,y:.5717444815770724},{x:.2861552470071419,y:.5721058174942654},{x:.2847716515285703,y:.5719992073657418},{x:.2833862805070725,y:.5720795149035186},{x:.28038305415357795,y:.5716610529431293},{x:.27735977579191173,y:.5714281003932755},{x:.27602356431680025,y:.5710536126610233},{x:.27464914558761266,y:.5708621046332842},{x:.27178526326499086,y:.5698657829057354},{x:.26886552313727163,y:.5690474941246844},{x:.26762804552325165,y:.5684195201422382},{x:.26631739722735515,y:.5679635560950907},{x:.26370291632718046,y:.5664276626856288},{x:.2609989184091076,y:.5650554840523343},{x:.25990773022690183,y:.5641981565076682},{x:.2587112198432863,y:.5634952588837364},{x:.25644661340033337,y:.5614788173147471},{x:.2540622708154803,y:.5596054808845607},{x:.2531593058149851,y:.5585517463944213},{x:.2521229145666826,y:.5576289271552034},{x:.2502952101365493,y:.5552094281453507},{x:.24832215183329598,y:.5529069251867045},{x:.2476421104530918,y:.5516972781766065},{x:.24680566627455972,y:.5505900007479427},{x:.245485101513507,y:.5478604242873037},{x:.24399915101594416,y:.5452172386976405},{x:.10495542809967917,y:.22875042455884986},{x:.04468360364824366,y:.734330871972055},{x:.04278579956520255,y:.742945856245361},{x:.03924376119942353,y:.7510250628018409},{x:.034193607098905524,y:.7582580122644001},{x:.02782941185357234,y:.7643667464414777},{x:.020395747917620333,y:.7691165101044659},{x:.012178286827261426,y:.7723247724994944},{x:.003492821003792758,y:.7738682419019364},{x:-.00532687197205508,y:.7736876036482436},{x:-.013941856245361059,y:.7717897995652026},{x:-.022021062801840872,y:.7682477611994235},{x:-.029254012264400202,y:.7631976070989055},{x:-.035362746441477744,y:.7568334118535723},{x:-.04011251010446598,y:.7493997479176203},{x:-.04332077249949441,y:.7411822868272614},{x:-.04486424190193638,y:.7324968210037928}]],X:[[{x:-.03582341524240513,y:.7325834270170574},{x:-.035659804156077404,y:.7237634017461555},{x:-.03377863524060577,y:.7151447697271875},{x:-.030252200762440104,y:.7070587401552579},{x:-.02521601962092907,y:.6998160546121182},{x:.24190189785100796,y:.3863717955888736},{x:-.0190039697420246,y:.08021800391719859},{x:-.024040163260448045,y:.07297532698032597},{x:-.027566611556706647,y:.06488930343468059},{x:-.029447795200430175,y:.056270674630427356},{x:-.029611421359170286,y:.047450649639130975},{x:-.028051201971409197,y:.03876817707487998},{x:-.024827095393237467,y:.030556919489131844},{x:-.02006300223235442,y:.02313243090598055},{x:-.013942003917198569,y:.016780030257975413},{x:-.006699326980325947,y:.011743836739551976},{x:.0013866965653194212,y:.00821738844329338},{x:.010005325369572668,y:.006336204799569846},{x:.018825350360869044,y:.0061725786408297345},{x:.02750782292512003,y:.007732798028590823},{x:.03571908051086817,y:.010956904606762553},{x:.04314356909401947,y:.0157209977676456},{x:.049495969742024595,y:.021841996082801452},{x:.3010259353438819,y:.31699385831754345},{x:.5525549803790709,y:.021842054612118165},{x:.558907370566982,y:.01572104544144637},{x:.5663318510088331,y:.010956939592969957},{x:.5745431030849405,y:.007732818982704524},{x:.5832255729829426,y:.006172584757594898},{x:.5920455982538445,y:.006336195843922615},{x:.6006642302728125,y:.008217364759394247},{x:.6087502598447422,y:.011743799237559922},{x:.6159929453878819,y:.016779980379070948},{x:.6221139545585537,y:.023132370566981995},{x:.6268780604070301,y:.03055685100883309},{x:.6301021810172955,y:.0387681030849405},{x:.6316624152424052,y:.04745057298294264},{x:.6314988041560774,y:.05627059825384449},{x:.6296176352406058,y:.06488923027281246},{x:.6260912007624402,y:.07297525984474214},{x:.6210550196209291,y:.08021794538788188},{x:.36015009139561527,y:.3863716945525663},{x:.6272689697420246,y:.6998159960828014},{x:.632305163260448,y:.7070586730196741},{x:.6358316115567066,y:.7151446965653194},{x:.6377127952004301,y:.7237633253695727},{x:.6378764213591702,y:.7325833503608691},{x:.6363162019714091,y:.74126582292512},{x:.6330920953932374,y:.7494770805108681},{x:.6283280022323544,y:.7569015690940195},{x:.6222070039171985,y:.7632539697420246},{x:.6149643269803259,y:.7682901632604481},{x:.6068783034346805,y:.7718166115567067},{x:.5982596746304273,y:.7736977952004301},{x:.5894396496391309,y:.7738614213591702},{x:.58075717707488,y:.7723012019714092},{x:.5725459194891318,y:.7690770953932374},{x:.5651214309059804,y:.7643130022323544},{x:.5587690302579753,y:.7581920039171985},{x:.30102605390274134,y:.4557496318238965},{x:.04328401962092907,y:.7581919453878818},{x:.03693162943301802,y:.7643129545585536},{x:.029507148991166913,y:.76907706040703},{x:.021295896915059523,y:.7723011810172955},{x:.012613427017057378,y:.7738614152424051},{x:.003793401746155514,y:.7736978041560774},{x:-.004825230272812429,y:.7718166352406057},{x:-.012911259844742107,y:.7682902007624401},{x:-.02015394538788185,y:.7632540196209291},{x:-.02627495455855365,y:.756901629433018},{x:-.031039060407030063,y:.7494771489911669},{x:-.034263181017295495,y:.7412658969150595},{x:-.03582341524240513,y:.7325834270170574}]],Y:[[{x:-.02688005049839745,y:.731186349993587},{x:-.02644216088936969,y:.7223756821949907},{x:-.024293809188388457,y:.7138197369324374},{x:-.020517555346512936,y:.7058473143841377},{x:-.015258518681138845,y:.6987647902776368},{x:.25043465103960333,y:.4059541390643743},{x:.26029423204414154,y:.04978477430584237},{x:.26140149479875585,y:.04103299828270508},{x:.26419486861258723,y:.03266540142918031},{x:.26856700569651215,y:.025003545799746604},{x:.27434988727431814,y:.01834187220942495},{x:.28132128045004745,y:.012936385038381841},{x:.28921327849355916,y:.008994814127168342},{x:.2977225963459245,y:.006668631835443931},{x:.30652222569415766,y:.00604723204414153},{x:.3152740017172949,y:.007154494798755871},{x:.32364159857081976,y:.009947868612587236},{x:.3313034542002534,y:.014320005696512164},{x:.3379651277905751,y:.020102887274318144},{x:.3433706149616182,y:.027074280450047443},{x:.3473121858728317,y:.03496627849355913},{x:.3496383681645561,y:.04347559634592452},{x:.3502597679558585,y:.05227522569415767},{x:.34045421751128274,y:.4064927803087797},{x:.6166036868780955,y:.6970396048261934},{x:.6220250193382449,y:.7039986829780357},{x:.6259845336177533,y:.7118816938899454},{x:.6283300678033804,y:.7203856978734211},{x:.6289714843317633,y:.7291838908244783},{x:.6278841339254269,y:.7379381631220915},{x:.6251098028506934,y:.7463120929913156},{x:.620755107094902,y:.7539838750034306},{x:.6149873951738065,y:.7606586868780956},{x:.6080283170219642,y:.7660800193382449},{x:.6001453061100546,y:.7700395336177532},{x:.5916413021265788,y:.7723850678033803},{x:.5828431091755216,y:.7730264843317632},{x:.5740888368779085,y:.7719391339254268},{x:.5657149070086843,y:.7691648028506933},{x:.5580431249965694,y:.7648101070949019},{x:.5513683131219045,y:.7590423951738065},{x:.29567976193894085,y:.4900232412279098},{x:.051392518681138845,y:.7592432097223631},{x:.04485280102201476,y:.765163657957578},{x:.03728372005126494,y:.7696945108160528},{x:.028976151305805796,y:.7726616501633681},{x:.02024934999358704,y:.7739510504983974},{x:.011438682194990706,y:.7735131608893697},{x:.002882736932437466,y:.7713648091883885},{x:-.0050896856158622154,y:.7675885553465129},{x:-.012172209722363214,y:.7623295186811389},{x:-.01809265795757798,y:.7557898010220148},{x:-.022623510816052815,y:.7482207200512649},{x:-.025590650163368103,y:.7399131513058058},{x:-.02688005049839745,y:.731186349993587}]],Z:[[{x:.008711000000000003,y:.05103000000000002},{x:.00905278632815029,y:.04755978517413498},{x:.009251179439517476,y:.04407842782316871},{x:.009484424544736794,y:.043177288815328604},{x:.009575662381854637,y:.04225093550927423},{x:.01058788670939069,y:.038914079093048184},{x:.01146164687940622,y:.0355383196233794},{x:.011866213744552238,y:.0346999996115786},{x:.012136421036992098,y:.03380924554357098},{x:.013780184150668652,y:.030733981057728944},{x:.015295733266009179,y:.0275935480126292},{x:.015856074613338045,y:.026850263164785913},{x:.01629486744638546,y:.026029339514117927},{x:.01850700045157689,y:.023333847648222647},{x:.020606096809669634,y:.02054942610843994},{x:.02130067903544657,y:.01992974044441782},{x:.021891194846605365,y:.019210194846605383},{x:.024586686712500538,y:.016998061841414044},{x:.027188663217490867,y:.014676655565200585},{x:.02799079391630549,y:.014204383257544266},{x:.028710339514117916,y:.013613867446385479},{x:.03178560399995988,y:.01197010433270896},{x:.03479046815396611,y:.010200923661400137},{x:.035669321892902964,y:.00989421387003954},{x:.036490245543570964,y:.009455421036992116},{x:.03982710195979704,y:.008443196709456058},{x:.04311937851852794,y:.007294230264082269},{x:.04404118144126662,y:.007164869674294513},{x:.04493193550927423,y:.006894662381854655},{x:.048402150335139275,y:.006552876053704368},{x:.05185531895677298,y:.006068277970413476},{x:.052784646693945655,y:.006121237837117864},{x:.053711,y:.0060300000000000215},{x:.548341,y:.0060300000000000215},{x:.5571200644907257,y:.006894662381854655},{x:.565561754456429,y:.009455421036992116},{x:.5733416604858821,y:.013613867446385479},{x:.5801608051533946,y:.019210194846605383},{x:.5857571325536145,y:.026029339514117927},{x:.5899155789630078,y:.03380924554357098},{x:.5924763376181453,y:.04225093550927425},{x:.593341,y:.05103000000000002},{x:.5924763376181453,y:.05980906449072579},{x:.5899155789630078,y:.06825075445642906},{x:.5857571325536145,y:.07603066048588211},{x:.5801608051533946,y:.08284980515339466},{x:.5733416604858821,y:.08844613255361455},{x:.565561754456429,y:.09260457896300792},{x:.5571200644907257,y:.09516533761814538},{x:.548341,y:.09603000000000002},{x:.14224494935878249,y:.09603000000000002},{x:.5846943444347994,y:.7024816632174908},{x:.5851666167424556,y:.7032837939163054},{x:.5857571325536145,y:.7040033395141179},{x:.5874008956672913,y:.7070786039999603},{x:.5891700763385999,y:.7100834681539662},{x:.5894767861299605,y:.7109623218929031},{x:.5899155789630078,y:.711783245543571},{x:.5909278032905438,y:.7151201019597967},{x:.5920767697359177,y:.7184123785185279},{x:.5922061303257055,y:.7193341814412667},{x:.5924763376181453,y:.7202249355092742},{x:.5928181239462956,y:.7236951503351391},{x:.5933027220295866,y:.7271483189567729},{x:.5932497621628822,y:.7280776466939456},{x:.593341,y:.729004},{x:.5929992136718496,y:.7324742148258655},{x:.5928008205604824,y:.7359555721768313},{x:.5925675754552632,y:.7368567111846711},{x:.5924763376181453,y:.7377830644907257},{x:.5914641132906093,y:.7411199209069517},{x:.5905903531205937,y:.7444956803766206},{x:.5901857862554476,y:.7453340003884216},{x:.5899155789630078,y:.746224754456429},{x:.5882718158493319,y:.74930001894227},{x:.5867562667339908,y:.7524404519873709},{x:.5861959253866618,y:.7531837368352144},{x:.5857571325536145,y:.7540046604858821},{x:.5835449995484229,y:.7567001523517777},{x:.5814459031903303,y:.7594845738915601},{x:.5807513209645536,y:.760104259555582},{x:.5801608051533946,y:.7608238051533946},{x:.5774653132874991,y:.7630359381585863},{x:.5748633367825091,y:.7653573444347994},{x:.5740612060836946,y:.7658296167424556},{x:.5733416604858821,y:.7664201325536145},{x:.5702663960000408,y:.7680638956672906},{x:.5672615318460339,y:.7698330763385999},{x:.5663826781070966,y:.7701397861299606},{x:.565561754456429,y:.7705785789630079},{x:.5622248980402041,y:.7715908032905435},{x:.558932621481472,y:.7727397697359177},{x:.5580108185587332,y:.7728691303257055},{x:.5571200644907257,y:.7731393376181454},{x:.553649849664861,y:.7734811239462956},{x:.5501966810432269,y:.7739657220295866},{x:.5492673533060543,y:.7739127621628822},{x:.548341,y:.774004},{x:.053711,y:.774004},{x:.04493193550927421,y:.7731393376181454},{x:.036490245543570936,y:.7705785789630079},{x:.028710339514117906,y:.7664201325536145},{x:.021891194846605358,y:.7608238051533946},{x:.01629486744638546,y:.7540046604858821},{x:.012136421036992098,y:.746224754456429},{x:.009575662381854637,y:.7377830644907257},{x:.008711000000000003,y:.729004},{x:.009575662381854637,y:.7202249355092742},{x:.012136421036992098,y:.711783245543571},{x:.01629486744638546,y:.7040033395141179},{x:.021891194846605365,y:.6971841948466053},{x:.028710339514117916,y:.6915878674463855},{x:.036490245543570964,y:.6874294210369921},{x:.04493193550927423,y:.6848686623818546},{x:.053711,y:.684004},{x:.4598070506412174,y:.684004},{x:.017357655565200567,y:.07755233678250915},{x:.016885383257544267,y:.07675020608369457},{x:.01629486744638546,y:.07603066048588211},{x:.014651104332708876,y:.07295539600004002},{x:.012881923661400112,y:.06995053184603389},{x:.012575213870039523,y:.06907167810709706},{x:.012136421036992098,y:.06825075445642906},{x:.011124196709456038,y:.06491389804020298},{x:.00997523026408225,y:.06162162148147208},{x:.009845869674294495,y:.0606998185587334},{x:.009575662381854637,y:.05980906449072579},{x:.009233876053704348,y:.056338849664860746},{x:.008749277970413458,y:.05288568104322705},{x:.008802237837117845,y:.05195635330605437},{x:.008711000000000003,y:.05103000000000002}]],"[":[[{x:.152511,y:-.06942399999999993},{x:.15337566238185463,y:-.0782030644907257},{x:.1559364210369921,y:-.08664475445642897},{x:.16009486744638546,y:-.09442466048588202},{x:.16569119484660536,y:-.10124380515339457},{x:.1725103395141179,y:-.10684013255361446},{x:.18029024554357093,y:-.11099857896300783},{x:.1887319355092742,y:-.1135593376181453},{x:.197511,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.4486773376181454,y:-.06064493550927416},{x:.44611657896300794,y:-.05220324554357089},{x:.44195813255361455,y:-.04442333951411784},{x:.4363618051533946,y:-.03760419484660529},{x:.42954266048588213,y:-.032007867446385396},{x:.4217627544564291,y:-.027849421036992027},{x:.4133210644907258,y:-.025288662381854565},{x:.404542,y:-.024423999999999932},{x:.24251099999999998,y:-.024423999999999932},{x:.24251099999999998,y:.7147659999999999},{x:.404542,y:.7147659999999999},{x:.4133210644907258,y:.7156306623818546},{x:.4217627544564291,y:.7181914210369921},{x:.42954266048588213,y:.7223498674463854},{x:.4363618051533946,y:.7279461948466053},{x:.44195813255361455,y:.7347653395141178},{x:.44611657896300794,y:.7425452455435709},{x:.4486773376181454,y:.7509869355092742},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.197511,y:.804766},{x:.1887319355092742,y:.8039013376181453},{x:.18029024554357093,y:.8013405789630078},{x:.1725103395141179,y:.7971821325536145},{x:.16569119484660536,y:.7915858051533946},{x:.16009486744638546,y:.7847666604858821},{x:.1559364210369921,y:.776986754456429},{x:.15337566238185463,y:.7685450644907257},{x:.152511,y:.7597659999999999},{x:.152511,y:-.06942399999999993}]],"\\":[[{x:.017522651058219416,y:.7303997530123288},{x:.018114599516431164,y:.7215980934307649},{x:.020412292453046287,y:.7130810386853763},{x:.024327430817071727,y:.7051758944136092},{x:.5013774308170718,y:-.059077105586390885},{x:.5067595580368128,y:-.06606654912342862},{x:.5134018419815468,y:-.0718716915303336},{x:.521049023404313,y:-.07626944443996993},{x:.5294072254116235,y:-.07909080467430848},{x:.5381552469876711,y:-.08022734894178067},{x:.5469569065692351,y:-.07963540048356893},{x:.5554739613146237,y:-.0773377075469538},{x:.5633791055863908,y:-.07342256918292836},{x:.5703685491234285,y:-.06804044196318723},{x:.5761736915303335,y:-.06139815801845332},{x:.5805714444399699,y:-.05375097659568702},{x:.5833928046743084,y:-.04539277458837649},{x:.5845293489417805,y:-.03664475301232898},{x:.5839374004835688,y:-.02784309343076498},{x:.5816397075469537,y:-.01932603868537643},{x:.5777245691829282,y:-.011420894413609283},{x:.10067456918292828,y:.7528321055863908},{x:.09529244196318712,y:.7598215491234285},{x:.0886501580184532,y:.7656266915303336},{x:.08100297659568693,y:.7700244444399699},{x:.07264477458837638,y:.7728458046743084},{x:.06389675301232887,y:.7739823489417805},{x:.055095093430764894,y:.7733904004835688},{x:.04657803868537634,y:.7710927075469537},{x:.03867289441360919,y:.7671775691829282},{x:.03168345087657147,y:.7617954419631872},{x:.025878308469666468,y:.7551531580184532},{x:.021480555560030153,y:.747505976595687},{x:.01865919532569161,y:.7391477745883763},{x:.017522651058219416,y:.7303997530123288}]],"]":[[{x:.15250999999999998,y:-.06942399999999993},{x:.15337466238185463,y:-.0782030644907257},{x:.1559354210369921,y:-.08664475445642897},{x:.16009386744638546,y:-.09442466048588202},{x:.16569019484660535,y:-.10124380515339457},{x:.1725093395141179,y:-.10684013255361446},{x:.18028924554357095,y:-.11099857896300783},{x:.18873093550927422,y:-.1135593376181453},{x:.19751,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.19751,y:.804766},{x:.18873093550927422,y:.8039013376181453},{x:.18028924554357095,y:.8013405789630078},{x:.1725093395141179,y:.7971821325536145},{x:.16569019484660535,y:.7915858051533946},{x:.16009386744638546,y:.7847666604858821},{x:.1559354210369921,y:.776986754456429},{x:.15337466238185463,y:.7685450644907257},{x:.15250999999999998,y:.7597659999999999},{x:.15337466238185463,y:.7509869355092742},{x:.1559354210369921,y:.7425452455435709},{x:.16009386744638546,y:.7347653395141178},{x:.16569019484660535,y:.7279461948466053},{x:.1725093395141179,y:.7223498674463854},{x:.18028924554357095,y:.7181914210369921},{x:.18873093550927422,y:.7156306623818546},{x:.19751,y:.7147659999999999},{x:.35954200000000003,y:.7147659999999999},{x:.35954200000000003,y:-.024423999999999932},{x:.19751,y:-.024423999999999932},{x:.18873093550927422,y:-.025288662381854565},{x:.18028924554357095,y:-.027849421036992027},{x:.1725093395141179,y:-.03200786744638539},{x:.16569019484660535,y:-.03760419484660529},{x:.16009386744638546,y:-.04442333951411784},{x:.1559354210369921,y:-.052203245543570885},{x:.15337466238185463,y:-.06064493550927414},{x:.15250999999999998,y:-.06942399999999993}]],"^":[[{x:-.009830024293871129,y:.4771904357900641},{x:-.009184411720694952,y:.46839254975009553},{x:-.006834821991481832,y:.4598896653882279},{x:-.002871548521860348,y:.4520085437820153},{x:.002553102311361327,y:.44505205201500053},{x:.009230664218841726,y:.43928752416454453},{x:.016904522241296224,y:.4349364878031557},{x:.02527977431847106,y:.43216615081811305},{x:.034034564209935884,y:.43108297570612886},{x:.04283245024990444,y:.431728588279305},{x:.05133533461177206,y:.4340781780085181},{x:.05921645621798466,y:.4380414514781396},{x:.06617294798499941,y:.4434661023113613},{x:.30102423332324457,y:.6668931783680099},{x:.5358792969655858,y:.44346586927801307},{x:.5428358294884947,y:.4380412707099504},{x:.5507169808710617,y:.43407805645230807},{x:.5592198828854552,y:.4317285306064111},{x:.5680177737757447,y:.431082984132888},{x:.5767725555289304,y:.4321662250206897},{x:.5851477867919753,y:.43493662492998636},{x:.5928216121243246,y:.439287718945922},{x:.5994991307219868,y:.44505229696558585},{x:.6049237292900496,y:.45200882948849475},{x:.6088869435476919,y:.4598899808710617},{x:.6112364693935889,y:.4683928828854553},{x:.6118820158671119,y:.47719077377574476},{x:.6107987749793102,y:.4859455555289303},{x:.6080283750700135,y:.4943207867919753},{x:.6036772810540779,y:.5019946121243246},{x:.5979127030344141,y:.5086721307219868},{x:.33204070303441413,y:.7616071307219868},{x:.3294429315385385,y:.7636328335402047},{x:.3269493357811583,y:.7657854758354554},{x:.3259710287822201,y:.7663401706594313},{x:.32508417051150523,y:.7670317292900496},{x:.3221411194513825,y:.7685117087189752},{x:.3192754777587038,y:.7701365121968442},{x:.31820775306259985,y:.7704896904878621},{x:.3172030191289383,y:.7709949435476919},{x:.31402778830632944,y:.7718723248078522},{x:.310900225681529,y:.7729068491818869},{x:.30978411534954325,y:.7730449384962876},{x:.3087001171145447,y:.7733444693935889},{x:.30541472886927135,y:.7735855352151975},{x:.30214543579006414,y:.7739900242938711},{x:.3010238313163334,y:.7739077179367437},{x:.2999022262242552,y:.773990015867112},{x:.29663293618411596,y:.7735855022258356},{x:.2933475497500956,y:.7733444117206949},{x:.29226355376554153,y:.7730448726791859},{x:.29114744447106966,y:.7729067749793103},{x:.2880198896188706,y:.7718722271075298},{x:.28484466538822795,y:.7709948219914818},{x:.28383993525062523,y:.7704895613829726},{x:.2827722132080247,y:.7701363750700135},{x:.27990658372278143,y:.7685115500622604},{x:.2769635437820154,y:.7670315485218604},{x:.2760766907070934,y:.7663399832281829},{x:.2750983878756754,y:.765785281054078},{x:.27260480829144085,y:.7636326200241867},{x:.2700070520150006,y:.7616068976886387},{x:.004139052015000585,y:.5086718976886386},{x:-.001625475835455463,y:.5019943357811583},{x:-.0059765121968442594,y:.49432047775870375},{x:-.00874684918188691,y:.4859452256815289},{x:-.009830024293871129,y:.4771904357900641}]],_:[[{x:-.045,y:-.160601},{x:-.044135337618145365,y:-.16938006449072576},{x:-.041574578963007904,y:-.17782175445642903},{x:-.03741613255361454,y:-.1856016604858821},{x:-.03181980515339464,y:-.19242080515339463},{x:-.025000660485882086,y:-.19801713255361453},{x:-.017220754456429038,y:-.2021755789630079},{x:-.008779064490725769,y:-.20473633761814536},{x:0,y:-.20560099999999998},{x:.602052,y:-.20560099999999998},{x:.6108310644907258,y:-.20473633761814536},{x:.619272754456429,y:-.2021755789630079},{x:.6270526604858822,y:-.19801713255361453},{x:.6338718051533947,y:-.19242080515339463},{x:.6394681325536146,y:-.1856016604858821},{x:.6436265789630079,y:-.17782175445642903},{x:.6461873376181454,y:-.16938006449072576},{x:.6470520000000001,y:-.160601},{x:.6461873376181454,y:-.15182193550927423},{x:.6436265789630079,y:-.14338024554357096},{x:.6394681325536146,y:-.1356003395141179},{x:.6338718051533947,y:-.12878119484660536},{x:.6270526604858822,y:-.12318486744638546},{x:.619272754456429,y:-.1190264210369921},{x:.6108310644907258,y:-.11646566238185463},{x:.602052,y:-.115601},{x:0,y:-.115601},{x:-.00877906449072579,y:-.11646566238185463},{x:-.017220754456429066,y:-.1190264210369921},{x:-.025000660485882096,y:-.12318486744638546},{x:-.03181980515339464,y:-.12878119484660536},{x:-.03741613255361454,y:-.1356003395141179},{x:-.041574578963007904,y:-.14338024554357096},{x:-.044135337618145365,y:-.15182193550927423},{x:-.045,y:-.160601}]],a:[[{x:.029951000000000005,y:.25490100000000004},{x:.030216131121475042,y:.2522090785486062},{x:.03027571711850824,y:.2495047884160563},{x:.03064747136410999,y:.24782960757010103},{x:.03081566238185464,y:.24612193550927428},{x:.0316008669059687,y:.24353346308961055},{x:.0321868888075612,y:.2408927597850148},{x:.06949088880756119,y:.12701175978501478},{x:.07014919013856018,y:.12551652306247207},{x:.07061771774296957,y:.1239514111231075},{x:.07192248021942128,y:.12148874987750752},{x:.07304546130734973,y:.1189380599695235},{x:.0739828197765546,y:.11759998201998349},{x:.07474768294666384,y:.11615634846888903},{x:.07650781615341086,y:.11399555310027064},{x:.07810683439013419,y:.11171295672570881},{x:.07928722783725009,y:.11058345913436952},{x:.08031903331037206,y:.10931678199931477},{x:.15605303331037207,y:.033026781999314685},{x:.1581401110567553,y:.03130114899494214},{x:.16009013354595797,y:.02942202284781055},{x:.16153164054777758,y:.028496972085311937},{x:.16285166496406625,y:.027405552418137233},{x:.16523529439528092,y:.026120245637685162},{x:.16751444707429886,y:.024657656887915},{x:.24324744707429888,y:-.014037343112084925},{x:.24491821916217926,y:-.014693433733650136},{x:.24650124554357095,y:-.015539578963007873},{x:.24901423193062222,y:-.016301885049470277},{x:.2514585861893129,y:-.017261751399011975},{x:.25322525179064753,y:-.017579283958613606},{x:.2549429355092742,y:-.018100337618145335},{x:.2575563541074305,y:-.01835773688343746},{x:.2601410014196699,y:-.018822289810772906},{x:.26193566856615697,y:-.018789061710219754},{x:.263722,y:-.018964999999999968},{x:.376759,y:-.018964999999999968},{x:.3786816094876915,y:-.018775639493449434},{x:.3806133727303473,y:-.01879962736385296},{x:.3830607170270406,y:-.018344335046447002},{x:.3855380644907258,y:-.018100337618145335},{x:.3873867891740171,y:-.01753953311656589},{x:.3892861139289994,y:-.017186191753697247},{x:.3915976100664607,y:-.016262194563578608},{x:.3939797544564291,y:-.015539578963007873},{x:.3956835488825182,y:-.014628881868892333},{x:.3974774451646465,y:-.013911789983170525},{x:.4720844451646465,y:.0247832100168294},{x:.4742399118062311,y:.026185049737888398},{x:.4765030886255536,y:.02740538646642049},{x:.47792879308654873,y:.028584168427667152},{x:.47947957817165415,y:.02959274452399146},{x:.48132014276352414,y:.0313881589690925},{x:.48210100000000006,y:.032033776942416534},{x:.48210100000000006,y:.02603500000000003},{x:.4829656623818547,y:.01725593550927424},{x:.4855264210369921,y:.008814245543570985},{x:.4896848674463855,y:.0010343395141179344},{x:.4952811948466054,y:-.0057848051533946065},{x:.5021003395141179,y:-.01138113255361451},{x:.509880245543571,y:-.015539578963007873},{x:.5183219355092743,y:-.018100337618145335},{x:.527101,y:-.018964999999999968},{x:.5358800644907258,y:-.018100337618145335},{x:.544321754456429,y:-.015539578963007873},{x:.5521016604858822,y:-.011381132553614504},{x:.5589208051533947,y:-.0057848051533946065},{x:.5645171325536146,y:.0010343395141179344},{x:.5686755789630079,y:.008814245543570992},{x:.5712363376181454,y:.01725593550927426},{x:.5721010000000001,y:.02603500000000003},{x:.5721010000000001,y:.560059},{x:.5712363376181454,y:.5688380644907257},{x:.5686755789630079,y:.577279754456429},{x:.5645171325536146,y:.5850596604858821},{x:.5589208051533947,y:.5918788051533946},{x:.5521016604858822,y:.5974751325536145},{x:.544321754456429,y:.6016335789630078},{x:.5358800644907258,y:.6041943376181453},{x:.527101,y:.605059},{x:.5183219355092743,y:.6041943376181453},{x:.509880245543571,y:.6016335789630078},{x:.5021003395141179,y:.5974751325536145},{x:.4952811948466054,y:.5918788051533946},{x:.4896848674463855,y:.5850596604858821},{x:.4855264210369921,y:.577279754456429},{x:.4829656623818547,y:.5688380644907257},{x:.48210100000000006,y:.560059},{x:.48210100000000006,y:.5551612473179106},{x:.48111784979070266,y:.5559741116228759},{x:.47906658786156825,y:.5579287481398052},{x:.4777260461549398,y:.558778440075324},{x:.476502844006682,y:.5597897782764175},{x:.474008872962507,y:.5611345413953497},{x:.47161569478864906,y:.5626514387693977},{x:.3970086947886491,y:.6002454387693977},{x:.39545173243232984,y:.6008467903430146},{x:.3939797544564291,y:.6016335789630078},{x:.39134652561635536,y:.6024323601988234},{x:.3887796173011618,y:.6034237870938969},{x:.38713525366780027,y:.6037098355781862},{x:.3855380644907258,y:.6041943376181453},{x:.3827995979159321,y:.6044640530341434},{x:.3800885942320307,y:.6049356509696303},{x:.37842002129388747,y:.6048954036817589},{x:.376759,y:.605059},{x:.263722,y:.605059},{x:.26219504701733515,y:.604908608257877},{x:.26066140118579323,y:.6049547986330399},{x:.25781511370268967,y:.6044772224791067},{x:.2549429355092742,y:.6041943376181453},{x:.2534746624734083,y:.6037489418620853},{x:.2519614739213154,y:.6034950452430072},{x:.24926304753974865,y:.6024713624393285},{x:.24650124554357095,y:.6016335789630078},{x:.24514807736385555,y:.6009102955021357},{x:.24371349707866236,y:.6003660689935006},{x:.16798049707866233,y:.5627720689935006},{x:.1654642487594581,y:.5611982224645521},{x:.16285190958182658,y:.5597896123262998},{x:.16173267757498783,y:.5588642237445607},{x:.16050143578237863,y:.5580941146870384},{x:.15834057869520102,y:.5560596134829665},{x:.15605324108782545,y:.5541684273021619},{x:.08031924108782545,y:.47787942730216193},{x:.07924694249287094,y:.47656305714472025},{x:.07802357952480113,y:.4753857561141845},{x:.07646760484406812,y:.47315109973327435},{x:.07474784589903924,y:.4710398973462887},{x:.07395296229881854,y:.46953962579412084},{x:.07298278594430238,y:.4681462799973844},{x:.07189266871370663,y:.46565100631071576},{x:.07061782960809859,y:.46324486175923196},{x:.0701309079335922,y:.4616183434067253},{x:.06945120152585271,y:.46006249834135976},{x:.032147201525852716,y:.3450764983413597},{x:.031582343425880205,y:.34249647318004567},{x:.03081566238185464,y:.3399690644907258},{x:.030641204072877935,y:.33819775955415116},{x:.03026054307811779,y:.33645906634171463},{x:.03020987650767869,y:.3338184172918108},{x:.029951000000000005,y:.33119},{x:.029951000000000005,y:.25490100000000004}],[{x:.119951,y:.2620835578942187},{x:.119951,y:.3240730820964405},{x:.15174843963453788,y:.42208563822492473},{x:.21467365091165175,y:.4854719831046318},{x:.2742766075147511,y:.5150589999999999},{x:.3660620360389177,y:.5150589999999999},{x:.4245839309326211,y:.4855701837142105},{x:.48210100000000006,y:.4276323784447675},{x:.48210100000000006,y:.15956344905445352},{x:.4243936225653894,y:.10143318135145685},{x:.36578354074375496,y:.07103500000000003},{x:.2745522516182332,y:.07103500000000003},{x:.21486246778999646,y:.10153288315838035},{x:.15170083487400915,y:.1651582162341545},{x:.119951,y:.2620835578942187}]],b:[[{x:.03166000000000001,y:.04001500000000002},{x:.03252466238185464,y:.031235935509274233},{x:.0350854210369921,y:.022794245543570978},{x:.039243867446385465,y:.015014339514117927},{x:.04484019484660537,y:.008195194846605386},{x:.05165933951411792,y:.002598867446385482},{x:.05943924554357097,y:-.0015595789630078807},{x:.06788093550927424,y:-.004120337618145342},{x:.07666,y:-.0049849999999999756},{x:.08543906449072577,y:-.004120337618145342},{x:.09388075445642904,y:-.0015595789630078807},{x:.10166066048588211,y:.002598867446385489},{x:.10847980515339464,y:.008195194846605386},{x:.11407613255361454,y:.015014339514117927},{x:.1182345789630079,y:.022794245543570985},{x:.12079533761814537,y:.031235935509274254},{x:.12166,y:.04001500000000002},{x:.12166,y:.041388769861289504},{x:.12338630711141785,y:.04010106584896898},{x:.12512540667363178,y:.03853443023544684},{x:.12691331624345048,y:.03747016444054036},{x:.12858112311649333,y:.036226097502515},{x:.13069431360107225,y:.035219499067818724},{x:.13270563229917137,y:.034022247411931134},{x:.20674863229917137,y:-.0007227525880688923},{x:.20772794171481185,y:-.0010698043626217635},{x:.20864424554357097,y:-.0015595789630078669},{x:.21187816153300185,y:-.0025405766534664824},{x:.21506348921487128,y:-.003669406425619949},{x:.21609168791714548,y:-.0038187359083884913},{x:.21708593550927424,y:-.004120337618145342},{x:.22044909586509742,y:-.004451580001305548},{x:.22379344213248661,y:-.004937293022731791},{x:.22483101702188665,y:-.00488316156543817},{x:.225865,y:-.0049849999999999756},{x:.338045,y:-.0049849999999999756},{x:.33894984805462636,y:-.004895880245274822},{x:.33985755144997865,y:-.004948481373678995},{x:.343332465401001,y:-.004464230112452937},{x:.3468240644907258,y:-.004120337618145342},{x:.3476941397420575,y:-.003856403176165039},{x:.34859466384226984,y:-.0037309094409420443},{x:.351908335561611,y:-.0025780408502315546},{x:.35526575445642905,y:-.0015595789630078807},{x:.35606762040050133,y:-.0011309726863615623},{x:.35692635856942223,y:-.0008322067413783357},{x:.43209235856942224,y:.03391279325862169},{x:.4342218624454842,y:.03516383683568551},{x:.43645162164562873,y:.03622594356254809},{x:.4380158580934015,y:.037392738102356306},{x:.4396984532755396,y:.03838123120587913},{x:.4415429728374372,y:.04002368192832182},{x:.4435226810964235,y:.04150038501262054},{x:.5186856810964235,y:.11000138501262047},{x:.5200684051728882,y:.11153543836568303},{x:.5216038163727121,y:.1129166544997947},{x:.5230144082918019,y:.11480386048953693},{x:.5245918796416693,y:.11655397481445093},{x:.5256487561000858,y:.11832830784782436},{x:.5268852029038621,y:.11998252816661786},{x:.5279005150705119,y:.12210866485417524},{x:.5291062453835067,y:.12413290061668979},{x:.5297966590542814,y:.12607932670695898},{x:.530686625504748,y:.12794298045128052},{x:.567704625504748,y:.2301969804512806},{x:.5685418230641662,y:.23348712941632632},{x:.5695273376181453,y:.23673593550927427},{x:.5696276430094915,y:.2377543532384077},{x:.5698799976366801,y:.23874609563675617},{x:.5700592324586751,y:.24213635445346285},{x:.570392,y:.24551500000000004},{x:.570392,y:.314017},{x:.570065993218988,y:.3173270023951309},{x:.5699006262411136,y:.32064890697528625},{x:.569634437926433,y:.3217086568121163},{x:.5695273376181453,y:.3227960644907258},{x:.5685618455328773,y:.32597886535008125},{x:.5677515846008636,y:.32920467896823863},{x:.5307335846008636,y:.4324506789682387},{x:.5298196963817511,y:.43437967657309706},{x:.5291061063615623,y:.4363913954201699},{x:.5279358002551,y:.43835612690926706},{x:.5269566878799311,y:.4404227969757902},{x:.5256840310027916,y:.4421364386856148},{x:.5245916855370664,y:.44397028841230757},{x:.523060566435399,y:.4456689527415915},{x:.5216970801011935,y:.44750489697372575},{x:.5201145620561008,y:.4489373284986299},{x:.5186854393684929,y:.45052283528838016},{x:.44352243936849295,y:.5190228352883801},{x:.44134657552661755,y:.5206458300432604},{x:.43929971954126384,y:.5224287703137037},{x:.4378191137317927,y:.523276992839783},{x:.43645134158383936,y:.5242972253466508},{x:.43400065578620683,y:.5254645447348341},{x:.43164529517316985,y:.52681390451462},{x:.35647929517316984,y:.56056790451462},{x:.3558506134628383,y:.560778965311121},{x:.35526575445642905,y:.5610915789630079},{x:.351674330744245,y:.5621810254355277},{x:.34811645117964274,y:.5633754754766519},{x:.34745867349333664,y:.563459831081816},{x:.3468240644907258,y:.5636523376181454},{x:.3430891085149791,y:.5640201986736739},{x:.3393665669654169,y:.5644975898222324},{x:.3387049713307353,y:.5644519984974604},{x:.338045,y:.564517},{x:.225865,y:.564517},{x:.22507819619617456,y:.5644395065891945},{x:.22428916125732748,y:.5644893996719887},{x:.22069487882474298,y:.5640077875099223},{x:.21708593550927424,y:.5636523376181454},{x:.21632936813438544,y:.5634228354140474},{x:.21554576062305134,y:.5633178367349442},{x:.2121144991913443,y:.5621442688983362},{x:.20864424554357097,y:.5610915789630079},{x:.20794698905754733,y:.5607188876066144},{x:.20719892257093525,y:.5604630322059678},{x:.13315592257093525,y:.5267090322059678},{x:.13091775246116674,y:.5254099486077729},{x:.12858140317750869,y:.5242970714087468},{x:.1271119341080524,y:.5232009671819817},{x:.12552641140636125,y:.5222806946221156},{x:.12358468574515913,y:.5205699272235509},{x:.12166,y:.5191342684374534},{x:.12166,y:.7597659999999999},{x:.12079533761814537,y:.7685450644907257},{x:.1182345789630079,y:.776986754456429},{x:.11407613255361454,y:.7847666604858821},{x:.10847980515339464,y:.7915858051533946},{x:.10166066048588208,y:.7971821325536145},{x:.09388075445642904,y:.8013405789630078},{x:.08543906449072577,y:.8039013376181453},{x:.07666,y:.804766},{x:.06788093550927421,y:.8039013376181453},{x:.05943924554357094,y:.8013405789630078},{x:.05165933951411792,y:.7971821325536145},{x:.04484019484660537,y:.7915858051533946},{x:.039243867446385465,y:.7847666604858821},{x:.0350854210369921,y:.776986754456429},{x:.03252466238185464,y:.7685450644907257},{x:.03166000000000001,y:.7597659999999999},{x:.03166000000000001,y:.04001500000000002}],[{x:.12166,y:.16313400296117606},{x:.12166,y:.39738980161800674},{x:.17691400696537596,y:.447746357818324},{x:.23563826658076475,y:.474517},{x:.3284048540018634,y:.474517},{x:.3882155063572531,y:.44765846343288423},{x:.44979135555302596,y:.39154114946310603},{x:.480392,y:.30619363915535625},{x:.480392,y:.2534097446111891},{x:.44984564070758065,y:.16903221413717517},{x:.38802932067077023,y:.11269492399652684},{x:.3281476350434013,y:.08501500000000002},{x:.2358983461114888,y:.08501500000000002},{x:.1771018588393058,y:.11260550754658781},{x:.12166,y:.16313400296117606}]],c:[[{x:.0446,y:.25490100000000004},{x:.044822712444716174,y:.2526397626013558},{x:.04482893549381362,y:.2503675925637664},{x:.045254001037800355,y:.24826081602954003},{x:.045464662381854634,y:.24612193550927428},{x:.04612424100165128,y:.2439475961957434},{x:.04657362286091401,y:.24172029932495478},{x:.08145962286091402,y:.1278402993249547},{x:.08196610920465827,y:.1266269431042867},{x:.08230081253195312,y:.125355433994083},{x:.08366176737769918,y:.12256476567779218},{x:.08485778977199918,y:.11969953302126297},{x:.0855912581784792,y:.11860830168404396},{x:.08616758939694805,y:.11742652164475936},{x:.08804682625741464,y:.11495498435675963},{x:.08977884657839008,y:.1123781387363477},{x:.09071111026807865,y:.11145096769089737},{x:.09150692129220603,y:.11040433186669174},{x:.16233292129220603,y:.03411333186669174},{x:.16445877247754231,y:.03223237849112975},{x:.1664474797904295,y:.03020697184383589},{x:.16775479669311927,y:.029316055882572942},{x:.16893962068732413,y:.02826772347496185},{x:.17139158003796548,y:.02683764508339147},{x:.17373721213250964,y:.02523913360696181},{x:.24456521213250962,y:-.013455866393038113},{x:.2467886390083486,y:-.014400746043602006},{x:.24891924554357092,y:-.015539578963007873},{x:.25083834630720225,y:-.016121731815163746},{x:.25268405147305695,y:-.01690609278116076},{x:.2550490927002279,y:-.01739904776899966},{x:.2573609355092742,y:-.018100337618145335},{x:.259356733677244,y:-.018296906580526337},{x:.26131999536931183,y:-.018706117055345653},{x:.26373576373978486,y:-.0187282033967292},{x:.26614,y:-.018964999999999968},{x:.371854,y:-.018964999999999968},{x:.3744001776009888,y:-.018714223394882004},{x:.3769583677219744,y:-.018674567546095353},{x:.3787793796063011,y:-.01828290964379429},{x:.3806330644907258,y:-.018100337618145335},{x:.3830813939144215,y:-.01735764500708899},{x:.3855826926572475,y:-.01681967299983559},{x:.38729230564255435,y:-.01608027889939661},{x:.3890747544564291,y:-.015539578963007873},{x:.391331147776118,y:-.014333511606549179},{x:.393679431632842,y:-.013317897403369645},{x:.463449431632842,y:.02537710259663028},{x:.46566730315778443,y:.026909287408228903},{x:.46799586592077425,y:.028267352155161442},{x:.4692879686356918,y:.029410572352257962},{x:.47070743151062955,y:.03039118797094862},{x:.4725837728278355,y:.03232661755101331},{x:.4746026476214732,y:.03411286752390576},{x:.5454306476214732,y:.11040386752390575},{x:.5507700783887176,y:.11742598212342069},{x:.5546369668925095,y:.12535484002769406},{x:.5568827107762242,y:.13388573967401945},{x:.5574210073618384,y:.14269084337317217},{x:.5562311702134469,y:.15143177592795284},{x:.5533589241053942,y:.15977262820225266},{x:.5489146478448386,y:.16739286592077418},{x:.5430691324760942,y:.17399964762147313},{x:.5360470178765793,y:.17933907838871752},{x:.5281181599723059,y:.18320596689250943},{x:.5195872603259806,y:.1854517107762242},{x:.5107821566268278,y:.1859900073618383},{x:.5020412240720471,y:.18480017021344686},{x:.4937003717977473,y:.18192792410539416},{x:.4860801340792258,y:.17748364784483847},{x:.47947335237852684,y:.17163813247609414},{x:.41352572033101553,y:.10060392571412592},{x:.36021071976053953,y:.07103500000000003},{x:.27763077403847125,y:.07103500000000003},{x:.2233107097601157,y:.10071132697875086},{x:.16448866962379677,y:.16407213041308155},{x:.1346,y:.2616391113440561},{x:.1346,y:.3245158400933278},{x:.1645319520417492,y:.4231721923699009},{x:.2231207776861973,y:.4862793045993598},{x:.27734241586879393,y:.5150589999999999},{x:.3605019191882548,y:.5150589999999999},{x:.41371701660545657,y:.4863852380349392},{x:.47947395272027693,y:.4155592208902026},{x:.48608084903755494,y:.4097138350672089},{x:.4937011738972078,y:.40526970822380387},{x:.5020420824884065,y:.4023976256622846},{x:.5107830383716269,y:.4012079599048077},{x:.5195881315142611,y:.40174642913926084},{x:.5281189871247909,y:.40399234029494097},{x:.5360477692062626,y:.4078593842656568},{x:.5430697791097975,y:.41319895272027696},{x:.5489151649327911,y:.41980584903755497},{x:.5533592917761961,y:.42742617389720783},{x:.5562313743377155,y:.4357670824884066},{x:.5574210400951923,y:.4445080383716269},{x:.5568825708607392,y:.4533131315142611},{x:.5546366597050592,y:.4618439871247909},{x:.5507696157343432,y:.46977276920626265},{x:.5454300472797231,y:.4767947791097975},{x:.4746020472797231,y:.5530827791097974},{x:.47237947035514305,y:.5550491819442839},{x:.4702881116089302,y:.5571546051529963},{x:.469083054274185,y:.5579656532949738},{x:.4679951509624451,y:.5589281649327911},{x:.46543165406806053,y:.5604231806402761},{x:.46296973250196366,y:.5620801448811513},{x:.39319973250196366,y:.5996741448811513},{x:.39109075852725916,y:.6005560023370271},{x:.3890747544564291,y:.6016335789630078},{x:.38703122642603144,y:.6022534764138876},{x:.38506104886577136,y:.6030772968079529},{x:.3828205563795885,y:.6035307692082409},{x:.3806330644907258,y:.6041943376181453},{x:.3785078662851109,y:.6044036513718285},{x:.37641482574826585,y:.6048272797133635},{x:.3741289156203665,y:.604834940368031},{x:.371854,y:.605059},{x:.26614,y:.605059},{x:.26400488750824663,y:.6048487097743618},{x:.26185945318827825,y:.6048549475733314},{x:.2596259398913868,y:.6044174210783497},{x:.2573609355092742,y:.6041943376181453},{x:.2553078741931944,y:.60357154827667},{x:.25320244685788745,y:.6031591127457343},{x:.2510972070775077,y:.6022942563713519},{x:.24891924554357092,y:.6016335789630078},{x:.24702713339817148,y:.6006222239508241},{x:.24504262343928468,y:.5998069647561404},{x:.1742146234392847,y:.5622129647561404},{x:.17162525666515238,y:.5604936738034747},{x:.16894033563687538,y:.5589277936219744},{x:.16795812189104978,y:.5580587651214349},{x:.16686556037036515,y:.5573333247718834},{x:.16466136457832586,y:.5551419091149951},{x:.16233352162359432,y:.5530823147741101},{x:.09150752162359431,y:.47679431477411016},{x:.09067474586023959,y:.4756991081857825},{x:.08970182133886938,y:.4747262717047309},{x:.08801053269383365,y:.4721953272870651},{x:.08616805203977476,y:.4697722296898647},{x:.08556494203519081,y:.46853560069719197},{x:.08480050296804506,y:.467391648838166},{x:.08363547472152838,y:.4645793817614187},{x:.08230111970711389,y:.461843393160995},{x:.08195085264054901,y:.4605128647226562},{x:.08142427599227564,y:.4592417589140625},{x:.046538275992275634,y:.3442567589140625},{x:.04610669192420131,y:.34208755224892967},{x:.045464662381854634,y:.33997106449072584},{x:.04524807462900009,y:.3377720121321243},{x:.04481688692083,y:.3356047976316928},{x:.044816786846426454,y:.33339307378956023},{x:.0446,y:.33119200000000004},{x:.0446,y:.25490100000000004}]],d:[[{x:.03166100000000001,y:.24551500000000004},{x:.03199378652782141,y:.24213616168032864},{x:.032173060891358886,y:.2387457109778176},{x:.032425376075824915,y:.237754159461938},{x:.03252566238185464,y:.23673593550927427},{x:.03351123316568353,y:.23348694405135337},{x:.034348506941927405,y:.23019661460170962},{x:.0713675069419274,y:.12794261460170955},{x:.07225746993456125,y:.1260790095358921},{x:.0729478813145148,y:.12413263082247869},{x:.07415364826248581,y:.12210836405190925},{x:.07516899837159816,y:.11998219518580837},{x:.07640543228727825,y:.1183280219355851},{x:.07746229725612473,y:.11655373492181778},{x:.07903981058640837,y:.11480359733178996},{x:.08045044599662987,y:.11291636718401242},{x:.08198583537337678,y:.11153519469971836},{x:.08336853920306012,y:.1100011842405046},{x:.15853253920306012,y:.04150018424050468},{x:.16051177365736521,y:.04002385498013544},{x:.16235580937568672,y:.038381768082408986},{x:.16403890527939927,y:.03739293492543645},{x:.16560363358955885,y:.03622578962650935},{x:.16783285515961555,y:.03516395710594637},{x:.16996181351033893,y:.03391317596960988},{x:.24512381351033893,y:-.0008318240303901436},{x:.24598297689097734,y:-.0011307574341723537},{x:.24678524554357095,y:-.0015595789630078807},{x:.25014222995258023,y:-.0025779090504023904},{x:.2534554494825366,y:-.0037306956028641883},{x:.25435642329373365,y:-.003856270624521421},{x:.2552269355092742,y:-.004120337618145342},{x:.2587180827488419,y:-.0044641856090968535},{x:.2621925371943035,y:-.004948444626188875},{x:.2631006975177666,y:-.004895835488062085},{x:.264006,y:-.0049849999999999756},{x:.376189,y:-.0049849999999999756},{x:.37722298297811335,y:-.004883161565438171},{x:.3782605578675134,y:-.004937293022731791},{x:.3816049041349026,y:-.004451580001305548},{x:.3849680644907258,y:-.004120337618145342},{x:.3859623120828546,y:-.003818735908388489},{x:.38699051078512875,y:-.003669406425619949},{x:.39017583846699794,y:-.0025405766534665605},{x:.39340975445642906,y:-.0015595789630078807},{x:.39432605828518835,y:-.0010698043626217065},{x:.39530536770082864,y:-.0007227525880688923},{x:.46934836770082866,y:.034022247411931134},{x:.4713599418403825,y:.035219651121148166},{x:.4734733873673339,y:.03622640539423388},{x:.4751409393435705,y:.037470316580519136},{x:.4769285933263682,y:.03853443023544684},{x:.47866791375766776,y:.04010126481479184},{x:.480392,y:.041387347763641016},{x:.480392,y:.04001500000000002},{x:.4812566623818546,y:.031235935509274233},{x:.48381742103699205,y:.022794245543570978},{x:.48797586744638544,y:.015014339514117927},{x:.4935721948466053,y:.008195194846605386},{x:.5003913395141178,y:.002598867446385482},{x:.508171245543571,y:-.0015595789630078807},{x:.5166129355092742,y:-.004120337618145342},{x:.525392,y:-.0049849999999999756},{x:.5341710644907257,y:-.004120337618145342},{x:.542612754456429,y:-.0015595789630078807},{x:.5503926604858821,y:.002598867446385489},{x:.5572118051533946,y:.008195194846605386},{x:.5628081325536145,y:.015014339514117927},{x:.5669665789630078,y:.022794245543570985},{x:.5695273376181453,y:.031235935509274254},{x:.570392,y:.04001500000000002},{x:.570392,y:.7597659999999999},{x:.5695273376181453,y:.7685450644907257},{x:.5669665789630078,y:.776986754456429},{x:.5628081325536145,y:.7847666604858821},{x:.5572118051533946,y:.7915858051533946},{x:.5503926604858821,y:.7971821325536145},{x:.542612754456429,y:.8013405789630078},{x:.5341710644907257,y:.8039013376181453},{x:.525392,y:.804766},{x:.5166129355092742,y:.8039013376181453},{x:.508171245543571,y:.8013405789630078},{x:.5003913395141178,y:.7971821325536145},{x:.4935721948466053,y:.7915858051533946},{x:.48797586744638544,y:.7847666604858821},{x:.48381742103699205,y:.776986754456429},{x:.4812566623818546,y:.7685450644907257},{x:.480392,y:.7597659999999999},{x:.480392,y:.5191356905079497},{x:.47846953719699326,y:.5205697307992189},{x:.47652758859363875,y:.5222806946221157},{x:.47494232329576636,y:.5232008177790934},{x:.47347310730786674,y:.524296763521154},{x:.4711365045177018,y:.5254097994515352},{x:.46889807742906475,y:.5267090322059679},{x:.3948550774290648,y:.5604630322059679},{x:.3941070109424522,y:.5607188876066146},{x:.39340975445642906,y:.5610915789630079},{x:.389939500808656,y:.5621442688983361},{x:.38650823937694867,y:.5633178367349442},{x:.38572463186561456,y:.5634228354140474},{x:.3849680644907258,y:.5636523376181454},{x:.38135912117525683,y:.5640077875099224},{x:.3777648387426725,y:.5644893996719887},{x:.3769758038038255,y:.5644395065891945},{x:.376189,y:.564517},{x:.264006,y:.564517},{x:.26334558239453953,y:.5644519545432365},{x:.2626835384795895,y:.5644975635305632},{x:.2589614482177297,y:.5640201550156564},{x:.2552269355092742,y:.5636523376181454},{x:.25459189738202526,y:.5634597009082802},{x:.2539336765832372,y:.5633752751711479},{x:.2503762430229788,y:.5621808961392286},{x:.24678524554357095,y:.5610915789630079},{x:.24619999105363047,y:.5607787539207695},{x:.24557088842716707,y:.5605675378929096},{x:.17040888842716706,y:.5268135378929095},{x:.16805407047382528,y:.5254644267942322},{x:.16560391365212207,y:.5242973792806265},{x:.16423565717286473,y:.5232767996121171},{x:.1627545512703112,y:.5224282514648534},{x:.16070817900232118,y:.5206456609648356},{x:.15853278093215223,y:.5190230360586235},{x:.08336878093215222,y:.45052303605862365},{x:.08193967718325436,y:.44893757139643337},{x:.08035717944512263,y:.44750518296134467},{x:.07899365114577664,y:.44566921514174185},{x:.07746249136223225,y:.4439705283033309},{x:.07637015625263606,y:.44213672358948825},{x:.0750975108858587,y:.44042312810321155},{x:.07411836195358443,y:.43835642671545355},{x:.07294802033824888,y:.4363916652130956},{x:.07223443169362759,y:.4343799925343442},{x:.07132054574594202,y:.4324510425104215},{x:.034301545745942026,y:.32920504251042143},{x:.033491210284420626,y:.32597904935505284},{x:.03252566238185464,y:.3227960644907258},{x:.03241858101312289,y:.3217088491086539},{x:.03215243067755317,y:.32064928896150824},{x:.031987025628206905,y:.31732719375391183},{x:.03166100000000001,y:.314017},{x:.03166100000000001,y:.24551500000000004}],[{x:.121661,y:.25340994514221},{x:.121661,y:.3061934402169761},{x:.15226243948714763,y:.39154086238640384},{x:.21383969339611897,y:.4476587099299689},{x:.27364661400534074,y:.474517},{x:.3664157334192352,y:.474517},{x:.42513971513426946,y:.4477464845048247},{x:.480392,y:.3973901578243758},{x:.480392,y:.1631336467554691},{x:.4249518651426514,y:.1126053780239199},{x:.3661556538885112,y:.08501500000000002},{x:.2739038430667855,y:.08501500000000002},{x:.21402588591940364,y:.11269467351967463},{x:.15220815290195538,y:.1690325018607451},{x:.121661,y:.25340994514221}]],e:[[{x:.014571,y:.25490100000000004},{x:.014880046743786594,y:.2517631957525991},{x:.01501248842711947,y:.2486129918567585},{x:.015311525398480692,y:.24738231945287367},{x:.015435662381854634,y:.24612193550927428},{x:.016350926120166094,y:.24310471531940006},{x:.01709539726614681,y:.24004087979874045},{x:.05693639726614681,y:.12616087979874036},{x:.057746546207777846,y:.12441615547982068},{x:.05835851556287996,y:.12259245107255745},{x:.05959975008908581,y:.12042512406141898},{x:.06065161969764369,y:.11815983382640528},{x:.06178658068373706,y:.11660668611395116},{x:.06274257829935428,y:.11493741297405176},{x:.06438278737670251,y:.11305388338712186},{x:.06585638180708843,y:.11103732964943176},{x:.06727253892344205,y:.10973544513901749},{x:.06853582634733585,y:.1082847524971091},{x:.14942282634733584,y:.031993752497109104},{x:.15144602889400902,y:.03043003785468449},{x:.15333307828862142,y:.02870446646813117},{x:.1549277151407192,y:.027739074573098352},{x:.15640262843323158,y:.02659912765300345},{x:.15869202130341495,y:.025460166585296706},{x:.1608794538505091,y:.024135896643135493},{x:.2417664538505091,y:-.01455910335686443},{x:.24290092295632487,y:-.014970686687880902},{x:.2439652455435709,y:-.015539578963007873},{x:.24703931387581265,y:-.016472087396775758},{x:.2500591116803148,y:-.017567664555291233},{x:.2512520782049556,y:-.01775001548484057},{x:.2524069355092742,y:-.018100337618145335},{x:.25560385985111694,y:-.01841520718300011},{x:.2587793695882151,y:-.01890059980751419},{x:.2599849884971624,y:-.018846710691637396},{x:.261186,y:-.018964999999999968},{x:.381914,y:-.018964999999999968},{x:.3832466926412995,y:-.01883374123151461},{x:.3845848263549422,y:-.018885671038862982},{x:.3876272824249201,y:-.01840229079619376},{x:.39069306449072577,y:-.018100337618145335},{x:.3919745425012029,y:-.017711605513551366},{x:.39329709535359264,y:-.017501480567117658},{x:.39618678867610163,y:-.016433834605858122},{x:.39913475445642904,y:-.015539578963007873},{x:.4003157713548023,y:-.014908312279081314},{x:.40157191838151796,y:-.014444207562717595},{x:.48125191838151804,y:.02425079243728233},{x:.4833189661071789,y:.02551885102394819},{x:.4854901362659954,y:.026598980192539007},{x:.48706966813422276,y:.027819770278194},{x:.48877129863032925,y:.028863658687316496},{x:.4905512426555404,y:.030510612890229178},{x:.492469971641239,y:.03199356196515255},{x:.573357971641239,y:.10828456196515254},{x:.5791512607417543,y:.11493718669263933},{x:.5835353707163221,y:.12259219773755695},{x:.5863418226772573,y:.13095541731842886},{x:.5874627662495775,y:.13970545159690978},{x:.5868551242004307,y:.1485060416627534},{x:.584542247872996,y:.15701898577515713},{x:.5806130198074609,y:.16491713626599536},{x:.5752184380348474,y:.17189697164123896},{x:.5685658133073607,y:.17769026074175415},{x:.560910802262443,y:.1820743707163221},{x:.5525475826815711,y:.18488082267725728},{x:.5437975484030901,y:.18600176624957743},{x:.5349969583372466,y:.1853941242004306},{x:.5264840142248428,y:.183081247872996},{x:.5185858637340046,y:.17915201980746093},{x:.511606028358761,y:.17375743803484736},{x:.43573388395098006,y:.1021972341849065},{x:.3715652104827451,y:.07103500000000003},{x:.2713955768569904,y:.07103500000000003},{x:.2060606884620834,y:.10229012760321096},{x:.13826613078700495,y:.16623259795801962},{x:.104571,y:.2625454790108076},{x:.104571,y:.28619200000000006},{x:.542482,y:.28619200000000006},{x:.5512610644907258,y:.2870566623818547},{x:.559702754456429,y:.2896174210369921},{x:.5674826604858821,y:.2937758674463855},{x:.5743018051533947,y:.2993721948466054},{x:.5798981325536146,y:.3061913395141179},{x:.5840565789630079,y:.31397124554357103},{x:.5866173376181454,y:.32241293550927425},{x:.5874820000000001,y:.33119200000000004},{x:.5866173376181454,y:.33997106449072584},{x:.5840565789630079,y:.34841275445642905},{x:.5798981325536146,y:.35619266048588216},{x:.5743018051533947,y:.3630118051533947},{x:.5674826604858821,y:.3686081325536146},{x:.5660433240263831,y:.3693774739195968},{x:.5706944449992851,y:.3724210772554575},{x:.5769918122169339,y:.3785986803904119},{x:.5819629867044116,y:.38588613801169297},{x:.5854169290140312,y:.3940033972097681},{x:.5872209060798271,y:.40263851626586683},{x:.5873055920748429,y:.4114596523972937},{x:.5856677325637826,y:.4201278142894682},{x:.5823702695691338,y:.4283098893420352},{x:.5425292695691338,y:.5045998893420351},{x:.54083893518448,y:.5071829952333479},{x:.5393041274419548,y:.5098614335042745},{x:.5384286685906833,y:.5108662746451583},{x:.5376989227445426,y:.5119814449992851},{x:.5355371287009763,y:.5141851493557908},{x:.5335092744740836,y:.5165126960496618},{x:.49246227447408364,y:.5552086960496617},{x:.4903478252727746,y:.5568421196453192},{x:.48836639942178184,y:.5586345815458318},{x:.486865329057947,y:.5595323670561179},{x:.4854811710293013,y:.5606016367187369},{x:.48308868524123094,y:.5617911659624512},{x:.4807956399629947,y:.5631626292028359},{x:.40111563996299465,y:.6007566292028359},{x:.40009264564938235,y:.6011215754533451},{x:.39913475445642904,y:.6016335789630078},{x:.3959457374462889,y:.6026009566970012},{x:.3928069722488333,y:.6037206897930685},{x:.3917324370025758,y:.603879047413643},{x:.39069306449072577,y:.6041943376181453},{x:.38737659751458814,y:.6045209811048129},{x:.38407969371999856,y:.6050068561303112},{x:.38299491132800306,y:.6049525395264004},{x:.381914,y:.605059},{x:.261186,y:.605059},{x:.26023449599616577,y:.6049652850353624},{x:.2592798763752433,y:.6050186117946668},{x:.25585213857488087,y:.6045336605029273},{x:.2524069355092742,y:.6041943376181453},{x:.2514919972706982,y:.6039167941377678},{x:.2505453168634681,y:.6037828591890964},{x:.24727805138745723,y:.6026385076291858},{x:.2439652455435709,y:.6016335789630078},{x:.24312203363365809,y:.6011828728071931},{x:.24221967283726598,y:.6008668231955117},{x:.161332672837266,y:.5632728231955116},{x:.15891596978001063,y:.5618462817840929},{x:.15640337688314435,y:.5605963413854953},{x:.1551260781006526,y:.5596091689500753},{x:.15373589412748892,y:.5587885654418143},{x:.1516439317651508,y:.5569179592459522},{x:.1494234689111216,y:.555201853544281},{x:.06853646891112161,y:.47891385354428107},{x:.06722863655802509,y:.4774120673763562},{x:.06576662511800205,y:.47605991734502884},{x:.06433886916992998,y:.4740937424536807},{x:.06274309028364713,y:.4722613067803989},{x:.06175337150959475,y:.4705332315776763},{x:.06058324359446483,y:.4689218384474283},{x:.05956650326928079,y:.4667149016876259},{x:.05835887729241062,y:.4646063547351938},{x:.05772530643484857,y:.4627183994585984},{x:.05689202940417486,y:.4609096881637455},{x:.017051029404174856,y:.3459246881637455},{x:.016331419439147486,y:.342923979771159},{x:.015435662381854634,y:.33997106449072584},{x:.015304912520774374,y:.33864353887302173},{x:.014993833838408223,y:.33734636893611664},{x:.014873460143664087,y:.33426292937408214},{x:.014571,y:.33119200000000004},{x:.014571,y:.25490100000000004}],[{x:.12278767041868709,y:.376192},{x:.13831799224413532,y:.421014018902617},{x:.20587340146207272,y:.4847284236699839},{x:.27113246747276615,y:.5150589999999999},{x:.37183117966561724,y:.5150589999999999},{x:.4359272756482788,y:.48481767680255794},{x:.4662598881310508,y:.45622238914125884},{x:.5025937304308662,y:.3866481106579649},{x:.5074240772554575,y:.379266555000715},{x:.5104401600015575,y:.376192},{x:.12278767041868709,y:.376192}]],f:[[{x:.044112,y:.5239119999999999},{x:.04497666238185463,y:.5151329355092742},{x:.04753742103699209,y:.5066912455435709},{x:.051695867446385456,y:.4989113395141178},{x:.05729219484660536,y:.49209219484660527},{x:.0641113395141179,y:.4864958674463854},{x:.07189124554357096,y:.482337421036992},{x:.08033293550927423,y:.47977666238185457},{x:.089112,y:.47891199999999995},{x:.20304699999999998,y:.47891199999999995},{x:.20304699999999998,y:.05318299999999998},{x:.20391166238185462,y:.04440393550927419},{x:.2064724210369921,y:.03596224554357094},{x:.21063086744638546,y:.028182339514117884},{x:.21622719484660535,y:.021363194846605343},{x:.2230463395141179,y:.01576686744638544},{x:.23082624554357095,y:.011608421036992077},{x:.23926793550927422,y:.009047662381854615},{x:.248047,y:.008182999999999982},{x:.25682606449072576,y:.009047662381854615},{x:.26526775445642903,y:.011608421036992077},{x:.2730476604858821,y:.015766867446385446},{x:.2798668051533946,y:.021363194846605343},{x:.28546313255361455,y:.028182339514117884},{x:.2896215789630079,y:.03596224554357094},{x:.2921823376181454,y:.04440393550927421},{x:.293047,y:.05318299999999998},{x:.293047,y:.47891199999999995},{x:.459965,y:.47891199999999995},{x:.4687440644907258,y:.47977666238185457},{x:.4771857544564291,y:.482337421036992},{x:.48496566048588213,y:.4864958674463854},{x:.4917848051533946,y:.49209219484660527},{x:.49738113255361455,y:.4989113395141178},{x:.5015395789630079,y:.5066912455435709},{x:.5041003376181454,y:.5151329355092742},{x:.504965,y:.5239119999999999},{x:.5041003376181454,y:.5326910644907257},{x:.5015395789630079,y:.5411327544564289},{x:.49738113255361455,y:.548912660485882},{x:.4917848051533946,y:.5557318051533946},{x:.48496566048588213,y:.5613281325536145},{x:.4771857544564291,y:.5654865789630078},{x:.4687440644907258,y:.5680473376181453},{x:.459965,y:.568912},{x:.293047,y:.568912},{x:.293047,y:.6141229501499061},{x:.3322669208002554,y:.6884371453882767},{x:.4140490730325775,y:.7147659999999999},{x:.512941,y:.7147659999999999},{x:.5217200644907257,y:.7156306623818546},{x:.530161754456429,y:.7181914210369921},{x:.5379416604858821,y:.7223498674463854},{x:.5447608051533946,y:.7279461948466053},{x:.5503571325536145,y:.7347653395141178},{x:.5545155789630078,y:.7425452455435709},{x:.5570763376181453,y:.7509869355092742},{x:.557941,y:.7597659999999999},{x:.5570763376181453,y:.7685450644907257},{x:.5545155789630078,y:.776986754456429},{x:.5503571325536145,y:.7847666604858821},{x:.5447608051533946,y:.7915858051533946},{x:.5379416604858821,y:.7971821325536145},{x:.530161754456429,y:.8013405789630078},{x:.5217200644907257,y:.8039013376181453},{x:.512941,y:.804766},{x:.406984,y:.804766},{x:.40440576588043703,y:.8045120661033809},{x:.40181542834229744,y:.8044681908525655},{x:.400026512750784,y:.8040807473169851},{x:.3982049355092742,y:.8039013376181453},{x:.39572578148103565,y:.8031492944655273},{x:.39319377618916257,y:.8026009124809075},{x:.2872357761891626,y:.7684889124809076},{x:.28342960508890525,y:.7668362808879404},{x:.2796044085190959,y:.7652281761559891},{x:.27938594032962494,y:.7650805300410848},{x:.27914407460343155,y:.764975512444704},{x:.2757334504432472,y:.7626120885587936},{x:.27229547962292316,y:.7602886242777711},{x:.2721100135665551,y:.7601011941121303},{x:.27189328313916555,y:.7599510087370087},{x:.2690092742928275,y:.7569676176126634},{x:.26609064851257996,y:.7540180832118794},{x:.26594531194585036,y:.7537980718316557},{x:.26576204564604555,y:.7536084902175343},{x:.26351548295615396,y:.7501197819025626},{x:.26122836336792754,y:.7466575263349163},{x:.2082493633679275,y:.6462725263349164},{x:.20745880379789322,y:.6443351468057326},{x:.2064724210369921,y:.6424897544564291},{x:.20579637196662365,y:.6402611193438609},{x:.20491647908027386,y:.6381048157198157},{x:.20451907388691828,y:.636050431873947},{x:.20391166238185462,y:.6340480644907258},{x:.20368338854657433,y:.6317303613460921},{x:.20324107652369047,y:.6294438319050109},{x:.20325209776572678,y:.6273513925615422},{x:.20304699999999998,y:.6252690000000001},{x:.20304699999999998,y:.568912},{x:.089112,y:.568912},{x:.0803329355092742,y:.5680473376181453},{x:.07189124554357093,y:.5654865789630078},{x:.0641113395141179,y:.5613281325536145},{x:.05729219484660536,y:.5557318051533946},{x:.051695867446385456,y:.548912660485882},{x:.04753742103699209,y:.5411327544564289},{x:.04497666238185463,y:.5326910644907257},{x:.044112,y:.5239119999999999}]],g:[[{x:.03166100000000001,y:.285331},{x:.03199195389402992,y:.28197076872347165},{x:.03216742697517915,y:.27859884139484714},{x:.032423533978450624,y:.2775888625904497},{x:.03252566238185464,y:.2765519355092742},{x:.03350580569139788,y:.2733208360362635},{x:.034335737494852386,y:.2700479324456657},{x:.07135573749485238,y:.1675239324456658},{x:.07223945098422414,y:.16566943556296815},{x:.07292365731738822,y:.16373243532732273},{x:.07413231799188957,y:.16169720247238553},{x:.07515058411631778,y:.15956034321175439},{x:.07637911169281072,y:.15791388391586245},{x:.07742806119285411,y:.15614758463046624},{x:.07901055202445481,y:.15438725620434748},{x:.0804261330120869,y:.15249010996133996},{x:.08195226304990277,y:.15111496075964967},{x:.08332564517579637,y:.14958724031548856},{x:.1584886451757964,y:.08090524031548854},{x:.16047116284778873,y:.07942238349974136},{x:.16231838489394151,y:.07777404756068641},{x:.16399482319868336,y:.07678680357956279},{x:.16555276842115366,y:.07562151273533077},{x:.16778648358567103,y:.07455391860853194},{x:.1699197861673149,y:.07329763012616651},{x:.2450797861673149,y:.038459630126166475},{x:.2459605302529857,y:.0381521715215269},{x:.24678324554357095,y:.03771242103699209},{x:.2501181687545519,y:.03670078314085588},{x:.253408434365457,y:.03555218561964517},{x:.254332237398671,y:.03542245939316866},{x:.2552249355092742,y:.03515166238185463},{x:.2586931398688001,y:.03481007406735549},{x:.26214426420887293,y:.034325445502994434},{x:.2630756249571383,y:.03437843696081321},{x:.264004,y:.034287},{x:.376189,y:.034287},{x:.37724627227682206,y:.03439113223027483},{x:.37830727432005307,y:.03433688416138392},{x:.3816280756224084,y:.03482270219101675},{x:.3849680644907258,y:.03515166238185463},{x:.38598470638687477,y:.035460057329467706},{x:.38703590484658207,y:.03561384285228289},{x:.39019811948723343,y:.036738182220129235},{x:.39340975445642906,y:.03771242103699209},{x:.39434669699397534,y:.038213227257056566},{x:.39534769490287125,y:.03856913648017993},{x:.4693886949028713,y:.07340713648017996},{x:.47140406041677185,y:.07460963544760885},{x:.47352148667564636,y:.07562166704766733},{x:.4751827197672129,y:.0768642309221422},{x:.47696422705836306,y:.07792719476830276},{x:.47870627197824944,y:.0794997663623443},{x:.480392,y:.08076065187723735},{x:.480392,y:.018480463023952315},{x:.44982106300216956,y:-.06618482166306154},{x:.42509763890365326,y:-.0887666681923909},{x:.3663917896728536,y:-.115601},{x:.27366828971008494,y:-.115601},{x:.21388478385740822,y:-.08868092320279419},{x:.15228882603575622,y:-.032396134475538775},{x:.11903308523020223,y:.0605977685009861},{x:.11526275900748023,y:.06857299605517989},{x:.11000898883421664,y:.07565942769130271},{x:.1034736741518217,y:.08158473581569503},{x:.09590796343849313,y:.08612121416008753},{x:.08760260271404471,y:.08909452840579157},{x:.07887676233341709,y:.09039041575379858},{x:.07006577144893004,y:.08995907598006667},{x:.061508231499013855,y:.08781708523020218},{x:.05353300394482007,y:.08404675900748018},{x:.046446572308697254,y:.07879298883421659},{x:.04052126418430494,y:.07225767415182165},{x:.035984785839912437,y:.06469196343849308},{x:.03301147159420839,y:.05638660271404467},{x:.03171558424620138,y:.04766076233341703},{x:.0321469240199333,y:.038849771448930016},{x:.03428891476979778,y:.030292231499013812},{x:.07130891476979778,y:-.07322776850098624},{x:.07221644299685706,y:-.07514742841768875},{x:.07292365731738822,y:-.07714956467267746},{x:.07409706350042253,y:-.07912543338941479},{x:.07507924099251978,y:-.08120299605518004},{x:.07634383839048098,y:-.08290872027080634},{x:.07742806119285414,y:-.08473441536953392},{x:.07896439356931816,y:-.08644339813281518},{x:.08033301116578337,y:-.08828942769130284},{x:.0819060799658371,y:-.08971566618082738},{x:.08332564517579637,y:-.09129475968451163},{x:.1584886451757964,y:-.15997675968451153},{x:.16066766565506738,y:-.1616065940183929},{x:.16271768036753925,y:-.16339598773796155},{x:.16419165994754753,y:-.1642424237156923},{x:.16555276842115366,y:-.1652604872646693},{x:.16800788453794988,y:-.16643389898185532},{x:.17036760218951646,y:-.1677889719724602},{x:.24552760218951647,y:-.2016329719724602},{x:.24617798725770038,y:-.20185206166908357},{x:.24678324554357095,y:-.2021755789630079},{x:.2503526828238078,y:-.20325835592431216},{x:.25388756161766735,y:-.20444912053505218},{x:.25456819199860076,y:-.20453711665220192},{x:.2552249355092742,y:-.20473633761814536},{x:.25893702635910487,y:-.20510194665533446},{x:.2626362900994872,y:-.20558021041579141},{x:.263321009549333,y:-.20553373131203426},{x:.264004,y:-.20560099999999998},{x:.376189,y:-.20560099999999998},{x:.3769985938815523,y:-.20552126196245651},{x:.37781053527049396,y:-.2055717752142049},{x:.38138177137190815,y:-.20508955666026785},{x:.3849680644907258,y:-.20473633761814536},{x:.3857465461334356,y:-.20450018779358015},{x:.38655274094280934,y:-.2043913285403334},{x:.3899612805709507,y:-.2032216620796743},{x:.39340975445642906,y:-.2021755789630079},{x:.39412720724734457,y:-.20179209245674457},{x:.39489667386274535,y:-.20152804409855607},{x:.4689376738627454,y:-.16768404409855608},{x:.471176129388074,y:-.16638175223486265},{x:.4735129313995788,y:-.16526550692304898},{x:.47497970384913024,y:-.16416890323360386},{x:.4765626813675205,y:-.163247956304222},{x:.47850406105855325,y:-.16153398660426738},{x:.480578193417323,y:-.15998330217620907},{x:.5187211934173229,y:-.125144302176209},{x:.5200982241105119,y:-.12361318710120846},{x:.5216280341275545,y:-.12223470670068204},{x:.5230406381933351,y:-.12034152832018923},{x:.5246201913815024,y:-.1185852292702623},{x:.52567205708302,y:-.11681488878073784},{x:.5269035440443172,y:-.11516444436572898},{x:.5279196645391884,y:-.1130320574948894},{x:.5291262301085498,y:-.11100134969861394},{x:.5298125082093796,y:-.10905981698676002},{x:.5306983467616347,y:-.10720083421055714},{x:.5677173467616347,y:-.0046778342105572215},{x:.5685472301626403,y:-.001405045768812418},{x:.5695273376181453,y:.0018259355092742052},{x:.5696294781899907,y:.002862986138707272},{x:.5698856101392306,y:.003873086692614168},{x:.5700610582123972,y:.007244891642088324},{x:.570392,y:.010604999999999976},{x:.570392,y:.560059},{x:.5695273376181453,y:.5688380644907257},{x:.5669665789630078,y:.577279754456429},{x:.5628081325536145,y:.5850596604858821},{x:.5572118051533946,y:.5918788051533946},{x:.5503926604858821,y:.5974751325536145},{x:.542612754456429,y:.6016335789630078},{x:.5341710644907257,y:.6041943376181453},{x:.525392,y:.605059},{x:.5166129355092742,y:.6041943376181453},{x:.508171245543571,y:.6016335789630078},{x:.5003913395141178,y:.5974751325536145},{x:.4935721948466053,y:.5918788051533946},{x:.48797586744638544,y:.5850596604858821},{x:.48381742103699205,y:.577279754456429},{x:.4812566623818546,y:.5688380644907257},{x:.480392,y:.560059},{x:.480392,y:.5595783858718113},{x:.47850787544975776,y:.5609876460911735},{x:.47656308903374583,y:.5627046621197919},{x:.47498407852937236,y:.5636233247252487},{x:.47352120750708176,y:.5647175018259646},{x:.47118052218859596,y:.5658362200595997},{x:.46893813108831367,y:.5671408350985324},{x:.39489713108831365,y:.6009858350985324},{x:.39412742928685096,y:.6012499737741558},{x:.39340975445642906,y:.6016335789630078},{x:.38996152003118717,y:.6026795894402057},{x:.3865532301567984,y:.60384921275647},{x:.38574678706033977,y:.6039581147092028},{x:.3849680644907258,y:.6041943376181453},{x:.38138202040224084,y:.6045475321329209},{x:.37781103767268465,y:.6050297570960106},{x:.3769988444371686,y:.6049792372848822},{x:.376189,y:.605059},{x:.264004,y:.605059},{x:.2633207613423033,y:.6049917068657756},{x:.2626357925427961,y:.6050381952835313},{x:.25893677979996554,y:.6045599223713788},{x:.2552249355092742,y:.6041943376181453},{x:.25456795333002863,y:.6039950442528821},{x:.2538870765735461,y:.6039070086250592},{x:.2503524457397967,y:.6027162840056636},{x:.24678324554357095,y:.6016335789630078},{x:.24617776729948443,y:.6013099440989677},{x:.24552714829793862,y:.6010907675853725},{x:.17036714829793861,y:.5672457675853725},{x:.16800780172583518,y:.5658908729822889},{x:.16555304759050302,y:.5647176561362495},{x:.1641916021742222,y:.563699355958929},{x:.16271727507130354,y:.5628526987282604},{x:.16066758950642807,y:.5610635523625588},{x:.15848888603577402,y:.5594339797745099},{x:.08332588603577401,y:.49075297977450993},{x:.08190615458499984,y:.48917372437901785},{x:.08033291862515302,y:.48774732555289924},{x:.07896444452212992,y:.48590147772545017},{x:.07742825448734617,y:.4841926782200152},{x:.07634390022195357,y:.48236679190821125},{x:.07507917015624571,y:.48066087782555583},{x:.0740970979464375,y:.4785835213931001},{x:.07292379561819572,y:.47660786018244516},{x:.07221648966449083,y:.47460551074132296},{x:.0713088683600783,y:.4726856387236396},{x:.034288868360078294,y:.36916463872363964},{x:.03348577523186824,y:.3659561323879453},{x:.03252566238185464,y:.3627910644907258},{x:.0324167369020588,y:.3616851255348066},{x:.032146903820267865,y:.36060709221327164},{x:.03198519043554786,y:.35730356073015046},{x:.03166100000000001,y:.354012},{x:.03166100000000001,y:.285331}],[{x:.121661,y:.29320659086815803},{x:.121661,y:.34620780969623244},{x:.15228882172599023,y:.4318540207415116},{x:.21388481974037543,y:.48813802669691503},{x:.2736685500834057,y:.5150589999999999},{x:.3663915263934284,y:.5150589999999999},{x:.4250929420729598,y:.48822590193711934},{x:.480392,y:.4376951204586189},{x:.480392,y:.20264468470162808},{x:.4249051037436742,y:.15194152341431572},{x:.3661311050032371,y:.124287},{x:.2739261218560311,y:.124287},{x:.21407100266628776,y:.15203091487935444},{x:.15223458736534265,y:.208535427414771},{x:.121661,y:.29320659086815803}]],h:[[{x:.047041,y:.05318299999999998},{x:.04790566238185463,y:.04440393550927419},{x:.050466421036992094,y:.03596224554357094},{x:.05462486744638546,y:.028182339514117884},{x:.06022119484660536,y:.021363194846605343},{x:.06704033951411792,y:.01576686744638544},{x:.07482024554357096,y:.011608421036992077},{x:.08326193550927423,y:.009047662381854615},{x:.092041,y:.008182999999999982},{x:.10082006449072577,y:.009047662381854615},{x:.10926175445642904,y:.011608421036992077},{x:.1170416604858821,y:.015766867446385446},{x:.12386080515339463,y:.021363194846605343},{x:.12945713255361452,y:.028182339514117884},{x:.1336155789630079,y:.03596224554357094},{x:.13617633761814535,y:.04440393550927421},{x:.137041,y:.05318299999999998},{x:.137041,y:.3692271498339558},{x:.23047284680205596,y:.45237128863270537},{x:.2915669774325256,y:.478914},{x:.38669764440631527,y:.478914},{x:.43644054132690624,y:.4571557093088599},{x:.465011,y:.38123324165433015},{x:.465011,y:.05318299999999998},{x:.4658756623818546,y:.04440393550927419},{x:.46843642103699207,y:.03596224554357094},{x:.47259486744638546,y:.028182339514117884},{x:.4781911948466053,y:.021363194846605343},{x:.4850103395141179,y:.01576686744638544},{x:.492790245543571,y:.011608421036992077},{x:.5012319355092743,y:.009047662381854615},{x:.510011,y:.008182999999999982},{x:.5187900644907257,y:.009047662381854615},{x:.527231754456429,y:.011608421036992077},{x:.5350116604858821,y:.015766867446385446},{x:.5418308051533947,y:.021363194846605343},{x:.5474271325536145,y:.028182339514117884},{x:.5515855789630079,y:.03596224554357094},{x:.5541463376181454,y:.04440393550927421},{x:.555011,y:.05318299999999998},{x:.555011,y:.38942},{x:.5546506186962206,y:.39307901278178137},{x:.554410350301749,y:.3967478709583736},{x:.5542188683658584,y:.3974626474508545},{x:.5541463376181454,y:.3981990644907258},{x:.5530790429582076,y:.40171746346329923},{x:.5521276325304605,y:.40526895152034226},{x:.5139866325304605,y:.5066239515203422},{x:.5138553396770835,y:.5068902237569821},{x:.5137747554395128,y:.50717595947055},{x:.511905898744729,y:.5108438433478746},{x:.5100853961903059,y:.5145359657635786},{x:.5099046789559015,y:.5147715076888114},{x:.5097698988494882,y:.5150360318659072},{x:.5072213830653152,y:.5182688425286295},{x:.504715563605999,y:.5215348594178236},{x:.5044923668525381,y:.521730619287556},{x:.5043085704011859,y:.5219637664124008},{x:.5011783335599848,y:.5246372687597332},{x:.4980834944323178,y:.5273516689249697},{x:.497826395485866,y:.5275001237971909},{x:.49760064588412606,y:.5276929341565276},{x:.49400898123224624,y:.5297043869925788},{x:.49044405536829966,y:.5317628575577613},{x:.490162934397186,y:.5318583023949868},{x:.48990390707565157,y:.532003366394835},{x:.41414290707565155,y:.5651423663948351},{x:.41372099607879415,y:.5652794559590063},{x:.41332975445642905,y:.5654885789630079},{x:.40952975949805703,y:.5666412948313546},{x:.4057531353317914,y:.5678684156337233},{x:.40531258638921414,y:.5679205603081202},{x:.4048880644907258,y:.5680493376181454},{x:.4009362016599996,y:.5684385621342186},{x:.39699274487562397,y:.5689053213297277},{x:.39655048803612764,y:.5688705172237564},{x:.396109,y:.568914},{x:.282214,y:.568914},{x:.28182836168040026,y:.5688760179407144},{x:.2814421286004882,y:.5689073796745989},{x:.27744221175957573,y:.5684440198796774},{x:.2734349355092742,y:.5680493376181454},{x:.2730641170540284,y:.5679368510695262},{x:.2726791869636831,y:.5678922598605547},{x:.26884652441488044,y:.5666574583296339},{x:.26499324554357095,y:.5654885789630079},{x:.2646514972979566,y:.5653059107200353},{x:.264282662844679,y:.5651870801833616},{x:.18800566284467896,y:.5320480801833616},{x:.1856267698486466,y:.5307235797343987},{x:.1831549202301779,y:.529581917442145},{x:.18178185218619736,y:.5285828381463435},{x:.18029822995654404,y:.527756799180932},{x:.17822344394147954,y:.5259936496360635},{x:.17602181748454487,y:.5243916901265875},{x:.137041,y:.4897030201456747},{x:.137041,y:.7597659999999999},{x:.13617633761814535,y:.7685450644907257},{x:.1336155789630079,y:.776986754456429},{x:.12945713255361452,y:.7847666604858821},{x:.12386080515339463,y:.7915858051533946},{x:.11704166048588208,y:.7971821325536145},{x:.10926175445642904,y:.8013405789630078},{x:.10082006449072577,y:.8039013376181453},{x:.092041,y:.804766},{x:.08326193550927423,y:.8039013376181453},{x:.07482024554357093,y:.8013405789630078},{x:.06704033951411792,y:.7971821325536145},{x:.06022119484660536,y:.7915858051533946},{x:.05462486744638546,y:.7847666604858821},{x:.050466421036992094,y:.776986754456429},{x:.04790566238185463,y:.7685450644907257},{x:.047041,y:.7597659999999999},{x:.047041,y:.05318299999999998}]],i:[[{x:.216026,y:.7597659999999999},{x:.21689066238185462,y:.7509869355092742},{x:.21945142103699208,y:.7425452455435709},{x:.22360986744638545,y:.7347653395141178},{x:.22920619484660534,y:.7279461948466053},{x:.2360253395141179,y:.7223498674463854},{x:.24380524554357094,y:.7181914210369921},{x:.25224693550927424,y:.7156306623818546},{x:.261026,y:.7147659999999999},{x:.341026,y:.7147659999999999},{x:.3498050644907258,y:.7156306623818546},{x:.35824675445642906,y:.7181914210369921},{x:.3660266604858821,y:.7223498674463854},{x:.3728458051533946,y:.7279461948466053},{x:.37844213255361453,y:.7347653395141178},{x:.3826005789630079,y:.7425452455435709},{x:.38516133761814536,y:.7509869355092742},{x:.386026,y:.7597659999999999},{x:.38516133761814536,y:.7685450644907257},{x:.3826005789630079,y:.776986754456429},{x:.37844213255361453,y:.7847666604858821},{x:.3728458051533946,y:.7915858051533946},{x:.3660266604858821,y:.7971821325536145},{x:.35824675445642906,y:.8013405789630078},{x:.3498050644907258,y:.8039013376181453},{x:.341026,y:.804766},{x:.261026,y:.804766},{x:.25224693550927424,y:.8039013376181453},{x:.24380524554357094,y:.8013405789630078},{x:.2360253395141179,y:.7971821325536145},{x:.22920619484660534,y:.7915858051533946},{x:.22360986744638545,y:.7847666604858821},{x:.21945142103699208,y:.776986754456429},{x:.21689066238185462,y:.7685450644907257},{x:.216026,y:.7597659999999999}],[{x:.25597800000000004,y:.05318299999999998},{x:.25684266238185466,y:.04440393550927419},{x:.2594034210369921,y:.03596224554357094},{x:.2635618674463855,y:.028182339514117884},{x:.2691581948466054,y:.021363194846605343},{x:.27597733951411796,y:.01576686744638544},{x:.28375724554357096,y:.011608421036992077},{x:.2921989355092742,y:.009047662381854615},{x:.300978,y:.008182999999999982},{x:.3097570644907258,y:.009047662381854615},{x:.3181987544564291,y:.011608421036992077},{x:.32597866048588214,y:.015766867446385446},{x:.33279780515339463,y:.021363194846605343},{x:.33839413255361456,y:.028182339514117884},{x:.34255257896300795,y:.03596224554357094},{x:.3451133376181454,y:.04440393550927421},{x:.345978,y:.05318299999999998},{x:.345978,y:.523911},{x:.3451133376181454,y:.5326900644907258},{x:.34255257896300795,y:.541131754456429},{x:.33839413255361456,y:.5489116604858821},{x:.33279780515339463,y:.5557308051533947},{x:.32597866048588214,y:.5613271325536145},{x:.3181987544564291,y:.5654855789630079},{x:.3097570644907258,y:.5680463376181454},{x:.300978,y:.5689110000000001},{x:.2921989355092742,y:.5680463376181454},{x:.28375724554357096,y:.5654855789630079},{x:.27597733951411796,y:.5613271325536145},{x:.2691581948466054,y:.5557308051533947},{x:.2635618674463855,y:.5489116604858821},{x:.2594034210369921,y:.541131754456429},{x:.25684266238185466,y:.5326900644907258},{x:.25597800000000004,y:.523911},{x:.25597800000000004,y:.05318299999999998}]],j:[[{x:.11017199870220953,y:-.1121580749666587},{x:.11173080987432929,y:-.12084080046598154},{x:.114953584640513,y:-.12905258085596802},{x:.11971647357384912,y:-.1364778420214504},{x:.12583644152368842,y:-.14283123533997366},{x:.1330783015538362,y:-.147868603469331},{x:.14116375304461573,y:-.15139636317729976},{x:.23896575304461573,y:-.18307436317729964},{x:.2424293887998465,y:-.18383095770413346},{x:.24586120600074532,y:-.1847208108507566},{x:.24673197042105502,y:-.1847708110651418},{x:.2475840766296098,y:-.18495694463669302},{x:.2511287638648936,y:-.18502327959701073},{x:.25466824139749206,y:-.18522652014211538},{x:.25553202888155596,y:-.18510568190524296},{x:.2564040749666586,y:-.1851220012977904},{x:.25989359333942796,y:-.1844955274762681},{x:.2634047110671092,y:-.18400434499968443},{x:.3944597110671092,y:-.15232634499968456},{x:.39510744613291976,y:-.15210060706564532},{x:.39578357398914765,y:-.1519849807175323},{x:.3992672661785621,y:-.15065089524264363},{x:.4027898773796621,y:-.14942325292878383},{x:.40338112711156726,y:-.1490754856432793},{x:.40402170577913904,y:-.1488301750218278},{x:.4071781926350792,y:-.14684208899421944},{x:.4103936167153703,y:-.14495080812962524},{x:.41090565971774945,y:-.14449437599440731},{x:.41148607211771127,y:-.14412880824922783},{x:.41419405162048195,y:-.14156312270000898},{x:.41697872163578864,y:-.1390808841476645},{x:.4173918803832174,y:-.13853332759371953},{x:.41788982159253774,y:-.13806155128824654},{x:.42004522760849955,y:-.13501686407422092},{x:.422292130251795,y:-.13203905886963707},{x:.4225905272853119,y:-.13142142018825975},{x:.42298686170256505,y:-.13086156542133753},{x:.4245068631872901,y:-.12745488216466036},{x:.4261296512500701,y:-.1240959456918764},{x:.4263018193390199,y:-.1234319603912164},{x:.42658131605481786,y:-.12280554206756752},{x:.4588533160548179,y:-.025908542067567514},{x:.4594769463166796,y:-.023162642495487502},{x:.46029433761814537,y:-.02046806449072583},{x:.46045163429328767,y:-.01887100454660151},{x:.46080705178433234,y:-.017306069686551954},{x:.4608830007338393,y:-.01449126757618431},{x:.461159,y:-.01168900000000006},{x:.461159,y:.534292},{x:.46029433761814537,y:.5430710644907257},{x:.4577335789630079,y:.551512754456429},{x:.45357513255361454,y:.5592926604858821},{x:.4479788051533946,y:.5661118051533947},{x:.4411596604858821,y:.5717081325536145},{x:.43337975445642907,y:.5758665789630079},{x:.4249380644907258,y:.5784273376181454},{x:.416159,y:.579292},{x:.4073799355092742,y:.5784273376181454},{x:.39893824554357094,y:.5758665789630079},{x:.39115833951411794,y:.5717081325536145},{x:.3843391948466054,y:.5661118051533947},{x:.37874286744638547,y:.5592926604858821},{x:.3745844210369921,y:.551512754456429},{x:.37202366238185464,y:.5430710644907257},{x:.371159,y:.534292},{x:.371159,y:-.004392296840350002},{x:.3490732119536395,y:-.07070509444595838},{x:.254610065464387,y:-.09353828321774525},{x:.16889624695538427,y:-.06577563682270039},{x:.16027792337039018,y:-.063893055363307},{x:.15145792503334138,y:-.0637279987022096},{x:.14277519953401854,y:-.06528680987432936},{x:.13456341914403205,y:-.06850958464051307},{x:.12713815797854966,y:-.0732724735738492},{x:.12078476466002638,y:-.07939244152368852},{x:.11574739653066908,y:-.08663430155383627},{x:.11221963682270032,y:-.0947197530446158},{x:.11033705536330693,y:-.10333807662960988},{x:.11017199870220953,y:-.1121580749666587}],[{x:.3403,y:.7597659999999999},{x:.3411646623818546,y:.7509869355092742},{x:.34372542103699205,y:.7425452455435709},{x:.34788386744638544,y:.7347653395141178},{x:.3534801948466053,y:.7279461948466053},{x:.3602993395141179,y:.7223498674463854},{x:.36807924554357097,y:.7181914210369921},{x:.37652093550927423,y:.7156306623818546},{x:.3853,y:.7147659999999999},{x:.447023,y:.7147659999999999},{x:.4558020644907258,y:.7156306623818546},{x:.46424375445642907,y:.7181914210369921},{x:.4720236604858821,y:.7223498674463854},{x:.4788428051533946,y:.7279461948466053},{x:.48443913255361454,y:.7347653395141178},{x:.48859757896300793,y:.7425452455435709},{x:.49115833761814537,y:.7509869355092742},{x:.492023,y:.7597659999999999},{x:.49115833761814537,y:.7685450644907257},{x:.48859757896300793,y:.776986754456429},{x:.48443913255361454,y:.7847666604858821},{x:.4788428051533946,y:.7915858051533946},{x:.4720236604858821,y:.7971821325536145},{x:.46424375445642907,y:.8013405789630078},{x:.4558020644907258,y:.8039013376181453},{x:.447023,y:.804766},{x:.3853,y:.804766},{x:.37652093550927423,y:.8039013376181453},{x:.36807924554357097,y:.8013405789630078},{x:.3602993395141179,y:.7971821325536145},{x:.3534801948466053,y:.7915858051533946},{x:.34788386744638544,y:.7847666604858821},{x:.34372542103699205,y:.776986754456429},{x:.3411646623818546,y:.7685450644907257},{x:.3403,y:.7597659999999999}]],k:[[{x:.020185999999999996,y:.05318299999999998},{x:.02105066238185463,y:.04440393550927419},{x:.02361142103699209,y:.03596224554357094},{x:.027769867446385453,y:.028182339514117884},{x:.03336619484660536,y:.021363194846605343},{x:.04018533951411791,y:.01576686744638544},{x:.047965245543570956,y:.011608421036992077},{x:.056406935509274225,y:.009047662381854615},{x:.065186,y:.008182999999999982},{x:.07396506449072576,y:.009047662381854615},{x:.08240675445642903,y:.011608421036992077},{x:.0901866604858821,y:.015766867446385446},{x:.09700580515339463,y:.021363194846605343},{x:.10260213255361453,y:.028182339514117884},{x:.10676057896300789,y:.03596224554357094},{x:.10932133761814536,y:.04440393550927421},{x:.11018599999999999,y:.05318299999999998},{x:.11018599999999999,y:.16578332733911408},{x:.23477705990096162,y:.26351643594805596},{x:.5068321321577423,y:.019673199736523116},{x:.5139466814455551,y:.014457569113271652},{x:.5219420457215526,y:.010730135081525344},{x:.5305109676204599,y:.008634140840755075},{x:.539324148279209,y:.008250134274186548},{x:.5480429021075728,y:.009592872538819623},{x:.5563321722854605,y:.012610754956160736},{x:.5638734068086124,y:.017187805997359452},{x:.5703768002634768,y:.02314813215774228},{x:.5755924308867283,y:.030262681445555134},{x:.5793198649184746,y:.03825804572155257},{x:.5814158591592449,y:.04682696762045996},{x:.5817998657258134,y:.05564014827920904},{x:.5804571274611804,y:.06435890210757275},{x:.5774392450438393,y:.07264817228546054},{x:.5728621940026405,y:.08018940680861247},{x:.5669018678422577,y:.08669280026347684},{x:.3066862956724008,y:.3199242805817128},{x:.5215978711622948,y:.4885076152557163},{x:.5279716470169837,y:.49460635247919954},{x:.533033147947031,y:.5018313661609891},{x:.5365878633102175,y:.5099050030771282},{x:.5384991873886431,y:.5185169978886772},{x:.5386936690698568,y:.5273363964646907},{x:.5371638345319164,y:.5360242742638681},{x:.5339684744581735,y:.5442467610146052},{x:.5292303847442837,y:.5516878711622948},{x:.5231316475208004,y:.5580616470169838},{x:.5159066338390108,y:.5631231479470311},{x:.5078329969228718,y:.5666778633102175},{x:.4992210021113228,y:.5685891873886431},{x:.49040160353530926,y:.5687836690698569},{x:.4817137257361318,y:.5672538345319164},{x:.47349123898539475,y:.5640584744581736},{x:.46605012883770514,y:.5593203847442837},{x:.11018599999999999,y:.28016947631338524},{x:.11018599999999999,y:.7597659999999999},{x:.10932133761814536,y:.7685450644907257},{x:.10676057896300789,y:.776986754456429},{x:.10260213255361453,y:.7847666604858821},{x:.09700580515339463,y:.7915858051533946},{x:.09018666048588207,y:.7971821325536145},{x:.08240675445642903,y:.8013405789630078},{x:.07396506449072576,y:.8039013376181453},{x:.065186,y:.804766},{x:.056406935509274204,y:.8039013376181453},{x:.04796524554357093,y:.8013405789630078},{x:.04018533951411791,y:.7971821325536145},{x:.03336619484660536,y:.7915858051533946},{x:.027769867446385453,y:.7847666604858821},{x:.02361142103699209,y:.776986754456429},{x:.02105066238185463,y:.7685450644907257},{x:.020185999999999996,y:.7597659999999999},{x:.020185999999999996,y:.05318299999999998}]],l:[[{x:.25602600000000003,y:.05355900000000002},{x:.25689066238185465,y:.044779935509274234},{x:.2594514210369921,y:.036338245543570985},{x:.2636098674463855,y:.028558339514117927},{x:.26920619484660535,y:.021739194846605386},{x:.27602533951411795,y:.016142867446385482},{x:.283805245543571,y:.01198442103699212},{x:.2922469355092743,y:.009423662381854658},{x:.301026,y:.008559000000000025},{x:.3098050644907258,y:.009423662381854658},{x:.3182467544564291,y:.01198442103699212},{x:.32602666048588214,y:.01614286744638549},{x:.3328458051533947,y:.021739194846605386},{x:.33844213255361455,y:.028558339514117927},{x:.34260057896300794,y:.036338245543570985},{x:.3451613376181454,y:.044779935509274255},{x:.346026,y:.05355900000000002},{x:.346026,y:.765137},{x:.3451613376181454,y:.7739160644907257},{x:.34260057896300794,y:.782357754456429},{x:.33844213255361455,y:.7901376604858821},{x:.3328458051533947,y:.7969568051533946},{x:.32602666048588214,y:.8025531325536145},{x:.3182467544564291,y:.8067115789630078},{x:.3098050644907258,y:.8092723376181453},{x:.301026,y:.810137},{x:.2922469355092743,y:.8092723376181453},{x:.283805245543571,y:.8067115789630078},{x:.27602533951411795,y:.8025531325536145},{x:.26920619484660535,y:.7969568051533946},{x:.2636098674463855,y:.7901376604858821},{x:.2594514210369921,y:.782357754456429},{x:.25689066238185465,y:.7739160644907257},{x:.25602600000000003,y:.765137},{x:.25602600000000003,y:.05355900000000002}]],m:[[{x:.005538000000000001,y:.03920400000000002},{x:.006402662381854635,y:.030424935509274227},{x:.008963421036992096,y:.02198324554357097},{x:.013121867446385459,y:.01420333951411792},{x:.018718194846605363,y:.00738419484660538},{x:.025537339514117914,y:.0017878674463854757},{x:.03331724554357096,y:-.002370578963007887},{x:.04175893550927423,y:-.004931337618145348},{x:.050538,y:-.005795999999999982},{x:.059317064490725775,y:-.004931337618145348},{x:.06775875445642904,y:-.002370578963007887},{x:.0755386604858821,y:.0017878674463854827},{x:.08235780515339464,y:.00738419484660538},{x:.08795413255361453,y:.01420333951411792},{x:.0921125789630079,y:.02198324554357098},{x:.09467333761814536,y:.030424935509274248},{x:.095538,y:.03920400000000002},{x:.095538,y:.3993271266071161},{x:.14963521853994496,y:.4943223065353007},{x:.1738257653562211,y:.5150589999999999},{x:.22021623464377893,y:.5150589999999999},{x:.2416666625786254,y:.49667119950297894},{x:.27741,y:.4029520066676719},{x:.27741,y:.03920400000000002},{x:.2782746623818546,y:.030424935509274227},{x:.28083542103699205,y:.02198324554357097},{x:.28499386744638544,y:.01420333951411792},{x:.2905901948466053,y:.00738419484660538},{x:.2974093395141179,y:.0017878674463854757},{x:.30518924554357096,y:-.002370578963007887},{x:.31363093550927423,y:-.004931337618145348},{x:.32241,y:-.005795999999999982},{x:.33118906449072577,y:-.004931337618145348},{x:.33963075445642904,y:-.002370578963007887},{x:.3474106604858821,y:.0017878674463854827},{x:.35422980515339464,y:.00738419484660538},{x:.3598261325536145,y:.01420333951411792},{x:.3639845789630079,y:.02198324554357098},{x:.36654533761814534,y:.030424935509274248},{x:.36740999999999996,y:.03920400000000002},{x:.36740999999999996,y:.3993264781598986},{x:.4215891088917321,y:.494459500052724},{x:.445289826307752,y:.5150589999999999},{x:.4920928256254945,y:.5150589999999999},{x:.5065149999999999,y:.5026965582556255},{x:.5065149999999999,y:.03920400000000002},{x:.5073796623818546,y:.030424935509274227},{x:.5099404210369921,y:.02198324554357097},{x:.5140988674463854,y:.01420333951411792},{x:.5196951948466053,y:.00738419484660538},{x:.5265143395141179,y:.0017878674463854757},{x:.534294245543571,y:-.002370578963007887},{x:.5427359355092742,y:-.004931337618145348},{x:.551515,y:-.005795999999999982},{x:.5602940644907257,y:-.004931337618145348},{x:.568735754456429,y:-.002370578963007887},{x:.5765156604858821,y:.0017878674463854827},{x:.5833348051533946,y:.00738419484660538},{x:.5889311325536145,y:.01420333951411792},{x:.5930895789630078,y:.02198324554357098},{x:.5956503376181453,y:.030424935509274248},{x:.596515,y:.03920400000000002},{x:.596515,y:.523393},{x:.5963454778388272,y:.5251141873868636},{x:.5963825315707437,y:.5268433058919912},{x:.5959141404350922,y:.5294936295415332},{x:.5956503376181453,y:.5321720644907257},{x:.5951482857762117,y:.5338271076115645},{x:.59484729324509,y:.5355302304139588},{x:.5938708496195351,y:.5380382502602514},{x:.5930895789630078,y:.540613754456429},{x:.592274291011045,y:.5421390509322689},{x:.5916468191910574,y:.543750727977755},{x:.5901998472565338,y:.5460200622246176},{x:.5889311325536145,y:.5483936604858821},{x:.5878339395503975,y:.5497305940285525},{x:.5869041018316961,y:.5511888894721116},{x:.5850422079081763,y:.5531323288770946},{x:.5833348051533946,y:.5552128051533947},{x:.581997871610724,y:.5563099981566119},{x:.5808014011353795,y:.5575588705221693},{x:.5380264011353795,y:.5942248705221693},{x:.5358211367621821,y:.5957677297988329},{x:.5337406604858821,y:.5974751325536145},{x:.5322153640100423,y:.5982904205055773},{x:.5307982404674333,y:.599281876328501},{x:.5283343527176928,y:.600364864260089},{x:.525960754456429,y:.6016335789630078},{x:.5243057113355902,y:.6021356308049415},{x:.5227223939887274,y:.6028315689939708},{x:.5200945686869033,y:.6034130669616181},{x:.5175190644907257,y:.6041943376181453},{x:.5157978771038628,y:.6043638597793182},{x:.5141092119504517,y:.6047375358201355},{x:.5114184349491921,y:.6047951971830532},{x:.50874,y:.605059},{x:.428467,y:.605059},{x:.42563553135621585,y:.6047801246797119},{x:.42279150043448566,y:.6046996620098968},{x:.4212557149999115,y:.6043487504203328},{x:.4196879355092742,y:.6041943376181453},{x:.41696527861756566,y:.6033684286794448},{x:.4141915924406847,y:.6027346691689239},{x:.4127537761476033,y:.6020908833721776},{x:.4112462455435709,y:.6016335789630078},{x:.40873703058140176,y:.6002923756232341},{x:.4061402803536474,y:.5991296742945802},{x:.40485568767586616,y:.5982177546177817},{x:.4034663395141179,y:.5974751325536145},{x:.4012669942053008,y:.5956701765049598},{x:.3989469715816508,y:.5940232153181825},{x:.3567609715816508,y:.5573572153181825},{x:.3545792701559384,y:.5550484712393128},{x:.3522737143614353,y:.552863400803129},{x:.35155574109793963,y:.5518488790642903},{x:.35070210094674875,y:.5509455305944583},{x:.3490127339279754,y:.5482555195520005},{x:.34717776483660073,y:.5456626430091704},{x:.33048446785976626,y:.5163509060824124},{x:.3216828574856715,y:.5394287684036221},{x:.32062739498214626,y:.5415455848316745},{x:.31976928952310246,y:.5437498007710907},{x:.3186639603788477,y:.5454834136126945},{x:.31774653490223986,y:.5473233854865517},{x:.3162983824161672,y:.5491936173608123},{x:.31502674401548947,y:.5511880718386934},{x:.3136044423732838,y:.5526727347769701},{x:.3123456842645886,y:.5542983712755478},{x:.3105604934838748,y:.5558501466339272},{x:.30892419049215825,y:.5575581938831911},{x:.2661511904921582,y:.594224193883191},{x:.26394553725639397,y:.5957674011217274},{x:.2618646604858821,y:.5974751325536145},{x:.26033982189406285,y:.5982901757614695},{x:.258923146662659,y:.5992813666868191},{x:.25645880963824363,y:.6003646200309664},{x:.25408475445642903,y:.6016335789630078},{x:.25243020816870526,y:.6021354800922637},{x:.25084738219782576,y:.6028312459348294},{x:.24821906447459133,y:.6034129165660671},{x:.24564306449072576,y:.6041943376181453},{x:.24392239379305308,y:.6043638088898747},{x:.2422342441971012,y:.6047374117585159},{x:.2395429505511757,y:.6047951464006902},{x:.236864,y:.605059},{x:.157178,y:.605059},{x:.1544990494488241,y:.6047951464006902},{x:.1518077558028988,y:.6047374117585159},{x:.15011960620694695,y:.6043638088898747},{x:.14839893550927424,y:.6041943376181453},{x:.14582293552540848,y:.6034129165660671},{x:.1431946178021742,y:.6028312459348294},{x:.1416117918312948,y:.6021354800922637},{x:.13995724554357097,y:.6016335789630078},{x:.13758319036175665,y:.6003646200309664},{x:.135118853337341,y:.5992813666868191},{x:.13370217810593676,y:.5982901757614691},{x:.13217733951411792,y:.5974751325536145},{x:.13009646274360603,y:.5957674011217274},{x:.1278908095078418,y:.594224193883191},{x:.09495385911112918,y:.5659898819750746},{x:.09467333761814536,y:.5688380644907257},{x:.0921125789630079,y:.577279754456429},{x:.08795413255361453,y:.5850596604858821},{x:.08235780515339464,y:.5918788051533946},{x:.07553866048588208,y:.5974751325536145},{x:.06775875445642904,y:.6016335789630078},{x:.059317064490725775,y:.6041943376181453},{x:.050538,y:.605059},{x:.04175893550927421,y:.6041943376181453},{x:.033317245543570934,y:.6016335789630078},{x:.025537339514117904,y:.5974751325536145},{x:.018718194846605356,y:.5918788051533946},{x:.013121867446385459,y:.5850596604858821},{x:.008963421036992096,y:.577279754456429},{x:.006402662381854635,y:.5688380644907257},{x:.005538000000000001,y:.560059},{x:.005538000000000001,y:.03920400000000002}]],n:[[{x:.047041,y:.03920400000000002},{x:.04790566238185463,y:.030424935509274227},{x:.050466421036992094,y:.02198324554357097},{x:.05462486744638546,y:.01420333951411792},{x:.06022119484660536,y:.00738419484660538},{x:.06704033951411792,y:.0017878674463854757},{x:.07482024554357096,y:-.002370578963007887},{x:.08326193550927423,y:-.004931337618145348},{x:.092041,y:-.005795999999999982},{x:.10082006449072577,y:-.004931337618145348},{x:.10926175445642904,y:-.002370578963007887},{x:.1170416604858821,y:.0017878674463854827},{x:.12386080515339463,y:.00738419484660538},{x:.12945713255361452,y:.01420333951411792},{x:.1336155789630079,y:.02198324554357098},{x:.13617633761814535,y:.030424935509274248},{x:.137041,y:.03920400000000002},{x:.137041,y:.3923986904044417},{x:.23217657812189968,y:.4860775193429304},{x:.29246969284729285,y:.5150589999999999},{x:.3857956927587408,y:.5150589999999999},{x:.4353266752666751,y:.4910865745843881},{x:.465011,y:.4037995608673687},{x:.465011,y:.03920400000000002},{x:.4658756623818546,y:.030424935509274227},{x:.46843642103699207,y:.02198324554357097},{x:.47259486744638546,y:.01420333951411792},{x:.4781911948466053,y:.00738419484660538},{x:.4850103395141179,y:.0017878674463854757},{x:.492790245543571,y:-.002370578963007887},{x:.5012319355092743,y:-.004931337618145348},{x:.510011,y:-.005795999999999982},{x:.5187900644907257,y:-.004931337618145348},{x:.527231754456429,y:-.002370578963007887},{x:.5350116604858821,y:.0017878674463854827},{x:.5418308051533947,y:.00738419484660538},{x:.5474271325536145,y:.01420333951411792},{x:.5515855789630079,y:.02198324554357098},{x:.5541463376181454,y:.030424935509274248},{x:.555011,y:.03920400000000002},{x:.555011,y:.411242},{x:.5547211401667089,y:.41418499627592825},{x:.5546227314347089,y:.4171405946120584},{x:.5542897326303223,y:.4185651504993601},{x:.5541463376181454,y:.4200210644907258},{x:.5532878972691104,y:.42285096307022063},{x:.5526147708021555,y:.4257305718218671},{x:.5144747708021555,y:.537881571821867},{x:.5144109474804813,y:.5380222238814931},{x:.5143747633675698,y:.5381723808934484},{x:.5125889395552703,y:.5420375142269895},{x:.5108295711501452,y:.5459147613418461},{x:.5107395343200961,y:.546040259499208},{x:.5106747512949527,y:.5461804721160435},{x:.5081691914797779,y:.5496229410537735},{x:.5056872154570532,y:.5530824522038071},{x:.5055744251835149,y:.5531879736350976},{x:.505483532821465,y:.5533128535645805},{x:.5023545242619802,y:.5562003659557777},{x:.4992453215682988,y:.5591091940676126},{x:.49911411231822944,y:.5591906836434047},{x:.49900060356177384,y:.559295431819878},{x:.49536839230215873,y:.5615170221826804},{x:.49175144785337105,y:.5637633826232722},{x:.4916068619246677,y:.563817708744868},{x:.49147509885166074,y:.5638982997546532},{x:.41571709885166075,y:.6005642997546532},{x:.4144883994140345,y:.6010164083750983},{x:.41333375445642906,y:.6016335789630078},{x:.41035728417594536,y:.6025364813514484},{x:.4074382196167836,y:.6036105717354909},{x:.4061449272779714,y:.6038142858466193},{x:.4048920644907258,y:.6041943376181453},{x:.4017966387343604,y:.6044992104448776},{x:.3987241185432898,y:.6049831812385367},{x:.3974159338025849,y:.6049306722213019},{x:.396113,y:.605059},{x:.282216,y:.605059},{x:.28097323419788345,y:.6049365982521052},{x:.2797255990169867,y:.6049900349640848},{x:.2765922846246742,y:.6045051123806029},{x:.2734369355092743,y:.6041943376181453},{x:.2722419284999821,y:.603831836204989},{x:.27100784129389754,y:.6036408445963318},{x:.26802933636200627,y:.6025539603505436},{x:.264995245543571,y:.6016335789630078},{x:.2638939207763026,y:.6010449086106044},{x:.2627208068242762,y:.6006168283817219},{x:.18644080682427616,y:.563950828381722},{x:.18387931815291048,y:.5623935720684188},{x:.18122474955630472,y:.5610008994562176},{x:.18011833133270075,y:.5601070811947741},{x:.17890296169536754,y:.5593681975674947},{x:.17669449694619624,y:.5573411418478543},{x:.17436263208920222,y:.5554573484070612},{x:.137041,y:.5187071981771466},{x:.137041,y:.560059},{x:.13617633761814535,y:.5688380644907257},{x:.1336155789630079,y:.577279754456429},{x:.12945713255361452,y:.5850596604858821},{x:.12386080515339463,y:.5918788051533946},{x:.11704166048588208,y:.5974751325536145},{x:.10926175445642904,y:.6016335789630078},{x:.10082006449072577,y:.6041943376181453},{x:.092041,y:.605059},{x:.08326193550927423,y:.6041943376181453},{x:.07482024554357093,y:.6016335789630078},{x:.06704033951411792,y:.5974751325536145},{x:.06022119484660536,y:.5918788051533946},{x:.05462486744638546,y:.5850596604858821},{x:.050466421036992094,y:.577279754456429},{x:.04790566238185463,y:.5688380644907257},{x:.047041,y:.560059},{x:.047041,y:.03920400000000002}]],o:[[{x:.021894999999999998,y:.25490100000000004},{x:.022142430975592695,y:.2523887911456351},{x:.02217771682540861,y:.24986467341374632},{x:.02257373987793045,y:.24800963837050735},{x:.02275966238185463,y:.24612193550927428},{x:.023492446675001572,y:.24370626943231966},{x:.02401948545822835,y:.2412375358426815},{x:.060310485458228355,y:.12735753584268142},{x:.06080304558444478,y:.12621387418764726},{x:.061129830312657105,y:.12501229639135567},{x:.06254436541764224,y:.12217075210694647},{x:.06379993607002282,y:.11925547753662338},{x:.06450614911208748,y:.11822988473324028},{x:.0650610709625847,y:.11711514745523491},{x:.06700278396163635,y:.114604164756607},{x:.06880297103068717,y:.11198985605258731},{x:.06969569761744246,y:.11112174505713},{x:.07045743125471368,y:.1101366870258529},{x:.14244943125471368,y:.0338456870258529},{x:.144568728324263,y:.03200109409682955},{x:.1465508815997487,y:.0300098604251366},{x:.14788834203377002,y:.029111770054614114},{x:.1491035320893312,y:.02805409342394511},{x:.1515419696884587,y:.026658398178569347},{x:.15387450686277807,y:.025092124424329433},{x:.22587150686277807,y:-.01360287557567049},{x:.22795933917571506,y:-.014473279294209745},{x:.22995424554357097,y:-.015539578963007873},{x:.23202067225559728,y:-.016166422653018674},{x:.2340138134199343,y:-.01699735024728135},{x:.23623133596214702,y:-.01744371352418634},{x:.23839593550927424,y:-.018100337618145335},{x:.2405449475487996,y:-.01831199682974963},{x:.24266189699648397,y:-.01873811583170923},{x:.2449238916202761,y:-.018743285176571887},{x:.247175,y:-.018964999999999968},{x:.354874,y:-.018964999999999968},{x:.35712497901801044,y:-.018743297917588594},{x:.3593868436844028,y:-.018738141970160445},{x:.36150392306047363,y:-.018312009573623896},{x:.3636530644907258,y:-.018100337618145335},{x:.36581753964743763,y:-.017443751257606326},{x:.36803493734305537,y:-.016997426474138877},{x:.370028203326089,y:-.016166460394901543},{x:.3720947544564291,y:-.015539578963007873},{x:.3740895461854217,y:-.014473340569958804},{x:.376177263560353,y:-.01360299896157894},{x:.448175263560353,y:.025092001038420984},{x:.4505076595021602,y:.026658160356610353},{x:.4529459593263057,y:.028053731854915283},{x:.45416130097157975,y:.029111510806286087},{x:.45549891730603415,y:.030009694621828502},{x:.4574809543881169,y:.03200078850323144},{x:.4596001404718476,y:.03384523318438343},{x:.5315941404718476,y:.11013623318438343},{x:.5323560786638525,y:.11112152750713142},{x:.5332490289693128,y:.11198985605258731},{x:.5350490398057314,y:.11460390882403626},{x:.5369905975332091,y:.11711461878219896},{x:.5375456739097991,y:.11822962771804991},{x:.5382520639299772,y:.11925547753662338},{x:.5395075116659538,y:.12217046671076734},{x:.5409219476918898,y:.12501171320336152},{x:.5412488309792026,y:.126213587584214},{x:.5417415145417717,y:.12735753584268142},{x:.5780325145417716,y:.2412375358426815},{x:.5785595533249983,y:.2437062694323195},{x:.5792923376181454,y:.24612193550927428},{x:.5794782601220696,y:.2480096383705079},{x:.5798742831745913,y:.24986467341374632},{x:.5799095690244073,y:.25238879114563434},{x:.580157,y:.25490100000000004},{x:.580157,y:.33119200000000004},{x:.5799156873690254,y:.3336420882589673},{x:.5798881240960263,y:.3361038771468651},{x:.5794843860383102,y:.3380211641581212},{x:.5792923376181454,y:.33997106449072584},{x:.5785776732343003,y:.3423269972319261},{x:.5780703683949873,y:.3447361062088315},{x:.5417793683949873,y:.4597211062088315},{x:.5412650895934552,y:.4609244011905288},{x:.540921633437906,y:.46218711230867804},{x:.5395351283421765,y:.46497211555478546},{x:.5383124760126231,y:.46783284286481475},{x:.5375733277285976,y:.46891268605384906},{x:.5369901282681178,y:.47008412955994733},{x:.5350869372989228,y:.47254512602400234},{x:.5333296776789325,y:.47511235762423976},{x:.5323940649664491,y:.4760272512524403},{x:.5315935342292432,y:.47706240922950055},{x:.45959953422924316,y:.5533504092295005},{x:.4572787448447235,y:.5553702403350376},{x:.45508230823461715,y:.5575246421731296},{x:.45395838697349994,y:.5582600166131206},{x:.4529452394037514,y:.5591417799431011},{x:.45027499383570063,y:.5606700370119551},{x:.44770045819082444,y:.5623545390972755},{x:.3757024581908245,y:.5999485390972755},{x:.37385313535723513,y:.6006937047902838},{x:.3720947544564291,y:.6016335789630078},{x:.36977177563531344,y:.6023382468844833},{x:.3675201821794923,y:.6032455034042244},{x:.36556101895058973,y:.6036155659602718},{x:.3636530644907258,y:.6041943376181453},{x:.36123724716457173,y:.6044322748568528},{x:.35885192047906295,y:.6048828346046191},{x:.35685820639902277,y:.60486357272721},{x:.354874,y:.605059},{x:.247175,y:.605059},{x:.24519066624232813,y:.6048635601834779},{x:.24319682408363533,y:.6048828119349353},{x:.24081162559758007,y:.6044322623250186},{x:.23839593550927424,y:.6041943376181453},{x:.23648785858508298,y:.6036155288111242},{x:.234528571713998,y:.6032454313367869},{x:.23227710201651716,y:.602338209770572},{x:.22995424554357097,y:.6016335789630078},{x:.2281957517789948,y:.6006936444633418},{x:.22634631449119302,y:.5999484204015954},{x:.15434931449119302,y:.5623544204015953},{x:.15177463525955168,y:.5606698034147719},{x:.14910425200363037,y:.5591414183832311},{x:.14809125527340347,y:.55825976164439},{x:.1469674919716301,y:.5575244814106152},{x:.14477093694990967,y:.5553699388664325},{x:.14245003748743465,y:.5533499553954043},{x:.07045803748743465,y:.4770619553954044},{x:.06965771196430402,y:.47602703312304784},{x:.06872232232106745,y:.47511235762423976},{x:.06696488716695402,y:.4725448695811053},{x:.06506154021654398,y:.4700836008922148},{x:.0644784960433022,y:.46891242859710086},{x:.06373952398737684,y:.46783284286481475},{x:.06251674952606694,y:.46497182979435886},{x:.06113014455468816,y:.46218652912371366},{x:.06078678779193787,y:.46092411430034236},{x:.06027263160501272,y:.4597211062088315},{x:.023981631605012717,y:.3447361062088315},{x:.0234743267656997,y:.3423269972319261},{x:.02275966238185463,y:.33997106449072584},{x:.0225676139616898,y:.3380211641581212},{x:.022163875903973694,y:.3361038771468651},{x:.022136312630974576,y:.33364208825896713},{x:.021894999999999998,y:.33119200000000004},{x:.021894999999999998,y:.25490100000000004}],[{x:.111895,y:.2618978965790472},{x:.111895,y:.324259211613835},{x:.14299436878278687,y:.42279496206129447},{x:.20271328316555492,y:.48607750096051383},{x:.25821631520114247,y:.5150589999999999},{x:.3438328207386419,y:.5150589999999999},{x:.3993370917152178,y:.4860772565752743},{x:.4590577300605173,y:.42279464888454726},{x:.490157,y:.324259211613835},{x:.490157,y:.2618978965790472},{x:.4591028039244665,y:.16445082019422033},{x:.39914727445977055,y:.10091681321598435},{x:.3435475642149213,y:.07103500000000003},{x:.2585015743575747,y:.07103500000000003},{x:.20290309936793577,y:.10091656436690524},{x:.14294929572583875,y:.164450507494742},{x:.111895,y:.2618978965790472}]],p:[[{x:.031904,y:-.15424400000000005},{x:.032768662381854635,y:-.16302306449072582},{x:.0353294210369921,y:-.17146475445642909},{x:.03948786744638546,y:-.17924466048588214},{x:.04508419484660536,y:-.18606380515339468},{x:.051903339514117915,y:-.19166013255361458},{x:.05968324554357096,y:-.19581857896300794},{x:.06812493550927423,y:-.1983793376181454},{x:.076904,y:-.19924400000000003},{x:.08568306449072577,y:-.1983793376181454},{x:.09412475445642904,y:-.19581857896300794},{x:.1019046604858821,y:-.19166013255361458},{x:.10872380515339464,y:-.18606380515339468},{x:.11432013255361453,y:-.17924466048588214},{x:.1184785789630079,y:-.17146475445642909},{x:.12103933761814537,y:-.16302306449072582},{x:.121904,y:-.15424400000000005},{x:.121904,y:.08461372659928788},{x:.12362832174470662,y:.08333438131496537},{x:.12536021772829115,y:.08178035235824195},{x:.1271620685101291,y:.08071254912256186},{x:.12884414120453105,y:.07946455014784792},{x:.13094744853162613,y:.07846927732892851},{x:.13294924262910485,y:.07728298474798974},{x:.20690724262910487,y:.04275398474798971},{x:.20784573679964677,y:.04242345923251374},{x:.20872324554357097,y:.041954421036992075},{x:.21199903754957586,y:.040960720395783044},{x:.21522783943974558,y:.03982357810698025},{x:.21621278303720604,y:.03968249467654502},{x:.21716493550927424,y:.0393936623818546},{x:.22057164546850772,y:.03905813073713887},{x:.2239602522910248,y:.038572746319036566},{x:.22495379448531613,y:.03862652673075318},{x:.225944,y:.038528999999999966},{x:.338005,y:.038528999999999966},{x:.33886621477794643,y:.03861382225207184},{x:.3397300481447032,y:.038562076501738984},{x:.34324908380057223,y:.0390454971728409},{x:.3467840644907258,y:.0393936623818546},{x:.3476121832677305,y:.039644869466491955},{x:.3484695134136621,y:.03976264352593092},{x:.35182662109175783,y:.04092330520367998},{x:.35522575445642907,y:.04195442103699206},{x:.3559889530923063,y:.042362359206810904},{x:.35680683330070073,y:.04264512708496585},{x:.4318888333007007,y:.07717412708496588},{x:.43400924312431544,y:.07841428389434572},{x:.43622962614931016,y:.07946501028796468},{x:.4378075563324746,y:.08063579029221077},{x:.43950360927818305,y:.0816277549521855},{x:.44134133343031445,y:.08325775393151234},{x:.4433140658676044,y:.08472146615145025},{x:.5183930658676044,y:.1527974661514503},{x:.519792625068414,y:.15434228537837358},{x:.5213447099268285,y:.1557337827706549},{x:.522746916505161,y:.1576032022519019},{x:.5243158963961404,y:.15933502631539204},{x:.52538718417891,y:.1611232027292085},{x:.5266379784876352,y:.1627907596241023},{x:.5276485364111687,y:.16489781566710873},{x:.5288495066792682,y:.16690245600899573},{x:.5295513540552914,y:.16886527099294393},{x:.530452790490496,y:.17074480411415546},{x:.5674347904904959,y:.2723648041141554},{x:.5682868803844835,y:.2756900562357905},{x:.5692833376181453,y:.27897493550927416},{x:.5693799285821196,y:.2799556400244087},{x:.5696245448495124,y:.2809102467717411},{x:.5698115375679212,y:.2843378395980749},{x:.570148,y:.28775399999999995},{x:.570148,y:.355831},{x:.5698183264321395,y:.3591782319067787},{x:.5696454905753794,y:.362537215959393},{x:.5693867528695432,y:.3635600718226051},{x:.5692833376181453,y:.3646100644907258},{x:.5683069860848939,y:.3678286641524751},{x:.567482165940186,y:.37108938766543825},{x:.530500165940186,y:.47369538766543823},{x:.5295747233109523,y:.4756403735939819},{x:.5288495066792682,y:.4776685439910043},{x:.5276841925618525,y:.47961366765708685},{x:.5267099630491849,y:.4816611880905031},{x:.5254228546094585,y:.48338825675926556},{x:.5243158963961404,y:.48523597368460797},{x:.5227934986603558,y:.48691638083844907},{x:.5214385372739072,y:.48873449599152474},{x:.5198392258792078,y:.49017727712011666},{x:.5183930658676044,y:.4917735338485497},{x:.4433140658676044,y:.5598495338485497},{x:.44114571117720175,y:.5614583923016819},{x:.43910641435493325,y:.5632279843609703},{x:.43761161896162687,y:.5640805897495177},{x:.43622962614931016,y:.5651059897120353},{x:.43378906307257026,y:.5662609093863238},{x:.43144372048223223,y:.5675986521566495},{x:.35636172048223225,y:.6011446521566495},{x:.355773047491519,y:.6013410447411239},{x:.35522575445642907,y:.6016335789630078},{x:.3515938477815883,y:.6027353058079922},{x:.3479935881359665,y:.6039364213810477},{x:.34737791203915763,y:.6040141959337602},{x:.3467840644907258,y:.6041943376181453},{x:.34300700763927916,y:.6045663452480041},{x:.3392415999493003,y:.6050420059085138},{x:.33862258083352115,y:.60499817359702},{x:.338005,y:.605059},{x:.225944,y:.605059},{x:.2251997336627212,y:.6049856961639699},{x:.22445344765540867,y:.6050343071552383},{x:.22081614914993766,y:.6045539507735711},{x:.21716493550927424,y:.6041943376181453},{x:.21644927090994795,y:.6039772431353645},{x:.21570784104506457,y:.6038793269025836},{x:.2122341450916469,y:.6026985986973952},{x:.20872324554357097,y:.6016335789630078},{x:.20806368527139987,y:.6012810366527016},{x:.20735560428285457,y:.6010403560617851},{x:.13339760428285458,y:.5674943560617851},{x:.13116986982932302,y:.566206971138138},{x:.12884414120453105,y:.5651064498521521},{x:.1273598902040749,y:.5640052229355318},{x:.12575970914356202,y:.5630804946901414},{x:.12382593632220404,y:.5613832370749092},{x:.121904,y:.5599572734007121},{x:.121904,y:.560059},{x:.12103933761814537,y:.5688380644907257},{x:.1184785789630079,y:.577279754456429},{x:.11432013255361453,y:.5850596604858821},{x:.10872380515339464,y:.5918788051533946},{x:.10190466048588208,y:.5974751325536145},{x:.09412475445642904,y:.6016335789630078},{x:.08568306449072577,y:.6041943376181453},{x:.076904,y:.605059},{x:.0681249355092742,y:.6041943376181453},{x:.059683245543570934,y:.6016335789630078},{x:.051903339514117915,y:.5974751325536145},{x:.04508419484660536,y:.5918788051533946},{x:.03948786744638546,y:.5850596604858821},{x:.0353294210369921,y:.577279754456429},{x:.032768662381854635,y:.5688380644907257},{x:.031904,y:.560059},{x:.031904,y:-.15424400000000005}],[{x:.121904,y:.20607608160839302},{x:.121904,y:.438494918391607},{x:.17699192809119763,y:.48844251958412144},{x:.23567259519301437,y:.5150589999999999},{x:.3284092961747297,y:.5150589999999999},{x:.38817711429028284,y:.4883552464171925},{x:.4496333594179428,y:.43263133769024387},{x:.48014799999999996,y:.3479689286382035},{x:.48014799999999996,y:.29568777567179994},{x:.44968806913177495,y:.21198926897045803},{x:.3879916447872207,y:.1560475837631447},{x:.32815352882369925,y:.12852899999999995},{x:.2359312215606538,y:.12852899999999995},{x:.17717907548697515,y:.15595879598931894},{x:.121904,y:.20607608160839302}]],q:[[{x:.031905,y:.285813},{x:.03224141038262204,y:.2823973680650777},{x:.0324282929389951,y:.2789703010434802},{x:.03267301908894614,y:.2780151713289937},{x:.032769662381854636,y:.2770339355092742},{x:.03376596546737772,y:.2737495643941025},{x:.03461784473664685,y:.27042480648246636},{x:.07159784473664685,y:.1688028064824664},{x:.0724995244823713,y:.166922651750872},{x:.0732016076706368,y:.1649592141085361},{x:.07440224792307432,y:.1629551516523985},{x:.07541246819615938,y:.16084867156853302},{x:.07666362241043057,y:.15918055247485355},{x:.0777352629490018,y:.15739181137154173},{x:.07930380642556048,y:.15566048970702676},{x:.08070556947724908,y:.15379156924569237},{x:.08225811700526783,y:.15239959067120604},{x:.08365813234923056,y:.15085428642438087},{x:.15873913234923054,y:.08277728642438094},{x:.16071062555900373,y:.0813145118522212},{x:.16254708404197357,y:.07968542770293169},{x:.16424441690754124,y:.07869257021816739},{x:.16582360332185575,y:.07752087268448676},{x:.16804258800473576,y:.07647082416071167},{x:.17016157800418052,y:.07523131768336211},{x:.24523757800418056,y:.0406993176833621},{x:.24605678866737324,y:.04041603175027397},{x:.24682124554357093,y:.04000742103699214},{x:.2502190216384501,y:.03897671692697023},{x:.2535747153580455,y:.03781630621794852},{x:.25443345146196317,y:.037698283616711674},{x:.2552629355092742,y:.03744666238185468},{x:.25879650468596477,y:.037098636194782805},{x:.2623141045905799,y:.03661518582049534},{x:.2631793653883337,y:.03666696209348752},{x:.264042,y:.036582000000000045},{x:.376106,y:.036582000000000045},{x:.3770966034546813,y:.036679565924422064},{x:.37809054588497415,y:.03662578154659327},{x:.38147875036256007,y:.037111169723096304},{x:.3848850644907258,y:.03744666238185468},{x:.3858375996101805,y:.03773561075136079},{x:.38682293652697,y:.03787676837406198},{x:.39005134306992567,y:.03901383585544661},{x:.39332675445642906,y:.04000742103699214},{x:.39420461585020444,y:.04047664772778637},{x:.3951434813083616,y:.04080732274273922},{x:.4691044813083616,y:.07533932274273922},{x:.47110618065167786,y:.07652560719175487},{x:.47320939667814427,y:.07752087268448679},{x:.4748915208069018,y:.0787689461703934},{x:.4766934263594154,y:.07983682509171056},{x:.47842523099597173,y:.08139082758714347},{x:.48014799999999996,y:.08266905805748193},{x:.48014799999999996,y:-.15619500000000008},{x:.4810126623818546,y:-.16497406449072585},{x:.483573421036992,y:-.17341575445642912},{x:.4877318674463854,y:-.18119566048588218},{x:.4933281948466053,y:-.18801480515339472},{x:.5001473395141178,y:-.19361113255361462},{x:.5079272455435709,y:-.19776957896300798},{x:.5163689355092742,y:-.20033033761814545},{x:.525148,y:-.20119500000000007},{x:.5339270644907257,y:-.20033033761814545},{x:.542368754456429,y:-.19776957896300798},{x:.5501486604858821,y:-.19361113255361462},{x:.5569678051533946,y:-.18801480515339472},{x:.5625641325536145,y:-.18119566048588218},{x:.5667225789630078,y:-.17341575445642912},{x:.5692833376181453,y:-.16497406449072585},{x:.570148,y:-.15619500000000008},{x:.570148,y:.5581050000000001},{x:.5692833376181453,y:.5668840644907258},{x:.5667225789630078,y:.5753257544564291},{x:.5625641325536145,y:.5831056604858822},{x:.5569678051533946,y:.5899248051533947},{x:.5501486604858821,y:.5955211325536146},{x:.542368754456429,y:.5996795789630079},{x:.5339270644907257,y:.6022403376181454},{x:.525148,y:.6031050000000001},{x:.5163689355092742,y:.6022403376181454},{x:.5079272455435709,y:.5996795789630079},{x:.5001473395141178,y:.5955211325536146},{x:.4933281948466053,y:.5899248051533947},{x:.4877318674463854,y:.5831056604858822},{x:.483573421036992,y:.5753257544564291},{x:.4810126623818546,y:.5668840644907258},{x:.48014799999999996,y:.5581050000000001},{x:.48014799999999996,y:.558005596763998},{x:.4782247267606458,y:.559432223348863},{x:.47629232280480055,y:.5611281889595863},{x:.4746904859851039,y:.5620538174856352},{x:.4732046002880372,y:.5631560030691136},{x:.4708804506539088,y:.5642554633364756},{x:.4686543108210992,y:.5655418481335316},{x:.3946933108210992,y:.5990868481335316},{x:.3939857884552202,y:.5993273179516839},{x:.39332675445642906,y:.5996795789630079},{x:.3898152875083263,y:.6007447708163117},{x:.38634099890642704,y:.6019255978665906},{x:.3856001580501581,y:.6020234163584227},{x:.3848850644907258,y:.6022403376181454},{x:.38123326077373504,y:.6026000088910167},{x:.3775953617236344,y:.6030803465985108},{x:.3768496724756141,y:.6030317546542387},{x:.376106,y:.6031050000000001},{x:.264042,y:.6031050000000001},{x:.26342400033164626,y:.6030441323453897},{x:.26280456058717394,y:.6030879828235033},{x:.25903957642572706,y:.602612304281983},{x:.2552629355092742,y:.6022403376181454},{x:.254668685221597,y:.6020600737641458},{x:.25405259303422617,y:.6019822349683996},{x:.25045275226756825,y:.6007811844842303},{x:.24682124554357093,y:.5996795789630079},{x:.24627358134186672,y:.5993868463484354},{x:.24568451278884912,y:.5991903095800973},{x:.17060851278884911,y:.5656453095800973},{x:.16826609518471405,y:.5643091772352096},{x:.16582839971196278,y:.5631560030691136},{x:.1644435861855132,y:.5621287897998347},{x:.16294590048199914,y:.5612744987855388},{x:.1609091582647261,y:.559507056844315},{x:.15874327554635076,y:.5579004698017108},{x:.08366227554635075,y:.4898404698017108},{x:.0822135909199537,y:.48824184486316324},{x:.08061175169940471,y:.4867967151276658},{x:.07925889408089541,y:.48498133393711457},{x:.07773859373239328,y:.48330368097737925},{x:.0766296214289207,y:.4814531488185024},{x:.0753404919252871,y:.4797232835162987},{x:.07436779238761855,y:.4776788549378484},{x:.07320399804016177,y:.47573684172476444},{x:.07247735524331753,y:.47370551725863386},{x:.07155047598047157,y:.4717573941431678},{x:.034570475980471575,y:.3691493941431678},{x:.03374586128764337,y:.36588916100716024},{x:.032769662381854636,y:.3626710644907258},{x:.032666195333495754,y:.36162054591923504},{x:.032407352052251925,y:.36059717166956007},{x:.03223462203187315,y:.35723870865311785},{x:.031905,y:.353892},{x:.031905,y:.285813}],[{x:.121905,y:.2937462257558374},{x:.121905,y:.3460304727958324},{x:.1524170009298456,y:.4306917867874386},{x:.21387346155335435,y:.48640130996954867},{x:.2736381428091649,y:.513105},{x:.36637802828147564,y:.513105},{x:.4250638403772601,y:.4864880590885319},{x:.48014799999999996,y:.4365549481293854},{x:.48014799999999996,y:.20413270643748072},{x:.4248733312055972,y:.15401438585682045},{x:.36611835928516706,y:.12658200000000003},{x:.27389496414813935,y:.12658200000000003},{x:.2140623112166411,y:.15410266134357853},{x:.15236330162501277,y:.21004602219345103},{x:.121905,y:.2937462257558374}]],r:[[{x:.062422000000000005,y:.03920400000000002},{x:.06328666238185464,y:.030424935509274227},{x:.0658474210369921,y:.02198324554357097},{x:.07000586744638546,y:.01420333951411792},{x:.07560219484660537,y:.00738419484660538},{x:.08242133951411793,y:.0017878674463854757},{x:.09020124554357097,y:-.002370578963007887},{x:.09864293550927423,y:-.004931337618145348},{x:.107422,y:-.005795999999999982},{x:.11620106449072577,y:-.004931337618145348},{x:.12464275445642904,y:-.002370578963007887},{x:.1324226604858821,y:.0017878674463854827},{x:.13924180515339463,y:.00738419484660538},{x:.14483813255361455,y:.01420333951411792},{x:.14899657896300791,y:.02198324554357098},{x:.15155733761814538,y:.030424935509274248},{x:.152422,y:.03920400000000002},{x:.152422,y:.3275398012121413},{x:.1925108808296549,y:.4204278633799401},{x:.27478075869941443,y:.4836647262821032},{x:.3576648607132649,y:.5150589999999999},{x:.49463,y:.5150589999999999},{x:.5034090644907258,y:.5159236623818546},{x:.511850754456429,y:.5184844210369921},{x:.5196306604858821,y:.5226428674463854},{x:.5264498051533947,y:.5282391948466053},{x:.5320461325536145,y:.5350583395141179},{x:.5362045789630079,y:.542838245543571},{x:.5387653376181454,y:.5512799355092742},{x:.53963,y:.560059},{x:.5387653376181454,y:.5688380644907257},{x:.5362045789630079,y:.577279754456429},{x:.5320461325536145,y:.5850596604858821},{x:.5264498051533947,y:.5918788051533946},{x:.5196306604858821,y:.5974751325536145},{x:.511850754456429,y:.6016335789630078},{x:.5034090644907258,y:.6041943376181453},{x:.49463,y:.605059},{x:.349428,y:.605059},{x:.34572095329292224,y:.6046938877675093},{x:.3420044651532413,y:.6044424555930356},{x:.34133700376168824,y:.6042621064259311},{x:.3406489355092742,y:.6041943376181453},{x:.33708434852821606,y:.6031130319790114},{x:.33348832364990477,y:.6021413801353276},{x:.23668632364990477,y:.5654753801353276},{x:.2347311434313091,y:.5645060813254815},{x:.23268939209293205,y:.5637356779621759},{x:.23078888495220712,y:.562551669954317},{x:.22878273496962892,y:.5615571024090896},{x:.2270542238076375,y:.5602249916656349},{x:.22520200238894322,y:.5590710654608507},{x:.152422,y:.5031286093364514},{x:.152422,y:.560059},{x:.15155733761814538,y:.5688380644907257},{x:.14899657896300791,y:.577279754456429},{x:.14483813255361455,y:.5850596604858821},{x:.13924180515339463,y:.5918788051533946},{x:.1324226604858821,y:.5974751325536145},{x:.12464275445642904,y:.6016335789630078},{x:.11620106449072577,y:.6041943376181453},{x:.107422,y:.605059},{x:.09864293550927423,y:.6041943376181453},{x:.09020124554357094,y:.6016335789630078},{x:.08242133951411793,y:.5974751325536145},{x:.07560219484660537,y:.5918788051533946},{x:.07000586744638546,y:.5850596604858821},{x:.0658474210369921,y:.577279754456429},{x:.06328666238185464,y:.5688380644907257},{x:.062422000000000005,y:.560059},{x:.062422000000000005,y:.03920400000000002}]],s:[[{x:.056563,y:.369888},{x:.056809270227573656,y:.3673875764180495},{x:.05684306423764694,y:.36487528163458033},{x:.05724057756471223,y:.36300843953465567},{x:.057427662381854636,y:.3611089355092742},{x:.05815700903783985,y:.3587046018033244},{x:.05868027810379197,y:.35624717294397146},{x:.05943435615016931,y:.3544937526945111},{x:.0599884210369921,y:.352667245543571},{x:.06117281573842168,y:.3504513989095756},{x:.06216545092350078,y:.34814327358726177},{x:.06324711489275962,y:.3465706581451233},{x:.06414686744638545,y:.3448873395141179},{x:.06574079456909979,y:.3429451336955602},{x:.0671646494598194,y:.3408750118720105},{x:.06853233161222538,y:.3395436359667022},{x:.06974319484660536,y:.33806819484660533},{x:.07168540066516299,y:.33647426772389105},{x:.07348575731657993,y:.3347217030198468},{x:.07508689839402109,y:.33368273068076537},{x:.07656233951411792,y:.33247186744638546},{x:.07877818614811302,y:.331287472744956},{x:.08088585786376518,y:.3299198152391437},{x:.15568385786376518,y:.29122381523914376},{x:.1574569269125657,y:.29051717359061785},{x:.15914024554357095,y:.2896174210369921},{x:.16154457924952065,y:.28888807438100694},{x:.16387856938737105,y:.2879578823843842},{x:.16575542835833412,y:.2876107272686775},{x:.16758193550927422,y:.2870566623818547},{x:.17008235909122482,y:.286810392154281},{x:.17255297371919248,y:.2863534124236203},{x:.17446149597461844,y:.28637908481714247},{x:.176361,y:.28619200000000006},{x:.288347309340128,y:.28619200000000006},{x:.3974525128623667,y:.21942256309828728},{x:.45549,y:.1602321160680505},{x:.45549,y:.13007078589845048},{x:.407404042616179,y:.10590438131127383},{x:.31753214348357883,y:.07103500000000003},{x:.21224543978224936,y:.07103500000000003},{x:.16354378174687056,y:.09622932957230687},{x:.14433666195924297,y:.15500005013212306},{x:.1407876006468136,y:.16307617408904287},{x:.13573115992893667,y:.17030473007440486},{x:.12936165598671553,y:.1764079287355125},{x:.12192386528459082,y:.18115122757053267},{x:.11370361794808405,y:.18435234426530817},{x:.10501681347236942,y:.18588826170046568},{x:.09619728088183255,y:.18569995543032455},{x:.08758394986787689,y:.1837946619592429},{x:.07950782591095708,y:.18024560064681355},{x:.07227926992559508,y:.1751891599289366},{x:.06617607126448745,y:.1688196559867155},{x:.06143277242946728,y:.16138186528459075},{x:.05823165573469179,y:.153161617948084},{x:.05669573829953427,y:.14447481347236937},{x:.0568840445696754,y:.1356552808818325},{x:.05878933804075704,y:.12704194986787684},{x:.08372233804075704,y:.050750949867876836},{x:.08542587043333498,y:.04687444913825993},{x:.08709879890390285,y:.042984643121031924},{x:.08719974017890864,y:.04283789110571456},{x:.0872713993531864,y:.04267482591095703},{x:.0896984666241539,y:.03920515373890898},{x:.0920981137517354,y:.03571646140762123},{x:.09222574536637099,y:.03559222185697407},{x:.09232784007106334,y:.035446269925595034},{x:.09538517138631239,y:.032516763866873036},{x:.0984193200775319,y:.02956325371133576},{x:.09856873722042347,y:.029466301081615798},{x:.09869734401328446,y:.029343071264487396},{x:.10226744784494098,y:.027066310594042624},{x:.10581949746716537,y:.024761484353185106},{x:.18061849746716538,y:-.013933515646814817},{x:.1823912439162618,y:-.014639995851387814},{x:.18407424554357094,y:-.01553957896300786},{x:.18647892276401756,y:-.016269029822976466},{x:.18881326125361947,y:-.017199317363260178},{x:.19068977232738848,y:-.017546377073194466},{x:.1925159355092742,y:-.018100337618145335},{x:.19501671633437545,y:-.018346643031098245},{x:.19748769126025723,y:-.018803648509519946},{x:.19939585369049342,y:-.018777950414796084},{x:.201295,y:-.018964999999999968},{x:.325956,y:-.018964999999999968},{x:.3298421413721484,y:-.018582248482612737},{x:.33373593654739714,y:-.01828737118339306},{x:.334227355251249,y:-.018150342613638803},{x:.3347350644907258,y:-.018100337618145335},{x:.33847186362931597,y:-.016966791992147238},{x:.34223331291484477,y:-.015917938922943478},{x:.44196531291484475,y:.022777061077056446},{x:.44388622686678575,y:.02374867869889352},{x:.4458951331158935,y:.02452214291663178},{x:.5206971331158935,y:.06211514291663188},{x:.5230429253028388,y:.06359852573319036},{x:.5254906604858821,y:.06490686744638552},{x:.526762463529903,y:.06595060923072474},{x:.5281530225051898,y:.06682994172267823},{x:.5301643473216751,y:.06874246310749585},{x:.5323098051533947,y:.07050319484660542},{x:.5333535469377338,y:.07177499789062616},{x:.5345458374532134,y:.07290871885358566},{x:.536145400814505,y:.07517688168239829},{x:.5379061325536145,y:.07732233951411796},{x:.538681702666837,y:.0787733291400739},{x:.5396299056666436,y:.08011787031323085},{x:.5407562372498129,y:.08265451036052812},{x:.5420645789630079,y:.08510224554357101},{x:.5425421726806072,y:.08667666103386074},{x:.5432098492552168,y:.08818035245395842},{x:.5438196647691762,y:.09088798806528645},{x:.5446253376181454,y:.09354393550927428},{x:.5447866012813922,y:.09518127295954937},{x:.5451480929944793,y:.09678632860859225},{x:.545217957571016,y:.09956090686586556},{x:.54549,y:.10232300000000005},{x:.54549,y:.17861300000000002},{x:.5450792542455133,y:.1827833716312913},{x:.5447095428008049,y:.18695758114513777},{x:.5446471218945653,y:.18717088502046353},{x:.5446253376181454,y:.1873920644907258},{x:.5434088850836819,y:.19140217107899518},{x:.5422319296624953,y:.19542404720269643},{x:.5421290946347417,y:.1956210747891699},{x:.5420645789630079,y:.19583375445642906},{x:.5400891672372728,y:.199529489854385},{x:.5381501975764,y:.20324447414399938},{x:.5380109003195782,y:.20341765378196683},{x:.5379061325536145,y:.20361366048588211},{x:.5352476756014034,y:.20685299965477524},{x:.5326212052175259,y:.21011832734743824},{x:.45781920521752584,y:.28640632734743826},{x:.45695946559173245,y:.28712616331644525},{x:.45621413415776596,y:.2879638966272176},{x:.45358375241990234,y:.28995255364350675},{x:.45105542866152953,y:.29206944848930627},{x:.4500717756605794,y:.29260772613156716},{x:.4491773318997613,y:.2932839556822147},{x:.3245133318997613,y:.3695749556822147},{x:.3213472249094816,y:.3711082739568931},{x:.3182447544564291,y:.37276657896300797},{x:.31738368821196916,y:.37302778055263114},{x:.3165738477898179,y:.3734199792757539},{x:.31316944110160955,y:.3743061584374605},{x:.3098030644907258,y:.3753273376181454},{x:.3089075854904768,y:.3754155346015568},{x:.3080367917497669,y:.3756422053074494},{x:.30452491480344407,y:.37584718998797495},{x:.301024,y:.376192},{x:.18731182116617404,y:.376192},{x:.146563,y:.397272996602132},{x:.146563,y:.42779681790574337},{x:.20153437253410483,y:.48386323770148376},{x:.2842918489876165,y:.5150589999999999},{x:.39008456648169626,y:.5150589999999999},{x:.4553477907191711,y:.4822576837794137},{x:.4635801440629335,y:.47908783003036465},{x:.47227272283422006,y:.4775849365970516},{x:.4810914761057044,y:.47780675883128426},{x:.48969750413477736,y:.47974477222900047},{x:.4977600820905977,y:.48332450002217653},{x:.5049693696238691,y:.488408375279255},{x:.5110483178577028,y:.4948010275251766},{x:.5157633162205862,y:.5022567907191711},{x:.5189331699696352,y:.5104891440629334},{x:.5204360634029483,y:.51918172283422},{x:.5202142411687157,y:.5280004761057044},{x:.5182762277709995,y:.5366065041347774},{x:.5146964999778234,y:.5446690820905977},{x:.509612624720745,y:.551878369623869},{x:.5032199724748234,y:.5579573178577029},{x:.49576420928082887,y:.5626723162205862},{x:.42096520928082887,y:.6002663162205862},{x:.41942927464851043,y:.6008577252562829},{x:.41797775445642904,y:.6016335789630078},{x:.4153223812886681,y:.6024390776071881},{x:.41273285593706643,y:.6034361699696352},{x:.41111105567880996,y:.6037165692645292},{x:.40953606449072577,y:.6041943376181453},{x:.40677456858393113,y:.6044663212253706},{x:.4040402771657799,y:.6049390634029483},{x:.4023949361559939,y:.6048976773693867},{x:.400757,y:.605059},{x:.276092,y:.605059},{x:.2724204350331364,y:.6046973824138966},{x:.26873912724910987,y:.6044542166602351},{x:.2680367190736708,y:.6042656240771296},{x:.2673129355092742,y:.6041943376181453},{x:.2637824667250502,y:.6031233816208718},{x:.26021933352302795,y:.6021667007079561},{x:.1604883335230279,y:.5645727007079561},{x:.15963695838633216,y:.5641523105976027},{x:.15873109713512196,y:.563867735718488},{x:.15568848233041307,y:.5622026409240001},{x:.1525785174681621,y:.5606670094317409},{x:.15182551530799093,y:.5600886019499048},{x:.15099257773152036,y:.559632770334096},{x:.14833326979676884,y:.5574060851671644},{x:.1455826488796249,y:.5552932363569977},{x:.14495695714670492,y:.554579039378831},{x:.14422895256892138,y:.5539694683796904},{x:.06943095256892137,y:.47768146837969044},{x:.06680494464711424,y:.4744165369262552},{x:.06414686744638545,y:.4711776604858821},{x:.0640418150384659,y:.470981121254323},{x:.0639021439692389,y:.47080746737336276},{x:.06196355058191934,y:.4670929619312254},{x:.0599884210369921,y:.46339775445642906},{x:.05992373008360734,y:.46318449696300446},{x:.05982062094636722,y:.462986931318802},{x:.05864394115023422,y:.4589655982489849},{x:.057427662381854636,y:.45495606449072584},{x:.05740581892006417,y:.454734284101312},{x:.05734323414113077,y:.4545203990307778},{x:.05697368708086039,y:.4503467759079653},{x:.056563,y:.44617700000000005},{x:.056563,y:.369888}]],t:[[{x:.036055000000000004,y:.484201},{x:.03691966238185464,y:.4754219355092742},{x:.0394804210369921,y:.466980245543571},{x:.04363886744638546,y:.4592003395141179},{x:.049235194846605365,y:.45238119484660533},{x:.05605433951411792,y:.44678486744638546},{x:.06383424554357096,y:.44262642103699207},{x:.07227593550927423,y:.4400656623818546},{x:.081055,y:.439201},{x:.201032,y:.439201},{x:.201032,y:.17345100000000002},{x:.2013458215844704,y:.17026471598156256},{x:.20148726326025637,y:.1670661406603643},{x:.20177732050748418,y:.165883633894134},{x:.20189666238185464,y:.16467193550927425},{x:.20282606714776777,y:.16160809859877695},{x:.20358880215081968,y:.15849857690755997},{x:.20410398165518515,y:.15739537903902878},{x:.2044574210369921,y:.15623024554357098},{x:.20596669248041014,y:.15340659727526443},{x:.20732140933230742,y:.15050562638878262},{x:.2623124093323074,y:.05773162638878261},{x:.2645408071528226,y:.05469603003381387},{x:.2666808493837164,y:.051597510818645845},{x:.2671477670132535,y:.051144744093296994},{x:.26753264280400524,y:.05062045370997057},{x:.2703104380556505,y:.04807792433615628},{x:.27301385108661325,y:.04545644382682572},{x:.2735601274310704,y:.04510346799784869},{x:.2740398919211364,y:.04466433724917905},{x:.27726033549019774,y:.04271258283448707},{x:.28042322867453984,y:.040668883056825214},{x:.28102787064035484,y:.04042926278737637},{x:.28158408674943697,y:.04009216722176761},{x:.28512341879560005,y:.038806192593798694},{x:.288624243922019,y:.03741881178414046},{x:.39861224392201905,y:.005893811784140432},{x:.4004470188387682,y:.005558110934368086},{x:.4022319355092743,y:.0050166623818546086},{x:.4047755505163489,y:.004766138170207483},{x:.4072897364122725,y:.0043061284251197166},{x:.4091547486303562,y:.0043348248023798485},{x:.411011,y:.004151999999999975},{x:.520997,y:.004151999999999975},{x:.5297760644907258,y:.0050166623818546086},{x:.538217754456429,y:.00757742103699207},{x:.5459976604858822,y:.011735867446385433},{x:.5528168051533947,y:.017332194846605337},{x:.5584131325536146,y:.02415133951411788},{x:.5625715789630079,y:.031931245543570935},{x:.5651323376181454,y:.040372935509274205},{x:.5659970000000001,y:.049151999999999973},{x:.5651323376181454,y:.05793106449072574},{x:.5625715789630079,y:.06637275445642901},{x:.5584131325536146,y:.07415266048588207},{x:.5528168051533947,y:.08097180515339461},{x:.5459976604858822,y:.08656813255361451},{x:.538217754456429,y:.09072657896300787},{x:.5297760644907258,y:.09328733761814534},{x:.520997,y:.09415199999999997},{x:.41733272532416527,y:.09415199999999997},{x:.33061421916568134,y:.11900744701827656},{x:.291032,y:.1857856616511605},{x:.291032,y:.439201},{x:.466004,y:.439201},{x:.47478306449072577,y:.4400656623818546},{x:.48322475445642904,y:.44262642103699207},{x:.4910046604858821,y:.44678486744638546},{x:.49782380515339464,y:.45238119484660533},{x:.5034201325536145,y:.4592003395141179},{x:.5075785789630078,y:.466980245543571},{x:.5101393376181453,y:.4754219355092742},{x:.511004,y:.484201},{x:.5101393376181453,y:.4929800644907258},{x:.5075785789630078,y:.501421754456429},{x:.5034201325536145,y:.5092016604858821},{x:.49782380515339464,y:.5160208051533947},{x:.4910046604858821,y:.5216171325536145},{x:.48322475445642904,y:.5257755789630079},{x:.47478306449072577,y:.5283363376181454},{x:.466004,y:.529201},{x:.291032,y:.529201},{x:.291032,y:.702148},{x:.2901673376181454,y:.7109270644907257},{x:.2876065789630079,y:.719368754456429},{x:.28344813255361456,y:.7271486604858821},{x:.27785180515339464,y:.7339678051533947},{x:.2710326604858821,y:.7395641325536145},{x:.26325275445642904,y:.7437225789630079},{x:.25481106449072577,y:.7462833376181454},{x:.246032,y:.747148},{x:.23725293550927423,y:.7462833376181454},{x:.22881124554357096,y:.7437225789630079},{x:.2210313395141179,y:.7395641325536145},{x:.21421219484660536,y:.7339678051533947},{x:.20861586744638547,y:.7271486604858821},{x:.2044574210369921,y:.719368754456429},{x:.20189666238185464,y:.7109270644907257},{x:.201032,y:.702148},{x:.201032,y:.529201},{x:.081055,y:.529201},{x:.07227593550927423,y:.5283363376181454},{x:.06383424554357094,y:.5257755789630079},{x:.05605433951411792,y:.5216171325536145},{x:.049235194846605365,y:.5160208051533947},{x:.04363886744638546,y:.5092016604858821},{x:.0394804210369921,y:.501421754456429},{x:.03691966238185464,y:.4929800644907258},{x:.036055000000000004,y:.484201}]],u:[[{x:.047041,y:.17386599999999997},{x:.04733731084809023,y:.17085750547164297},{x:.04744678100255899,y:.1678364368310572},{x:.0477687404511641,y:.16647712720137547},{x:.04790566238185463,y:.1650869355092742},{x:.048783207866406234,y:.16219405573845885},{x:.04947995583647738,y:.15925239265237093},{x:.08761895583647737,y:.04817539265237096},{x:.08938287590080696,y:.04431825367483454},{x:.09111755940033861,y:.04044787795123246},{x:.0912166047918106,y:.04030846472648272},{x:.0912877277290914,y:.04015294120864865},{x:.09377024504918263,y:.03671403980837168},{x:.09622666993792225,y:.03325645223155292},{x:.09635101037087945,y:.03313904059014135},{x:.09645110783403886,y:.03300038080982997},{x:.09955682066149267,y:.030111872039067004},{x:.10264058790854466,y:.027199945760571206},{x:.10278544504987946,y:.027109047766032002},{x:.10291067034954356,y:.026992580340839414},{x:.10652022788210418,y:.024765467971757132},{x:.11011283004156149,y:.02251110668543916},{x:.1858688300415615,y:-.015231893314560811},{x:.1873332068933575,y:-.0157898639141544},{x:.18871524554357097,y:-.01652857896300789},{x:.19144581156206075,y:-.017356887109087667},{x:.19411224226228255,y:-.018372875537717062},{x:.1956573361874375,y:-.018634439137126358},{x:.19715693550927424,y:-.019089337618145352},{x:.1999966293703256,y:-.019369023051625026},{x:.20281003486202434,y:-.01984529472354478},{x:.2043764687674932,y:-.01980039958033106},{x:.205936,y:-.019953999999999986},{x:.319832,y:-.019953999999999986},{x:.32132997950952447,y:-.01980646189590665},{x:.3228344649392302,y:-.019853723877644197},{x:.3257100002545037,y:-.019375067506000147},{x:.3286110644907258,y:-.019089337618145352},{x:.3300514774877758,y:-.018652393112465325},{x:.33153627500704863,y:-.018405236421526333},{x:.3342631764918695,y:-.017374788187221168},{x:.33705275445642907,y:-.01652857896300789},{x:.3383802466773209,y:-.015819019588053155},{x:.3397882963501792,y:-.015286942317463331},{x:.4160692963501792,y:.02245605768253664},{x:.4183042276197719,y:.02384992521458428},{x:.42064256487504254,y:.025062345668598177},{x:.4220380841989542,y:.02617863282445781},{x:.4235544084161923,y:.027124324140885128},{x:.42547446604244665,y:.028927422360218155},{x:.42753134130624215,y:.03057273346328787},{x:.465011,y:.06712410441560081},{x:.465011,y:.025046000000000013},{x:.4658756623818546,y:.016266935509274223},{x:.46843642103699207,y:.007825245543570968},{x:.47259486744638546,y:45339514117916785e-21},{x:.4781911948466053,y:-.006773805153394624},{x:.4850103395141179,y:-.012370132553614528},{x:.492790245543571,y:-.01652857896300789},{x:.5012319355092743,y:-.019089337618145352},{x:.510011,y:-.019953999999999986},{x:.5187900644907257,y:-.019089337618145352},{x:.527231754456429,y:-.01652857896300789},{x:.5350116604858821,y:-.012370132553614521},{x:.5418308051533947,y:-.006773805153394624},{x:.5474271325536145,y:45339514117916785e-21},{x:.5515855789630079,y:.007825245543570974},{x:.5541463376181454,y:.016266935509274244},{x:.555011,y:.025046000000000013},{x:.555011,y:.545898},{x:.5541463376181454,y:.5546770644907257},{x:.5515855789630079,y:.563118754456429},{x:.5474271325536145,y:.5708986604858821},{x:.5418308051533947,y:.5777178051533947},{x:.5350116604858821,y:.5833141325536145},{x:.527231754456429,y:.5874725789630079},{x:.5187900644907257,y:.5900333376181454},{x:.510011,y:.590898},{x:.5012319355092743,y:.5900333376181454},{x:.492790245543571,y:.5874725789630079},{x:.4850103395141179,y:.5833141325536145},{x:.4781911948466053,y:.5777178051533947},{x:.47259486744638546,y:.5708986604858821},{x:.46843642103699207,y:.563118754456429},{x:.4658756623818546,y:.5546770644907257},{x:.465011,y:.545898},{x:.465011,y:.19283699530520199},{x:.36978450462305706,y:.099969048308901},{x:.30930812362389754,y:.07004600000000001},{x:.2165251763155874,y:.07004600000000001},{x:.16675256431883717,y:.09484360935890679},{x:.137041,y:.18137632992954258},{x:.137041,y:.545898},{x:.13617633761814535,y:.5546770644907257},{x:.1336155789630079,y:.563118754456429},{x:.12945713255361452,y:.5708986604858821},{x:.12386080515339463,y:.5777178051533947},{x:.11704166048588208,y:.5833141325536145},{x:.10926175445642904,y:.5874725789630079},{x:.10082006449072577,y:.5900333376181454},{x:.092041,y:.590898},{x:.08326193550927423,y:.5900333376181454},{x:.07482024554357093,y:.5874725789630079},{x:.06704033951411792,y:.5833141325536145},{x:.06022119484660536,y:.5777178051533947},{x:.05462486744638546,y:.5708986604858821},{x:.050466421036992094,y:.563118754456429},{x:.04790566238185463,y:.5546770644907257},{x:.047041,y:.545898},{x:.047041,y:.17386599999999997}]],v:[[{x:.003930906419490336,y:.5438334563092145},{x:.005386967221411215,y:.5351329102741644},{x:.00851244255100142,y:.5268836061622384},{x:.26071044255100145,y:.018289606162238365},{x:.26144011887972296,y:.017121905714788027},{x:.2620056398700735,y:.01586646241095203},{x:.26377267234206975,y:.013389122267562115},{x:.26538522214413157,y:.010808560104194675},{x:.26632868500311185,y:.009805649483352854},{x:.267128264504625,y:.008684656842684199},{x:.2693446490294707,y:.006599649029470163},{x:.2714296568426842,y:.00438326450462502},{x:.27255064948335267,y:.0035836850031119977},{x:.2735535601041947,y:.0026402221441315446},{x:.27613412226756273,y:.0010276723420693272},{x:.278611462410952,y:-.0007393601299264599},{x:.2798669057147878,y:-.0013048811202769175},{x:.28103460616223835,y:-.0020345574489985807},{x:.28388017640738666,y:-.0031126798553442526},{x:.2866546460885495,y:-.00436245420755494},{x:.28799629407344673,y:-.00467218403223142},{x:.2892839102741644,y:-.005160032778588779},{x:.2922851349323858,y:-.00566229614975999},{x:.29525011283741587,y:-.006346784254711718},{x:.2966264067237199,y:-.006388820170250395},{x:.2979844563092145,y:-.006616093580509658},{x:.301026,y:-.00652319621682493},{x:.30406754369078554,y:-.006616093580509658},{x:.3054255932762801,y:-.006388820170250395},{x:.30680188716258416,y:-.006346784254711718},{x:.30976686506761425,y:-.005662296149759988},{x:.31276808972583564,y:-.005160032778588779},{x:.3140557059265533,y:-.00467218403223142},{x:.3153973539114505,y:-.00436245420755494},{x:.3181718235926135,y:-.0031126798553442175},{x:.3210173938377617,y:-.0020345574489985807},{x:.32218509428521225,y:-.0013048811202769192},{x:.323440537589048,y:-.0007393601299264599},{x:.32591787773243747,y:.0010276723420694187},{x:.32849843989580535,y:.0026402221441315446},{x:.32950135051664736,y:.0035836850031119635},{x:.3306223431573158,y:.00438326450462502},{x:.3327073509705293,y:.006599649029470129},{x:.334923735495375,y:.008684656842684203},{x:.33572331499688823,y:.009805649483352899},{x:.33666677785586846,y:.01080856010419469},{x:.3382793276579303,y:.013389122267562135},{x:.3400463601299265,y:.01586646241095204},{x:.34061188112027707,y:.017121905714788034},{x:.3413415574489986,y:.018289606162238365},{x:.5935395574489987,y:.5268836061622384},{x:.5966650327785888,y:.5351329102741644},{x:.5981210935805097,y:.5438334563092145},{x:.5978517842547117,y:.5526508871625841},{x:.595867454207555,y:.5612463539114505},{x:.5922443601299265,y:.569289537589048},{x:.587121735495375,y:.5764713431573159},{x:.5806964398958053,y:.5825157778558685},{x:.5732153938377617,y:.5871905574489986},{x:.5649660897258356,y:.5903160327785888},{x:.5562655436907855,y:.5917720935805096},{x:.5474481128374159,y:.5915027842547117},{x:.5388526460885495,y:.589518454207555},{x:.5308094624109521,y:.5858953601299265},{x:.5236276568426842,y:.580772735495375},{x:.5175832221441315,y:.5743474398958054},{x:.5129084425510014,y:.5668663938377616},{x:.301026,y:.13957458745236595},{x:.08914355744899859,y:.5668663938377616},{x:.08446877785586845,y:.5743474398958054},{x:.07842434315731579,y:.580772735495375},{x:.07124253758904797,y:.5858953601299265},{x:.06319935391145051,y:.589518454207555},{x:.054603887162584124,y:.5915027842547117},{x:.04578645630921451,y:.5917720935805096},{x:.037085910274164385,y:.5903160327785888},{x:.028836606162238352,y:.5871905574489986},{x:.02135556010419467,y:.5825157778558685},{x:.014930264504625007,y:.5764713431573159},{x:.009807639870073534,y:.569289537589048},{x:.006184545792445054,y:.5612463539114505},{x:.004200215745288276,y:.5526508871625841},{x:.003930906419490336,y:.5438334563092145}]],w:[[{x:-.04481226541001698,y:.5427688011711321},{x:-.0431501306438814,y:.534105261341125},{x:.1073618693561186,y:.025511261341124997},{x:.10747750697825527,y:.02522662926113043},{x:.10753949092041715,y:.02492572151525217},{x:.1091366577408943,y:.021142772088450095},{x:.11068223944402648,y:.01733845540642648},{x:.11085118408582124,y:.017081852232977028},{x:.1109706812129555,y:.01679881881229654},{x:.11327517574267339,y:.0134001494872997},{x:.11553324489331337,y:.009970459715744673},{x:.11574900410692728,y:.009751746564891355},{x:.11592142221145292,y:.009497464285038355},{x:.11884468401801046,y:.006613684018010047},{x:.12172846428503836,y:.0036904222114529234},{x:.12198274656489135,y:.0035180041069272803},{x:.12220145971574467,y:.0033022448933133844},{x:.1256311494872997,y:.001044175742673395},{x:.12902981881229655,y:-.0012603187870445023},{x:.12931285223297703,y:-.0013798159141787526},{x:.12956945540642648,y:-.0015487605559735135},{x:.1333737720884501,y:-.0030943422591057004},{x:.13715672151525218,y:-.004691509079582858},{x:.13745762926113045,y:-.004753493021744735},{x:.137742261341125,y:-.004869130643881392},{x:.14177500717701197,y:-.005642829061426576},{x:.14579686008065018,y:-.006471289947453558},{x:.1461040784358031,y:-.006473378696506754},{x:.14640580117113214,y:-.006531265410016966},{x:.150512,y:-.006503347745684165},{x:.15461819882886788,y:-.006531265410016966},{x:.15491992156419693,y:-.006473378696506754},{x:.15522713991934983,y:-.006471289947453558},{x:.159248992822988,y:-.005642829061426585},{x:.16328173865887502,y:-.004869130643881392},{x:.16356637073886957,y:-.004753493021744732},{x:.16386727848474786,y:-.004691509079582851},{x:.1676502279115502,y:-.0030943422591055763},{x:.17145454459357354,y:-.0015487605559735135},{x:.17171114776702298,y:-.0013798159141787517},{x:.17199418118770346,y:-.0012603187870445023},{x:.17539285051270065,y:.001044175742673613},{x:.17882254028425534,y:.0033022448933133844},{x:.17904125343510863,y:.0035180041069272374},{x:.17929553571496165,y:.0036904222114529095},{x:.18217931598198978,y:.006613684018010279},{x:.1851025777885471,y:.009497464285038375},{x:.18527499589307275,y:.009751746564891386},{x:.18549075510668664,y:.009970459715744683},{x:.1877488242573266,y:.013400149487299715},{x:.1900533187870445,y:.016798818812296553},{x:.19017281591417878,y:.01708185223297707},{x:.19034176055597352,y:.01733845540642648},{x:.19188734225910553,y:.02114277208844964},{x:.19348450907958287,y:.02492572151525217},{x:.19354649302174473,y:.02522662926113043},{x:.1936621306438814,y:.025511261341124997},{x:.30102443002882817,y:.38829842311817664},{x:.4083889386148475,y:.025511027311792445},{x:.40850451632069196,y:.025226547135196155},{x:.40856646677585007,y:.0249257992040805},{x:.410163689741502,y:.021142697708463984},{x:.41170935302882616,y:.01733823938560964},{x:.41187820927072055,y:.017081773507688556},{x:.41199764237598097,y:.016798890297984457},{x:.41430222163921304,y:.013400082779514221},{x:.4165603984391837,y:.009970270005002412},{x:.41677604416644776,y:.009751674265617277},{x:.4169483701745541,y:.009497526820430955},{x:.41987174204670485,y:.006613627545966159},{x:.42275565189129766,y:.0036902661012626486},{x:.42300979995956794,y:.0035179410120882958},{x:.4232283964786704,y:.003302296075210584},{x:.4266582174181369,y:.0010441316765615349},{x:.4300570332693414,y:-.001260435297455717},{x:.43033991691088264,y:-.001379867379883588},{x:.4305963833993421,y:-.0015487226944633017},{x:.43440084731088763,y:-.0030943722258508074},{x:.43818395458161874,y:-.004691581512785238},{x:.43848470273672896,y:-.004753530880516994},{x:.4387691833312223,y:-.0048691075577547704},{x:.44280208680029426,y:-.005642843777199688},{x:.4468241027997286,y:-.0064713155198797695},{x:.44713115788546864,y:-.006473401493455157},{x:.44743272015628793,y:-.006531257986460835},{x:.45153908096424766,y:-.006503346644966049},{x:.45564544187310013,y:-.00653124313893301},{x:.4559470039347234,y:-.006473385555557348},{x:.4562540590129192,y:-.0064712984717510205},{x:.4602760720167908,y:-.005642812186517322},{x:.4643089726882076,y:-.004869061385152536},{x:.46459345286480397,y:-.004753483679308031},{x:.46489420079591953,y:-.0046915332241499325},{x:.46867730229153426,y:-.003094310258498727},{x:.4724817606143904,y:-.0015486469711738574},{x:.4727382264923116,y:-.0013797907292793573},{x:.47302110970201555,y:-.0012603576240190345},{x:.4764199172204845,y:.0010442216392121837},{x:.47984972999499764,y:.0033023984391836667},{x:.4800683257343829,y:.003518044166447842},{x:.48032247317956905,y:.003690370174554085},{x:.483206372454032,y:.0066137420467029156},{x:.48612973389873737,y:.009497651891297622},{x:.4863020589879118,y:.009751799959568049},{x:.48651770392478944,y:.009970396478670394},{x:.4887758683234383,y:.01340021741813658},{x:.49108043529745576,y:.016799033269341422},{x:.49119986737988364,y:.017081916910882677},{x:.4913687226944633,y:.017338383399342037},{x:.4929143722258502,y:.021142847310886045},{x:.4945115815127853,y:.024925954581618698},{x:.4945735308805171,y:.025226702736729056},{x:.4946891075577548,y:.025511183331222268},{x:.6452021075577549,y:.5341051833312223},{x:.6468642579864609,y:.542768720156288},{x:.646804298471751,y:.5515900590129192},{x:.64502453322415,y:.5602302007959196},{x:.641593357624019,y:.5683571097020156},{x:.636642629825446,y:.5756584731795691},{x:.6303626035213297,y:.5818537039247894},{x:.622994616600658,y:.5867047226944633},{x:.6148218166687778,y:.5900251075577548},{x:.6061582798437121,y:.5916872579864608},{x:.5973369409870808,y:.591627298471751},{x:.5886967992040805,y:.58984753322415},{x:.5805698902979844,y:.5864163576240191},{x:.573268526820431,y:.5814656298254459},{x:.5670732960752106,y:.5751856035213296},{x:.5622222773055368,y:.567817616600658},{x:.5589018924422452,y:.5596448166687777},{x:.4515387133151436,y:.1968570925189096},{x:.34417406138515255,y:.5596449726882076},{x:.3440584683142858,y:.559929490683899},{x:.34399650907958285,y:.5602302784847478},{x:.3423992950207163,y:.5640133397974443},{x:.3408536469711739,y:.5678177606143904},{x:.3406847682813525,y:.5680742605871558},{x:.34056531878704455,y:.5683571811877035},{x:.33826075609875456,y:.5717559510329858},{x:.33600260156081635,y:.5751857299949976},{x:.33578692716538155,y:.5754043547947312},{x:.3356145777885471,y:.5756585357149616},{x:.33269122952253233,y:.5785424012737268},{x:.32980734810870244,y:.5814657338987373},{x:.3295531662537196,y:.581638081896991},{x:.3293345402842553,y:.5818537551066867},{x:.3259047490749403,y:.5841118910428063},{x:.32250596673065857,y:.5864164352974557},{x:.322223045482268,y:.5865358832573104},{x:.32196654459357354,y:.5867047605559735},{x:.318162115393689,y:.5882503879717952},{x:.31437904541838135,y:.5898475815127853},{x:.31407825728149374,y:.5899095391161314},{x:.313793738658875,y:.5900251306438814},{x:.30976087354902626,y:.5907988519446131},{x:.3057388972002714,y:.5916273155198798},{x:.3054318012943039,y:.5916294017707667},{x:.3051301988288679,y:.5916872654100169},{x:.30102387855356455,y:.5916593469199811},{x:.29691755812689985,y:.5916872431389331},{x:.2966159559752979,y:.5916293778639092},{x:.2963088600806502,y:.5916272899474536},{x:.29228688822522214,y:.5907988045585649},{x:.28825402731179245,y:.5900250613851525},{x:.2879695093161011,y:.5899094683142858},{x:.2876687215152522,y:.5898475090795828},{x:.2838856602025565,y:.5882502950207166},{x:.28008123938560964,y:.5867046469711739},{x:.27982473941284386,y:.5865357682813523},{x:.27954181881229656,y:.5864163187870445},{x:.276143048967013,y:.5841117560987538},{x:.2727132700050024,y:.5818536015608163},{x:.2724946452052691,y:.5816379271653819},{x:.27224046428503834,y:.5814655777885471},{x:.2693565987262721,y:.5785422295225312},{x:.2664332661012626,y:.5756583481087024},{x:.2662609181030087,y:.5754041662537193},{x:.2660452448933134,y:.5751855402842553},{x:.26378710895719626,y:.5717557490749442},{x:.2614825647025443,y:.5683569667306586},{x:.2613631167426894,y:.5680740454822678},{x:.2611942394440265,y:.5678175445935736},{x:.2596486120282045,y:.5640131153936881},{x:.2580514184872148,y:.5602300454183813},{x:.25798946088386876,y:.5599292572814941},{x:.2578738693561186,y:.559644738658875},{x:.150512,y:.196859029989096},{x:.0431501306438814,y:.559644738658875},{x:.039829760555973516,y:.5678175445935736},{x:.034978755106686646,y:.5751855402842553},{x:.028783535714961644,y:.5814655777885471},{x:.021482181187703456,y:.5864163187870445},{x:.01335527848474783,y:.5898475090795828},{x:.0047151399193498065,y:.5916272899474536},{x:-.004106198828867862,y:.5916872654100169},{x:-.01276973865887501,y:.5900251306438814},{x:-.020942544593573535,y:.5867047605559735},{x:-.028310540284255312,y:.5818537551066867},{x:-.034590577788547086,y:.5756585357149616},{x:-.03954131878704451,y:.5683571811877035},{x:-.04297250907958286,y:.5602302784847478},{x:-.04475228994745356,y:.5515901399193498},{x:-.04481226541001698,y:.5427688011711321}]],x:[[{x:-.007882248997940308,y:.03911618267902263},{x:-.007180671607209664,y:.030322582532795114},{x:-.0047770285451087455,y:.021834819906700376},{x:-.0007636904665355299,y:.013979074758467071},{x:.004705112296856322,y:.007057238968589209},{x:.011419216721809594,y:.001335314804661543},{x:.019120603540586492,y:-.0029668073965882433},{x:.02751331277672888,y:-.0056837994916240225},{x:.036274817320977384,y:-.006711248997940296},{x:.04506841746720488,y:-.006009671607209652},{x:.05355618009329963,y:-.003606028545108733},{x:.061411925241532925,y:.0004073095334644686},{x:.0683337610314108,y:.005876112296856327},{x:.3010265,y:.23008742701759316},{x:.5337192389685892,y:.005876112296856327},{x:.540641074758467,y:.0004073095334644686},{x:.5484968199067003,y:-.003606028545108733},{x:.556984582532795,y:-.006009671607209652},{x:.5657781826790226,y:-.006711248997940296},{x:.5745396872232711,y:-.0056837994916240225},{x:.5829323964594135,y:-.0029668073965882433},{x:.5906337832781904,y:.001335314804661536},{x:.5973478877031436,y:.007057238968589213},{x:.6028166904665355,y:.013979074758467089},{x:.6068300285451087,y:.021834819906700383},{x:.6092336716072096,y:.030322582532795128},{x:.6099352489979403,y:.03911618267902263},{x:.608907799491624,y:.047877687223271126},{x:.6061908073965883,y:.05627039645941352},{x:.6018886851953384,y:.0639717832781904},{x:.5961667610314108,y:.07068588770314368},{x:.36588095484811606,y:.292578},{x:.5961667610314108,y:.5144701122968564},{x:.6018886851953384,y:.5211842167218096},{x:.6061908073965883,y:.5288856035405864},{x:.608907799491624,y:.5372783127767289},{x:.6099352489979403,y:.5460398173209774},{x:.6092336716072096,y:.5548334174672048},{x:.6068300285451087,y:.5633211800932996},{x:.6028166904665355,y:.571176925241533},{x:.5973478877031436,y:.5780987610314108},{x:.5906337832781904,y:.5838206851953385},{x:.5829323964594135,y:.5881228073965883},{x:.5745396872232711,y:.590839799491624},{x:.5657781826790226,y:.5918672489979403},{x:.556984582532795,y:.5911656716072097},{x:.5484968199067003,y:.5887620285451087},{x:.540641074758467,y:.5847486904665355},{x:.5337192389685892,y:.5792798877031436},{x:.3010265,y:.35506857298240685},{x:.0683337610314108,y:.5792798877031436},{x:.06141192524153289,y:.5847486904665355},{x:.05355618009329961,y:.5887620285451087},{x:.0450684174672049,y:.5911656716072097},{x:.03627481732097735,y:.5918672489979403},{x:.02751331277672888,y:.590839799491624},{x:.01912060354058648,y:.5881228073965883},{x:.011419216721809584,y:.5838206851953385},{x:.004705112296856315,y:.5780987610314108},{x:-.0007636904665355368,y:.571176925241533},{x:-.004777028545108752,y:.5633211800932996},{x:-.007180671607209664,y:.5548334174672048},{x:-.007882248997940308,y:.5460398173209774},{x:-.006854799491624035,y:.5372783127767289},{x:-.004137807396588256,y:.5288856035405864},{x:.0001643148046615306,y:.5211842167218096},{x:.005886238968589197,y:.5144701122968564},{x:.23617204515188386,y:.292578},{x:.005886238968589197,y:.07068588770314368},{x:.00016431480466150977,y:.0639717832781904},{x:-.004137807396588256,y:.05627039645941351},{x:-.006854799491624035,y:.047877687223271126},{x:-.007882248997940308,y:.03911618267902263}]],y:[[{x:-7800000000000168e-20,y:-.15516599999999992},{x:.0007866623818546317,y:-.16394506449072568},{x:.003347421036992093,y:-.17238675445642895},{x:.007505867446385456,y:-.180166660485882},{x:.013102194846605353,y:-.18698580515339455},{x:.0199213395141179,y:-.19258213255361445},{x:.02770124554357093,y:-.1967405789630078},{x:.03614293550927421,y:-.19930133761814528},{x:.044922,y:-.2001659999999999},{x:.084618,y:-.2001659999999999},{x:.08470326921416556,y:-.20015760171543356},{x:.08478856964894584,y:-.200165676732115},{x:.08909199801123496,y:-.19972534965725622},{x:.09339706449072577,y:-.19930133761814528},{x:.0934790568568106,y:-.19927646550581232},{x:.09356429362525961,y:-.1992677440740231},{x:.09769912926743524,y:-.1979963205354665},{x:.10183875445642904,y:-.1967405789630078},{x:.1019143190537861,y:-.19670018884423682},{x:.10199621655469396,y:-.19667500612370953},{x:.18074721655469395,y:-.16370500612370958},{x:.18295470197399702,y:-.16251430076809983},{x:.18525522528778574,y:-.16151511930158513},{x:.18682754729843723,y:-.16042530954354395},{x:.18851130436774752,y:-.15951710034658062},{x:.19044407848245243,y:-.15791861501920362},{x:.19250546725178602,y:-.1564898227103016},{x:.27125546725178606,y:-.08958282271030155},{x:.27347158712358693,y:-.0872898341236823},{x:.27580944257935097,y:-.08512109812948883},{x:.27653091968085064,y:-.08412438503144627},{x:.2773860111192193,y:-.08323963374445845},{x:.2791122089873479,y:-.0805583607511536},{x:.2809820438025964,y:-.07797520343727593},{x:.35909504380259644,y:.055837796562724036},{x:.35921507445013207,y:.05609937330868571},{x:.35938084670619436,y:.05633463764830328},{x:.359814044874128,y:.05731131476590327},{x:.3603874218559792,y:.0582128676935936},{x:.5972854218559792,y:.5265638676935935},{x:.6004763520268956,y:.5347880745861305},{x:.6020015061983327,y:.5434767752438966},{x:.6018022735507984,y:.5522960677732933},{x:.5998863104832066,y:.5609070317083322},{x:.5963272463817603,y:.568978752534074},{x:.591261854083932,y:.5762010385458585},{x:.5848847937750224,y:.5822963413425576},{x:.5774411323064065,y:.5870304218559792},{x:.5692169254138695,y:.5902213520268956},{x:.5605282247561034,y:.5917465061983327},{x:.5517089322267067,y:.5915472735507984},{x:.5430979682916678,y:.5896313104832066},{x:.5350262474659261,y:.5860722463817603},{x:.5278039614541415,y:.5810068540839319},{x:.5217086586574424,y:.5746297937750224},{x:.5169745781440208,y:.5671861323064065},{x:.3203411783046204,y:.17843886787959407},{x:.12481771439881506,y:.5670983271806026},{x:.12009991274687032,y:.5745523168465348},{x:.11401856108654926,y:.5809426827476728},{x:.10680736235169674,y:.5860238467061943},{x:.09874343886560628,y:.5896005424407229},{x:.09013668268554793,y:.5915353195400148},{x:.08131784662479694,y:.5917538256051798},{x:.0726258336075076,y:.5902476635706729},{x:.06439467281939737,y:.5870747143988151},{x:.05694068315346515,y:.5823569127468703},{x:.05055031725232718,y:.5762755610865493},{x:.04546915329380567,y:.5690643623516968},{x:.041892457559277035,y:.5610004388656062},{x:.039957680459985136,y:.5523936826855479},{x:.039739174394820276,y:.5435748466247969},{x:.0412453364293271,y:.5348828336075077},{x:.04441828560118493,y:.5266516728193974},{x:.26905653043412125,y:.0801181620528446},{x:.20712852539925722,y:-.025968816269973185},{x:.1395520619925953,y:-.08338263769409424},{x:.07557825049874085,y:-.11016599999999992},{x:.044922,y:-.11016599999999992},{x:.03614293550927422,y:-.11103066238185455},{x:.02770124554357096,y:-.11359142103699202},{x:.01992133951411791,y:-.11774986744638538},{x:.01310219484660536,y:-.12334619484660528},{x:.007505867446385456,y:-.13016533951411782},{x:.003347421036992093,y:-.13794524554357088},{x:.0007866623818546317,y:-.14638693550927412},{x:-7800000000000168e-20,y:-.15516599999999992}]],z:[[{x:.051680000000000004,y:.038348999999999966},{x:.05192127447228559,y:.035899299172703986},{x:.05194879067317478,y:.033437899088824954},{x:.05235257576103353,y:.03152022369965088},{x:.05254466238185464,y:.029569935509274177},{x:.053259213756049764,y:.02721437531096308},{x:.05376639657582897,y:.024805638484003446},{x:.054536542955643516,y:.023003585252525667},{x:.0551054210369921,y:.02112824554357092},{x:.05626578950451143,y:.018957348831652537},{x:.05723314819184797,y:.01669384166703705},{x:.05834005957014514,y:.015076662488338128},{x:.05926386744638546,y:.01334833951411787},{x:.060825460697764414,y:.011445532631778232},{x:.062215820200804926,y:.009414240440453706},{x:.0636169585940798,y:.00804408260344652},{x:.06486019484660537,y:.0065291948466053296},{x:.06676300172894496,y:.004967601595226417},{x:.06852293131171022,y:.0032465857969436324},{x:.07016445175727676,y:.0021761036989109733},{x:.07167933951411792,y:.0009328674463854256},{x:.07385023622603624,y:-.00022750102113387976},{x:.07591210278164046,y:-.0015721027544036703},{x:.07773092256935071,y:-.0023017710867676167},{x:.07945924554357096,y:-.003225578963007937},{x:.08181480574188199,y:-.003940130337203038},{x:.08409937289490133,y:-.004856645714911602},{x:.08602559580031956,y:-.00521745953679684},{x:.08790093550927423,y:-.0057863376181453985},{x:.09035063633657014,y:-.00602761209043098},{x:.09277010945251417,y:-.006480819940600742},{x:.09472971180962335,y:-.006458913379178931},{x:.09668,y:-.006651000000000032},{x:.505373,y:-.006651000000000032},{x:.5141520644907257,y:-.0057863376181453985},{x:.522593754456429,y:-.003225578963007937},{x:.5303736604858821,y:.0009328674463854256},{x:.5371928051533946,y:.0065291948466053296},{x:.5427891325536145,y:.013348339514117874},{x:.5469475789630078,y:.021128245543570928},{x:.5495083376181453,y:.029569935509274198},{x:.550373,y:.038348999999999966},{x:.5495083376181453,y:.047128064490725735},{x:.5469475789630078,y:.055569754456429005},{x:.5427891325536145,y:.06334966048588206},{x:.5371928051533946,y:.0701688051533946},{x:.5303736604858821,y:.0757651325536145},{x:.522593754456429,y:.07992357896300786},{x:.5141520644907257,y:.08248433761814533},{x:.505373,y:.08334899999999996},{x:.190464663126857,y:.08334899999999996},{x:.5404754142030563,y:.5196949313117102},{x:.5415458963010891,y:.5213364517572769},{x:.5427891325536145,y:.5228513395141179},{x:.5439495010211337,y:.525022236226036},{x:.5452941027544036,y:.5270841027816404},{x:.5460237710867677,y:.5289029225693511},{x:.5469475789630078,y:.530631245543571},{x:.5476621303372028,y:.5329868057418816},{x:.5485786457149116,y:.5352713728949013},{x:.5489394595367969,y:.53719759580032},{x:.5495083376181453,y:.5390729355092743},{x:.5497496120904308,y:.5415226363365697},{x:.5502028199406007,y:.5439421094525142},{x:.5501809133791788,y:.5459017118096235},{x:.550373,y:.547852},{x:.5501317255277144,y:.5503017008272966},{x:.5501042093268251,y:.552763100911175},{x:.5497004242389665,y:.5546807763003486},{x:.5495083376181453,y:.5566310644907257},{x:.5487937862439503,y:.5589866246890365},{x:.548286603424171,y:.5613953615159966},{x:.5475164570443563,y:.5631974147474748},{x:.5469475789630078,y:.565072754456429},{x:.5457872104954887,y:.567243651168347},{x:.544819851808152,y:.569507158332963},{x:.5437129404298549,y:.5711243375116617},{x:.5427891325536145,y:.5728526604858821},{x:.5412275393022352,y:.5747554673682221},{x:.539837179799195,y:.5767867595595463},{x:.5384360414059206,y:.578156917396553},{x:.5371928051533946,y:.5796718051533947},{x:.5352899982710546,y:.5812333984047738},{x:.5335300686882897,y:.5829544142030564},{x:.5318885482427235,y:.5840248963010888},{x:.5303736604858821,y:.5852681325536145},{x:.5282027637739638,y:.5864285010211338},{x:.5261408972183595,y:.5877731027544036},{x:.5243220774306487,y:.5885027710867679},{x:.522593754456429,y:.5894265789630079},{x:.5202381942581186,y:.5901411303372028},{x:.5179536271050986,y:.5910576457149116},{x:.5160274041996802,y:.5914184595367968},{x:.5141520644907257,y:.5919873376181454},{x:.5117023636634302,y:.5922286120904309},{x:.5092828905474858,y:.5926818199406008},{x:.5073232881903766,y:.5926599133791789},{x:.505373,y:.592852},{x:.09668,y:.592852},{x:.08790093550927423,y:.5919873376181454},{x:.07945924554357094,y:.5894265789630079},{x:.07167933951411792,y:.5852681325536145},{x:.06486019484660537,y:.5796718051533947},{x:.05926386744638546,y:.5728526604858821},{x:.0551054210369921,y:.565072754456429},{x:.05254466238185464,y:.5566310644907257},{x:.051680000000000004,y:.547852},{x:.05254466238185464,y:.5390729355092743},{x:.0551054210369921,y:.530631245543571},{x:.05926386744638546,y:.5228513395141179},{x:.06486019484660537,y:.5160321948466053},{x:.07167933951411792,y:.5104358674463855},{x:.07945924554357096,y:.5062774210369921},{x:.08790093550927423,y:.5037166623818546},{x:.09668,y:.502852},{x:.41158833687314295,y:.502852},{x:.06157758579694366,y:.06650606868828973},{x:.06050710369891106,y:.06486454824272328},{x:.05926386744638546,y:.06334966048588206},{x:.05810349897886612,y:.06117876377396365},{x:.05675889724559635,y:.059116897218359485},{x:.05602922891323242,y:.05729807743064926},{x:.0551054210369921,y:.055569754456429005},{x:.054390869662797,y:.05321419425811798},{x:.053474354285088434,y:.050929627105098636},{x:.0531135404632032,y:.04900340419968042},{x:.05254466238185464,y:.047128064490725735},{x:.05230338790956906,y:.04467836366342984},{x:.051850180059399294,y:.04225889054748581},{x:.05187208662082111,y:.04029928819037662},{x:.051680000000000004,y:.038348999999999966}]]},G$t=wti;function Tue(t){const{ctx:e,points:n,fill:o,stroke:i,strokeWidth:r=1,minStrokePx:s,realToCanvasMat:a,closePath:A=!1}=t;if(n.length<2)return;e.beginPath();const c=n.map(h=>ri(a,[h.x,h.y])),l=c[0];if(!l)return;const[g,u]=l;e.moveTo(g,u);for(let h=1;h<c.length;h++){const d=c[h];if(!d)continue;const[m,p]=d;e.lineTo(m,p)}if(A&&e.closePath(),o&&(e.fillStyle=o,e.fill()),i){const h=r*Math.abs(a.a),d=s===void 0?h:Math.max(h,s);e.strokeStyle=i,e.lineWidth=d,e.stroke()}}function am(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,borderRadius:a=0,ccwRotationDegrees:A=0,stroke:c,strokeWidth:l,isStrokeDashed:g=!1,lineJoin:u}=t,[h,d]=ri(s,[n.x,n.y]),m=o*Math.abs(s.a),p=i*Math.abs(s.a),_=a*Math.abs(s.a),f=l?l*Math.abs(s.a):void 0;if(e.save(),e.translate(h,d),A!==0&&e.rotate(-A*(Math.PI/180)),e.beginPath(),_>0){const I=-m/2,C=-p/2,y=Math.min(_,m/2,p/2);e.moveTo(I+y,C),e.lineTo(I+m-y,C),e.arcTo(I+m,C,I+m,C+y,y),e.lineTo(I+m,C+p-y),e.arcTo(I+m,C+p,I+m-y,C+p,y),e.lineTo(I+y,C+p),e.arcTo(I,C+p,I,C+p-y,y),e.lineTo(I,C+y),e.arcTo(I,C,I+y,C,y)}else e.rect(-m/2,-p/2,m,p);r&&(e.fillStyle=r,e.fill()),c&&f&&(g?e.setLineDash([f*3,f*2]):e.setLineDash([]),u&&(e.lineJoin=u),e.strokeStyle=c,e.lineWidth=f,e.stroke()),e.restore()}function Mti(t){const{ctx:e,board:n,realToCanvasMat:o,colorMap:i,drawBoardMaterial:r,minBoardOutlineStrokePx:s}=t,{width:a,height:A,center:c,outline:l}=n;if(l&&Array.isArray(l)&&l.length>=3){r&&Tue({ctx:e,points:l.map(g=>({x:g.x,y:g.y})),fill:i.substrate,realToCanvasMat:o,closePath:!0}),Tue({ctx:e,points:l.map(g=>({x:g.x,y:g.y})),stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s});return}if(a!==void 0&&A!==void 0&&c){r&&am({ctx:e,center:c,width:a,height:A,fill:i.substrate,realToCanvasMat:o});const g=a/2,u=A/2,h=[{x:c.x-g,y:c.y-u},{x:c.x+g,y:c.y-u},{x:c.x+g,y:c.y+u},{x:c.x-g,y:c.y+u}];Tue({ctx:e,points:h,stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s})}}function Dti({startX:t,startY:e,endX:n,endY:o,bulge:i}){if(Math.abs(i)<1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a<1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),g=l-A,u=(t+n)/2,h=(e+o)/2,d=-s/a,m=r/a,p=i>0?-1:1;return{centerX:u+p*d*g,centerY:h+p*m*g,radius:l}}function CYe({ctx:t,realStartX:e,realStartY:n,realEndX:o,realEndY:i,bulge:r,realToCanvasMat:s}){if(Math.abs(r)<1e-10){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const a=Dti({startX:e,startY:n,endX:o,endY:i,bulge:r});if(!a){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const[A,c]=ri(s,[e,n]),[l,g]=ri(s,[o,i]),[u,h]=ri(s,[a.centerX,a.centerY]),d=Math.hypot(A-u,c-h),m=Math.atan2(c-h,A-u),p=Math.atan2(g-h,l-u),f=s.a*s.d-s.b*s.c<0,I=r>0?!f:f;t.arc(u,h,d,m,p,I)}function Y$t({ctx:t,ring:e,realToCanvasMat:n}){if(e.vertices.length<2)return;if(e.vertices.length===2){const[s,a]=e.vertices;if(s&&a&&Math.abs((s.bulge??0)-1)<1e-10&&Math.abs((a.bulge??0)-1)<1e-10){const[A,c]=ri(n,[s.x,s.y]);t.moveTo(A,c),CYe({ctx:t,realStartX:s.x,realStartY:s.y,realEndX:a.x,realEndY:a.y,bulge:1,realToCanvasMat:n}),CYe({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:s.x,realEndY:s.y,bulge:1,realToCanvasMat:n});return}}const o=e.vertices[0];if(!o)return;const[i,r]=ri(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s<e.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];!a||!A||CYe({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:A.x,realEndY:A.y,bulge:a.bulge??0,realToCanvasMat:n})}}function U$t({ctx:t,shape:e,realToCanvasMat:n}){Y$t({ctx:t,ring:e.outer_ring,realToCanvasMat:n});for(const o of e.inner_rings??[])Y$t({ctx:t,ring:o,realToCanvasMat:n})}function Nti(t,e){return e.copper[t]??e.copper.top}function yYe(t){const{ctx:e,pour:n,realToCanvasMat:o}=t;if(n.shape==="rect"){const i=n.width/2,r=n.height/2,s=(n.rotation??0)*Math.PI/180,a=Math.cos(s),A=Math.sin(s),c=[{x:-i,y:-r},{x:i,y:-r},{x:i,y:r},{x:-i,y:r}].map(g=>ri(o,[n.center.x+g.x*a-g.y*A,n.center.y+g.x*A+g.y*a])),l=c[0];if(!l)return;e.moveTo(l[0],l[1]);for(let g=1;g<c.length;g++){const u=c[g];u&&e.lineTo(u[0],u[1])}e.closePath();return}if(n.shape==="polygon"){const i=n.points[0];if(!i)return;const[r,s]=ri(o,[i.x,i.y]);e.moveTo(r,s);for(let a=1;a<n.points.length;a++){const A=n.points[a];if(!A)continue;const[c,l]=ri(o,[A.x,A.y]);e.lineTo(c,l)}e.closePath();return}n.shape==="brep"&&U$t({ctx:e,shape:n.brep_shape,realToCanvasMat:o})}function Rti(t){const{ctx:e,pour:n,realToCanvasMat:o,colorMap:i}=t,r=Nti(n.layer,i),s=.5;e.save(),e.globalAlpha=s,e.beginPath(),yYe({ctx:e,pour:n,realToCanvasMat:o}),e.fillStyle=r,e.fill(n.shape==="brep"?"evenodd":"nonzero"),e.restore()}function Tti(t,e){if(e.length<3)return;const n=e[0];if(n){t.moveTo(n.x,n.y);for(let o=1;o<e.length;o++){const i=e[o];i&&t.lineTo(i.x,i.y)}t.closePath()}}var kti=t=>ZBt[t]??(t===" "?jI.spaceWidthRatio:jI.glyphWidthRatio);function xYe(t,e,n){const o=kti(t),i=e?jI.letterSpacingRatio:0,r=e?e9t[t]?.[e]??0:0;return n*(o+i+r)}function Fti(t,e){const n=e*jI.glyphWidthRatio,o=e*jI.letterSpacingRatio,i=e*jI.spaceWidthRatio,r=e*jI.strokeWidthRatio,s=e*jI.lineHeightRatio,a=t.replace(/\\n/g,`
|
|
5289
5289
|
`).split(`
|
|
5290
|
-
`),A=a.map(g=>{const u=Array.from(g);return u.reduce((h,d,m)=>h+xYe(d,u[m+1],e),0)}),c=A.reduce((g,u)=>Math.max(g,u),0),l=a.length>1?e+(a.length-1)*s:e;return{width:c,height:l,glyphWidth:n,letterSpacing:o,spaceWidth:i,strokeWidth:r,lineHeight:s,lines:a,lineWidths:A}}function Lti(t){const{line:e,fontSize:n,startX:o,startY:i}=t,r=n,s=n,a=Array.from(e),A=[];let c=o+t.layout.strokeWidth/2;return a.forEach((l,g)=>{const u=G$t[l];if(u?.length){const h=[];for(const d of u){const m=d.map(p=>({x:c+p.x*s,y:i+(1-p.y)*r}));m.length>=3&&h.push(m)}h.length>0&&A.push(h)}c+=xYe(l,a[g+1],n)}),A}function Hti(t){let e=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const r of t)for(const s of r)e=Math.min(e,s.x),n=Math.min(n,s.y),o=Math.max(o,s.x),i=Math.max(i,s.y);return e===Number.POSITIVE_INFINITY||n===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY||i===Number.NEGATIVE_INFINITY?null:{minX:e,minY:n,maxX:o,maxY:i}}function Oti(t,e,n){const o=Yti(t,e),i=Uti(o,e,n),r=Hti(i.flat()),s=Kti(t,e,r);return{bounds:r?Wti(r,s):null,glyphGroups:Jti(i,s),linePlacements:o.map(({line:a,startX:A,startY:c})=>({line:a,startX:A+s.x,startY:c+s.y})),startOffset:s}}function Gti(t,e){const n=e.width+e.strokeWidth,o=e.height+e.strokeWidth;let i=0,r=0;return t==="center"||t==="top_center"||t==="bottom_center"?i=-n/2:t==="top_left"||t==="bottom_left"||t==="center_left"?i=0:t==="top_right"||t==="bottom_right"||t==="center_right"?i=-n:(t==="top_center"||t==="bottom_center")&&(i=-n/2),t==="center"||t==="center_left"||t==="center_right"?r=-o/2:t==="top_left"||t==="top_right"||t==="top_center"?r=0:(t==="bottom_left"||t==="bottom_right"||t==="bottom_center")&&(r=-o),{x:i,y:r}}function Yti(t,e){return e.lines.map((n,o)=>({line:n,startX:jti({alignment:t,lineWidth:e.lineWidths[o],maxWidth:e.width,strokeWidth:e.strokeWidth}),startY:o*e.lineHeight}))}function Uti(t,e,n){return t.flatMap(({line:o,startX:i,startY:r})=>Lti({line:o,fontSize:n,startX:i,startY:r,layout:e}))}function Kti(t,e,n){return n?{x:-Vti(t,n),y:-zti(t,n)}:Gti(t,e)}function Vti(t,e){return t==="top_left"||t==="bottom_left"||t==="center_left"?e.minX:t==="top_right"||t==="bottom_right"||t==="center_right"?e.maxX:(e.minX+e.maxX)/2}function zti(t,e){return t==="top_left"||t==="top_right"||t==="top_center"?e.minY:t==="bottom_left"||t==="bottom_right"||t==="bottom_center"?e.maxY:(e.minY+e.maxY)/2}function Jti(t,e){return e.x===0&&e.y===0?t:t.map(n=>n.map(o=>o.map(i=>({x:i.x+e.x,y:i.y+e.y}))))}function Wti(t,e){return{minX:t.minX+e.x,minY:t.minY+e.y,maxX:t.maxX+e.x,maxY:t.maxY+e.y}}function jti(t){const{alignment:e,lineWidth:n,maxWidth:o,strokeWidth:i}=t,r=n+i,s=o+i;return e==="top_left"||e==="bottom_left"||e==="center_left"?0:e==="top_right"||e==="bottom_right"||e==="center_right"?s-r:(s-r)/2}var qti=t=>$Bt[t];function Xti(t){const{ctx:e,line:n,fontSize:o,startX:i,startY:r,layout:s}=t,{strokeWidth:a}=s,A=o,c=o,l=r,g=Array.from(n);let u=i+a/2;g.forEach((h,d)=>{const m=qti(h);if(m?.length){e.beginPath();for(const p of m){const _=u+p.x1*c,f=l+(1-p.y1)*A,I=u+p.x2*c,C=l+(1-p.y2)*A;e.moveTo(_,f),e.lineTo(I,C)}e.stroke()}u+=xYe(h,g[d+1],o)})}var $ti={left:.2,right:.2,top:.2,bottom:.2};function Yq(t){const{ctx:e,text:n,x:o,y:i,fontSize:r,color:s,realToCanvasMat:a,anchorAlignment:A,rotation:c=0,mirrorX:l=!1,knockout:g=!1,knockoutPadding:u={}}=t;if(!n)return;const[h,d]=ri(a,[o,i]),m=Math.abs(a.a),p=r*m,_=Fti(n,p),f=Oti(A,_,p);if(e.save(),e.translate(h,d),c!==0&&e.rotate(-c*(Math.PI/180)),l&&e.scale(-1,1),g){const I={...$ti,...u},C=I.left*m,y=I.right*m,x=I.top*m,E=I.bottom*m,B=f.bounds;if(!B){e.restore();return}const b=B.minX-C,Q=B.minY-x,w=B.maxX-B.minX+C+y,D=B.maxY-B.minY+x+E;e.fillStyle=s,e.beginPath(),e.rect(b,Q,w,D);for(const k of f.glyphGroups)for(const T of k)Tti(e,T);e.fill("evenodd")}else e.strokeStyle=s;e.lineWidth=_.strokeWidth,e.lineCap="round",e.lineJoin="round",g||f.linePlacements.forEach(({line:I,startX:C,startY:y})=>{Xti({ctx:e,line:I,fontSize:p,startX:C,startY:y,layout:_})}),e.restore()}function Zti(t){return t||"center"}function eni(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";r&&Yq({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:n.font_size??1,color:i.copper[n.layer]??i.copper.top,realToCanvasMat:o,anchorAlignment:Zti(n.anchor_alignment),rotation:n.ccw_rotation??0,mirrorX:n.is_mirrored??n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function Zm(t){const{ctx:e,center:n,radius:o,fill:i,realToCanvasMat:r,stroke:s,strokeWidth:a,isStrokeDashed:A=!1}=t,[c,l]=ri(r,[n.x,n.y]),g=o*Math.abs(r.a),u=a?a*Math.abs(r.a):void 0;e.beginPath(),e.arc(c,l,g,0,Math.PI*2),i&&(e.fillStyle=i,e.fill()),s&&u&&(A?e.setLineDash([u*3,u*2]):e.setLineDash([]),e.strokeStyle=s,e.lineWidth=u,e.stroke())}function tni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function nni(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t;Zm({ctx:e,center:n.center,radius:n.radius,stroke:tni(n.layer,i),strokeWidth:.05,realToCanvasMat:o})}function oni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function ini(t){const{ctx:e,outline:n,realToCanvasMat:o,colorMap:i}=t;if(!n.outline||n.outline.length<2)return;e.beginPath();const r=ri(o,n.outline[0]);e.moveTo(r.x,r.y);for(let s=1;s<n.outline.length;s++){const a=ri(o,n.outline[s]);e.lineTo(a.x,a.y)}e.closePath(),e.lineWidth=.05*Math.abs(o.a),e.strokeStyle=oni(n.layer,i),e.lineJoin="round",e.stroke()}function rni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function sni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t;am({ctx:e,center:n.center,width:n.width,height:n.height,stroke:rni(n.layer,i),strokeWidth:.05,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation??0,lineJoin:"round"})}function IP(t){const{ctx:e,points:n,fill:o,realToCanvasMat:i}=t;if(n.length<3)return;e.beginPath();const r=n.map(c=>ri(i,[c.x,c.y])),s=r[0];if(!s)return;const[a,A]=s;e.moveTo(a,A);for(let c=1;c<r.length;c++){const l=r[c];if(!l)continue;const[g,u]=l;e.lineTo(g,u)}e.closePath(),e.fillStyle=o,e.fill()}function ani(t){const{ctx:e,cutout:n,realToCanvasMat:o,colorMap:i}=t;if(n.shape==="rect"){am({ctx:e,center:n.center,width:n.width,height:n.height,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:n.rotation??0,borderRadius:n.corner_radius??0});return}if(n.shape==="circle"){Zm({ctx:e,center:n.center,radius:n.radius,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:i.drill,realToCanvasMat:o});return}}var Ani=1.5,cni=.6,lni=.3;function EYe(t){const e=Math.hypot(t.x,t.y)||1;return{x:t.x/e,y:t.y/e}}function K$t(t){const{ctx:e,from:n,to:o,realToCanvasMat:i,color:r,fontSize:s,arrowSize:a=1,strokeWidth:A,text:c,textRotation:l,offset:g}=t,u=EYe({x:o.x-n.x,y:o.y-n.y}),h={x:-u.y,y:u.x},d=g?.direction&&typeof g.direction.x=="number"&&typeof g.direction.y=="number",m=d?EYe(g.direction):{x:0,y:0},p=g?.distance??0,_={x:m.x*p,y:m.y*p},f={x:n.x+_.x,y:n.y+_.y},I={x:o.x+_.x,y:o.y+_.y},C={x:f.x+u.x*a,y:f.y+u.y*a},y={x:I.x-u.x*a,y:I.y-u.y*a};Math.abs(i.a);const x=A??a/5,E=r||"rgba(255,255,255,0.5)",B=d&&(Math.abs(m.x)>Number.EPSILON||Math.abs(m.y)>Number.EPSILON)?m:h,b=p+.5,Q=[],w=T=>{const H={x:T.x+B.x*b,y:T.y+B.y*b},G=x/2,K={x:-B.y,y:B.x};return[{x:T.x+K.x*G,y:T.y+K.y*G},{x:T.x-K.x*G,y:T.y-K.y*G},{x:H.x-K.x*G,y:H.y-K.y*G},{x:H.x+K.x*G,y:H.y+K.y*G}]};Q.push(f),Q.push({x:C.x+h.x*(a/2),y:C.y+h.y*(a/2)}),Q.push({x:C.x+h.x*(x/2),y:C.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(x/2),y:y.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(a/2),y:y.y+h.y*(a/2)}),Q.push(I),Q.push({x:y.x-h.x*(a/2),y:y.y-h.y*(a/2)}),Q.push({x:y.x-h.x*(x/2),y:y.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(x/2),y:C.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(a/2),y:C.y-h.y*(a/2)}),Q.push(f);const D=Q[0],k=T=>{const H=w(T);Q.push(D),Q.push(H[0]),Q.push(...H),Q.push(H[0]),Q.push(D)};if(k(n),k(o),IP({ctx:e,points:Q,fill:E,realToCanvasMat:i}),c){const T={x:(n.x+o.x)/2+_.x,y:(n.y+o.y)/2+_.y},[H,G]=ri(i,[f.x,f.y]),[K,Y]=ri(i,[I.x,I.y]),q=EYe({x:K-H,y:Y-G});let ee=Math.atan2(q.y,q.x)*180/Math.PI;(ee>90||ee<-90)&&(ee+=180);const j=typeof l=="number"&&Number.isFinite(l)?ee-l:ee;let J=0;if(c&&typeof l=="number"&&Number.isFinite(l)){const ne=c.length*s*cni,le=s,ge=l*Math.PI/180,_e=Math.abs(Math.sin(ge)),ce=Math.abs(Math.cos(ge)),Ie=ne/2,he=le/2;J=Ie*_e+he*ce+s*lni}const ie=a*Ani+J,oe={x:T.x+h.x*ie,y:T.y+h.y*ie};Yq({ctx:e,text:c,x:oe.x,y:oe.y,fontSize:s,color:E,realToCanvasMat:i,anchorAlignment:"center",rotation:-j})}}function gni(t){const{ctx:e,pcbFabricationNoteDimension:n,realToCanvasMat:o,colorMap:i}=t,r=n.color??i.fabricationNote;K$t({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:r,fontSize:n.font_size??1,arrowSize:n.arrow_size??1,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function xG(t){const{ctx:e,start:n,end:o,strokeWidth:i,stroke:r,realToCanvasMat:s,lineCap:a="round"}=t,[A,c]=ri(s,[n.x,n.y]),[l,g]=ri(s,[o.x,o.y]),u=i*Math.abs(s.a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.lineWidth=u,e.strokeStyle=r,e.lineCap=a,e.stroke()}function uni(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r;if(!(!n.route||n.route.length<2))for(let a=0;a<n.route.length-1;a++){const A=n.route[a],c=n.route[a+1];!A||!c||xG({ctx:e,start:{x:A.x,y:A.y},end:{x:c.x,y:c.y},strokeWidth:n.stroke_width??.1,stroke:s,realToCanvasMat:o})}}function dni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r,a=n.is_filled??!1,A=n.has_stroke??!0,c=n.is_stroke_dashed??!1;am({ctx:e,center:n.center,width:n.width,height:n.height,fill:a?s:void 0,stroke:A?s:void 0,strokeWidth:A?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:c})}function hni(t,e){return e.fabricationNote}function mni(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=hni(n.layer,i),s=n.color??r,a=n.font_size;Yq({ctx:e,text:n.text,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:a,color:s,realToCanvasMat:o,anchorAlignment:n.anchor_alignment})}function bB(t){const{ctx:e,center:n,radius_x:o,radius_y:i,fill:r,stroke:s,strokeWidth:a=.1,realToCanvasMat:A,rotation:c=0}=t,[l,g]=ri(A,[n.x,n.y]),u=o*Math.abs(A.a),h=i*Math.abs(A.a),d=a*Math.abs(A.a);e.save(),e.translate(l,g),c!==0&&e.rotate(-c*(Math.PI/180)),e.beginPath(),e.ellipse(0,0,u,h,0,0,Math.PI*2),r&&(e.fillStyle=r,e.fill()),s&&(e.strokeStyle=s,e.lineWidth=d,e.stroke()),e.restore()}function Jp(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,rotation:a=0,stroke:A,strokeWidth:c}=t,[l,g]=ri(s,[n.x,n.y]),u=o*Math.abs(s.a),h=i*Math.abs(s.a),d=c?c*Math.abs(s.a):void 0;if(e.save(),e.translate(l,g),a!==0&&e.rotate(-a*(Math.PI/180)),e.beginPath(),u>h){const m=h/2,p=u-h;e.moveTo(-p/2,-m),e.lineTo(p/2,-m),e.arc(p/2,0,m,-Math.PI/2,Math.PI/2),e.lineTo(-p/2,m),e.arc(-p/2,0,m,Math.PI/2,-Math.PI/2)}else if(h>u){const m=u/2,p=h-u;e.moveTo(m,-p/2),e.lineTo(m,p/2),e.arc(0,p/2,m,0,Math.PI),e.lineTo(-m,-p/2),e.arc(0,-p/2,m,Math.PI,0)}else e.arc(0,0,u/2,0,Math.PI*2);e.closePath(),r&&(e.fillStyle=r,e.fill()),A&&d&&(e.strokeStyle=A,e.lineWidth=d,e.stroke()),e.restore()}function kue(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function V$t(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s=!1}=t;if(s&&n.is_covered_with_solder_mask===!0)return;const a=r<0?Math.abs(r):0;if(n.hole_shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2-a,fill:i.drill,realToCanvasMat:o});return}if(n.hole_shape==="square"){const A=kue(n);am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter-a*2,height:n.hole_diameter-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="oval"){const A=kue(n);bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2-a,radius_y:n.hole_height/2-a,fill:i.drill,realToCanvasMat:o,rotation:A});return}if(n.hole_shape==="rect"){const A=kue(n);am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const A=kue(n);Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,rotation:A});return}}function pni(t){const{ctx:e,cx:n,cy:o,radius:i}=t;e.beginPath(),e.arc(n,o,i,0,Math.PI*2)}function _ni(t){const{ctx:e,cx:n,cy:o,width:i,height:r}=t;e.beginPath(),e.rect(n-i/2,o-r/2,i,r)}function PS(t){const{ctx:e,cx:n,cy:o,width:i,height:r,ccwRotationDegrees:s=0}=t,a=s*Math.PI/180,A=IYe(fP(n,o),O$t(-a));if(i>r){const c=r/2,l=(i-r)/2,g=ri(A,{x:-l,y:0}),u=ri(A,{x:l,y:0}),h=ri(A,{x:l,y:-c});e.moveTo(h.x,h.y),e.arc(u.x,u.y,c,-a-Math.PI/2,-a+Math.PI/2),e.arc(g.x,g.y,c,-a+Math.PI/2,-a-Math.PI/2)}else if(r>i){const c=i/2,l=(r-i)/2,g=ri(A,{x:0,y:-l}),u=ri(A,{x:0,y:l}),h=ri(A,{x:c,y:l});e.moveTo(h.x,h.y),e.arc(u.x,u.y,c,-a,-a+Math.PI),e.arc(g.x,g.y,c,-a+Math.PI,-a)}else{const c=i/2;e.moveTo(n+c,o),e.arc(n,o,c,0,Math.PI*2)}e.closePath()}function CP(t){const{ctx:e,points:n}=t;if(n.length<3)return;const o=n[0];if(o){e.moveTo(o.x,o.y);for(let i=1;i<n.length;i++){const r=n[i];r&&e.lineTo(r.x,r.y)}e.closePath()}}function nE(t){const{ctx:e,cx:n,cy:o,width:i,height:r,radius:s,ccwRotationDegrees:a=0}=t,A=a*Math.PI/180,c=IYe(fP(n,o),O$t(-A)),l=i/2,g=r/2,u=Math.min(s,l,g);if(u>0){const h=ri(c,{x:-l,y:-g}),d=ri(c,{x:l,y:-g}),m=ri(c,{x:l,y:g}),p=ri(c,{x:-l,y:g}),_=ri(c,{x:-l,y:0});e.moveTo(_.x,_.y),e.arcTo(h.x,h.y,d.x,d.y,u),e.arcTo(d.x,d.y,m.x,m.y,u),e.arcTo(m.x,m.y,p.x,p.y,u),e.arcTo(p.x,p.y,h.x,h.y,u)}else{const h=ri(c,{x:-l,y:-g}),d=ri(c,{x:l,y:-g}),m=ri(c,{x:l,y:g}),p=ri(c,{x:-l,y:g});e.moveTo(h.x,h.y),e.lineTo(d.x,d.y),e.lineTo(m.x,m.y),e.lineTo(p.x,p.y)}e.closePath()}function fni(t){const{ctx:e,pad:n,realToCanvasMat:o,color:i,drillCutouts:r}=t;if(e.save(),e.beginPath(),!z$t(e,n,o)){e.restore();return}e.clip(),e.beginPath(),z$t(e,n,o);for(const s of r)Cni(e,s,o);e.fillStyle=i,e.fill("evenodd"),e.restore()}function Ini(t){const{pad:e,holes:n=[],platedHoles:o=[],vias:i=[],cutouts:r=[]}=t,s=xni(e);if(!s)return[];const a=[],A=c=>{c&&Sni(s,Eni(c))&&a.push(c)};for(const c of r)A(Bni(c));for(const c of n)A(bni(c));for(const c of o)$$t(c.layers,e.layer)&&A(Qni(c));for(const c of i){if(!$$t(c.layers,e.layer))continue;const l=c.hole_diameter/2;if(l<=0)continue;const g={shape:"circle",x:c.x,y:c.y,radius:l};A(g)}return a}function z$t(t,e,n){return e.shape==="rect"||e.shape==="rotated_rect"?(W$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:vni(e),rotation:e.shape==="rotated_rect"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="circle"?(J$t(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n}),!0):e.shape==="pill"||e.shape==="rotated_pill"?(j$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.shape==="rotated_pill"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="polygon"&&e.points&&e.points.length>=3?(q$t(t,e.points,n),!0):!1}function Cni(t,e,n){if(e.shape==="circle"){J$t(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n});return}if(e.shape==="oval"){yni(t,{x:e.x,y:e.y,radiusX:e.radiusX,radiusY:e.radiusY,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="pill"){j$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="polygon"){q$t(t,e.points,n);return}W$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:e.radius,rotation:e.rotation,realToCanvasMat:n})}function J$t(t,e){const{x:n,y:o,radius:i,realToCanvasMat:r}=e,[s,a]=ri(r,[n,o]),A=i*Math.abs(r.a);t.moveTo(s+A,a),t.arc(s,a,A,0,Math.PI*2),t.closePath()}function yni(t,e){const{x:n,y:o,radiusX:i,radiusY:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=ri(a,[n,o]),l=i*Math.abs(a.a),g=r*Math.abs(a.a);t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),t.moveTo(l,0),t.ellipse(0,0,l,g,0,0,Math.PI*2),t.closePath(),t.restore()}function W$t(t,e){const{x:n,y:o,width:i,height:r,radius:s=0,rotation:a=0,realToCanvasMat:A}=e,[c,l]=ri(A,[n,o]),g=i*Math.abs(A.a),u=r*Math.abs(A.a),h=s*Math.abs(A.a);if(t.save(),t.translate(c,l),a!==0&&t.rotate(-a*(Math.PI/180)),h>0){const d=-g/2,m=-u/2,p=Math.min(h,g/2,u/2);t.moveTo(d+p,m),t.lineTo(d+g-p,m),t.arcTo(d+g,m,d+g,m+p,p),t.lineTo(d+g,m+u-p),t.arcTo(d+g,m+u,d+g-p,m+u,p),t.lineTo(d+p,m+u),t.arcTo(d,m+u,d,m+u-p,p),t.lineTo(d,m+p),t.arcTo(d,m,d+p,m,p),t.closePath()}else t.rect(-g/2,-u/2,g,u);t.restore()}function j$t(t,e){const{x:n,y:o,width:i,height:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=ri(a,[n,o]),l=i*Math.abs(a.a),g=r*Math.abs(a.a);if(t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),l>g){const u=g/2,h=l-g;t.moveTo(-h/2,-u),t.lineTo(h/2,-u),t.arc(h/2,0,u,-Math.PI/2,Math.PI/2),t.lineTo(-h/2,u),t.arc(-h/2,0,u,Math.PI/2,-Math.PI/2)}else if(g>l){const u=l/2,h=g-l;t.moveTo(u,-h/2),t.lineTo(u,h/2),t.arc(0,h/2,u,0,Math.PI),t.lineTo(-u,-h/2),t.arc(0,-h/2,u,Math.PI,0)}else t.moveTo(l/2,0),t.arc(0,0,l/2,0,Math.PI*2);t.closePath(),t.restore()}function q$t(t,e,n){const o=e[0];if(!o)return;const[i,r]=ri(n,[o.x,o.y]);t.moveTo(i,r);for(let s=1;s<e.length;s++){const a=e[s];if(!a)continue;const[A,c]=ri(n,[a.x,a.y]);t.lineTo(A,c)}t.closePath()}function xni(t){if(t.shape==="circle")return yP(t.x,t.y,t.radius,t.radius);if(t.shape==="rect"||t.shape==="rotated_rect"||t.shape==="pill"||t.shape==="rotated_pill"){const e=Math.hypot(t.width/2,t.height/2);return(t.shape==="rotated_rect"||t.shape==="rotated_pill")&&(t.ccw_rotation??0)!==0?yP(t.x,t.y,e,e):yP(t.x,t.y,t.width/2,t.height/2)}if(t.shape==="polygon"&&t.points&&t.points.length>=3)return X$t(t.points)}function Eni(t){if(t.shape==="polygon")return X$t(t.points);if(t.shape==="circle")return yP(t.x,t.y,t.radius,t.radius);if(t.shape==="oval"){if((t.rotation??0)!==0){const o=Math.hypot(t.radiusX,t.radiusY);return yP(t.x,t.y,o,o)}return yP(t.x,t.y,t.radiusX,t.radiusY)}const e=t.width/2,n=t.height/2;if((t.rotation??0)!==0){const o=Math.hypot(e,n);return yP(t.x,t.y,o,o)}return yP(t.x,t.y,e,n)}function Bni(t){if(t.shape==="circle")return t.radius<=0?void 0:{shape:"circle",x:t.center.x,y:t.center.y,radius:t.radius};if(t.shape==="rect")return t.width<=0||t.height<=0?void 0:{shape:"rect",x:t.center.x,y:t.center.y,width:t.width,height:t.height,radius:t.corner_radius,rotation:t.rotation};if(t.shape==="polygon"&&t.points.length>=3)return{shape:"polygon",points:t.points}}function X$t(t){let e=1/0,n=-1/0,o=1/0,i=-1/0;for(const r of t)e=Math.min(e,r.x),n=Math.max(n,r.x),o=Math.min(o,r.y),i=Math.max(i,r.y);return{minX:e,maxX:n,minY:o,maxY:i}}function yP(t,e,n,o){return{minX:t-n,maxX:t+n,minY:e-o,maxY:e+o}}function Sni(t,e){return t.minX<=e.maxX&&t.maxX>=e.minX&&t.minY<=e.maxY&&t.maxY>=e.minY}function bni(t){if(t.hole_shape==="circle"){const e=t.hole_diameter/2;return e<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:e}}if(t.hole_shape==="square")return t.hole_diameter<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_diameter,height:t.hole_diameter,rotation:Fue(t)};if(t.hole_shape==="oval")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:t.hole_width/2,radiusY:t.hole_height/2,rotation:Fue(t)};if(t.hole_shape==="rect")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Fue(t)};if(t.hole_shape==="pill"||t.hole_shape==="rotated_pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Fue(t)}}function Qni(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function Fue(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function vni(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function $$t(t,e){if(!t||t.length===0)return!0;const n=Z$t(e);return t.some(o=>Z$t(o)===n)}function Z$t(t){if(typeof t=="string")return t;if(t&&typeof t=="object"&&"name"in t&&typeof t.name=="string")return t.name}function Pni(t,e){const n=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16);return`rgba(${n}, ${o}, ${i}, ${e})`}function wni(t,e){return t.layers.includes("bottom")&&!t.layers.includes("top")?e.keepout.bottom:e.keepout.top}function eZt(t){const{ctx:e,strokeColor:n,hatchWidth:o,hatchSpacing:i,diagonal:r,getLineEndpoints:s}=t;e.strokeStyle=n,e.lineWidth=o,e.setLineDash([]);for(let a=-r;a<r*2;a+=i){const{startX:A,startY:c,endX:l,endY:g}=s(a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.stroke()}}function tZt(t){const{ctx:e,fillColor:n,drawPath:o,drawHatch:i}=t;o(),e.fillStyle=n,e.fill(),o(),e.clip(),i()}function Mni(t){const{ctx:e,keepout:n,realToCanvasMat:o,colorMap:i}=t,r=Math.abs(o.a),s=wni(n,i),a=Pni(s,.2),A=1*r,c=.15*r;if(n.shape==="rect"){const[l,g]=ri(o,[n.center.x,n.center.y]),u=n.width*r,h=n.height*r,d=n.rotation??0,m=Math.sqrt(u*u+h*h),p=u/2,_=h/2;e.save(),e.translate(l,g),d!==0&&e.rotate(-d*(Math.PI/180)),tZt({ctx:e,fillColor:a,drawPath:()=>_ni({ctx:e,cx:0,cy:0,width:u,height:h}),drawHatch:()=>eZt({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:m,getLineEndpoints:f=>({startX:-p+f,startY:-_,endX:-p+f+m,endY:-_+m})})}),e.restore();return}if(n.shape==="circle"){const[l,g]=ri(o,[n.center.x,n.center.y]),u=n.radius*r,h=u*2;e.save(),e.translate(l,g),tZt({ctx:e,fillColor:a,drawPath:()=>pni({ctx:e,cx:0,cy:0,radius:u}),drawHatch:()=>eZt({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:h,getLineEndpoints:d=>({startX:d-h,startY:-h,endX:d+h,endY:h})})}),e.restore()}}var Dni="rgba(255,255,255,0.5)";function Nni(t){const{ctx:e,pcbNoteDimension:n,realToCanvasMat:o}=t,i=n.color??Dni;K$t({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:i,fontSize:n.font_size,arrowSize:n.arrow_size,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function Rni(t){const{ctx:e,line:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.stroke_width??.1,a=n.is_dashed??!1,[A,c]=ri(o,[n.x1,n.y1]),[l,g]=ri(o,[n.x2,n.y2]),u=s*Math.abs(o.a);e.save(),a?e.setLineDash([u*2,u*2]):e.setLineDash([]),e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.lineWidth=u,e.strokeStyle=r,e.lineCap="round",e.stroke(),e.restore()}function Tni(t){const{ctx:e,path:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)";if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||xG({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function kni(t){const{ctx:e,rect:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.is_filled??!1,a=n.has_stroke??!0,A=n.is_stroke_dashed??!1;am({ctx:e,center:n.center,width:n.width,height:n.height,fill:s?r:void 0,stroke:a?r:void 0,strokeWidth:a?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:A})}var Fni="rgb(89, 148, 220)";function Lni(t){const{ctx:e,text:n,realToCanvasMat:o}=t,i=Fni,r=n.color??i,s=n.font_size??1;Yq({ctx:e,text:n.text??"",x:n.anchor_position.x,y:n.anchor_position.y,fontSize:s,color:r,realToCanvasMat:o,anchorAlignment:n.anchor_alignment??"center",mirrorX:n.is_mirrored_from_top_view??n.layer==="bottom"})}function Hni(t){const{ctx:e,panel:n,realToCanvasMat:o,colorMap:i}=t,{width:r,height:s,center:a}=n;if(r!==void 0&&s!==void 0&&a){const A=r/2,c=s/2,l=[{x:a.x-A,y:a.y-c},{x:a.x+A,y:a.y-c},{x:a.x+A,y:a.y+c},{x:a.x-A,y:a.y+c}];Tue({ctx:e,points:l,stroke:i.boardOutline,strokeWidth:.5,realToCanvasMat:o,closePath:!0})}}function Uq(t,e){if(t.length<3||e===0)return t;let n=0,o=0;for(const r of t)n+=r.x,o+=r.y;n/=t.length,o/=t.length;const i=[];for(const r of t){const s=r.x-n,a=r.y-o,A=Math.sqrt(s*s+a*a);if(A>0){const c=s/A,l=a/A;i.push({x:r.x+c*e,y:r.y+l*e})}else i.push({x:r.x+e,y:r.y})}return i}function nZt(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s}=t;if(n.is_covered_with_solder_mask===!0&&s)return;const a=i.copper[t.layer??"top"],A=r<0?Math.abs(r):0;if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2-A,fill:a,realToCanvasMat:o}),X6(e,()=>{Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2-A,radius_y:n.outer_height/2-A,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),X6(e,()=>{bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width-A*2,height:n.outer_height-A*2,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),X6(e,()=>{Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="circular_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Zm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.hole_ccw_rotation})}),Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.hole_ccw_rotation});return}if(n.shape==="hole_with_polygon_pad"){const c=n.pad_outline;if(c&&c.length>=3){const h=c.map(m=>({x:n.x+m.x,y:n.y+m.y})),d=A>0?Uq(h,-A):h;d.length>=3&&IP({ctx:e,points:d,fill:a,realToCanvasMat:o})}const l=n.x+(n.hole_offset_x??0),g=n.y+(n.hole_offset_y??0),u=n.hole_shape;u==="circle"?(X6(e,()=>{Zm({ctx:e,center:{x:l,y:g},radius:(n.hole_diameter??0)/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:l,y:g},radius:(n.hole_diameter??0)/2,fill:i.drill,realToCanvasMat:o})):u==="oval"?(X6(e,()=>{bB({ctx:e,center:{x:l,y:g},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:"#000",realToCanvasMat:o})}),bB({ctx:e,center:{x:l,y:g},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:i.drill,realToCanvasMat:o})):u==="pill"?(X6(e,()=>{Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o})):u==="rotated_pill"&&(X6(e,()=>{Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o}));return}}function X6(t,e){t.save(),t.globalCompositeOperation="destination-out",e(),t.restore()}function Oni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Gni(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t,r=Oni(n.layer,i);Zm({ctx:e,center:n.center,radius:n.radius,stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Yni(t){const{ctx:e,graphic:n,realToCanvasMat:o,colorMap:i}=t,r=n.layer==="bottom"?i.silkscreen.bottom:i.silkscreen.top;e.beginPath(),U$t({ctx:e,shape:n.brep_shape,realToCanvasMat:o}),e.fillStyle=r,e.fill("evenodd")}function Uni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Kni(t){const{ctx:e,line:n,realToCanvasMat:o,colorMap:i}=t,r=Uni(n.layer,i);xG({ctx:e,start:{x:n.x1,y:n.y1},end:{x:n.x2,y:n.y2},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}function Vni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function zni(t){const{ctx:e,oval:n,realToCanvasMat:o,colorMap:i}=t,r=Vni(n.layer,i);bB({ctx:e,center:n.center,radius_x:n.radius_x,radius_y:n.radius_y,stroke:r,strokeWidth:.1,realToCanvasMat:o,rotation:n.ccw_rotation??0})}function Jni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Wni(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=Jni(n.layer,i);if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||xG({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function jni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function qni(t){const{ctx:e,pill:n,realToCanvasMat:o,colorMap:i}=t,r=jni(n.layer,i);Jp({ctx:e,center:n.center,width:n.width,height:n.height,stroke:r,strokeWidth:.2,realToCanvasMat:o})}function Xni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function $ni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=Xni(n.layer,i);am({ctx:e,center:n.center,width:n.width,height:n.height,borderRadius:n.corner_radius,fill:n.is_filled?r:"transparent",stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Zni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function eoi(t){return t||"center"}function toi(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";if(!r)return;const s=Zni(n.layer,i),a=eoi(n.anchor_alignment),A=n.font_size??1;Yq({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:A,color:s,realToCanvasMat:o,anchorAlignment:a,rotation:n.ccw_rotation??0,mirrorX:n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function noi(t,e){return e.copper[t]??e.copper.top}function oZt(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function ooi(t){const{ctx:e,pad:n,realToCanvasMat:o,colorMap:i}=t,r=noi(n.layer,i),s=Ini(t);if(s.length>0){fni({ctx:e,pad:n,realToCanvasMat:o,color:r,drillCutouts:s});return}if(n.shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:oZt(n)});return}if(n.shape==="rotated_rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:oZt(n),ccwRotationDegrees:n.ccw_rotation??0});return}if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:r,realToCanvasMat:o});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o});return}if(n.shape==="rotated_pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,rotation:n.ccw_rotation??0});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:r,realToCanvasMat:o});return}}var Kq="rgb(105, 105, 105)";function iZt(t){const{ctx:e,solderPaste:n,realToCanvasMat:o}=t,i={x:n.x,y:n.y};if(n.shape==="rect"){am({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){am({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation});return}if(n.shape==="pill"){Jp({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:i,radius_x:n.width/2,radius_y:n.height/2,fill:Kq,realToCanvasMat:o});return}n.shape==="circle"&&Zm({ctx:e,center:i,radius:n.radius,fill:Kq,realToCanvasMat:o})}function ioi(t){return typeof t=="function"}function rZt(t,e,n){if(e<=0||n<=0)return null;const o=globalThis;let i=null;if("OffscreenCanvas"in o&&typeof o.OffscreenCanvas=="function")i=new o.OffscreenCanvas(e,n);else if("document"in o&&o.document&&typeof o.document.createElement=="function"){const r=o.document.createElement("canvas");r.width=e,r.height=n,i=r}else{const r=t.canvas.constructor;if(ioi(r))try{i=new r(e,n)}catch{return null}}return i?i.getContext("2d"):null}function roi(t){return"createPattern"in t&&typeof Reflect.get(t,"createPattern")=="function"}function sZt(t,e){if(t===e||e.canvas.width<=0||e.canvas.height<=0||!roi(t))return!1;let n=null;try{n=t.createPattern(e.canvas,"no-repeat")}catch{return!1}return n?(t.save(),t.globalCompositeOperation="source-over",t.fillStyle=n,t.fillRect(0,0,e.canvas.width,e.canvas.height),t.restore(),!0):!1}function aZt(t){const{ctx:e,board:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a,outline:A}=n;if(A&&Array.isArray(A)&&A.length>=3){const c=A.map(l=>{const[g,u]=ri(o,[l.x,l.y]);return{x:g,y:u}});e.beginPath(),CP({ctx:e,points:c}),e.fillStyle=i,e.fill()}else if(r!==void 0&&s!==void 0&&a){const[c,l]=ri(o,[a.x,a.y]),g=r*Math.abs(o.a),u=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(c-g/2,l-u/2,g,u)}}function soi(t){const{ctx:e,panel:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a}=n;if(r===void 0||s===void 0||!a)return;const[A,c]=ri(o,[a.x,a.y]),l=r*Math.abs(o.a),g=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(A-l/2,c-g/2,l,g)}function oE(t){t.save(),t.globalCompositeOperation="destination-out",t.fill(),t.restore()}function aoi(t){const{ctx:e,cutout:n,realToCanvasMat:o}=t;if(n.shape==="rect"){const[i,r]=ri(o,[n.center?.x??0,n.center?.y??0]),s=n.width*Math.abs(o.a),a=n.height*Math.abs(o.a),A=(n.corner_radius??0)*Math.abs(o.a);e.save(),e.translate(i,r),n.rotation&&e.rotate(-n.rotation*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:s,height:a,radius:A}),e.restore(),oE(e)}else if(n.shape==="circle"){const[i,r]=ri(o,[n.center?.x??0,n.center?.y??0]),s=n.radius*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),oE(e)}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const i=n.points.map(r=>{const[s,a]=ri(o,[r.x,r.y]);return{x:s,y:a}});e.beginPath(),CP({ctx:e,points:i}),oE(e)}}var Of="rgba(255, 255, 255, 1)";function BYe(t){const{ctx:e,elements:n,layer:o,realToCanvasMat:i}=t;e.save(),e.globalCompositeOperation="destination-out";for(const r of n){if(r.type==="pcb_smtpad"){if(r.layer!==o||r.is_covered_with_solder_mask===!0)continue;Aoi({ctx:e,pad:r,realToCanvasMat:i});continue}if(r.type==="pcb_plated_hole"){if(r.layers&&!r.layers.includes(o)||r.is_covered_with_solder_mask===!0)continue;coi({ctx:e,hole:r,realToCanvasMat:i});continue}if(r.type==="pcb_via"){if(r.layers&&!r.layers.includes(o))continue;Zm({ctx:e,center:{x:r.x,y:r.y},radius:r.outer_diameter/2,fill:Of,realToCanvasMat:i});continue}if(r.type==="pcb_hole"){if(r.is_covered_with_solder_mask===!0)continue;loi({ctx:e,hole:r,realToCanvasMat:i})}}e.restore()}function Aoi(t){const{ctx:e,pad:n,realToCanvasMat:o}=t;if(n.shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,ccwRotationDegrees:n.ccw_rotation??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill"||n.shape==="rotated_pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,rotation:n.shape==="rotated_pill"?n.ccw_rotation??0:0,fill:Of,realToCanvasMat:o});return}n.shape==="polygon"&&n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:Of,realToCanvasMat:o})}function coi(t){const{ctx:e,hole:n,realToCanvasMat:o}=t;if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:Of,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2,radius_y:n.outer_height/2,rotation:n.ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width,height:n.outer_height,rotation:n.ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="circular_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:Of,realToCanvasMat:o});return}n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3&&IP({ctx:e,points:n.pad_outline.map(i=>({x:n.x+i.x,y:n.y+i.y})),fill:Of,realToCanvasMat:o})}function loi(t){const{ctx:e,hole:n,realToCanvasMat:o}=t,i="ccw_rotation"in n&&typeof n.ccw_rotation=="number"?n.ccw_rotation:0;if(n.hole_shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="square"){am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter,height:n.hole_diameter,ccwRotationDegrees:i,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,rotation:i,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,ccwRotationDegrees:i,fill:Of,realToCanvasMat:o});return}(n.hole_shape==="pill"||n.hole_shape==="rotated_pill")&&Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,rotation:i,fill:Of,realToCanvasMat:o})}function goi(t,e,n,o,i){if(Math.abs(i)<1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a<1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),g=l-A,u=(t+n)/2,h=(e+o)/2,d=-s/a,m=r/a,p=i>0?-1:1;return{centerX:u+p*d*g,centerY:h+p*m*g,radius:l}}function SYe(t,e,n,o,i,r,s){if(Math.abs(r)<1e-10){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const a=goi(e,n,o,i,r);if(!a){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const[A,c]=ri(s,[e,n]),[l,g]=ri(s,[o,i]),[u,h]=ri(s,[a.centerX,a.centerY]),d=Math.hypot(A-u,c-h),m=Math.atan2(c-h,A-u),p=Math.atan2(g-h,l-u),f=s.a*s.d-s.b*s.c<0,I=r>0?!f:f;t.arc(u,h,d,m,p,I)}function AZt(t,e,n){if(e.vertices.length<2)return;if(e.vertices.length===2){const s=e.vertices[0],a=e.vertices[1];if(s&&a&&Math.abs((s.bulge??0)-1)<1e-10&&Math.abs((a.bulge??0)-1)<1e-10){const[A,c]=ri(n,[s.x,s.y]);t.moveTo(A,c),SYe(t,s.x,s.y,a.x,a.y,1,n),SYe(t,a.x,a.y,s.x,s.y,1,n);return}}const o=e.vertices[0];if(!o)return;const[i,r]=ri(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s<e.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];if(!a||!A)continue;const c=a.bulge??0;if(Math.abs(c)<1e-10){const[l,g]=ri(n,[A.x,A.y]);t.lineTo(l,g)}else SYe(t,a.x,a.y,A.x,A.y,c,n)}}function uoi(t){const{ctx:e,pour:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r,elements:s}=t;if(n.layer===r&&n.covered_with_solder_mask===!0){if(e.save(),e.fillStyle=i,n.shape==="rect"){const[a,A]=ri(o,[n.center.x,n.center.y]),c=n.width*Math.abs(o.a),l=n.height*Math.abs(o.a);e.translate(a,A),n.rotation&&e.rotate(-n.rotation*(Math.PI/180)),e.beginPath(),e.rect(-c/2,-l/2,c,l),e.fill(),e.restore(),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o});return}if(n.shape==="polygon"){if(n.points&&n.points.length>=3){const a=n.points.map(c=>ri(o,[c.x,c.y])),A=a[0];if(A){e.beginPath();const[c,l]=A;e.moveTo(c,l);for(let g=1;g<a.length;g++){const u=a[g];if(!u)continue;const[h,d]=u;e.lineTo(h,d)}e.closePath(),e.fill(),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o})}}e.restore();return}if(n.shape==="brep"){if(e.beginPath(),AZt(e,n.brep_shape.outer_ring,o),n.brep_shape.inner_rings)for(const a of n.brep_shape.inner_rings)AZt(e,a,o);e.fill("evenodd"),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o}),e.restore();return}e.restore()}}function doi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i}=t,r=n.is_covered_with_solder_mask===!0,s=n.soldermask_margin??0;r?(e.fillStyle=i,Lue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):s<0?(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:s}),oE(e),hoi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:s})):s>0?(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:s}),oE(e)):(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),oE(e))}function cZt(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function Lue(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t,r=cZt(n);if(n.hole_shape==="circle"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(s,a,A,0,Math.PI*2),e.closePath()}else if(n.hole_shape==="square"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_diameter+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-A/2,A,A),e.closePath(),e.restore()}else if(n.hole_shape==="oval"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width/2+i)*Math.abs(o.a),c=(n.hole_height/2+i)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.ellipse(0,0,A,c,0,0,Math.PI*2),e.closePath(),e.restore()}else if(n.hole_shape==="rect"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-c/2,A,c),e.closePath(),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:A,height:c}),e.restore()}}function hoi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r),a=cZt(n);if(e.fillStyle=i,n.hole_shape==="circle"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_diameter/2*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,l-g);e.save(),e.beginPath(),e.arc(A,c,l,0,Math.PI*2),u>0&&e.arc(A,c,u,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="square"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_diameter*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,l-g*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-l/2,l,l),u>0&&e.rect(-u/2,-u/2,u,u),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="oval"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width/2*Math.abs(o.a),g=n.hole_height/2*Math.abs(o.a),u=s*Math.abs(o.a),h=Math.max(0,l-u),d=Math.max(0,g-u);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.ellipse(0,0,l,g,0,0,Math.PI*2),h>0&&d>0&&(e.moveTo(h,0),e.ellipse(0,0,h,d,0,0,Math.PI*2)),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="rect"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),g=n.hole_height*Math.abs(o.a),u=s*Math.abs(o.a),h=Math.max(0,l-u*2),d=Math.max(0,g-u*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-g/2,l,g),h>0&&d>0&&e.rect(-h/2,-d/2,h,d),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),g=n.hole_height*Math.abs(o.a),u=s*Math.abs(o.a);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:l,height:g});const h=l-u*2,d=g-u*2;h>0&&d>0&&PS({ctx:e,cx:0,cy:0,width:h,height:d}),e.fill("evenodd"),e.restore()}}function moi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layers&&!n.layers.includes(r))return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;s?(e.fillStyle=i,Hue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):a<0?(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:a}),oE(e),poi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:a})):a>0?(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:a}),oE(e)):(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),oE(e))}function Hue(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t;if(n.shape==="circle"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.closePath()}else if(n.shape==="oval"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_width/2+i)*Math.abs(o.a),A=(n.outer_height/2+i)*Math.abs(o.a);e.beginPath(),e.ellipse(r,s,a,A,-((n.ccw_rotation??0)*Math.PI)/180,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_width+i*2)*Math.abs(o.a),A=(n.outer_height+i*2)*Math.abs(o.a);e.beginPath(),PS({ctx:e,cx:r,cy:s,width:a,height:A,ccwRotationDegrees:n.ccw_rotation})}else if(n.shape==="circular_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="pill_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c})}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const r=n.pad_outline.map(A=>({x:n.x+A.x,y:n.y+A.y})),a=(i!==0?Uq(r,i):r).map(A=>{const[c,l]=ri(o,[A.x,A.y]);return{x:c,y:l}});e.beginPath(),CP({ctx:e,points:a})}}function poi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r);if(e.fillStyle=i,n.shape==="circle"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a),l=s*Math.abs(o.a),g=Math.max(0,c-l);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),g>0&&e.arc(a,A,g,0,Math.PI*2,!0),e.fill("evenodd")}else if(n.shape==="oval"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_width/2*Math.abs(o.a),l=n.outer_height/2*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,c-g),h=Math.max(0,l-g),d=-((n.ccw_rotation??0)*Math.PI)/180;if(e.beginPath(),e.ellipse(a,A,c,l,d,0,Math.PI*2),u>0&&h>0){const m=a+u*Math.cos(d),p=A+u*Math.sin(d);e.moveTo(m,p),e.ellipse(a,A,u,h,d,0,Math.PI*2)}e.fill("evenodd")}else if(n.shape==="pill"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_width*Math.abs(o.a),l=n.outer_height*Math.abs(o.a),g=s*Math.abs(o.a);e.beginPath(),PS({ctx:e,cx:a,cy:A,width:c,height:l,ccwRotationDegrees:n.ccw_rotation});const u=c-g*2,h=l-g*2;u>0&&h>0&&PS({ctx:e,cx:a,cy:A,width:u,height:h,ccwRotationDegrees:n.ccw_rotation}),e.fill("evenodd")}else if(n.shape==="circular_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="pill_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m})}e.fill("evenodd")}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const a=n.pad_outline.map(l=>({x:n.x+l.x,y:n.y+l.y}));e.beginPath();const A=a.map(l=>{const[g,u]=ri(o,[l.x,l.y]);return{x:g,y:u}});CP({ctx:e,points:A});const c=Uq(a,-s);if(c.length>=3){const l=c.map(g=>{const[u,h]=ri(o,[g.x,g.y]);return{x:u,y:h}});CP({ctx:e,points:l})}e.fill("evenodd")}}function _oi(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layer!==r)return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;let A=a,c=a,l=a,g=a;(n.shape==="rect"||n.shape==="rotated_rect")&&(A=n.soldermask_margin_left??a,c=n.soldermask_margin_right??a,l=n.soldermask_margin_top??a,g=n.soldermask_margin_bottom??a),s?(e.fillStyle=i,Oue({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),e.fill()):A<0||c<0||l<0||g<0?(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:g}),oE(e),foi({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:A,mr:c,mt:l,mb:g})):A>0||c>0||l>0||g>0?(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:g}),oE(e)):(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),oE(e))}function Oue(t){const{ctx:e,pad:n,realToCanvasMat:o,ml:i,mr:r,mt:s,mb:a}=t,A=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0;if(n.shape==="rect"||n.shape==="rotated_rect"){const c=n.corner_radius??n.rect_border_radius??0,l=A*Math.PI/180,g=(r-i)/2,u=(s-a)/2,h=g*Math.cos(l)-u*Math.sin(l),d=g*Math.sin(l)+u*Math.cos(l),[m,p]=ri(o,[n.x+h,n.y+d]),_=(n.width+i+r)*Math.abs(o.a),f=(n.height+s+a)*Math.abs(o.a),I=c*Math.abs(o.a);e.save(),e.translate(m,p),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I}),e.restore()}else if(n.shape==="circle"){const c=(i+r+s+a)/4,[l,g]=ri(o,[n.x,n.y]),u=(n.radius+c)*Math.abs(o.a);e.beginPath(),e.arc(l,g,u,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const c=(i+r)/2,[l,g]=ri(o,[n.x,n.y]),u=(n.width+c*2)*Math.abs(o.a),h=(n.height+c*2)*Math.abs(o.a);e.save(),e.translate(l,g),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:u,height:h}),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const c=(i+r+s+a)/4,g=(c!==0?Uq(n.points,c):n.points).map(u=>{const[h,d]=ri(o,[u.x,u.y]);return{x:h,y:d}});e.beginPath(),CP({ctx:e,points:g})}}function foi(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:r,mr:s,mt:a,mb:A}=t,c=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0,l=Math.max(0,-r),g=Math.max(0,-s),u=Math.max(0,-a),h=Math.max(0,-A);if(e.fillStyle=i,n.shape==="rect"||n.shape==="rotated_rect"){const d=n.corner_radius??n.rect_border_radius??0,[m,p]=ri(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a),C=l*Math.abs(o.a),y=g*Math.abs(o.a),x=u*Math.abs(o.a),E=h*Math.abs(o.a);e.save(),e.translate(m,p),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I});const B=_-C-y,b=f-x-E,Q=(C-y)/2,w=(x-E)/2,D=Math.max(0,I-(C+y+x+E)/4);B>0&&b>0&&nE({ctx:e,cx:Q,cy:w,width:B,height:b,radius:D}),e.fill("evenodd"),e.restore()}else if(n.shape==="circle"){const d=Math.max(l,g,u,h),[m,p]=ri(o,[n.x,n.y]),_=n.radius*Math.abs(o.a),f=d*Math.abs(o.a),I=Math.max(0,_-f);e.save(),e.beginPath(),e.arc(m,p,_,0,Math.PI*2),I>0&&e.arc(m,p,I,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const d=Math.max(l,g,u,h),[m,p]=ri(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a);e.save(),e.translate(m,p),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:_,height:f});const C=_-I*2,y=f-I*2;C>0&&y>0&&PS({ctx:e,cx:0,cy:0,width:C,height:y}),e.fill("evenodd"),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const d=Math.max(l,g,u,h);e.save(),e.beginPath();const m=n.points.map(_=>{const[f,I]=ri(o,[_.x,_.y]);return{x:f,y:I}});CP({ctx:e,points:m});const p=Uq(n.points,-d);if(p.length>=3){const _=p.map(f=>{const[I,C]=ri(o,[f.x,f.y]);return{x:I,y:C}});CP({ctx:e,points:_})}e.fill("evenodd"),e.restore()}}function EG(t,e){const n=Math.hypot(t,e);return n<=Number.EPSILON?{x:0,y:0}:{x:t/n,y:e/n}}function Ioi(t,e){const n=t.length;if(n<2)return{x:1,y:0};if(e<=0){const c=t[1],l=t[0];if(!c||!l)return{x:1,y:0};const g=EG(c.x-l.x,c.y-l.y);return g.x===0&&g.y===0?{x:1,y:0}:g}if(e>=n-1){const c=t[n-2],l=t[n-1];if(!c||!l)return{x:1,y:0};const g=EG(l.x-c.x,l.y-c.y);return g.x===0&&g.y===0?{x:1,y:0}:g}const o=t[e-1],i=t[e],r=t[e+1];if(!o||!i||!r)return{x:1,y:0};const s=EG(i.x-o.x,i.y-o.y),a=EG(r.x-i.x,r.y-i.y),A=EG(s.x+a.x,s.y+a.y);return A.x===0&&A.y===0?s.x!==0||s.y!==0?s:a.x!==0||a.y!==0?a:{x:1,y:0}:A}function lZt(t){const e=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const r=Ioi(t,o),s=EG(-r.y,r.x),a=i.width/2;e.push({x:i.x+s.x*a,y:i.y+s.y*a}),n.push({x:i.x-s.x*a,y:i.y-s.y*a})}return e.concat(n.reverse())}function bYe(t){const e=[];let n=[],o=null;for(const i of t??[]){if(!i||i.route_type!=="wire"){n.length>=2&&e.push(n),n=[],o=null;continue}const r=i.layer??o;if(!r)continue;const s=i.x,a=i.y;typeof s!="number"||typeof a!="number"||typeof i.width=="number"&&(i.width,o&&r!==o&&(n.length>=2&&e.push(n),n=[]),o=r,n.push(i))}return n.length>=2&&e.push(n),e}var gZt=1e-6;function uZt(t){const{ctx:e,trace:n,realToCanvasMat:o,vias:i,platedHoles:r,layer:s}=t;if(!n.route||n.route.length<2)return;const a=bYe(n.route);if(a.length===0)return;const A=new Map;for(const c of a){const l=c[0]?.layer,g=c[c.length-1];if(!(!l||!g)&&!(s&&l!==s)){for(const u of i){if(u.layers&&Array.isArray(u.layers)&&!u.layers.includes(l)||!dZt(g.x,g.y,u.x,u.y))continue;const h=u.hole_diameter/2;if(h<=0)continue;const d={shape:"circle",x:u.x,y:u.y,radius:h};A.set(hZt(d),d)}for(const u of r){if(u.layers&&Array.isArray(u.layers)&&!u.layers.includes(l))continue;const h=Coi(u);h&&dZt(g.x,g.y,h.x,h.y)&&A.set(hZt(h),h)}}}if(A.size!==0){e.save(),e.globalCompositeOperation="destination-out";for(const c of A.values()){if(c.shape==="circle"){Zm({ctx:e,center:{x:c.x,y:c.y},radius:c.radius,fill:"#000",realToCanvasMat:o});continue}if(c.shape==="oval"){bB({ctx:e,center:{x:c.x,y:c.y},radius_x:c.radiusX,radius_y:c.radiusY,fill:"#000",realToCanvasMat:o,rotation:c.rotation});continue}Jp({ctx:e,center:{x:c.x,y:c.y},width:c.width,height:c.height,fill:"#000",realToCanvasMat:o,rotation:c.rotation})}e.restore()}}function Coi(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function dZt(t,e,n,o){return Math.abs(t-n)<=gZt&&Math.abs(e-o)<=gZt}function hZt(t){return t.shape==="circle"?`circle:${t.x}:${t.y}:${t.radius}`:t.shape==="oval"?`oval:${t.x}:${t.y}:${t.radiusX}:${t.radiusY}:${t.rotation??0}`:`pill:${t.x}:${t.y}:${t.width}:${t.height}:${t.rotation??0}`}function yoi(t){const{ctx:e,trace:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=bYe(n.route);for(const a of s)if(a[0]?.layer===r){if(n.route_thickness_mode==="interpolated"){IP({ctx:e,points:lZt(a),fill:i,realToCanvasMat:o});continue}for(let c=0;c<a.length-1;c++){const l=a[c],g=a[c+1];!l||!g||xG({ctx:e,start:{x:l.x,y:l.y},end:{x:g.x,y:g.y},strokeWidth:l.width,stroke:i,realToCanvasMat:o,lineCap:"round"})}}uZt({ctx:e,trace:n,realToCanvasMat:o,layer:r,vias:t.vias,platedHoles:t.platedHoles})}function xoi(t){const{ctx:e,via:n,realToCanvasMat:o}=t,[i,r]=ri(o,[n.x,n.y]),s=n.outer_diameter/2*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),oE(e)}function mZt(t){const{ctx:e,elements:n,realToCanvasMat:o,colorMap:i,layer:r,drawSoldermask:s}=t;if(!s||e.canvas.width<=0||e.canvas.height<=0)return;const a=n.filter(d=>d.type==="pcb_board"),A=n.find(d=>d.type==="pcb_panel");if(a.length===0&&!A)return;const c=i.soldermask[r]??i.soldermask.top,l=i.soldermaskOverCopper[r]??i.soldermaskOverCopper.top,g=n.filter(d=>d.type==="pcb_via"),u=n.filter(d=>d.type==="pcb_plated_hole"),h=rZt(e,e.canvas.width,e.canvas.height)??e;if(A&&soi({ctx:h,panel:A,realToCanvasMat:o,soldermaskColor:c}),A&&a.length>0){h.save(),h.globalCompositeOperation="destination-out";for(const d of a)aZt({ctx:h,board:d,realToCanvasMat:o,soldermaskColor:"#000"});h.restore()}for(const d of a)aZt({ctx:h,board:d,realToCanvasMat:o,soldermaskColor:c});for(const d of n)d.type==="pcb_trace"?yoi({ctx:h,trace:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r,vias:g,platedHoles:u}):d.type==="pcb_copper_pour"&&uoi({ctx:h,pour:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r,elements:n});for(const d of n)Eoi({ctx:h,element:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r});sZt(e,h)}function Eoi(t){const{ctx:e,element:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.type==="pcb_smtpad")_oi({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_plated_hole")moi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_hole")doi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i});else if(n.type==="pcb_via")xoi({ctx:e,via:n,realToCanvasMat:o});else if(n.type==="pcb_cutout")aoi({ctx:e,cutout:n,realToCanvasMat:o});else{if(n.type==="pcb_copper_pour")return;if(n.type==="pcb_trace")return}}function Boi(t,e){return e.copper[t]??e.copper.top}function Soi(t){const{ctx:e,trace:n,realToCanvasMat:o,colorMap:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=bYe(n.route);for(const a of s){const A=a[0]?.layer;if(!A||r&&A!==r)continue;const c=Boi(A,i);if(n.route_thickness_mode==="interpolated"){IP({ctx:e,points:lZt(a),fill:c,realToCanvasMat:o});continue}for(let l=0;l<a.length-1;l++){const g=a[l],u=a[l+1];!g||!u||g.is_inside_copper_pour&&u.is_inside_copper_pour||xG({ctx:e,start:{x:g.x,y:g.y},end:{x:u.x,y:u.y},strokeWidth:g.width,stroke:c,realToCanvasMat:o,lineCap:"round"})}}uZt({ctx:e,trace:n,realToCanvasMat:o,vias:t.vias??[],platedHoles:t.platedHoles??[],layer:r})}function pZt(t){const{ctx:e,traces:n,copperPours:o,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a,renderLayers:A}=t;for(const c of Qoi(n,A)){const l=o.filter(u=>u.layer===c);if(l.length===0){QYe({ctx:e,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a});continue}const g=rZt(e,e.canvas.width,e.canvas.height);g&&(QYe({ctx:g,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}),boi({ctx:g,copperPours:l,realToCanvasMat:i}),sZt(e,g))||(e.save(),voi({ctx:e,copperPours:l,realToCanvasMat:i}),QYe({ctx:e,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}),e.restore())}}function QYe(t){const{ctx:e,traces:n,layer:o,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}=t;for(const A of n)Soi({ctx:e,trace:A,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a,layer:o})}function boi(t){const{ctx:e,copperPours:n,realToCanvasMat:o}=t;if(n.length!==0){e.save(),e.globalCompositeOperation="destination-out",e.fillStyle="#000";for(const i of n)e.beginPath(),yYe({ctx:e,pour:i,realToCanvasMat:o}),e.fill(i.shape==="brep"?"evenodd":"nonzero");e.restore()}}function Qoi(t,e){const n=new Set;for(const o of t)for(const i of o.route??[])i.route_type!=="wire"||!i.layer||e?.length&&!e.includes(`${i.layer}_copper`)||n.add(i.layer);return[...n]}function voi(t){const{ctx:e,copperPours:n,realToCanvasMat:o}=t;if(n.length!==0){e.beginPath(),e.rect(0,0,e.canvas.width,e.canvas.height);for(const i of n)yYe({ctx:e,pour:i,realToCanvasMat:o});e.clip("evenodd")}}function _Zt(t){const{ctx:e,via:n,realToCanvasMat:o,colorMap:i,layer:r}=t;Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:i.copper[r??"top"],realToCanvasMat:o}),e.save(),e.globalCompositeOperation="destination-out",Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o}),e.restore(),Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o})}function Cx(t,e){if(!e.layers||e.layers.length===0)return!0;if(t.type==="pcb_silkscreen_graphic")return e.layers.some(o=>o===`${t.layer}_silkscreen`);const n=e4e(t);return n.length===0?!0:n.some(o=>e.layers.includes(o))}var Poi={copper:{top:"rgb(200, 52, 52)",inner1:"rgb(255, 140, 0)",inner2:"rgb(255, 215, 0)",inner3:"rgb(50, 205, 50)",inner4:"rgb(64, 224, 208)",inner5:"rgb(138, 43, 226)",inner6:"rgb(255, 105, 180)",inner7:"rgb(232, 178, 167)",inner8:"rgb(242, 237, 161)",bottom:"rgb(77, 127, 196)"},copperPour:{top:"rgb(230, 95, 95)",bottom:"rgb(122, 162, 222)"},soldermaskWithCopperUnderneath:{top:"rgb(18, 82, 50)",bottom:"rgb(77, 127, 196)"},soldermask:{top:"rgb(12, 55, 33)",bottom:"rgb(12, 55, 33)"},soldermaskOverCopper:{top:"rgb(52, 135, 73)",bottom:"rgb(52, 135, 73)"},substrate:"rgb(201, 162, 110)",drill:"#FF26E2",silkscreen:{top:"#f2eda1",bottom:"#5da9e9"},boardOutline:"rgba(255, 255, 255, 0.5)",courtyard:{top:"#FF00FF",bottom:"rgb(38, 233, 255)"},keepout:{top:"#FF6B6B",bottom:"#5da9e9"},fabricationNote:"rgba(255, 255, 255, 0.5)"};function woi(t){return!t||t.length===0?"top":(t.find(n=>n.endsWith("_copper"))??t[0]??"top_copper").split("_")[0]}var BG=(t,e)=>t.layers?.includes(e)??!0,W5=class $Cn{ctx;colorMap;realToCanvasMat;constructor(e){if("getContext"in e&&typeof e.getContext=="function"){const n=e.getContext("2d");if(!n)throw new Error("Failed to get 2D rendering context from canvas");this.ctx=n}else this.ctx=e;this.colorMap={...Poi},this.realToCanvasMat=bti()}configure(e){e.colorOverrides&&(this.colorMap={...this.colorMap,...e.colorOverrides,copper:{...this.colorMap.copper,...e.colorOverrides.copper},copperPour:{...this.colorMap.copperPour,...e.colorOverrides.copperPour},silkscreen:{...this.colorMap.silkscreen,...e.colorOverrides.silkscreen},soldermask:{...this.colorMap.soldermask,...e.colorOverrides.soldermask},soldermaskWithCopperUnderneath:{...this.colorMap.soldermaskWithCopperUnderneath,...e.colorOverrides.soldermaskWithCopperUnderneath},soldermaskOverCopper:{...this.colorMap.soldermaskOverCopper,...e.colorOverrides.soldermaskOverCopper}})}setCameraBounds(e){const n=this.ctx.canvas,o=n.width,i=n.height,r=e.maxX-e.minX,s=e.maxY-e.minY,a=o/r,A=i/s,c=Math.min(a,A),l=(o-r*c)/2,g=(i-s*c)/2;this.realToCanvasMat=IYe(fP(l,g),Pti(c,-c),fP(-e.minX,-e.maxY))}drawElements(e,n={}){const o=woi(n.layers),i=e.find(x=>x.type==="pcb_board"),r=e.find(x=>x.type==="pcb_panel");r&&Hni({ctx:this.ctx,panel:r,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});const s=n.drawBoardMaterial??!1,a=n.drawSoldermask??!1,A=n.drawSolderPaste??!1,c=n.drawSoldermaskTop!==void 0||n.drawSoldermaskBottom!==void 0,l=n.drawSolderPasteTop!==void 0||n.drawSolderPasteBottom!==void 0,g=a&&(i!==void 0||r!==void 0)&&(n.drawSoldermaskTop??!c),u=a&&(i!==void 0||r!==void 0)&&(n.drawSoldermaskBottom??!1),h=A&&(n.drawSolderPasteTop??!l)&&e.some(x=>x.type==="pcb_solder_paste"&&x.layer==="top"),d=A&&(n.drawSolderPasteBottom??!1)&&e.some(x=>x.type==="pcb_solder_paste"&&x.layer==="bottom"),m=g||h,p=e.filter(x=>Cx(x,n)&&x.type==="pcb_via"&&BG(x,o)),_=e.filter(x=>Cx(x,n)&&x.type==="pcb_hole"),f=e.filter(x=>Cx(x,n)&&x.type==="pcb_plated_hole"&&BG(x,o)),I=e.filter(x=>Cx(x,n)&&x.type==="pcb_cutout"),C=(n.clipContextElements??e).filter(x=>Cx(x,n)&&x.type==="pcb_copper_pour"),y=e.filter(x=>Cx(x,n)&&x.type==="pcb_trace");i&&Mti({ctx:this.ctx,board:i,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,drawBoardMaterial:s,minBoardOutlineStrokePx:n.minBoardOutlineStrokePx});for(const x of e)Cx(x,n)&&x.type==="pcb_copper_pour"&&Rti({ctx:this.ctx,pour:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});for(const x of e)Cx(x,n)&&(x.type==="pcb_smtpad"&&ooi({ctx:this.ctx,pad:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,holes:_,platedHoles:f,vias:p,cutouts:I}),x.type==="pcb_copper_text"&&eni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}));if(m){pZt({ctx:this.ctx,traces:y,copperPours:C,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,vias:p,platedHoles:f,renderLayers:n.layers});for(const x of e)Cx(x,n)&&(x.type==="pcb_hole"&&V$t({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g}),x.type==="pcb_plated_hole"&&BG(x,o)&&nZt({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g,layer:o}),x.type==="pcb_via"&&BG(x,o)&&_Zt({ctx:this.ctx,via:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:o}))}if(g&&mZt({ctx:this.ctx,elements:e,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:"top",drawSoldermask:!0}),h)for(const x of e)x.type!=="pcb_solder_paste"||x.layer!=="top"||iZt({ctx:this.ctx,solderPaste:x,realToCanvasMat:this.realToCanvasMat});for(const x of e)Cx(x,n)&&(x.type==="pcb_silkscreen_text"&&toi({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_rect"&&$ni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_circle"&&Gni({ctx:this.ctx,circle:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_line"&&Kni({ctx:this.ctx,line:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_path"&&Wni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_pill"&&qni({ctx:this.ctx,pill:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_oval"&&zni({ctx:this.ctx,oval:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_graphic"&&Yni({ctx:this.ctx,graphic:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}));m||pZt({ctx:this.ctx,traces:y,copperPours:C,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,vias:p,platedHoles:f,renderLayers:n.layers});for(const x of e)Cx(x,n)&&x.type==="pcb_hole"&&!m&&V$t({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g});for(const x of e)Cx(x,n)&&(x.type==="pcb_plated_hole"&&!m&&BG(x,o)&&nZt({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g,layer:o}),x.type==="pcb_via"&&!m&&BG(x,o)&&_Zt({ctx:this.ctx,via:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:o}));if(u&&mZt({ctx:this.ctx,elements:e,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:"bottom",drawSoldermask:!0}),d)for(const x of e)x.type!=="pcb_solder_paste"||x.layer!=="bottom"||iZt({ctx:this.ctx,solderPaste:x,realToCanvasMat:this.realToCanvasMat});for(const x of e)Cx(x,n)&&x.type==="pcb_cutout"&&ani({ctx:this.ctx,cutout:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});for(const x of e){if(!Cx(x,n))continue;x.type==="pcb_keepout"&&Mni({ctx:this.ctx,keepout:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_text"&&mni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_rect"&&dni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});const E=n.showPcbNotes??!0;E&&x.type==="pcb_note_rect"&&kni({realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,ctx:this.ctx,rect:x}),x.type==="pcb_fabrication_note_path"&&uni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_path"&&Tni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_text"&&Lni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_line"&&Rni({ctx:this.ctx,line:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_dimension"&&Nni({ctx:this.ctx,pcbNoteDimension:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_dimension"&&gni({ctx:this.ctx,pcbFabricationNoteDimension:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_circle"&&nni({ctx:this.ctx,circle:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_rect"&&sni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_outline"&&ini({ctx:this.ctx,outline:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap})}n.clearDrillHoles&&this.clearDrillHoles(e,o)}clearDrillHoles(e,n){const o=e.filter(s=>s.type==="pcb_hole"||s.type==="pcb_plated_hole"||s.type==="pcb_via"||s.type==="pcb_cutout");if(o.length===0)return;const i="rgba(0,0,0,0)",r=new $Cn(this.ctx);r.realToCanvasMat=this.realToCanvasMat,r.configure({colorOverrides:{copper:{top:i,bottom:i,inner1:i,inner2:i,inner3:i,inner4:i,inner5:i,inner6:i,inner7:i,inner8:i},drill:"#000"}}),this.ctx.save(),this.ctx.globalCompositeOperation="destination-out",r.drawElements(o,{layers:[`${n}_copper`],showPcbNotes:!1}),this.ctx.restore()}};let Moi={data:""},Doi=t=>{if(typeof window=="object"){let e=(t?t.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return e.nonce=window.__nonce__,e.parentNode||(t||document.head).appendChild(e),e.firstChild}return t||Moi},Noi=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Roi=/\/\*[^]*?\*\/| +/g,fZt=/\n+/g,xP=(t,e)=>{let n="",o="",i="";for(let r in t){let s=t[r];r[0]=="@"?r[1]=="i"?n=r+" "+s+";":o+=r[1]=="f"?xP(s,r):r+"{"+xP(s,r[1]=="k"?"":e)+"}":typeof s=="object"?o+=xP(s,e?e.replace(/([^,])+/g,a=>r.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,A=>/&/.test(A)?A.replace(/&/g,a):a?a+" "+A:A)):r):s!=null&&(r=r[1]=="-"?r:r.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=xP.p?xP.p(r,s):r+":"+s+";")}return n+(e&&i?e+"{"+i+"}":i)+o},EP={},IZt=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+IZt(t[n]);return e}return t},Toi=(t,e,n,o,i)=>{let r=IZt(t),s=EP[r]||(EP[r]=(A=>{let c=0,l=11;for(;c<A.length;)l=101*l+A.charCodeAt(c++)>>>0;return"go"+l})(r));if(!EP[s]){let A=r!==t?t:(c=>{let l,g,u=[{}];for(;l=Noi.exec(c.replace(Roi,""));)l[4]?u.shift():l[3]?(g=l[3].replace(fZt," ").trim(),u.unshift(u[0][g]=u[0][g]||{})):u[0][l[1]]=l[2].replace(fZt," ").trim();return u[0]})(t);EP[s]=xP(i?{["@keyframes "+s]:A}:A,n?"":"."+s)}let a=n&&EP.g;return n&&(EP.g=EP[s]),((A,c,l,g)=>{g?c.data=c.data.replace(g,A):c.data.indexOf(A)===-1&&(c.data=l?A+c.data:c.data+A)})(EP[s],e,o,a),s},koi=(t,e,n)=>t.reduce((o,i,r)=>{let s=e[r];if(s&&s.call){let a=s(n),A=a&&a.props&&a.props.className||/^go/.test(a)&&a;s=A?"."+A:a&&typeof a=="object"?a.props?"":xP(a,""):a===!1?"":a}return o+i+(s??"")},"");function Gue(t){let e=this||{},n=t.call?t(e.p):t;return Toi(n.unshift?n.raw?koi(n,[].slice.call(arguments,1),e.p):n.reduce((o,i)=>Object.assign(o,i&&i.call?i(e.p):i),{}):n,Doi(e.target),e.g,e.o,e.k)}let CZt,vYe,PYe;Gue.bind({g:1});let wS=Gue.bind({k:1});function Foi(t,e,n,o){xP.p=e,CZt=t,vYe=n,PYe=o}function BP(t,e){let n=this||{};return function(){let o=arguments;function i(r,s){let a=Object.assign({},r),A=a.className||i.className;n.p=Object.assign({theme:vYe&&vYe()},a),n.o=/go\d/.test(A),a.className=Gue.apply(n,o)+(A?" "+A:"");let c=t;return t[0]&&(c=a.as||t,delete a.as),PYe&&c[0]&&PYe(a),CZt(c,a)}return i}}var Loi=t=>typeof t=="function",Yue=(t,e)=>Loi(t)?t(e):t,Hoi=(()=>{let t=0;return()=>(++t).toString()})(),yZt=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),Ooi=20,wYe="default",xZt=(t,e)=>{let{toastLimit:n}=t.settings;switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,n)};case 1:return{...t,toasts:t.toasts.map(s=>s.id===e.toast.id?{...s,...e.toast}:s)};case 2:let{toast:o}=e;return xZt(t,{type:t.toasts.find(s=>s.id===o.id)?1:0,toast:o});case 3:let{toastId:i}=e;return{...t,toasts:t.toasts.map(s=>s.id===i||i===void 0?{...s,dismissed:!0,visible:!1}:s)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(s=>s.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let r=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(s=>({...s,pauseDuration:s.pauseDuration+r}))}}},Uue=[],EZt={toasts:[],pausedAt:void 0,settings:{toastLimit:Ooi}},$6={},BZt=(t,e=wYe)=>{$6[e]=xZt($6[e]||EZt,t),Uue.forEach(([n,o])=>{n===e&&o($6[e])})},SZt=t=>Object.keys($6).forEach(e=>BZt(t,e)),Goi=t=>Object.keys($6).find(e=>$6[e].toasts.some(n=>n.id===t)),Kue=(t=wYe)=>e=>{BZt(e,t)},Yoi={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Uoi=(t={},e=wYe)=>{let[n,o]=te.useState($6[e]||EZt),i=te.useRef($6[e]);te.useEffect(()=>(i.current!==$6[e]&&o($6[e]),Uue.push([e,o]),()=>{let s=Uue.findIndex(([a])=>a===e);s>-1&&Uue.splice(s,1)}),[e]);let r=n.toasts.map(s=>{var a,A,c;return{...t,...t[s.type],...s,removeDelay:s.removeDelay||((a=t[s.type])==null?void 0:a.removeDelay)||t?.removeDelay,duration:s.duration||((A=t[s.type])==null?void 0:A.duration)||t?.duration||Yoi[s.type],style:{...t.style,...(c=t[s.type])==null?void 0:c.style,...s.style}}});return{...n,toasts:r}},Koi=(t,e="blank",n)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...n,id:n?.id||Hoi()}),Vq=t=>(e,n)=>{let o=Koi(e,t,n);return Kue(o.toasterId||Goi(o.id))({type:2,toast:o}),o.id},ia=(t,e)=>Vq("blank")(t,e);ia.error=Vq("error"),ia.success=Vq("success"),ia.loading=Vq("loading"),ia.custom=Vq("custom"),ia.dismiss=(t,e)=>{let n={type:3,toastId:t};e?Kue(e)(n):SZt(n)},ia.dismissAll=t=>ia.dismiss(void 0,t),ia.remove=(t,e)=>{let n={type:4,toastId:t};e?Kue(e)(n):SZt(n)},ia.removeAll=t=>ia.remove(void 0,t),ia.promise=(t,e,n)=>{let o=ia.loading(e.loading,{...n,...n?.loading});return typeof t=="function"&&(t=t()),t.then(i=>{let r=e.success?Yue(e.success,i):void 0;return r?ia.success(r,{id:o,...n,...n?.success}):ia.dismiss(o),i}).catch(i=>{let r=e.error?Yue(e.error,i):void 0;r?ia.error(r,{id:o,...n,...n?.error}):ia.dismiss(o)}),t};var Voi=1e3,zoi=(t,e="default")=>{let{toasts:n,pausedAt:o}=Uoi(t,e),i=te.useRef(new Map).current,r=te.useCallback((g,u=Voi)=>{if(i.has(g))return;let h=setTimeout(()=>{i.delete(g),s({type:4,toastId:g})},u);i.set(g,h)},[]);te.useEffect(()=>{if(o)return;let g=Date.now(),u=n.map(h=>{if(h.duration===1/0)return;let d=(h.duration||0)+h.pauseDuration-(g-h.createdAt);if(d<0){h.visible&&ia.dismiss(h.id);return}return setTimeout(()=>ia.dismiss(h.id,e),d)});return()=>{u.forEach(h=>h&&clearTimeout(h))}},[n,o,e]);let s=te.useCallback(Kue(e),[e]),a=te.useCallback(()=>{s({type:5,time:Date.now()})},[s]),A=te.useCallback((g,u)=>{s({type:1,toast:{id:g,height:u}})},[s]),c=te.useCallback(()=>{o&&s({type:6,time:Date.now()})},[o,s]),l=te.useCallback((g,u)=>{let{reverseOrder:h=!1,gutter:d=8,defaultPosition:m}=u||{},p=n.filter(I=>(I.position||m)===(g.position||m)&&I.height),_=p.findIndex(I=>I.id===g.id),f=p.filter((I,C)=>C<_&&I.visible).length;return p.filter(I=>I.visible).slice(...h?[f+1]:[0,f]).reduce((I,C)=>I+(C.height||0)+d,0)},[n]);return te.useEffect(()=>{n.forEach(g=>{if(g.dismissed)r(g.id,g.removeDelay);else{let u=i.get(g.id);u&&(clearTimeout(u),i.delete(g.id))}})},[n,r]),{toasts:n,handlers:{updateHeight:A,startPause:a,endPause:c,calculateOffset:l}}},Joi=wS`
|
|
5291
|
-
from {
|
|
5292
|
-
transform: scale(0) rotate(45deg);
|
|
5293
|
-
opacity: 0;
|
|
5294
|
-
}
|
|
5295
|
-
to {
|
|
5296
|
-
transform: scale(1) rotate(45deg);
|
|
5297
|
-
opacity: 1;
|
|
5298
|
-
}`,Woi=wS`
|
|
5299
|
-
from {
|
|
5300
|
-
transform: scale(0);
|
|
5301
|
-
opacity: 0;
|
|
5302
|
-
}
|
|
5303
|
-
to {
|
|
5304
|
-
transform: scale(1);
|
|
5305
|
-
opacity: 1;
|
|
5306
|
-
}`,joi=wS`
|
|
5307
|
-
from {
|
|
5308
|
-
transform: scale(0) rotate(90deg);
|
|
5309
|
-
opacity: 0;
|
|
5310
|
-
}
|
|
5311
|
-
to {
|
|
5312
|
-
transform: scale(1) rotate(90deg);
|
|
5313
|
-
opacity: 1;
|
|
5314
|
-
}`,qoi=BP("div")`
|
|
5315
|
-
width: 20px;
|
|
5316
|
-
opacity: 0;
|
|
5317
|
-
height: 20px;
|
|
5318
|
-
border-radius: 10px;
|
|
5319
|
-
background: ${t=>t.primary||"#ff4b4b"};
|
|
5320
|
-
position: relative;
|
|
5321
|
-
transform: rotate(45deg);
|
|
5322
|
-
|
|
5323
|
-
animation: ${Joi} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)
|
|
5324
|
-
forwards;
|
|
5325
|
-
animation-delay: 100ms;
|
|
5326
|
-
|
|
5327
|
-
&:after,
|
|
5328
|
-
&:before {
|
|
5329
|
-
content: '';
|
|
5330
|
-
animation: ${Woi} 0.15s ease-out forwards;
|
|
5331
|
-
animation-delay: 150ms;
|
|
5332
|
-
position: absolute;
|
|
5333
|
-
border-radius: 3px;
|
|
5334
|
-
opacity: 0;
|
|
5335
|
-
background: ${t=>t.secondary||"#fff"};
|
|
5336
|
-
bottom: 9px;
|
|
5337
|
-
left: 4px;
|
|
5338
|
-
height: 2px;
|
|
5339
|
-
width: 12px;
|
|
5340
|
-
}
|
|
5341
|
-
|
|
5342
|
-
&:before {
|
|
5343
|
-
animation: ${joi} 0.15s ease-out forwards;
|
|
5344
|
-
animation-delay: 180ms;
|
|
5345
|
-
transform: rotate(90deg);
|
|
5346
|
-
}
|
|
5347
|
-
`,Xoi=wS`
|
|
5348
|
-
from {
|
|
5349
|
-
transform: rotate(0deg);
|
|
5350
|
-
}
|
|
5351
|
-
to {
|
|
5352
|
-
transform: rotate(360deg);
|
|
5353
|
-
}
|
|
5354
|
-
`,$oi=BP("div")`
|
|
5355
|
-
width: 12px;
|
|
5356
|
-
height: 12px;
|
|
5357
|
-
box-sizing: border-box;
|
|
5358
|
-
border: 2px solid;
|
|
5359
|
-
border-radius: 100%;
|
|
5360
|
-
border-color: ${t=>t.secondary||"#e0e0e0"};
|
|
5361
|
-
border-right-color: ${t=>t.primary||"#616161"};
|
|
5362
|
-
animation: ${Xoi} 1s linear infinite;
|
|
5363
|
-
`,Zoi=wS`
|
|
5364
|
-
from {
|
|
5365
|
-
transform: scale(0) rotate(45deg);
|
|
5366
|
-
opacity: 0;
|
|
5367
|
-
}
|
|
5368
|
-
to {
|
|
5369
|
-
transform: scale(1) rotate(45deg);
|
|
5370
|
-
opacity: 1;
|
|
5371
|
-
}`,eii=wS`
|
|
5372
|
-
0% {
|
|
5373
|
-
height: 0;
|
|
5374
|
-
width: 0;
|
|
5375
|
-
opacity: 0;
|
|
5376
|
-
}
|
|
5377
|
-
40% {
|
|
5378
|
-
height: 0;
|
|
5379
|
-
width: 6px;
|
|
5380
|
-
opacity: 1;
|
|
5381
|
-
}
|
|
5382
|
-
100% {
|
|
5383
|
-
opacity: 1;
|
|
5384
|
-
height: 10px;
|
|
5385
|
-
}`,tii=BP("div")`
|
|
5386
|
-
width: 20px;
|
|
5387
|
-
opacity: 0;
|
|
5388
|
-
height: 20px;
|
|
5389
|
-
border-radius: 10px;
|
|
5390
|
-
background: ${t=>t.primary||"#61d345"};
|
|
5391
|
-
position: relative;
|
|
5392
|
-
transform: rotate(45deg);
|
|
5393
|
-
|
|
5394
|
-
animation: ${Zoi} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)
|
|
5395
|
-
forwards;
|
|
5396
|
-
animation-delay: 100ms;
|
|
5397
|
-
&:after {
|
|
5398
|
-
content: '';
|
|
5399
|
-
box-sizing: border-box;
|
|
5400
|
-
animation: ${eii} 0.2s ease-out forwards;
|
|
5401
|
-
opacity: 0;
|
|
5402
|
-
animation-delay: 200ms;
|
|
5403
|
-
position: absolute;
|
|
5404
|
-
border-right: 2px solid;
|
|
5405
|
-
border-bottom: 2px solid;
|
|
5406
|
-
border-color: ${t=>t.secondary||"#fff"};
|
|
5407
|
-
bottom: 6px;
|
|
5408
|
-
left: 6px;
|
|
5409
|
-
height: 10px;
|
|
5410
|
-
width: 6px;
|
|
5411
|
-
}
|
|
5412
|
-
`,nii=BP("div")`
|
|
5413
|
-
position: absolute;
|
|
5414
|
-
`,oii=BP("div")`
|
|
5415
|
-
position: relative;
|
|
5416
|
-
display: flex;
|
|
5417
|
-
justify-content: center;
|
|
5418
|
-
align-items: center;
|
|
5419
|
-
min-width: 20px;
|
|
5420
|
-
min-height: 20px;
|
|
5421
|
-
`,iii=wS`
|
|
5422
|
-
from {
|
|
5423
|
-
transform: scale(0.6);
|
|
5424
|
-
opacity: 0.4;
|
|
5425
|
-
}
|
|
5426
|
-
to {
|
|
5427
|
-
transform: scale(1);
|
|
5428
|
-
opacity: 1;
|
|
5429
|
-
}`,rii=BP("div")`
|
|
5430
|
-
position: relative;
|
|
5431
|
-
transform: scale(0.6);
|
|
5432
|
-
opacity: 0.4;
|
|
5433
|
-
min-width: 20px;
|
|
5434
|
-
animation: ${iii} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)
|
|
5435
|
-
forwards;
|
|
5436
|
-
`,sii=({toast:t})=>{let{icon:e,type:n,iconTheme:o}=t;return e!==void 0?typeof e=="string"?te.createElement(rii,null,e):e:n==="blank"?null:te.createElement(oii,null,te.createElement($oi,{...o}),n!=="loading"&&te.createElement(nii,null,n==="error"?te.createElement(qoi,{...o}):te.createElement(tii,{...o})))},aii=t=>`
|
|
5437
|
-
0% {transform: translate3d(0,${t*-200}%,0) scale(.6); opacity:.5;}
|
|
5438
|
-
100% {transform: translate3d(0,0,0) scale(1); opacity:1;}
|
|
5439
|
-
`,Aii=t=>`
|
|
5440
|
-
0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}
|
|
5441
|
-
100% {transform: translate3d(0,${t*-150}%,-1px) scale(.6); opacity:0;}
|
|
5442
|
-
`,cii="0%{opacity:0;} 100%{opacity:1;}",lii="0%{opacity:1;} 100%{opacity:0;}",gii=BP("div")`
|
|
5443
|
-
display: flex;
|
|
5444
|
-
align-items: center;
|
|
5445
|
-
background: #fff;
|
|
5446
|
-
color: #363636;
|
|
5447
|
-
line-height: 1.3;
|
|
5448
|
-
will-change: transform;
|
|
5449
|
-
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);
|
|
5450
|
-
max-width: 350px;
|
|
5451
|
-
pointer-events: auto;
|
|
5452
|
-
padding: 8px 10px;
|
|
5453
|
-
border-radius: 8px;
|
|
5454
|
-
`,uii=BP("div")`
|
|
5455
|
-
display: flex;
|
|
5456
|
-
justify-content: center;
|
|
5457
|
-
margin: 4px 10px;
|
|
5458
|
-
color: inherit;
|
|
5459
|
-
flex: 1 1 auto;
|
|
5460
|
-
white-space: pre-line;
|
|
5461
|
-
`,dii=(t,e)=>{let n=t.includes("top")?1:-1,[o,i]=yZt()?[cii,lii]:[aii(n),Aii(n)];return{animation:e?`${wS(o)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${wS(i)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},hii=te.memo(({toast:t,position:e,style:n,children:o})=>{let i=t.height?dii(t.position||e||"top-center",t.visible):{opacity:0},r=te.createElement(sii,{toast:t}),s=te.createElement(uii,{...t.ariaProps},Yue(t.message,t));return te.createElement(gii,{className:t.className,style:{...i,...n,...t.style}},typeof o=="function"?o({icon:r,message:s}):te.createElement(te.Fragment,null,r,s))});Foi(te.createElement);var mii=({id:t,className:e,style:n,onHeightUpdate:o,children:i})=>{let r=te.useCallback(s=>{if(s){let a=()=>{let A=s.getBoundingClientRect().height;o(t,A)};a(),new MutationObserver(a).observe(s,{subtree:!0,childList:!0,characterData:!0})}},[t,o]);return te.createElement("div",{ref:r,className:e,style:n},i)},pii=(t,e)=>{let n=t.includes("top"),o=n?{top:0}:{bottom:0},i=t.includes("center")?{justifyContent:"center"}:t.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:yZt()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${e*(n?1:-1)}px)`,...o,...i}},_ii=Gue`
|
|
5462
|
-
z-index: 9999;
|
|
5463
|
-
> * {
|
|
5464
|
-
pointer-events: auto;
|
|
5465
|
-
}
|
|
5466
|
-
`,Vue=16,bZt=({reverseOrder:t,position:e="top-center",toastOptions:n,gutter:o,children:i,toasterId:r,containerStyle:s,containerClassName:a})=>{let{toasts:A,handlers:c}=zoi(n,r);return te.createElement("div",{"data-rht-toaster":r||"",style:{position:"fixed",zIndex:9999,top:Vue,left:Vue,right:Vue,bottom:Vue,pointerEvents:"none",...s},className:a,onMouseEnter:c.startPause,onMouseLeave:c.endPause},A.map(l=>{let g=l.position||e,u=c.calculateOffset(l,{reverseOrder:t,gutter:o,defaultPosition:e}),h=pii(g,u);return te.createElement(mii,{id:l.id,key:l.id,onHeightUpdate:c.updateHeight,className:l.visible?_ii:"",style:h},l.type==="custom"?Yue(l.message,l):i?i(l):te.createElement(hii,{toast:l,position:g}))}))},MYe={env:{},version:""},fii=Object.create,QZt=Object.defineProperty,Iii=Object.getOwnPropertyDescriptor,vZt=Object.getOwnPropertyNames,Cii=Object.getPrototypeOf,yii=Object.prototype.hasOwnProperty,yt=(t,e)=>function(){return e||(0,t[vZt(t)[0]])((e={exports:{}}).exports,e),e.exports},xii=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vZt(e))!yii.call(t,i)&&i!==n&&QZt(t,i,{get:()=>e[i],enumerable:!(o=Iii(e,i))||o.enumerable});return t},o0=(t,e,n)=>(n=t!=null?fii(Cii(t)):{},xii(QZt(n,"default",{value:t,enumerable:!0}),t)),ra=yt({"node_modules/@jscad/modeling/src/utils/flatten.js"(t,e){var n=o=>o.flat(1/0);e.exports=n}}),Eii=yt({"node_modules/@jscad/modeling/src/geometries/geom2/clone.js"(t,e){var n=o=>Object.assign({},o);e.exports=n}}),Bii=yt({"node_modules/@jscad/modeling/src/maths/mat4/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o[2]=i[2]+r[2],o[3]=i[3]+r[3],o[4]=i[4]+r[4],o[5]=i[5]+r[5],o[6]=i[6]+r[6],o[7]=i[7]+r[7],o[8]=i[8]+r[8],o[9]=i[9]+r[9],o[10]=i[10]+r[10],o[11]=i[11]+r[11],o[12]=i[12]+r[12],o[13]=i[13]+r[13],o[14]=i[14]+r[14],o[15]=i[15]+r[15],o);e.exports=n}}),DYe=yt({"node_modules/@jscad/modeling/src/maths/mat4/create.js"(t,e){var n=()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];e.exports=n}}),Sii=yt({"node_modules/@jscad/modeling/src/maths/mat4/clone.js"(t,e){var n=DYe(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r};e.exports=o}}),PZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o[2]=i[2],o[3]=i[3],o[4]=i[4],o[5]=i[5],o[6]=i[6],o[7]=i[7],o[8]=i[8],o[9]=i[9],o[10]=i[10],o[11]=i[11],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15],o);e.exports=n}}),bii=yt({"node_modules/@jscad/modeling/src/maths/mat4/invert.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1],a=i[2],A=i[3],c=i[4],l=i[5],g=i[6],u=i[7],h=i[8],d=i[9],m=i[10],p=i[11],_=i[12],f=i[13],I=i[14],C=i[15],y=r*l-s*c,x=r*g-a*c,E=r*u-A*c,B=s*g-a*l,b=s*u-A*l,Q=a*u-A*g,w=h*f-d*_,D=h*I-m*_,k=h*C-p*_,T=d*I-m*f,H=d*C-p*f,G=m*C-p*I;let K=y*G-x*H+E*T+B*k-b*D+Q*w;return K?(K=1/K,o[0]=(l*G-g*H+u*T)*K,o[1]=(a*H-s*G-A*T)*K,o[2]=(f*Q-I*b+C*B)*K,o[3]=(m*b-d*Q-p*B)*K,o[4]=(g*k-c*G-u*D)*K,o[5]=(r*G-a*k+A*D)*K,o[6]=(I*E-_*Q-C*x)*K,o[7]=(h*Q-m*E+p*x)*K,o[8]=(c*H-l*k+u*w)*K,o[9]=(s*k-r*H-A*w)*K,o[10]=(_*b-f*E+C*y)*K,o[11]=(d*E-h*b-p*y)*K,o[12]=(l*D-c*T-g*w)*K,o[13]=(r*T-s*D+a*w)*K,o[14]=(f*x-_*B-I*y)*K,o[15]=(h*B-d*x+m*y)*K,o):null};e.exports=n}}),Qii=yt({"node_modules/@jscad/modeling/src/maths/mat4/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1]&&o[2]===i[2]&&o[3]===i[3]&&o[4]===i[4]&&o[5]===i[5]&&o[6]===i[6]&&o[7]===i[7]&&o[8]===i[8]&&o[9]===i[9]&&o[10]===i[10]&&o[11]===i[11]&&o[12]===i[12]&&o[13]===i[13]&&o[14]===i[14]&&o[15]===i[15];e.exports=n}}),sc=yt({"node_modules/@jscad/modeling/src/maths/constants.js"(t,e){var n=1e5,o=1e-5,i=1e-13,r=Math.PI*2;e.exports={EPS:o,NEPS:i,TAU:r,spatialResolution:n}}}),W1=yt({"node_modules/@jscad/modeling/src/maths/utils/trigonometry.js"(t,e){var{NEPS:n}=sc(),o=s=>Math.abs(s)<n?0:s,i=s=>o(Math.sin(s)),r=s=>o(Math.cos(s));e.exports={sin:i,cos:r}}}),wZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/identity.js"(t,e){var n=o=>(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o);e.exports=n}}),MZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromRotation.js"(t,e){var{EPS:n}=sc(),{sin:o,cos:i}=W1(),r=wZt(),s=(a,A,c)=>{let[l,g,u]=c;const h=l*l+g*g+u*u;if(Math.abs(h)<n)return r(a);const d=1/Math.sqrt(h);l*=d,g*=d,u*=d;const m=o(A),p=i(A),_=1-p;return a[0]=l*l*_+p,a[1]=g*l*_+u*m,a[2]=u*l*_-g*m,a[3]=0,a[4]=l*g*_-u*m,a[5]=g*g*_+p,a[6]=u*g*_+l*m,a[7]=0,a[8]=l*u*_+g*m,a[9]=g*u*_-l*m,a[10]=u*u*_+p,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a};e.exports=s}}),vii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromScaling.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=i[1],o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=i[2],o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o);e.exports=n}}),Pii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromTaitBryanRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a,A)=>{const c=n(s),l=o(s),g=n(a),u=o(a),h=n(A),d=o(A);return r[0]=u*l,r[1]=u*c,r[2]=-g,r[3]=0,r[4]=h*g*l-d*c,r[5]=d*l+h*g*c,r[6]=h*u,r[7]=0,r[8]=h*c+d*g*l,r[9]=d*g*c-h*l,r[10]=d*u,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),wii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromTranslation.js"(t,e){var n=(o,i)=>(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=i[0],o[13]=i[1],o[14]=i[2],o[15]=1,o);e.exports=n}}),Mii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromValues.js"(t,e){var n=DYe(),o=(i,r,s,a,A,c,l,g,u,h,d,m,p,_,f,I)=>{const C=n();return C[0]=i,C[1]=r,C[2]=s,C[3]=a,C[4]=A,C[5]=c,C[6]=l,C[7]=g,C[8]=u,C[9]=h,C[10]=d,C[11]=m,C[12]=p,C[13]=_,C[14]=f,C[15]=I,C};e.exports=o}}),DZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/abs.js"(t,e){var n=(o,i)=>(o[0]=Math.abs(i[0]),o[1]=Math.abs(i[1]),o[2]=Math.abs(i[2]),o);e.exports=n}}),NZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o[2]=i[2]+r[2],o);e.exports=n}}),zue=yt({"node_modules/@jscad/modeling/src/maths/vec3/dot.js"(t,e){var n=(o,i)=>o[0]*i[0]+o[1]*i[1]+o[2]*i[2];e.exports=n}}),Dii=yt({"node_modules/@jscad/modeling/src/maths/vec3/angle.js"(t,e){var n=zue(),o=(i,r)=>{const s=i[0],a=i[1],A=i[2],c=r[0],l=r[1],g=r[2],u=Math.sqrt(s*s+a*a+A*A),h=Math.sqrt(c*c+l*l+g*g),d=u*h,m=d&&n(i,r)/d;return Math.acos(Math.min(Math.max(m,-1),1))};e.exports=o}}),Jue=yt({"node_modules/@jscad/modeling/src/maths/vec3/create.js"(t,e){var n=()=>[0,0,0];e.exports=n}}),Nii=yt({"node_modules/@jscad/modeling/src/maths/vec3/clone.js"(t,e){var n=Jue(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r[2]=i[2],r};e.exports=o}}),RZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o[2]=i[2],o);e.exports=n}}),zq=yt({"node_modules/@jscad/modeling/src/maths/vec3/cross.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2],c=r[0],l=r[1],g=r[2];return o[0]=a*g-A*l,o[1]=A*c-s*g,o[2]=s*l-a*c,o};e.exports=n}}),TZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/distance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1],a=i[2]-o[2];return Math.sqrt(r*r+s*s+a*a)};e.exports=n}}),Rii=yt({"node_modules/@jscad/modeling/src/maths/vec3/divide.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]/r[0],o[1]=i[1]/r[1],o[2]=i[2]/r[2],o);e.exports=n}}),Tii=yt({"node_modules/@jscad/modeling/src/maths/vec3/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1]&&o[2]===i[2];e.exports=n}}),kii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromScalar.js"(t,e){var n=(o,i)=>(o[0]=i,o[1]=i,o[2]=i,o);e.exports=n}}),Fii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromValues.js"(t,e){var n=Jue(),o=(i,r,s)=>{const a=n();return a[0]=i,a[1]=r,a[2]=s,a};e.exports=o}}),Lii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromVec2.js"(t,e){var n=(o,i,r=0)=>(o[0]=i[0],o[1]=i[1],o[2]=r,o);e.exports=n}}),kZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/length.js"(t,e){var n=o=>{const i=o[0],r=o[1],s=o[2];return Math.sqrt(i*i+r*r+s*s)};e.exports=n}}),Hii=yt({"node_modules/@jscad/modeling/src/maths/vec3/lerp.js"(t,e){var n=(o,i,r,s)=>(o[0]=i[0]+s*(r[0]-i[0]),o[1]=i[1]+s*(r[1]-i[1]),o[2]=i[2]+s*(r[2]-i[2]),o);e.exports=n}}),FZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/max.js"(t,e){var n=(o,i,r)=>(o[0]=Math.max(i[0],r[0]),o[1]=Math.max(i[1],r[1]),o[2]=Math.max(i[2],r[2]),o);e.exports=n}}),LZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/min.js"(t,e){var n=(o,i,r)=>(o[0]=Math.min(i[0],r[0]),o[1]=Math.min(i[1],r[1]),o[2]=Math.min(i[2],r[2]),o);e.exports=n}}),Oii=yt({"node_modules/@jscad/modeling/src/maths/vec3/multiply.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r[0],o[1]=i[1]*r[1],o[2]=i[2]*r[2],o);e.exports=n}}),Gii=yt({"node_modules/@jscad/modeling/src/maths/vec3/negate.js"(t,e){var n=(o,i)=>(o[0]=-i[0],o[1]=-i[1],o[2]=-i[2],o);e.exports=n}}),NYe=yt({"node_modules/@jscad/modeling/src/maths/vec3/normalize.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1],a=i[2];let A=r*r+s*s+a*a;return A>0&&(A=1/Math.sqrt(A)),o[0]=r*A,o[1]=s*A,o[2]=a*A,o};e.exports=n}}),Yii=yt({"node_modules/@jscad/modeling/src/maths/vec3/orthogonal.js"(t,e){var n=DZt(),o=Jue(),i=zq(),r=(s,a)=>{const A=n(o(),a),c=0+(A[0]<A[1]&&A[0]<A[2]),l=0+(A[1]<=A[0]&&A[1]<A[2]),g=0+(A[2]<=A[0]&&A[2]<=A[1]);return i(s,a,[c,l,g])};e.exports=r}}),Uii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateX.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],a[2]=i[2]-r[2],A[0]=a[0],A[1]=a[1]*Math.cos(s)-a[2]*Math.sin(s),A[2]=a[1]*Math.sin(s)+a[2]*Math.cos(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=A[2]+r[2],o};e.exports=n}}),Kii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateY.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],a[2]=i[2]-r[2],A[0]=a[2]*Math.sin(s)+a[0]*Math.cos(s),A[1]=a[1],A[2]=a[2]*Math.cos(s)-a[0]*Math.sin(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=A[2]+r[2],o};e.exports=n}}),Vii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateZ.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],A[0]=a[0]*Math.cos(s)-a[1]*Math.sin(s),A[1]=a[0]*Math.sin(s)+a[1]*Math.cos(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=i[2],o};e.exports=n}}),HZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/scale.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r,o[1]=i[1]*r,o[2]=i[2]*r,o);e.exports=n}}),zii=yt({"node_modules/@jscad/modeling/src/maths/vec3/snap.js"(t,e){var n=(o,i,r)=>(o[0]=Math.round(i[0]/r)*r+0,o[1]=Math.round(i[1]/r)*r+0,o[2]=Math.round(i[2]/r)*r+0,o);e.exports=n}}),OZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/squaredDistance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1],a=i[2]-o[2];return r*r+s*s+a*a};e.exports=n}}),GZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/squaredLength.js"(t,e){var n=o=>{const i=o[0],r=o[1],s=o[2];return i*i+r*r+s*s};e.exports=n}}),Wue=yt({"node_modules/@jscad/modeling/src/maths/vec3/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o[2]=i[2]-r[2],o);e.exports=n}}),Jii=yt({"node_modules/@jscad/modeling/src/maths/vec3/toString.js"(t,e){var n=o=>`[${o[0].toFixed(7)}, ${o[1].toFixed(7)}, ${o[2].toFixed(7)}]`;e.exports=n}}),Wii=yt({"node_modules/@jscad/modeling/src/maths/vec3/transform.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2];let c=r[3]*s+r[7]*a+r[11]*A+r[15];return c=c||1,o[0]=(r[0]*s+r[4]*a+r[8]*A+r[12])/c,o[1]=(r[1]*s+r[5]*a+r[9]*A+r[13])/c,o[2]=(r[2]*s+r[6]*a+r[10]*A+r[14])/c,o};e.exports=n}}),Jr=yt({"node_modules/@jscad/modeling/src/maths/vec3/index.js"(t,e){e.exports={abs:DZt(),add:NZt(),angle:Dii(),clone:Nii(),copy:RZt(),create:Jue(),cross:zq(),distance:TZt(),divide:Rii(),dot:zue(),equals:Tii(),fromScalar:kii(),fromValues:Fii(),fromVec2:Lii(),length:kZt(),lerp:Hii(),max:FZt(),min:LZt(),multiply:Oii(),negate:Gii(),normalize:NYe(),orthogonal:Yii(),rotateX:Uii(),rotateY:Kii(),rotateZ:Vii(),scale:HZt(),snap:zii(),squaredDistance:OZt(),squaredLength:GZt(),subtract:Wue(),toString:Jii(),transform:Wii()}}}),jii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromVectorRotation.js"(t,e){var n=Jr(),o=MZt(),i=(r,s,a)=>{const A=n.normalize(n.create(),s),c=n.normalize(n.create(),a),l=n.cross(n.create(),c,A),g=n.dot(c,A);if(g===-1)return o(r,Math.PI,n.orthogonal(l,A));const u=1/(1+g);return r[0]=l[0]*l[0]*u+g,r[1]=l[1]*l[0]*u-l[2],r[2]=l[2]*l[0]*u+l[1],r[3]=0,r[4]=l[0]*l[1]*u+l[2],r[5]=l[1]*l[1]*u+g,r[6]=l[2]*l[1]*u-l[0],r[7]=0,r[8]=l[0]*l[2]*u-l[1],r[9]=l[1]*l[2]*u+l[0],r[10]=l[2]*l[2]*u+g,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),qii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromXRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=A,r[6]=a,r[7]=0,r[8]=0,r[9]=-a,r[10]=A,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),Xii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromYRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=A,r[1]=0,r[2]=-a,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=a,r[9]=0,r[10]=A,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),$ii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromZRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=A,r[1]=a,r[2]=0,r[3]=0,r[4]=-a,r[5]=A,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),Zii=yt({"node_modules/@jscad/modeling/src/maths/mat4/isIdentity.js"(t,e){var n=o=>o[0]===1&&o[1]===0&&o[2]===0&&o[3]===0&&o[4]===0&&o[5]===1&&o[6]===0&&o[7]===0&&o[8]===0&&o[9]===0&&o[10]===1&&o[11]===0&&o[12]===0&&o[13]===0&&o[14]===0&&o[15]===1;e.exports=n}}),eri=yt({"node_modules/@jscad/modeling/src/maths/mat4/isOnlyTransformScale.js"(t,e){var n=i=>o(i[1])&&o(i[2])&&o(i[3])&&o(i[4])&&o(i[6])&&o(i[7])&&o(i[8])&&o(i[9])&&o(i[11])&&i[15]===1,o=i=>Math.abs(i)<Number.EPSILON;e.exports=n}}),tri=yt({"node_modules/@jscad/modeling/src/maths/mat4/isMirroring.js"(t,e){var n=o=>{const i=o[4]*o[9]-o[8]*o[5],r=o[8]*o[1]-o[0]*o[9],s=o[0]*o[5]-o[4]*o[1];return i*o[2]+r*o[6]+s*o[10]<0};e.exports=n}}),nri=yt({"node_modules/@jscad/modeling/src/maths/mat4/mirrorByPlane.js"(t,e){var n=(o,i)=>{const[r,s,a,A]=i;return o[0]=1-2*r*r,o[1]=-2*s*r,o[2]=-2*a*r,o[3]=0,o[4]=-2*r*s,o[5]=1-2*s*s,o[6]=-2*a*s,o[7]=0,o[8]=-2*r*a,o[9]=-2*s*a,o[10]=1-2*a*a,o[11]=0,o[12]=2*r*A,o[13]=2*s*A,o[14]=2*a*A,o[15]=1,o};e.exports=n}}),ori=yt({"node_modules/@jscad/modeling/src/maths/mat4/multiply.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2],c=i[3],l=i[4],g=i[5],u=i[6],h=i[7],d=i[8],m=i[9],p=i[10],_=i[11],f=i[12],I=i[13],C=i[14],y=i[15];let x=r[0],E=r[1],B=r[2],b=r[3];return o[0]=x*s+E*l+B*d+b*f,o[1]=x*a+E*g+B*m+b*I,o[2]=x*A+E*u+B*p+b*C,o[3]=x*c+E*h+B*_+b*y,x=r[4],E=r[5],B=r[6],b=r[7],o[4]=x*s+E*l+B*d+b*f,o[5]=x*a+E*g+B*m+b*I,o[6]=x*A+E*u+B*p+b*C,o[7]=x*c+E*h+B*_+b*y,x=r[8],E=r[9],B=r[10],b=r[11],o[8]=x*s+E*l+B*d+b*f,o[9]=x*a+E*g+B*m+b*I,o[10]=x*A+E*u+B*p+b*C,o[11]=x*c+E*h+B*_+b*y,x=r[12],E=r[13],B=r[14],b=r[15],o[12]=x*s+E*l+B*d+b*f,o[13]=x*a+E*g+B*m+b*I,o[14]=x*A+E*u+B*p+b*C,o[15]=x*c+E*h+B*_+b*y,o};e.exports=n}}),iri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotate.js"(t,e){var{EPS:n}=sc(),{sin:o,cos:i}=W1(),r=PZt(),s=(a,A,c,l)=>{let[g,u,h]=l;const d=g*g+u*u+h*h;if(Math.abs(d)<n)return r(a,A);const m=1/Math.sqrt(d);g*=m,u*=m,h*=m;const p=o(c),_=i(c),f=1-_,I=A[0],C=A[1],y=A[2],x=A[3],E=A[4],B=A[5],b=A[6],Q=A[7],w=A[8],D=A[9],k=A[10],T=A[11],H=g*g*f+_,G=u*g*f+h*p,K=h*g*f-u*p,Y=g*u*f-h*p,q=u*u*f+_,ee=h*u*f+g*p,j=g*h*f+u*p,J=u*h*f-g*p,ie=h*h*f+_;return a[0]=I*H+E*G+w*K,a[1]=C*H+B*G+D*K,a[2]=y*H+b*G+k*K,a[3]=x*H+Q*G+T*K,a[4]=I*Y+E*q+w*ee,a[5]=C*Y+B*q+D*ee,a[6]=y*Y+b*q+k*ee,a[7]=x*Y+Q*q+T*ee,a[8]=I*j+E*J+w*ie,a[9]=C*j+B*J+D*ie,a[10]=y*j+b*J+k*ie,a[11]=x*j+Q*J+T*ie,A!==a&&(a[12]=A[12],a[13]=A[13],a[14]=A[14],a[15]=A[15]),a};e.exports=s}}),rri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateX.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[4],g=s[5],u=s[6],h=s[7],d=s[8],m=s[9],p=s[10],_=s[11];return s!==r&&(r[0]=s[0],r[1]=s[1],r[2]=s[2],r[3]=s[3],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[4]=l*c+d*A,r[5]=g*c+m*A,r[6]=u*c+p*A,r[7]=h*c+_*A,r[8]=d*c-l*A,r[9]=m*c-g*A,r[10]=p*c-u*A,r[11]=_*c-h*A,r};e.exports=i}}),sri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateY.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[0],g=s[1],u=s[2],h=s[3],d=s[8],m=s[9],p=s[10],_=s[11];return s!==r&&(r[4]=s[4],r[5]=s[5],r[6]=s[6],r[7]=s[7],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[0]=l*c-d*A,r[1]=g*c-m*A,r[2]=u*c-p*A,r[3]=h*c-_*A,r[8]=l*A+d*c,r[9]=g*A+m*c,r[10]=u*A+p*c,r[11]=h*A+_*c,r};e.exports=i}}),ari=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateZ.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[0],g=s[1],u=s[2],h=s[3],d=s[4],m=s[5],p=s[6],_=s[7];return s!==r&&(r[8]=s[8],r[9]=s[9],r[10]=s[10],r[11]=s[11],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[0]=l*c+d*A,r[1]=g*c+m*A,r[2]=u*c+p*A,r[3]=h*c+_*A,r[4]=d*c-l*A,r[5]=m*c-g*A,r[6]=p*c-u*A,r[7]=_*c-h*A,r};e.exports=i}}),Ari=yt({"node_modules/@jscad/modeling/src/maths/mat4/scale.js"(t,e){var n=(o,i,r)=>{const s=r[0],a=r[1],A=r[2];return o[0]=i[0]*s,o[1]=i[1]*s,o[2]=i[2]*s,o[3]=i[3]*s,o[4]=i[4]*a,o[5]=i[5]*a,o[6]=i[6]*a,o[7]=i[7]*a,o[8]=i[8]*A,o[9]=i[9]*A,o[10]=i[10]*A,o[11]=i[11]*A,o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15],o};e.exports=n}}),cri=yt({"node_modules/@jscad/modeling/src/maths/mat4/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o[2]=i[2]-r[2],o[3]=i[3]-r[3],o[4]=i[4]-r[4],o[5]=i[5]-r[5],o[6]=i[6]-r[6],o[7]=i[7]-r[7],o[8]=i[8]-r[8],o[9]=i[9]-r[9],o[10]=i[10]-r[10],o[11]=i[11]-r[11],o[12]=i[12]-r[12],o[13]=i[13]-r[13],o[14]=i[14]-r[14],o[15]=i[15]-r[15],o);e.exports=n}}),lri=yt({"node_modules/@jscad/modeling/src/maths/mat4/toString.js"(t,e){var n=o=>o.map(i=>i.toFixed(7)).toString();e.exports=n}}),gri=yt({"node_modules/@jscad/modeling/src/maths/mat4/translate.js"(t,e){var n=(o,i,r)=>{const s=r[0],a=r[1],A=r[2];let c,l,g,u,h,d,m,p,_,f,I,C;return i===o?(o[12]=i[0]*s+i[4]*a+i[8]*A+i[12],o[13]=i[1]*s+i[5]*a+i[9]*A+i[13],o[14]=i[2]*s+i[6]*a+i[10]*A+i[14],o[15]=i[3]*s+i[7]*a+i[11]*A+i[15]):(c=i[0],l=i[1],g=i[2],u=i[3],h=i[4],d=i[5],m=i[6],p=i[7],_=i[8],f=i[9],I=i[10],C=i[11],o[0]=c,o[1]=l,o[2]=g,o[3]=u,o[4]=h,o[5]=d,o[6]=m,o[7]=p,o[8]=_,o[9]=f,o[10]=I,o[11]=C,o[12]=c*s+h*a+_*A+i[12],o[13]=l*s+d*a+f*A+i[13],o[14]=g*s+m*a+I*A+i[14],o[15]=u*s+p*a+C*A+i[15]),o};e.exports=n}}),Ig=yt({"node_modules/@jscad/modeling/src/maths/mat4/index.js"(t,e){e.exports={add:Bii(),clone:Sii(),copy:PZt(),create:DYe(),invert:bii(),equals:Qii(),fromRotation:MZt(),fromScaling:vii(),fromTaitBryanRotation:Pii(),fromTranslation:wii(),fromValues:Mii(),fromVectorRotation:jii(),fromXRotation:qii(),fromYRotation:Xii(),fromZRotation:$ii(),identity:wZt(),isIdentity:Zii(),isOnlyTransformScale:eri(),isMirroring:tri(),mirrorByPlane:nri(),multiply:ori(),rotate:iri(),rotateX:rri(),rotateY:sri(),rotateZ:ari(),scale:Ari(),subtract:cri(),toString:lri(),translate:gri()}}}),jue=yt({"node_modules/@jscad/modeling/src/geometries/geom2/create.js"(t,e){var n=Ig(),o=i=>(i===void 0&&(i=[]),{sides:i,transforms:n.create()});e.exports=o}}),uri=yt({"node_modules/@jscad/modeling/src/maths/vec2/abs.js"(t,e){var n=(o,i)=>(o[0]=Math.abs(i[0]),o[1]=Math.abs(i[1]),o);e.exports=n}}),dri=yt({"node_modules/@jscad/modeling/src/maths/vec2/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o);e.exports=n}}),RYe=yt({"node_modules/@jscad/modeling/src/maths/vec2/angleRadians.js"(t,e){var n=o=>Math.atan2(o[1],o[0]);e.exports=n}}),hri=yt({"node_modules/@jscad/modeling/src/maths/vec2/angle.js"(t,e){e.exports=RYe()}}),mri=yt({"node_modules/@jscad/modeling/src/maths/vec2/angleDegrees.js"(t,e){var n=RYe(),o=i=>n(i)*57.29577951308232;e.exports=o}}),que=yt({"node_modules/@jscad/modeling/src/maths/vec2/create.js"(t,e){var n=()=>[0,0];e.exports=n}}),pri=yt({"node_modules/@jscad/modeling/src/maths/vec2/clone.js"(t,e){var n=que(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r};e.exports=o}}),_ri=yt({"node_modules/@jscad/modeling/src/maths/vec2/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o);e.exports=n}}),fri=yt({"node_modules/@jscad/modeling/src/maths/vec2/cross.js"(t,e){var n=(o,i,r)=>(o[0]=0,o[1]=0,o[2]=i[0]*r[1]-i[1]*r[0],o);e.exports=n}}),Iri=yt({"node_modules/@jscad/modeling/src/maths/vec2/distance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1];return Math.sqrt(r*r+s*s)};e.exports=n}}),Cri=yt({"node_modules/@jscad/modeling/src/maths/vec2/divide.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]/r[0],o[1]=i[1]/r[1],o);e.exports=n}}),yri=yt({"node_modules/@jscad/modeling/src/maths/vec2/dot.js"(t,e){var n=(o,i)=>o[0]*i[0]+o[1]*i[1];e.exports=n}}),xri=yt({"node_modules/@jscad/modeling/src/maths/vec2/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1];e.exports=n}}),YZt=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromAngleRadians.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>(r[0]=o(s),r[1]=n(s),r);e.exports=i}}),Eri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromAngleDegrees.js"(t,e){var n=YZt(),o=(i,r)=>n(i,r*.017453292519943295);e.exports=o}}),Bri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromScalar.js"(t,e){var n=(o,i)=>(o[0]=i,o[1]=i,o);e.exports=n}}),Sri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromValues.js"(t,e){var n=que(),o=(i,r)=>{const s=n();return s[0]=i,s[1]=r,s};e.exports=o}}),bri=yt({"node_modules/@jscad/modeling/src/maths/vec2/length.js"(t,e){var n=o=>Math.sqrt(o[0]*o[0]+o[1]*o[1]);e.exports=n}}),Qri=yt({"node_modules/@jscad/modeling/src/maths/vec2/lerp.js"(t,e){var n=(o,i,r,s)=>{const a=i[0],A=i[1];return o[0]=a+s*(r[0]-a),o[1]=A+s*(r[1]-A),o};e.exports=n}}),vri=yt({"node_modules/@jscad/modeling/src/maths/vec2/max.js"(t,e){var n=(o,i,r)=>(o[0]=Math.max(i[0],r[0]),o[1]=Math.max(i[1],r[1]),o);e.exports=n}}),Pri=yt({"node_modules/@jscad/modeling/src/maths/vec2/min.js"(t,e){var n=(o,i,r)=>(o[0]=Math.min(i[0],r[0]),o[1]=Math.min(i[1],r[1]),o);e.exports=n}}),wri=yt({"node_modules/@jscad/modeling/src/maths/vec2/multiply.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r[0],o[1]=i[1]*r[1],o);e.exports=n}}),Mri=yt({"node_modules/@jscad/modeling/src/maths/vec2/negate.js"(t,e){var n=(o,i)=>(o[0]=-i[0],o[1]=-i[1],o);e.exports=n}}),UZt=yt({"node_modules/@jscad/modeling/src/maths/vec2/rotate.js"(t,e){var n=(o,i,r,s)=>{const a=i[0]-r[0],A=i[1]-r[1],c=Math.cos(s),l=Math.sin(s);return o[0]=a*c-A*l+r[0],o[1]=a*l+A*c+r[1],o};e.exports=n}}),Dri=yt({"node_modules/@jscad/modeling/src/maths/vec2/normal.js"(t,e){var{TAU:n}=sc(),o=que(),i=UZt(),r=(s,a)=>i(s,a,o(),n/4);e.exports=r}}),Nri=yt({"node_modules/@jscad/modeling/src/maths/vec2/normalize.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1];let a=r*r+s*s;return a>0&&(a=1/Math.sqrt(a)),o[0]=r*a,o[1]=s*a,o};e.exports=n}}),Rri=yt({"node_modules/@jscad/modeling/src/maths/vec2/scale.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r,o[1]=i[1]*r,o);e.exports=n}}),Tri=yt({"node_modules/@jscad/modeling/src/maths/vec2/snap.js"(t,e){var n=(o,i,r)=>(o[0]=Math.round(i[0]/r)*r+0,o[1]=Math.round(i[1]/r)*r+0,o);e.exports=n}}),kri=yt({"node_modules/@jscad/modeling/src/maths/vec2/squaredDistance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1];return r*r+s*s};e.exports=n}}),Fri=yt({"node_modules/@jscad/modeling/src/maths/vec2/squaredLength.js"(t,e){var n=o=>{const i=o[0],r=o[1];return i*i+r*r};e.exports=n}}),Lri=yt({"node_modules/@jscad/modeling/src/maths/vec2/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o);e.exports=n}}),Hri=yt({"node_modules/@jscad/modeling/src/maths/vec2/toString.js"(t,e){var n=o=>`[${o[0].toFixed(7)}, ${o[1].toFixed(7)}]`;e.exports=n}}),Ori=yt({"node_modules/@jscad/modeling/src/maths/vec2/transform.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1];return o[0]=r[0]*s+r[4]*a+r[12],o[1]=r[1]*s+r[5]*a+r[13],o};e.exports=n}}),lA=yt({"node_modules/@jscad/modeling/src/maths/vec2/index.js"(t,e){e.exports={abs:uri(),add:dri(),angle:hri(),angleDegrees:mri(),angleRadians:RYe(),clone:pri(),copy:_ri(),create:que(),cross:fri(),distance:Iri(),divide:Cri(),dot:yri(),equals:xri(),fromAngleDegrees:Eri(),fromAngleRadians:YZt(),fromScalar:Bri(),fromValues:Sri(),length:bri(),lerp:Qri(),max:vri(),min:Pri(),multiply:wri(),negate:Mri(),normal:Dri(),normalize:Nri(),rotate:UZt(),scale:Rri(),snap:Tri(),squaredDistance:kri(),squaredLength:Fri(),subtract:Lri(),toString:Hri(),transform:Ori()}}}),Gri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/fromPoints.js"(t,e){var n=lA(),o=jue(),i=r=>{if(!Array.isArray(r))throw new Error("the given points must be an array");let s=r.length;if(s<3)throw new Error("the given points must define a closed geometry with three or more points");n.equals(r[0],r[s-1])&&--s;const a=[];let A=r[s-1];for(let c=0;c<s;c++){const l=r[c];a.push([n.clone(A),n.clone(l)]),A=l}return o(a)};e.exports=i}}),Yri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/fromCompactBinary.js"(t,e){var n=Ig(),o=lA(),i=jue(),r=s=>{if(s[0]!==0)throw new Error("invalid compact binary data");const a=i();a.transforms=n.clone(s.slice(1,17));for(let A=21;A<s.length;A+=4){const c=o.fromValues(s[A+0],s[A+1]),l=o.fromValues(s[A+2],s[A+3]);a.sides.push([c,l])}return s[17]>=0&&(a.color=[s[17],s[18],s[19],s[20]]),a};e.exports=r}}),KZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/isA.js"(t,e){var n=o=>!!(o&&typeof o=="object"&&"sides"in o&&"transforms"in o&&Array.isArray(o.sides)&&"length"in o.transforms);e.exports=n}}),Uri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/applyTransforms.js"(t,e){var n=Ig(),o=lA(),i=r=>(n.isIdentity(r.transforms)||(r.sides=r.sides.map(s=>{const a=o.transform(o.create(),s[0],r.transforms),A=o.transform(o.create(),s[1],r.transforms);return[a,A]}),r.transforms=n.create()),r);e.exports=i}}),Jq=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toSides.js"(t,e){var n=Uri(),o=i=>n(i).sides;e.exports=o}}),VZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/reverse.js"(t,e){var n=jue(),o=Jq(),i=r=>{const a=o(r).map(A=>[A[1],A[0]]);return a.reverse(),n(a)};e.exports=i}}),zZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toOutlines.js"(t,e){var n=lA(),o=Jq(),i=A=>{const c=new Map,l=g=>{const u=g.toString();return c.has(u)?c.get(u):(c.set(u,g),g)};return A.map(g=>g.map(l))},r=A=>{const c=new Map;return i(A).forEach(g=>{c.has(g[0])?c.get(g[0]).push(g):c.set(g[0],[g])}),c},s=A=>{const c=r(o(A)),l=[];for(;;){let g;for(const[d,m]of c){if(g=m.shift(),!g){c.delete(d);continue}break}if(g===void 0)break;const u=[],h=g[0];for(;;){u.push(g[0]);const d=g[1];if(d===h)break;const m=c.get(d);if(!m)throw new Error(`geometry is not closed at vertex ${d}`);const p=a(g,m);m.length===0&&c.delete(d),g=p}u.length>0&&u.push(u.shift()),l.push(u)}return c.clear(),l},a=(A,c)=>{if(c.length===1)return c.pop();const l=n.create(),g=n.angleDegrees(n.subtract(l,A[1],A[0]));let u,h;c.forEach((m,p)=>{let f=n.angleDegrees(n.subtract(l,m[1],m[0]))-g;f<-180&&(f+=360),f>=180&&(f-=360),(h===void 0||f>u)&&(h=p,u=f)});const d=c[h];return c.splice(h,1),d};e.exports=s}}),Kri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toPoints.js"(t,e){var n=Jq(),o=i=>{const s=n(i).map(a=>a[0]);return s.length>0&&s.push(s.shift()),s};e.exports=o}}),Vri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toString.js"(t,e){var n=lA(),o=Jq(),i=r=>{const s=o(r);let a="geom2 ("+s.length+` sides):
|
|
5290
|
+
`),A=a.map(g=>{const u=Array.from(g);return u.reduce((h,d,m)=>h+xYe(d,u[m+1],e),0)}),c=A.reduce((g,u)=>Math.max(g,u),0),l=a.length>1?e+(a.length-1)*s:e;return{width:c,height:l,glyphWidth:n,letterSpacing:o,spaceWidth:i,strokeWidth:r,lineHeight:s,lines:a,lineWidths:A}}function Lti(t){const{line:e,fontSize:n,startX:o,startY:i}=t,r=n,s=n,a=Array.from(e),A=[];let c=o+t.layout.strokeWidth/2;return a.forEach((l,g)=>{const u=G$t[l];if(u?.length){const h=[];for(const d of u){const m=d.map(p=>({x:c+p.x*s,y:i+(1-p.y)*r}));m.length>=3&&h.push(m)}h.length>0&&A.push(h)}c+=xYe(l,a[g+1],n)}),A}function Hti(t){let e=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const r of t)for(const s of r)e=Math.min(e,s.x),n=Math.min(n,s.y),o=Math.max(o,s.x),i=Math.max(i,s.y);return e===Number.POSITIVE_INFINITY||n===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY||i===Number.NEGATIVE_INFINITY?null:{minX:e,minY:n,maxX:o,maxY:i}}function Oti(t,e,n){const o=Yti(t,e),i=Uti(o,e,n),r=Hti(i.flat()),s=Kti(t,e,r);return{bounds:r?Wti(r,s):null,glyphGroups:Jti(i,s),linePlacements:o.map(({line:a,startX:A,startY:c})=>({line:a,startX:A+s.x,startY:c+s.y})),startOffset:s}}function Gti(t,e){const n=e.width+e.strokeWidth,o=e.height+e.strokeWidth;let i=0,r=0;return t==="center"||t==="top_center"||t==="bottom_center"?i=-n/2:t==="top_left"||t==="bottom_left"||t==="center_left"?i=0:t==="top_right"||t==="bottom_right"||t==="center_right"?i=-n:(t==="top_center"||t==="bottom_center")&&(i=-n/2),t==="center"||t==="center_left"||t==="center_right"?r=-o/2:t==="top_left"||t==="top_right"||t==="top_center"?r=0:(t==="bottom_left"||t==="bottom_right"||t==="bottom_center")&&(r=-o),{x:i,y:r}}function Yti(t,e){return e.lines.map((n,o)=>({line:n,startX:jti({alignment:t,lineWidth:e.lineWidths[o],maxWidth:e.width,strokeWidth:e.strokeWidth}),startY:o*e.lineHeight}))}function Uti(t,e,n){return t.flatMap(({line:o,startX:i,startY:r})=>Lti({line:o,fontSize:n,startX:i,startY:r,layout:e}))}function Kti(t,e,n){return n?{x:-Vti(t,n),y:-zti(t,n)}:Gti(t,e)}function Vti(t,e){return t==="top_left"||t==="bottom_left"||t==="center_left"?e.minX:t==="top_right"||t==="bottom_right"||t==="center_right"?e.maxX:(e.minX+e.maxX)/2}function zti(t,e){return t==="top_left"||t==="top_right"||t==="top_center"?e.minY:t==="bottom_left"||t==="bottom_right"||t==="bottom_center"?e.maxY:(e.minY+e.maxY)/2}function Jti(t,e){return e.x===0&&e.y===0?t:t.map(n=>n.map(o=>o.map(i=>({x:i.x+e.x,y:i.y+e.y}))))}function Wti(t,e){return{minX:t.minX+e.x,minY:t.minY+e.y,maxX:t.maxX+e.x,maxY:t.maxY+e.y}}function jti(t){const{alignment:e,lineWidth:n,maxWidth:o,strokeWidth:i}=t,r=n+i,s=o+i;return e==="top_left"||e==="bottom_left"||e==="center_left"?0:e==="top_right"||e==="bottom_right"||e==="center_right"?s-r:(s-r)/2}var qti=t=>$Bt[t];function Xti(t){const{ctx:e,line:n,fontSize:o,startX:i,startY:r,layout:s}=t,{strokeWidth:a}=s,A=o,c=o,l=r,g=Array.from(n);let u=i+a/2;g.forEach((h,d)=>{const m=qti(h);if(m?.length){e.beginPath();for(const p of m){const _=u+p.x1*c,f=l+(1-p.y1)*A,I=u+p.x2*c,C=l+(1-p.y2)*A;e.moveTo(_,f),e.lineTo(I,C)}e.stroke()}u+=xYe(h,g[d+1],o)})}var $ti={left:.2,right:.2,top:.2,bottom:.2};function Yq(t){const{ctx:e,text:n,x:o,y:i,fontSize:r,color:s,realToCanvasMat:a,anchorAlignment:A,rotation:c=0,mirrorX:l=!1,knockout:g=!1,knockoutPadding:u={}}=t;if(!n)return;const[h,d]=ri(a,[o,i]),m=Math.abs(a.a),p=r*m,_=Fti(n,p),f=Oti(A,_,p);if(e.save(),e.translate(h,d),c!==0&&e.rotate(-c*(Math.PI/180)),l&&e.scale(-1,1),g){const I={...$ti,...u},C=I.left*m,y=I.right*m,x=I.top*m,E=I.bottom*m,B=f.bounds;if(!B){e.restore();return}const b=B.minX-C,Q=B.minY-x,w=B.maxX-B.minX+C+y,D=B.maxY-B.minY+x+E;e.fillStyle=s,e.beginPath(),e.rect(b,Q,w,D);for(const k of f.glyphGroups)for(const T of k)Tti(e,T);e.fill("evenodd")}else e.strokeStyle=s;e.lineWidth=_.strokeWidth,e.lineCap="round",e.lineJoin="round",g||f.linePlacements.forEach(({line:I,startX:C,startY:y})=>{Xti({ctx:e,line:I,fontSize:p,startX:C,startY:y,layout:_})}),e.restore()}function Zti(t){return t||"center"}function eni(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";r&&Yq({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:n.font_size??1,color:i.copper[n.layer]??i.copper.top,realToCanvasMat:o,anchorAlignment:Zti(n.anchor_alignment),rotation:n.ccw_rotation??0,mirrorX:n.is_mirrored??n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function Zm(t){const{ctx:e,center:n,radius:o,fill:i,realToCanvasMat:r,stroke:s,strokeWidth:a,isStrokeDashed:A=!1}=t,[c,l]=ri(r,[n.x,n.y]),g=o*Math.abs(r.a),u=a?a*Math.abs(r.a):void 0;e.beginPath(),e.arc(c,l,g,0,Math.PI*2),i&&(e.fillStyle=i,e.fill()),s&&u&&(A?e.setLineDash([u*3,u*2]):e.setLineDash([]),e.strokeStyle=s,e.lineWidth=u,e.stroke())}function tni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function nni(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t;Zm({ctx:e,center:n.center,radius:n.radius,stroke:tni(n.layer,i),strokeWidth:.05,realToCanvasMat:o})}function oni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function ini(t){const{ctx:e,outline:n,realToCanvasMat:o,colorMap:i}=t;if(!n.outline||n.outline.length<2)return;e.beginPath();const r=ri(o,n.outline[0]);e.moveTo(r.x,r.y);for(let s=1;s<n.outline.length;s++){const a=ri(o,n.outline[s]);e.lineTo(a.x,a.y)}e.closePath(),e.lineWidth=.05*Math.abs(o.a),e.strokeStyle=oni(n.layer,i),e.lineJoin="round",e.stroke()}function rni(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function sni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t;am({ctx:e,center:n.center,width:n.width,height:n.height,stroke:rni(n.layer,i),strokeWidth:.05,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation??0,lineJoin:"round"})}function IP(t){const{ctx:e,points:n,fill:o,realToCanvasMat:i}=t;if(n.length<3)return;e.beginPath();const r=n.map(c=>ri(i,[c.x,c.y])),s=r[0];if(!s)return;const[a,A]=s;e.moveTo(a,A);for(let c=1;c<r.length;c++){const l=r[c];if(!l)continue;const[g,u]=l;e.lineTo(g,u)}e.closePath(),e.fillStyle=o,e.fill()}function ani(t){const{ctx:e,cutout:n,realToCanvasMat:o,colorMap:i}=t;if(n.shape==="rect"){am({ctx:e,center:n.center,width:n.width,height:n.height,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:n.rotation??0,borderRadius:n.corner_radius??0});return}if(n.shape==="circle"){Zm({ctx:e,center:n.center,radius:n.radius,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:i.drill,realToCanvasMat:o});return}}var Ani=1.5,cni=.6,lni=.3;function EYe(t){const e=Math.hypot(t.x,t.y)||1;return{x:t.x/e,y:t.y/e}}function K$t(t){const{ctx:e,from:n,to:o,realToCanvasMat:i,color:r,fontSize:s,arrowSize:a=1,strokeWidth:A,text:c,textRotation:l,offset:g}=t,u=EYe({x:o.x-n.x,y:o.y-n.y}),h={x:-u.y,y:u.x},d=g?.direction&&typeof g.direction.x=="number"&&typeof g.direction.y=="number",m=d?EYe(g.direction):{x:0,y:0},p=g?.distance??0,_={x:m.x*p,y:m.y*p},f={x:n.x+_.x,y:n.y+_.y},I={x:o.x+_.x,y:o.y+_.y},C={x:f.x+u.x*a,y:f.y+u.y*a},y={x:I.x-u.x*a,y:I.y-u.y*a};Math.abs(i.a);const x=A??a/5,E=r||"rgba(255,255,255,0.5)",B=d&&(Math.abs(m.x)>Number.EPSILON||Math.abs(m.y)>Number.EPSILON)?m:h,b=p+.5,Q=[],w=T=>{const H={x:T.x+B.x*b,y:T.y+B.y*b},G=x/2,K={x:-B.y,y:B.x};return[{x:T.x+K.x*G,y:T.y+K.y*G},{x:T.x-K.x*G,y:T.y-K.y*G},{x:H.x-K.x*G,y:H.y-K.y*G},{x:H.x+K.x*G,y:H.y+K.y*G}]};Q.push(f),Q.push({x:C.x+h.x*(a/2),y:C.y+h.y*(a/2)}),Q.push({x:C.x+h.x*(x/2),y:C.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(x/2),y:y.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(a/2),y:y.y+h.y*(a/2)}),Q.push(I),Q.push({x:y.x-h.x*(a/2),y:y.y-h.y*(a/2)}),Q.push({x:y.x-h.x*(x/2),y:y.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(x/2),y:C.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(a/2),y:C.y-h.y*(a/2)}),Q.push(f);const D=Q[0],k=T=>{const H=w(T);Q.push(D),Q.push(H[0]),Q.push(...H),Q.push(H[0]),Q.push(D)};if(k(n),k(o),IP({ctx:e,points:Q,fill:E,realToCanvasMat:i}),c){const T={x:(n.x+o.x)/2+_.x,y:(n.y+o.y)/2+_.y},[H,G]=ri(i,[f.x,f.y]),[K,Y]=ri(i,[I.x,I.y]),q=EYe({x:K-H,y:Y-G});let ee=Math.atan2(q.y,q.x)*180/Math.PI;(ee>90||ee<-90)&&(ee+=180);const j=typeof l=="number"&&Number.isFinite(l)?ee-l:ee;let J=0;if(c&&typeof l=="number"&&Number.isFinite(l)){const ne=c.length*s*cni,le=s,ge=l*Math.PI/180,_e=Math.abs(Math.sin(ge)),ce=Math.abs(Math.cos(ge)),Ie=ne/2,he=le/2;J=Ie*_e+he*ce+s*lni}const ie=a*Ani+J,oe={x:T.x+h.x*ie,y:T.y+h.y*ie};Yq({ctx:e,text:c,x:oe.x,y:oe.y,fontSize:s,color:E,realToCanvasMat:i,anchorAlignment:"center",rotation:-j})}}function gni(t){const{ctx:e,pcbFabricationNoteDimension:n,realToCanvasMat:o,colorMap:i}=t,r=n.color??i.fabricationNote;K$t({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:r,fontSize:n.font_size??1,arrowSize:n.arrow_size??1,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function xG(t){const{ctx:e,start:n,end:o,strokeWidth:i,stroke:r,realToCanvasMat:s,lineCap:a="round"}=t,[A,c]=ri(s,[n.x,n.y]),[l,g]=ri(s,[o.x,o.y]),u=i*Math.abs(s.a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.lineWidth=u,e.strokeStyle=r,e.lineCap=a,e.stroke()}function uni(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r;if(!(!n.route||n.route.length<2))for(let a=0;a<n.route.length-1;a++){const A=n.route[a],c=n.route[a+1];!A||!c||xG({ctx:e,start:{x:A.x,y:A.y},end:{x:c.x,y:c.y},strokeWidth:n.stroke_width??.1,stroke:s,realToCanvasMat:o})}}function dni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r,a=n.is_filled??!1,A=n.has_stroke??!0,c=n.is_stroke_dashed??!1;am({ctx:e,center:n.center,width:n.width,height:n.height,fill:a?s:void 0,stroke:A?s:void 0,strokeWidth:A?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:c})}function hni(t,e){return e.fabricationNote}function mni(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=hni(n.layer,i),s=n.color??r,a=n.font_size;Yq({ctx:e,text:n.text,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:a,color:s,realToCanvasMat:o,anchorAlignment:n.anchor_alignment})}function bB(t){const{ctx:e,center:n,radius_x:o,radius_y:i,fill:r,stroke:s,strokeWidth:a=.1,realToCanvasMat:A,rotation:c=0}=t,[l,g]=ri(A,[n.x,n.y]),u=o*Math.abs(A.a),h=i*Math.abs(A.a),d=a*Math.abs(A.a);e.save(),e.translate(l,g),c!==0&&e.rotate(-c*(Math.PI/180)),e.beginPath(),e.ellipse(0,0,u,h,0,0,Math.PI*2),r&&(e.fillStyle=r,e.fill()),s&&(e.strokeStyle=s,e.lineWidth=d,e.stroke()),e.restore()}function Jp(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,rotation:a=0,stroke:A,strokeWidth:c}=t,[l,g]=ri(s,[n.x,n.y]),u=o*Math.abs(s.a),h=i*Math.abs(s.a),d=c?c*Math.abs(s.a):void 0;if(e.save(),e.translate(l,g),a!==0&&e.rotate(-a*(Math.PI/180)),e.beginPath(),u>h){const m=h/2,p=u-h;e.moveTo(-p/2,-m),e.lineTo(p/2,-m),e.arc(p/2,0,m,-Math.PI/2,Math.PI/2),e.lineTo(-p/2,m),e.arc(-p/2,0,m,Math.PI/2,-Math.PI/2)}else if(h>u){const m=u/2,p=h-u;e.moveTo(m,-p/2),e.lineTo(m,p/2),e.arc(0,p/2,m,0,Math.PI),e.lineTo(-m,-p/2),e.arc(0,-p/2,m,Math.PI,0)}else e.arc(0,0,u/2,0,Math.PI*2);e.closePath(),r&&(e.fillStyle=r,e.fill()),A&&d&&(e.strokeStyle=A,e.lineWidth=d,e.stroke()),e.restore()}function kue(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function V$t(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s=!1}=t;if(s&&n.is_covered_with_solder_mask===!0)return;const a=r<0?Math.abs(r):0;if(n.hole_shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2-a,fill:i.drill,realToCanvasMat:o});return}if(n.hole_shape==="square"){const A=kue(n);am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter-a*2,height:n.hole_diameter-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="oval"){const A=kue(n);bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2-a,radius_y:n.hole_height/2-a,fill:i.drill,realToCanvasMat:o,rotation:A});return}if(n.hole_shape==="rect"){const A=kue(n);am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const A=kue(n);Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,rotation:A});return}}function pni(t){const{ctx:e,cx:n,cy:o,radius:i}=t;e.beginPath(),e.arc(n,o,i,0,Math.PI*2)}function _ni(t){const{ctx:e,cx:n,cy:o,width:i,height:r}=t;e.beginPath(),e.rect(n-i/2,o-r/2,i,r)}function PS(t){const{ctx:e,cx:n,cy:o,width:i,height:r,ccwRotationDegrees:s=0}=t,a=s*Math.PI/180,A=IYe(fP(n,o),O$t(-a));if(i>r){const c=r/2,l=(i-r)/2,g=ri(A,{x:-l,y:0}),u=ri(A,{x:l,y:0}),h=ri(A,{x:l,y:-c});e.moveTo(h.x,h.y),e.arc(u.x,u.y,c,-a-Math.PI/2,-a+Math.PI/2),e.arc(g.x,g.y,c,-a+Math.PI/2,-a-Math.PI/2)}else if(r>i){const c=i/2,l=(r-i)/2,g=ri(A,{x:0,y:-l}),u=ri(A,{x:0,y:l}),h=ri(A,{x:c,y:l});e.moveTo(h.x,h.y),e.arc(u.x,u.y,c,-a,-a+Math.PI),e.arc(g.x,g.y,c,-a+Math.PI,-a)}else{const c=i/2;e.moveTo(n+c,o),e.arc(n,o,c,0,Math.PI*2)}e.closePath()}function CP(t){const{ctx:e,points:n}=t;if(n.length<3)return;const o=n[0];if(o){e.moveTo(o.x,o.y);for(let i=1;i<n.length;i++){const r=n[i];r&&e.lineTo(r.x,r.y)}e.closePath()}}function nE(t){const{ctx:e,cx:n,cy:o,width:i,height:r,radius:s,ccwRotationDegrees:a=0}=t,A=a*Math.PI/180,c=IYe(fP(n,o),O$t(-A)),l=i/2,g=r/2,u=Math.min(s,l,g);if(u>0){const h=ri(c,{x:-l,y:-g}),d=ri(c,{x:l,y:-g}),m=ri(c,{x:l,y:g}),p=ri(c,{x:-l,y:g}),_=ri(c,{x:-l,y:0});e.moveTo(_.x,_.y),e.arcTo(h.x,h.y,d.x,d.y,u),e.arcTo(d.x,d.y,m.x,m.y,u),e.arcTo(m.x,m.y,p.x,p.y,u),e.arcTo(p.x,p.y,h.x,h.y,u)}else{const h=ri(c,{x:-l,y:-g}),d=ri(c,{x:l,y:-g}),m=ri(c,{x:l,y:g}),p=ri(c,{x:-l,y:g});e.moveTo(h.x,h.y),e.lineTo(d.x,d.y),e.lineTo(m.x,m.y),e.lineTo(p.x,p.y)}e.closePath()}function fni(t){const{ctx:e,pad:n,realToCanvasMat:o,color:i,drillCutouts:r}=t;if(e.save(),e.beginPath(),!z$t(e,n,o)){e.restore();return}e.clip(),e.beginPath(),z$t(e,n,o);for(const s of r)Cni(e,s,o);e.fillStyle=i,e.fill("evenodd"),e.restore()}function Ini(t){const{pad:e,holes:n=[],platedHoles:o=[],vias:i=[],cutouts:r=[]}=t,s=xni(e);if(!s)return[];const a=[],A=c=>{c&&Sni(s,Eni(c))&&a.push(c)};for(const c of r)A(Bni(c));for(const c of n)A(bni(c));for(const c of o)$$t(c.layers,e.layer)&&A(Qni(c));for(const c of i){if(!$$t(c.layers,e.layer))continue;const l=c.hole_diameter/2;if(l<=0)continue;const g={shape:"circle",x:c.x,y:c.y,radius:l};A(g)}return a}function z$t(t,e,n){return e.shape==="rect"||e.shape==="rotated_rect"?(W$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:vni(e),rotation:e.shape==="rotated_rect"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="circle"?(J$t(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n}),!0):e.shape==="pill"||e.shape==="rotated_pill"?(j$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.shape==="rotated_pill"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="polygon"&&e.points&&e.points.length>=3?(q$t(t,e.points,n),!0):!1}function Cni(t,e,n){if(e.shape==="circle"){J$t(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n});return}if(e.shape==="oval"){yni(t,{x:e.x,y:e.y,radiusX:e.radiusX,radiusY:e.radiusY,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="pill"){j$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="polygon"){q$t(t,e.points,n);return}W$t(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:e.radius,rotation:e.rotation,realToCanvasMat:n})}function J$t(t,e){const{x:n,y:o,radius:i,realToCanvasMat:r}=e,[s,a]=ri(r,[n,o]),A=i*Math.abs(r.a);t.moveTo(s+A,a),t.arc(s,a,A,0,Math.PI*2),t.closePath()}function yni(t,e){const{x:n,y:o,radiusX:i,radiusY:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=ri(a,[n,o]),l=i*Math.abs(a.a),g=r*Math.abs(a.a);t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),t.moveTo(l,0),t.ellipse(0,0,l,g,0,0,Math.PI*2),t.closePath(),t.restore()}function W$t(t,e){const{x:n,y:o,width:i,height:r,radius:s=0,rotation:a=0,realToCanvasMat:A}=e,[c,l]=ri(A,[n,o]),g=i*Math.abs(A.a),u=r*Math.abs(A.a),h=s*Math.abs(A.a);if(t.save(),t.translate(c,l),a!==0&&t.rotate(-a*(Math.PI/180)),h>0){const d=-g/2,m=-u/2,p=Math.min(h,g/2,u/2);t.moveTo(d+p,m),t.lineTo(d+g-p,m),t.arcTo(d+g,m,d+g,m+p,p),t.lineTo(d+g,m+u-p),t.arcTo(d+g,m+u,d+g-p,m+u,p),t.lineTo(d+p,m+u),t.arcTo(d,m+u,d,m+u-p,p),t.lineTo(d,m+p),t.arcTo(d,m,d+p,m,p),t.closePath()}else t.rect(-g/2,-u/2,g,u);t.restore()}function j$t(t,e){const{x:n,y:o,width:i,height:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=ri(a,[n,o]),l=i*Math.abs(a.a),g=r*Math.abs(a.a);if(t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),l>g){const u=g/2,h=l-g;t.moveTo(-h/2,-u),t.lineTo(h/2,-u),t.arc(h/2,0,u,-Math.PI/2,Math.PI/2),t.lineTo(-h/2,u),t.arc(-h/2,0,u,Math.PI/2,-Math.PI/2)}else if(g>l){const u=l/2,h=g-l;t.moveTo(u,-h/2),t.lineTo(u,h/2),t.arc(0,h/2,u,0,Math.PI),t.lineTo(-u,-h/2),t.arc(0,-h/2,u,Math.PI,0)}else t.moveTo(l/2,0),t.arc(0,0,l/2,0,Math.PI*2);t.closePath(),t.restore()}function q$t(t,e,n){const o=e[0];if(!o)return;const[i,r]=ri(n,[o.x,o.y]);t.moveTo(i,r);for(let s=1;s<e.length;s++){const a=e[s];if(!a)continue;const[A,c]=ri(n,[a.x,a.y]);t.lineTo(A,c)}t.closePath()}function xni(t){if(t.shape==="circle")return yP(t.x,t.y,t.radius,t.radius);if(t.shape==="rect"||t.shape==="rotated_rect"||t.shape==="pill"||t.shape==="rotated_pill"){const e=Math.hypot(t.width/2,t.height/2);return(t.shape==="rotated_rect"||t.shape==="rotated_pill")&&(t.ccw_rotation??0)!==0?yP(t.x,t.y,e,e):yP(t.x,t.y,t.width/2,t.height/2)}if(t.shape==="polygon"&&t.points&&t.points.length>=3)return X$t(t.points)}function Eni(t){if(t.shape==="polygon")return X$t(t.points);if(t.shape==="circle")return yP(t.x,t.y,t.radius,t.radius);if(t.shape==="oval"){if((t.rotation??0)!==0){const o=Math.hypot(t.radiusX,t.radiusY);return yP(t.x,t.y,o,o)}return yP(t.x,t.y,t.radiusX,t.radiusY)}const e=t.width/2,n=t.height/2;if((t.rotation??0)!==0){const o=Math.hypot(e,n);return yP(t.x,t.y,o,o)}return yP(t.x,t.y,e,n)}function Bni(t){if(t.shape==="circle")return t.radius<=0?void 0:{shape:"circle",x:t.center.x,y:t.center.y,radius:t.radius};if(t.shape==="rect")return t.width<=0||t.height<=0?void 0:{shape:"rect",x:t.center.x,y:t.center.y,width:t.width,height:t.height,radius:t.corner_radius,rotation:t.rotation};if(t.shape==="polygon"&&t.points.length>=3)return{shape:"polygon",points:t.points}}function X$t(t){let e=1/0,n=-1/0,o=1/0,i=-1/0;for(const r of t)e=Math.min(e,r.x),n=Math.max(n,r.x),o=Math.min(o,r.y),i=Math.max(i,r.y);return{minX:e,maxX:n,minY:o,maxY:i}}function yP(t,e,n,o){return{minX:t-n,maxX:t+n,minY:e-o,maxY:e+o}}function Sni(t,e){return t.minX<=e.maxX&&t.maxX>=e.minX&&t.minY<=e.maxY&&t.maxY>=e.minY}function bni(t){if(t.hole_shape==="circle"){const e=t.hole_diameter/2;return e<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:e}}if(t.hole_shape==="square")return t.hole_diameter<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_diameter,height:t.hole_diameter,rotation:Fue(t)};if(t.hole_shape==="oval")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:t.hole_width/2,radiusY:t.hole_height/2,rotation:Fue(t)};if(t.hole_shape==="rect")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Fue(t)};if(t.hole_shape==="pill"||t.hole_shape==="rotated_pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Fue(t)}}function Qni(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function Fue(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function vni(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function $$t(t,e){if(!t||t.length===0)return!0;const n=Z$t(e);return t.some(o=>Z$t(o)===n)}function Z$t(t){if(typeof t=="string")return t;if(t&&typeof t=="object"&&"name"in t&&typeof t.name=="string")return t.name}function Pni(t,e){const n=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16);return`rgba(${n}, ${o}, ${i}, ${e})`}function wni(t,e){return t.layers.includes("bottom")&&!t.layers.includes("top")?e.keepout.bottom:e.keepout.top}function eZt(t){const{ctx:e,strokeColor:n,hatchWidth:o,hatchSpacing:i,diagonal:r,getLineEndpoints:s}=t;e.strokeStyle=n,e.lineWidth=o,e.setLineDash([]);for(let a=-r;a<r*2;a+=i){const{startX:A,startY:c,endX:l,endY:g}=s(a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.stroke()}}function tZt(t){const{ctx:e,fillColor:n,drawPath:o,drawHatch:i}=t;o(),e.fillStyle=n,e.fill(),o(),e.clip(),i()}function Mni(t){const{ctx:e,keepout:n,realToCanvasMat:o,colorMap:i}=t,r=Math.abs(o.a),s=wni(n,i),a=Pni(s,.2),A=1*r,c=.15*r;if(n.shape==="rect"){const[l,g]=ri(o,[n.center.x,n.center.y]),u=n.width*r,h=n.height*r,d=n.rotation??0,m=Math.sqrt(u*u+h*h),p=u/2,_=h/2;e.save(),e.translate(l,g),d!==0&&e.rotate(-d*(Math.PI/180)),tZt({ctx:e,fillColor:a,drawPath:()=>_ni({ctx:e,cx:0,cy:0,width:u,height:h}),drawHatch:()=>eZt({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:m,getLineEndpoints:f=>({startX:-p+f,startY:-_,endX:-p+f+m,endY:-_+m})})}),e.restore();return}if(n.shape==="circle"){const[l,g]=ri(o,[n.center.x,n.center.y]),u=n.radius*r,h=u*2;e.save(),e.translate(l,g),tZt({ctx:e,fillColor:a,drawPath:()=>pni({ctx:e,cx:0,cy:0,radius:u}),drawHatch:()=>eZt({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:h,getLineEndpoints:d=>({startX:d-h,startY:-h,endX:d+h,endY:h})})}),e.restore()}}var Dni="rgba(255,255,255,0.5)";function Nni(t){const{ctx:e,pcbNoteDimension:n,realToCanvasMat:o}=t,i=n.color??Dni;K$t({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:i,fontSize:n.font_size,arrowSize:n.arrow_size,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function Rni(t){const{ctx:e,line:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.stroke_width??.1,a=n.is_dashed??!1,[A,c]=ri(o,[n.x1,n.y1]),[l,g]=ri(o,[n.x2,n.y2]),u=s*Math.abs(o.a);e.save(),a?e.setLineDash([u*2,u*2]):e.setLineDash([]),e.beginPath(),e.moveTo(A,c),e.lineTo(l,g),e.lineWidth=u,e.strokeStyle=r,e.lineCap="round",e.stroke(),e.restore()}function Tni(t){const{ctx:e,path:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)";if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||xG({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function kni(t){const{ctx:e,rect:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.is_filled??!1,a=n.has_stroke??!0,A=n.is_stroke_dashed??!1;am({ctx:e,center:n.center,width:n.width,height:n.height,fill:s?r:void 0,stroke:a?r:void 0,strokeWidth:a?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:A})}var Fni="rgb(89, 148, 220)";function Lni(t){const{ctx:e,text:n,realToCanvasMat:o}=t,i=Fni,r=n.color??i,s=n.font_size??1;Yq({ctx:e,text:n.text??"",x:n.anchor_position.x,y:n.anchor_position.y,fontSize:s,color:r,realToCanvasMat:o,anchorAlignment:n.anchor_alignment??"center",mirrorX:n.is_mirrored_from_top_view??n.layer==="bottom"})}function Hni(t){const{ctx:e,panel:n,realToCanvasMat:o,colorMap:i}=t,{width:r,height:s,center:a}=n;if(r!==void 0&&s!==void 0&&a){const A=r/2,c=s/2,l=[{x:a.x-A,y:a.y-c},{x:a.x+A,y:a.y-c},{x:a.x+A,y:a.y+c},{x:a.x-A,y:a.y+c}];Tue({ctx:e,points:l,stroke:i.boardOutline,strokeWidth:.5,realToCanvasMat:o,closePath:!0})}}function Uq(t,e){if(t.length<3||e===0)return t;let n=0,o=0;for(const r of t)n+=r.x,o+=r.y;n/=t.length,o/=t.length;const i=[];for(const r of t){const s=r.x-n,a=r.y-o,A=Math.sqrt(s*s+a*a);if(A>0){const c=s/A,l=a/A;i.push({x:r.x+c*e,y:r.y+l*e})}else i.push({x:r.x+e,y:r.y})}return i}function nZt(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s}=t;if(n.is_covered_with_solder_mask===!0&&s)return;const a=i.copper[t.layer??"top"],A=r<0?Math.abs(r):0;if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2-A,fill:a,realToCanvasMat:o}),X6(e,()=>{Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2-A,radius_y:n.outer_height/2-A,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),X6(e,()=>{bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width-A*2,height:n.outer_height-A*2,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),X6(e,()=>{Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="circular_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Zm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);X6(e,()=>{Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.hole_ccw_rotation})}),Jp({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.hole_ccw_rotation});return}if(n.shape==="hole_with_polygon_pad"){const c=n.pad_outline;if(c&&c.length>=3){const h=c.map(m=>({x:n.x+m.x,y:n.y+m.y})),d=A>0?Uq(h,-A):h;d.length>=3&&IP({ctx:e,points:d,fill:a,realToCanvasMat:o})}const l=n.x+(n.hole_offset_x??0),g=n.y+(n.hole_offset_y??0),u=n.hole_shape;u==="circle"?(X6(e,()=>{Zm({ctx:e,center:{x:l,y:g},radius:(n.hole_diameter??0)/2,fill:"#000",realToCanvasMat:o})}),Zm({ctx:e,center:{x:l,y:g},radius:(n.hole_diameter??0)/2,fill:i.drill,realToCanvasMat:o})):u==="oval"?(X6(e,()=>{bB({ctx:e,center:{x:l,y:g},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:"#000",realToCanvasMat:o})}),bB({ctx:e,center:{x:l,y:g},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:i.drill,realToCanvasMat:o})):u==="pill"?(X6(e,()=>{Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o})):u==="rotated_pill"&&(X6(e,()=>{Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),Jp({ctx:e,center:{x:l,y:g},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o}));return}}function X6(t,e){t.save(),t.globalCompositeOperation="destination-out",e(),t.restore()}function Oni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Gni(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t,r=Oni(n.layer,i);Zm({ctx:e,center:n.center,radius:n.radius,stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Yni(t){const{ctx:e,graphic:n,realToCanvasMat:o,colorMap:i}=t,r=n.layer==="bottom"?i.silkscreen.bottom:i.silkscreen.top;e.beginPath(),U$t({ctx:e,shape:n.brep_shape,realToCanvasMat:o}),e.fillStyle=r,e.fill("evenodd")}function Uni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Kni(t){const{ctx:e,line:n,realToCanvasMat:o,colorMap:i}=t,r=Uni(n.layer,i);xG({ctx:e,start:{x:n.x1,y:n.y1},end:{x:n.x2,y:n.y2},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}function Vni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function zni(t){const{ctx:e,oval:n,realToCanvasMat:o,colorMap:i}=t,r=Vni(n.layer,i);bB({ctx:e,center:n.center,radius_x:n.radius_x,radius_y:n.radius_y,stroke:r,strokeWidth:.1,realToCanvasMat:o,rotation:n.ccw_rotation??0})}function Jni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Wni(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=Jni(n.layer,i);if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||xG({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function jni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function qni(t){const{ctx:e,pill:n,realToCanvasMat:o,colorMap:i}=t,r=jni(n.layer,i);Jp({ctx:e,center:n.center,width:n.width,height:n.height,stroke:r,strokeWidth:.2,realToCanvasMat:o})}function Xni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function $ni(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=Xni(n.layer,i);am({ctx:e,center:n.center,width:n.width,height:n.height,borderRadius:n.corner_radius,fill:n.is_filled?r:"transparent",stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Zni(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function eoi(t){return t||"center"}function toi(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";if(!r)return;const s=Zni(n.layer,i),a=eoi(n.anchor_alignment),A=n.font_size??1;Yq({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:A,color:s,realToCanvasMat:o,anchorAlignment:a,rotation:n.ccw_rotation??0,mirrorX:n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function noi(t,e){return e.copper[t]??e.copper.top}function oZt(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function ooi(t){const{ctx:e,pad:n,realToCanvasMat:o,colorMap:i}=t,r=noi(n.layer,i),s=Ini(t);if(s.length>0){fni({ctx:e,pad:n,realToCanvasMat:o,color:r,drillCutouts:s});return}if(n.shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:oZt(n)});return}if(n.shape==="rotated_rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:oZt(n),ccwRotationDegrees:n.ccw_rotation??0});return}if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:r,realToCanvasMat:o});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o});return}if(n.shape==="rotated_pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,rotation:n.ccw_rotation??0});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:r,realToCanvasMat:o});return}}var Kq="rgb(105, 105, 105)";function iZt(t){const{ctx:e,solderPaste:n,realToCanvasMat:o}=t,i={x:n.x,y:n.y};if(n.shape==="rect"){am({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){am({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation});return}if(n.shape==="pill"){Jp({ctx:e,center:i,width:n.width,height:n.height,fill:Kq,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:i,radius_x:n.width/2,radius_y:n.height/2,fill:Kq,realToCanvasMat:o});return}n.shape==="circle"&&Zm({ctx:e,center:i,radius:n.radius,fill:Kq,realToCanvasMat:o})}function ioi(t){return typeof t=="function"}function rZt(t,e,n){if(e<=0||n<=0)return null;const o=globalThis;let i=null;if("OffscreenCanvas"in o&&typeof o.OffscreenCanvas=="function")i=new o.OffscreenCanvas(e,n);else if("document"in o&&o.document&&typeof o.document.createElement=="function"){const r=o.document.createElement("canvas");r.width=e,r.height=n,i=r}else{const r=t.canvas.constructor;if(ioi(r))try{i=new r(e,n)}catch{return null}}return i?i.getContext("2d"):null}function roi(t){return"createPattern"in t&&typeof Reflect.get(t,"createPattern")=="function"}function sZt(t,e){if(t===e||e.canvas.width<=0||e.canvas.height<=0||!roi(t))return!1;let n=null;try{n=t.createPattern(e.canvas,"no-repeat")}catch{return!1}return n?(t.save(),t.globalCompositeOperation="source-over",t.fillStyle=n,t.fillRect(0,0,e.canvas.width,e.canvas.height),t.restore(),!0):!1}function aZt(t){const{ctx:e,board:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a,outline:A}=n;if(A&&Array.isArray(A)&&A.length>=3){const c=A.map(l=>{const[g,u]=ri(o,[l.x,l.y]);return{x:g,y:u}});e.beginPath(),CP({ctx:e,points:c}),e.fillStyle=i,e.fill()}else if(r!==void 0&&s!==void 0&&a){const[c,l]=ri(o,[a.x,a.y]),g=r*Math.abs(o.a),u=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(c-g/2,l-u/2,g,u)}}function soi(t){const{ctx:e,panel:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a}=n;if(r===void 0||s===void 0||!a)return;const[A,c]=ri(o,[a.x,a.y]),l=r*Math.abs(o.a),g=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(A-l/2,c-g/2,l,g)}function oE(t){t.save(),t.globalCompositeOperation="destination-out",t.fill(),t.restore()}function aoi(t){const{ctx:e,cutout:n,realToCanvasMat:o}=t;if(n.shape==="rect"){const[i,r]=ri(o,[n.center?.x??0,n.center?.y??0]),s=n.width*Math.abs(o.a),a=n.height*Math.abs(o.a),A=(n.corner_radius??0)*Math.abs(o.a);e.save(),e.translate(i,r),n.rotation&&e.rotate(-n.rotation*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:s,height:a,radius:A}),e.restore(),oE(e)}else if(n.shape==="circle"){const[i,r]=ri(o,[n.center?.x??0,n.center?.y??0]),s=n.radius*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),oE(e)}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const i=n.points.map(r=>{const[s,a]=ri(o,[r.x,r.y]);return{x:s,y:a}});e.beginPath(),CP({ctx:e,points:i}),oE(e)}}var Of="rgba(255, 255, 255, 1)";function BYe(t){const{ctx:e,elements:n,layer:o,realToCanvasMat:i}=t;e.save(),e.globalCompositeOperation="destination-out";for(const r of n){if(r.type==="pcb_smtpad"){if(r.layer!==o||r.is_covered_with_solder_mask===!0)continue;Aoi({ctx:e,pad:r,realToCanvasMat:i});continue}if(r.type==="pcb_plated_hole"){if(r.layers&&!r.layers.includes(o)||r.is_covered_with_solder_mask===!0)continue;coi({ctx:e,hole:r,realToCanvasMat:i});continue}if(r.type==="pcb_via"){if(r.layers&&!r.layers.includes(o))continue;Zm({ctx:e,center:{x:r.x,y:r.y},radius:r.outer_diameter/2,fill:Of,realToCanvasMat:i});continue}if(r.type==="pcb_hole"){if(r.is_covered_with_solder_mask===!0)continue;loi({ctx:e,hole:r,realToCanvasMat:i})}}e.restore()}function Aoi(t){const{ctx:e,pad:n,realToCanvasMat:o}=t;if(n.shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,ccwRotationDegrees:n.ccw_rotation??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill"||n.shape==="rotated_pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,rotation:n.shape==="rotated_pill"?n.ccw_rotation??0:0,fill:Of,realToCanvasMat:o});return}n.shape==="polygon"&&n.points&&n.points.length>=3&&IP({ctx:e,points:n.points,fill:Of,realToCanvasMat:o})}function coi(t){const{ctx:e,hole:n,realToCanvasMat:o}=t;if(n.shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:Of,realToCanvasMat:o});return}if(n.shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2,radius_y:n.outer_height/2,rotation:n.ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill"){Jp({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width,height:n.outer_height,rotation:n.ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="circular_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:Of,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,fill:Of,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){am({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:Of,realToCanvasMat:o});return}n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3&&IP({ctx:e,points:n.pad_outline.map(i=>({x:n.x+i.x,y:n.y+i.y})),fill:Of,realToCanvasMat:o})}function loi(t){const{ctx:e,hole:n,realToCanvasMat:o}=t,i="ccw_rotation"in n&&typeof n.ccw_rotation=="number"?n.ccw_rotation:0;if(n.hole_shape==="circle"){Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="square"){am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter,height:n.hole_diameter,ccwRotationDegrees:i,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="oval"){bB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,rotation:i,fill:Of,realToCanvasMat:o});return}if(n.hole_shape==="rect"){am({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,ccwRotationDegrees:i,fill:Of,realToCanvasMat:o});return}(n.hole_shape==="pill"||n.hole_shape==="rotated_pill")&&Jp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,rotation:i,fill:Of,realToCanvasMat:o})}function goi(t,e,n,o,i){if(Math.abs(i)<1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a<1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),g=l-A,u=(t+n)/2,h=(e+o)/2,d=-s/a,m=r/a,p=i>0?-1:1;return{centerX:u+p*d*g,centerY:h+p*m*g,radius:l}}function SYe(t,e,n,o,i,r,s){if(Math.abs(r)<1e-10){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const a=goi(e,n,o,i,r);if(!a){const[C,y]=ri(s,[o,i]);t.lineTo(C,y);return}const[A,c]=ri(s,[e,n]),[l,g]=ri(s,[o,i]),[u,h]=ri(s,[a.centerX,a.centerY]),d=Math.hypot(A-u,c-h),m=Math.atan2(c-h,A-u),p=Math.atan2(g-h,l-u),f=s.a*s.d-s.b*s.c<0,I=r>0?!f:f;t.arc(u,h,d,m,p,I)}function AZt(t,e,n){if(e.vertices.length<2)return;if(e.vertices.length===2){const s=e.vertices[0],a=e.vertices[1];if(s&&a&&Math.abs((s.bulge??0)-1)<1e-10&&Math.abs((a.bulge??0)-1)<1e-10){const[A,c]=ri(n,[s.x,s.y]);t.moveTo(A,c),SYe(t,s.x,s.y,a.x,a.y,1,n),SYe(t,a.x,a.y,s.x,s.y,1,n);return}}const o=e.vertices[0];if(!o)return;const[i,r]=ri(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s<e.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];if(!a||!A)continue;const c=a.bulge??0;if(Math.abs(c)<1e-10){const[l,g]=ri(n,[A.x,A.y]);t.lineTo(l,g)}else SYe(t,a.x,a.y,A.x,A.y,c,n)}}function uoi(t){const{ctx:e,pour:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r,elements:s}=t;if(n.layer===r&&n.covered_with_solder_mask===!0){if(e.save(),e.fillStyle=i,n.shape==="rect"){const[a,A]=ri(o,[n.center.x,n.center.y]),c=n.width*Math.abs(o.a),l=n.height*Math.abs(o.a);e.translate(a,A),n.rotation&&e.rotate(-n.rotation*(Math.PI/180)),e.beginPath(),e.rect(-c/2,-l/2,c,l),e.fill(),e.restore(),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o});return}if(n.shape==="polygon"){if(n.points&&n.points.length>=3){const a=n.points.map(c=>ri(o,[c.x,c.y])),A=a[0];if(A){e.beginPath();const[c,l]=A;e.moveTo(c,l);for(let g=1;g<a.length;g++){const u=a[g];if(!u)continue;const[h,d]=u;e.lineTo(h,d)}e.closePath(),e.fill(),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o})}}e.restore();return}if(n.shape==="brep"){if(e.beginPath(),AZt(e,n.brep_shape.outer_ring,o),n.brep_shape.inner_rings)for(const a of n.brep_shape.inner_rings)AZt(e,a,o);e.fill("evenodd"),BYe({ctx:e,elements:s,layer:r,realToCanvasMat:o}),e.restore();return}e.restore()}}function doi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i}=t,r=n.is_covered_with_solder_mask===!0,s=n.soldermask_margin??0;r?(e.fillStyle=i,Lue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):s<0?(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:s}),oE(e),hoi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:s})):s>0?(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:s}),oE(e)):(Lue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),oE(e))}function cZt(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function Lue(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t,r=cZt(n);if(n.hole_shape==="circle"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(s,a,A,0,Math.PI*2),e.closePath()}else if(n.hole_shape==="square"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_diameter+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-A/2,A,A),e.closePath(),e.restore()}else if(n.hole_shape==="oval"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width/2+i)*Math.abs(o.a),c=(n.hole_height/2+i)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.ellipse(0,0,A,c,0,0,Math.PI*2),e.closePath(),e.restore()}else if(n.hole_shape==="rect"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-c/2,A,c),e.closePath(),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[s,a]=ri(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:A,height:c}),e.restore()}}function hoi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r),a=cZt(n);if(e.fillStyle=i,n.hole_shape==="circle"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_diameter/2*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,l-g);e.save(),e.beginPath(),e.arc(A,c,l,0,Math.PI*2),u>0&&e.arc(A,c,u,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="square"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_diameter*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,l-g*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-l/2,l,l),u>0&&e.rect(-u/2,-u/2,u,u),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="oval"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width/2*Math.abs(o.a),g=n.hole_height/2*Math.abs(o.a),u=s*Math.abs(o.a),h=Math.max(0,l-u),d=Math.max(0,g-u);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.ellipse(0,0,l,g,0,0,Math.PI*2),h>0&&d>0&&(e.moveTo(h,0),e.ellipse(0,0,h,d,0,0,Math.PI*2)),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="rect"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),g=n.hole_height*Math.abs(o.a),u=s*Math.abs(o.a),h=Math.max(0,l-u*2),d=Math.max(0,g-u*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-g/2,l,g),h>0&&d>0&&e.rect(-h/2,-d/2,h,d),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[A,c]=ri(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),g=n.hole_height*Math.abs(o.a),u=s*Math.abs(o.a);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:l,height:g});const h=l-u*2,d=g-u*2;h>0&&d>0&&PS({ctx:e,cx:0,cy:0,width:h,height:d}),e.fill("evenodd"),e.restore()}}function moi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layers&&!n.layers.includes(r))return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;s?(e.fillStyle=i,Hue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):a<0?(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:a}),oE(e),poi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:a})):a>0?(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:a}),oE(e)):(Hue({ctx:e,hole:n,realToCanvasMat:o,margin:0}),oE(e))}function Hue(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t;if(n.shape==="circle"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.closePath()}else if(n.shape==="oval"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_width/2+i)*Math.abs(o.a),A=(n.outer_height/2+i)*Math.abs(o.a);e.beginPath(),e.ellipse(r,s,a,A,-((n.ccw_rotation??0)*Math.PI)/180,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"){const[r,s]=ri(o,[n.x,n.y]),a=(n.outer_width+i*2)*Math.abs(o.a),A=(n.outer_height+i*2)*Math.abs(o.a);e.beginPath(),PS({ctx:e,cx:r,cy:s,width:a,height:A,ccwRotationDegrees:n.ccw_rotation})}else if(n.shape==="circular_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="pill_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c})}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[r,s]=ri(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),nE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const r=n.pad_outline.map(A=>({x:n.x+A.x,y:n.y+A.y})),a=(i!==0?Uq(r,i):r).map(A=>{const[c,l]=ri(o,[A.x,A.y]);return{x:c,y:l}});e.beginPath(),CP({ctx:e,points:a})}}function poi(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r);if(e.fillStyle=i,n.shape==="circle"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a),l=s*Math.abs(o.a),g=Math.max(0,c-l);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),g>0&&e.arc(a,A,g,0,Math.PI*2,!0),e.fill("evenodd")}else if(n.shape==="oval"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_width/2*Math.abs(o.a),l=n.outer_height/2*Math.abs(o.a),g=s*Math.abs(o.a),u=Math.max(0,c-g),h=Math.max(0,l-g),d=-((n.ccw_rotation??0)*Math.PI)/180;if(e.beginPath(),e.ellipse(a,A,c,l,d,0,Math.PI*2),u>0&&h>0){const m=a+u*Math.cos(d),p=A+u*Math.sin(d);e.moveTo(m,p),e.ellipse(a,A,u,h,d,0,Math.PI*2)}e.fill("evenodd")}else if(n.shape==="pill"){const[a,A]=ri(o,[n.x,n.y]),c=n.outer_width*Math.abs(o.a),l=n.outer_height*Math.abs(o.a),g=s*Math.abs(o.a);e.beginPath(),PS({ctx:e,cx:a,cy:A,width:c,height:l,ccwRotationDegrees:n.ccw_rotation});const u=c-g*2,h=l-g*2;u>0&&h>0&&PS({ctx:e,cx:a,cy:A,width:u,height:h,ccwRotationDegrees:n.ccw_rotation}),e.fill("evenodd")}else if(n.shape==="circular_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="pill_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m})}e.fill("evenodd")}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[a,A]=ri(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),g=s*Math.abs(o.a),u=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),nE({ctx:e,cx:a,cy:A,width:c,height:l,radius:u,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-g*2,d=l-g*2;if(h>0&&d>0){const m=Math.max(0,u-g);nE({ctx:e,cx:a,cy:A,width:h,height:d,radius:m,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const a=n.pad_outline.map(l=>({x:n.x+l.x,y:n.y+l.y}));e.beginPath();const A=a.map(l=>{const[g,u]=ri(o,[l.x,l.y]);return{x:g,y:u}});CP({ctx:e,points:A});const c=Uq(a,-s);if(c.length>=3){const l=c.map(g=>{const[u,h]=ri(o,[g.x,g.y]);return{x:u,y:h}});CP({ctx:e,points:l})}e.fill("evenodd")}}function _oi(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layer!==r)return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;let A=a,c=a,l=a,g=a;(n.shape==="rect"||n.shape==="rotated_rect")&&(A=n.soldermask_margin_left??a,c=n.soldermask_margin_right??a,l=n.soldermask_margin_top??a,g=n.soldermask_margin_bottom??a),s?(e.fillStyle=i,Oue({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),e.fill()):A<0||c<0||l<0||g<0?(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:g}),oE(e),foi({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:A,mr:c,mt:l,mb:g})):A>0||c>0||l>0||g>0?(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:g}),oE(e)):(Oue({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),oE(e))}function Oue(t){const{ctx:e,pad:n,realToCanvasMat:o,ml:i,mr:r,mt:s,mb:a}=t,A=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0;if(n.shape==="rect"||n.shape==="rotated_rect"){const c=n.corner_radius??n.rect_border_radius??0,l=A*Math.PI/180,g=(r-i)/2,u=(s-a)/2,h=g*Math.cos(l)-u*Math.sin(l),d=g*Math.sin(l)+u*Math.cos(l),[m,p]=ri(o,[n.x+h,n.y+d]),_=(n.width+i+r)*Math.abs(o.a),f=(n.height+s+a)*Math.abs(o.a),I=c*Math.abs(o.a);e.save(),e.translate(m,p),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I}),e.restore()}else if(n.shape==="circle"){const c=(i+r+s+a)/4,[l,g]=ri(o,[n.x,n.y]),u=(n.radius+c)*Math.abs(o.a);e.beginPath(),e.arc(l,g,u,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const c=(i+r)/2,[l,g]=ri(o,[n.x,n.y]),u=(n.width+c*2)*Math.abs(o.a),h=(n.height+c*2)*Math.abs(o.a);e.save(),e.translate(l,g),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:u,height:h}),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const c=(i+r+s+a)/4,g=(c!==0?Uq(n.points,c):n.points).map(u=>{const[h,d]=ri(o,[u.x,u.y]);return{x:h,y:d}});e.beginPath(),CP({ctx:e,points:g})}}function foi(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:r,mr:s,mt:a,mb:A}=t,c=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0,l=Math.max(0,-r),g=Math.max(0,-s),u=Math.max(0,-a),h=Math.max(0,-A);if(e.fillStyle=i,n.shape==="rect"||n.shape==="rotated_rect"){const d=n.corner_radius??n.rect_border_radius??0,[m,p]=ri(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a),C=l*Math.abs(o.a),y=g*Math.abs(o.a),x=u*Math.abs(o.a),E=h*Math.abs(o.a);e.save(),e.translate(m,p),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),nE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I});const B=_-C-y,b=f-x-E,Q=(C-y)/2,w=(x-E)/2,D=Math.max(0,I-(C+y+x+E)/4);B>0&&b>0&&nE({ctx:e,cx:Q,cy:w,width:B,height:b,radius:D}),e.fill("evenodd"),e.restore()}else if(n.shape==="circle"){const d=Math.max(l,g,u,h),[m,p]=ri(o,[n.x,n.y]),_=n.radius*Math.abs(o.a),f=d*Math.abs(o.a),I=Math.max(0,_-f);e.save(),e.beginPath(),e.arc(m,p,_,0,Math.PI*2),I>0&&e.arc(m,p,I,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const d=Math.max(l,g,u,h),[m,p]=ri(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a);e.save(),e.translate(m,p),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),PS({ctx:e,cx:0,cy:0,width:_,height:f});const C=_-I*2,y=f-I*2;C>0&&y>0&&PS({ctx:e,cx:0,cy:0,width:C,height:y}),e.fill("evenodd"),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const d=Math.max(l,g,u,h);e.save(),e.beginPath();const m=n.points.map(_=>{const[f,I]=ri(o,[_.x,_.y]);return{x:f,y:I}});CP({ctx:e,points:m});const p=Uq(n.points,-d);if(p.length>=3){const _=p.map(f=>{const[I,C]=ri(o,[f.x,f.y]);return{x:I,y:C}});CP({ctx:e,points:_})}e.fill("evenodd"),e.restore()}}function EG(t,e){const n=Math.hypot(t,e);return n<=Number.EPSILON?{x:0,y:0}:{x:t/n,y:e/n}}function Ioi(t,e){const n=t.length;if(n<2)return{x:1,y:0};if(e<=0){const c=t[1],l=t[0];if(!c||!l)return{x:1,y:0};const g=EG(c.x-l.x,c.y-l.y);return g.x===0&&g.y===0?{x:1,y:0}:g}if(e>=n-1){const c=t[n-2],l=t[n-1];if(!c||!l)return{x:1,y:0};const g=EG(l.x-c.x,l.y-c.y);return g.x===0&&g.y===0?{x:1,y:0}:g}const o=t[e-1],i=t[e],r=t[e+1];if(!o||!i||!r)return{x:1,y:0};const s=EG(i.x-o.x,i.y-o.y),a=EG(r.x-i.x,r.y-i.y),A=EG(s.x+a.x,s.y+a.y);return A.x===0&&A.y===0?s.x!==0||s.y!==0?s:a.x!==0||a.y!==0?a:{x:1,y:0}:A}function lZt(t){const e=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const r=Ioi(t,o),s=EG(-r.y,r.x),a=i.width/2;e.push({x:i.x+s.x*a,y:i.y+s.y*a}),n.push({x:i.x-s.x*a,y:i.y-s.y*a})}return e.concat(n.reverse())}function bYe(t){const e=[];let n=[],o=null;for(const i of t??[]){if(!i||i.route_type!=="wire"){n.length>=2&&e.push(n),n=[],o=null;continue}const r=i.layer??o;if(!r)continue;const s=i.x,a=i.y;typeof s!="number"||typeof a!="number"||typeof i.width=="number"&&(i.width,o&&r!==o&&(n.length>=2&&e.push(n),n=[]),o=r,n.push(i))}return n.length>=2&&e.push(n),e}var gZt=1e-6;function uZt(t){const{ctx:e,trace:n,realToCanvasMat:o,vias:i,platedHoles:r,layer:s}=t;if(!n.route||n.route.length<2)return;const a=bYe(n.route);if(a.length===0)return;const A=new Map;for(const c of a){const l=c[0]?.layer,g=c[c.length-1];if(!(!l||!g)&&!(s&&l!==s)){for(const u of i){if(u.layers&&Array.isArray(u.layers)&&!u.layers.includes(l)||!dZt(g.x,g.y,u.x,u.y))continue;const h=u.hole_diameter/2;if(h<=0)continue;const d={shape:"circle",x:u.x,y:u.y,radius:h};A.set(hZt(d),d)}for(const u of r){if(u.layers&&Array.isArray(u.layers)&&!u.layers.includes(l))continue;const h=Coi(u);h&&dZt(g.x,g.y,h.x,h.y)&&A.set(hZt(h),h)}}}if(A.size!==0){e.save(),e.globalCompositeOperation="destination-out";for(const c of A.values()){if(c.shape==="circle"){Zm({ctx:e,center:{x:c.x,y:c.y},radius:c.radius,fill:"#000",realToCanvasMat:o});continue}if(c.shape==="oval"){bB({ctx:e,center:{x:c.x,y:c.y},radius_x:c.radiusX,radius_y:c.radiusY,fill:"#000",realToCanvasMat:o,rotation:c.rotation});continue}Jp({ctx:e,center:{x:c.x,y:c.y},width:c.width,height:c.height,fill:"#000",realToCanvasMat:o,rotation:c.rotation})}e.restore()}}function Coi(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function dZt(t,e,n,o){return Math.abs(t-n)<=gZt&&Math.abs(e-o)<=gZt}function hZt(t){return t.shape==="circle"?`circle:${t.x}:${t.y}:${t.radius}`:t.shape==="oval"?`oval:${t.x}:${t.y}:${t.radiusX}:${t.radiusY}:${t.rotation??0}`:`pill:${t.x}:${t.y}:${t.width}:${t.height}:${t.rotation??0}`}function yoi(t){const{ctx:e,trace:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=bYe(n.route);for(const a of s)if(a[0]?.layer===r){if(n.route_thickness_mode==="interpolated"){IP({ctx:e,points:lZt(a),fill:i,realToCanvasMat:o});continue}for(let c=0;c<a.length-1;c++){const l=a[c],g=a[c+1];!l||!g||xG({ctx:e,start:{x:l.x,y:l.y},end:{x:g.x,y:g.y},strokeWidth:l.width,stroke:i,realToCanvasMat:o,lineCap:"round"})}}uZt({ctx:e,trace:n,realToCanvasMat:o,layer:r,vias:t.vias,platedHoles:t.platedHoles})}function xoi(t){const{ctx:e,via:n,realToCanvasMat:o}=t,[i,r]=ri(o,[n.x,n.y]),s=n.outer_diameter/2*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),oE(e)}function mZt(t){const{ctx:e,elements:n,realToCanvasMat:o,colorMap:i,layer:r,drawSoldermask:s}=t;if(!s||e.canvas.width<=0||e.canvas.height<=0)return;const a=n.filter(d=>d.type==="pcb_board"),A=n.find(d=>d.type==="pcb_panel");if(a.length===0&&!A)return;const c=i.soldermask[r]??i.soldermask.top,l=i.soldermaskOverCopper[r]??i.soldermaskOverCopper.top,g=n.filter(d=>d.type==="pcb_via"),u=n.filter(d=>d.type==="pcb_plated_hole"),h=rZt(e,e.canvas.width,e.canvas.height)??e;if(A&&soi({ctx:h,panel:A,realToCanvasMat:o,soldermaskColor:c}),A&&a.length>0){h.save(),h.globalCompositeOperation="destination-out";for(const d of a)aZt({ctx:h,board:d,realToCanvasMat:o,soldermaskColor:"#000"});h.restore()}for(const d of a)aZt({ctx:h,board:d,realToCanvasMat:o,soldermaskColor:c});for(const d of n)d.type==="pcb_trace"?yoi({ctx:h,trace:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r,vias:g,platedHoles:u}):d.type==="pcb_copper_pour"&&uoi({ctx:h,pour:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r,elements:n});for(const d of n)Eoi({ctx:h,element:d,realToCanvasMat:o,soldermaskOverCopperColor:l,layer:r});sZt(e,h)}function Eoi(t){const{ctx:e,element:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.type==="pcb_smtpad")_oi({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_plated_hole")moi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_hole")doi({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i});else if(n.type==="pcb_via")xoi({ctx:e,via:n,realToCanvasMat:o});else if(n.type==="pcb_cutout")aoi({ctx:e,cutout:n,realToCanvasMat:o});else{if(n.type==="pcb_copper_pour")return;if(n.type==="pcb_trace")return}}function Boi(t,e){return e.copper[t]??e.copper.top}function Soi(t){const{ctx:e,trace:n,realToCanvasMat:o,colorMap:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=bYe(n.route);for(const a of s){const A=a[0]?.layer;if(!A||r&&A!==r)continue;const c=Boi(A,i);if(n.route_thickness_mode==="interpolated"){IP({ctx:e,points:lZt(a),fill:c,realToCanvasMat:o});continue}for(let l=0;l<a.length-1;l++){const g=a[l],u=a[l+1];!g||!u||g.is_inside_copper_pour&&u.is_inside_copper_pour||xG({ctx:e,start:{x:g.x,y:g.y},end:{x:u.x,y:u.y},strokeWidth:g.width,stroke:c,realToCanvasMat:o,lineCap:"round"})}}uZt({ctx:e,trace:n,realToCanvasMat:o,vias:t.vias??[],platedHoles:t.platedHoles??[],layer:r})}function pZt(t){const{ctx:e,traces:n,copperPours:o,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a,renderLayers:A}=t;for(const c of Qoi(n,A)){const l=o.filter(u=>u.layer===c);if(l.length===0){QYe({ctx:e,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a});continue}const g=rZt(e,e.canvas.width,e.canvas.height);g&&(QYe({ctx:g,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}),boi({ctx:g,copperPours:l,realToCanvasMat:i}),sZt(e,g))||(e.save(),voi({ctx:e,copperPours:l,realToCanvasMat:i}),QYe({ctx:e,traces:n,layer:c,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}),e.restore())}}function QYe(t){const{ctx:e,traces:n,layer:o,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a}=t;for(const A of n)Soi({ctx:e,trace:A,realToCanvasMat:i,colorMap:r,vias:s,platedHoles:a,layer:o})}function boi(t){const{ctx:e,copperPours:n,realToCanvasMat:o}=t;if(n.length!==0){e.save(),e.globalCompositeOperation="destination-out",e.fillStyle="#000";for(const i of n)e.beginPath(),yYe({ctx:e,pour:i,realToCanvasMat:o}),e.fill(i.shape==="brep"?"evenodd":"nonzero");e.restore()}}function Qoi(t,e){const n=new Set;for(const o of t)for(const i of o.route??[])i.route_type!=="wire"||!i.layer||e?.length&&!e.includes(`${i.layer}_copper`)||n.add(i.layer);return[...n]}function voi(t){const{ctx:e,copperPours:n,realToCanvasMat:o}=t;if(n.length!==0){e.beginPath(),e.rect(0,0,e.canvas.width,e.canvas.height);for(const i of n)yYe({ctx:e,pour:i,realToCanvasMat:o});e.clip("evenodd")}}function _Zt(t){const{ctx:e,via:n,realToCanvasMat:o,colorMap:i,layer:r}=t;Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:i.copper[r??"top"],realToCanvasMat:o}),e.save(),e.globalCompositeOperation="destination-out",Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o}),e.restore(),Zm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o})}function Cx(t,e){if(!e.layers||e.layers.length===0)return!0;if(t.type==="pcb_silkscreen_graphic")return e.layers.some(o=>o===`${t.layer}_silkscreen`);const n=e4e(t);return n.length===0?!0:n.some(o=>e.layers.includes(o))}var Poi={copper:{top:"rgb(200, 52, 52)",inner1:"rgb(255, 140, 0)",inner2:"rgb(255, 215, 0)",inner3:"rgb(50, 205, 50)",inner4:"rgb(64, 224, 208)",inner5:"rgb(138, 43, 226)",inner6:"rgb(255, 105, 180)",inner7:"rgb(232, 178, 167)",inner8:"rgb(242, 237, 161)",bottom:"rgb(77, 127, 196)"},copperPour:{top:"rgb(230, 95, 95)",bottom:"rgb(122, 162, 222)"},soldermaskWithCopperUnderneath:{top:"rgb(18, 82, 50)",bottom:"rgb(77, 127, 196)"},soldermask:{top:"rgb(12, 55, 33)",bottom:"rgb(12, 55, 33)"},soldermaskOverCopper:{top:"rgb(52, 135, 73)",bottom:"rgb(52, 135, 73)"},substrate:"rgb(201, 162, 110)",drill:"#FF26E2",silkscreen:{top:"#f2eda1",bottom:"#5da9e9"},boardOutline:"rgba(255, 255, 255, 0.5)",courtyard:{top:"#FF00FF",bottom:"rgb(38, 233, 255)"},keepout:{top:"#FF6B6B",bottom:"#5da9e9"},fabricationNote:"rgba(255, 255, 255, 0.5)"};function woi(t){return!t||t.length===0?"top":(t.find(n=>n.endsWith("_copper"))??t[0]??"top_copper").split("_")[0]}var BG=(t,e)=>t.layers?.includes(e)??!0,W5=class $Cn{ctx;colorMap;realToCanvasMat;constructor(e){if("getContext"in e&&typeof e.getContext=="function"){const n=e.getContext("2d");if(!n)throw new Error("Failed to get 2D rendering context from canvas");this.ctx=n}else this.ctx=e;this.colorMap={...Poi},this.realToCanvasMat=bti()}configure(e){e.colorOverrides&&(this.colorMap={...this.colorMap,...e.colorOverrides,copper:{...this.colorMap.copper,...e.colorOverrides.copper},copperPour:{...this.colorMap.copperPour,...e.colorOverrides.copperPour},silkscreen:{...this.colorMap.silkscreen,...e.colorOverrides.silkscreen},soldermask:{...this.colorMap.soldermask,...e.colorOverrides.soldermask},soldermaskWithCopperUnderneath:{...this.colorMap.soldermaskWithCopperUnderneath,...e.colorOverrides.soldermaskWithCopperUnderneath},soldermaskOverCopper:{...this.colorMap.soldermaskOverCopper,...e.colorOverrides.soldermaskOverCopper}})}setCameraBounds(e){const n=this.ctx.canvas,o=n.width,i=n.height,r=e.maxX-e.minX,s=e.maxY-e.minY,a=o/r,A=i/s,c=Math.min(a,A),l=(o-r*c)/2,g=(i-s*c)/2;this.realToCanvasMat=IYe(fP(l,g),Pti(c,-c),fP(-e.minX,-e.maxY))}drawElements(e,n={}){const o=woi(n.layers),i=e.find(x=>x.type==="pcb_board"),r=e.find(x=>x.type==="pcb_panel");r&&Hni({ctx:this.ctx,panel:r,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});const s=n.drawBoardMaterial??!1,a=n.drawSoldermask??!1,A=n.drawSolderPaste??!1,c=n.drawSoldermaskTop!==void 0||n.drawSoldermaskBottom!==void 0,l=n.drawSolderPasteTop!==void 0||n.drawSolderPasteBottom!==void 0,g=a&&(i!==void 0||r!==void 0)&&(n.drawSoldermaskTop??!c),u=a&&(i!==void 0||r!==void 0)&&(n.drawSoldermaskBottom??!1),h=A&&(n.drawSolderPasteTop??!l)&&e.some(x=>x.type==="pcb_solder_paste"&&x.layer==="top"),d=A&&(n.drawSolderPasteBottom??!1)&&e.some(x=>x.type==="pcb_solder_paste"&&x.layer==="bottom"),m=g||h,p=e.filter(x=>Cx(x,n)&&x.type==="pcb_via"&&BG(x,o)),_=e.filter(x=>Cx(x,n)&&x.type==="pcb_hole"),f=e.filter(x=>Cx(x,n)&&x.type==="pcb_plated_hole"&&BG(x,o)),I=e.filter(x=>Cx(x,n)&&x.type==="pcb_cutout"),C=(n.clipContextElements??e).filter(x=>Cx(x,n)&&x.type==="pcb_copper_pour"),y=e.filter(x=>Cx(x,n)&&x.type==="pcb_trace");i&&Mti({ctx:this.ctx,board:i,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,drawBoardMaterial:s,minBoardOutlineStrokePx:n.minBoardOutlineStrokePx});for(const x of e)Cx(x,n)&&x.type==="pcb_copper_pour"&&Rti({ctx:this.ctx,pour:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});for(const x of e)Cx(x,n)&&(x.type==="pcb_smtpad"&&ooi({ctx:this.ctx,pad:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,holes:_,platedHoles:f,vias:p,cutouts:I}),x.type==="pcb_copper_text"&&eni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}));if(m){pZt({ctx:this.ctx,traces:y,copperPours:C,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,vias:p,platedHoles:f,renderLayers:n.layers});for(const x of e)Cx(x,n)&&(x.type==="pcb_hole"&&V$t({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g}),x.type==="pcb_plated_hole"&&BG(x,o)&&nZt({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g,layer:o}),x.type==="pcb_via"&&BG(x,o)&&_Zt({ctx:this.ctx,via:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:o}))}if(g&&mZt({ctx:this.ctx,elements:e,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:"top",drawSoldermask:!0}),h)for(const x of e)x.type!=="pcb_solder_paste"||x.layer!=="top"||iZt({ctx:this.ctx,solderPaste:x,realToCanvasMat:this.realToCanvasMat});for(const x of e)Cx(x,n)&&(x.type==="pcb_silkscreen_text"&&toi({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_rect"&&$ni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_circle"&&Gni({ctx:this.ctx,circle:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_line"&&Kni({ctx:this.ctx,line:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_path"&&Wni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_pill"&&qni({ctx:this.ctx,pill:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_oval"&&zni({ctx:this.ctx,oval:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_silkscreen_graphic"&&Yni({ctx:this.ctx,graphic:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}));m||pZt({ctx:this.ctx,traces:y,copperPours:C,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,vias:p,platedHoles:f,renderLayers:n.layers});for(const x of e)Cx(x,n)&&x.type==="pcb_hole"&&!m&&V$t({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g});for(const x of e)Cx(x,n)&&(x.type==="pcb_plated_hole"&&!m&&BG(x,o)&&nZt({ctx:this.ctx,hole:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,soldermaskMargin:g?x.soldermask_margin:void 0,drawSoldermask:g,layer:o}),x.type==="pcb_via"&&!m&&BG(x,o)&&_Zt({ctx:this.ctx,via:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:o}));if(u&&mZt({ctx:this.ctx,elements:e,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,layer:"bottom",drawSoldermask:!0}),d)for(const x of e)x.type!=="pcb_solder_paste"||x.layer!=="bottom"||iZt({ctx:this.ctx,solderPaste:x,realToCanvasMat:this.realToCanvasMat});for(const x of e)Cx(x,n)&&x.type==="pcb_cutout"&&ani({ctx:this.ctx,cutout:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});for(const x of e){if(!Cx(x,n))continue;x.type==="pcb_keepout"&&Mni({ctx:this.ctx,keepout:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_text"&&mni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_rect"&&dni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap});const E=n.showPcbNotes??!0;E&&x.type==="pcb_note_rect"&&kni({realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap,ctx:this.ctx,rect:x}),x.type==="pcb_fabrication_note_path"&&uni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_path"&&Tni({ctx:this.ctx,path:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_text"&&Lni({ctx:this.ctx,text:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_line"&&Rni({ctx:this.ctx,line:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),E&&x.type==="pcb_note_dimension"&&Nni({ctx:this.ctx,pcbNoteDimension:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_fabrication_note_dimension"&&gni({ctx:this.ctx,pcbFabricationNoteDimension:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_circle"&&nni({ctx:this.ctx,circle:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_rect"&&sni({ctx:this.ctx,rect:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap}),x.type==="pcb_courtyard_outline"&&ini({ctx:this.ctx,outline:x,realToCanvasMat:this.realToCanvasMat,colorMap:this.colorMap})}n.clearDrillHoles&&this.clearDrillHoles(e,o)}clearDrillHoles(e,n){const o=e.filter(s=>s.type==="pcb_hole"||s.type==="pcb_plated_hole"||s.type==="pcb_via"||s.type==="pcb_cutout");if(o.length===0)return;const i="rgba(0,0,0,0)",r=new $Cn(this.ctx);r.realToCanvasMat=this.realToCanvasMat,r.configure({colorOverrides:{copper:{top:i,bottom:i,inner1:i,inner2:i,inner3:i,inner4:i,inner5:i,inner6:i,inner7:i,inner8:i},drill:"#000"}}),this.ctx.save(),this.ctx.globalCompositeOperation="destination-out",r.drawElements(o,{layers:[`${n}_copper`],showPcbNotes:!1}),this.ctx.restore()}};let Moi={data:""},Doi=t=>{if(typeof window=="object"){let e=(t?t.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return e.nonce=window.__nonce__,e.parentNode||(t||document.head).appendChild(e),e.firstChild}return t||Moi},Noi=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Roi=/\/\*[^]*?\*\/| +/g,fZt=/\n+/g,xP=(t,e)=>{let n="",o="",i="";for(let r in t){let s=t[r];r[0]=="@"?r[1]=="i"?n=r+" "+s+";":o+=r[1]=="f"?xP(s,r):r+"{"+xP(s,r[1]=="k"?"":e)+"}":typeof s=="object"?o+=xP(s,e?e.replace(/([^,])+/g,a=>r.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,A=>/&/.test(A)?A.replace(/&/g,a):a?a+" "+A:A)):r):s!=null&&(r=r[1]=="-"?r:r.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=xP.p?xP.p(r,s):r+":"+s+";")}return n+(e&&i?e+"{"+i+"}":i)+o},EP={},IZt=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+IZt(t[n]);return e}return t},Toi=(t,e,n,o,i)=>{let r=IZt(t),s=EP[r]||(EP[r]=(A=>{let c=0,l=11;for(;c<A.length;)l=101*l+A.charCodeAt(c++)>>>0;return"go"+l})(r));if(!EP[s]){let A=r!==t?t:(c=>{let l,g,u=[{}];for(;l=Noi.exec(c.replace(Roi,""));)l[4]?u.shift():l[3]?(g=l[3].replace(fZt," ").trim(),u.unshift(u[0][g]=u[0][g]||{})):u[0][l[1]]=l[2].replace(fZt," ").trim();return u[0]})(t);EP[s]=xP(i?{["@keyframes "+s]:A}:A,n?"":"."+s)}let a=n&&EP.g;return n&&(EP.g=EP[s]),((A,c,l,g)=>{g?c.data=c.data.replace(g,A):c.data.indexOf(A)===-1&&(c.data=l?A+c.data:c.data+A)})(EP[s],e,o,a),s},koi=(t,e,n)=>t.reduce((o,i,r)=>{let s=e[r];if(s&&s.call){let a=s(n),A=a&&a.props&&a.props.className||/^go/.test(a)&&a;s=A?"."+A:a&&typeof a=="object"?a.props?"":xP(a,""):a===!1?"":a}return o+i+(s??"")},"");function Gue(t){let e=this||{},n=t.call?t(e.p):t;return Toi(n.unshift?n.raw?koi(n,[].slice.call(arguments,1),e.p):n.reduce((o,i)=>Object.assign(o,i&&i.call?i(e.p):i),{}):n,Doi(e.target),e.g,e.o,e.k)}let CZt,vYe,PYe;Gue.bind({g:1});let wS=Gue.bind({k:1});function Foi(t,e,n,o){xP.p=e,CZt=t,vYe=n,PYe=o}function BP(t,e){let n=this||{};return function(){let o=arguments;function i(r,s){let a=Object.assign({},r),A=a.className||i.className;n.p=Object.assign({theme:vYe&&vYe()},a),n.o=/go\d/.test(A),a.className=Gue.apply(n,o)+(A?" "+A:"");let c=t;return t[0]&&(c=a.as||t,delete a.as),PYe&&c[0]&&PYe(a),CZt(c,a)}return i}}var Loi=t=>typeof t=="function",Yue=(t,e)=>Loi(t)?t(e):t,Hoi=(()=>{let t=0;return()=>(++t).toString()})(),yZt=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),Ooi=20,wYe="default",xZt=(t,e)=>{let{toastLimit:n}=t.settings;switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,n)};case 1:return{...t,toasts:t.toasts.map(s=>s.id===e.toast.id?{...s,...e.toast}:s)};case 2:let{toast:o}=e;return xZt(t,{type:t.toasts.find(s=>s.id===o.id)?1:0,toast:o});case 3:let{toastId:i}=e;return{...t,toasts:t.toasts.map(s=>s.id===i||i===void 0?{...s,dismissed:!0,visible:!1}:s)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(s=>s.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let r=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(s=>({...s,pauseDuration:s.pauseDuration+r}))}}},Uue=[],EZt={toasts:[],pausedAt:void 0,settings:{toastLimit:Ooi}},$6={},BZt=(t,e=wYe)=>{$6[e]=xZt($6[e]||EZt,t),Uue.forEach(([n,o])=>{n===e&&o($6[e])})},SZt=t=>Object.keys($6).forEach(e=>BZt(t,e)),Goi=t=>Object.keys($6).find(e=>$6[e].toasts.some(n=>n.id===t)),Kue=(t=wYe)=>e=>{BZt(e,t)},Yoi={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Uoi=(t={},e=wYe)=>{let[n,o]=te.useState($6[e]||EZt),i=te.useRef($6[e]);te.useEffect(()=>(i.current!==$6[e]&&o($6[e]),Uue.push([e,o]),()=>{let s=Uue.findIndex(([a])=>a===e);s>-1&&Uue.splice(s,1)}),[e]);let r=n.toasts.map(s=>{var a,A,c;return{...t,...t[s.type],...s,removeDelay:s.removeDelay||((a=t[s.type])==null?void 0:a.removeDelay)||t?.removeDelay,duration:s.duration||((A=t[s.type])==null?void 0:A.duration)||t?.duration||Yoi[s.type],style:{...t.style,...(c=t[s.type])==null?void 0:c.style,...s.style}}});return{...n,toasts:r}},Koi=(t,e="blank",n)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...n,id:n?.id||Hoi()}),Vq=t=>(e,n)=>{let o=Koi(e,t,n);return Kue(o.toasterId||Goi(o.id))({type:2,toast:o}),o.id},ia=(t,e)=>Vq("blank")(t,e);ia.error=Vq("error"),ia.success=Vq("success"),ia.loading=Vq("loading"),ia.custom=Vq("custom"),ia.dismiss=(t,e)=>{let n={type:3,toastId:t};e?Kue(e)(n):SZt(n)},ia.dismissAll=t=>ia.dismiss(void 0,t),ia.remove=(t,e)=>{let n={type:4,toastId:t};e?Kue(e)(n):SZt(n)},ia.removeAll=t=>ia.remove(void 0,t),ia.promise=(t,e,n)=>{let o=ia.loading(e.loading,{...n,...n?.loading});return typeof t=="function"&&(t=t()),t.then(i=>{let r=e.success?Yue(e.success,i):void 0;return r?ia.success(r,{id:o,...n,...n?.success}):ia.dismiss(o),i}).catch(i=>{let r=e.error?Yue(e.error,i):void 0;r?ia.error(r,{id:o,...n,...n?.error}):ia.dismiss(o)}),t};var Voi=1e3,zoi=(t,e="default")=>{let{toasts:n,pausedAt:o}=Uoi(t,e),i=te.useRef(new Map).current,r=te.useCallback((g,u=Voi)=>{if(i.has(g))return;let h=setTimeout(()=>{i.delete(g),s({type:4,toastId:g})},u);i.set(g,h)},[]);te.useEffect(()=>{if(o)return;let g=Date.now(),u=n.map(h=>{if(h.duration===1/0)return;let d=(h.duration||0)+h.pauseDuration-(g-h.createdAt);if(d<0){h.visible&&ia.dismiss(h.id);return}return setTimeout(()=>ia.dismiss(h.id,e),d)});return()=>{u.forEach(h=>h&&clearTimeout(h))}},[n,o,e]);let s=te.useCallback(Kue(e),[e]),a=te.useCallback(()=>{s({type:5,time:Date.now()})},[s]),A=te.useCallback((g,u)=>{s({type:1,toast:{id:g,height:u}})},[s]),c=te.useCallback(()=>{o&&s({type:6,time:Date.now()})},[o,s]),l=te.useCallback((g,u)=>{let{reverseOrder:h=!1,gutter:d=8,defaultPosition:m}=u||{},p=n.filter(I=>(I.position||m)===(g.position||m)&&I.height),_=p.findIndex(I=>I.id===g.id),f=p.filter((I,C)=>C<_&&I.visible).length;return p.filter(I=>I.visible).slice(...h?[f+1]:[0,f]).reduce((I,C)=>I+(C.height||0)+d,0)},[n]);return te.useEffect(()=>{n.forEach(g=>{if(g.dismissed)r(g.id,g.removeDelay);else{let u=i.get(g.id);u&&(clearTimeout(u),i.delete(g.id))}})},[n,r]),{toasts:n,handlers:{updateHeight:A,startPause:a,endPause:c,calculateOffset:l}}},Joi=wS` from { transform: scale(0) rotate(45deg); opacity: 0; } to { transform: scale(1) rotate(45deg); opacity: 1; }`,Woi=wS` from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; }`,joi=wS` from { transform: scale(0) rotate(90deg); opacity: 0; } to { transform: scale(1) rotate(90deg); opacity: 1; }`,qoi=BP("div")` width: 20px; opacity: 0; height: 20px; border-radius: 10px; background: ${t=>t.primary||"#ff4b4b"}; position: relative; transform: rotate(45deg); animation: ${Joi} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after, &:before { content: ''; animation: ${Woi} 0.15s ease-out forwards; animation-delay: 150ms; position: absolute; border-radius: 3px; opacity: 0; background: ${t=>t.secondary||"#fff"}; bottom: 9px; left: 4px; height: 2px; width: 12px; } &:before { animation: ${joi} 0.15s ease-out forwards; animation-delay: 180ms; transform: rotate(90deg); } `,Xoi=wS` from { transform: rotate(0deg); } to { transform: rotate(360deg); } `,$oi=BP("div")` width: 12px; height: 12px; box-sizing: border-box; border: 2px solid; border-radius: 100%; border-color: ${t=>t.secondary||"#e0e0e0"}; border-right-color: ${t=>t.primary||"#616161"}; animation: ${Xoi} 1s linear infinite; `,Zoi=wS` from { transform: scale(0) rotate(45deg); opacity: 0; } to { transform: scale(1) rotate(45deg); opacity: 1; }`,eii=wS` 0% { height: 0; width: 0; opacity: 0; } 40% { height: 0; width: 6px; opacity: 1; } 100% { opacity: 1; height: 10px; }`,tii=BP("div")` width: 20px; opacity: 0; height: 20px; border-radius: 10px; background: ${t=>t.primary||"#61d345"}; position: relative; transform: rotate(45deg); animation: ${Zoi} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after { content: ''; box-sizing: border-box; animation: ${eii} 0.2s ease-out forwards; opacity: 0; animation-delay: 200ms; position: absolute; border-right: 2px solid; border-bottom: 2px solid; border-color: ${t=>t.secondary||"#fff"}; bottom: 6px; left: 6px; height: 10px; width: 6px; } `,nii=BP("div")` position: absolute; `,oii=BP("div")` position: relative; display: flex; justify-content: center; align-items: center; min-width: 20px; min-height: 20px; `,iii=wS` from { transform: scale(0.6); opacity: 0.4; } to { transform: scale(1); opacity: 1; }`,rii=BP("div")` position: relative; transform: scale(0.6); opacity: 0.4; min-width: 20px; animation: ${iii} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; `,sii=({toast:t})=>{let{icon:e,type:n,iconTheme:o}=t;return e!==void 0?typeof e=="string"?te.createElement(rii,null,e):e:n==="blank"?null:te.createElement(oii,null,te.createElement($oi,{...o}),n!=="loading"&&te.createElement(nii,null,n==="error"?te.createElement(qoi,{...o}):te.createElement(tii,{...o})))},aii=t=>` 0% {transform: translate3d(0,${t*-200}%,0) scale(.6); opacity:.5;} 100% {transform: translate3d(0,0,0) scale(1); opacity:1;} `,Aii=t=>` 0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} 100% {transform: translate3d(0,${t*-150}%,-1px) scale(.6); opacity:0;} `,cii="0%{opacity:0;} 100%{opacity:1;}",lii="0%{opacity:1;} 100%{opacity:0;}",gii=BP("div")` :where(&) { display: flex; align-items: center; background: #fff; color: #363636; line-height: 1.3; will-change: transform; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05); max-width: 350px; pointer-events: auto; padding: 8px 10px; border-radius: 8px; } `,uii=BP("div")` display: flex; justify-content: center; margin: 4px 10px; color: inherit; flex: 1 1 auto; white-space: pre-line; `,dii=(t,e)=>{let n=t.includes("top")?1:-1,[o,i]=yZt()?[cii,lii]:[aii(n),Aii(n)];return{animation:e?`${wS(o)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${wS(i)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},hii=te.memo(({toast:t,position:e,style:n,children:o})=>{let i=t.height?dii(t.position||e||"top-center",t.visible):{opacity:0},r=te.createElement(sii,{toast:t}),s=te.createElement(uii,{...t.ariaProps},Yue(t.message,t));return te.createElement(gii,{className:t.className,style:{...i,...n,...t.style}},typeof o=="function"?o({icon:r,message:s}):te.createElement(te.Fragment,null,r,s))});Foi(te.createElement);var mii=({id:t,className:e,style:n,onHeightUpdate:o,children:i})=>{let r=te.useCallback(s=>{if(s){let a=()=>{let A=s.getBoundingClientRect().height;o(t,A)};a(),new MutationObserver(a).observe(s,{subtree:!0,childList:!0,characterData:!0})}},[t,o]);return te.createElement("div",{ref:r,className:e,style:n},i)},pii=(t,e)=>{let n=t.includes("top"),o=n?{top:0}:{bottom:0},i=t.includes("center")?{justifyContent:"center"}:t.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:yZt()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${e*(n?1:-1)}px)`,...o,...i}},_ii=Gue` z-index: 9999; > * { pointer-events: auto; } `,Vue=16,bZt=({reverseOrder:t,position:e="top-center",toastOptions:n,gutter:o,children:i,toasterId:r,containerStyle:s,containerClassName:a})=>{let{toasts:A,handlers:c}=zoi(n,r);return te.createElement("div",{"data-rht-toaster":r||"",style:{position:"fixed",zIndex:9999,top:Vue,left:Vue,right:Vue,bottom:Vue,pointerEvents:"none",...s},className:a,onMouseEnter:c.startPause,onMouseLeave:c.endPause},A.map(l=>{let g=l.position||e,u=c.calculateOffset(l,{reverseOrder:t,gutter:o,defaultPosition:e}),h=pii(g,u);return te.createElement(mii,{id:l.id,key:l.id,onHeightUpdate:c.updateHeight,className:l.visible?_ii:"",style:h},l.type==="custom"?Yue(l.message,l):i?i(l):te.createElement(hii,{toast:l,position:g}))}))},MYe={env:{},version:""},fii=Object.create,QZt=Object.defineProperty,Iii=Object.getOwnPropertyDescriptor,vZt=Object.getOwnPropertyNames,Cii=Object.getPrototypeOf,yii=Object.prototype.hasOwnProperty,yt=(t,e)=>function(){return e||(0,t[vZt(t)[0]])((e={exports:{}}).exports,e),e.exports},xii=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vZt(e))!yii.call(t,i)&&i!==n&&QZt(t,i,{get:()=>e[i],enumerable:!(o=Iii(e,i))||o.enumerable});return t},o0=(t,e,n)=>(n=t!=null?fii(Cii(t)):{},xii(QZt(n,"default",{value:t,enumerable:!0}),t)),ra=yt({"node_modules/@jscad/modeling/src/utils/flatten.js"(t,e){var n=o=>o.flat(1/0);e.exports=n}}),Eii=yt({"node_modules/@jscad/modeling/src/geometries/geom2/clone.js"(t,e){var n=o=>Object.assign({},o);e.exports=n}}),Bii=yt({"node_modules/@jscad/modeling/src/maths/mat4/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o[2]=i[2]+r[2],o[3]=i[3]+r[3],o[4]=i[4]+r[4],o[5]=i[5]+r[5],o[6]=i[6]+r[6],o[7]=i[7]+r[7],o[8]=i[8]+r[8],o[9]=i[9]+r[9],o[10]=i[10]+r[10],o[11]=i[11]+r[11],o[12]=i[12]+r[12],o[13]=i[13]+r[13],o[14]=i[14]+r[14],o[15]=i[15]+r[15],o);e.exports=n}}),DYe=yt({"node_modules/@jscad/modeling/src/maths/mat4/create.js"(t,e){var n=()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];e.exports=n}}),Sii=yt({"node_modules/@jscad/modeling/src/maths/mat4/clone.js"(t,e){var n=DYe(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r};e.exports=o}}),PZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o[2]=i[2],o[3]=i[3],o[4]=i[4],o[5]=i[5],o[6]=i[6],o[7]=i[7],o[8]=i[8],o[9]=i[9],o[10]=i[10],o[11]=i[11],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15],o);e.exports=n}}),bii=yt({"node_modules/@jscad/modeling/src/maths/mat4/invert.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1],a=i[2],A=i[3],c=i[4],l=i[5],g=i[6],u=i[7],h=i[8],d=i[9],m=i[10],p=i[11],_=i[12],f=i[13],I=i[14],C=i[15],y=r*l-s*c,x=r*g-a*c,E=r*u-A*c,B=s*g-a*l,b=s*u-A*l,Q=a*u-A*g,w=h*f-d*_,D=h*I-m*_,k=h*C-p*_,T=d*I-m*f,H=d*C-p*f,G=m*C-p*I;let K=y*G-x*H+E*T+B*k-b*D+Q*w;return K?(K=1/K,o[0]=(l*G-g*H+u*T)*K,o[1]=(a*H-s*G-A*T)*K,o[2]=(f*Q-I*b+C*B)*K,o[3]=(m*b-d*Q-p*B)*K,o[4]=(g*k-c*G-u*D)*K,o[5]=(r*G-a*k+A*D)*K,o[6]=(I*E-_*Q-C*x)*K,o[7]=(h*Q-m*E+p*x)*K,o[8]=(c*H-l*k+u*w)*K,o[9]=(s*k-r*H-A*w)*K,o[10]=(_*b-f*E+C*y)*K,o[11]=(d*E-h*b-p*y)*K,o[12]=(l*D-c*T-g*w)*K,o[13]=(r*T-s*D+a*w)*K,o[14]=(f*x-_*B-I*y)*K,o[15]=(h*B-d*x+m*y)*K,o):null};e.exports=n}}),Qii=yt({"node_modules/@jscad/modeling/src/maths/mat4/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1]&&o[2]===i[2]&&o[3]===i[3]&&o[4]===i[4]&&o[5]===i[5]&&o[6]===i[6]&&o[7]===i[7]&&o[8]===i[8]&&o[9]===i[9]&&o[10]===i[10]&&o[11]===i[11]&&o[12]===i[12]&&o[13]===i[13]&&o[14]===i[14]&&o[15]===i[15];e.exports=n}}),sc=yt({"node_modules/@jscad/modeling/src/maths/constants.js"(t,e){var n=1e5,o=1e-5,i=1e-13,r=Math.PI*2;e.exports={EPS:o,NEPS:i,TAU:r,spatialResolution:n}}}),W1=yt({"node_modules/@jscad/modeling/src/maths/utils/trigonometry.js"(t,e){var{NEPS:n}=sc(),o=s=>Math.abs(s)<n?0:s,i=s=>o(Math.sin(s)),r=s=>o(Math.cos(s));e.exports={sin:i,cos:r}}}),wZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/identity.js"(t,e){var n=o=>(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o);e.exports=n}}),MZt=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromRotation.js"(t,e){var{EPS:n}=sc(),{sin:o,cos:i}=W1(),r=wZt(),s=(a,A,c)=>{let[l,g,u]=c;const h=l*l+g*g+u*u;if(Math.abs(h)<n)return r(a);const d=1/Math.sqrt(h);l*=d,g*=d,u*=d;const m=o(A),p=i(A),_=1-p;return a[0]=l*l*_+p,a[1]=g*l*_+u*m,a[2]=u*l*_-g*m,a[3]=0,a[4]=l*g*_-u*m,a[5]=g*g*_+p,a[6]=u*g*_+l*m,a[7]=0,a[8]=l*u*_+g*m,a[9]=g*u*_-l*m,a[10]=u*u*_+p,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a};e.exports=s}}),vii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromScaling.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=i[1],o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=i[2],o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o);e.exports=n}}),Pii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromTaitBryanRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a,A)=>{const c=n(s),l=o(s),g=n(a),u=o(a),h=n(A),d=o(A);return r[0]=u*l,r[1]=u*c,r[2]=-g,r[3]=0,r[4]=h*g*l-d*c,r[5]=d*l+h*g*c,r[6]=h*u,r[7]=0,r[8]=h*c+d*g*l,r[9]=d*g*c-h*l,r[10]=d*u,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),wii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromTranslation.js"(t,e){var n=(o,i)=>(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=i[0],o[13]=i[1],o[14]=i[2],o[15]=1,o);e.exports=n}}),Mii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromValues.js"(t,e){var n=DYe(),o=(i,r,s,a,A,c,l,g,u,h,d,m,p,_,f,I)=>{const C=n();return C[0]=i,C[1]=r,C[2]=s,C[3]=a,C[4]=A,C[5]=c,C[6]=l,C[7]=g,C[8]=u,C[9]=h,C[10]=d,C[11]=m,C[12]=p,C[13]=_,C[14]=f,C[15]=I,C};e.exports=o}}),DZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/abs.js"(t,e){var n=(o,i)=>(o[0]=Math.abs(i[0]),o[1]=Math.abs(i[1]),o[2]=Math.abs(i[2]),o);e.exports=n}}),NZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o[2]=i[2]+r[2],o);e.exports=n}}),zue=yt({"node_modules/@jscad/modeling/src/maths/vec3/dot.js"(t,e){var n=(o,i)=>o[0]*i[0]+o[1]*i[1]+o[2]*i[2];e.exports=n}}),Dii=yt({"node_modules/@jscad/modeling/src/maths/vec3/angle.js"(t,e){var n=zue(),o=(i,r)=>{const s=i[0],a=i[1],A=i[2],c=r[0],l=r[1],g=r[2],u=Math.sqrt(s*s+a*a+A*A),h=Math.sqrt(c*c+l*l+g*g),d=u*h,m=d&&n(i,r)/d;return Math.acos(Math.min(Math.max(m,-1),1))};e.exports=o}}),Jue=yt({"node_modules/@jscad/modeling/src/maths/vec3/create.js"(t,e){var n=()=>[0,0,0];e.exports=n}}),Nii=yt({"node_modules/@jscad/modeling/src/maths/vec3/clone.js"(t,e){var n=Jue(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r[2]=i[2],r};e.exports=o}}),RZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o[2]=i[2],o);e.exports=n}}),zq=yt({"node_modules/@jscad/modeling/src/maths/vec3/cross.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2],c=r[0],l=r[1],g=r[2];return o[0]=a*g-A*l,o[1]=A*c-s*g,o[2]=s*l-a*c,o};e.exports=n}}),TZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/distance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1],a=i[2]-o[2];return Math.sqrt(r*r+s*s+a*a)};e.exports=n}}),Rii=yt({"node_modules/@jscad/modeling/src/maths/vec3/divide.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]/r[0],o[1]=i[1]/r[1],o[2]=i[2]/r[2],o);e.exports=n}}),Tii=yt({"node_modules/@jscad/modeling/src/maths/vec3/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1]&&o[2]===i[2];e.exports=n}}),kii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromScalar.js"(t,e){var n=(o,i)=>(o[0]=i,o[1]=i,o[2]=i,o);e.exports=n}}),Fii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromValues.js"(t,e){var n=Jue(),o=(i,r,s)=>{const a=n();return a[0]=i,a[1]=r,a[2]=s,a};e.exports=o}}),Lii=yt({"node_modules/@jscad/modeling/src/maths/vec3/fromVec2.js"(t,e){var n=(o,i,r=0)=>(o[0]=i[0],o[1]=i[1],o[2]=r,o);e.exports=n}}),kZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/length.js"(t,e){var n=o=>{const i=o[0],r=o[1],s=o[2];return Math.sqrt(i*i+r*r+s*s)};e.exports=n}}),Hii=yt({"node_modules/@jscad/modeling/src/maths/vec3/lerp.js"(t,e){var n=(o,i,r,s)=>(o[0]=i[0]+s*(r[0]-i[0]),o[1]=i[1]+s*(r[1]-i[1]),o[2]=i[2]+s*(r[2]-i[2]),o);e.exports=n}}),FZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/max.js"(t,e){var n=(o,i,r)=>(o[0]=Math.max(i[0],r[0]),o[1]=Math.max(i[1],r[1]),o[2]=Math.max(i[2],r[2]),o);e.exports=n}}),LZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/min.js"(t,e){var n=(o,i,r)=>(o[0]=Math.min(i[0],r[0]),o[1]=Math.min(i[1],r[1]),o[2]=Math.min(i[2],r[2]),o);e.exports=n}}),Oii=yt({"node_modules/@jscad/modeling/src/maths/vec3/multiply.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r[0],o[1]=i[1]*r[1],o[2]=i[2]*r[2],o);e.exports=n}}),Gii=yt({"node_modules/@jscad/modeling/src/maths/vec3/negate.js"(t,e){var n=(o,i)=>(o[0]=-i[0],o[1]=-i[1],o[2]=-i[2],o);e.exports=n}}),NYe=yt({"node_modules/@jscad/modeling/src/maths/vec3/normalize.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1],a=i[2];let A=r*r+s*s+a*a;return A>0&&(A=1/Math.sqrt(A)),o[0]=r*A,o[1]=s*A,o[2]=a*A,o};e.exports=n}}),Yii=yt({"node_modules/@jscad/modeling/src/maths/vec3/orthogonal.js"(t,e){var n=DZt(),o=Jue(),i=zq(),r=(s,a)=>{const A=n(o(),a),c=0+(A[0]<A[1]&&A[0]<A[2]),l=0+(A[1]<=A[0]&&A[1]<A[2]),g=0+(A[2]<=A[0]&&A[2]<=A[1]);return i(s,a,[c,l,g])};e.exports=r}}),Uii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateX.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],a[2]=i[2]-r[2],A[0]=a[0],A[1]=a[1]*Math.cos(s)-a[2]*Math.sin(s),A[2]=a[1]*Math.sin(s)+a[2]*Math.cos(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=A[2]+r[2],o};e.exports=n}}),Kii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateY.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],a[2]=i[2]-r[2],A[0]=a[2]*Math.sin(s)+a[0]*Math.cos(s),A[1]=a[1],A[2]=a[2]*Math.cos(s)-a[0]*Math.sin(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=A[2]+r[2],o};e.exports=n}}),Vii=yt({"node_modules/@jscad/modeling/src/maths/vec3/rotateZ.js"(t,e){var n=(o,i,r,s)=>{const a=[],A=[];return a[0]=i[0]-r[0],a[1]=i[1]-r[1],A[0]=a[0]*Math.cos(s)-a[1]*Math.sin(s),A[1]=a[0]*Math.sin(s)+a[1]*Math.cos(s),o[0]=A[0]+r[0],o[1]=A[1]+r[1],o[2]=i[2],o};e.exports=n}}),HZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/scale.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r,o[1]=i[1]*r,o[2]=i[2]*r,o);e.exports=n}}),zii=yt({"node_modules/@jscad/modeling/src/maths/vec3/snap.js"(t,e){var n=(o,i,r)=>(o[0]=Math.round(i[0]/r)*r+0,o[1]=Math.round(i[1]/r)*r+0,o[2]=Math.round(i[2]/r)*r+0,o);e.exports=n}}),OZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/squaredDistance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1],a=i[2]-o[2];return r*r+s*s+a*a};e.exports=n}}),GZt=yt({"node_modules/@jscad/modeling/src/maths/vec3/squaredLength.js"(t,e){var n=o=>{const i=o[0],r=o[1],s=o[2];return i*i+r*r+s*s};e.exports=n}}),Wue=yt({"node_modules/@jscad/modeling/src/maths/vec3/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o[2]=i[2]-r[2],o);e.exports=n}}),Jii=yt({"node_modules/@jscad/modeling/src/maths/vec3/toString.js"(t,e){var n=o=>`[${o[0].toFixed(7)}, ${o[1].toFixed(7)}, ${o[2].toFixed(7)}]`;e.exports=n}}),Wii=yt({"node_modules/@jscad/modeling/src/maths/vec3/transform.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2];let c=r[3]*s+r[7]*a+r[11]*A+r[15];return c=c||1,o[0]=(r[0]*s+r[4]*a+r[8]*A+r[12])/c,o[1]=(r[1]*s+r[5]*a+r[9]*A+r[13])/c,o[2]=(r[2]*s+r[6]*a+r[10]*A+r[14])/c,o};e.exports=n}}),Jr=yt({"node_modules/@jscad/modeling/src/maths/vec3/index.js"(t,e){e.exports={abs:DZt(),add:NZt(),angle:Dii(),clone:Nii(),copy:RZt(),create:Jue(),cross:zq(),distance:TZt(),divide:Rii(),dot:zue(),equals:Tii(),fromScalar:kii(),fromValues:Fii(),fromVec2:Lii(),length:kZt(),lerp:Hii(),max:FZt(),min:LZt(),multiply:Oii(),negate:Gii(),normalize:NYe(),orthogonal:Yii(),rotateX:Uii(),rotateY:Kii(),rotateZ:Vii(),scale:HZt(),snap:zii(),squaredDistance:OZt(),squaredLength:GZt(),subtract:Wue(),toString:Jii(),transform:Wii()}}}),jii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromVectorRotation.js"(t,e){var n=Jr(),o=MZt(),i=(r,s,a)=>{const A=n.normalize(n.create(),s),c=n.normalize(n.create(),a),l=n.cross(n.create(),c,A),g=n.dot(c,A);if(g===-1)return o(r,Math.PI,n.orthogonal(l,A));const u=1/(1+g);return r[0]=l[0]*l[0]*u+g,r[1]=l[1]*l[0]*u-l[2],r[2]=l[2]*l[0]*u+l[1],r[3]=0,r[4]=l[0]*l[1]*u+l[2],r[5]=l[1]*l[1]*u+g,r[6]=l[2]*l[1]*u-l[0],r[7]=0,r[8]=l[0]*l[2]*u-l[1],r[9]=l[1]*l[2]*u+l[0],r[10]=l[2]*l[2]*u+g,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),qii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromXRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=A,r[6]=a,r[7]=0,r[8]=0,r[9]=-a,r[10]=A,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),Xii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromYRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=A,r[1]=0,r[2]=-a,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=a,r[9]=0,r[10]=A,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),$ii=yt({"node_modules/@jscad/modeling/src/maths/mat4/fromZRotation.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>{const a=n(s),A=o(s);return r[0]=A,r[1]=a,r[2]=0,r[3]=0,r[4]=-a,r[5]=A,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r};e.exports=i}}),Zii=yt({"node_modules/@jscad/modeling/src/maths/mat4/isIdentity.js"(t,e){var n=o=>o[0]===1&&o[1]===0&&o[2]===0&&o[3]===0&&o[4]===0&&o[5]===1&&o[6]===0&&o[7]===0&&o[8]===0&&o[9]===0&&o[10]===1&&o[11]===0&&o[12]===0&&o[13]===0&&o[14]===0&&o[15]===1;e.exports=n}}),eri=yt({"node_modules/@jscad/modeling/src/maths/mat4/isOnlyTransformScale.js"(t,e){var n=i=>o(i[1])&&o(i[2])&&o(i[3])&&o(i[4])&&o(i[6])&&o(i[7])&&o(i[8])&&o(i[9])&&o(i[11])&&i[15]===1,o=i=>Math.abs(i)<Number.EPSILON;e.exports=n}}),tri=yt({"node_modules/@jscad/modeling/src/maths/mat4/isMirroring.js"(t,e){var n=o=>{const i=o[4]*o[9]-o[8]*o[5],r=o[8]*o[1]-o[0]*o[9],s=o[0]*o[5]-o[4]*o[1];return i*o[2]+r*o[6]+s*o[10]<0};e.exports=n}}),nri=yt({"node_modules/@jscad/modeling/src/maths/mat4/mirrorByPlane.js"(t,e){var n=(o,i)=>{const[r,s,a,A]=i;return o[0]=1-2*r*r,o[1]=-2*s*r,o[2]=-2*a*r,o[3]=0,o[4]=-2*r*s,o[5]=1-2*s*s,o[6]=-2*a*s,o[7]=0,o[8]=-2*r*a,o[9]=-2*s*a,o[10]=1-2*a*a,o[11]=0,o[12]=2*r*A,o[13]=2*s*A,o[14]=2*a*A,o[15]=1,o};e.exports=n}}),ori=yt({"node_modules/@jscad/modeling/src/maths/mat4/multiply.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1],A=i[2],c=i[3],l=i[4],g=i[5],u=i[6],h=i[7],d=i[8],m=i[9],p=i[10],_=i[11],f=i[12],I=i[13],C=i[14],y=i[15];let x=r[0],E=r[1],B=r[2],b=r[3];return o[0]=x*s+E*l+B*d+b*f,o[1]=x*a+E*g+B*m+b*I,o[2]=x*A+E*u+B*p+b*C,o[3]=x*c+E*h+B*_+b*y,x=r[4],E=r[5],B=r[6],b=r[7],o[4]=x*s+E*l+B*d+b*f,o[5]=x*a+E*g+B*m+b*I,o[6]=x*A+E*u+B*p+b*C,o[7]=x*c+E*h+B*_+b*y,x=r[8],E=r[9],B=r[10],b=r[11],o[8]=x*s+E*l+B*d+b*f,o[9]=x*a+E*g+B*m+b*I,o[10]=x*A+E*u+B*p+b*C,o[11]=x*c+E*h+B*_+b*y,x=r[12],E=r[13],B=r[14],b=r[15],o[12]=x*s+E*l+B*d+b*f,o[13]=x*a+E*g+B*m+b*I,o[14]=x*A+E*u+B*p+b*C,o[15]=x*c+E*h+B*_+b*y,o};e.exports=n}}),iri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotate.js"(t,e){var{EPS:n}=sc(),{sin:o,cos:i}=W1(),r=PZt(),s=(a,A,c,l)=>{let[g,u,h]=l;const d=g*g+u*u+h*h;if(Math.abs(d)<n)return r(a,A);const m=1/Math.sqrt(d);g*=m,u*=m,h*=m;const p=o(c),_=i(c),f=1-_,I=A[0],C=A[1],y=A[2],x=A[3],E=A[4],B=A[5],b=A[6],Q=A[7],w=A[8],D=A[9],k=A[10],T=A[11],H=g*g*f+_,G=u*g*f+h*p,K=h*g*f-u*p,Y=g*u*f-h*p,q=u*u*f+_,ee=h*u*f+g*p,j=g*h*f+u*p,J=u*h*f-g*p,ie=h*h*f+_;return a[0]=I*H+E*G+w*K,a[1]=C*H+B*G+D*K,a[2]=y*H+b*G+k*K,a[3]=x*H+Q*G+T*K,a[4]=I*Y+E*q+w*ee,a[5]=C*Y+B*q+D*ee,a[6]=y*Y+b*q+k*ee,a[7]=x*Y+Q*q+T*ee,a[8]=I*j+E*J+w*ie,a[9]=C*j+B*J+D*ie,a[10]=y*j+b*J+k*ie,a[11]=x*j+Q*J+T*ie,A!==a&&(a[12]=A[12],a[13]=A[13],a[14]=A[14],a[15]=A[15]),a};e.exports=s}}),rri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateX.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[4],g=s[5],u=s[6],h=s[7],d=s[8],m=s[9],p=s[10],_=s[11];return s!==r&&(r[0]=s[0],r[1]=s[1],r[2]=s[2],r[3]=s[3],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[4]=l*c+d*A,r[5]=g*c+m*A,r[6]=u*c+p*A,r[7]=h*c+_*A,r[8]=d*c-l*A,r[9]=m*c-g*A,r[10]=p*c-u*A,r[11]=_*c-h*A,r};e.exports=i}}),sri=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateY.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[0],g=s[1],u=s[2],h=s[3],d=s[8],m=s[9],p=s[10],_=s[11];return s!==r&&(r[4]=s[4],r[5]=s[5],r[6]=s[6],r[7]=s[7],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[0]=l*c-d*A,r[1]=g*c-m*A,r[2]=u*c-p*A,r[3]=h*c-_*A,r[8]=l*A+d*c,r[9]=g*A+m*c,r[10]=u*A+p*c,r[11]=h*A+_*c,r};e.exports=i}}),ari=yt({"node_modules/@jscad/modeling/src/maths/mat4/rotateZ.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s,a)=>{const A=n(a),c=o(a),l=s[0],g=s[1],u=s[2],h=s[3],d=s[4],m=s[5],p=s[6],_=s[7];return s!==r&&(r[8]=s[8],r[9]=s[9],r[10]=s[10],r[11]=s[11],r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r[0]=l*c+d*A,r[1]=g*c+m*A,r[2]=u*c+p*A,r[3]=h*c+_*A,r[4]=d*c-l*A,r[5]=m*c-g*A,r[6]=p*c-u*A,r[7]=_*c-h*A,r};e.exports=i}}),Ari=yt({"node_modules/@jscad/modeling/src/maths/mat4/scale.js"(t,e){var n=(o,i,r)=>{const s=r[0],a=r[1],A=r[2];return o[0]=i[0]*s,o[1]=i[1]*s,o[2]=i[2]*s,o[3]=i[3]*s,o[4]=i[4]*a,o[5]=i[5]*a,o[6]=i[6]*a,o[7]=i[7]*a,o[8]=i[8]*A,o[9]=i[9]*A,o[10]=i[10]*A,o[11]=i[11]*A,o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15],o};e.exports=n}}),cri=yt({"node_modules/@jscad/modeling/src/maths/mat4/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o[2]=i[2]-r[2],o[3]=i[3]-r[3],o[4]=i[4]-r[4],o[5]=i[5]-r[5],o[6]=i[6]-r[6],o[7]=i[7]-r[7],o[8]=i[8]-r[8],o[9]=i[9]-r[9],o[10]=i[10]-r[10],o[11]=i[11]-r[11],o[12]=i[12]-r[12],o[13]=i[13]-r[13],o[14]=i[14]-r[14],o[15]=i[15]-r[15],o);e.exports=n}}),lri=yt({"node_modules/@jscad/modeling/src/maths/mat4/toString.js"(t,e){var n=o=>o.map(i=>i.toFixed(7)).toString();e.exports=n}}),gri=yt({"node_modules/@jscad/modeling/src/maths/mat4/translate.js"(t,e){var n=(o,i,r)=>{const s=r[0],a=r[1],A=r[2];let c,l,g,u,h,d,m,p,_,f,I,C;return i===o?(o[12]=i[0]*s+i[4]*a+i[8]*A+i[12],o[13]=i[1]*s+i[5]*a+i[9]*A+i[13],o[14]=i[2]*s+i[6]*a+i[10]*A+i[14],o[15]=i[3]*s+i[7]*a+i[11]*A+i[15]):(c=i[0],l=i[1],g=i[2],u=i[3],h=i[4],d=i[5],m=i[6],p=i[7],_=i[8],f=i[9],I=i[10],C=i[11],o[0]=c,o[1]=l,o[2]=g,o[3]=u,o[4]=h,o[5]=d,o[6]=m,o[7]=p,o[8]=_,o[9]=f,o[10]=I,o[11]=C,o[12]=c*s+h*a+_*A+i[12],o[13]=l*s+d*a+f*A+i[13],o[14]=g*s+m*a+I*A+i[14],o[15]=u*s+p*a+C*A+i[15]),o};e.exports=n}}),Ig=yt({"node_modules/@jscad/modeling/src/maths/mat4/index.js"(t,e){e.exports={add:Bii(),clone:Sii(),copy:PZt(),create:DYe(),invert:bii(),equals:Qii(),fromRotation:MZt(),fromScaling:vii(),fromTaitBryanRotation:Pii(),fromTranslation:wii(),fromValues:Mii(),fromVectorRotation:jii(),fromXRotation:qii(),fromYRotation:Xii(),fromZRotation:$ii(),identity:wZt(),isIdentity:Zii(),isOnlyTransformScale:eri(),isMirroring:tri(),mirrorByPlane:nri(),multiply:ori(),rotate:iri(),rotateX:rri(),rotateY:sri(),rotateZ:ari(),scale:Ari(),subtract:cri(),toString:lri(),translate:gri()}}}),jue=yt({"node_modules/@jscad/modeling/src/geometries/geom2/create.js"(t,e){var n=Ig(),o=i=>(i===void 0&&(i=[]),{sides:i,transforms:n.create()});e.exports=o}}),uri=yt({"node_modules/@jscad/modeling/src/maths/vec2/abs.js"(t,e){var n=(o,i)=>(o[0]=Math.abs(i[0]),o[1]=Math.abs(i[1]),o);e.exports=n}}),dri=yt({"node_modules/@jscad/modeling/src/maths/vec2/add.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]+r[0],o[1]=i[1]+r[1],o);e.exports=n}}),RYe=yt({"node_modules/@jscad/modeling/src/maths/vec2/angleRadians.js"(t,e){var n=o=>Math.atan2(o[1],o[0]);e.exports=n}}),hri=yt({"node_modules/@jscad/modeling/src/maths/vec2/angle.js"(t,e){e.exports=RYe()}}),mri=yt({"node_modules/@jscad/modeling/src/maths/vec2/angleDegrees.js"(t,e){var n=RYe(),o=i=>n(i)*57.29577951308232;e.exports=o}}),que=yt({"node_modules/@jscad/modeling/src/maths/vec2/create.js"(t,e){var n=()=>[0,0];e.exports=n}}),pri=yt({"node_modules/@jscad/modeling/src/maths/vec2/clone.js"(t,e){var n=que(),o=i=>{const r=n();return r[0]=i[0],r[1]=i[1],r};e.exports=o}}),_ri=yt({"node_modules/@jscad/modeling/src/maths/vec2/copy.js"(t,e){var n=(o,i)=>(o[0]=i[0],o[1]=i[1],o);e.exports=n}}),fri=yt({"node_modules/@jscad/modeling/src/maths/vec2/cross.js"(t,e){var n=(o,i,r)=>(o[0]=0,o[1]=0,o[2]=i[0]*r[1]-i[1]*r[0],o);e.exports=n}}),Iri=yt({"node_modules/@jscad/modeling/src/maths/vec2/distance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1];return Math.sqrt(r*r+s*s)};e.exports=n}}),Cri=yt({"node_modules/@jscad/modeling/src/maths/vec2/divide.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]/r[0],o[1]=i[1]/r[1],o);e.exports=n}}),yri=yt({"node_modules/@jscad/modeling/src/maths/vec2/dot.js"(t,e){var n=(o,i)=>o[0]*i[0]+o[1]*i[1];e.exports=n}}),xri=yt({"node_modules/@jscad/modeling/src/maths/vec2/equals.js"(t,e){var n=(o,i)=>o[0]===i[0]&&o[1]===i[1];e.exports=n}}),YZt=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromAngleRadians.js"(t,e){var{sin:n,cos:o}=W1(),i=(r,s)=>(r[0]=o(s),r[1]=n(s),r);e.exports=i}}),Eri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromAngleDegrees.js"(t,e){var n=YZt(),o=(i,r)=>n(i,r*.017453292519943295);e.exports=o}}),Bri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromScalar.js"(t,e){var n=(o,i)=>(o[0]=i,o[1]=i,o);e.exports=n}}),Sri=yt({"node_modules/@jscad/modeling/src/maths/vec2/fromValues.js"(t,e){var n=que(),o=(i,r)=>{const s=n();return s[0]=i,s[1]=r,s};e.exports=o}}),bri=yt({"node_modules/@jscad/modeling/src/maths/vec2/length.js"(t,e){var n=o=>Math.sqrt(o[0]*o[0]+o[1]*o[1]);e.exports=n}}),Qri=yt({"node_modules/@jscad/modeling/src/maths/vec2/lerp.js"(t,e){var n=(o,i,r,s)=>{const a=i[0],A=i[1];return o[0]=a+s*(r[0]-a),o[1]=A+s*(r[1]-A),o};e.exports=n}}),vri=yt({"node_modules/@jscad/modeling/src/maths/vec2/max.js"(t,e){var n=(o,i,r)=>(o[0]=Math.max(i[0],r[0]),o[1]=Math.max(i[1],r[1]),o);e.exports=n}}),Pri=yt({"node_modules/@jscad/modeling/src/maths/vec2/min.js"(t,e){var n=(o,i,r)=>(o[0]=Math.min(i[0],r[0]),o[1]=Math.min(i[1],r[1]),o);e.exports=n}}),wri=yt({"node_modules/@jscad/modeling/src/maths/vec2/multiply.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r[0],o[1]=i[1]*r[1],o);e.exports=n}}),Mri=yt({"node_modules/@jscad/modeling/src/maths/vec2/negate.js"(t,e){var n=(o,i)=>(o[0]=-i[0],o[1]=-i[1],o);e.exports=n}}),UZt=yt({"node_modules/@jscad/modeling/src/maths/vec2/rotate.js"(t,e){var n=(o,i,r,s)=>{const a=i[0]-r[0],A=i[1]-r[1],c=Math.cos(s),l=Math.sin(s);return o[0]=a*c-A*l+r[0],o[1]=a*l+A*c+r[1],o};e.exports=n}}),Dri=yt({"node_modules/@jscad/modeling/src/maths/vec2/normal.js"(t,e){var{TAU:n}=sc(),o=que(),i=UZt(),r=(s,a)=>i(s,a,o(),n/4);e.exports=r}}),Nri=yt({"node_modules/@jscad/modeling/src/maths/vec2/normalize.js"(t,e){var n=(o,i)=>{const r=i[0],s=i[1];let a=r*r+s*s;return a>0&&(a=1/Math.sqrt(a)),o[0]=r*a,o[1]=s*a,o};e.exports=n}}),Rri=yt({"node_modules/@jscad/modeling/src/maths/vec2/scale.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]*r,o[1]=i[1]*r,o);e.exports=n}}),Tri=yt({"node_modules/@jscad/modeling/src/maths/vec2/snap.js"(t,e){var n=(o,i,r)=>(o[0]=Math.round(i[0]/r)*r+0,o[1]=Math.round(i[1]/r)*r+0,o);e.exports=n}}),kri=yt({"node_modules/@jscad/modeling/src/maths/vec2/squaredDistance.js"(t,e){var n=(o,i)=>{const r=i[0]-o[0],s=i[1]-o[1];return r*r+s*s};e.exports=n}}),Fri=yt({"node_modules/@jscad/modeling/src/maths/vec2/squaredLength.js"(t,e){var n=o=>{const i=o[0],r=o[1];return i*i+r*r};e.exports=n}}),Lri=yt({"node_modules/@jscad/modeling/src/maths/vec2/subtract.js"(t,e){var n=(o,i,r)=>(o[0]=i[0]-r[0],o[1]=i[1]-r[1],o);e.exports=n}}),Hri=yt({"node_modules/@jscad/modeling/src/maths/vec2/toString.js"(t,e){var n=o=>`[${o[0].toFixed(7)}, ${o[1].toFixed(7)}]`;e.exports=n}}),Ori=yt({"node_modules/@jscad/modeling/src/maths/vec2/transform.js"(t,e){var n=(o,i,r)=>{const s=i[0],a=i[1];return o[0]=r[0]*s+r[4]*a+r[12],o[1]=r[1]*s+r[5]*a+r[13],o};e.exports=n}}),lA=yt({"node_modules/@jscad/modeling/src/maths/vec2/index.js"(t,e){e.exports={abs:uri(),add:dri(),angle:hri(),angleDegrees:mri(),angleRadians:RYe(),clone:pri(),copy:_ri(),create:que(),cross:fri(),distance:Iri(),divide:Cri(),dot:yri(),equals:xri(),fromAngleDegrees:Eri(),fromAngleRadians:YZt(),fromScalar:Bri(),fromValues:Sri(),length:bri(),lerp:Qri(),max:vri(),min:Pri(),multiply:wri(),negate:Mri(),normal:Dri(),normalize:Nri(),rotate:UZt(),scale:Rri(),snap:Tri(),squaredDistance:kri(),squaredLength:Fri(),subtract:Lri(),toString:Hri(),transform:Ori()}}}),Gri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/fromPoints.js"(t,e){var n=lA(),o=jue(),i=r=>{if(!Array.isArray(r))throw new Error("the given points must be an array");let s=r.length;if(s<3)throw new Error("the given points must define a closed geometry with three or more points");n.equals(r[0],r[s-1])&&--s;const a=[];let A=r[s-1];for(let c=0;c<s;c++){const l=r[c];a.push([n.clone(A),n.clone(l)]),A=l}return o(a)};e.exports=i}}),Yri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/fromCompactBinary.js"(t,e){var n=Ig(),o=lA(),i=jue(),r=s=>{if(s[0]!==0)throw new Error("invalid compact binary data");const a=i();a.transforms=n.clone(s.slice(1,17));for(let A=21;A<s.length;A+=4){const c=o.fromValues(s[A+0],s[A+1]),l=o.fromValues(s[A+2],s[A+3]);a.sides.push([c,l])}return s[17]>=0&&(a.color=[s[17],s[18],s[19],s[20]]),a};e.exports=r}}),KZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/isA.js"(t,e){var n=o=>!!(o&&typeof o=="object"&&"sides"in o&&"transforms"in o&&Array.isArray(o.sides)&&"length"in o.transforms);e.exports=n}}),Uri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/applyTransforms.js"(t,e){var n=Ig(),o=lA(),i=r=>(n.isIdentity(r.transforms)||(r.sides=r.sides.map(s=>{const a=o.transform(o.create(),s[0],r.transforms),A=o.transform(o.create(),s[1],r.transforms);return[a,A]}),r.transforms=n.create()),r);e.exports=i}}),Jq=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toSides.js"(t,e){var n=Uri(),o=i=>n(i).sides;e.exports=o}}),VZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/reverse.js"(t,e){var n=jue(),o=Jq(),i=r=>{const a=o(r).map(A=>[A[1],A[0]]);return a.reverse(),n(a)};e.exports=i}}),zZt=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toOutlines.js"(t,e){var n=lA(),o=Jq(),i=A=>{const c=new Map,l=g=>{const u=g.toString();return c.has(u)?c.get(u):(c.set(u,g),g)};return A.map(g=>g.map(l))},r=A=>{const c=new Map;return i(A).forEach(g=>{c.has(g[0])?c.get(g[0]).push(g):c.set(g[0],[g])}),c},s=A=>{const c=r(o(A)),l=[];for(;;){let g;for(const[d,m]of c){if(g=m.shift(),!g){c.delete(d);continue}break}if(g===void 0)break;const u=[],h=g[0];for(;;){u.push(g[0]);const d=g[1];if(d===h)break;const m=c.get(d);if(!m)throw new Error(`geometry is not closed at vertex ${d}`);const p=a(g,m);m.length===0&&c.delete(d),g=p}u.length>0&&u.push(u.shift()),l.push(u)}return c.clear(),l},a=(A,c)=>{if(c.length===1)return c.pop();const l=n.create(),g=n.angleDegrees(n.subtract(l,A[1],A[0]));let u,h;c.forEach((m,p)=>{let f=n.angleDegrees(n.subtract(l,m[1],m[0]))-g;f<-180&&(f+=360),f>=180&&(f-=360),(h===void 0||f>u)&&(h=p,u=f)});const d=c[h];return c.splice(h,1),d};e.exports=s}}),Kri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toPoints.js"(t,e){var n=Jq(),o=i=>{const s=n(i).map(a=>a[0]);return s.length>0&&s.push(s.shift()),s};e.exports=o}}),Vri=yt({"node_modules/@jscad/modeling/src/geometries/geom2/toString.js"(t,e){var n=lA(),o=Jq(),i=r=>{const s=o(r);let a="geom2 ("+s.length+` sides):
|
|
5467
5291
|
[
|
|
5468
5292
|
`;return s.forEach(A=>{a+=" ["+n.toString(A[0])+", "+n.toString(A[1])+`]
|
|
5469
5293
|
`}),a+=`]
|
|
@@ -5760,7 +5584,7 @@ test("${c} should solve problem correctly", () => {
|
|
|
5760
5584
|
// Add more specific assertions based on expected output
|
|
5761
5585
|
// expect(solver.netLabelPlacementSolver!.netLabelPlacements).toMatchInlineSnapshot()
|
|
5762
5586
|
})
|
|
5763
|
-
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),h=document.createElement("a");h.href=u,h.download=`${c}.test.ts`,h.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.getSolverName()}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return U.jsxs("div",{className:`relative ${e}`,ref:i,children:[U.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.getSolverName()}`,children:t.getSolverName()}),n&&U.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},Fcn=t=>t.activeSubSolver?[t,...Fcn(t.activeSubSolver)]:[t],CPi=({solver:t})=>{const e=Fcn(t);return U.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>U.jsxs("div",{className:"flex items-center",children:[o>0&&U.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),U.jsx(IPi,{solver:n})]},n.getSolverName()))})},yPi=({solver:t,triggerRender:e,animationSpeed:n=25,renderer:o,onRendererChange:i,onAnimationSpeedChange:r,onDownloadVisualization:s,onSolverStarted:a,onSolverCompleted:A})=>{const[c,l]=te.useReducer(B=>!B,!1),g=te.useRef(void 0),u=te.useRef(null),h="solver-debugger-last-iteration",[d,m]=te.useState(null),p=te.useRef(null),_=te.useMemo(()=>[{label:"Slow",value:250,description:"250ms"},{label:"Normal",value:100,description:"100ms"},{label:"Fast",value:10,description:"10ms"},{label:"Fast (2x)",value:5,description:"5ms"},{label:"Fast (10x)",value:1,description:"1ms"},{label:"Fast 20x",value:.5,description:"2 steps / 1ms"},{label:"Fast 100x",value:.1,description:"10 steps / 1ms"}],[]),f=()=>{const B=Math.max(1,n),b=n<1?Math.round(1/n):1;g.current=setInterval(()=>{if(t.solved||t.failed){g.current&&(clearInterval(g.current),g.current=void 0),l(),e(),A&&t.solved&&A(t);return}for(let Q=0;Q<b&&!(t.solved||t.failed);Q++)t.step();e()},B)},I=()=>{g.current&&(clearInterval(g.current),g.current=void 0)},C=()=>{!t.solved&&!t.failed&&(t.step(),e())},y=()=>{!t.solved&&!t.failed&&(a&&a(t),t.solve(),e(),A&&A(t))},x=()=>{c?(I(),l()):(l(),f())},E=()=>{if(t.solved||t.failed||c)return;u.current===null&&typeof window<"u"&&(u.current=window.localStorage.getItem(h));const B=window.prompt("Step until which iteration?",u.current??`${t.iterations}`);if(B===null)return;u.current=B,typeof window<"u"&&window.localStorage.setItem(h,B);const b=Number(B);if(!Number.isFinite(b)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<b&&!t.solved&&!t.failed;)t.step();e(),t.solved&&A&&A(t)};return te.useEffect(()=>()=>{I()},[]),te.useEffect(()=>{(t.solved||t.failed)&&c&&(I(),l())},[t.solved,t.failed,c]),te.useEffect(()=>{c&&(I(),f())},[n,c]),te.useEffect(()=>{if(typeof document>"u")return;const B=b=>{p.current&&!p.current.contains(b.target)&&m(null)};return document.addEventListener("mousedown",B),()=>{document.removeEventListener("mousedown",B)}},[]),U.jsxs("div",{className:"space-y-2 p-2 border-b",children:[U.jsx("div",{className:"flex items-center",children:U.jsxs("div",{className:"flex items-center gap-2",ref:p,children:[U.jsxs("div",{className:"flex h-9 items-center space-x-1 rounded-md border border-slate-200 bg-white p-1 shadow-sm",children:[U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="renderer"?null:"renderer"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="renderer"?"open":"closed",children:"Renderer"}),d==="renderer"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[10rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:["vector","canvas"].map(B=>U.jsxs("button",{type:"button",onClick:()=>{i(B),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:[B==="vector"?"Vector":"Canvas",o===B&&U.jsx("span",{className:"ml-auto text-xs text-slate-500",children:"✓"})]},B))})]}),U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="debug"?null:"debug"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="debug"?"open":"closed",children:"Debug"}),d==="debug"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[12rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:U.jsx("button",{type:"button",onClick:()=>{s(),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:"Download Visualization"})})]}),U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="animation"?null:"animation"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="animation"?"open":"closed",children:"Animation"}),d==="animation"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[12rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:_.map(B=>U.jsxs("button",{type:"button",onClick:()=>{r(B.value),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:[B.label,U.jsx("span",{className:"ml-auto text-xs text-slate-500",children:B.description}),n===B.value&&U.jsx("span",{className:"ml-2 text-xs text-slate-500",children:"✓"})]},B.value))})]})]}),U.jsx(CPi,{solver:t})]})}),U.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[U.jsx("button",{onClick:C,disabled:t.solved||t.failed||c,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),U.jsx("button",{onClick:y,disabled:t.solved||t.failed||c,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),U.jsx("button",{onClick:x,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${c?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:c?"Stop":"Animate"}),U.jsx("button",{onClick:E,disabled:t.solved||t.failed||c,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),U.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&U.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),t.solved&&U.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&U.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&U.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},xPi=t=>t!==null&&"pipelineDef"in t&&Array.isArray(t.pipelineDef),EPi=(t,e,n)=>{const o=t.currentPipelineStageIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},BPi=(t,e)=>{const o=t.pipelineDef[e].solverName,i=EPi(t,e),r=t[o],s=t.firstIterationOfStage?.[o]??(e===t.currentPipelineStageIndex?t.iterations:null),a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],h=u?t.firstIterationOfStage?.[u.solverName]:void 0;h!==void 0&&s!==null?A=h-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnStage?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},SPi=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return U.jsx("span",{className:`font-medium ${e[t]}`,children:t})},bPi=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return U.jsxs("div",{className:"flex items-center gap-2",children:[U.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:U.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),U.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},Lcn=t=>{if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint"||t==null)return String(t);if(typeof t=="object")try{return JSON.stringify(t)}catch{return String(t)}return String(t)},QPi=t=>Object.entries(t).map(([e,n])=>`${e}: ${Lcn(n)}`).join(", "),vPi=({stats:t})=>{if(!t||Object.keys(t).length===0)return U.jsx("span",{children:"-"});const e=Object.entries(t),n=QPi(t);return U.jsxs("details",{className:"cursor-pointer",children:[U.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),U.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>U.jsxs("div",{children:[o,": ",Lcn(i)]},o))})]})},lJe=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(lJe);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=lJe(o));return e},PPi=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=lJe(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},wPi=({expanded:t})=>U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:`w-4 h-4 transition-transform duration-200 ${t?"rotate-90":""}`,children:U.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})}),Hcn=t=>{let e=t;for(;e.activeSubSolver;)e=e.activeSubSolver;return e},Ocn=({solver:t,onStepUntilPhase:e,onDownloadInput:n,isNested:o=!1,indentLevel:i=0,triggerRender:r})=>{const[s,a]=te.useState(new Set),A=t.pipelineDef.map((p,_)=>BPi(t,_)),c=p=>{a(_=>{const f=new Set(_);return f.has(p)?f.delete(p):f.add(p),f})},l=p=>{e?.(p)},g=p=>{p.solverInstance&&(n?n(p.solverInstance,p.name):PPi(p.solverInstance,p.name))},u=p=>`${(p/1e3).toFixed(2)}s`,h=()=>{if(!t.solved&&!t.failed){const p=t.activeSubSolver;for(;!t.solved&&!t.failed&&(t.step(),!(t.activeSubSolver&&t.activeSubSolver!==p)););r?.()}},d=()=>{if(!t.solved&&!t.failed){const p=Hcn(t);for(;!t.solved&&!t.failed&&(t.step(),Hcn(t)===p););r?.()}},m=i*24;return U.jsxs("div",{className:o?"":"border-t border-gray-200",children:[!o&&U.jsxs("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200 flex items-center justify-between",children:[U.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Stages"}),U.jsxs("div",{className:"flex gap-2",children:[U.jsx("button",{onClick:d,disabled:t.solved||t.failed,className:"bg-indigo-500 hover:bg-indigo-600 disabled:bg-gray-300 disabled:cursor-not-allowed cursor-pointer text-white px-3 py-1 rounded text-sm",children:"Next Solver"}),U.jsx("button",{onClick:h,disabled:t.solved||t.failed,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 disabled:cursor-not-allowed cursor-pointer text-white px-3 py-1 rounded text-sm",children:"Next Stage"})]})]}),U.jsx("div",{className:"overflow-x-auto",children:U.jsxs("table",{className:"w-full text-sm",children:[!o&&U.jsx("thead",{children:U.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stage"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),U.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",U.jsx("sub",{children:"0"})]}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),U.jsx("tbody",{children:A.map(p=>{const _=xPi(p.solverInstance),f=s.has(p.name);return U.jsxs(ws.Fragment,{children:[U.jsxs("tr",{className:`border-b border-gray-100 ${p.status==="In Progress"?"bg-yellow-50":""}`,children:[U.jsx("td",{className:"px-4 py-2",children:U.jsxs("div",{className:"flex items-center gap-2",style:{paddingLeft:m},children:[_?U.jsx("button",{onClick:()=>c(p.name),className:"text-gray-500 hover:text-gray-700",title:f?"Collapse":"Expand",children:U.jsx(wPi,{expanded:f})}):U.jsx("span",{className:"w-4"}),U.jsx("span",{className:"text-gray-400 w-6",children:String(p.index+1).padStart(2,"0")}),U.jsx("button",{onClick:()=>l(p.name),disabled:p.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${p.name} completes`,children:U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:U.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),U.jsx("span",{className:"font-medium text-gray-900",children:p.name})]})}),U.jsx("td",{className:"px-4 py-2",children:U.jsx(SPi,{status:p.status})}),U.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:p.firstIteration!==null?p.firstIteration:""}),U.jsx("td",{className:"px-4 py-2 text-gray-600",children:p.iterations}),U.jsx("td",{className:"px-4 py-2",children:U.jsx(bPi,{progress:p.progress})}),U.jsx("td",{className:"px-4 py-2 text-gray-600",children:u(p.timeSpent)}),U.jsx("td",{className:"px-4 py-2 text-gray-500",children:U.jsx(vPi,{stats:p.stats})}),U.jsx("td",{className:"px-4 py-2",children:p.solverInstance?U.jsxs("button",{onClick:()=>g(p),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${p.name}`,children:[U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:U.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),U.jsx("span",{children:"Input"})]}):null})]}),_&&f&&U.jsx("tr",{children:U.jsx("td",{colSpan:8,className:"p-0",children:U.jsx(Ocn,{solver:p.solverInstance,onStepUntilPhase:e,onDownloadInput:n,isNested:!0,indentLevel:i+1,triggerRender:r})})})]},p.name)})})]})})]})};function MPi({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(p,_)=>{typeof p=="number"&&(p<s&&(s=p),p>A&&(A=p)),typeof _=="number"&&(_<a&&(a=_),_>c&&(c=_))};for(const p of e)l(p.x,p.y);for(const p of n){const _=p.points??[];for(const f of _)l(f.x,f.y)}for(const p of o){const _=p.x??0,f=p.y??0,I=p.width??0,C=p.height??0;l(_,f),l(_+I,f+C)}for(const p of i){const _=p.x??0,f=p.y??0,I=p.radius??1;l(_-I,f-I),l(_+I,f+I)}for(const p of r)l(p.x,p.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,h=a-g,d=Math.max(1,A-s+2*g),m=Math.max(1,c-a+2*g);return U.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${h} ${d} ${m}`,role:"img","aria-label":"Graphics fallback",children:[o.map((p,_)=>U.jsx("rect",{x:p.x??0,y:p.y??0,width:p.width??0,height:p.height??0,fill:"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1},`rect-${_}`)),n.map((p,_)=>U.jsx("polyline",{fill:"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1,points:(p.points??[]).map(f=>`${f.x??0},${f.y??0}`).join(" ")},`line-${_}`)),i.map((p,_)=>U.jsx("circle",{cx:p.x??0,cy:p.y??0,r:p.radius??1.5,fill:p.fillColor??"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1},`circle-${_}`)),e.map((p,_)=>U.jsx("circle",{cx:p.x??0,cy:p.y??0,r:p.radius??1.5,fill:p.color??"black"},`point-${_}`)),r.map((p,_)=>U.jsx("text",{x:p.x??0,y:p.y??0,fontSize:p.fontSize??10,fill:p.color??"black",children:p.text??""},`text-${_}`))]})}var DPi=class extends ws.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}},NPi=({solver:t,createSolver:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=te.useReducer(f=>f+1,0),[a]=te.useState(()=>{if(e)return e();if(!t)throw new Error("GenericSolverDebugger requires solver or createSolver");return t}),[A,c]=te.useState(()=>typeof window>"u"?"vector":window.localStorage.getItem("solver-utils-renderer")==="canvas"?"canvas":"vector"),[l,g]=te.useState(n),u=te.useMemo(()=>{try{return a.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(f){return console.error("Visualization error:",f),{points:[],lines:[],rects:[],circles:[]}}},[a,r]),h=te.useMemo(()=>(u.rects?.length||0)===0&&(u.lines?.length||0)===0&&(u.points?.length||0)===0&&(u.circles?.length||0)===0,[u]);te.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const f=document.createElement("script");f.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(f)}},[]),te.useEffect(()=>{g(n)},[n]);const d=a.pipelineDef!==void 0,m=f=>{const I=a;if(!a.solved&&!a.failed){for(;!a.solved&&!a.failed&&I.currentPipelineStageIndex<=I.pipelineDef.findIndex(C=>C.solverName===f);)a.step();s()}},p=()=>{const f=JSON.stringify(u,null,2),I=new Blob([f],{type:"application/json"}),C=URL.createObjectURL(I),y=document.createElement("a");y.download="visualization.json",y.href=C,document.body.appendChild(y),y.click(),document.body.removeChild(y),URL.revokeObjectURL(C)},_=f=>{c(f),typeof window<"u"&&window.localStorage.setItem("solver-utils-renderer",f)};return U.jsxs("div",{children:[U.jsx(yPi,{solver:a,triggerRender:s,animationSpeed:l,renderer:A,onRendererChange:_,onAnimationSpeedChange:g,onDownloadVisualization:p,onSolverStarted:o,onSolverCompleted:i}),h?U.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):U.jsx(DPi,{fallback:U.jsx(MPi,{graphics:u}),children:A==="canvas"?U.jsx(fPi,{graphics:u}):U.jsx(mPi,{graphics:u})}),d&&U.jsx(Ocn,{solver:a,onStepUntilPhase:m,triggerRender:s})]})};const RPi=()=>{te.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},TPi=1e3,pE=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},TPi)},gJe=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},kPi=t=>{const e=t.solverConstructorArgs??[t.solverParams];if(t.solverName!=="AutoroutingPipelineSolver7_MultiGraph"||e.length!==1)return e;const[{input:n,options:o}]=e;return[n,o]},y7="https://github.com/tscircuit/tscircuit-autorouter/issues/new",Gcn="https://github.com/tscircuit/copper-pour-solver/issues/new",Ycn="https://github.com/tscircuit/calculate-packing/issues/new",FPi="https://github.com/tscircuit/matchpack/issues/new",Ucn="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",LPi={PackSolver2:Ycn,LayoutPipelineSolver:FPi,AutoroutingPipelineSolver:y7,AssignableAutoroutingPipeline2:y7,AssignableAutoroutingPipeline3:y7,AutoroutingPipeline1_OriginalUnravel:y7,AutoroutingPipelineSolver3_HgPortPointPathing:y7,AutoroutingPipelineSolver4:y7,AutoroutingPipelineSolver5:y7,AutoroutingPipelineSolver7_MultiGraph:y7,AutoroutingPipelineSolver8:y7,CopperPourPipelineSolver:Gcn,SchematicTracePipelineSolver:Ucn},HPi=t=>t.toLowerCase().includes("pack")?mrn:t.toLowerCase().includes("rout")?_rn:yxi,Kcn=t=>{const e=LPi[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?y7:n.includes("schematic")&&n.includes("trace")?Ucn:n.includes("copperpour")?Gcn:n.includes("pack")?Ycn:null},OPi=t=>`${gJe(`${t.componentName}-${t.solverName}`)}-solver-input.json`,Vcn=t=>{pE(JSON.stringify(t.solverParams,null,2),{fileName:OPi(t),mimeType:"application/json"})},GPi=({solverEvent:t})=>{const e=Kcn(t.solverName);return U.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[U.jsxs(gA,{type:"button",variant:"outline",size:"sm",onClick:()=>Vcn(t),children:[U.jsx(LX,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?U.jsx(gA,{asChild:!0,variant:"outline",size:"sm",children:U.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[U.jsx(ghe,{className:"rf-w-4 rf-h-4"}),"Report"]})}):U.jsxs(gA,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[U.jsx(ghe,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},YPi=({solverEvent:t})=>{const e=Kcn(t.solverName);return e?U.jsx(gA,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:U.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:U.jsx(ghe,{className:"rf-w-4 rf-h-4"})})}):U.jsx(gA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:U.jsx(ghe,{className:"rf-w-4 rf-h-4"})})},UPi=({solverEvents:t=[]})=>{const[e,n]=te.useState(null);RPi();const o=te.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=te.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=te.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=Yve[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(Yve).join(", ")}`,classFound:!1};try{return{instance:new a(...kPi(r)),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?U.jsx("div",{className:"rf-p-4",children:U.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:U.jsxs("div",{className:"rf-p-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),U.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):U.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[U.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[U.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return U.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=HPi(A.solverName);return U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[U.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),U.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[U.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),U.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),U.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?U.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[U.jsx(GPi,{solverEvent:r}),U.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:U.jsx(iE,{fallback:U.jsx("div",{className:"rf-p-4",children:U.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),U.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:U.jsx(NPi,{solver:s.instance})})})]}):U.jsxs("div",{className:"rf-p-4",children:[U.jsxs("div",{className:"rf-mb-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),U.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&U.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:U.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),U.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[U.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[U.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx(YPi,{solverEvent:r}),U.jsx(gA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>Vcn(r),children:U.jsx(LX,{className:"rf-w-4 rf-h-4"})})]})]}),U.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:U.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):U.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},KPi=["subcircuit_id","componentDisplayName","phaseName","routingPhaseIndex","phaseOrdinal","phaseCount","phaseStageIndex","phaseStageCount","connectionCount","obstacleCount","previousTraceCount","isReroutePhase","autorouterName","autorouterVersion","solverName","effort","cacheStatus"],VPi=["phaseOrdinal","routingPhaseIndex","phaseName","phaseStageIndex"];function zPi(t,e){let n=-1,o=-1;for(let i=t.length-1;i>=0;i--){const r=t[i];if(r.status!=="running"||r.subcircuit_id!==e.subcircuit_id||r.componentDisplayName!==e.componentDisplayName)continue;let s=0,a=!1;for(const A of VPi)if(!(r[A]===void 0||e[A]===void 0)){if(r[A]!==e[A]){a=!0;break}s++}!a&&s>o&&(n=i,o=s)}return n}function JPi(t,e){const n=Object.fromEntries(KPi.filter(s=>e[s]!==void 0).map(s=>[s,e[s]])),o=e.simpleRouteJson?structuredClone(e.simpleRouteJson):void 0,i=e.type==="autorouting:start"?-1:zPi(t,e),r={...i===-1?{id:`autorouting_phase_${t.length+1}`}:t[i],...n,status:e.type==="autorouting:start"?"running":e.type==="autorouting:end"?"complete":"error",...e.type==="autorouting:start"?{startSimpleRouteJson:o}:e.type==="autorouting:end"?{endSimpleRouteJson:o}:{errorSimpleRouteJson:o,error:e.error?{...e.error}:void 0}};return i===-1?[...t,r]:t.map((s,a)=>a===i?r:s)}const WPi=new Map([["custom","Custom"],["fanout","Fanout"],["single_layer_fanout","Single layer fanout"],["tscircuit_simplify","Simplify"]]),jPi=new Set(["tscircuit","default","auto","auto_local"]);function qPi(t){if(t==="FanoutSolver")return"Fanout";if(t==="AutoroutingPipelineSolver11_Simplification")return"Simplify";const e=t.match(/^AutoroutingPipeline(?:Solver)?(\d+)(?:_|$)/);if(e)return`Pipeline${e[1]}`;const n=t.match(/^AssignableAutoroutingPipeline(\d+)$/);return n?`Assignable${n[1]}`:t}function XPi(t){const e=t.autorouterName?.trim(),n=e?.replace(/-/g,"_"),o=n&&WPi.get(n);if(o)return o;if(n&&!jPi.has(n))return e;const i=t.solverName?.trim();if(i)return qPi(i);const r=t.autorouterVersion?.trim();if(r){const s=r.match(/^beta[_-]pipeline(\d+)$/);return s?`Pipeline${s[1]}`:r==="latest"?"default":r}return e?"default":"Unknown"}const uJe="#fbbf24";function $Pi(t){const e=t.endSimpleRouteJson?.traces??[],n=new Set(e.flatMap(i=>[i.pcb_trace_id,i.__replaces_pcb_trace_id].filter(r=>r!==void 0)));return[...(t.startSimpleRouteJson?.traces??[]).filter(i=>!n.has(i.pcb_trace_id)),...e]}function zcn(t){const e=new Map((t.startSimpleRouteJson?.traces??[]).map(n=>[n.pcb_trace_id,n]));return(t.endSimpleRouteJson?.traces??[]).filter(n=>{const o=e.get(n.pcb_trace_id);return!o||!!n.__replaces_pcb_trace_id&&n.__replaces_pcb_trace_id!==o.__replaces_pcb_trace_id||JSON.stringify(o.route)!==JSON.stringify(n.route)}).map(n=>n.pcb_trace_id)}function ZPi(t,e){return{outer_diameter:t.via_diameter??e.minViaPadDiameter??e.min_via_pad_diameter??e.minViaDiameter??.6,hole_diameter:t.via_hole_diameter??e.minViaHoleDiameter??e.min_via_hole_diameter??.3}}function Jcn(t,e){const n=[];for(const a of t.route)a.route_type==="wire"?n.push({...a,layer:a.layer}):a.route_type==="via"?n.push({route_type:"via",x:a.x,y:a.y,from_layer:a.from_layer,to_layer:a.to_layer,...ZPi(a,e)}):a.route_type==="through_obstacle"&&n.push({route_type:"through_pad",start:{...a.start},end:{...a.end},width:a.width,start_layer:a.from_layer,end_layer:a.to_layer,pcb_smtpad_id:a.circuitJsonMetadata?.pcb_smtpad_id,pcb_plated_hole_id:a.circuitJsonMetadata?.pcb_plated_hole_id});const o=a=>{let A=-1,c=Number.POSITIVE_INFINITY;return n.forEach((l,g)=>{if(l.route_type!=="wire")return;const u=Math.hypot(l.x-a.x,l.y-a.y);u<c&&(c=u,A=g)}),A},i=t.route.filter(a=>a.route_type==="jumper").map(a=>[o(a.start),o(a.end)].sort((A,c)=>A-c)).filter(([a,A])=>a>=0&&A>a).sort(([a],[A])=>a-A),r=[];let s=0;for(const[a,A]of i)a>=s&&r.push(n.slice(s,a+1)),s=Math.max(s,A);return s<n.length&&r.push(n.slice(s)),r}function ewi(t){const e=[],n=[],o=t.endSimpleRouteJson;if(!o)return{lines:e,circles:n};const i=new Set(zcn(t));for(const r of o.traces??[])if(i.has(r.pcb_trace_id))for(const s of Jcn(r,o)){let a;for(const A of s){if(A.route_type==="through_pad"){a={...A.end,layer:A.end_layer,width:A.width};continue}const c=A.route_type==="wire"?A.layer:A.from_layer;a&&a.layer===c&&(a.x!==A.x||a.y!==A.y)&&e.push({points:[{x:a.x,y:a.y},{x:A.x,y:A.y}],strokeWidth:A.route_type==="wire"?A.width:a.width,strokeColor:uJe,layer:c}),A.route_type==="via"&&n.push({center:{x:A.x,y:A.y},radius:A.outer_diameter/2,stroke:uJe,fill:"transparent"}),a={x:A.x,y:A.y,layer:A.route_type==="wire"?A.layer:A.to_layer,width:A.route_type==="wire"?A.width:a?.width??o.minTraceWidth}}}return{coordinateSystem:"cartesian",lines:e,circles:n}}function twi(t){const e=JSON.stringify(t);let n=2166136261;for(let o=0;o<e.length;o++)n=Math.imul(n^e.charCodeAt(o),16777619);return(n>>>0).toString(36)}const nwi=new Set(["pcb_trace","pcb_via","pcb_copper_pour","pcb_ground_plane","pcb_ground_plane_region","pcb_thermal_spoke","pcb_breakout_point"]);function owi(t,e,n){const o=n==="input"?e.startSimpleRouteJson??e.errorSimpleRouteJson:e.endSimpleRouteJson,i=t.filter(c=>!nwi.has(c.type)&&!c.type.endsWith("_error")&&!c.type.endsWith("_warning"));if(!o)return i;const r=n==="input"?o.traces??[]:$Pi(e),s=new Set(t.filter(c=>c.type==="source_trace").map(c=>c.source_trace_id)),a=["top",...Array.from({length:Math.max(0,o.layerCount-2)},(c,l)=>`inner${l+1}`),...o.layerCount>1?["bottom"]:[]],A=[];for(const c of r){const g=o.connections.find(h=>h.name===c.connection_name||h.source_trace_id===c.connection_name)?.source_trace_id??c.connection_name??"",u=Jcn(c,o);for(const[h,d]of u.entries()){const m={type:"pcb_trace",pcb_trace_id:`${e.id}_${n}_${c.pcb_trace_id}_${h}_${twi(d)}`,subcircuit_id:e.subcircuit_id??void 0,source_trace_id:s.has(g)?g:void 0,route:d};A.push(m);for(const[p,_]of d.entries()){if(_.route_type!=="via")continue;const f=a.indexOf(_.from_layer),I=a.indexOf(_.to_layer),C={type:"pcb_via",pcb_via_id:`${m.pcb_trace_id}_via_${p}`,pcb_trace_id:m.pcb_trace_id,subcircuit_id:e.subcircuit_id??void 0,x:_.x,y:_.y,outer_diameter:_.outer_diameter,hole_diameter:_.hole_diameter,layers:f>=0&&I>=0?a.slice(Math.min(f,I),Math.max(f,I)+1):[_.from_layer,_.to_layer]};A.push(C)}}}return[...i,...A]}const dJe=(t,e)=>t.phaseName||`Phase ${t.phaseOrdinal??e+1}`,Wcn=t=>t.componentDisplayName?.match(/name="([^"]+)"/)?.[1]?.replace(/^\./,"")||t.componentDisplayName||t.subcircuit_id||"Board",jcn=t=>t.startSimpleRouteJson??t.endSimpleRouteJson??t.errorSimpleRouteJson,iwi={is_showing_autorouting:!0,is_showing_rats_nest:!1,is_showing_drc_errors:!1,is_showing_drc_warnings:!1,is_showing_pcb_groups:!1},rwi=({circuitJson:t,phases:e=[],isRunning:n=!1})=>{const[o,i]=te.useState(null),[r,s]=te.useState("output"),[a,A]=te.useState(!0),[c,l]=te.useState(!1),g=te.useRef(null),[u,h]=te.useState(480),d=o?e.findIndex(T=>T.id===o.id&&jcn(T)===jcn(o)):-1,m=d<0?e.length-1:d,p=e[m],_=d<0,f=!!p?.endSimpleRouteJson,I=p?.startSimpleRouteJson??p?.errorSimpleRouteJson,C=!!I,y=r==="output"&&!f?"input":r==="input"&&!C?"output":r,x=y==="input"?I:p?.endSimpleRouteJson,E=te.useMemo(()=>!p||!x?null:owi(t??[],p,y),[t,p,x,y]),B=te.useMemo(()=>p&&y==="output"&&a?ewi(p):{lines:[],circles:[]},[p,y,a]);if(te.useLayoutEffect(()=>{const T=g.current;if(!T)return;const H=()=>h(Math.max(360,T.clientHeight));H();const G=new ResizeObserver(H);return G.observe(T),()=>G.disconnect()},[!!p]),!p)return U.jsxs("div",{className:"rf-flex rf-min-h-[400px] rf-flex-col rf-items-center rf-justify-center rf-gap-3 rf-p-8 rf-text-center",children:[U.jsx(_rn,{className:"rf-h-7 rf-w-7 rf-text-blue-500"}),U.jsx("h3",{className:"rf-text-base rf-font-medium",children:n?"Waiting for autorouting":"No autorouting captures"}),U.jsx("p",{className:"rf-max-w-md rf-text-sm rf-text-gray-500",children:n?"Phases appear as the circuit routes. Each capture includes its input and output on the PCB.":"Run a circuit with autorouting enabled to inspect its phases. A circuit JSON file alone does not include routing history."})]});const b=dJe(p,m),Q=p.status==="running"&&n,w=!f,D=I?.connections.length,k=E?.filter(T=>T.type==="pcb_trace").length??0;return U.jsxs("div",{className:"rf-flex rf-h-full rf-min-h-[620px] rf-flex-col rf-bg-white md:rf-flex-row","data-testid":"autorouting-explorer",children:[U.jsxs("aside",{className:"rf-flex rf-shrink-0 rf-flex-col rf-border-b rf-border-gray-200 md:rf-w-52 md:rf-border-b-0 md:rf-border-r","aria-label":"Routing phases",children:[U.jsxs("div",{className:"rf-flex rf-items-center rf-justify-between rf-px-3 rf-py-2 rf-text-xs rf-text-gray-500",children:[U.jsx("span",{children:"Routing phases"}),U.jsx("span",{children:e.length})]}),U.jsx("div",{className:"rf-flex rf-gap-1 rf-overflow-x-auto rf-px-1.5 rf-pb-1.5 md:rf-flex-col md:rf-overflow-x-hidden md:rf-overflow-y-auto",children:e.map((T,H)=>{const G=zcn(T).length,K=T.endSimpleRouteJson?`${G} ${G===1?"trace":"traces"} routed`:T.status==="error"?"Failed":T.status==="running"&&n?"Routing…":"No output";return U.jsxs("button",{type:"button","aria-pressed":H===m,title:`${Wcn(T)} · ${K}`,onClick:()=>i(T),className:ki("rf-flex rf-min-w-[192px] rf-items-start rf-gap-2 rf-rounded-md rf-border rf-px-2 rf-py-2 rf-text-left md:rf-min-w-0",H===m?"rf-border-blue-200 rf-bg-blue-50":"rf-border-transparent hover:rf-bg-gray-50"),children:[U.jsx("span",{className:ki("rf-flex rf-h-5 rf-w-5 rf-shrink-0 rf-items-center rf-justify-center rf-rounded-full rf-text-[11px]",H===m?"rf-bg-blue-600 rf-text-white":"rf-bg-gray-100 rf-text-gray-500"),children:H+1}),U.jsxs("span",{className:"rf-min-w-0 rf-flex-1",children:[U.jsxs("span",{className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx("span",{className:"rf-min-w-0 rf-flex-1 rf-truncate rf-text-xs rf-font-medium rf-leading-5 rf-text-gray-800",title:dJe(T,H),children:dJe(T,H)}),T.status==="complete"?U.jsx(US,{"aria-label":"Captured",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-text-green-600"}):T.status==="error"?U.jsx(dVe,{"aria-label":"Failed",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-text-red-500"}):n?U.jsx(rE,{"aria-label":"Routing",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-animate-spin rf-text-blue-500"}):null]}),U.jsxs("span",{className:"rf-block rf-text-[11px] rf-leading-4 rf-text-gray-500",children:[XPi(T)," · ",K]})]})]},T.id)})})]}),U.jsxs("div",{className:"rf-flex rf-min-w-0 rf-flex-1 rf-flex-col",children:[U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-gap-3 rf-border-b rf-border-gray-200 rf-px-4 rf-py-3",children:[U.jsxs("h3",{className:"rf-mr-auto rf-flex rf-items-center rf-gap-2 rf-text-sm rf-font-medium",children:[b,U.jsxs("span",{className:"rf-text-xs rf-font-normal rf-text-gray-500",children:[m+1," of ",e.length]})]}),n&&U.jsx("button",{type:"button",onClick:()=>i(null),disabled:_,className:"rf-text-xs rf-text-blue-600 disabled:rf-text-gray-500",children:_?"Following latest":"Follow latest"}),U.jsx("div",{className:"rf-flex rf-rounded-md rf-bg-gray-100 rf-p-1","aria-label":"Phase snapshot",children:["input","output"].map(T=>U.jsx("button",{type:"button","aria-pressed":y===T,disabled:T==="input"?!C:!f,onClick:()=>s(T),className:ki("rf-rounded rf-px-3 rf-py-1 rf-text-xs disabled:rf-opacity-40",y===T?"rf-bg-white rf-text-gray-900 rf-shadow-sm":"rf-text-gray-500"),children:T==="input"?"Input":"Output"},T))})]}),U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-justify-between rf-gap-2 rf-px-4 rf-py-2 rf-text-xs rf-text-gray-600",children:[U.jsxs("label",{className:"rf-flex rf-items-center rf-gap-2",children:[U.jsx("input",{type:"checkbox",checked:a,disabled:y!=="output",onChange:T=>A(T.target.checked),className:"rf-accent-blue-600"}),U.jsx("span",{"aria-hidden":"true",className:"rf-inline-block rf-h-0.5 rf-w-3",style:{backgroundColor:uJe}}),"Highlight changes (all layers)"]}),U.jsxs("span",{children:[y==="input"?"Before this phase":"After this phase"," ","· ",k," traces"]})]}),w&&U.jsx("div",{className:ki("rf-border-y rf-px-4 rf-py-2 rf-text-xs",p.status==="error"?"rf-border-red-100 rf-bg-red-50 rf-text-red-700":"rf-border-blue-100 rf-bg-blue-50 rf-text-blue-700"),role:"status",children:p.status==="error"?`Routing failed: ${p.error?.message||"No output was captured."}`:Q?"Routing in progress. Showing captured input until output is available.":"No output was captured for this phase. Showing the available input."}),U.jsx("div",{ref:g,className:"rf-relative rf-min-h-[360px] rf-flex-1","data-testid":"autorouting-pcb",children:E?U.jsx(iJe,{circuitJson:E,height:u,allowEditing:!1,clickToInteractEnabled:!1,initialState:iwi,debugGraphics:B}):U.jsx("div",{className:"rf-p-6 rf-text-sm rf-text-gray-500",children:"No PCB snapshot available for this capture."})}),U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-justify-between rf-gap-2 rf-border-t rf-border-gray-200 rf-px-4 rf-py-3 rf-text-xs rf-text-gray-500",children:[U.jsxs("span",{children:[D===void 0?"Input unavailable":`${D} input connections`,` · ${Wcn(p)}`]}),U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-4",children:[U.jsxs("button",{type:"button",disabled:!x,onClick:()=>pE(JSON.stringify(x,null,2),{fileName:`${p.id}-${y}.srj.json`,mimeType:"application/json"}),className:"rf-flex rf-items-center rf-gap-1 disabled:rf-opacity-40",children:[U.jsx(LX,{className:"rf-h-3 rf-w-3"}),"Download SRJ"]}),U.jsxs("button",{type:"button","aria-expanded":c,onClick:()=>l(!c),className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx(MR,{className:ki("rf-h-3 rf-w-3",c&&"rf-rotate-90")}),"Inspect SRJ"]})]})]}),c&&U.jsx("pre",{className:"rf-m-0 rf-max-h-64 rf-overflow-auto rf-border-t rf-border-gray-200 rf-bg-gray-50 rf-p-4 rf-text-xs","aria-label":`${b} ${y} SRJ`,children:x?JSON.stringify(x,null,2):"No snapshot captured."})]})]})},qcn=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{te.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{AO.captureException(o)}catch{}}},[t,e]),te.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{AO.captureException(i,{error_type:o.type})}catch{}}},[n])},Xcn=t=>{te.useEffect(()=>{try{DTo(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},$cn="0.0.2756",swi={version:$cn},Tme=ZNt()(eRt(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{t({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),awi=t=>{const[e,n]=te.useState([]),[o,i]=te.useState(null),[r,s]=te.useState(""),[a,A]=LH("eval-version-selection",null),c=Tme(h=>h.setLastRunEvalVersion),l=Tme(h=>h.lastRunEvalVersion);return te.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(h=>h.json()).then(h=>{if(Array.isArray(h?.versions)){let d=[...h.versions];h.tags?.latest&&(i(h.tags.latest),d=d.filter(m=>m!==h.tags.latest)),n(d)}}).catch(()=>{})},[t]),te.useEffect(()=>{t&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,c(a)):o&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=o,c(o)))},[t,a,o]),{versions:te.useMemo(()=>e.filter(h=>h.includes(r)).slice(0,50),[e,r]),latestVersion:o,lastRunEvalVersion:l,search:r,setSearch:s,selectVersion:h=>{A(h),s("")}}},Awi=({snippetNames:t,onSelect:e,onCancel:n,isOpen:o})=>{const[i,r]=te.useState(""),[s,a]=te.useState("");if(!o)return null;const A=t.filter(g=>g.toLowerCase().includes(s.toLowerCase())),c=s&&!t.includes(s),l=g=>{g.key==="Enter"&&(A.length===1?r(A[0]):c&&r(s))};return U.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:U.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[U.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),U.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:g=>a(g.target.value),onKeyDown:l}),U.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[A.map(g=>U.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${i===g?"bg-blue-50":""}`,onClick:()=>r(g),children:g},g)),c&&U.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${i===s?"bg-blue-50":""}`,onClick:()=>r(s),children:['Create new "',s,'"']})]}),U.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[U.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:n,children:"Cancel"}),U.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>i&&e(i),disabled:!i,children:i===s?`Create "${i}"`:`Save to ${i}`})]})]})})},cwi=t=>{const e=te.useRef(null),n=od(o=>o.recentEvents);te.useEffect(()=>{if(n.length===0)return;const o=n[0];o.event_id!==e.current&&(t(o),e.current=o.event_id)},[n,t])};var lwi=Object.defineProperty,$S=(t,e)=>lwi(t,"name",{value:e,configurable:!0}),gwi="AlertDialog",[uwi,jrr]=cx(gwi,[Ysn]),ZS=Ysn(),dwi=$S(t=>{const{__scopeAlertDialog:e,...n}=t,o=ZS(e);return U.jsx(zhe,{...o,...n,modal:!0})},"AlertDialog");te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(y4i,{...r,...i,ref:n})},"AlertDialogTrigger"));var hwi=$S(t=>{const{__scopeAlertDialog:e,...n}=t,o=ZS(e);return U.jsx(Jhe,{...o,...n})},"AlertDialogPortal"),mwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx($X,{...r,...i,ref:n})},"AlertDialogOverlay")),pwi="AlertDialogContent",[_wi,fwi]=uwi(pwi),Iwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,children:i,...r}=e,s=ZS(o),a=te.useRef(null),A=KA(n,a),c=te.useRef(null);return U.jsx(_wi,{scope:o,cancelRef:c,children:U.jsx(e$,{role:"alertdialog",...s,...r,ref:A,onOpenAutoFocus:sr(r.onOpenAutoFocus,l=>{l.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:i})})},"AlertDialogContent")),Cwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(Whe,{...r,...i,ref:n})},"AlertDialogTitle")),ywi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(jhe,{...r,...i,ref:n})},"AlertDialogDescription")),xwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(ZVe,{...r,...i,ref:n})},"AlertDialogAction")),Ewi="AlertDialogCancel",Bwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,{cancelRef:r}=fwi(Ewi,o),s=ZS(o),a=KA(n,r);return U.jsx(ZVe,{...s,...i,ref:a})},"AlertDialogCancel")),Swi=dwi,bwi=hwi,Zcn=mwi,eln=Iwi,tln=xwi,nln=Bwi,oln=Cwi,iln=ywi;const rln=Swi,Qwi=bwi,sln=te.forwardRef(({className:t,...e},n)=>U.jsx(Zcn,{className:ki("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));sln.displayName=Zcn.displayName;const hJe=te.forwardRef(({className:t,...e},n)=>U.jsxs(Qwi,{children:[U.jsx(sln,{}),U.jsx(eln,{ref:n,className:ki("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...e})]}));hJe.displayName=eln.displayName;const mJe=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});mJe.displayName="AlertDialogHeader";const pJe=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});pJe.displayName="AlertDialogFooter";const _Je=te.forwardRef(({className:t,...e},n)=>U.jsx(oln,{ref:n,className:ki("rf-text-lg rf-font-semibold",t),...e}));_Je.displayName=oln.displayName;const fJe=te.forwardRef(({className:t,...e},n)=>U.jsx(iln,{ref:n,className:ki("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));fJe.displayName=iln.displayName;const vwi=te.forwardRef(({className:t,...e},n)=>U.jsx(tln,{ref:n,className:ki(iY(),t),...e}));vwi.displayName=tln.displayName;const IJe=te.forwardRef(({className:t,...e},n)=>U.jsx(nln,{ref:n,className:ki(iY({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...e}));IJe.displayName=nln.displayName;var Pwi=Object.defineProperty,eb=(t,e)=>Pwi(t,"name",{value:e,configurable:!0}),CJe="Checkbox",[wwi,qrr]=cx(CJe),[Mwi,yJe]=wwi(CJe);function aln(t){const{__scopeCheckbox:e,checked:n,children:o,defaultChecked:i,disabled:r,form:s,name:a,onCheckedChange:A,required:c,value:l="on",internal_do_not_use_render:g}=t,[u,h]=uB({prop:n,defaultProp:i??!1,onChange:A,caller:CJe}),[d,m]=te.useState(null),[p,_]=te.useState(null),f=te.useRef(!1),[I,C]=te.useReducer(E=>E+1,0),y=d?!!s||!!d.closest("form"):!0,x={checked:u,disabled:r,setChecked:h,control:d,setControl:m,name:a,form:s,value:l,hasConsumerStoppedPropagationRef:f,userInteractionCount:I,onUserInteraction:C,required:c,defaultChecked:tb(i)?!1:i,isFormControl:y,bubbleInput:p,setBubbleInput:_};return U.jsx(Mwi,{scope:e,...x,children:cln(g)?g(x):o})}eb(aln,"CheckboxProvider");var Dwi="CheckboxTrigger",Nwi=te.forwardRef(eb(function({__scopeCheckbox:e,onKeyDown:n,onClick:o,...i},r){const{control:s,value:a,disabled:A,checked:c,required:l,setControl:g,setChecked:u,hasConsumerStoppedPropagationRef:h,onUserInteraction:d,isFormControl:m,bubbleInput:p}=yJe(Dwi,e),_=KA(r,g),f=te.useRef(c);return te.useEffect(()=>{const I=s?.form;if(I){const C=eb(()=>u(f.current),"reset");return I.addEventListener("reset",C),()=>I.removeEventListener("reset",C)}},[s,u]),U.jsx(ba.button,{type:"button",role:"checkbox","aria-checked":tb(c)?"mixed":c,"aria-required":l,"data-state":xJe(c),"data-disabled":A?"":void 0,disabled:A,value:a,...i,ref:_,onKeyDown:sr(n,I=>{I.key==="Enter"&&I.preventDefault()}),onClick:sr(o,I=>{d(),u(C=>tb(C)?!0:!C),p&&m&&(h.current=I.isPropagationStopped(),h.current||I.stopPropagation())})})},"CheckboxTrigger")),Aln=te.forwardRef(eb(function(e,n){const{__scopeCheckbox:o,name:i,checked:r,defaultChecked:s,required:a,disabled:A,value:c,onCheckedChange:l,form:g,...u}=e;return U.jsx(aln,{__scopeCheckbox:o,checked:r,defaultChecked:s,disabled:A,required:a,onCheckedChange:l,name:i,form:g,value:c,internal_do_not_use_render:({isFormControl:h})=>U.jsxs(U.Fragment,{children:[U.jsx(Nwi,{...u,ref:n,__scopeCheckbox:o}),h&&U.jsx(Fwi,{__scopeCheckbox:o})]})})},"Checkbox")),Rwi="CheckboxIndicator",Twi=te.forwardRef(eb(function(e,n){const{__scopeCheckbox:o,forceMount:i,...r}=e,s=yJe(Rwi,o);return U.jsx(V3,{present:i||tb(s.checked)||s.checked===!0,children:U.jsx(ba.span,{"data-state":xJe(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n,style:{pointerEvents:"none",...e.style}})})},"CheckboxIndicator")),kwi="CheckboxBubbleInput",Fwi=te.forwardRef(eb(function({__scopeCheckbox:e,onClick:n,...o},i){const{control:r,hasConsumerStoppedPropagationRef:s,userInteractionCount:a,checked:A,defaultChecked:c,required:l,disabled:g,name:u,value:h,form:d,bubbleInput:m,setBubbleInput:p}=yJe(kwi,e),_=KA(i,p),f=kVe(r),I=te.useRef(!1),C=te.useRef(A),y=te.useRef(a);te.useEffect(()=>{const E=m;if(!E)return;const B=window.HTMLInputElement.prototype,Q=Object.getOwnPropertyDescriptor(B,"checked").set,w=a!==y.current;y.current=a;const D=C.current!==A;C.current=A;const k=!(w&&s.current);if(D&&Q){I.current=!w;const T=new Event("click",{bubbles:k});E.indeterminate=tb(A),Q.call(E,tb(A)?!1:A),E.dispatchEvent(T),I.current=!1}},[m,A,s,a]);const x=te.useRef(tb(A)?!1:A);return U.jsx(ba.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??x.current,required:l,disabled:g,name:u,value:h,form:d,...o,tabIndex:-1,ref:_,onClick:sr(n,E=>{I.current&&E.stopPropagation()}),style:{...o.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"CheckboxBubbleInput"));function cln(t){return typeof t=="function"}eb(cln,"isFunction");function tb(t){return t==="indeterminate"}eb(tb,"isIndeterminate");function xJe(t){return tb(t)?"indeterminate":t?"checked":"unchecked"}eb(xJe,"getState");const S$=te.forwardRef(({className:t,...e},n)=>U.jsx(Aln,{ref:n,className:ki("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",t),...e,children:U.jsx(Twi,{className:ki("rf-flex rf-items-center rf-justify-center rf-text-current"),children:U.jsx(US,{className:"rf-h-4 rf-w-4"})})}));S$.displayName=Aln.displayName;const OR=zhe,Lwi=Jhe,lln=te.forwardRef(({className:t,...e},n)=>U.jsx($X,{className:ki("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));lln.displayName=$X.displayName;const ZP=te.forwardRef(({className:t,children:e,showOverlay:n=!0,...o},i)=>U.jsxs(Lwi,{children:[U.jsx(lln,{className:ki(n?"":"rf-hidden")}),U.jsx(e$,{ref:i,className:ki("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...o,children:e})]}));ZP.displayName=e$.displayName;const ew=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});ew.displayName="DialogHeader";const PY=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});PY.displayName="DialogFooter";const tw=te.forwardRef(({className:t,...e},n)=>U.jsx(Whe,{ref:n,className:ki("rf-text-lg rf-font-semibold",t),...e}));tw.displayName=Whe.displayName;const GR=te.forwardRef(({className:t,...e},n)=>U.jsx(jhe,{ref:n,className:ki("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));GR.displayName=jhe.displayName;const kme={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},Hwi="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let EJe=null;const BJe=async()=>(EJe||(EJe=import(Hwi)),EJe),Owi=t=>(e,n)=>{const o=new Headers(n?.headers),i={};return o.forEach((r,s)=>{i[s]=r}),fetch(`${t?.apiBase??rC}/proxy`,{...n,headers:{...i,"X-Target-Url":e.toString(),"X-Sender-Origin":i.origin??"","X-Sender-Host":i.host??"https://easyeda.com","X-Sender-Referer":i.referer??"","X-Sender-User-Agent":i["user-agent"]??"","X-Sender-Cookie":i.cookie??"",authority:i.authority??"","content-type":i["content-type"]??"",...t?.headers}})},Gwi=async(t,e=10)=>{const n=encodeURIComponent(t),o=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${e}&q=${n}`);if(!o.ok)throw new Error(`JLCPCB API error: ${o.status}`);return(await o.json()).components??[]},Ywi=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock,isBasic:t.is_basic}),gln=async(t,e)=>{const{fetchEasyEDAComponent:n}=await BJe();return n(t,{fetch:Owi(e),includeModelMetadata:e?.includeModelMetadata})},Uwi=async(t,e)=>{const{convertRawEasyToTsx:n}=await BJe(),o=await gln(t,e);return n({rawEasy:o})},Kwi=async(t,e)=>{const{EasyEdaJsonSchema:n,convertEasyEdaJsonToCircuitJson:o}=await BJe(),i=await gln(t,{...e,includeModelMetadata:!1}),r=n.parse(i);return o(r,{shouldRecenter:!0,showDesignator:!0,useModelCdn:!1})};function nw(t){return Array.isArray?Array.isArray(t):dln(t)==="[object Array]"}function Vwi(t){if(typeof t=="string")return t;if(typeof t=="bigint")return t.toString();const e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function SJe(t){return t==null?"":Vwi(t)}function dC(t){return typeof t=="string"}function Fme(t){return typeof t=="number"}function zwi(t){return t===!0||t===!1||Jwi(t)&&dln(t)=="[object Boolean]"}function uln(t){return typeof t=="object"}function Jwi(t){return uln(t)&&t!==null}function _E(t){return t!=null}function Lme(t){return!t.trim().length}function dln(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const Wwi="Incorrect 'index' type",bJe="Invalid doc index: must be a non-negative integer within the bounds of the docs array",jwi=t=>`Invalid value for key ${t}`,qwi=t=>`Pattern length exceeds max of ${t}.`,Xwi=t=>`Missing ${t} property in key`,$wi=t=>`Property 'weight' in key '${t}' must be a positive integer`,Zwi="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",hln=Object.prototype.hasOwnProperty;var eMi=class{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(n=>{const o=mln(n);this._keys.push(o),this._keyMap[o.id]=o,e+=o.weight}),this._keys.forEach(n=>{n.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function mln(t){let e=null,n=null,o=null,i=1,r=null;if(dC(t)||nw(t))o=t,e=pln(t),n=Hme(t);else{if(!hln.call(t,"name"))throw new Error(Xwi("name"));const s=t.name;if(o=s,hln.call(t,"weight")&&t.weight!==void 0&&(i=t.weight,i<=0))throw new Error($wi(Hme(s)));e=pln(s),n=Hme(s),r=t.getFn??null}return{path:e,id:n,weight:i,src:o,getFn:r}}function pln(t){return nw(t)?t:t.split(".")}function Hme(t){return nw(t)?t.join("."):t}function tMi(t,e){const n=[];let o=!1;const i=(r,s,a,A)=>{if(_E(r))if(!s[a])n.push(A!==void 0?{v:r,i:A}:r);else{const c=r[s[a]];if(!_E(c))return;if(a===s.length-1&&(dC(c)||Fme(c)||zwi(c)||typeof c=="bigint"))n.push(A!==void 0?{v:SJe(c),i:A}:SJe(c));else if(nw(c)){o=!0;for(let l=0,g=c.length;l<g;l+=1)i(c[l],s,a+1,l)}else s.length&&i(c,s,a+1,A)}};return i(t,dC(e)?e.split("."):e,0),o?n:n[0]}const xa=Object.freeze({...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:tMi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}});function nMi(t){return t>=9&&t<=13||t===32||t===160}function oMi(t=1,e=3){const n=new Map,o=Math.pow(10,e);return{get(i){let r=0,s=!1;for(let A=0;A<i.length;A++)nMi(i.charCodeAt(A))?s=!1:s||(r++,s=!0);if(r===0&&(r=1),n.has(r))return n.get(r);const a=Math.round(o/Math.pow(r,.5*t))/o;return n.set(r,a),a},clear(){n.clear()}}}var QJe=class{constructor({getFn:t=xa.getFn,fieldNormWeight:e=xa.fieldNormWeight}={}){this.norm=oMi(e,3),this.getFn=t,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((e,n)=>{this._keysMap[e.id]=n})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const t=this.docs.length;this.records=new Array(t);let e=0;if(dC(this.docs[0]))for(let n=0;n<t;n++){const o=this._createStringRecord(this.docs[n],n);o&&(this.records[e++]=o)}else for(let n=0;n<t;n++)this.records[e++]=this._createObjectRecord(this.docs[n],n);this.records.length=e,this.norm.clear()}add(t,e){if(!Number.isInteger(e)||e<0)throw new Error(bJe);if(dC(t)){const o=this._createStringRecord(t,e);return o&&this.records.push(o),o}const n=this._createObjectRecord(t,e);return this.records.push(n),n}removeAt(t){if(!Number.isInteger(t)||t<0)throw new Error(bJe);for(let e=0,n=this.records.length;e<n;e+=1)if(this.records[e].i===t){this.records.splice(e,1);break}for(let e=0,n=this.records.length;e<n;e+=1)this.records[e].i>t&&(this.records[e].i-=1)}removeAll(t){const e=new Set;for(const o of t)Number.isInteger(o)&&o>=0&&e.add(o);if(e.size===0)return;this.records=this.records.filter(o=>!e.has(o.i));const n=Array.from(e).sort((o,i)=>o-i);for(const o of this.records){let i=0,r=n.length;for(;i<r;){const s=i+r>>>1;n[s]<o.i?i=s+1:r=s}o.i-=i}}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_createStringRecord(t,e){return!_E(t)||Lme(t)?null:{v:t,i:e,n:this.norm.get(t)}}_createObjectRecord(t,e){const n={i:e,$:{}};for(let o=0,i=this.keys.length;o<i;o++){const r=this.keys[o],s=r.getFn?r.getFn(t):this.getFn(t,r.path);if(_E(s)){if(nw(s)){const a=[];for(let A=0,c=s.length;A<c;A+=1){const l=s[A];if(_E(l)){if(dC(l)){if(!Lme(l)){const g={v:l,i:A,n:this.norm.get(l)};a.push(g)}}else if(_E(l.v)){const g=dC(l.v)?l.v:SJe(l.v);if(!Lme(g)){const u={v:g,i:l.i,n:this.norm.get(g)};a.push(u)}}}}n.$[o]=a}else if(dC(s)&&!Lme(s)){const a={v:s,n:this.norm.get(s)};n.$[o]=a}}}return n}toJSON(){return{keys:this.keys.map(({getFn:t,...e})=>e),records:this.records}}};function _ln(t,e,{getFn:n=xa.getFn,fieldNormWeight:o=xa.fieldNormWeight}={}){const i=new QJe({getFn:n,fieldNormWeight:o});return i.setKeys(t.map(mln)),i.setSources(e),i.create(),i}function iMi(t,{getFn:e=xa.getFn,fieldNormWeight:n=xa.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new QJe({getFn:e,fieldNormWeight:n});return r.setKeys(o),r.setIndexRecords(i),r}function rMi(t=[],e=xa.minMatchCharLength){const n=[];let o=-1,i=-1,r=0;for(let s=t.length;r<s;r+=1){const a=t[r];a&&o===-1?o=r:!a&&o!==-1&&(i=r-1,i-o+1>=e&&n.push([o,i]),o=-1)}return t[r-1]&&r-o>=e&&n.push([o,r-1]),n}function sMi(t,e,n,{location:o=xa.location,distance:i=xa.distance,threshold:r=xa.threshold,findAllMatches:s=xa.findAllMatches,minMatchCharLength:a=xa.minMatchCharLength,includeMatches:A=xa.includeMatches,ignoreLocation:c=xa.ignoreLocation}={}){if(e.length>32)throw new Error(qwi(32));const l=e.length,g=t.length,u=Math.max(0,Math.min(o,g));let h=r,d=u;const m=(b,Q)=>{const w=b/l;if(c)return w;const D=Math.abs(u-Q);return i?w+D/i:D?1:w},p=a>1||A,_=p?Array(g):[];let f;for(;(f=t.indexOf(e,d))>-1;){const b=m(0,f);if(h=Math.min(b,h),d=f+l,p){let Q=0;for(;Q<l;)_[f+Q]=1,Q+=1}}d=-1;let I=[],C=1,y=0,x=l+g;const E=1<<l-1;for(let b=0;b<l;b+=1){let Q=0,w=x;for(;Q<w;)m(b,u+w)<=h?Q=w:x=w,w=Math.floor((x-Q)/2+Q);x=w;let D=Math.max(1,u-w+1);const k=s?g:Math.min(u+w,g)+l,T=Array(k+2);T[k+1]=(1<<b)-1;for(let H=k;H>=D;H-=1){const G=H-1,K=n[t[G]];if(T[H]=(T[H+1]<<1|1)&K,b&&(T[H]|=(I[H+1]|I[H])<<1|1|I[H+1]),T[H]&E&&(C=m(b,G),C<=h)){if(h=C,d=G,y=b,d<=u)break;D=Math.max(1,2*u-d)}}if(m(b+1,u)>h)break;I=T}if(p&&d>=0){const b=Math.min(g-1,d+l-1+y);for(let Q=d;Q<=b;Q+=1)n[t[Q]]&&(_[Q]=1)}const B={isMatch:d>=0,score:Math.max(.001,C)};if(p){const b=rMi(_,a);b.length?A&&(B.indices=b):B.isMatch=!1}return B}function aMi(t){const e={};for(let n=0,o=t.length;n<o;n+=1){const i=t.charAt(n);e[i]=(e[i]||0)|1<<o-n-1}return e}function vJe(t){if(t.length<=1)return t;t.sort((n,o)=>n[0]-o[0]||n[1]-o[1]);const e=[t[0]];for(let n=1,o=t.length;n<o;n+=1){const i=e[e.length-1],r=t[n];r[0]<=i[1]+1?i[1]=Math.max(i[1],r[1]):e.push(r)}return e}const fln={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},AMi=new RegExp("["+Object.keys(fln).join("")+"]","g"),b$=typeof String.prototype.normalize=="function"?t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(AMi,e=>fln[e]):t=>t;var PJe=class{constructor(t,{location:e=xa.location,threshold:n=xa.threshold,distance:o=xa.distance,includeMatches:i=xa.includeMatches,findAllMatches:r=xa.findAllMatches,minMatchCharLength:s=xa.minMatchCharLength,isCaseSensitive:a=xa.isCaseSensitive,ignoreDiacritics:A=xa.ignoreDiacritics,ignoreLocation:c=xa.ignoreLocation}={}){if(this.options={location:e,threshold:n,distance:o,includeMatches:i,findAllMatches:r,minMatchCharLength:s,isCaseSensitive:a,ignoreDiacritics:A,ignoreLocation:c},t=a?t:t.toLowerCase(),t=A?b$(t):t,this.pattern=t,this.chunks=[],!this.pattern.length)return;const l=(u,h)=>{this.chunks.push({pattern:u,alphabet:aMi(u),startIndex:h})},g=this.pattern.length;if(g>32){let u=0;const h=g%32,d=g-h;for(;u<d;)l(this.pattern.substr(u,32),u),u+=32;if(h){const m=g-32;l(this.pattern.substr(m),m)}}else l(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o}=this.options;if(t=e?t:t.toLowerCase(),t=n?b$(t):t,this.pattern===t){if(t.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const d={isMatch:!0,score:0};return o&&(d.indices=[[0,t.length-1]]),d}const{location:i,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,ignoreLocation:c}=this.options,l=[];let g=0,u=!1;this.chunks.forEach(({pattern:d,alphabet:m,startIndex:p})=>{const{isMatch:_,score:f,indices:I}=sMi(t,d,m,{location:i+p,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,includeMatches:o,ignoreLocation:c});_&&(u=!0),g+=f,_&&I&&l.push(...I)});const h={isMatch:u,score:u?g/this.chunks.length:1};return u&&o&&(h.indices=vJe(l)),h}};const cMi=new Set(["fuzzy","include"]);function lMi(t){return t.startsWith("inverse")}const wJe=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:t=>({type:"exact",search(e){const n=e===t;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:t=>({type:"include",search(e){let n=0,o;const i=[],r=t.length;for(;(o=e.indexOf(t,n))>-1;)n=o+r,i.push([o,n-1]);const s=!!i.length;return{isMatch:s,score:s?0:1,indices:i}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:t=>({type:"prefix-exact",search(e){const n=e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:t=>({type:"inverse-prefix-exact",search(e){const n=!e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:t=>({type:"inverse-suffix-exact",search(e){const n=!e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:t=>({type:"suffix-exact",search(e){const n=e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[e.length-t.length,e.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:t=>({type:"inverse-exact",search(e){const n=e.indexOf(t)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(t,e={})=>{const n=new PJe(t,{location:e.location??xa.location,threshold:e.threshold??xa.threshold,distance:e.distance??xa.distance,includeMatches:e.includeMatches??xa.includeMatches,findAllMatches:e.findAllMatches??xa.findAllMatches,minMatchCharLength:e.minMatchCharLength??xa.minMatchCharLength,isCaseSensitive:e.isCaseSensitive??xa.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics??xa.ignoreDiacritics,ignoreLocation:e.ignoreLocation??xa.ignoreLocation});return{type:"fuzzy",search(o){return n.searchIn(o)}}}}],Iln=wJe.length,gMi="\0",uMi="|";function dMi(t){const e=[],n=t.length;let o=0;for(;o<n;){for(;o<n&&t[o]===" ";)o++;if(o>=n)break;let i=o;for(;i<n&&t[i]!==" "&&t[i]!=='"';)i++;if(i<n&&t[i]==='"'){for(i++;i<n;){if(t[i]==='"'){const r=i+1;if(r>=n||t[r]===" "){i++;break}if(t[r]==="$"&&(r+1>=n||t[r+1]===" ")){i+=2;break}}i++}e.push(t.substring(o,i)),o=i}else{for(;i<n&&t[i]!==" ";)i++;e.push(t.substring(o,i)),o=i}}return e}function Cln(t,e){const n=t.match(e);return n?n[1]:null}function hMi(t,e={}){return t.replace(/\\\|/g,gMi).split(uMi).map(n=>{const o=dMi(n.replace(/\u0000/g,"|").trim()).filter(r=>r&&!!r.trim()),i=[];for(let r=0,s=o.length;r<s;r+=1){const a=o[r];let A=!1,c=-1;for(;!A&&++c<Iln;){const l=wJe[c],g=Cln(a,l.multiRegex);g&&(i.push(l.create(g,e)),A=!0)}if(!A)for(c=-1;++c<Iln;){const l=wJe[c],g=Cln(a,l.singleRegex);if(g){i.push(l.create(g,e));break}}}return i})}var mMi=class{constructor(t,{isCaseSensitive:e=xa.isCaseSensitive,ignoreDiacritics:n=xa.ignoreDiacritics,includeMatches:o=xa.includeMatches,minMatchCharLength:i=xa.minMatchCharLength,ignoreLocation:r=xa.ignoreLocation,findAllMatches:s=xa.findAllMatches,location:a=xa.location,threshold:A=xa.threshold,distance:c=xa.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o,minMatchCharLength:i,findAllMatches:s,ignoreLocation:r,location:a,threshold:A,distance:c},t=e?t:t.toLowerCase(),t=n?b$(t):t,this.pattern=t,this.query=hMi(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:o,ignoreDiacritics:i}=this.options;t=o?t:t.toLowerCase(),t=i?b$(t):t;let r=0;const s=[];let a=0,A=!1;for(let c=0,l=e.length;c<l;c+=1){const g=e[c];s.length=0,r=0,A=!1;for(let u=0,h=g.length;u<h;u+=1){const d=g[u],{isMatch:m,indices:p,score:_}=d.search(t);if(m)r+=1,a+=_,lMi(d.type)&&(A=!0),n&&(cMi.has(d.type)?s.push(...p):s.push(p));else{a=0,r=0,s.length=0,A=!1;break}}if(r){const u={isMatch:!0,score:a/r};return A&&(u.hasInverse=!0),n&&(u.indices=vJe(s)),u}}return{isMatch:!1,score:1}}};const MJe=[];function DJe(...t){MJe.push(...t)}function Ome(t,e){for(let n=0,o=MJe.length;n<o;n+=1){const i=MJe[n];if(i.condition(t,e))return new i(t,e)}return new PJe(t,e)}const Gme={AND:"$and",OR:"$or"},NJe={PATH:"$path",PATTERN:"$val"},RJe=t=>!!(t[Gme.AND]||t[Gme.OR]),pMi=t=>!!t[NJe.PATH],_Mi=t=>!nw(t)&&uln(t)&&!RJe(t),yln=t=>({[Gme.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function xln(t,e,{auto:n=!0}={}){const o=i=>{if(dC(i)){const A={keyId:null,pattern:i};return n&&(A.searcher=Ome(i,e)),A}const r=Object.keys(i),s=pMi(i);if(!s&&r.length>1&&!RJe(i))return o(yln(i));if(_Mi(i)){const A=s?i[NJe.PATH]:r[0],c=s?i[NJe.PATTERN]:i[A];if(!dC(c))throw new Error(jwi(A));const l={keyId:Hme(A),pattern:c};return n&&(l.searcher=Ome(c,e)),l}const a={children:[],operator:r[0]};return r.forEach(A=>{const c=i[A];nw(c)&&c.forEach(l=>{a.children.push(o(l))})}),a};return RJe(t)||(t=yln(t)),o(t)}function TJe(t,{ignoreFieldNorm:e=xa.ignoreFieldNorm}){let n=1;return t.forEach(({key:o,norm:i,score:r})=>{const s=o?o.weight:null;n*=Math.pow(r===0&&s?Number.EPSILON:r,(s||1)*(e?1:i))}),n}function fMi(t,{ignoreFieldNorm:e=xa.ignoreFieldNorm}){t.forEach(n=>{n.score=TJe(n.matches,{ignoreFieldNorm:e})})}var IMi=class{constructor(t,e){this.limit=t,this.heap=[],this.comparator=e}get size(){return this.heap.length}insert(t){this.size<this.limit?(this.heap.push(t),this._bubbleUp(this.size-1)):this.comparator(t,this.heap[0])<0&&(this.heap[0]=t,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(t){const e=this.heap;for(;t>0;){const n=t-1>>1;if(this.comparator(e[t],e[n])<=0)break;const o=e[t];e[t]=e[n],e[n]=o,t=n}}_sinkDown(t){const e=this.heap,n=e.length;let o=t;do{t=o;const i=2*t+1,r=2*t+2;if(i<n&&this.comparator(e[i],e[o])>0&&(o=i),r<n&&this.comparator(e[r],e[o])>0&&(o=r),o!==t){const s=e[t];e[t]=e[o],e[o]=s}}while(o!==t)}};function CMi(t){const e=[];return t.matches.forEach(n=>{if(!_E(n.indices)||!n.indices.length)return;const o={indices:n.indices,value:n.value};n.key&&(o.key=n.key.id),n.idx>-1&&(o.refIndex=n.idx),e.push(o)}),e}function yMi(t,e,{includeMatches:n=xa.includeMatches,includeScore:o=xa.includeScore}={}){return t.map(i=>{const{idx:r}=i,s={item:e[r],refIndex:r};return n&&(s.matches=CMi(i)),o&&(s.score=i.score),s})}const xMi=/[\p{L}\p{M}\p{N}_]+/gu,Eln=new WeakSet;function EMi(t){Eln.has(t)||(Eln.add(t),console.warn(`[Fuse] tokenize regex ${t} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function BMi(t){if(typeof t=="function"){let e=!1;return n=>{const o=t(n);if(!e&&(e=!0,!Array.isArray(o)||o.some(i=>typeof i!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(o)?"array containing non-strings":typeof o}.`);return o}}return t instanceof RegExp?(t.global||EMi(t),e=>e.match(t)||[]):e=>e.match(xMi)||[]}function kJe({isCaseSensitive:t=!1,ignoreDiacritics:e=!1,tokenize:n}={}){const o=BMi(n);return{tokenize(i){return t||(i=i.toLowerCase()),e&&(i=b$(i)),o(i)}}}var SMi=class{static condition(t,e){return e.useTokenSearch}constructor(t,e){this.options=e,this.analyzer=kJe({isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,tokenize:e.tokenize});const n=this.analyzer.tokenize(t),{df:o,fieldCount:i}=e._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const r of n){this.termSearchers.push(new PJe(r,{location:e.location,threshold:e.threshold,distance:e.distance,includeMatches:e.includeMatches,findAllMatches:e.findAllMatches,minMatchCharLength:e.minMatchCharLength,isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,ignoreLocation:!0}));const s=o.get(r)||0,a=Math.log(1+(i-s+.5)/(s+.5));this.idfWeights.push(a)}this.combineAll=e.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(t){if(!this.termSearchers.length)return{isMatch:!1,score:1};const e=[];let n=0,o=0,i=0,r=0;const s=this.combineAll&&!this.useMask?new Set:null;for(let c=0;c<this.termSearchers.length;c++){const l=this.termSearchers[c].searchIn(t),g=this.idfWeights[c];o+=g,l.isMatch&&(i++,n+=g*(1-l.score),l.indices&&e.push(...l.indices),this.combineAll&&(this.useMask?r|=1<<c:s.add(c)))}if(i===0)return{isMatch:!1,score:1};const a=o>0?1-n/o:0,A={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&e.length&&(A.indices=vJe(e)),this.combineAll&&(this.useMask?A.matchedMask=r:A.matchedTerms=s,A.termCount=this.numTerms),A}};function FJe(t,e,n,o){const i=o.tokenize(e);if(!i.length)return;t.fieldCount++,t.docFieldCount.set(n,(t.docFieldCount.get(n)||0)+1);const r=new Set(i);let s=t.docTermFieldHits.get(n);s||(s=new Map,t.docTermFieldHits.set(n,s));for(const a of r)s.set(a,(s.get(a)||0)+1),t.df.set(a,(t.df.get(a)||0)+1)}function Bln(t,e,n,o){const{i,v:r,$:s}=e;if(r!==void 0){FJe(t,r,i,o);return}if(s)for(let a=0;a<n;a++){const A=s[a];if(A)if(Array.isArray(A))for(const c of A)FJe(t,c.v,i,o);else FJe(t,A.v,i,o)}}function bMi(t,e,n){const o={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const i of t)Bln(o,i,e,n);return o}function QMi(t,e,n,o){Bln(t,e,n,o)}function vMi(t,e){const n=t.docFieldCount.get(e);if(n===void 0)return;t.fieldCount-=n,t.docFieldCount.delete(e);const o=t.docTermFieldHits.get(e);if(o){for(const[i,r]of o){const s=(t.df.get(i)||0)-r;s<=0?t.df.delete(i):t.df.set(i,s)}t.docTermFieldHits.delete(e)}}function Sln(t,e){if(e.length===0)return;const n=Array.from(new Set(e)).sort((a,A)=>a-A);for(const a of n)vMi(t,a);const o=a=>{let A=0,c=n.length;for(;A<c;){const l=A+c>>>1;n[l]<a?A=l+1:c=l}return a-A},i=n[0],r=new Map;for(const[a,A]of t.docFieldCount)r.set(a>i?o(a):a,A);t.docFieldCount=r;const s=new Map;for(const[a,A]of t.docTermFieldHits)s.set(a>i?o(a):a,A);t.docTermFieldHits=s}var ow=class{constructor(t,e,n){this.options={...xa,...e},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new eMi(this.options.keys),this._docs=t,this._myIndex=null,this._invertedIndex=null,this.setCollection(t,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(t){if(this._lastQuery===t)return this._lastSearcher;const e=Ome(t,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=t,this._lastSearcher=e,e}setCollection(t,e){if(this._docs=t,e&&!(e instanceof QJe))throw new Error(Wwi);if(this._myIndex=e||_ln(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const n=kJe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=bMi(this._myIndex.records,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}add(t){if(!_E(t))return;this._docs.push(t);const e=this._myIndex.add(t,this._docs.length-1);if(this._invertedIndex&&e){const n=kJe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});QMi(this._invertedIndex,e,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}remove(t=()=>!1){const e=[],n=[];for(let o=0,i=this._docs.length;o<i;o+=1)t(this._docs[o],o)&&(e.push(this._docs[o]),n.push(o));if(n.length){this._invertedIndex&&Sln(this._invertedIndex,n);const o=new Set(n);this._docs=this._docs.filter((i,r)=>!o.has(r)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return e}removeAt(t){if(!Number.isInteger(t)||t<0||t>=this._docs.length)throw new Error(bJe);this._invertedIndex&&Sln(this._invertedIndex,[t]);const e=this._docs.splice(t,1)[0];return this._myIndex.removeAt(t),this._invalidateSearcherCache(),e}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(t=>this._keyStore.get(t.id)||t)}search(t,e){const{limit:n=-1}=e||{},{includeMatches:o,includeScore:i,shouldSort:r,sortFn:s,ignoreFieldNorm:a}=this.options;if(dC(t)&&!t.trim()){let u=this._docs.map((h,d)=>({item:h,refIndex:d}));return Fme(n)&&n>-1&&(u=u.slice(0,n)),u}const A=r&&Fme(n)&&n>0&&dC(t),c=s,l=(u,h)=>c(u,h)||u.idx-h.idx;let g;if(A){const u=new IMi(n,l);dC(this._docs[0])?this._searchStringList(t,{heap:u,ignoreFieldNorm:a}):this._searchObjectList(t,{heap:u,ignoreFieldNorm:a}),g=u.extractSorted()}else g=dC(t)?dC(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t),fMi(g,{ignoreFieldNorm:a}),r&&g.sort(dC(t)?l:c),Fme(n)&&n>-1&&(g=g.slice(0,n));return yMi(g,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=e?null:[];return r.forEach(({v:a,i:A,n:c})=>{if(!_E(a))return;const l=o.searchIn(a);if(l.isMatch){const g={score:l.score,value:a,norm:c,indices:l.indices};i&&(g.matchedMask=l.matchedMask,g.matchedTerms=l.matchedTerms,g.termCount=l.termCount);const u=[g];if(!i||this._coversAllTokens(u)){const h={item:a,idx:A,matches:u};e?(h.score=TJe(h.matches,{ignoreFieldNorm:n}),e.insert(h)):s.push(h)}}}),s}_searchLogical(t){const e=xln(t,this.options),n=this._normalizedKeys(),o=(a,A,c)=>{if(!("children"in a)){const{keyId:h,searcher:d}=a;let m;return h===null?(m=[],n.forEach((p,_)=>{m.push(...this._findMatches({key:p,value:A[_],searcher:d}))})):m=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(A,h),searcher:d}),m&&m.length?[{idx:c,item:A,matches:m}]:[]}const{children:l,operator:g}=a,u=[];for(let h=0,d=l.length;h<d;h+=1){const m=l[h],p=o(m,A,c);if(p.length)u.push(...p);else if(g===Gme.AND)return[]}return u},i=this._myIndex.records,r=new Map,s=[];return i.forEach(({$:a,i:A})=>{if(_E(a)){const c=o(e,a,A);c.length&&(r.has(A)||(r.set(A,{idx:A,item:a,matches:[]}),s.push(r.get(A))),c.forEach(({matches:l})=>{r.get(A).matches.push(...l)}))}}),s}_searchObjectList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=this._normalizedKeys(),a=e?null:[];return r.forEach(({$:A,i:c})=>{if(!_E(A))return;const l=[];let g=!1,u=!1;if(s.forEach((h,d)=>{const m=this._findMatches({key:h,value:A[d],searcher:o});m.length?(l.push(...m),m[0].hasInverse&&(u=!0)):g=!0}),!(u&&g)&&l.length&&(!i||this._coversAllTokens(l))){const h={idx:c,item:A,matches:l};e?(h.score=TJe(h.matches,{ignoreFieldNorm:n}),e.insert(h)):a.push(h)}}),a}_findMatches({key:t,value:e,searcher:n}){if(!_E(e))return[];const o=[];if(nw(e))e.forEach(({v:i,i:r,n:s})=>{if(!_E(i))return;const a=n.searchIn(i);if(a.isMatch){const A={score:a.score,key:t,value:i,idx:r,norm:s,indices:a.indices,hasInverse:a.hasInverse};a.termCount!==void 0&&(A.matchedMask=a.matchedMask,A.matchedTerms=a.matchedTerms,A.termCount=a.termCount),o.push(A)}});else{const{v:i,n:r}=e,s=n.searchIn(i);if(s.isMatch){const a={score:s.score,key:t,value:i,norm:r,indices:s.indices,hasInverse:s.hasInverse};s.termCount!==void 0&&(a.matchedMask=s.matchedMask,a.matchedTerms=s.matchedTerms,a.termCount=s.termCount),o.push(a)}}return o}_coversAllTokens(t){const e=t.length?t[0].termCount:void 0;if(e===void 0)return!0;if(e<=31){let o=0;for(let i=0;i<t.length;i++)o|=t[i].matchedMask||0;return o===2**e-1}const n=new Set;for(let o=0;o<t.length;o++){const i=t[o].matchedTerms;if(i)for(const r of i)n.add(r)}return n.size===e}};ow.version="7.5.0",ow.createIndex=_ln,ow.parseIndex=iMi,ow.config=xa,ow.match=function(t,e,n){if(n&&n.useTokenSearch)throw new Error(Zwi);return Ome(t,{...xa,...n}).searchIn(e)},ow.parseQuery=xln,DJe(mMi),DJe(SMi),ow.use=function(...t){t.forEach(e=>DJe(e))};var PMi=ow;const wMi="https://kicad-mod-cache.tscircuit.com";let LJe=null,Q$=null,HJe=null;const MMi=async()=>LJe||Q$||(Q$=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(LJe=t,Q$=null,t)),Q$),DMi=async(t,e=20)=>{const n=await MMi();return HJe||(HJe=new PMi(n)),HJe.search(t).slice(0,e).map(o=>o.item)},NMi=t=>{const e=t.replace(".pretty/","/").replace(".kicad_mod",""),n=`kicad:${e}`;return{path:t,qualifiedName:n,description:e}},RMi=t=>t.replace(/^\/+/,"").split("/").map(e=>encodeURIComponent(e)).join("/"),TMi=async t=>{const e=await fetch(`${wMi}/${RMi(t)}`);if(!e.ok)throw new Error(`KiCad footprint fetch failed: ${e.status}`);const n=await e.text(),{KicadFootprintToCircuitJsonConverter:o}=await lE("kicad-to-circuit-json"),i=new o;return i.addFile(t.split("/").pop()??"selected-footprint.kicad_mod",n),i.runUntilFinished(),i.getOutput()},bln=t=>t?.source==="jlcpcb"||t?.source==="kicad",kMi=async(t,e)=>{if(t.source==="jlcpcb")return Kwi(t.component.partNumber,e?.jlcpcb);if(t.source==="kicad")return TMi(t.footprint.path);throw new Error("Footprint preview is not available for this source")},FMi=({query:t,placeholder:e,isSearching:n,onQueryChange:o,onSubmit:i})=>{const r=te.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),i())},[i]);return U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[U.jsxs("div",{className:"rf-relative rf-flex-grow",children:[U.jsx(hVe,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),U.jsx(hze,{placeholder:e,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>o(s.target.value),onKeyDown:r})]}),U.jsx(gA,{onClick:i,disabled:n||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:n?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):U.jsxs(U.Fragment,{children:[U.jsx(hVe,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),U.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},LMi=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),HMi=t=>LMi.format(t),Qln=t=>{switch(t.source){case"tscircuit.com":{const e=t.package;return`tscircuit-${e.package_id??`${e.org_owner_tscircuit_handle??"unknown"}-${e.unscoped_name??e.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},OMi=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.isDirectLookup?t.component.partNumber:t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},GMi=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.org_owner_tscircuit_handle?`Component by ${t.package.org_owner_tscircuit_handle}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},YMi=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.isDirectLookup?void 0:t.component.partNumber;case"kicad":return}},UMi=({results:t,selected:e,onSelect:n,onShowDetails:o})=>{const i=e?Qln(e):null;return U.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:t.map(r=>{const s=Qln(r),a=i===s,A=OMi(r),c=GMi(r),l=YMi(r),g=r.source==="jlcpcb"?r.component.stock:null,u=r.source==="jlcpcb"?r.component.price:null,h=r.source==="jlcpcb"?r.component.isBasic:null,d=r.source==="jlcpcb"?r.component.isDirectLookup:!1;return U.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[minmax(0,1fr)_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 rf-overflow-hidden ${a?"rf-bg-zinc-100":""}`,onClick:()=>n(r),children:[U.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[U.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[U.jsxs("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0 rf-flex rf-items-center rf-gap-1.5",children:[A,r.source==="jlcpcb"&&h!=null&&U.jsx("span",{className:`rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 ${h?"rf-bg-green-100 rf-text-green-700":"rf-bg-orange-100 rf-text-orange-700"}`,children:h?"Basic":"Extended"}),d&&U.jsx("span",{className:"rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 rf-bg-blue-100 rf-text-blue-700",children:"Direct lookup"}),r.source==="tscircuit.com"&&r.package.is_private&&U.jsx(Fxi,{className:"rf-ml-1 rf-h-3 rf-w-3 rf-text-zinc-400 rf-flex-shrink-0"})]}),r.source==="jlcpcb"&&g!=null?U.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 sm:rf-hidden",children:[g.toLocaleString()," in stock"]}):null]}),U.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[l?U.jsx("span",{className:"rf-mr-2",children:l}):null,c]})]}),U.jsxs("div",{children:[r.source==="tscircuit.com"&&o?U.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:U.jsx(gA,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:m=>{m.stopPropagation(),o(r)},children:"See Details"})}):r.source==="jlcpcb"&&g!=null?U.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0",children:[g.toLocaleString()," in stock"]}):null,u!=null&&U.jsx("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 rf-text-right",children:HMi(u)})]})]},s)})})},KMi=({circuitJson:t,error:e,isLoading:n,height:o})=>U.jsx("section",{className:"rf-flex rf-min-w-0 rf-items-center rf-justify-center",style:{height:o},children:n?U.jsxs("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-gap-2 rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:[U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),"Loading preview..."]}):e?U.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-p-4",style:{height:o},children:U.jsxs("div",{className:"rf-flex rf-max-w-[320px] rf-items-start rf-gap-2 rf-text-sm rf-text-zinc-300",children:[U.jsx(dVe,{className:"rf-mt-0.5 rf-h-4 rf-w-4 rf-flex-shrink-0"}),U.jsx("span",{children:e})]})}):t?U.jsx("div",{className:"rf-w-full rf-min-w-0 rf-overflow-hidden",children:U.jsx(iJe,{circuitJson:t,height:o,allowEditing:!1,clickToInteractEnabled:!1,focusOnHover:!1,disablePcbGroups:!0})}):U.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:"No preview"})}),vln={importComponentDialog:101,importComponentDetailsDialog:102},VMi=({packageResult:t,isOpen:e,onOpenChange:n,isLoading:o,details:i,previewTab:r,onPreviewTabChange:s,isSubmitting:a,onImport:A})=>{const c=t?.package??null,l=c?.latest_pcb_preview_image_url,g=c?.latest_sch_preview_image_url,u=c?.latest_cad_preview_image_url,h=c?.unscoped_name?.split("/").pop()??c?.unscoped_name,d=c?.org_owner_tscircuit_handle??void 0,m=d?`https://tscircuit.com/${d}`:void 0,p=d&&h?`https://tscircuit.com/${d}/${h}`:void 0;return U.jsx(OR,{open:e,onOpenChange:n,children:U.jsxs(ZP,{showOverlay:!1,style:{width:"calc(100vw - 2rem)",zIndex:vln.importComponentDetailsDialog},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[U.jsx(ew,{className:"rf-pb-4 rf-border-b",children:U.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:U.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[U.jsx(tw,{className:"rf-text-xl rf-font-semibold rf-truncate",children:h}),U.jsx(GR,{children:c?.description})]})})}),U.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[d?U.jsxs("div",{children:[U.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),U.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:m?U.jsx("a",{href:m,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:d}):d})]}):null,(u||l||g)&&U.jsx(U.Fragment,{children:U.jsxs("div",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),U.jsxs(kMe,{value:r,onValueChange:_=>s(_),children:[U.jsxs(z0e,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[l&&U.jsx(Y6,{value:"pcb",children:"PCB"}),g&&U.jsx(Y6,{value:"schematic",children:"Schematic"}),u&&U.jsx(Y6,{value:"3d",children:"3D"})]}),U.jsxs("div",{className:"rf-mt-4",children:[U.jsx(U1,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:l?U.jsx("img",{src:l,alt:`${h??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),U.jsx(U1,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:g?U.jsx("img",{src:g,alt:`${h??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),U.jsx(U1,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:u?U.jsx("img",{src:u,alt:`${h??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),i?.ai_description?U.jsxs("section",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),U.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:i.ai_description})})]}):null,i?.ai_usage_instructions?U.jsxs("section",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),U.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:i.ai_usage_instructions})})]}):null,o?U.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),U.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),U.jsxs(PY,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[U.jsx("div",{className:"rf-flex-1",children:p?U.jsxs(gA,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(p,"_blank"),children:[U.jsx(wxi,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),U.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[U.jsx(gA,{variant:"outline",onClick:()=>n(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),U.jsx(gA,{onClick:A,disabled:a,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:a?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},zMi=()=>{const[t,e]=te.useState(null),[n,o]=te.useState(!1),i=te.useCallback(async(s,a)=>{o(!0);try{const A=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${a}`)}`);if(!A.ok)throw new Error(`Failed to load package details: ${A.status}`);const c=await A.json();e(c.package??null)}catch(A){console.error("Failed to fetch package details",A),e(null)}finally{o(!1)}},[]),r=te.useCallback(()=>{e(null),o(!1)},[]);return{details:t,isLoading:n,fetchDetails:i,reset:r}},JMi=(t,e)=>{const[n,o]=te.useState({circuitJson:null,error:null,isLoading:!1});return te.useEffect(()=>{if(!t||!bln(t)){o({circuitJson:null,error:null,isLoading:!1});return}let i=!1;return o({circuitJson:null,error:null,isLoading:!0}),kMi(t,e).then(r=>{i||o({circuitJson:r,error:null,isLoading:!1})}).catch(r=>{i||o({circuitJson:null,error:r instanceof Error?r.message:"Failed to load footprint preview",isLoading:!1})}),()=>{i=!0}},[t,e]),n},WMi=async(t,e)=>{const n={"Content-Type":"application/json"};e&&(n.Authorization=`Bearer ${e}`);const o=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:n,body:JSON.stringify({query:t})});if(!o.ok)throw new Error(`tscircuit registry error: ${o.status}`);return(await o.json()).packages??[]},jMi=({sessionToken:t})=>{const[e,n]=te.useState([]),[o,i]=te.useState(!1),[r,s]=te.useState(null),[a,A]=te.useState(!1),c=te.useCallback(async g=>{const u=g.trim();if(!u)return[];i(!0),s(null);try{const d=(await WMi(u,t)).map(m=>({source:"tscircuit.com",package:m}));return n(d),d}catch(h){return console.error("Error searching tscircuit packages",h),n([]),s(h instanceof Error?h.message:"Failed to search tscircuit packages"),[]}finally{i(!1),A(!0)}},[t]),l=te.useCallback(()=>{n([]),i(!1),s(null),A(!1)},[]);return{results:e,isSearching:o,error:r,hasSearched:a,search:c,reset:l}},qMi=t=>{const e=/^C(\d+)$/i.exec(t.trim());if(!e)return null;const n=Number(e[1]);if(!Number.isSafeInteger(n))return null;const o=`C${e[1]}`;return{source:"jlcpcb",component:{lcscId:n,manufacturer:o,partNumber:o,description:"Import directly from EasyEDA; stock and availability are unknown",package:"",isDirectLookup:!0}}},Pln=(t,e)=>{const n=qMi(t);return n?e.some(i=>i.component.partNumber.toUpperCase()===n.component.partNumber)?e:[n,...e]:e},XMi=t=>{const e=t.trim();return/^C\d+/i.test(e)?e.replace(/^C/i,""):e},$Mi=()=>{const[t,e]=te.useState([]),[n,o]=te.useState(!1),[i,r]=te.useState(null),[s,a]=te.useState(!1),A=te.useCallback(async l=>{const g=XMi(l);if(!g)return[];o(!0),r(null);try{const u=await Gwi(g,10),h=Pln(l,u.map(d=>({source:"jlcpcb",component:Ywi(d)})));return e(h),h}catch(u){console.error("Error searching JLCPCB components",u);const h=Pln(l,[]);return e(h),r(h.length>0?null:u instanceof Error?u.message:"Failed to search JLCPCB components"),h}finally{o(!1),a(!0)}},[]),c=te.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},ZMi=()=>{const[t,e]=te.useState([]),[n,o]=te.useState(!1),[i,r]=te.useState(null),[s,a]=te.useState(!1),A=te.useCallback(async l=>{const g=l.trim();if(!g)return[];o(!0),r(null);try{const h=(await DMi(g,20)).map(d=>({source:"kicad",footprint:NMi(d)}));return e(h),h}catch(u){return console.error("Error searching KiCad footprints",u),e([]),r(u instanceof Error?u.message:"Failed to search KiCad footprints"),[]}finally{o(!1),a(!0)}},[]),c=te.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},eDi=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:e,onKicadStringSelected:n})=>{const o=[];return t&&o.push("tscircuit.com"),e&&o.push("jlcpcb"),n&&o.push("kicad"),o},tDi=({isOpen:t,onClose:e,jlcpcbProxyRequestHeaders:n,onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r,jlcpcbProxyApiBase:s,tscircuitSessionToken:a})=>{x$();const A=te.useMemo(()=>eDi({onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r}),[o,i,r]),c=A.length>0,l=A.length===1,[g,u]=te.useState(A[0]??"tscircuit.com"),[h,d]=te.useState(""),[m,p]=te.useState(null),{results:_,isSearching:f,error:I,hasSearched:C,search:y,reset:x}=jMi({sessionToken:a}),{results:E,isSearching:B,error:b,hasSearched:Q,search:w,reset:D}=$Mi(),{results:k,isSearching:T,error:H,hasSearched:G,search:K,reset:Y}=ZMi(),{details:q,isLoading:ee,fetchDetails:j,reset:J}=zMi(),[ie,oe]=te.useState(null),[ne,le]=te.useState(!1),[ge,_e]=te.useState("pcb"),[ce,Ie]=te.useState(null),[he,Ce]=te.useState(!1),we=te.useMemo(()=>({jlcpcb:{headers:n,apiBase:s}}),[s,n]),{circuitJson:ve,error:pe,isLoading:Pe}=JMi(m,we),Me=bln(m);te.useEffect(()=>{Ie(null)},[m]);const Qe=te.useCallback(()=>{x(),D(),Y(),p(null)},[D,Y,x]);te.useEffect(()=>{t||(Qe(),d(""),le(!1),oe(null),Ie(null))},[t,Qe]),te.useEffect(()=>{d(""),p(null),g==="tscircuit.com"?x():g==="jlcpcb"?D():g==="kicad"&&Y()},[g,D,Y,x]);const Oe=je=>{p(je),oe(je),_e("pcb"),le(!0),J();const ht=je.package.org_owner_tscircuit_handle,Bt=je.package.unscoped_name;if(ht&&Bt){const Ct=Bt.split("/").pop()??Bt;j(ht,Ct)}},Ne=async()=>{h.trim()&&(p(null),g==="tscircuit.com"?await y(h):g==="jlcpcb"?await w(h):g==="kicad"&&await K(h))},Se=async je=>{try{if(Ie(null),Ce(!0),je.source==="kicad"){if(!o)throw new Error("KiCad handler not provided");await o({result:je,footprint:je.footprint.qualifiedName})}else if(je.source==="jlcpcb"){if(!r)throw new Error("JLCPCB handler not provided");const ht=await Uwi(je.component.partNumber,{headers:n,apiBase:s});await r({result:je,tsx:ht})}else if(je.source==="tscircuit.com"){if(!i)throw new Error("tscircuit package handler not provided");const ht=je.package.org_owner_tscircuit_handle,Bt=je.package.unscoped_name;if(!ht||!Bt)throw new Error("Missing package metadata");const Ct=Bt.split("/").pop()??Bt,Ht=`@tsci/${ht}.${Ct}`;await i({result:je,fullPackageName:Ht})}return!0}catch(ht){return console.error("Failed to import component",ht),Ie(ht instanceof Error?ht.message:"Failed to import component"),!1}finally{Ce(!1)}};let Le=[],ye=!1,ke=null,Ye=!1;g==="tscircuit.com"?(Le=_,ye=f,ke=I,Ye=C):g==="jlcpcb"?(Le=E,ye=B,ke=b,Ye=Q):g==="kicad"&&(Le=k,ye=T,ke=H,Ye=G);const $e=async()=>{if(!m)return;await Se(m)&&(e(),Qe(),d(""))},st=je=>{je||e()},it=je=>{le(je),je||oe(null)};return U.jsxs(OR,{open:t,onOpenChange:st,children:[U.jsxs(ZP,{style:{width:"calc(100vw - 2rem)",maxWidth:Me?"min(1120px, calc(100vw - 2rem))":"min(672px, calc(100vw - 2rem))",zIndex:vln.importComponentDialog},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-overflow-x-hidden rf-flex rf-flex-col",children:[U.jsxs(ew,{children:[U.jsxs(tw,{className:"rf-text-lg sm:rf-text-xl",children:["Import ",l?kme[g].label:""," ","Component"]}),U.jsx(GR,{className:"rf-text-sm",children:c?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),c?U.jsxs(kMe,{value:g,onValueChange:je=>u(je),className:"rf-min-w-0 rf-w-full",children:[!l&&U.jsx(z0e,{className:"rf-flex rf-w-full rf-gap-2",children:A.map(je=>U.jsx(Y6,{value:je,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:kme[je].label},je))}),U.jsxs("div",{className:"rf-min-w-0",style:Me?{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(360px, 0.95fr)",gap:"1.5rem",alignItems:"start"}:void 0,children:[U.jsxs("div",{className:"rf-min-w-0",children:[U.jsx(FMi,{query:h,placeholder:kme[g].placeholder,isSearching:ye,onQueryChange:d,onSubmit:Ne}),U.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-overflow-x-hidden rf-border rf-rounded-md rf-min-w-0",children:ye?U.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[U.jsx(rE,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),U.jsx("p",{children:"Searching..."})]}):Le.length>0?U.jsx(UMi,{results:Le,selected:m,onSelect:p,onShowDetails:g==="tscircuit.com"?Oe:void 0}):U.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:ke?`Error: ${ke}`:Ye?kme[g].emptyMessage:"Enter a search term to find components"})})]}),Me?U.jsx("div",{className:"rf-mt-4",children:U.jsx(KMi,{circuitJson:ve,error:pe,isLoading:Pe,height:325})}):null]})]}):null,ce?U.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:ce}):null,U.jsxs(PY,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[U.jsx(gA,{variant:"outline",onClick:e,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),U.jsx(gA,{onClick:$e,disabled:!m||he,className:"rf-order-1 sm:rf-order-2",children:he?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),U.jsx(VMi,{packageResult:ie,isOpen:ne,onOpenChange:it,isLoading:ee,details:q,previewTab:ge,onPreviewTabChange:je=>_e(je),isSubmitting:he,onImport:()=>{ie&&Se(ie).then(je=>{je&&(le(!1),e(),Qe(),d(""))})}})]})},nDi=t=>{const e=t.match(/export const (\w+) =/);if(!e)throw new Error("Could not determine component name from TSX contents");return e[1]},wln=t=>{const e=od(s=>s.pushEvent),n=od(s=>s.upsertFile),o=async({result:s,fullPackageName:a})=>{const c=s.package.unscoped_name??s.package.name;await ia.promise(e({event_type:"INSTALL_PACKAGE",full_package_name:a}),{loading:`Requesting install for "${c}"`,success:`Install requested for "${c}"`,error:l=>`Failed to request install: ${l instanceof Error?l.message:String(l)}`})},i=async({footprint:s})=>{await ia.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:a=>`Failed to copy footprint: ${a instanceof Error?a.message:String(a)}`})},r=async({result:s,tsx:a})=>{const c=`imports/${nDi(a)}.tsx`;await ia.promise(n(c,a),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${c}"`,error:l=>`Failed to import component: ${l instanceof Error?l.message:String(l)}`})};return U.jsx(tDi,{...t,onTscircuitPackageSelected:o,onKicadStringSelected:i,onJlcpcbComponentTsxLoaded:r})};wln.displayName="ImportComponentDialogForCli";const oDi=async({circuitJson:t,projectName:e})=>{const{convertCircuitJsonToAltiumZip:n}=await Promise.resolve().then(()=>Qnr),o=await n(t,e);return new Blob([new Uint8Array(o)],{type:"application/zip"})},iDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const n=await oDi({circuitJson:t,projectName:e});pE(n,{fileName:`${e}_altium_project.zip`})})(),{loading:"Generating Altium project...",success:"Altium project ZIP ready",error:n=>`Failed to generate Altium project: ${n instanceof Error?n.message:String(n)}`})};var OJe={exports:{}},Mln;function rDi(){return Mln||(Mln=1,(function(t,e){var n={env:{},version:""};(function(o){t.exports=o()})(function(){return(function o(i,r,s){function a(l,g){if(!r[l]){if(!i[l]){var u=typeof l8=="function"&&l8;if(!g&&u)return u(l,!0);if(A)return A(l,!0);var h=new Error("Cannot find module '"+l+"'");throw h.code="MODULE_NOT_FOUND",h}var d=r[l]={exports:{}};i[l][0].call(d.exports,function(m){var p=i[l][1][m];return a(p||m)},d,d.exports,o,i,r,s)}return r[l].exports}for(var A=typeof l8=="function"&&l8,c=0;c<s.length;c++)a(s[c]);return a})({1:[function(o,i,r){var s=o("./utils"),a=o("./support"),A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(c){for(var l,g,u,h,d,m,p,_=[],f=0,I=c.length,C=I,y=s.getTypeOf(c)!=="string";f<c.length;)C=I-f,u=y?(l=c[f++],g=f<I?c[f++]:0,f<I?c[f++]:0):(l=c.charCodeAt(f++),g=f<I?c.charCodeAt(f++):0,f<I?c.charCodeAt(f++):0),h=l>>2,d=(3&l)<<4|g>>4,m=1<C?(15&g)<<2|u>>6:64,p=2<C?63&u:64,_.push(A.charAt(h)+A.charAt(d)+A.charAt(m)+A.charAt(p));return _.join("")},r.decode=function(c){var l,g,u,h,d,m,p=0,_=0,f="data:";if(c.substr(0,f.length)===f)throw new Error("Invalid base64 input, it looks like a data url.");var I,C=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===A.charAt(64)&&C--,c.charAt(c.length-2)===A.charAt(64)&&C--,C%1!=0)throw new Error("Invalid base64 input, bad content length.");for(I=a.uint8array?new Uint8Array(0|C):new Array(0|C);p<c.length;)l=A.indexOf(c.charAt(p++))<<2|(h=A.indexOf(c.charAt(p++)))>>4,g=(15&h)<<4|(d=A.indexOf(c.charAt(p++)))>>2,u=(3&d)<<6|(m=A.indexOf(c.charAt(p++))),I[_++]=l,d!==64&&(I[_++]=g),m!==64&&(I[_++]=u);return I}},{"./support":30,"./utils":32}],2:[function(o,i,r){var s=o("./external"),a=o("./stream/DataWorker"),A=o("./stream/Crc32Probe"),c=o("./stream/DataLengthProbe");function l(g,u,h,d,m){this.compressedSize=g,this.uncompressedSize=u,this.crc32=h,this.compression=d,this.compressedContent=m}l.prototype={getContentWorker:function(){var g=new a(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),u=this;return g.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new a(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},l.createWorkerFrom=function(g,u,h){return g.pipe(new A).pipe(new c("uncompressedSize")).pipe(u.compressWorker(h)).pipe(new c("compressedSize")).withStreamInfo("compression",u)},i.exports=l},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(o,i,r){var s=o("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=o("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(o,i,r){var s=o("./utils"),a=(function(){for(var A,c=[],l=0;l<256;l++){A=l;for(var g=0;g<8;g++)A=1&A?3988292384^A>>>1:A>>>1;c[l]=A}return c})();i.exports=function(A,c){return A!==void 0&&A.length?s.getTypeOf(A)!=="string"?(function(l,g,u,h){var d=a,m=h+u;l^=-1;for(var p=h;p<m;p++)l=l>>>8^d[255&(l^g[p])];return-1^l})(0|c,A,A.length,0):(function(l,g,u,h){var d=a,m=h+u;l^=-1;for(var p=h;p<m;p++)l=l>>>8^d[255&(l^g.charCodeAt(p))];return-1^l})(0|c,A,A.length,0):0}},{"./utils":32}],5:[function(o,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(o,i,r){var s=null;s=typeof Promise<"u"?Promise:o("lie"),i.exports={Promise:s}},{lie:37}],7:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=o("pako"),A=o("./utils"),c=o("./stream/GenericWorker"),l=s?"uint8array":"array";function g(u,h){c.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=h,this.meta={}}r.magic="\b\0",A.inherits(g,c),g.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(A.transformTo(l,u.data),!1)},g.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(h){u.push({data:h,meta:u.meta})}},r.compressWorker=function(u){return new g("Deflate",u)},r.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(o,i,r){function s(d,m){var p,_="";for(p=0;p<m;p++)_+=String.fromCharCode(255&d),d>>>=8;return _}function a(d,m,p,_,f,I){var C,y,x=d.file,E=d.compression,B=I!==l.utf8encode,b=A.transformTo("string",I(x.name)),Q=A.transformTo("string",l.utf8encode(x.name)),w=x.comment,D=A.transformTo("string",I(w)),k=A.transformTo("string",l.utf8encode(w)),T=Q.length!==x.name.length,H=k.length!==w.length,G="",K="",Y="",q=x.dir,ee=x.date,j={crc32:0,compressedSize:0,uncompressedSize:0};m&&!p||(j.crc32=d.crc32,j.compressedSize=d.compressedSize,j.uncompressedSize=d.uncompressedSize);var J=0;m&&(J|=8),B||!T&&!H||(J|=2048);var ie=0,oe=0;q&&(ie|=16),f==="UNIX"?(oe=798,ie|=(function(le,ge){var _e=le;return le||(_e=ge?16893:33204),(65535&_e)<<16})(x.unixPermissions,q)):(oe=20,ie|=(function(le){return 63&(le||0)})(x.dosPermissions)),C=ee.getUTCHours(),C<<=6,C|=ee.getUTCMinutes(),C<<=5,C|=ee.getUTCSeconds()/2,y=ee.getUTCFullYear()-1980,y<<=4,y|=ee.getUTCMonth()+1,y<<=5,y|=ee.getUTCDate(),T&&(K=s(1,1)+s(g(b),4)+Q,G+="up"+s(K.length,2)+K),H&&(Y=s(1,1)+s(g(D),4)+k,G+="uc"+s(Y.length,2)+Y);var ne="";return ne+=`
|
|
5587
|
+
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),h=document.createElement("a");h.href=u,h.download=`${c}.test.ts`,h.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.getSolverName()}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return U.jsxs("div",{className:`relative ${e}`,ref:i,children:[U.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.getSolverName()}`,children:t.getSolverName()}),n&&U.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),U.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},Fcn=t=>t.activeSubSolver?[t,...Fcn(t.activeSubSolver)]:[t],CPi=({solver:t})=>{const e=Fcn(t);return U.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>U.jsxs("div",{className:"flex items-center",children:[o>0&&U.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),U.jsx(IPi,{solver:n})]},n.getSolverName()))})},yPi=({solver:t,triggerRender:e,animationSpeed:n=25,renderer:o,onRendererChange:i,onAnimationSpeedChange:r,onDownloadVisualization:s,onSolverStarted:a,onSolverCompleted:A})=>{const[c,l]=te.useReducer(B=>!B,!1),g=te.useRef(void 0),u=te.useRef(null),h="solver-debugger-last-iteration",[d,m]=te.useState(null),p=te.useRef(null),_=te.useMemo(()=>[{label:"Slow",value:250,description:"250ms"},{label:"Normal",value:100,description:"100ms"},{label:"Fast",value:10,description:"10ms"},{label:"Fast (2x)",value:5,description:"5ms"},{label:"Fast (10x)",value:1,description:"1ms"},{label:"Fast 20x",value:.5,description:"2 steps / 1ms"},{label:"Fast 100x",value:.1,description:"10 steps / 1ms"}],[]),f=()=>{const B=Math.max(1,n),b=n<1?Math.round(1/n):1;g.current=setInterval(()=>{if(t.solved||t.failed){g.current&&(clearInterval(g.current),g.current=void 0),l(),e(),A&&t.solved&&A(t);return}for(let Q=0;Q<b&&!(t.solved||t.failed);Q++)t.step();e()},B)},I=()=>{g.current&&(clearInterval(g.current),g.current=void 0)},C=()=>{!t.solved&&!t.failed&&(t.step(),e())},y=()=>{!t.solved&&!t.failed&&(a&&a(t),t.solve(),e(),A&&A(t))},x=()=>{c?(I(),l()):(l(),f())},E=()=>{if(t.solved||t.failed||c)return;u.current===null&&typeof window<"u"&&(u.current=window.localStorage.getItem(h));const B=window.prompt("Step until which iteration?",u.current??`${t.iterations}`);if(B===null)return;u.current=B,typeof window<"u"&&window.localStorage.setItem(h,B);const b=Number(B);if(!Number.isFinite(b)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<b&&!t.solved&&!t.failed;)t.step();e(),t.solved&&A&&A(t)};return te.useEffect(()=>()=>{I()},[]),te.useEffect(()=>{(t.solved||t.failed)&&c&&(I(),l())},[t.solved,t.failed,c]),te.useEffect(()=>{c&&(I(),f())},[n,c]),te.useEffect(()=>{if(typeof document>"u")return;const B=b=>{p.current&&!p.current.contains(b.target)&&m(null)};return document.addEventListener("mousedown",B),()=>{document.removeEventListener("mousedown",B)}},[]),U.jsxs("div",{className:"space-y-2 p-2 border-b",children:[U.jsx("div",{className:"flex items-center",children:U.jsxs("div",{className:"flex items-center gap-2",ref:p,children:[U.jsxs("div",{className:"flex h-9 items-center space-x-1 rounded-md border border-slate-200 bg-white p-1 shadow-sm",children:[U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="renderer"?null:"renderer"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="renderer"?"open":"closed",children:"Renderer"}),d==="renderer"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[10rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:["vector","canvas"].map(B=>U.jsxs("button",{type:"button",onClick:()=>{i(B),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:[B==="vector"?"Vector":"Canvas",o===B&&U.jsx("span",{className:"ml-auto text-xs text-slate-500",children:"✓"})]},B))})]}),U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="debug"?null:"debug"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="debug"?"open":"closed",children:"Debug"}),d==="debug"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[12rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:U.jsx("button",{type:"button",onClick:()=>{s(),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:"Download Visualization"})})]}),U.jsxs("div",{className:"relative",children:[U.jsx("button",{type:"button",onClick:()=>m(d==="animation"?null:"animation"),className:"flex select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100","data-state":d==="animation"?"open":"closed",children:"Animation"}),d==="animation"&&U.jsx("div",{className:"absolute left-0 z-50 mt-1 min-w-[12rem] rounded-md border border-slate-200 bg-white p-1 text-slate-950 shadow-md",children:_.map(B=>U.jsxs("button",{type:"button",onClick:()=>{r(B.value),m(null)},className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm hover:bg-slate-100",children:[B.label,U.jsx("span",{className:"ml-auto text-xs text-slate-500",children:B.description}),n===B.value&&U.jsx("span",{className:"ml-2 text-xs text-slate-500",children:"✓"})]},B.value))})]})]}),U.jsx(CPi,{solver:t})]})}),U.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[U.jsx("button",{onClick:C,disabled:t.solved||t.failed||c,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),U.jsx("button",{onClick:y,disabled:t.solved||t.failed||c,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),U.jsx("button",{onClick:x,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${c?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:c?"Stop":"Animate"}),U.jsx("button",{onClick:E,disabled:t.solved||t.failed||c,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),U.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&U.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),t.solved&&U.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&U.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&U.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},xPi=t=>t!==null&&"pipelineDef"in t&&Array.isArray(t.pipelineDef),EPi=(t,e,n)=>{const o=t.currentPipelineStageIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},BPi=(t,e)=>{const o=t.pipelineDef[e].solverName,i=EPi(t,e),r=t[o],s=t.firstIterationOfStage?.[o]??(e===t.currentPipelineStageIndex?t.iterations:null),a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],h=u?t.firstIterationOfStage?.[u.solverName]:void 0;h!==void 0&&s!==null?A=h-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnStage?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},SPi=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return U.jsx("span",{className:`font-medium ${e[t]}`,children:t})},bPi=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return U.jsxs("div",{className:"flex items-center gap-2",children:[U.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:U.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),U.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},Lcn=t=>{if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint"||t==null)return String(t);if(typeof t=="object")try{return JSON.stringify(t)}catch{return String(t)}return String(t)},QPi=t=>Object.entries(t).map(([e,n])=>`${e}: ${Lcn(n)}`).join(", "),vPi=({stats:t})=>{if(!t||Object.keys(t).length===0)return U.jsx("span",{children:"-"});const e=Object.entries(t),n=QPi(t);return U.jsxs("details",{className:"cursor-pointer",children:[U.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),U.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>U.jsxs("div",{children:[o,": ",Lcn(i)]},o))})]})},lJe=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(lJe);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=lJe(o));return e},PPi=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=lJe(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},wPi=({expanded:t})=>U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:`w-4 h-4 transition-transform duration-200 ${t?"rotate-90":""}`,children:U.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})}),Hcn=t=>{let e=t;for(;e.activeSubSolver;)e=e.activeSubSolver;return e},Ocn=({solver:t,onStepUntilPhase:e,onDownloadInput:n,isNested:o=!1,indentLevel:i=0,triggerRender:r})=>{const[s,a]=te.useState(new Set),A=t.pipelineDef.map((p,_)=>BPi(t,_)),c=p=>{a(_=>{const f=new Set(_);return f.has(p)?f.delete(p):f.add(p),f})},l=p=>{e?.(p)},g=p=>{p.solverInstance&&(n?n(p.solverInstance,p.name):PPi(p.solverInstance,p.name))},u=p=>`${(p/1e3).toFixed(2)}s`,h=()=>{if(!t.solved&&!t.failed){const p=t.activeSubSolver;for(;!t.solved&&!t.failed&&(t.step(),!(t.activeSubSolver&&t.activeSubSolver!==p)););r?.()}},d=()=>{if(!t.solved&&!t.failed){const p=Hcn(t);for(;!t.solved&&!t.failed&&(t.step(),Hcn(t)===p););r?.()}},m=i*24;return U.jsxs("div",{className:o?"":"border-t border-gray-200",children:[!o&&U.jsxs("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200 flex items-center justify-between",children:[U.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Stages"}),U.jsxs("div",{className:"flex gap-2",children:[U.jsx("button",{onClick:d,disabled:t.solved||t.failed,className:"bg-indigo-500 hover:bg-indigo-600 disabled:bg-gray-300 disabled:cursor-not-allowed cursor-pointer text-white px-3 py-1 rounded text-sm",children:"Next Solver"}),U.jsx("button",{onClick:h,disabled:t.solved||t.failed,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 disabled:cursor-not-allowed cursor-pointer text-white px-3 py-1 rounded text-sm",children:"Next Stage"})]})]}),U.jsx("div",{className:"overflow-x-auto",children:U.jsxs("table",{className:"w-full text-sm",children:[!o&&U.jsx("thead",{children:U.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stage"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),U.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",U.jsx("sub",{children:"0"})]}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),U.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),U.jsx("tbody",{children:A.map(p=>{const _=xPi(p.solverInstance),f=s.has(p.name);return U.jsxs(ws.Fragment,{children:[U.jsxs("tr",{className:`border-b border-gray-100 ${p.status==="In Progress"?"bg-yellow-50":""}`,children:[U.jsx("td",{className:"px-4 py-2",children:U.jsxs("div",{className:"flex items-center gap-2",style:{paddingLeft:m},children:[_?U.jsx("button",{onClick:()=>c(p.name),className:"text-gray-500 hover:text-gray-700",title:f?"Collapse":"Expand",children:U.jsx(wPi,{expanded:f})}):U.jsx("span",{className:"w-4"}),U.jsx("span",{className:"text-gray-400 w-6",children:String(p.index+1).padStart(2,"0")}),U.jsx("button",{onClick:()=>l(p.name),disabled:p.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${p.name} completes`,children:U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:U.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),U.jsx("span",{className:"font-medium text-gray-900",children:p.name})]})}),U.jsx("td",{className:"px-4 py-2",children:U.jsx(SPi,{status:p.status})}),U.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:p.firstIteration!==null?p.firstIteration:""}),U.jsx("td",{className:"px-4 py-2 text-gray-600",children:p.iterations}),U.jsx("td",{className:"px-4 py-2",children:U.jsx(bPi,{progress:p.progress})}),U.jsx("td",{className:"px-4 py-2 text-gray-600",children:u(p.timeSpent)}),U.jsx("td",{className:"px-4 py-2 text-gray-500",children:U.jsx(vPi,{stats:p.stats})}),U.jsx("td",{className:"px-4 py-2",children:p.solverInstance?U.jsxs("button",{onClick:()=>g(p),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${p.name}`,children:[U.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:U.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),U.jsx("span",{children:"Input"})]}):null})]}),_&&f&&U.jsx("tr",{children:U.jsx("td",{colSpan:8,className:"p-0",children:U.jsx(Ocn,{solver:p.solverInstance,onStepUntilPhase:e,onDownloadInput:n,isNested:!0,indentLevel:i+1,triggerRender:r})})})]},p.name)})})]})})]})};function MPi({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(p,_)=>{typeof p=="number"&&(p<s&&(s=p),p>A&&(A=p)),typeof _=="number"&&(_<a&&(a=_),_>c&&(c=_))};for(const p of e)l(p.x,p.y);for(const p of n){const _=p.points??[];for(const f of _)l(f.x,f.y)}for(const p of o){const _=p.x??0,f=p.y??0,I=p.width??0,C=p.height??0;l(_,f),l(_+I,f+C)}for(const p of i){const _=p.x??0,f=p.y??0,I=p.radius??1;l(_-I,f-I),l(_+I,f+I)}for(const p of r)l(p.x,p.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,h=a-g,d=Math.max(1,A-s+2*g),m=Math.max(1,c-a+2*g);return U.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${h} ${d} ${m}`,role:"img","aria-label":"Graphics fallback",children:[o.map((p,_)=>U.jsx("rect",{x:p.x??0,y:p.y??0,width:p.width??0,height:p.height??0,fill:"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1},`rect-${_}`)),n.map((p,_)=>U.jsx("polyline",{fill:"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1,points:(p.points??[]).map(f=>`${f.x??0},${f.y??0}`).join(" ")},`line-${_}`)),i.map((p,_)=>U.jsx("circle",{cx:p.x??0,cy:p.y??0,r:p.radius??1.5,fill:p.fillColor??"none",stroke:p.strokeColor??"black",strokeWidth:p.strokeWidth??1},`circle-${_}`)),e.map((p,_)=>U.jsx("circle",{cx:p.x??0,cy:p.y??0,r:p.radius??1.5,fill:p.color??"black"},`point-${_}`)),r.map((p,_)=>U.jsx("text",{x:p.x??0,y:p.y??0,fontSize:p.fontSize??10,fill:p.color??"black",children:p.text??""},`text-${_}`))]})}var DPi=class extends ws.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}},NPi=({solver:t,createSolver:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=te.useReducer(f=>f+1,0),[a]=te.useState(()=>{if(e)return e();if(!t)throw new Error("GenericSolverDebugger requires solver or createSolver");return t}),[A,c]=te.useState(()=>typeof window>"u"?"vector":window.localStorage.getItem("solver-utils-renderer")==="canvas"?"canvas":"vector"),[l,g]=te.useState(n),u=te.useMemo(()=>{try{return a.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(f){return console.error("Visualization error:",f),{points:[],lines:[],rects:[],circles:[]}}},[a,r]),h=te.useMemo(()=>(u.rects?.length||0)===0&&(u.lines?.length||0)===0&&(u.points?.length||0)===0&&(u.circles?.length||0)===0,[u]);te.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const f=document.createElement("script");f.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(f)}},[]),te.useEffect(()=>{g(n)},[n]);const d=a.pipelineDef!==void 0,m=f=>{const I=a;if(!a.solved&&!a.failed){for(;!a.solved&&!a.failed&&I.currentPipelineStageIndex<=I.pipelineDef.findIndex(C=>C.solverName===f);)a.step();s()}},p=()=>{const f=JSON.stringify(u,null,2),I=new Blob([f],{type:"application/json"}),C=URL.createObjectURL(I),y=document.createElement("a");y.download="visualization.json",y.href=C,document.body.appendChild(y),y.click(),document.body.removeChild(y),URL.revokeObjectURL(C)},_=f=>{c(f),typeof window<"u"&&window.localStorage.setItem("solver-utils-renderer",f)};return U.jsxs("div",{children:[U.jsx(yPi,{solver:a,triggerRender:s,animationSpeed:l,renderer:A,onRendererChange:_,onAnimationSpeedChange:g,onDownloadVisualization:p,onSolverStarted:o,onSolverCompleted:i}),h?U.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):U.jsx(DPi,{fallback:U.jsx(MPi,{graphics:u}),children:A==="canvas"?U.jsx(fPi,{graphics:u}):U.jsx(mPi,{graphics:u})}),d&&U.jsx(Ocn,{solver:a,onStepUntilPhase:m,triggerRender:s})]})};const RPi=()=>{te.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},TPi=1e3,pE=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},TPi)},gJe=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},kPi=t=>{const e=t.solverConstructorArgs??[t.solverParams];if(t.solverName!=="AutoroutingPipelineSolver7_MultiGraph"||e.length!==1)return e;const[{input:n,options:o}]=e;return[n,o]},y7="https://github.com/tscircuit/tscircuit-autorouter/issues/new",Gcn="https://github.com/tscircuit/copper-pour-solver/issues/new",Ycn="https://github.com/tscircuit/calculate-packing/issues/new",FPi="https://github.com/tscircuit/matchpack/issues/new",Ucn="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",LPi={PackSolver2:Ycn,LayoutPipelineSolver:FPi,AutoroutingPipelineSolver:y7,AssignableAutoroutingPipeline2:y7,AssignableAutoroutingPipeline3:y7,AutoroutingPipeline1_OriginalUnravel:y7,AutoroutingPipelineSolver3_HgPortPointPathing:y7,AutoroutingPipelineSolver4:y7,AutoroutingPipelineSolver5:y7,AutoroutingPipelineSolver7_MultiGraph:y7,AutoroutingPipelineSolver8:y7,CopperPourPipelineSolver:Gcn,SchematicTracePipelineSolver:Ucn},HPi=t=>t.toLowerCase().includes("pack")?mrn:t.toLowerCase().includes("rout")?_rn:yxi,Kcn=t=>{const e=LPi[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?y7:n.includes("schematic")&&n.includes("trace")?Ucn:n.includes("copperpour")?Gcn:n.includes("pack")?Ycn:null},OPi=t=>`${gJe(`${t.componentName}-${t.solverName}`)}-solver-input.json`,Vcn=t=>{pE(JSON.stringify(t.solverParams,null,2),{fileName:OPi(t),mimeType:"application/json"})},GPi=({solverEvent:t})=>{const e=Kcn(t.solverName);return U.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[U.jsxs(gA,{type:"button",variant:"outline",size:"sm",onClick:()=>Vcn(t),children:[U.jsx(LX,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?U.jsx(gA,{asChild:!0,variant:"outline",size:"sm",children:U.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[U.jsx(ghe,{className:"rf-w-4 rf-h-4"}),"Report"]})}):U.jsxs(gA,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[U.jsx(ghe,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},YPi=({solverEvent:t})=>{const e=Kcn(t.solverName);return e?U.jsx(gA,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:U.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:U.jsx(ghe,{className:"rf-w-4 rf-h-4"})})}):U.jsx(gA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:U.jsx(ghe,{className:"rf-w-4 rf-h-4"})})},UPi=({solverEvents:t=[]})=>{const[e,n]=te.useState(null);RPi();const o=te.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=te.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=te.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=Yve[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(Yve).join(", ")}`,classFound:!1};try{return{instance:new a(...kPi(r)),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?U.jsx("div",{className:"rf-p-4",children:U.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:U.jsxs("div",{className:"rf-p-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),U.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):U.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[U.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[U.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return U.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=HPi(A.solverName);return U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[U.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),U.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[U.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),U.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),U.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?U.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[U.jsx(GPi,{solverEvent:r}),U.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:U.jsx(iE,{fallback:U.jsx("div",{className:"rf-p-4",children:U.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),U.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:U.jsx(NPi,{solver:s.instance})})})]}):U.jsxs("div",{className:"rf-p-4",children:[U.jsxs("div",{className:"rf-mb-4",children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),U.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&U.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:U.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),U.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[U.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[U.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx(YPi,{solverEvent:r}),U.jsx(gA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>Vcn(r),children:U.jsx(LX,{className:"rf-w-4 rf-h-4"})})]})]}),U.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:U.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):U.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},KPi=["subcircuit_id","componentDisplayName","phaseName","routingPhaseIndex","phaseOrdinal","phaseCount","phaseStageIndex","phaseStageCount","connectionCount","obstacleCount","previousTraceCount","isReroutePhase","autorouterName","autorouterVersion","solverName","effort","cacheStatus"],VPi=["phaseOrdinal","routingPhaseIndex","phaseName","phaseStageIndex"];function zPi(t,e){let n=-1,o=-1;for(let i=t.length-1;i>=0;i--){const r=t[i];if(r.status!=="running"||r.subcircuit_id!==e.subcircuit_id||r.componentDisplayName!==e.componentDisplayName)continue;let s=0,a=!1;for(const A of VPi)if(!(r[A]===void 0||e[A]===void 0)){if(r[A]!==e[A]){a=!0;break}s++}!a&&s>o&&(n=i,o=s)}return n}function JPi(t,e){const n=Object.fromEntries(KPi.filter(s=>e[s]!==void 0).map(s=>[s,e[s]])),o=e.simpleRouteJson?structuredClone(e.simpleRouteJson):void 0,i=e.type==="autorouting:start"?-1:zPi(t,e),r={...i===-1?{id:`autorouting_phase_${t.length+1}`}:t[i],...n,status:e.type==="autorouting:start"?"running":e.type==="autorouting:end"?"complete":"error",...e.type==="autorouting:start"?{startSimpleRouteJson:o}:e.type==="autorouting:end"?{endSimpleRouteJson:o}:{errorSimpleRouteJson:o,error:e.error?{...e.error}:void 0}};return i===-1?[...t,r]:t.map((s,a)=>a===i?r:s)}const WPi=new Map([["custom","Custom"],["fanout","Fanout"],["single_layer_fanout","Single layer fanout"],["tscircuit_simplify","Simplify"]]),jPi=new Set(["tscircuit","default","auto","auto_local"]);function qPi(t){if(t==="FanoutSolver")return"Fanout";if(t==="AutoroutingPipelineSolver11_Simplification")return"Simplify";const e=t.match(/^AutoroutingPipeline(?:Solver)?(\d+)(?:_|$)/);if(e)return`Pipeline${e[1]}`;const n=t.match(/^AssignableAutoroutingPipeline(\d+)$/);return n?`Assignable${n[1]}`:t}function XPi(t){const e=t.autorouterName?.trim(),n=e?.replace(/-/g,"_"),o=n&&WPi.get(n);if(o)return o;if(n&&!jPi.has(n))return e;const i=t.solverName?.trim();if(i)return qPi(i);const r=t.autorouterVersion?.trim();if(r){const s=r.match(/^beta[_-]pipeline(\d+)$/);return s?`Pipeline${s[1]}`:r==="latest"?"default":r}return e?"default":"Unknown"}const uJe="#fbbf24";function $Pi(t){const e=t.endSimpleRouteJson?.traces??[],n=new Set(e.flatMap(i=>[i.pcb_trace_id,i.__replaces_pcb_trace_id].filter(r=>r!==void 0)));return[...(t.startSimpleRouteJson?.traces??[]).filter(i=>!n.has(i.pcb_trace_id)),...e]}function zcn(t){const e=new Map((t.startSimpleRouteJson?.traces??[]).map(n=>[n.pcb_trace_id,n]));return(t.endSimpleRouteJson?.traces??[]).filter(n=>{const o=e.get(n.pcb_trace_id);return!o||!!n.__replaces_pcb_trace_id&&n.__replaces_pcb_trace_id!==o.__replaces_pcb_trace_id||JSON.stringify(o.route)!==JSON.stringify(n.route)}).map(n=>n.pcb_trace_id)}function ZPi(t,e){return{outer_diameter:t.via_diameter??e.minViaPadDiameter??e.min_via_pad_diameter??e.minViaDiameter??.6,hole_diameter:t.via_hole_diameter??e.minViaHoleDiameter??e.min_via_hole_diameter??.3}}function Jcn(t,e){const n=[];for(const a of t.route)a.route_type==="wire"?n.push({...a,layer:a.layer}):a.route_type==="via"?n.push({route_type:"via",x:a.x,y:a.y,from_layer:a.from_layer,to_layer:a.to_layer,...ZPi(a,e)}):a.route_type==="through_obstacle"&&n.push({route_type:"through_pad",start:{...a.start},end:{...a.end},width:a.width,start_layer:a.from_layer,end_layer:a.to_layer,pcb_smtpad_id:a.circuitJsonMetadata?.pcb_smtpad_id,pcb_plated_hole_id:a.circuitJsonMetadata?.pcb_plated_hole_id});const o=a=>{let A=-1,c=Number.POSITIVE_INFINITY;return n.forEach((l,g)=>{if(l.route_type!=="wire")return;const u=Math.hypot(l.x-a.x,l.y-a.y);u<c&&(c=u,A=g)}),A},i=t.route.filter(a=>a.route_type==="jumper").map(a=>[o(a.start),o(a.end)].sort((A,c)=>A-c)).filter(([a,A])=>a>=0&&A>a).sort(([a],[A])=>a-A),r=[];let s=0;for(const[a,A]of i)a>=s&&r.push(n.slice(s,a+1)),s=Math.max(s,A);return s<n.length&&r.push(n.slice(s)),r}function ewi(t){const e=[],n=[],o=t.endSimpleRouteJson;if(!o)return{lines:e,circles:n};const i=new Set(zcn(t));for(const r of o.traces??[])if(i.has(r.pcb_trace_id))for(const s of Jcn(r,o)){let a;for(const A of s){if(A.route_type==="through_pad"){a={...A.end,layer:A.end_layer,width:A.width};continue}const c=A.route_type==="wire"?A.layer:A.from_layer;a&&a.layer===c&&(a.x!==A.x||a.y!==A.y)&&e.push({points:[{x:a.x,y:a.y},{x:A.x,y:A.y}],strokeWidth:A.route_type==="wire"?A.width:a.width,strokeColor:uJe,layer:c}),A.route_type==="via"&&n.push({center:{x:A.x,y:A.y},radius:A.outer_diameter/2,stroke:uJe,fill:"transparent"}),a={x:A.x,y:A.y,layer:A.route_type==="wire"?A.layer:A.to_layer,width:A.route_type==="wire"?A.width:a?.width??o.minTraceWidth}}}return{coordinateSystem:"cartesian",lines:e,circles:n}}function twi(t){const e=JSON.stringify(t);let n=2166136261;for(let o=0;o<e.length;o++)n=Math.imul(n^e.charCodeAt(o),16777619);return(n>>>0).toString(36)}const nwi=new Set(["pcb_trace","pcb_via","pcb_copper_pour","pcb_ground_plane","pcb_ground_plane_region","pcb_thermal_spoke","pcb_breakout_point"]);function owi(t,e,n){const o=n==="input"?e.startSimpleRouteJson??e.errorSimpleRouteJson:e.endSimpleRouteJson,i=t.filter(c=>!nwi.has(c.type)&&!c.type.endsWith("_error")&&!c.type.endsWith("_warning"));if(!o)return i;const r=n==="input"?o.traces??[]:$Pi(e),s=new Set(t.filter(c=>c.type==="source_trace").map(c=>c.source_trace_id)),a=["top",...Array.from({length:Math.max(0,o.layerCount-2)},(c,l)=>`inner${l+1}`),...o.layerCount>1?["bottom"]:[]],A=[];for(const c of r){const g=o.connections.find(h=>h.name===c.connection_name||h.source_trace_id===c.connection_name)?.source_trace_id??c.connection_name??"",u=Jcn(c,o);for(const[h,d]of u.entries()){const m={type:"pcb_trace",pcb_trace_id:`${e.id}_${n}_${c.pcb_trace_id}_${h}_${twi(d)}`,subcircuit_id:e.subcircuit_id??void 0,source_trace_id:s.has(g)?g:void 0,route:d};A.push(m);for(const[p,_]of d.entries()){if(_.route_type!=="via")continue;const f=a.indexOf(_.from_layer),I=a.indexOf(_.to_layer),C={type:"pcb_via",pcb_via_id:`${m.pcb_trace_id}_via_${p}`,pcb_trace_id:m.pcb_trace_id,subcircuit_id:e.subcircuit_id??void 0,x:_.x,y:_.y,outer_diameter:_.outer_diameter,hole_diameter:_.hole_diameter,layers:f>=0&&I>=0?a.slice(Math.min(f,I),Math.max(f,I)+1):[_.from_layer,_.to_layer]};A.push(C)}}}return[...i,...A]}const dJe=(t,e)=>t.phaseName||`Phase ${t.phaseOrdinal??e+1}`,Wcn=t=>t.componentDisplayName?.match(/name="([^"]+)"/)?.[1]?.replace(/^\./,"")||t.componentDisplayName||t.subcircuit_id||"Board",jcn=t=>t.startSimpleRouteJson??t.endSimpleRouteJson??t.errorSimpleRouteJson,iwi={is_showing_autorouting:!0,is_showing_rats_nest:!1,is_showing_drc_errors:!1,is_showing_drc_warnings:!1,is_showing_pcb_groups:!1},rwi=({circuitJson:t,phases:e=[],isRunning:n=!1})=>{const[o,i]=te.useState(null),[r,s]=te.useState("output"),[a,A]=te.useState(!0),[c,l]=te.useState(!1),g=te.useRef(null),[u,h]=te.useState(480),d=o?e.findIndex(T=>T.id===o.id&&jcn(T)===jcn(o)):-1,m=d<0?e.length-1:d,p=e[m],_=d<0,f=!!p?.endSimpleRouteJson,I=p?.startSimpleRouteJson??p?.errorSimpleRouteJson,C=!!I,y=r==="output"&&!f?"input":r==="input"&&!C?"output":r,x=y==="input"?I:p?.endSimpleRouteJson,E=te.useMemo(()=>!p||!x?null:owi(t??[],p,y),[t,p,x,y]),B=te.useMemo(()=>p&&y==="output"&&a?ewi(p):{lines:[],circles:[]},[p,y,a]);if(te.useLayoutEffect(()=>{const T=g.current;if(!T)return;const H=()=>h(Math.max(360,T.clientHeight));H();const G=new ResizeObserver(H);return G.observe(T),()=>G.disconnect()},[!!p]),!p)return U.jsxs("div",{className:"rf-flex rf-min-h-[400px] rf-flex-col rf-items-center rf-justify-center rf-gap-3 rf-p-8 rf-text-center",children:[U.jsx(_rn,{className:"rf-h-7 rf-w-7 rf-text-blue-500"}),U.jsx("h3",{className:"rf-text-base rf-font-medium",children:n?"Waiting for autorouting":"No autorouting captures"}),U.jsx("p",{className:"rf-max-w-md rf-text-sm rf-text-gray-500",children:n?"Phases appear as the circuit routes. Each capture includes its input and output on the PCB.":"Run a circuit with autorouting enabled to inspect its phases. A circuit JSON file alone does not include routing history."})]});const b=dJe(p,m),Q=p.status==="running"&&n,w=!f,D=I?.connections.length,k=E?.filter(T=>T.type==="pcb_trace").length??0;return U.jsxs("div",{className:"rf-flex rf-h-full rf-min-h-[620px] rf-flex-col rf-bg-white md:rf-flex-row","data-testid":"autorouting-explorer",children:[U.jsxs("aside",{className:"rf-flex rf-shrink-0 rf-flex-col rf-border-b rf-border-gray-200 md:rf-w-52 md:rf-border-b-0 md:rf-border-r","aria-label":"Routing phases",children:[U.jsxs("div",{className:"rf-flex rf-items-center rf-justify-between rf-px-3 rf-py-2 rf-text-xs rf-text-gray-500",children:[U.jsx("span",{children:"Routing phases"}),U.jsx("span",{children:e.length})]}),U.jsx("div",{className:"rf-flex rf-gap-1 rf-overflow-x-auto rf-px-1.5 rf-pb-1.5 md:rf-flex-col md:rf-overflow-x-hidden md:rf-overflow-y-auto",children:e.map((T,H)=>{const G=zcn(T).length,K=T.endSimpleRouteJson?`${G} ${G===1?"trace":"traces"} routed`:T.status==="error"?"Failed":T.status==="running"&&n?"Routing…":"No output";return U.jsxs("button",{type:"button","aria-pressed":H===m,title:`${Wcn(T)} · ${K}`,onClick:()=>i(T),className:ki("rf-flex rf-min-w-[192px] rf-items-start rf-gap-2 rf-rounded-md rf-border rf-px-2 rf-py-2 rf-text-left md:rf-min-w-0",H===m?"rf-border-blue-200 rf-bg-blue-50":"rf-border-transparent hover:rf-bg-gray-50"),children:[U.jsx("span",{className:ki("rf-flex rf-h-5 rf-w-5 rf-shrink-0 rf-items-center rf-justify-center rf-rounded-full rf-text-[11px]",H===m?"rf-bg-blue-600 rf-text-white":"rf-bg-gray-100 rf-text-gray-500"),children:H+1}),U.jsxs("span",{className:"rf-min-w-0 rf-flex-1",children:[U.jsxs("span",{className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx("span",{className:"rf-min-w-0 rf-flex-1 rf-truncate rf-text-xs rf-font-medium rf-leading-5 rf-text-gray-800",title:dJe(T,H),children:dJe(T,H)}),T.status==="complete"?U.jsx(US,{"aria-label":"Captured",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-text-green-600"}):T.status==="error"?U.jsx(dVe,{"aria-label":"Failed",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-text-red-500"}):n?U.jsx(rE,{"aria-label":"Routing",className:"rf-h-3 rf-w-3 rf-shrink-0 rf-animate-spin rf-text-blue-500"}):null]}),U.jsxs("span",{className:"rf-block rf-text-[11px] rf-leading-4 rf-text-gray-500",children:[XPi(T)," · ",K]})]})]},T.id)})})]}),U.jsxs("div",{className:"rf-flex rf-min-w-0 rf-flex-1 rf-flex-col",children:[U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-gap-3 rf-border-b rf-border-gray-200 rf-px-4 rf-py-3",children:[U.jsxs("h3",{className:"rf-mr-auto rf-flex rf-items-center rf-gap-2 rf-text-sm rf-font-medium",children:[b,U.jsxs("span",{className:"rf-text-xs rf-font-normal rf-text-gray-500",children:[m+1," of ",e.length]})]}),n&&U.jsx("button",{type:"button",onClick:()=>i(null),disabled:_,className:"rf-text-xs rf-text-blue-600 disabled:rf-text-gray-500",children:_?"Following latest":"Follow latest"}),U.jsx("div",{className:"rf-flex rf-rounded-md rf-bg-gray-100 rf-p-1","aria-label":"Phase snapshot",children:["input","output"].map(T=>U.jsx("button",{type:"button","aria-pressed":y===T,disabled:T==="input"?!C:!f,onClick:()=>s(T),className:ki("rf-rounded rf-px-3 rf-py-1 rf-text-xs disabled:rf-opacity-40",y===T?"rf-bg-white rf-text-gray-900 rf-shadow-sm":"rf-text-gray-500"),children:T==="input"?"Input":"Output"},T))})]}),U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-justify-between rf-gap-2 rf-px-4 rf-py-2 rf-text-xs rf-text-gray-600",children:[U.jsxs("label",{className:"rf-flex rf-items-center rf-gap-2",children:[U.jsx("input",{type:"checkbox",checked:a,disabled:y!=="output",onChange:T=>A(T.target.checked),className:"rf-accent-blue-600"}),U.jsx("span",{"aria-hidden":"true",className:"rf-inline-block rf-h-0.5 rf-w-3",style:{backgroundColor:uJe}}),"Highlight changes (all layers)"]}),U.jsxs("span",{children:[y==="input"?"Before this phase":"After this phase"," ","· ",k," traces"]})]}),w&&U.jsx("div",{className:ki("rf-border-y rf-px-4 rf-py-2 rf-text-xs",p.status==="error"?"rf-border-red-100 rf-bg-red-50 rf-text-red-700":"rf-border-blue-100 rf-bg-blue-50 rf-text-blue-700"),role:"status",children:p.status==="error"?`Routing failed: ${p.error?.message||"No output was captured."}`:Q?"Routing in progress. Showing captured input until output is available.":"No output was captured for this phase. Showing the available input."}),U.jsx("div",{ref:g,className:"rf-relative rf-min-h-[360px] rf-flex-1","data-testid":"autorouting-pcb",children:E?U.jsx(iJe,{circuitJson:E,height:u,allowEditing:!1,clickToInteractEnabled:!1,initialState:iwi,debugGraphics:B}):U.jsx("div",{className:"rf-p-6 rf-text-sm rf-text-gray-500",children:"No PCB snapshot available for this capture."})}),U.jsxs("div",{className:"rf-flex rf-flex-wrap rf-items-center rf-justify-between rf-gap-2 rf-border-t rf-border-gray-200 rf-px-4 rf-py-3 rf-text-xs rf-text-gray-500",children:[U.jsxs("span",{children:[D===void 0?"Input unavailable":`${D} input connections`,` · ${Wcn(p)}`]}),U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-4",children:[U.jsxs("button",{type:"button",disabled:!x,onClick:()=>pE(JSON.stringify(x,null,2),{fileName:`${p.id}-${y}.srj.json`,mimeType:"application/json"}),className:"rf-flex rf-items-center rf-gap-1 disabled:rf-opacity-40",children:[U.jsx(LX,{className:"rf-h-3 rf-w-3"}),"Download SRJ"]}),U.jsxs("button",{type:"button","aria-expanded":c,onClick:()=>l(!c),className:"rf-flex rf-items-center rf-gap-1",children:[U.jsx(MR,{className:ki("rf-h-3 rf-w-3",c&&"rf-rotate-90")}),"Inspect SRJ"]})]})]}),c&&U.jsx("pre",{className:"rf-m-0 rf-max-h-64 rf-overflow-auto rf-border-t rf-border-gray-200 rf-bg-gray-50 rf-p-4 rf-text-xs","aria-label":`${b} ${y} SRJ`,children:x?JSON.stringify(x,null,2):"No snapshot captured."})]})]})},qcn=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{te.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{AO.captureException(o)}catch{}}},[t,e]),te.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{AO.captureException(i,{error_type:o.type})}catch{}}},[n])},Xcn=t=>{te.useEffect(()=>{try{DTo(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},$cn="0.0.2757",swi={version:$cn},Tme=ZNt()(eRt(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{t({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),awi=t=>{const[e,n]=te.useState([]),[o,i]=te.useState(null),[r,s]=te.useState(""),[a,A]=LH("eval-version-selection",null),c=Tme(h=>h.setLastRunEvalVersion),l=Tme(h=>h.lastRunEvalVersion);return te.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(h=>h.json()).then(h=>{if(Array.isArray(h?.versions)){let d=[...h.versions];h.tags?.latest&&(i(h.tags.latest),d=d.filter(m=>m!==h.tags.latest)),n(d)}}).catch(()=>{})},[t]),te.useEffect(()=>{t&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,c(a)):o&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=o,c(o)))},[t,a,o]),{versions:te.useMemo(()=>e.filter(h=>h.includes(r)).slice(0,50),[e,r]),latestVersion:o,lastRunEvalVersion:l,search:r,setSearch:s,selectVersion:h=>{A(h),s("")}}},Awi=({snippetNames:t,onSelect:e,onCancel:n,isOpen:o})=>{const[i,r]=te.useState(""),[s,a]=te.useState("");if(!o)return null;const A=t.filter(g=>g.toLowerCase().includes(s.toLowerCase())),c=s&&!t.includes(s),l=g=>{g.key==="Enter"&&(A.length===1?r(A[0]):c&&r(s))};return U.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:U.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[U.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),U.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:g=>a(g.target.value),onKeyDown:l}),U.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[A.map(g=>U.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${i===g?"bg-blue-50":""}`,onClick:()=>r(g),children:g},g)),c&&U.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${i===s?"bg-blue-50":""}`,onClick:()=>r(s),children:['Create new "',s,'"']})]}),U.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[U.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:n,children:"Cancel"}),U.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>i&&e(i),disabled:!i,children:i===s?`Create "${i}"`:`Save to ${i}`})]})]})})},cwi=t=>{const e=te.useRef(null),n=od(o=>o.recentEvents);te.useEffect(()=>{if(n.length===0)return;const o=n[0];o.event_id!==e.current&&(t(o),e.current=o.event_id)},[n,t])};var lwi=Object.defineProperty,$S=(t,e)=>lwi(t,"name",{value:e,configurable:!0}),gwi="AlertDialog",[uwi,jrr]=cx(gwi,[Ysn]),ZS=Ysn(),dwi=$S(t=>{const{__scopeAlertDialog:e,...n}=t,o=ZS(e);return U.jsx(zhe,{...o,...n,modal:!0})},"AlertDialog");te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(y4i,{...r,...i,ref:n})},"AlertDialogTrigger"));var hwi=$S(t=>{const{__scopeAlertDialog:e,...n}=t,o=ZS(e);return U.jsx(Jhe,{...o,...n})},"AlertDialogPortal"),mwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx($X,{...r,...i,ref:n})},"AlertDialogOverlay")),pwi="AlertDialogContent",[_wi,fwi]=uwi(pwi),Iwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,children:i,...r}=e,s=ZS(o),a=te.useRef(null),A=KA(n,a),c=te.useRef(null);return U.jsx(_wi,{scope:o,cancelRef:c,children:U.jsx(e$,{role:"alertdialog",...s,...r,ref:A,onOpenAutoFocus:sr(r.onOpenAutoFocus,l=>{l.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:i})})},"AlertDialogContent")),Cwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(Whe,{...r,...i,ref:n})},"AlertDialogTitle")),ywi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(jhe,{...r,...i,ref:n})},"AlertDialogDescription")),xwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=ZS(o);return U.jsx(ZVe,{...r,...i,ref:n})},"AlertDialogAction")),Ewi="AlertDialogCancel",Bwi=te.forwardRef($S(function(e,n){const{__scopeAlertDialog:o,...i}=e,{cancelRef:r}=fwi(Ewi,o),s=ZS(o),a=KA(n,r);return U.jsx(ZVe,{...s,...i,ref:a})},"AlertDialogCancel")),Swi=dwi,bwi=hwi,Zcn=mwi,eln=Iwi,tln=xwi,nln=Bwi,oln=Cwi,iln=ywi;const rln=Swi,Qwi=bwi,sln=te.forwardRef(({className:t,...e},n)=>U.jsx(Zcn,{className:ki("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));sln.displayName=Zcn.displayName;const hJe=te.forwardRef(({className:t,...e},n)=>U.jsxs(Qwi,{children:[U.jsx(sln,{}),U.jsx(eln,{ref:n,className:ki("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...e})]}));hJe.displayName=eln.displayName;const mJe=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});mJe.displayName="AlertDialogHeader";const pJe=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});pJe.displayName="AlertDialogFooter";const _Je=te.forwardRef(({className:t,...e},n)=>U.jsx(oln,{ref:n,className:ki("rf-text-lg rf-font-semibold",t),...e}));_Je.displayName=oln.displayName;const fJe=te.forwardRef(({className:t,...e},n)=>U.jsx(iln,{ref:n,className:ki("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));fJe.displayName=iln.displayName;const vwi=te.forwardRef(({className:t,...e},n)=>U.jsx(tln,{ref:n,className:ki(iY(),t),...e}));vwi.displayName=tln.displayName;const IJe=te.forwardRef(({className:t,...e},n)=>U.jsx(nln,{ref:n,className:ki(iY({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...e}));IJe.displayName=nln.displayName;var Pwi=Object.defineProperty,eb=(t,e)=>Pwi(t,"name",{value:e,configurable:!0}),CJe="Checkbox",[wwi,qrr]=cx(CJe),[Mwi,yJe]=wwi(CJe);function aln(t){const{__scopeCheckbox:e,checked:n,children:o,defaultChecked:i,disabled:r,form:s,name:a,onCheckedChange:A,required:c,value:l="on",internal_do_not_use_render:g}=t,[u,h]=uB({prop:n,defaultProp:i??!1,onChange:A,caller:CJe}),[d,m]=te.useState(null),[p,_]=te.useState(null),f=te.useRef(!1),[I,C]=te.useReducer(E=>E+1,0),y=d?!!s||!!d.closest("form"):!0,x={checked:u,disabled:r,setChecked:h,control:d,setControl:m,name:a,form:s,value:l,hasConsumerStoppedPropagationRef:f,userInteractionCount:I,onUserInteraction:C,required:c,defaultChecked:tb(i)?!1:i,isFormControl:y,bubbleInput:p,setBubbleInput:_};return U.jsx(Mwi,{scope:e,...x,children:cln(g)?g(x):o})}eb(aln,"CheckboxProvider");var Dwi="CheckboxTrigger",Nwi=te.forwardRef(eb(function({__scopeCheckbox:e,onKeyDown:n,onClick:o,...i},r){const{control:s,value:a,disabled:A,checked:c,required:l,setControl:g,setChecked:u,hasConsumerStoppedPropagationRef:h,onUserInteraction:d,isFormControl:m,bubbleInput:p}=yJe(Dwi,e),_=KA(r,g),f=te.useRef(c);return te.useEffect(()=>{const I=s?.form;if(I){const C=eb(()=>u(f.current),"reset");return I.addEventListener("reset",C),()=>I.removeEventListener("reset",C)}},[s,u]),U.jsx(ba.button,{type:"button",role:"checkbox","aria-checked":tb(c)?"mixed":c,"aria-required":l,"data-state":xJe(c),"data-disabled":A?"":void 0,disabled:A,value:a,...i,ref:_,onKeyDown:sr(n,I=>{I.key==="Enter"&&I.preventDefault()}),onClick:sr(o,I=>{d(),u(C=>tb(C)?!0:!C),p&&m&&(h.current=I.isPropagationStopped(),h.current||I.stopPropagation())})})},"CheckboxTrigger")),Aln=te.forwardRef(eb(function(e,n){const{__scopeCheckbox:o,name:i,checked:r,defaultChecked:s,required:a,disabled:A,value:c,onCheckedChange:l,form:g,...u}=e;return U.jsx(aln,{__scopeCheckbox:o,checked:r,defaultChecked:s,disabled:A,required:a,onCheckedChange:l,name:i,form:g,value:c,internal_do_not_use_render:({isFormControl:h})=>U.jsxs(U.Fragment,{children:[U.jsx(Nwi,{...u,ref:n,__scopeCheckbox:o}),h&&U.jsx(Fwi,{__scopeCheckbox:o})]})})},"Checkbox")),Rwi="CheckboxIndicator",Twi=te.forwardRef(eb(function(e,n){const{__scopeCheckbox:o,forceMount:i,...r}=e,s=yJe(Rwi,o);return U.jsx(V3,{present:i||tb(s.checked)||s.checked===!0,children:U.jsx(ba.span,{"data-state":xJe(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n,style:{pointerEvents:"none",...e.style}})})},"CheckboxIndicator")),kwi="CheckboxBubbleInput",Fwi=te.forwardRef(eb(function({__scopeCheckbox:e,onClick:n,...o},i){const{control:r,hasConsumerStoppedPropagationRef:s,userInteractionCount:a,checked:A,defaultChecked:c,required:l,disabled:g,name:u,value:h,form:d,bubbleInput:m,setBubbleInput:p}=yJe(kwi,e),_=KA(i,p),f=kVe(r),I=te.useRef(!1),C=te.useRef(A),y=te.useRef(a);te.useEffect(()=>{const E=m;if(!E)return;const B=window.HTMLInputElement.prototype,Q=Object.getOwnPropertyDescriptor(B,"checked").set,w=a!==y.current;y.current=a;const D=C.current!==A;C.current=A;const k=!(w&&s.current);if(D&&Q){I.current=!w;const T=new Event("click",{bubbles:k});E.indeterminate=tb(A),Q.call(E,tb(A)?!1:A),E.dispatchEvent(T),I.current=!1}},[m,A,s,a]);const x=te.useRef(tb(A)?!1:A);return U.jsx(ba.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??x.current,required:l,disabled:g,name:u,value:h,form:d,...o,tabIndex:-1,ref:_,onClick:sr(n,E=>{I.current&&E.stopPropagation()}),style:{...o.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"CheckboxBubbleInput"));function cln(t){return typeof t=="function"}eb(cln,"isFunction");function tb(t){return t==="indeterminate"}eb(tb,"isIndeterminate");function xJe(t){return tb(t)?"indeterminate":t?"checked":"unchecked"}eb(xJe,"getState");const S$=te.forwardRef(({className:t,...e},n)=>U.jsx(Aln,{ref:n,className:ki("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",t),...e,children:U.jsx(Twi,{className:ki("rf-flex rf-items-center rf-justify-center rf-text-current"),children:U.jsx(US,{className:"rf-h-4 rf-w-4"})})}));S$.displayName=Aln.displayName;const OR=zhe,Lwi=Jhe,lln=te.forwardRef(({className:t,...e},n)=>U.jsx($X,{className:ki("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));lln.displayName=$X.displayName;const ZP=te.forwardRef(({className:t,children:e,showOverlay:n=!0,...o},i)=>U.jsxs(Lwi,{children:[U.jsx(lln,{className:ki(n?"":"rf-hidden")}),U.jsx(e$,{ref:i,className:ki("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...o,children:e})]}));ZP.displayName=e$.displayName;const ew=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});ew.displayName="DialogHeader";const PY=({className:t,...e})=>U.jsx("div",{className:ki("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});PY.displayName="DialogFooter";const tw=te.forwardRef(({className:t,...e},n)=>U.jsx(Whe,{ref:n,className:ki("rf-text-lg rf-font-semibold",t),...e}));tw.displayName=Whe.displayName;const GR=te.forwardRef(({className:t,...e},n)=>U.jsx(jhe,{ref:n,className:ki("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));GR.displayName=jhe.displayName;const kme={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},Hwi="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let EJe=null;const BJe=async()=>(EJe||(EJe=import(Hwi)),EJe),Owi=t=>(e,n)=>{const o=new Headers(n?.headers),i={};return o.forEach((r,s)=>{i[s]=r}),fetch(`${t?.apiBase??rC}/proxy`,{...n,headers:{...i,"X-Target-Url":e.toString(),"X-Sender-Origin":i.origin??"","X-Sender-Host":i.host??"https://easyeda.com","X-Sender-Referer":i.referer??"","X-Sender-User-Agent":i["user-agent"]??"","X-Sender-Cookie":i.cookie??"",authority:i.authority??"","content-type":i["content-type"]??"",...t?.headers}})},Gwi=async(t,e=10)=>{const n=encodeURIComponent(t),o=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${e}&q=${n}`);if(!o.ok)throw new Error(`JLCPCB API error: ${o.status}`);return(await o.json()).components??[]},Ywi=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock,isBasic:t.is_basic}),gln=async(t,e)=>{const{fetchEasyEDAComponent:n}=await BJe();return n(t,{fetch:Owi(e),includeModelMetadata:e?.includeModelMetadata})},Uwi=async(t,e)=>{const{convertRawEasyToTsx:n}=await BJe(),o=await gln(t,e);return n({rawEasy:o})},Kwi=async(t,e)=>{const{EasyEdaJsonSchema:n,convertEasyEdaJsonToCircuitJson:o}=await BJe(),i=await gln(t,{...e,includeModelMetadata:!1}),r=n.parse(i);return o(r,{shouldRecenter:!0,showDesignator:!0,useModelCdn:!1})};function nw(t){return Array.isArray?Array.isArray(t):dln(t)==="[object Array]"}function Vwi(t){if(typeof t=="string")return t;if(typeof t=="bigint")return t.toString();const e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function SJe(t){return t==null?"":Vwi(t)}function dC(t){return typeof t=="string"}function Fme(t){return typeof t=="number"}function zwi(t){return t===!0||t===!1||Jwi(t)&&dln(t)=="[object Boolean]"}function uln(t){return typeof t=="object"}function Jwi(t){return uln(t)&&t!==null}function _E(t){return t!=null}function Lme(t){return!t.trim().length}function dln(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const Wwi="Incorrect 'index' type",bJe="Invalid doc index: must be a non-negative integer within the bounds of the docs array",jwi=t=>`Invalid value for key ${t}`,qwi=t=>`Pattern length exceeds max of ${t}.`,Xwi=t=>`Missing ${t} property in key`,$wi=t=>`Property 'weight' in key '${t}' must be a positive integer`,Zwi="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",hln=Object.prototype.hasOwnProperty;var eMi=class{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(n=>{const o=mln(n);this._keys.push(o),this._keyMap[o.id]=o,e+=o.weight}),this._keys.forEach(n=>{n.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function mln(t){let e=null,n=null,o=null,i=1,r=null;if(dC(t)||nw(t))o=t,e=pln(t),n=Hme(t);else{if(!hln.call(t,"name"))throw new Error(Xwi("name"));const s=t.name;if(o=s,hln.call(t,"weight")&&t.weight!==void 0&&(i=t.weight,i<=0))throw new Error($wi(Hme(s)));e=pln(s),n=Hme(s),r=t.getFn??null}return{path:e,id:n,weight:i,src:o,getFn:r}}function pln(t){return nw(t)?t:t.split(".")}function Hme(t){return nw(t)?t.join("."):t}function tMi(t,e){const n=[];let o=!1;const i=(r,s,a,A)=>{if(_E(r))if(!s[a])n.push(A!==void 0?{v:r,i:A}:r);else{const c=r[s[a]];if(!_E(c))return;if(a===s.length-1&&(dC(c)||Fme(c)||zwi(c)||typeof c=="bigint"))n.push(A!==void 0?{v:SJe(c),i:A}:SJe(c));else if(nw(c)){o=!0;for(let l=0,g=c.length;l<g;l+=1)i(c[l],s,a+1,l)}else s.length&&i(c,s,a+1,A)}};return i(t,dC(e)?e.split("."):e,0),o?n:n[0]}const xa=Object.freeze({...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:tMi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}});function nMi(t){return t>=9&&t<=13||t===32||t===160}function oMi(t=1,e=3){const n=new Map,o=Math.pow(10,e);return{get(i){let r=0,s=!1;for(let A=0;A<i.length;A++)nMi(i.charCodeAt(A))?s=!1:s||(r++,s=!0);if(r===0&&(r=1),n.has(r))return n.get(r);const a=Math.round(o/Math.pow(r,.5*t))/o;return n.set(r,a),a},clear(){n.clear()}}}var QJe=class{constructor({getFn:t=xa.getFn,fieldNormWeight:e=xa.fieldNormWeight}={}){this.norm=oMi(e,3),this.getFn=t,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((e,n)=>{this._keysMap[e.id]=n})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const t=this.docs.length;this.records=new Array(t);let e=0;if(dC(this.docs[0]))for(let n=0;n<t;n++){const o=this._createStringRecord(this.docs[n],n);o&&(this.records[e++]=o)}else for(let n=0;n<t;n++)this.records[e++]=this._createObjectRecord(this.docs[n],n);this.records.length=e,this.norm.clear()}add(t,e){if(!Number.isInteger(e)||e<0)throw new Error(bJe);if(dC(t)){const o=this._createStringRecord(t,e);return o&&this.records.push(o),o}const n=this._createObjectRecord(t,e);return this.records.push(n),n}removeAt(t){if(!Number.isInteger(t)||t<0)throw new Error(bJe);for(let e=0,n=this.records.length;e<n;e+=1)if(this.records[e].i===t){this.records.splice(e,1);break}for(let e=0,n=this.records.length;e<n;e+=1)this.records[e].i>t&&(this.records[e].i-=1)}removeAll(t){const e=new Set;for(const o of t)Number.isInteger(o)&&o>=0&&e.add(o);if(e.size===0)return;this.records=this.records.filter(o=>!e.has(o.i));const n=Array.from(e).sort((o,i)=>o-i);for(const o of this.records){let i=0,r=n.length;for(;i<r;){const s=i+r>>>1;n[s]<o.i?i=s+1:r=s}o.i-=i}}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_createStringRecord(t,e){return!_E(t)||Lme(t)?null:{v:t,i:e,n:this.norm.get(t)}}_createObjectRecord(t,e){const n={i:e,$:{}};for(let o=0,i=this.keys.length;o<i;o++){const r=this.keys[o],s=r.getFn?r.getFn(t):this.getFn(t,r.path);if(_E(s)){if(nw(s)){const a=[];for(let A=0,c=s.length;A<c;A+=1){const l=s[A];if(_E(l)){if(dC(l)){if(!Lme(l)){const g={v:l,i:A,n:this.norm.get(l)};a.push(g)}}else if(_E(l.v)){const g=dC(l.v)?l.v:SJe(l.v);if(!Lme(g)){const u={v:g,i:l.i,n:this.norm.get(g)};a.push(u)}}}}n.$[o]=a}else if(dC(s)&&!Lme(s)){const a={v:s,n:this.norm.get(s)};n.$[o]=a}}}return n}toJSON(){return{keys:this.keys.map(({getFn:t,...e})=>e),records:this.records}}};function _ln(t,e,{getFn:n=xa.getFn,fieldNormWeight:o=xa.fieldNormWeight}={}){const i=new QJe({getFn:n,fieldNormWeight:o});return i.setKeys(t.map(mln)),i.setSources(e),i.create(),i}function iMi(t,{getFn:e=xa.getFn,fieldNormWeight:n=xa.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new QJe({getFn:e,fieldNormWeight:n});return r.setKeys(o),r.setIndexRecords(i),r}function rMi(t=[],e=xa.minMatchCharLength){const n=[];let o=-1,i=-1,r=0;for(let s=t.length;r<s;r+=1){const a=t[r];a&&o===-1?o=r:!a&&o!==-1&&(i=r-1,i-o+1>=e&&n.push([o,i]),o=-1)}return t[r-1]&&r-o>=e&&n.push([o,r-1]),n}function sMi(t,e,n,{location:o=xa.location,distance:i=xa.distance,threshold:r=xa.threshold,findAllMatches:s=xa.findAllMatches,minMatchCharLength:a=xa.minMatchCharLength,includeMatches:A=xa.includeMatches,ignoreLocation:c=xa.ignoreLocation}={}){if(e.length>32)throw new Error(qwi(32));const l=e.length,g=t.length,u=Math.max(0,Math.min(o,g));let h=r,d=u;const m=(b,Q)=>{const w=b/l;if(c)return w;const D=Math.abs(u-Q);return i?w+D/i:D?1:w},p=a>1||A,_=p?Array(g):[];let f;for(;(f=t.indexOf(e,d))>-1;){const b=m(0,f);if(h=Math.min(b,h),d=f+l,p){let Q=0;for(;Q<l;)_[f+Q]=1,Q+=1}}d=-1;let I=[],C=1,y=0,x=l+g;const E=1<<l-1;for(let b=0;b<l;b+=1){let Q=0,w=x;for(;Q<w;)m(b,u+w)<=h?Q=w:x=w,w=Math.floor((x-Q)/2+Q);x=w;let D=Math.max(1,u-w+1);const k=s?g:Math.min(u+w,g)+l,T=Array(k+2);T[k+1]=(1<<b)-1;for(let H=k;H>=D;H-=1){const G=H-1,K=n[t[G]];if(T[H]=(T[H+1]<<1|1)&K,b&&(T[H]|=(I[H+1]|I[H])<<1|1|I[H+1]),T[H]&E&&(C=m(b,G),C<=h)){if(h=C,d=G,y=b,d<=u)break;D=Math.max(1,2*u-d)}}if(m(b+1,u)>h)break;I=T}if(p&&d>=0){const b=Math.min(g-1,d+l-1+y);for(let Q=d;Q<=b;Q+=1)n[t[Q]]&&(_[Q]=1)}const B={isMatch:d>=0,score:Math.max(.001,C)};if(p){const b=rMi(_,a);b.length?A&&(B.indices=b):B.isMatch=!1}return B}function aMi(t){const e={};for(let n=0,o=t.length;n<o;n+=1){const i=t.charAt(n);e[i]=(e[i]||0)|1<<o-n-1}return e}function vJe(t){if(t.length<=1)return t;t.sort((n,o)=>n[0]-o[0]||n[1]-o[1]);const e=[t[0]];for(let n=1,o=t.length;n<o;n+=1){const i=e[e.length-1],r=t[n];r[0]<=i[1]+1?i[1]=Math.max(i[1],r[1]):e.push(r)}return e}const fln={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},AMi=new RegExp("["+Object.keys(fln).join("")+"]","g"),b$=typeof String.prototype.normalize=="function"?t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(AMi,e=>fln[e]):t=>t;var PJe=class{constructor(t,{location:e=xa.location,threshold:n=xa.threshold,distance:o=xa.distance,includeMatches:i=xa.includeMatches,findAllMatches:r=xa.findAllMatches,minMatchCharLength:s=xa.minMatchCharLength,isCaseSensitive:a=xa.isCaseSensitive,ignoreDiacritics:A=xa.ignoreDiacritics,ignoreLocation:c=xa.ignoreLocation}={}){if(this.options={location:e,threshold:n,distance:o,includeMatches:i,findAllMatches:r,minMatchCharLength:s,isCaseSensitive:a,ignoreDiacritics:A,ignoreLocation:c},t=a?t:t.toLowerCase(),t=A?b$(t):t,this.pattern=t,this.chunks=[],!this.pattern.length)return;const l=(u,h)=>{this.chunks.push({pattern:u,alphabet:aMi(u),startIndex:h})},g=this.pattern.length;if(g>32){let u=0;const h=g%32,d=g-h;for(;u<d;)l(this.pattern.substr(u,32),u),u+=32;if(h){const m=g-32;l(this.pattern.substr(m),m)}}else l(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o}=this.options;if(t=e?t:t.toLowerCase(),t=n?b$(t):t,this.pattern===t){if(t.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const d={isMatch:!0,score:0};return o&&(d.indices=[[0,t.length-1]]),d}const{location:i,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,ignoreLocation:c}=this.options,l=[];let g=0,u=!1;this.chunks.forEach(({pattern:d,alphabet:m,startIndex:p})=>{const{isMatch:_,score:f,indices:I}=sMi(t,d,m,{location:i+p,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,includeMatches:o,ignoreLocation:c});_&&(u=!0),g+=f,_&&I&&l.push(...I)});const h={isMatch:u,score:u?g/this.chunks.length:1};return u&&o&&(h.indices=vJe(l)),h}};const cMi=new Set(["fuzzy","include"]);function lMi(t){return t.startsWith("inverse")}const wJe=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:t=>({type:"exact",search(e){const n=e===t;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:t=>({type:"include",search(e){let n=0,o;const i=[],r=t.length;for(;(o=e.indexOf(t,n))>-1;)n=o+r,i.push([o,n-1]);const s=!!i.length;return{isMatch:s,score:s?0:1,indices:i}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:t=>({type:"prefix-exact",search(e){const n=e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:t=>({type:"inverse-prefix-exact",search(e){const n=!e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:t=>({type:"inverse-suffix-exact",search(e){const n=!e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:t=>({type:"suffix-exact",search(e){const n=e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[e.length-t.length,e.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:t=>({type:"inverse-exact",search(e){const n=e.indexOf(t)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(t,e={})=>{const n=new PJe(t,{location:e.location??xa.location,threshold:e.threshold??xa.threshold,distance:e.distance??xa.distance,includeMatches:e.includeMatches??xa.includeMatches,findAllMatches:e.findAllMatches??xa.findAllMatches,minMatchCharLength:e.minMatchCharLength??xa.minMatchCharLength,isCaseSensitive:e.isCaseSensitive??xa.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics??xa.ignoreDiacritics,ignoreLocation:e.ignoreLocation??xa.ignoreLocation});return{type:"fuzzy",search(o){return n.searchIn(o)}}}}],Iln=wJe.length,gMi="\0",uMi="|";function dMi(t){const e=[],n=t.length;let o=0;for(;o<n;){for(;o<n&&t[o]===" ";)o++;if(o>=n)break;let i=o;for(;i<n&&t[i]!==" "&&t[i]!=='"';)i++;if(i<n&&t[i]==='"'){for(i++;i<n;){if(t[i]==='"'){const r=i+1;if(r>=n||t[r]===" "){i++;break}if(t[r]==="$"&&(r+1>=n||t[r+1]===" ")){i+=2;break}}i++}e.push(t.substring(o,i)),o=i}else{for(;i<n&&t[i]!==" ";)i++;e.push(t.substring(o,i)),o=i}}return e}function Cln(t,e){const n=t.match(e);return n?n[1]:null}function hMi(t,e={}){return t.replace(/\\\|/g,gMi).split(uMi).map(n=>{const o=dMi(n.replace(/\u0000/g,"|").trim()).filter(r=>r&&!!r.trim()),i=[];for(let r=0,s=o.length;r<s;r+=1){const a=o[r];let A=!1,c=-1;for(;!A&&++c<Iln;){const l=wJe[c],g=Cln(a,l.multiRegex);g&&(i.push(l.create(g,e)),A=!0)}if(!A)for(c=-1;++c<Iln;){const l=wJe[c],g=Cln(a,l.singleRegex);if(g){i.push(l.create(g,e));break}}}return i})}var mMi=class{constructor(t,{isCaseSensitive:e=xa.isCaseSensitive,ignoreDiacritics:n=xa.ignoreDiacritics,includeMatches:o=xa.includeMatches,minMatchCharLength:i=xa.minMatchCharLength,ignoreLocation:r=xa.ignoreLocation,findAllMatches:s=xa.findAllMatches,location:a=xa.location,threshold:A=xa.threshold,distance:c=xa.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o,minMatchCharLength:i,findAllMatches:s,ignoreLocation:r,location:a,threshold:A,distance:c},t=e?t:t.toLowerCase(),t=n?b$(t):t,this.pattern=t,this.query=hMi(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:o,ignoreDiacritics:i}=this.options;t=o?t:t.toLowerCase(),t=i?b$(t):t;let r=0;const s=[];let a=0,A=!1;for(let c=0,l=e.length;c<l;c+=1){const g=e[c];s.length=0,r=0,A=!1;for(let u=0,h=g.length;u<h;u+=1){const d=g[u],{isMatch:m,indices:p,score:_}=d.search(t);if(m)r+=1,a+=_,lMi(d.type)&&(A=!0),n&&(cMi.has(d.type)?s.push(...p):s.push(p));else{a=0,r=0,s.length=0,A=!1;break}}if(r){const u={isMatch:!0,score:a/r};return A&&(u.hasInverse=!0),n&&(u.indices=vJe(s)),u}}return{isMatch:!1,score:1}}};const MJe=[];function DJe(...t){MJe.push(...t)}function Ome(t,e){for(let n=0,o=MJe.length;n<o;n+=1){const i=MJe[n];if(i.condition(t,e))return new i(t,e)}return new PJe(t,e)}const Gme={AND:"$and",OR:"$or"},NJe={PATH:"$path",PATTERN:"$val"},RJe=t=>!!(t[Gme.AND]||t[Gme.OR]),pMi=t=>!!t[NJe.PATH],_Mi=t=>!nw(t)&&uln(t)&&!RJe(t),yln=t=>({[Gme.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function xln(t,e,{auto:n=!0}={}){const o=i=>{if(dC(i)){const A={keyId:null,pattern:i};return n&&(A.searcher=Ome(i,e)),A}const r=Object.keys(i),s=pMi(i);if(!s&&r.length>1&&!RJe(i))return o(yln(i));if(_Mi(i)){const A=s?i[NJe.PATH]:r[0],c=s?i[NJe.PATTERN]:i[A];if(!dC(c))throw new Error(jwi(A));const l={keyId:Hme(A),pattern:c};return n&&(l.searcher=Ome(c,e)),l}const a={children:[],operator:r[0]};return r.forEach(A=>{const c=i[A];nw(c)&&c.forEach(l=>{a.children.push(o(l))})}),a};return RJe(t)||(t=yln(t)),o(t)}function TJe(t,{ignoreFieldNorm:e=xa.ignoreFieldNorm}){let n=1;return t.forEach(({key:o,norm:i,score:r})=>{const s=o?o.weight:null;n*=Math.pow(r===0&&s?Number.EPSILON:r,(s||1)*(e?1:i))}),n}function fMi(t,{ignoreFieldNorm:e=xa.ignoreFieldNorm}){t.forEach(n=>{n.score=TJe(n.matches,{ignoreFieldNorm:e})})}var IMi=class{constructor(t,e){this.limit=t,this.heap=[],this.comparator=e}get size(){return this.heap.length}insert(t){this.size<this.limit?(this.heap.push(t),this._bubbleUp(this.size-1)):this.comparator(t,this.heap[0])<0&&(this.heap[0]=t,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(t){const e=this.heap;for(;t>0;){const n=t-1>>1;if(this.comparator(e[t],e[n])<=0)break;const o=e[t];e[t]=e[n],e[n]=o,t=n}}_sinkDown(t){const e=this.heap,n=e.length;let o=t;do{t=o;const i=2*t+1,r=2*t+2;if(i<n&&this.comparator(e[i],e[o])>0&&(o=i),r<n&&this.comparator(e[r],e[o])>0&&(o=r),o!==t){const s=e[t];e[t]=e[o],e[o]=s}}while(o!==t)}};function CMi(t){const e=[];return t.matches.forEach(n=>{if(!_E(n.indices)||!n.indices.length)return;const o={indices:n.indices,value:n.value};n.key&&(o.key=n.key.id),n.idx>-1&&(o.refIndex=n.idx),e.push(o)}),e}function yMi(t,e,{includeMatches:n=xa.includeMatches,includeScore:o=xa.includeScore}={}){return t.map(i=>{const{idx:r}=i,s={item:e[r],refIndex:r};return n&&(s.matches=CMi(i)),o&&(s.score=i.score),s})}const xMi=/[\p{L}\p{M}\p{N}_]+/gu,Eln=new WeakSet;function EMi(t){Eln.has(t)||(Eln.add(t),console.warn(`[Fuse] tokenize regex ${t} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function BMi(t){if(typeof t=="function"){let e=!1;return n=>{const o=t(n);if(!e&&(e=!0,!Array.isArray(o)||o.some(i=>typeof i!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(o)?"array containing non-strings":typeof o}.`);return o}}return t instanceof RegExp?(t.global||EMi(t),e=>e.match(t)||[]):e=>e.match(xMi)||[]}function kJe({isCaseSensitive:t=!1,ignoreDiacritics:e=!1,tokenize:n}={}){const o=BMi(n);return{tokenize(i){return t||(i=i.toLowerCase()),e&&(i=b$(i)),o(i)}}}var SMi=class{static condition(t,e){return e.useTokenSearch}constructor(t,e){this.options=e,this.analyzer=kJe({isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,tokenize:e.tokenize});const n=this.analyzer.tokenize(t),{df:o,fieldCount:i}=e._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const r of n){this.termSearchers.push(new PJe(r,{location:e.location,threshold:e.threshold,distance:e.distance,includeMatches:e.includeMatches,findAllMatches:e.findAllMatches,minMatchCharLength:e.minMatchCharLength,isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,ignoreLocation:!0}));const s=o.get(r)||0,a=Math.log(1+(i-s+.5)/(s+.5));this.idfWeights.push(a)}this.combineAll=e.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(t){if(!this.termSearchers.length)return{isMatch:!1,score:1};const e=[];let n=0,o=0,i=0,r=0;const s=this.combineAll&&!this.useMask?new Set:null;for(let c=0;c<this.termSearchers.length;c++){const l=this.termSearchers[c].searchIn(t),g=this.idfWeights[c];o+=g,l.isMatch&&(i++,n+=g*(1-l.score),l.indices&&e.push(...l.indices),this.combineAll&&(this.useMask?r|=1<<c:s.add(c)))}if(i===0)return{isMatch:!1,score:1};const a=o>0?1-n/o:0,A={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&e.length&&(A.indices=vJe(e)),this.combineAll&&(this.useMask?A.matchedMask=r:A.matchedTerms=s,A.termCount=this.numTerms),A}};function FJe(t,e,n,o){const i=o.tokenize(e);if(!i.length)return;t.fieldCount++,t.docFieldCount.set(n,(t.docFieldCount.get(n)||0)+1);const r=new Set(i);let s=t.docTermFieldHits.get(n);s||(s=new Map,t.docTermFieldHits.set(n,s));for(const a of r)s.set(a,(s.get(a)||0)+1),t.df.set(a,(t.df.get(a)||0)+1)}function Bln(t,e,n,o){const{i,v:r,$:s}=e;if(r!==void 0){FJe(t,r,i,o);return}if(s)for(let a=0;a<n;a++){const A=s[a];if(A)if(Array.isArray(A))for(const c of A)FJe(t,c.v,i,o);else FJe(t,A.v,i,o)}}function bMi(t,e,n){const o={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const i of t)Bln(o,i,e,n);return o}function QMi(t,e,n,o){Bln(t,e,n,o)}function vMi(t,e){const n=t.docFieldCount.get(e);if(n===void 0)return;t.fieldCount-=n,t.docFieldCount.delete(e);const o=t.docTermFieldHits.get(e);if(o){for(const[i,r]of o){const s=(t.df.get(i)||0)-r;s<=0?t.df.delete(i):t.df.set(i,s)}t.docTermFieldHits.delete(e)}}function Sln(t,e){if(e.length===0)return;const n=Array.from(new Set(e)).sort((a,A)=>a-A);for(const a of n)vMi(t,a);const o=a=>{let A=0,c=n.length;for(;A<c;){const l=A+c>>>1;n[l]<a?A=l+1:c=l}return a-A},i=n[0],r=new Map;for(const[a,A]of t.docFieldCount)r.set(a>i?o(a):a,A);t.docFieldCount=r;const s=new Map;for(const[a,A]of t.docTermFieldHits)s.set(a>i?o(a):a,A);t.docTermFieldHits=s}var ow=class{constructor(t,e,n){this.options={...xa,...e},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new eMi(this.options.keys),this._docs=t,this._myIndex=null,this._invertedIndex=null,this.setCollection(t,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(t){if(this._lastQuery===t)return this._lastSearcher;const e=Ome(t,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=t,this._lastSearcher=e,e}setCollection(t,e){if(this._docs=t,e&&!(e instanceof QJe))throw new Error(Wwi);if(this._myIndex=e||_ln(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const n=kJe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=bMi(this._myIndex.records,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}add(t){if(!_E(t))return;this._docs.push(t);const e=this._myIndex.add(t,this._docs.length-1);if(this._invertedIndex&&e){const n=kJe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});QMi(this._invertedIndex,e,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}remove(t=()=>!1){const e=[],n=[];for(let o=0,i=this._docs.length;o<i;o+=1)t(this._docs[o],o)&&(e.push(this._docs[o]),n.push(o));if(n.length){this._invertedIndex&&Sln(this._invertedIndex,n);const o=new Set(n);this._docs=this._docs.filter((i,r)=>!o.has(r)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return e}removeAt(t){if(!Number.isInteger(t)||t<0||t>=this._docs.length)throw new Error(bJe);this._invertedIndex&&Sln(this._invertedIndex,[t]);const e=this._docs.splice(t,1)[0];return this._myIndex.removeAt(t),this._invalidateSearcherCache(),e}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(t=>this._keyStore.get(t.id)||t)}search(t,e){const{limit:n=-1}=e||{},{includeMatches:o,includeScore:i,shouldSort:r,sortFn:s,ignoreFieldNorm:a}=this.options;if(dC(t)&&!t.trim()){let u=this._docs.map((h,d)=>({item:h,refIndex:d}));return Fme(n)&&n>-1&&(u=u.slice(0,n)),u}const A=r&&Fme(n)&&n>0&&dC(t),c=s,l=(u,h)=>c(u,h)||u.idx-h.idx;let g;if(A){const u=new IMi(n,l);dC(this._docs[0])?this._searchStringList(t,{heap:u,ignoreFieldNorm:a}):this._searchObjectList(t,{heap:u,ignoreFieldNorm:a}),g=u.extractSorted()}else g=dC(t)?dC(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t),fMi(g,{ignoreFieldNorm:a}),r&&g.sort(dC(t)?l:c),Fme(n)&&n>-1&&(g=g.slice(0,n));return yMi(g,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=e?null:[];return r.forEach(({v:a,i:A,n:c})=>{if(!_E(a))return;const l=o.searchIn(a);if(l.isMatch){const g={score:l.score,value:a,norm:c,indices:l.indices};i&&(g.matchedMask=l.matchedMask,g.matchedTerms=l.matchedTerms,g.termCount=l.termCount);const u=[g];if(!i||this._coversAllTokens(u)){const h={item:a,idx:A,matches:u};e?(h.score=TJe(h.matches,{ignoreFieldNorm:n}),e.insert(h)):s.push(h)}}}),s}_searchLogical(t){const e=xln(t,this.options),n=this._normalizedKeys(),o=(a,A,c)=>{if(!("children"in a)){const{keyId:h,searcher:d}=a;let m;return h===null?(m=[],n.forEach((p,_)=>{m.push(...this._findMatches({key:p,value:A[_],searcher:d}))})):m=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(A,h),searcher:d}),m&&m.length?[{idx:c,item:A,matches:m}]:[]}const{children:l,operator:g}=a,u=[];for(let h=0,d=l.length;h<d;h+=1){const m=l[h],p=o(m,A,c);if(p.length)u.push(...p);else if(g===Gme.AND)return[]}return u},i=this._myIndex.records,r=new Map,s=[];return i.forEach(({$:a,i:A})=>{if(_E(a)){const c=o(e,a,A);c.length&&(r.has(A)||(r.set(A,{idx:A,item:a,matches:[]}),s.push(r.get(A))),c.forEach(({matches:l})=>{r.get(A).matches.push(...l)}))}}),s}_searchObjectList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=this._normalizedKeys(),a=e?null:[];return r.forEach(({$:A,i:c})=>{if(!_E(A))return;const l=[];let g=!1,u=!1;if(s.forEach((h,d)=>{const m=this._findMatches({key:h,value:A[d],searcher:o});m.length?(l.push(...m),m[0].hasInverse&&(u=!0)):g=!0}),!(u&&g)&&l.length&&(!i||this._coversAllTokens(l))){const h={idx:c,item:A,matches:l};e?(h.score=TJe(h.matches,{ignoreFieldNorm:n}),e.insert(h)):a.push(h)}}),a}_findMatches({key:t,value:e,searcher:n}){if(!_E(e))return[];const o=[];if(nw(e))e.forEach(({v:i,i:r,n:s})=>{if(!_E(i))return;const a=n.searchIn(i);if(a.isMatch){const A={score:a.score,key:t,value:i,idx:r,norm:s,indices:a.indices,hasInverse:a.hasInverse};a.termCount!==void 0&&(A.matchedMask=a.matchedMask,A.matchedTerms=a.matchedTerms,A.termCount=a.termCount),o.push(A)}});else{const{v:i,n:r}=e,s=n.searchIn(i);if(s.isMatch){const a={score:s.score,key:t,value:i,norm:r,indices:s.indices,hasInverse:s.hasInverse};s.termCount!==void 0&&(a.matchedMask=s.matchedMask,a.matchedTerms=s.matchedTerms,a.termCount=s.termCount),o.push(a)}}return o}_coversAllTokens(t){const e=t.length?t[0].termCount:void 0;if(e===void 0)return!0;if(e<=31){let o=0;for(let i=0;i<t.length;i++)o|=t[i].matchedMask||0;return o===2**e-1}const n=new Set;for(let o=0;o<t.length;o++){const i=t[o].matchedTerms;if(i)for(const r of i)n.add(r)}return n.size===e}};ow.version="7.5.0",ow.createIndex=_ln,ow.parseIndex=iMi,ow.config=xa,ow.match=function(t,e,n){if(n&&n.useTokenSearch)throw new Error(Zwi);return Ome(t,{...xa,...n}).searchIn(e)},ow.parseQuery=xln,DJe(mMi),DJe(SMi),ow.use=function(...t){t.forEach(e=>DJe(e))};var PMi=ow;const wMi="https://kicad-mod-cache.tscircuit.com";let LJe=null,Q$=null,HJe=null;const MMi=async()=>LJe||Q$||(Q$=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(LJe=t,Q$=null,t)),Q$),DMi=async(t,e=20)=>{const n=await MMi();return HJe||(HJe=new PMi(n)),HJe.search(t).slice(0,e).map(o=>o.item)},NMi=t=>{const e=t.replace(".pretty/","/").replace(".kicad_mod",""),n=`kicad:${e}`;return{path:t,qualifiedName:n,description:e}},RMi=t=>t.replace(/^\/+/,"").split("/").map(e=>encodeURIComponent(e)).join("/"),TMi=async t=>{const e=await fetch(`${wMi}/${RMi(t)}`);if(!e.ok)throw new Error(`KiCad footprint fetch failed: ${e.status}`);const n=await e.text(),{KicadFootprintToCircuitJsonConverter:o}=await lE("kicad-to-circuit-json"),i=new o;return i.addFile(t.split("/").pop()??"selected-footprint.kicad_mod",n),i.runUntilFinished(),i.getOutput()},bln=t=>t?.source==="jlcpcb"||t?.source==="kicad",kMi=async(t,e)=>{if(t.source==="jlcpcb")return Kwi(t.component.partNumber,e?.jlcpcb);if(t.source==="kicad")return TMi(t.footprint.path);throw new Error("Footprint preview is not available for this source")},FMi=({query:t,placeholder:e,isSearching:n,onQueryChange:o,onSubmit:i})=>{const r=te.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),i())},[i]);return U.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[U.jsxs("div",{className:"rf-relative rf-flex-grow",children:[U.jsx(hVe,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),U.jsx(hze,{placeholder:e,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>o(s.target.value),onKeyDown:r})]}),U.jsx(gA,{onClick:i,disabled:n||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:n?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):U.jsxs(U.Fragment,{children:[U.jsx(hVe,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),U.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},LMi=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),HMi=t=>LMi.format(t),Qln=t=>{switch(t.source){case"tscircuit.com":{const e=t.package;return`tscircuit-${e.package_id??`${e.org_owner_tscircuit_handle??"unknown"}-${e.unscoped_name??e.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},OMi=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.isDirectLookup?t.component.partNumber:t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},GMi=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.org_owner_tscircuit_handle?`Component by ${t.package.org_owner_tscircuit_handle}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},YMi=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.isDirectLookup?void 0:t.component.partNumber;case"kicad":return}},UMi=({results:t,selected:e,onSelect:n,onShowDetails:o})=>{const i=e?Qln(e):null;return U.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:t.map(r=>{const s=Qln(r),a=i===s,A=OMi(r),c=GMi(r),l=YMi(r),g=r.source==="jlcpcb"?r.component.stock:null,u=r.source==="jlcpcb"?r.component.price:null,h=r.source==="jlcpcb"?r.component.isBasic:null,d=r.source==="jlcpcb"?r.component.isDirectLookup:!1;return U.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[minmax(0,1fr)_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 rf-overflow-hidden ${a?"rf-bg-zinc-100":""}`,onClick:()=>n(r),children:[U.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[U.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[U.jsxs("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0 rf-flex rf-items-center rf-gap-1.5",children:[A,r.source==="jlcpcb"&&h!=null&&U.jsx("span",{className:`rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 ${h?"rf-bg-green-100 rf-text-green-700":"rf-bg-orange-100 rf-text-orange-700"}`,children:h?"Basic":"Extended"}),d&&U.jsx("span",{className:"rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 rf-bg-blue-100 rf-text-blue-700",children:"Direct lookup"}),r.source==="tscircuit.com"&&r.package.is_private&&U.jsx(Fxi,{className:"rf-ml-1 rf-h-3 rf-w-3 rf-text-zinc-400 rf-flex-shrink-0"})]}),r.source==="jlcpcb"&&g!=null?U.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 sm:rf-hidden",children:[g.toLocaleString()," in stock"]}):null]}),U.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[l?U.jsx("span",{className:"rf-mr-2",children:l}):null,c]})]}),U.jsxs("div",{children:[r.source==="tscircuit.com"&&o?U.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:U.jsx(gA,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:m=>{m.stopPropagation(),o(r)},children:"See Details"})}):r.source==="jlcpcb"&&g!=null?U.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0",children:[g.toLocaleString()," in stock"]}):null,u!=null&&U.jsx("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 rf-text-right",children:HMi(u)})]})]},s)})})},KMi=({circuitJson:t,error:e,isLoading:n,height:o})=>U.jsx("section",{className:"rf-flex rf-min-w-0 rf-items-center rf-justify-center",style:{height:o},children:n?U.jsxs("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-gap-2 rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:[U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),"Loading preview..."]}):e?U.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-p-4",style:{height:o},children:U.jsxs("div",{className:"rf-flex rf-max-w-[320px] rf-items-start rf-gap-2 rf-text-sm rf-text-zinc-300",children:[U.jsx(dVe,{className:"rf-mt-0.5 rf-h-4 rf-w-4 rf-flex-shrink-0"}),U.jsx("span",{children:e})]})}):t?U.jsx("div",{className:"rf-w-full rf-min-w-0 rf-overflow-hidden",children:U.jsx(iJe,{circuitJson:t,height:o,allowEditing:!1,clickToInteractEnabled:!1,focusOnHover:!1,disablePcbGroups:!0})}):U.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:"No preview"})}),vln={importComponentDialog:101,importComponentDetailsDialog:102},VMi=({packageResult:t,isOpen:e,onOpenChange:n,isLoading:o,details:i,previewTab:r,onPreviewTabChange:s,isSubmitting:a,onImport:A})=>{const c=t?.package??null,l=c?.latest_pcb_preview_image_url,g=c?.latest_sch_preview_image_url,u=c?.latest_cad_preview_image_url,h=c?.unscoped_name?.split("/").pop()??c?.unscoped_name,d=c?.org_owner_tscircuit_handle??void 0,m=d?`https://tscircuit.com/${d}`:void 0,p=d&&h?`https://tscircuit.com/${d}/${h}`:void 0;return U.jsx(OR,{open:e,onOpenChange:n,children:U.jsxs(ZP,{showOverlay:!1,style:{width:"calc(100vw - 2rem)",zIndex:vln.importComponentDetailsDialog},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[U.jsx(ew,{className:"rf-pb-4 rf-border-b",children:U.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:U.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[U.jsx(tw,{className:"rf-text-xl rf-font-semibold rf-truncate",children:h}),U.jsx(GR,{children:c?.description})]})})}),U.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[d?U.jsxs("div",{children:[U.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),U.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:m?U.jsx("a",{href:m,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:d}):d})]}):null,(u||l||g)&&U.jsx(U.Fragment,{children:U.jsxs("div",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),U.jsxs(kMe,{value:r,onValueChange:_=>s(_),children:[U.jsxs(z0e,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[l&&U.jsx(Y6,{value:"pcb",children:"PCB"}),g&&U.jsx(Y6,{value:"schematic",children:"Schematic"}),u&&U.jsx(Y6,{value:"3d",children:"3D"})]}),U.jsxs("div",{className:"rf-mt-4",children:[U.jsx(U1,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:l?U.jsx("img",{src:l,alt:`${h??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),U.jsx(U1,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:g?U.jsx("img",{src:g,alt:`${h??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),U.jsx(U1,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:u?U.jsx("img",{src:u,alt:`${h??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),i?.ai_description?U.jsxs("section",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),U.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:i.ai_description})})]}):null,i?.ai_usage_instructions?U.jsxs("section",{children:[U.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),U.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:U.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:i.ai_usage_instructions})})]}):null,o?U.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),U.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),U.jsxs(PY,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[U.jsx("div",{className:"rf-flex-1",children:p?U.jsxs(gA,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(p,"_blank"),children:[U.jsx(wxi,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),U.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[U.jsx(gA,{variant:"outline",onClick:()=>n(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),U.jsx(gA,{onClick:A,disabled:a,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:a?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},zMi=()=>{const[t,e]=te.useState(null),[n,o]=te.useState(!1),i=te.useCallback(async(s,a)=>{o(!0);try{const A=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${a}`)}`);if(!A.ok)throw new Error(`Failed to load package details: ${A.status}`);const c=await A.json();e(c.package??null)}catch(A){console.error("Failed to fetch package details",A),e(null)}finally{o(!1)}},[]),r=te.useCallback(()=>{e(null),o(!1)},[]);return{details:t,isLoading:n,fetchDetails:i,reset:r}},JMi=(t,e)=>{const[n,o]=te.useState({circuitJson:null,error:null,isLoading:!1});return te.useEffect(()=>{if(!t||!bln(t)){o({circuitJson:null,error:null,isLoading:!1});return}let i=!1;return o({circuitJson:null,error:null,isLoading:!0}),kMi(t,e).then(r=>{i||o({circuitJson:r,error:null,isLoading:!1})}).catch(r=>{i||o({circuitJson:null,error:r instanceof Error?r.message:"Failed to load footprint preview",isLoading:!1})}),()=>{i=!0}},[t,e]),n},WMi=async(t,e)=>{const n={"Content-Type":"application/json"};e&&(n.Authorization=`Bearer ${e}`);const o=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:n,body:JSON.stringify({query:t})});if(!o.ok)throw new Error(`tscircuit registry error: ${o.status}`);return(await o.json()).packages??[]},jMi=({sessionToken:t})=>{const[e,n]=te.useState([]),[o,i]=te.useState(!1),[r,s]=te.useState(null),[a,A]=te.useState(!1),c=te.useCallback(async g=>{const u=g.trim();if(!u)return[];i(!0),s(null);try{const d=(await WMi(u,t)).map(m=>({source:"tscircuit.com",package:m}));return n(d),d}catch(h){return console.error("Error searching tscircuit packages",h),n([]),s(h instanceof Error?h.message:"Failed to search tscircuit packages"),[]}finally{i(!1),A(!0)}},[t]),l=te.useCallback(()=>{n([]),i(!1),s(null),A(!1)},[]);return{results:e,isSearching:o,error:r,hasSearched:a,search:c,reset:l}},qMi=t=>{const e=/^C(\d+)$/i.exec(t.trim());if(!e)return null;const n=Number(e[1]);if(!Number.isSafeInteger(n))return null;const o=`C${e[1]}`;return{source:"jlcpcb",component:{lcscId:n,manufacturer:o,partNumber:o,description:"Import directly from EasyEDA; stock and availability are unknown",package:"",isDirectLookup:!0}}},Pln=(t,e)=>{const n=qMi(t);return n?e.some(i=>i.component.partNumber.toUpperCase()===n.component.partNumber)?e:[n,...e]:e},XMi=t=>{const e=t.trim();return/^C\d+/i.test(e)?e.replace(/^C/i,""):e},$Mi=()=>{const[t,e]=te.useState([]),[n,o]=te.useState(!1),[i,r]=te.useState(null),[s,a]=te.useState(!1),A=te.useCallback(async l=>{const g=XMi(l);if(!g)return[];o(!0),r(null);try{const u=await Gwi(g,10),h=Pln(l,u.map(d=>({source:"jlcpcb",component:Ywi(d)})));return e(h),h}catch(u){console.error("Error searching JLCPCB components",u);const h=Pln(l,[]);return e(h),r(h.length>0?null:u instanceof Error?u.message:"Failed to search JLCPCB components"),h}finally{o(!1),a(!0)}},[]),c=te.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},ZMi=()=>{const[t,e]=te.useState([]),[n,o]=te.useState(!1),[i,r]=te.useState(null),[s,a]=te.useState(!1),A=te.useCallback(async l=>{const g=l.trim();if(!g)return[];o(!0),r(null);try{const h=(await DMi(g,20)).map(d=>({source:"kicad",footprint:NMi(d)}));return e(h),h}catch(u){return console.error("Error searching KiCad footprints",u),e([]),r(u instanceof Error?u.message:"Failed to search KiCad footprints"),[]}finally{o(!1),a(!0)}},[]),c=te.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},eDi=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:e,onKicadStringSelected:n})=>{const o=[];return t&&o.push("tscircuit.com"),e&&o.push("jlcpcb"),n&&o.push("kicad"),o},tDi=({isOpen:t,onClose:e,jlcpcbProxyRequestHeaders:n,onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r,jlcpcbProxyApiBase:s,tscircuitSessionToken:a})=>{x$();const A=te.useMemo(()=>eDi({onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r}),[o,i,r]),c=A.length>0,l=A.length===1,[g,u]=te.useState(A[0]??"tscircuit.com"),[h,d]=te.useState(""),[m,p]=te.useState(null),{results:_,isSearching:f,error:I,hasSearched:C,search:y,reset:x}=jMi({sessionToken:a}),{results:E,isSearching:B,error:b,hasSearched:Q,search:w,reset:D}=$Mi(),{results:k,isSearching:T,error:H,hasSearched:G,search:K,reset:Y}=ZMi(),{details:q,isLoading:ee,fetchDetails:j,reset:J}=zMi(),[ie,oe]=te.useState(null),[ne,le]=te.useState(!1),[ge,_e]=te.useState("pcb"),[ce,Ie]=te.useState(null),[he,Ce]=te.useState(!1),we=te.useMemo(()=>({jlcpcb:{headers:n,apiBase:s}}),[s,n]),{circuitJson:ve,error:pe,isLoading:Pe}=JMi(m,we),Me=bln(m);te.useEffect(()=>{Ie(null)},[m]);const Qe=te.useCallback(()=>{x(),D(),Y(),p(null)},[D,Y,x]);te.useEffect(()=>{t||(Qe(),d(""),le(!1),oe(null),Ie(null))},[t,Qe]),te.useEffect(()=>{d(""),p(null),g==="tscircuit.com"?x():g==="jlcpcb"?D():g==="kicad"&&Y()},[g,D,Y,x]);const Oe=je=>{p(je),oe(je),_e("pcb"),le(!0),J();const ht=je.package.org_owner_tscircuit_handle,Bt=je.package.unscoped_name;if(ht&&Bt){const Ct=Bt.split("/").pop()??Bt;j(ht,Ct)}},Ne=async()=>{h.trim()&&(p(null),g==="tscircuit.com"?await y(h):g==="jlcpcb"?await w(h):g==="kicad"&&await K(h))},Se=async je=>{try{if(Ie(null),Ce(!0),je.source==="kicad"){if(!o)throw new Error("KiCad handler not provided");await o({result:je,footprint:je.footprint.qualifiedName})}else if(je.source==="jlcpcb"){if(!r)throw new Error("JLCPCB handler not provided");const ht=await Uwi(je.component.partNumber,{headers:n,apiBase:s});await r({result:je,tsx:ht})}else if(je.source==="tscircuit.com"){if(!i)throw new Error("tscircuit package handler not provided");const ht=je.package.org_owner_tscircuit_handle,Bt=je.package.unscoped_name;if(!ht||!Bt)throw new Error("Missing package metadata");const Ct=Bt.split("/").pop()??Bt,Ht=`@tsci/${ht}.${Ct}`;await i({result:je,fullPackageName:Ht})}return!0}catch(ht){return console.error("Failed to import component",ht),Ie(ht instanceof Error?ht.message:"Failed to import component"),!1}finally{Ce(!1)}};let Le=[],ye=!1,ke=null,Ye=!1;g==="tscircuit.com"?(Le=_,ye=f,ke=I,Ye=C):g==="jlcpcb"?(Le=E,ye=B,ke=b,Ye=Q):g==="kicad"&&(Le=k,ye=T,ke=H,Ye=G);const $e=async()=>{if(!m)return;await Se(m)&&(e(),Qe(),d(""))},st=je=>{je||e()},it=je=>{le(je),je||oe(null)};return U.jsxs(OR,{open:t,onOpenChange:st,children:[U.jsxs(ZP,{style:{width:"calc(100vw - 2rem)",maxWidth:Me?"min(1120px, calc(100vw - 2rem))":"min(672px, calc(100vw - 2rem))",zIndex:vln.importComponentDialog},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-overflow-x-hidden rf-flex rf-flex-col",children:[U.jsxs(ew,{children:[U.jsxs(tw,{className:"rf-text-lg sm:rf-text-xl",children:["Import ",l?kme[g].label:""," ","Component"]}),U.jsx(GR,{className:"rf-text-sm",children:c?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),c?U.jsxs(kMe,{value:g,onValueChange:je=>u(je),className:"rf-min-w-0 rf-w-full",children:[!l&&U.jsx(z0e,{className:"rf-flex rf-w-full rf-gap-2",children:A.map(je=>U.jsx(Y6,{value:je,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:kme[je].label},je))}),U.jsxs("div",{className:"rf-min-w-0",style:Me?{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(360px, 0.95fr)",gap:"1.5rem",alignItems:"start"}:void 0,children:[U.jsxs("div",{className:"rf-min-w-0",children:[U.jsx(FMi,{query:h,placeholder:kme[g].placeholder,isSearching:ye,onQueryChange:d,onSubmit:Ne}),U.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-overflow-x-hidden rf-border rf-rounded-md rf-min-w-0",children:ye?U.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[U.jsx(rE,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),U.jsx("p",{children:"Searching..."})]}):Le.length>0?U.jsx(UMi,{results:Le,selected:m,onSelect:p,onShowDetails:g==="tscircuit.com"?Oe:void 0}):U.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:ke?`Error: ${ke}`:Ye?kme[g].emptyMessage:"Enter a search term to find components"})})]}),Me?U.jsx("div",{className:"rf-mt-4",children:U.jsx(KMi,{circuitJson:ve,error:pe,isLoading:Pe,height:325})}):null]})]}):null,ce?U.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:ce}):null,U.jsxs(PY,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[U.jsx(gA,{variant:"outline",onClick:e,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),U.jsx(gA,{onClick:$e,disabled:!m||he,className:"rf-order-1 sm:rf-order-2",children:he?U.jsx(rE,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),U.jsx(VMi,{packageResult:ie,isOpen:ne,onOpenChange:it,isLoading:ee,details:q,previewTab:ge,onPreviewTabChange:je=>_e(je),isSubmitting:he,onImport:()=>{ie&&Se(ie).then(je=>{je&&(le(!1),e(),Qe(),d(""))})}})]})},nDi=t=>{const e=t.match(/export const (\w+) =/);if(!e)throw new Error("Could not determine component name from TSX contents");return e[1]},wln=t=>{const e=od(s=>s.pushEvent),n=od(s=>s.upsertFile),o=async({result:s,fullPackageName:a})=>{const c=s.package.unscoped_name??s.package.name;await ia.promise(e({event_type:"INSTALL_PACKAGE",full_package_name:a}),{loading:`Requesting install for "${c}"`,success:`Install requested for "${c}"`,error:l=>`Failed to request install: ${l instanceof Error?l.message:String(l)}`})},i=async({footprint:s})=>{await ia.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:a=>`Failed to copy footprint: ${a instanceof Error?a.message:String(a)}`})},r=async({result:s,tsx:a})=>{const c=`imports/${nDi(a)}.tsx`;await ia.promise(n(c,a),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${c}"`,error:l=>`Failed to import component: ${l instanceof Error?l.message:String(l)}`})};return U.jsx(tDi,{...t,onTscircuitPackageSelected:o,onKicadStringSelected:i,onJlcpcbComponentTsxLoaded:r})};wln.displayName="ImportComponentDialogForCli";const oDi=async({circuitJson:t,projectName:e})=>{const{convertCircuitJsonToAltiumZip:n}=await Promise.resolve().then(()=>Qnr),o=await n(t,e);return new Blob([new Uint8Array(o)],{type:"application/zip"})},iDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const n=await oDi({circuitJson:t,projectName:e});pE(n,{fileName:`${e}_altium_project.zip`})})(),{loading:"Generating Altium project...",success:"Altium project ZIP ready",error:n=>`Failed to generate Altium project: ${n instanceof Error?n.message:String(n)}`})};var OJe={exports:{}},Mln;function rDi(){return Mln||(Mln=1,(function(t,e){var n={env:{},version:""};(function(o){t.exports=o()})(function(){return(function o(i,r,s){function a(l,g){if(!r[l]){if(!i[l]){var u=typeof l8=="function"&&l8;if(!g&&u)return u(l,!0);if(A)return A(l,!0);var h=new Error("Cannot find module '"+l+"'");throw h.code="MODULE_NOT_FOUND",h}var d=r[l]={exports:{}};i[l][0].call(d.exports,function(m){var p=i[l][1][m];return a(p||m)},d,d.exports,o,i,r,s)}return r[l].exports}for(var A=typeof l8=="function"&&l8,c=0;c<s.length;c++)a(s[c]);return a})({1:[function(o,i,r){var s=o("./utils"),a=o("./support"),A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(c){for(var l,g,u,h,d,m,p,_=[],f=0,I=c.length,C=I,y=s.getTypeOf(c)!=="string";f<c.length;)C=I-f,u=y?(l=c[f++],g=f<I?c[f++]:0,f<I?c[f++]:0):(l=c.charCodeAt(f++),g=f<I?c.charCodeAt(f++):0,f<I?c.charCodeAt(f++):0),h=l>>2,d=(3&l)<<4|g>>4,m=1<C?(15&g)<<2|u>>6:64,p=2<C?63&u:64,_.push(A.charAt(h)+A.charAt(d)+A.charAt(m)+A.charAt(p));return _.join("")},r.decode=function(c){var l,g,u,h,d,m,p=0,_=0,f="data:";if(c.substr(0,f.length)===f)throw new Error("Invalid base64 input, it looks like a data url.");var I,C=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===A.charAt(64)&&C--,c.charAt(c.length-2)===A.charAt(64)&&C--,C%1!=0)throw new Error("Invalid base64 input, bad content length.");for(I=a.uint8array?new Uint8Array(0|C):new Array(0|C);p<c.length;)l=A.indexOf(c.charAt(p++))<<2|(h=A.indexOf(c.charAt(p++)))>>4,g=(15&h)<<4|(d=A.indexOf(c.charAt(p++)))>>2,u=(3&d)<<6|(m=A.indexOf(c.charAt(p++))),I[_++]=l,d!==64&&(I[_++]=g),m!==64&&(I[_++]=u);return I}},{"./support":30,"./utils":32}],2:[function(o,i,r){var s=o("./external"),a=o("./stream/DataWorker"),A=o("./stream/Crc32Probe"),c=o("./stream/DataLengthProbe");function l(g,u,h,d,m){this.compressedSize=g,this.uncompressedSize=u,this.crc32=h,this.compression=d,this.compressedContent=m}l.prototype={getContentWorker:function(){var g=new a(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),u=this;return g.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new a(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},l.createWorkerFrom=function(g,u,h){return g.pipe(new A).pipe(new c("uncompressedSize")).pipe(u.compressWorker(h)).pipe(new c("compressedSize")).withStreamInfo("compression",u)},i.exports=l},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(o,i,r){var s=o("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=o("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(o,i,r){var s=o("./utils"),a=(function(){for(var A,c=[],l=0;l<256;l++){A=l;for(var g=0;g<8;g++)A=1&A?3988292384^A>>>1:A>>>1;c[l]=A}return c})();i.exports=function(A,c){return A!==void 0&&A.length?s.getTypeOf(A)!=="string"?(function(l,g,u,h){var d=a,m=h+u;l^=-1;for(var p=h;p<m;p++)l=l>>>8^d[255&(l^g[p])];return-1^l})(0|c,A,A.length,0):(function(l,g,u,h){var d=a,m=h+u;l^=-1;for(var p=h;p<m;p++)l=l>>>8^d[255&(l^g.charCodeAt(p))];return-1^l})(0|c,A,A.length,0):0}},{"./utils":32}],5:[function(o,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(o,i,r){var s=null;s=typeof Promise<"u"?Promise:o("lie"),i.exports={Promise:s}},{lie:37}],7:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=o("pako"),A=o("./utils"),c=o("./stream/GenericWorker"),l=s?"uint8array":"array";function g(u,h){c.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=h,this.meta={}}r.magic="\b\0",A.inherits(g,c),g.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(A.transformTo(l,u.data),!1)},g.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(h){u.push({data:h,meta:u.meta})}},r.compressWorker=function(u){return new g("Deflate",u)},r.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(o,i,r){function s(d,m){var p,_="";for(p=0;p<m;p++)_+=String.fromCharCode(255&d),d>>>=8;return _}function a(d,m,p,_,f,I){var C,y,x=d.file,E=d.compression,B=I!==l.utf8encode,b=A.transformTo("string",I(x.name)),Q=A.transformTo("string",l.utf8encode(x.name)),w=x.comment,D=A.transformTo("string",I(w)),k=A.transformTo("string",l.utf8encode(w)),T=Q.length!==x.name.length,H=k.length!==w.length,G="",K="",Y="",q=x.dir,ee=x.date,j={crc32:0,compressedSize:0,uncompressedSize:0};m&&!p||(j.crc32=d.crc32,j.compressedSize=d.compressedSize,j.uncompressedSize=d.uncompressedSize);var J=0;m&&(J|=8),B||!T&&!H||(J|=2048);var ie=0,oe=0;q&&(ie|=16),f==="UNIX"?(oe=798,ie|=(function(le,ge){var _e=le;return le||(_e=ge?16893:33204),(65535&_e)<<16})(x.unixPermissions,q)):(oe=20,ie|=(function(le){return 63&(le||0)})(x.dosPermissions)),C=ee.getUTCHours(),C<<=6,C|=ee.getUTCMinutes(),C<<=5,C|=ee.getUTCSeconds()/2,y=ee.getUTCFullYear()-1980,y<<=4,y|=ee.getUTCMonth()+1,y<<=5,y|=ee.getUTCDate(),T&&(K=s(1,1)+s(g(b),4)+Q,G+="up"+s(K.length,2)+K),H&&(Y=s(1,1)+s(g(D),4)+k,G+="uc"+s(Y.length,2)+Y);var ne="";return ne+=`
|
|
5764
5588
|
\0`,ne+=s(J,2),ne+=E.magic,ne+=s(C,2),ne+=s(y,2),ne+=s(j.crc32,4),ne+=s(j.compressedSize,4),ne+=s(j.uncompressedSize,4),ne+=s(b.length,2),ne+=s(G.length,2),{fileRecord:u.LOCAL_FILE_HEADER+ne+b+G,dirRecord:u.CENTRAL_FILE_HEADER+s(oe,2)+ne+s(D.length,2)+"\0\0\0\0"+s(ie,4)+s(_,4)+b+G+D}}var A=o("../utils"),c=o("../stream/GenericWorker"),l=o("../utf8"),g=o("../crc32"),u=o("../signature");function h(d,m,p,_){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=m,this.zipPlatform=p,this.encodeFileName=_,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}A.inherits(h,c),h.prototype.push=function(d){var m=d.meta.percent||0,p=this.entriesCount,_=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,c.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:p?(m+100*(p-_-1))/p:100}}))},h.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var m=this.streamFiles&&!d.file.dir;if(m){var p=a(d,m,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:p.fileRecord,meta:{percent:0}})}else this.accumulate=!0},h.prototype.closedSource=function(d){this.accumulate=!1;var m=this.streamFiles&&!d.file.dir,p=a(d,m,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(p.dirRecord),m)this.push({data:(function(_){return u.DATA_DESCRIPTOR+s(_.crc32,4)+s(_.compressedSize,4)+s(_.uncompressedSize,4)})(d),meta:{percent:100}});else for(this.push({data:p.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},h.prototype.flush=function(){for(var d=this.bytesWritten,m=0;m<this.dirRecords.length;m++)this.push({data:this.dirRecords[m],meta:{percent:100}});var p=this.bytesWritten-d,_=(function(f,I,C,y,x){var E=A.transformTo("string",x(y));return u.CENTRAL_DIRECTORY_END+"\0\0\0\0"+s(f,2)+s(f,2)+s(I,4)+s(C,4)+s(E.length,2)+E})(this.dirRecords.length,p,d,this.zipComment,this.encodeFileName);this.push({data:_,meta:{percent:100}})},h.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},h.prototype.registerPrevious=function(d){this._sources.push(d);var m=this;return d.on("data",function(p){m.processChunk(p)}),d.on("end",function(){m.closedSource(m.previous.streamInfo),m._sources.length?m.prepareNextSource():m.end()}),d.on("error",function(p){m.error(p)}),this},h.prototype.resume=function(){return!!c.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},h.prototype.error=function(d){var m=this._sources;if(!c.prototype.error.call(this,d))return!1;for(var p=0;p<m.length;p++)try{m[p].error(d)}catch{}return!0},h.prototype.lock=function(){c.prototype.lock.call(this);for(var d=this._sources,m=0;m<d.length;m++)d[m].lock()},i.exports=h},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(o,i,r){var s=o("../compressions"),a=o("./ZipFileWorker");r.generateWorker=function(A,c,l){var g=new a(c.streamFiles,l,c.platform,c.encodeFileName),u=0;try{A.forEach(function(h,d){u++;var m=(function(I,C){var y=I||C,x=s[y];if(!x)throw new Error(y+" is not a valid compression method !");return x})(d.options.compression,c.compression),p=d.options.compressionOptions||c.compressionOptions||{},_=d.dir,f=d.date;d._compressWorker(m,p).withStreamInfo("file",{name:h,dir:_,date:f,comment:d.comment||"",unixPermissions:d.unixPermissions,dosPermissions:d.dosPermissions}).pipe(g)}),g.entriesCount=u}catch(h){g.error(h)}return g}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(o,i,r){function s(){if(!(this instanceof s))return new s;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var a=new s;for(var A in this)typeof this[A]!="function"&&(a[A]=this[A]);return a}}(s.prototype=o("./object")).loadAsync=o("./load"),s.support=o("./support"),s.defaults=o("./defaults"),s.version="3.10.1",s.loadAsync=function(a,A){return new s().loadAsync(a,A)},s.external=o("./external"),i.exports=s},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(o,i,r){var s=o("./utils"),a=o("./external"),A=o("./utf8"),c=o("./zipEntries"),l=o("./stream/Crc32Probe"),g=o("./nodejsUtils");function u(h){return new a.Promise(function(d,m){var p=h.decompressed.getContentWorker().pipe(new l);p.on("error",function(_){m(_)}).on("end",function(){p.streamInfo.crc32!==h.decompressed.crc32?m(new Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}i.exports=function(h,d){var m=this;return d=s.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:A.utf8decode}),g.isNode&&g.isStream(h)?a.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):s.prepareContent("the loaded zip file",h,!0,d.optimizedBinaryString,d.base64).then(function(p){var _=new c(d);return _.load(p),_}).then(function(p){var _=[a.Promise.resolve(p)],f=p.files;if(d.checkCRC32)for(var I=0;I<f.length;I++)_.push(u(f[I]));return a.Promise.all(_)}).then(function(p){for(var _=p.shift(),f=_.files,I=0;I<f.length;I++){var C=f[I],y=C.fileNameStr,x=s.resolve(C.fileNameStr);m.file(x,C.decompressed,{binary:!0,optimizedBinaryString:!0,date:C.date,dir:C.dir,comment:C.fileCommentStr.length?C.fileCommentStr:null,unixPermissions:C.unixPermissions,dosPermissions:C.dosPermissions,createFolders:d.createFolders}),C.dir||(m.file(x).unsafeOriginalName=y)}return _.zipComment.length&&(m.comment=_.zipComment),m})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(o,i,r){var s=o("../utils"),a=o("../stream/GenericWorker");function A(c,l){a.call(this,"Nodejs stream input adapter for "+c),this._upstreamEnded=!1,this._bindStream(l)}s.inherits(A,a),A.prototype._bindStream=function(c){var l=this;(this._stream=c).pause(),c.on("data",function(g){l.push({data:g,meta:{percent:0}})}).on("error",function(g){l.isPaused?this.generatedError=g:l.error(g)}).on("end",function(){l.isPaused?l._upstreamEnded=!0:l.end()})},A.prototype.pause=function(){return!!a.prototype.pause.call(this)&&(this._stream.pause(),!0)},A.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},i.exports=A},{"../stream/GenericWorker":28,"../utils":32}],13:[function(o,i,r){var s=o("readable-stream").Readable;function a(A,c,l){s.call(this,c),this._helper=A;var g=this;A.on("data",function(u,h){g.push(u)||g._helper.pause(),l&&l(h)}).on("error",function(u){g.emit("error",u)}).on("end",function(){g.push(null)})}o("../utils").inherits(a,s),a.prototype._read=function(){this._helper.resume()},i.exports=a},{"../utils":32,"readable-stream":16}],14:[function(o,i,r){i.exports={isNode:typeof Buffer<"u",newBufferFrom:function(s,a){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(s,a);if(typeof s=="number")throw new Error('The "data" argument must not be a number');return new Buffer(s,a)},allocBuffer:function(s){if(Buffer.alloc)return Buffer.alloc(s);var a=new Buffer(s);return a.fill(0),a},isBuffer:function(s){return Buffer.isBuffer(s)},isStream:function(s){return s&&typeof s.on=="function"&&typeof s.pause=="function"&&typeof s.resume=="function"}}},{}],15:[function(o,i,r){function s(x,E,B){var b,Q=A.getTypeOf(E),w=A.extend(B||{},g);w.date=w.date||new Date,w.compression!==null&&(w.compression=w.compression.toUpperCase()),typeof w.unixPermissions=="string"&&(w.unixPermissions=parseInt(w.unixPermissions,8)),w.unixPermissions&&16384&w.unixPermissions&&(w.dir=!0),w.dosPermissions&&16&w.dosPermissions&&(w.dir=!0),w.dir&&(x=f(x)),w.createFolders&&(b=_(x))&&I.call(this,b,!0);var D=Q==="string"&&w.binary===!1&&w.base64===!1;B&&B.binary!==void 0||(w.binary=!D),(E instanceof u&&E.uncompressedSize===0||w.dir||!E||E.length===0)&&(w.base64=!1,w.binary=!0,E="",w.compression="STORE",Q="string");var k=null;k=E instanceof u||E instanceof c?E:m.isNode&&m.isStream(E)?new p(x,E):A.prepareContent(x,E,w.binary,w.optimizedBinaryString,w.base64);var T=new h(x,k,w);this.files[x]=T}var a=o("./utf8"),A=o("./utils"),c=o("./stream/GenericWorker"),l=o("./stream/StreamHelper"),g=o("./defaults"),u=o("./compressedObject"),h=o("./zipObject"),d=o("./generate"),m=o("./nodejsUtils"),p=o("./nodejs/NodejsStreamInputAdapter"),_=function(x){x.slice(-1)==="/"&&(x=x.substring(0,x.length-1));var E=x.lastIndexOf("/");return 0<E?x.substring(0,E):""},f=function(x){return x.slice(-1)!=="/"&&(x+="/"),x},I=function(x,E){return E=E!==void 0?E:g.createFolders,x=f(x),this.files[x]||s.call(this,x,null,{dir:!0,createFolders:E}),this.files[x]};function C(x){return Object.prototype.toString.call(x)==="[object RegExp]"}var y={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(x){var E,B,b;for(E in this.files)b=this.files[E],(B=E.slice(this.root.length,E.length))&&E.slice(0,this.root.length)===this.root&&x(B,b)},filter:function(x){var E=[];return this.forEach(function(B,b){x(B,b)&&E.push(b)}),E},file:function(x,E,B){if(arguments.length!==1)return x=this.root+x,s.call(this,x,E,B),this;if(C(x)){var b=x;return this.filter(function(w,D){return!D.dir&&b.test(w)})}var Q=this.files[this.root+x];return Q&&!Q.dir?Q:null},folder:function(x){if(!x)return this;if(C(x))return this.filter(function(Q,w){return w.dir&&x.test(Q)});var E=this.root+x,B=I.call(this,E),b=this.clone();return b.root=B.name,b},remove:function(x){x=this.root+x;var E=this.files[x];if(E||(x.slice(-1)!=="/"&&(x+="/"),E=this.files[x]),E&&!E.dir)delete this.files[x];else for(var B=this.filter(function(Q,w){return w.name.slice(0,x.length)===x}),b=0;b<B.length;b++)delete this.files[B[b].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(x){var E,B={};try{if((B=A.extend(x||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:a.utf8encode})).type=B.type.toLowerCase(),B.compression=B.compression.toUpperCase(),B.type==="binarystring"&&(B.type="string"),!B.type)throw new Error("No output type specified.");A.checkSupport(B.type),B.platform!=="darwin"&&B.platform!=="freebsd"&&B.platform!=="linux"&&B.platform!=="sunos"||(B.platform="UNIX"),B.platform==="win32"&&(B.platform="DOS");var b=B.comment||this.comment||"";E=d.generateWorker(this,B,b)}catch(Q){(E=new c("error")).error(Q)}return new l(E,B.type||"string",B.mimeType)},generateAsync:function(x,E){return this.generateInternalStream(x).accumulate(E)},generateNodeStream:function(x,E){return(x=x||{}).type||(x.type="nodebuffer"),this.generateInternalStream(x).toNodejsStream(E)}};i.exports=y},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(o,i,r){i.exports=o("stream")},{stream:void 0}],17:[function(o,i,r){var s=o("./DataReader");function a(A){s.call(this,A);for(var c=0;c<this.data.length;c++)A[c]=255&A[c]}o("../utils").inherits(a,s),a.prototype.byteAt=function(A){return this.data[this.zero+A]},a.prototype.lastIndexOfSignature=function(A){for(var c=A.charCodeAt(0),l=A.charCodeAt(1),g=A.charCodeAt(2),u=A.charCodeAt(3),h=this.length-4;0<=h;--h)if(this.data[h]===c&&this.data[h+1]===l&&this.data[h+2]===g&&this.data[h+3]===u)return h-this.zero;return-1},a.prototype.readAndCheckSignature=function(A){var c=A.charCodeAt(0),l=A.charCodeAt(1),g=A.charCodeAt(2),u=A.charCodeAt(3),h=this.readData(4);return c===h[0]&&l===h[1]&&g===h[2]&&u===h[3]},a.prototype.readData=function(A){if(this.checkOffset(A),A===0)return[];var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./DataReader":18}],18:[function(o,i,r){var s=o("../utils");function a(A){this.data=A,this.length=A.length,this.index=0,this.zero=0}a.prototype={checkOffset:function(A){this.checkIndex(this.index+A)},checkIndex:function(A){if(this.length<this.zero+A||A<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+A+"). Corrupted zip ?")},setIndex:function(A){this.checkIndex(A),this.index=A},skip:function(A){this.setIndex(this.index+A)},byteAt:function(){},readInt:function(A){var c,l=0;for(this.checkOffset(A),c=this.index+A-1;c>=this.index;c--)l=(l<<8)+this.byteAt(c);return this.index+=A,l},readString:function(A){return s.transformTo("string",this.readData(A))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var A=this.readInt(4);return new Date(Date.UTC(1980+(A>>25&127),(A>>21&15)-1,A>>16&31,A>>11&31,A>>5&63,(31&A)<<1))}},i.exports=a},{"../utils":32}],19:[function(o,i,r){var s=o("./Uint8ArrayReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.readData=function(A){this.checkOffset(A);var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(o,i,r){var s=o("./DataReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.byteAt=function(A){return this.data.charCodeAt(this.zero+A)},a.prototype.lastIndexOfSignature=function(A){return this.data.lastIndexOf(A)-this.zero},a.prototype.readAndCheckSignature=function(A){return A===this.readData(4)},a.prototype.readData=function(A){this.checkOffset(A);var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./DataReader":18}],21:[function(o,i,r){var s=o("./ArrayReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.readData=function(A){if(this.checkOffset(A),A===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(o,i,r){var s=o("../utils"),a=o("../support"),A=o("./ArrayReader"),c=o("./StringReader"),l=o("./NodeBufferReader"),g=o("./Uint8ArrayReader");i.exports=function(u){var h=s.getTypeOf(u);return s.checkSupport(h),h!=="string"||a.uint8array?h==="nodebuffer"?new l(u):a.uint8array?new g(s.transformTo("uint8array",u)):new A(s.transformTo("array",u)):new c(u)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(o,i,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(o,i,r){var s=o("./GenericWorker"),a=o("../utils");function A(c){s.call(this,"ConvertWorker to "+c),this.destType=c}a.inherits(A,s),A.prototype.processChunk=function(c){this.push({data:a.transformTo(this.destType,c.data),meta:c.meta})},i.exports=A},{"../utils":32,"./GenericWorker":28}],25:[function(o,i,r){var s=o("./GenericWorker"),a=o("../crc32");function A(){s.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}o("../utils").inherits(A,s),A.prototype.processChunk=function(c){this.streamInfo.crc32=a(c.data,this.streamInfo.crc32||0),this.push(c)},i.exports=A},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(o,i,r){var s=o("../utils"),a=o("./GenericWorker");function A(c){a.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}s.inherits(A,a),A.prototype.processChunk=function(c){if(c){var l=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=l+c.data.length}a.prototype.processChunk.call(this,c)},i.exports=A},{"../utils":32,"./GenericWorker":28}],27:[function(o,i,r){var s=o("../utils"),a=o("./GenericWorker");function A(c){a.call(this,"DataWorker");var l=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(g){l.dataIsReady=!0,l.data=g,l.max=g&&g.length||0,l.type=s.getTypeOf(g),l.isPaused||l._tickAndRepeat()},function(g){l.error(g)})}s.inherits(A,a),A.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},A.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,s.delay(this._tickAndRepeat,[],this)),!0)},A.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(s.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},A.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,l=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,l);break;case"uint8array":c=this.data.subarray(this.index,l);break;case"array":case"nodebuffer":c=this.data.slice(this.index,l)}return this.index=l,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=A},{"../utils":32,"./GenericWorker":28}],28:[function(o,i,r){function s(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}s.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,A){return this._listeners[a].push(A),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,A){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,A)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var A=this;return a.on("data",function(c){A.processChunk(c)}),a.on("end",function(){A.end()}),a.on("error",function(c){A.error(c)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var a=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,A){return this.extraStreamInfo[a]=A,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},i.exports=s},{}],29:[function(o,i,r){var s=o("../utils"),a=o("./ConvertWorker"),A=o("./GenericWorker"),c=o("../base64"),l=o("../support"),g=o("../external"),u=null;if(l.nodestream)try{u=o("../nodejs/NodejsStreamOutputAdapter")}catch{}function h(m,p){return new g.Promise(function(_,f){var I=[],C=m._internalType,y=m._outputType,x=m._mimeType;m.on("data",function(E,B){I.push(E),p&&p(B)}).on("error",function(E){I=[],f(E)}).on("end",function(){try{var E=(function(B,b,Q){switch(B){case"blob":return s.newBlob(s.transformTo("arraybuffer",b),Q);case"base64":return c.encode(b);default:return s.transformTo(B,b)}})(y,(function(B,b){var Q,w=0,D=null,k=0;for(Q=0;Q<b.length;Q++)k+=b[Q].length;switch(B){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(D=new Uint8Array(k),Q=0;Q<b.length;Q++)D.set(b[Q],w),w+=b[Q].length;return D;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+B+"'")}})(C,I),x);_(E)}catch(B){f(B)}I=[]}).resume()})}function d(m,p,_){var f=p;switch(p){case"blob":case"arraybuffer":f="uint8array";break;case"base64":f="string"}try{this._internalType=f,this._outputType=p,this._mimeType=_,s.checkSupport(f),this._worker=m.pipe(new a(f)),m.lock()}catch(I){this._worker=new A("error"),this._worker.error(I)}}d.prototype={accumulate:function(m){return h(this,m)},on:function(m,p){var _=this;return m==="data"?this._worker.on(m,function(f){p.call(_,f.data,f.meta)}):this._worker.on(m,function(){s.delay(p,arguments,_)}),this},resume:function(){return s.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(m){if(s.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new u(this,{objectMode:this._outputType!=="nodebuffer"},m)}},i.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(o,i,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",r.nodebuffer=typeof Buffer<"u",r.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")r.blob=!1;else{var s=new ArrayBuffer(0);try{r.blob=new Blob([s],{type:"application/zip"}).size===0}catch{try{var a=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);a.append(s),r.blob=a.getBlob("application/zip").size===0}catch{r.blob=!1}}}try{r.nodestream=!!o("readable-stream").Readable}catch{r.nodestream=!1}},{"readable-stream":16}],31:[function(o,i,r){for(var s=o("./utils"),a=o("./support"),A=o("./nodejsUtils"),c=o("./stream/GenericWorker"),l=new Array(256),g=0;g<256;g++)l[g]=252<=g?6:248<=g?5:240<=g?4:224<=g?3:192<=g?2:1;l[254]=l[254]=1;function u(){c.call(this,"utf-8 decode"),this.leftOver=null}function h(){c.call(this,"utf-8 encode")}r.utf8encode=function(d){return a.nodebuffer?A.newBufferFrom(d,"utf-8"):(function(m){var p,_,f,I,C,y=m.length,x=0;for(I=0;I<y;I++)(64512&(_=m.charCodeAt(I)))==55296&&I+1<y&&(64512&(f=m.charCodeAt(I+1)))==56320&&(_=65536+(_-55296<<10)+(f-56320),I++),x+=_<128?1:_<2048?2:_<65536?3:4;for(p=a.uint8array?new Uint8Array(x):new Array(x),I=C=0;C<x;I++)(64512&(_=m.charCodeAt(I)))==55296&&I+1<y&&(64512&(f=m.charCodeAt(I+1)))==56320&&(_=65536+(_-55296<<10)+(f-56320),I++),_<128?p[C++]=_:(_<2048?p[C++]=192|_>>>6:(_<65536?p[C++]=224|_>>>12:(p[C++]=240|_>>>18,p[C++]=128|_>>>12&63),p[C++]=128|_>>>6&63),p[C++]=128|63&_);return p})(d)},r.utf8decode=function(d){return a.nodebuffer?s.transformTo("nodebuffer",d).toString("utf-8"):(function(m){var p,_,f,I,C=m.length,y=new Array(2*C);for(p=_=0;p<C;)if((f=m[p++])<128)y[_++]=f;else if(4<(I=l[f]))y[_++]=65533,p+=I-1;else{for(f&=I===2?31:I===3?15:7;1<I&&p<C;)f=f<<6|63&m[p++],I--;1<I?y[_++]=65533:f<65536?y[_++]=f:(f-=65536,y[_++]=55296|f>>10&1023,y[_++]=56320|1023&f)}return y.length!==_&&(y.subarray?y=y.subarray(0,_):y.length=_),s.applyFromCharCode(y)})(d=s.transformTo(a.uint8array?"uint8array":"array",d))},s.inherits(u,c),u.prototype.processChunk=function(d){var m=s.transformTo(a.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var p=m;(m=new Uint8Array(p.length+this.leftOver.length)).set(this.leftOver,0),m.set(p,this.leftOver.length)}else m=this.leftOver.concat(m);this.leftOver=null}var _=(function(I,C){var y;for((C=C||I.length)>I.length&&(C=I.length),y=C-1;0<=y&&(192&I[y])==128;)y--;return y<0||y===0?C:y+l[I[y]]>C?y:C})(m),f=m;_!==m.length&&(a.uint8array?(f=m.subarray(0,_),this.leftOver=m.subarray(_,m.length)):(f=m.slice(0,_),this.leftOver=m.slice(_,m.length))),this.push({data:r.utf8decode(f),meta:d.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,s.inherits(h,c),h.prototype.processChunk=function(d){this.push({data:r.utf8encode(d.data),meta:d.meta})},r.Utf8EncodeWorker=h},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(o,i,r){var s=o("./support"),a=o("./base64"),A=o("./nodejsUtils"),c=o("./external");function l(p){return p}function g(p,_){for(var f=0;f<p.length;++f)_[f]=255&p.charCodeAt(f);return _}o("setimmediate"),r.newBlob=function(p,_){r.checkSupport("blob");try{return new Blob([p],{type:_})}catch{try{var f=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return f.append(p),f.getBlob(_)}catch{throw new Error("Bug : can't construct the Blob.")}}};var u={stringifyByChunk:function(p,_,f){var I=[],C=0,y=p.length;if(y<=f)return String.fromCharCode.apply(null,p);for(;C<y;)_==="array"||_==="nodebuffer"?I.push(String.fromCharCode.apply(null,p.slice(C,Math.min(C+f,y)))):I.push(String.fromCharCode.apply(null,p.subarray(C,Math.min(C+f,y)))),C+=f;return I.join("")},stringifyByChar:function(p){for(var _="",f=0;f<p.length;f++)_+=String.fromCharCode(p[f]);return _},applyCanBeUsed:{uint8array:(function(){try{return s.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return s.nodebuffer&&String.fromCharCode.apply(null,A.allocBuffer(1)).length===1}catch{return!1}})()}};function h(p){var _=65536,f=r.getTypeOf(p),I=!0;if(f==="uint8array"?I=u.applyCanBeUsed.uint8array:f==="nodebuffer"&&(I=u.applyCanBeUsed.nodebuffer),I)for(;1<_;)try{return u.stringifyByChunk(p,f,_)}catch{_=Math.floor(_/2)}return u.stringifyByChar(p)}function d(p,_){for(var f=0;f<p.length;f++)_[f]=p[f];return _}r.applyFromCharCode=h;var m={};m.string={string:l,array:function(p){return g(p,new Array(p.length))},arraybuffer:function(p){return m.string.uint8array(p).buffer},uint8array:function(p){return g(p,new Uint8Array(p.length))},nodebuffer:function(p){return g(p,A.allocBuffer(p.length))}},m.array={string:h,array:l,arraybuffer:function(p){return new Uint8Array(p).buffer},uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return A.newBufferFrom(p)}},m.arraybuffer={string:function(p){return h(new Uint8Array(p))},array:function(p){return d(new Uint8Array(p),new Array(p.byteLength))},arraybuffer:l,uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return A.newBufferFrom(new Uint8Array(p))}},m.uint8array={string:h,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return p.buffer},uint8array:l,nodebuffer:function(p){return A.newBufferFrom(p)}},m.nodebuffer={string:h,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return m.nodebuffer.uint8array(p).buffer},uint8array:function(p){return d(p,new Uint8Array(p.length))},nodebuffer:l},r.transformTo=function(p,_){if(_=_||"",!p)return _;r.checkSupport(p);var f=r.getTypeOf(_);return m[f][p](_)},r.resolve=function(p){for(var _=p.split("/"),f=[],I=0;I<_.length;I++){var C=_[I];C==="."||C===""&&I!==0&&I!==_.length-1||(C===".."?f.pop():f.push(C))}return f.join("/")},r.getTypeOf=function(p){return typeof p=="string"?"string":Object.prototype.toString.call(p)==="[object Array]"?"array":s.nodebuffer&&A.isBuffer(p)?"nodebuffer":s.uint8array&&p instanceof Uint8Array?"uint8array":s.arraybuffer&&p instanceof ArrayBuffer?"arraybuffer":void 0},r.checkSupport=function(p){if(!s[p.toLowerCase()])throw new Error(p+" is not supported by this platform")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(p){var _,f,I="";for(f=0;f<(p||"").length;f++)I+="\\x"+((_=p.charCodeAt(f))<16?"0":"")+_.toString(16).toUpperCase();return I},r.delay=function(p,_,f){setImmediate(function(){p.apply(f||null,_||[])})},r.inherits=function(p,_){function f(){}f.prototype=_.prototype,p.prototype=new f},r.extend=function(){var p,_,f={};for(p=0;p<arguments.length;p++)for(_ in arguments[p])Object.prototype.hasOwnProperty.call(arguments[p],_)&&f[_]===void 0&&(f[_]=arguments[p][_]);return f},r.prepareContent=function(p,_,f,I,C){return c.Promise.resolve(_).then(function(y){return s.blob&&(y instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(y))!==-1)&&typeof FileReader<"u"?new c.Promise(function(x,E){var B=new FileReader;B.onload=function(b){x(b.target.result)},B.onerror=function(b){E(b.target.error)},B.readAsArrayBuffer(y)}):y}).then(function(y){var x=r.getTypeOf(y);return x?(x==="arraybuffer"?y=r.transformTo("uint8array",y):x==="string"&&(C?y=a.decode(y):f&&I!==!0&&(y=(function(E){return g(E,s.uint8array?new Uint8Array(E.length):new Array(E.length))})(y))),y):c.Promise.reject(new Error("Can't read the data of '"+p+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(o,i,r){var s=o("./reader/readerFor"),a=o("./utils"),A=o("./signature"),c=o("./zipEntry"),l=o("./support");function g(u){this.files=[],this.loadOptions=u}g.prototype={checkSignature:function(u){if(!this.reader.readAndCheckSignature(u)){this.reader.index-=4;var h=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+a.pretty(h)+", expected "+a.pretty(u)+")")}},isSignature:function(u,h){var d=this.reader.index;this.reader.setIndex(u);var m=this.reader.readString(4)===h;return this.reader.setIndex(d),m},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var u=this.reader.readData(this.zipCommentLength),h=l.uint8array?"uint8array":"array",d=a.transformTo(h,u);this.zipComment=this.loadOptions.decodeFileName(d)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var u,h,d,m=this.zip64EndOfCentralSize-44;0<m;)u=this.reader.readInt(2),h=this.reader.readInt(4),d=this.reader.readData(h),this.zip64ExtensibleData[u]={id:u,length:h,value:d}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var u,h;for(u=0;u<this.files.length;u++)h=this.files[u],this.reader.setIndex(h.localHeaderOffset),this.checkSignature(A.LOCAL_FILE_HEADER),h.readLocalPart(this.reader),h.handleUTF8(),h.processAttributes()},readCentralDir:function(){var u;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(A.CENTRAL_FILE_HEADER);)(u=new c({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(u);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var u=this.reader.lastIndexOfSignature(A.CENTRAL_DIRECTORY_END);if(u<0)throw this.isSignature(0,A.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(u);var h=u;if(this.checkSignature(A.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===a.MAX_VALUE_16BITS||this.diskWithCentralDirStart===a.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===a.MAX_VALUE_16BITS||this.centralDirRecords===a.MAX_VALUE_16BITS||this.centralDirSize===a.MAX_VALUE_32BITS||this.centralDirOffset===a.MAX_VALUE_32BITS){if(this.zip64=!0,(u=this.reader.lastIndexOfSignature(A.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(u),this.checkSignature(A.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,A.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(A.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(A.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var m=h-d;if(0<m)this.isSignature(h,A.CENTRAL_FILE_HEADER)||(this.reader.zero=m);else if(m<0)throw new Error("Corrupted zip: missing "+Math.abs(m)+" bytes.")},prepareReader:function(u){this.reader=s(u)},load:function(u){this.prepareReader(u),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},i.exports=g},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(o,i,r){var s=o("./reader/readerFor"),a=o("./utils"),A=o("./compressedObject"),c=o("./crc32"),l=o("./utf8"),g=o("./compressions"),u=o("./support");function h(d,m){this.options=d,this.loadOptions=m}h.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(d){var m,p;if(d.skip(22),this.fileNameLength=d.readInt(2),p=d.readInt(2),this.fileName=d.readData(this.fileNameLength),d.skip(p),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((m=(function(_){for(var f in g)if(Object.prototype.hasOwnProperty.call(g,f)&&g[f].magic===_)return g[f];return null})(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+a.pretty(this.compressionMethod)+" unknown (inner file : "+a.transformTo("string",this.fileName)+")");this.decompressed=new A(this.compressedSize,this.uncompressedSize,this.crc32,m,d.readData(this.compressedSize))},readCentralPart:function(d){this.versionMadeBy=d.readInt(2),d.skip(2),this.bitFlag=d.readInt(2),this.compressionMethod=d.readString(2),this.date=d.readDate(),this.crc32=d.readInt(4),this.compressedSize=d.readInt(4),this.uncompressedSize=d.readInt(4);var m=d.readInt(2);if(this.extraFieldsLength=d.readInt(2),this.fileCommentLength=d.readInt(2),this.diskNumberStart=d.readInt(2),this.internalFileAttributes=d.readInt(2),this.externalFileAttributes=d.readInt(4),this.localHeaderOffset=d.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");d.skip(m),this.readExtraFields(d),this.parseZIP64ExtraField(d),this.fileComment=d.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var d=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=s(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var m,p,_,f=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4<f;)m=d.readInt(2),p=d.readInt(2),_=d.readData(p),this.extraFields[m]={id:m,length:p,value:_};d.setIndex(f)},handleUTF8:function(){var d=u.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=l.utf8decode(this.fileName),this.fileCommentStr=l.utf8decode(this.fileComment);else{var m=this.findExtraFieldUnicodePath();if(m!==null)this.fileNameStr=m;else{var p=a.transformTo(d,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(p)}var _=this.findExtraFieldUnicodeComment();if(_!==null)this.fileCommentStr=_;else{var f=a.transformTo(d,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(f)}}},findExtraFieldUnicodePath:function(){var d=this.extraFields[28789];if(d){var m=s(d.value);return m.readInt(1)!==1||c(this.fileName)!==m.readInt(4)?null:l.utf8decode(m.readData(d.length-5))}return null},findExtraFieldUnicodeComment:function(){var d=this.extraFields[25461];if(d){var m=s(d.value);return m.readInt(1)!==1||c(this.fileComment)!==m.readInt(4)?null:l.utf8decode(m.readData(d.length-5))}return null}},i.exports=h},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(o,i,r){function s(m,p,_){this.name=m,this.dir=_.dir,this.date=_.date,this.comment=_.comment,this.unixPermissions=_.unixPermissions,this.dosPermissions=_.dosPermissions,this._data=p,this._dataBinary=_.binary,this.options={compression:_.compression,compressionOptions:_.compressionOptions}}var a=o("./stream/StreamHelper"),A=o("./stream/DataWorker"),c=o("./utf8"),l=o("./compressedObject"),g=o("./stream/GenericWorker");s.prototype={internalStream:function(m){var p=null,_="string";try{if(!m)throw new Error("No output type specified.");var f=(_=m.toLowerCase())==="string"||_==="text";_!=="binarystring"&&_!=="text"||(_="string"),p=this._decompressWorker();var I=!this._dataBinary;I&&!f&&(p=p.pipe(new c.Utf8EncodeWorker)),!I&&f&&(p=p.pipe(new c.Utf8DecodeWorker))}catch(C){(p=new g("error")).error(C)}return new a(p,_,"")},async:function(m,p){return this.internalStream(m).accumulate(p)},nodeStream:function(m,p){return this.internalStream(m||"nodebuffer").toNodejsStream(p)},_compressWorker:function(m,p){if(this._data instanceof l&&this._data.compression.magic===m.magic)return this._data.getCompressedWorker();var _=this._decompressWorker();return this._dataBinary||(_=_.pipe(new c.Utf8EncodeWorker)),l.createWorkerFrom(_,m,p)},_decompressWorker:function(){return this._data instanceof l?this._data.getContentWorker():this._data instanceof g?this._data:new A(this._data)}};for(var u=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],h=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},d=0;d<u.length;d++)s.prototype[u[d]]=h;i.exports=s},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(o,i,r){(function(s){var a,A,c=s.MutationObserver||s.WebKitMutationObserver;if(c){var l=0,g=new c(m),u=s.document.createTextNode("");g.observe(u,{characterData:!0}),a=function(){u.data=l=++l%2}}else if(s.setImmediate||s.MessageChannel===void 0)a="document"in s&&"onreadystatechange"in s.document.createElement("script")?function(){var p=s.document.createElement("script");p.onreadystatechange=function(){m(),p.onreadystatechange=null,p.parentNode.removeChild(p),p=null},s.document.documentElement.appendChild(p)}:function(){setTimeout(m,0)};else{var h=new s.MessageChannel;h.port1.onmessage=m,a=function(){h.port2.postMessage(0)}}var d=[];function m(){var p,_;A=!0;for(var f=d.length;f;){for(_=d,d=[],p=-1;++p<f;)_[p]();f=d.length}A=!1}i.exports=function(p){d.push(p)!==1||A||a()}}).call(this,typeof WC<"u"?WC:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(o,i,r){var s=o("immediate");function a(){}var A={},c=["REJECTED"],l=["FULFILLED"],g=["PENDING"];function u(f){if(typeof f!="function")throw new TypeError("resolver must be a function");this.state=g,this.queue=[],this.outcome=void 0,f!==a&&p(this,f)}function h(f,I,C){this.promise=f,typeof I=="function"&&(this.onFulfilled=I,this.callFulfilled=this.otherCallFulfilled),typeof C=="function"&&(this.onRejected=C,this.callRejected=this.otherCallRejected)}function d(f,I,C){s(function(){var y;try{y=I(C)}catch(x){return A.reject(f,x)}y===f?A.reject(f,new TypeError("Cannot resolve promise with itself")):A.resolve(f,y)})}function m(f){var I=f&&f.then;if(f&&(typeof f=="object"||typeof f=="function")&&typeof I=="function")return function(){I.apply(f,arguments)}}function p(f,I){var C=!1;function y(B){C||(C=!0,A.reject(f,B))}function x(B){C||(C=!0,A.resolve(f,B))}var E=_(function(){I(x,y)});E.status==="error"&&y(E.value)}function _(f,I){var C={};try{C.value=f(I),C.status="success"}catch(y){C.status="error",C.value=y}return C}(i.exports=u).prototype.finally=function(f){if(typeof f!="function")return this;var I=this.constructor;return this.then(function(C){return I.resolve(f()).then(function(){return C})},function(C){return I.resolve(f()).then(function(){throw C})})},u.prototype.catch=function(f){return this.then(null,f)},u.prototype.then=function(f,I){if(typeof f!="function"&&this.state===l||typeof I!="function"&&this.state===c)return this;var C=new this.constructor(a);return this.state!==g?d(C,this.state===l?f:I,this.outcome):this.queue.push(new h(C,f,I)),C},h.prototype.callFulfilled=function(f){A.resolve(this.promise,f)},h.prototype.otherCallFulfilled=function(f){d(this.promise,this.onFulfilled,f)},h.prototype.callRejected=function(f){A.reject(this.promise,f)},h.prototype.otherCallRejected=function(f){d(this.promise,this.onRejected,f)},A.resolve=function(f,I){var C=_(m,I);if(C.status==="error")return A.reject(f,C.value);var y=C.value;if(y)p(f,y);else{f.state=l,f.outcome=I;for(var x=-1,E=f.queue.length;++x<E;)f.queue[x].callFulfilled(I)}return f},A.reject=function(f,I){f.state=c,f.outcome=I;for(var C=-1,y=f.queue.length;++C<y;)f.queue[C].callRejected(I);return f},u.resolve=function(f){return f instanceof this?f:A.resolve(new this(a),f)},u.reject=function(f){var I=new this(a);return A.reject(I,f)},u.all=function(f){var I=this;if(Object.prototype.toString.call(f)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=f.length,y=!1;if(!C)return this.resolve([]);for(var x=new Array(C),E=0,B=-1,b=new this(a);++B<C;)Q(f[B],B);return b;function Q(w,D){I.resolve(w).then(function(k){x[D]=k,++E!==C||y||(y=!0,A.resolve(b,x))},function(k){y||(y=!0,A.reject(b,k))})}},u.race=function(f){var I=this;if(Object.prototype.toString.call(f)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=f.length,y=!1;if(!C)return this.resolve([]);for(var x=-1,E=new this(a);++x<C;)B=f[x],I.resolve(B).then(function(b){y||(y=!0,A.resolve(E,b))},function(b){y||(y=!0,A.reject(E,b))});var B;return E}},{immediate:36}],38:[function(o,i,r){var s={};(0,o("./lib/utils/common").assign)(s,o("./lib/deflate"),o("./lib/inflate"),o("./lib/zlib/constants")),i.exports=s},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(o,i,r){var s=o("./zlib/deflate"),a=o("./utils/common"),A=o("./utils/strings"),c=o("./zlib/messages"),l=o("./zlib/zstream"),g=Object.prototype.toString,u=0,h=-1,d=0,m=8;function p(f){if(!(this instanceof p))return new p(f);this.options=a.assign({level:h,method:m,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},f||{});var I=this.options;I.raw&&0<I.windowBits?I.windowBits=-I.windowBits:I.gzip&&0<I.windowBits&&I.windowBits<16&&(I.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var C=s.deflateInit2(this.strm,I.level,I.method,I.windowBits,I.memLevel,I.strategy);if(C!==u)throw new Error(c[C]);if(I.header&&s.deflateSetHeader(this.strm,I.header),I.dictionary){var y;if(y=typeof I.dictionary=="string"?A.string2buf(I.dictionary):g.call(I.dictionary)==="[object ArrayBuffer]"?new Uint8Array(I.dictionary):I.dictionary,(C=s.deflateSetDictionary(this.strm,y))!==u)throw new Error(c[C]);this._dict_set=!0}}function _(f,I){var C=new p(I);if(C.push(f,!0),C.err)throw C.msg||c[C.err];return C.result}p.prototype.push=function(f,I){var C,y,x=this.strm,E=this.options.chunkSize;if(this.ended)return!1;y=I===~~I?I:I===!0?4:0,typeof f=="string"?x.input=A.string2buf(f):g.call(f)==="[object ArrayBuffer]"?x.input=new Uint8Array(f):x.input=f,x.next_in=0,x.avail_in=x.input.length;do{if(x.avail_out===0&&(x.output=new a.Buf8(E),x.next_out=0,x.avail_out=E),(C=s.deflate(x,y))!==1&&C!==u)return this.onEnd(C),!(this.ended=!0);x.avail_out!==0&&(x.avail_in!==0||y!==4&&y!==2)||(this.options.to==="string"?this.onData(A.buf2binstring(a.shrinkBuf(x.output,x.next_out))):this.onData(a.shrinkBuf(x.output,x.next_out)))}while((0<x.avail_in||x.avail_out===0)&&C!==1);return y===4?(C=s.deflateEnd(this.strm),this.onEnd(C),this.ended=!0,C===u):y!==2||(this.onEnd(u),!(x.avail_out=0))},p.prototype.onData=function(f){this.chunks.push(f)},p.prototype.onEnd=function(f){f===u&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=f,this.msg=this.strm.msg},r.Deflate=p,r.deflate=_,r.deflateRaw=function(f,I){return(I=I||{}).raw=!0,_(f,I)},r.gzip=function(f,I){return(I=I||{}).gzip=!0,_(f,I)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(o,i,r){var s=o("./zlib/inflate"),a=o("./utils/common"),A=o("./utils/strings"),c=o("./zlib/constants"),l=o("./zlib/messages"),g=o("./zlib/zstream"),u=o("./zlib/gzheader"),h=Object.prototype.toString;function d(p){if(!(this instanceof d))return new d(p);this.options=a.assign({chunkSize:16384,windowBits:0,to:""},p||{});var _=this.options;_.raw&&0<=_.windowBits&&_.windowBits<16&&(_.windowBits=-_.windowBits,_.windowBits===0&&(_.windowBits=-15)),!(0<=_.windowBits&&_.windowBits<16)||p&&p.windowBits||(_.windowBits+=32),15<_.windowBits&&_.windowBits<48&&(15&_.windowBits)==0&&(_.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new g,this.strm.avail_out=0;var f=s.inflateInit2(this.strm,_.windowBits);if(f!==c.Z_OK)throw new Error(l[f]);this.header=new u,s.inflateGetHeader(this.strm,this.header)}function m(p,_){var f=new d(_);if(f.push(p,!0),f.err)throw f.msg||l[f.err];return f.result}d.prototype.push=function(p,_){var f,I,C,y,x,E,B=this.strm,b=this.options.chunkSize,Q=this.options.dictionary,w=!1;if(this.ended)return!1;I=_===~~_?_:_===!0?c.Z_FINISH:c.Z_NO_FLUSH,typeof p=="string"?B.input=A.binstring2buf(p):h.call(p)==="[object ArrayBuffer]"?B.input=new Uint8Array(p):B.input=p,B.next_in=0,B.avail_in=B.input.length;do{if(B.avail_out===0&&(B.output=new a.Buf8(b),B.next_out=0,B.avail_out=b),(f=s.inflate(B,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&Q&&(E=typeof Q=="string"?A.string2buf(Q):h.call(Q)==="[object ArrayBuffer]"?new Uint8Array(Q):Q,f=s.inflateSetDictionary(this.strm,E)),f===c.Z_BUF_ERROR&&w===!0&&(f=c.Z_OK,w=!1),f!==c.Z_STREAM_END&&f!==c.Z_OK)return this.onEnd(f),!(this.ended=!0);B.next_out&&(B.avail_out!==0&&f!==c.Z_STREAM_END&&(B.avail_in!==0||I!==c.Z_FINISH&&I!==c.Z_SYNC_FLUSH)||(this.options.to==="string"?(C=A.utf8border(B.output,B.next_out),y=B.next_out-C,x=A.buf2string(B.output,C),B.next_out=y,B.avail_out=b-y,y&&a.arraySet(B.output,B.output,C,y,0),this.onData(x)):this.onData(a.shrinkBuf(B.output,B.next_out)))),B.avail_in===0&&B.avail_out===0&&(w=!0)}while((0<B.avail_in||B.avail_out===0)&&f!==c.Z_STREAM_END);return f===c.Z_STREAM_END&&(I=c.Z_FINISH),I===c.Z_FINISH?(f=s.inflateEnd(this.strm),this.onEnd(f),this.ended=!0,f===c.Z_OK):I!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(B.avail_out=0))},d.prototype.onData=function(p){this.chunks.push(p)},d.prototype.onEnd=function(p){p===c.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=p,this.msg=this.strm.msg},r.Inflate=d,r.inflate=m,r.inflateRaw=function(p,_){return(_=_||{}).raw=!0,m(p,_)},r.ungzip=m},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";r.assign=function(c){for(var l=Array.prototype.slice.call(arguments,1);l.length;){var g=l.shift();if(g){if(typeof g!="object")throw new TypeError(g+"must be non-object");for(var u in g)g.hasOwnProperty(u)&&(c[u]=g[u])}}return c},r.shrinkBuf=function(c,l){return c.length===l?c:c.subarray?c.subarray(0,l):(c.length=l,c)};var a={arraySet:function(c,l,g,u,h){if(l.subarray&&c.subarray)c.set(l.subarray(g,g+u),h);else for(var d=0;d<u;d++)c[h+d]=l[g+d]},flattenChunks:function(c){var l,g,u,h,d,m;for(l=u=0,g=c.length;l<g;l++)u+=c[l].length;for(m=new Uint8Array(u),l=h=0,g=c.length;l<g;l++)d=c[l],m.set(d,h),h+=d.length;return m}},A={arraySet:function(c,l,g,u,h){for(var d=0;d<u;d++)c[h+d]=l[g+d]},flattenChunks:function(c){return[].concat.apply([],c)}};r.setTyped=function(c){c?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,a)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,A))},r.setTyped(s)},{}],42:[function(o,i,r){var s=o("./common"),a=!0,A=!0;try{String.fromCharCode.apply(null,[0])}catch{a=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{A=!1}for(var c=new s.Buf8(256),l=0;l<256;l++)c[l]=252<=l?6:248<=l?5:240<=l?4:224<=l?3:192<=l?2:1;function g(u,h){if(h<65537&&(u.subarray&&A||!u.subarray&&a))return String.fromCharCode.apply(null,s.shrinkBuf(u,h));for(var d="",m=0;m<h;m++)d+=String.fromCharCode(u[m]);return d}c[254]=c[254]=1,r.string2buf=function(u){var h,d,m,p,_,f=u.length,I=0;for(p=0;p<f;p++)(64512&(d=u.charCodeAt(p)))==55296&&p+1<f&&(64512&(m=u.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(m-56320),p++),I+=d<128?1:d<2048?2:d<65536?3:4;for(h=new s.Buf8(I),p=_=0;_<I;p++)(64512&(d=u.charCodeAt(p)))==55296&&p+1<f&&(64512&(m=u.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(m-56320),p++),d<128?h[_++]=d:(d<2048?h[_++]=192|d>>>6:(d<65536?h[_++]=224|d>>>12:(h[_++]=240|d>>>18,h[_++]=128|d>>>12&63),h[_++]=128|d>>>6&63),h[_++]=128|63&d);return h},r.buf2binstring=function(u){return g(u,u.length)},r.binstring2buf=function(u){for(var h=new s.Buf8(u.length),d=0,m=h.length;d<m;d++)h[d]=u.charCodeAt(d);return h},r.buf2string=function(u,h){var d,m,p,_,f=h||u.length,I=new Array(2*f);for(d=m=0;d<f;)if((p=u[d++])<128)I[m++]=p;else if(4<(_=c[p]))I[m++]=65533,d+=_-1;else{for(p&=_===2?31:_===3?15:7;1<_&&d<f;)p=p<<6|63&u[d++],_--;1<_?I[m++]=65533:p<65536?I[m++]=p:(p-=65536,I[m++]=55296|p>>10&1023,I[m++]=56320|1023&p)}return g(I,m)},r.utf8border=function(u,h){var d;for((h=h||u.length)>u.length&&(h=u.length),d=h-1;0<=d&&(192&u[d])==128;)d--;return d<0||d===0?h:d+c[u[d]]>h?d:h}},{"./common":41}],43:[function(o,i,r){i.exports=function(s,a,A,c){for(var l=65535&s|0,g=s>>>16&65535|0,u=0;A!==0;){for(A-=u=2e3<A?2e3:A;g=g+(l=l+a[c++]|0)|0,--u;);l%=65521,g%=65521}return l|g<<16|0}},{}],44:[function(o,i,r){i.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(o,i,r){var s=(function(){for(var a,A=[],c=0;c<256;c++){a=c;for(var l=0;l<8;l++)a=1&a?3988292384^a>>>1:a>>>1;A[c]=a}return A})();i.exports=function(a,A,c,l){var g=s,u=l+c;a^=-1;for(var h=l;h<u;h++)a=a>>>8^g[255&(a^A[h])];return-1^a}},{}],46:[function(o,i,r){var s,a=o("../utils/common"),A=o("./trees"),c=o("./adler32"),l=o("./crc32"),g=o("./messages"),u=0,h=4,d=0,m=-2,p=-1,_=4,f=2,I=8,C=9,y=286,x=30,E=19,B=2*y+1,b=15,Q=3,w=258,D=w+Q+1,k=42,T=113,H=1,G=2,K=3,Y=4;function q(pe,Pe){return pe.msg=g[Pe],Pe}function ee(pe){return(pe<<1)-(4<pe?9:0)}function j(pe){for(var Pe=pe.length;0<=--Pe;)pe[Pe]=0}function J(pe){var Pe=pe.state,Me=Pe.pending;Me>pe.avail_out&&(Me=pe.avail_out),Me!==0&&(a.arraySet(pe.output,Pe.pending_buf,Pe.pending_out,Me,pe.next_out),pe.next_out+=Me,Pe.pending_out+=Me,pe.total_out+=Me,pe.avail_out-=Me,Pe.pending-=Me,Pe.pending===0&&(Pe.pending_out=0))}function ie(pe,Pe){A._tr_flush_block(pe,0<=pe.block_start?pe.block_start:-1,pe.strstart-pe.block_start,Pe),pe.block_start=pe.strstart,J(pe.strm)}function oe(pe,Pe){pe.pending_buf[pe.pending++]=Pe}function ne(pe,Pe){pe.pending_buf[pe.pending++]=Pe>>>8&255,pe.pending_buf[pe.pending++]=255&Pe}function le(pe,Pe){var Me,Qe,Oe=pe.max_chain_length,Ne=pe.strstart,Se=pe.prev_length,Le=pe.nice_match,ye=pe.strstart>pe.w_size-D?pe.strstart-(pe.w_size-D):0,ke=pe.window,Ye=pe.w_mask,$e=pe.prev,st=pe.strstart+w,it=ke[Ne+Se-1],je=ke[Ne+Se];pe.prev_length>=pe.good_match&&(Oe>>=2),Le>pe.lookahead&&(Le=pe.lookahead);do if(ke[(Me=Pe)+Se]===je&&ke[Me+Se-1]===it&&ke[Me]===ke[Ne]&&ke[++Me]===ke[Ne+1]){Ne+=2,Me++;do;while(ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&ke[++Ne]===ke[++Me]&&Ne<st);if(Qe=w-(st-Ne),Ne=st-w,Se<Qe){if(pe.match_start=Pe,Le<=(Se=Qe))break;it=ke[Ne+Se-1],je=ke[Ne+Se]}}while((Pe=$e[Pe&Ye])>ye&&--Oe!=0);return Se<=pe.lookahead?Se:pe.lookahead}function ge(pe){var Pe,Me,Qe,Oe,Ne,Se,Le,ye,ke,Ye,$e=pe.w_size;do{if(Oe=pe.window_size-pe.lookahead-pe.strstart,pe.strstart>=$e+($e-D)){for(a.arraySet(pe.window,pe.window,$e,$e,0),pe.match_start-=$e,pe.strstart-=$e,pe.block_start-=$e,Pe=Me=pe.hash_size;Qe=pe.head[--Pe],pe.head[Pe]=$e<=Qe?Qe-$e:0,--Me;);for(Pe=Me=$e;Qe=pe.prev[--Pe],pe.prev[Pe]=$e<=Qe?Qe-$e:0,--Me;);Oe+=$e}if(pe.strm.avail_in===0)break;if(Se=pe.strm,Le=pe.window,ye=pe.strstart+pe.lookahead,ke=Oe,Ye=void 0,Ye=Se.avail_in,ke<Ye&&(Ye=ke),Me=Ye===0?0:(Se.avail_in-=Ye,a.arraySet(Le,Se.input,Se.next_in,Ye,ye),Se.state.wrap===1?Se.adler=c(Se.adler,Le,Ye,ye):Se.state.wrap===2&&(Se.adler=l(Se.adler,Le,Ye,ye)),Se.next_in+=Ye,Se.total_in+=Ye,Ye),pe.lookahead+=Me,pe.lookahead+pe.insert>=Q)for(Ne=pe.strstart-pe.insert,pe.ins_h=pe.window[Ne],pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[Ne+1])&pe.hash_mask;pe.insert&&(pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[Ne+Q-1])&pe.hash_mask,pe.prev[Ne&pe.w_mask]=pe.head[pe.ins_h],pe.head[pe.ins_h]=Ne,Ne++,pe.insert--,!(pe.lookahead+pe.insert<Q)););}while(pe.lookahead<D&&pe.strm.avail_in!==0)}function _e(pe,Pe){for(var Me,Qe;;){if(pe.lookahead<D){if(ge(pe),pe.lookahead<D&&Pe===u)return H;if(pe.lookahead===0)break}if(Me=0,pe.lookahead>=Q&&(pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[pe.strstart+Q-1])&pe.hash_mask,Me=pe.prev[pe.strstart&pe.w_mask]=pe.head[pe.ins_h],pe.head[pe.ins_h]=pe.strstart),Me!==0&&pe.strstart-Me<=pe.w_size-D&&(pe.match_length=le(pe,Me)),pe.match_length>=Q)if(Qe=A._tr_tally(pe,pe.strstart-pe.match_start,pe.match_length-Q),pe.lookahead-=pe.match_length,pe.match_length<=pe.max_lazy_match&&pe.lookahead>=Q){for(pe.match_length--;pe.strstart++,pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[pe.strstart+Q-1])&pe.hash_mask,Me=pe.prev[pe.strstart&pe.w_mask]=pe.head[pe.ins_h],pe.head[pe.ins_h]=pe.strstart,--pe.match_length!=0;);pe.strstart++}else pe.strstart+=pe.match_length,pe.match_length=0,pe.ins_h=pe.window[pe.strstart],pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[pe.strstart+1])&pe.hash_mask;else Qe=A._tr_tally(pe,0,pe.window[pe.strstart]),pe.lookahead--,pe.strstart++;if(Qe&&(ie(pe,!1),pe.strm.avail_out===0))return H}return pe.insert=pe.strstart<Q-1?pe.strstart:Q-1,Pe===h?(ie(pe,!0),pe.strm.avail_out===0?K:Y):pe.last_lit&&(ie(pe,!1),pe.strm.avail_out===0)?H:G}function ce(pe,Pe){for(var Me,Qe,Oe;;){if(pe.lookahead<D){if(ge(pe),pe.lookahead<D&&Pe===u)return H;if(pe.lookahead===0)break}if(Me=0,pe.lookahead>=Q&&(pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[pe.strstart+Q-1])&pe.hash_mask,Me=pe.prev[pe.strstart&pe.w_mask]=pe.head[pe.ins_h],pe.head[pe.ins_h]=pe.strstart),pe.prev_length=pe.match_length,pe.prev_match=pe.match_start,pe.match_length=Q-1,Me!==0&&pe.prev_length<pe.max_lazy_match&&pe.strstart-Me<=pe.w_size-D&&(pe.match_length=le(pe,Me),pe.match_length<=5&&(pe.strategy===1||pe.match_length===Q&&4096<pe.strstart-pe.match_start)&&(pe.match_length=Q-1)),pe.prev_length>=Q&&pe.match_length<=pe.prev_length){for(Oe=pe.strstart+pe.lookahead-Q,Qe=A._tr_tally(pe,pe.strstart-1-pe.prev_match,pe.prev_length-Q),pe.lookahead-=pe.prev_length-1,pe.prev_length-=2;++pe.strstart<=Oe&&(pe.ins_h=(pe.ins_h<<pe.hash_shift^pe.window[pe.strstart+Q-1])&pe.hash_mask,Me=pe.prev[pe.strstart&pe.w_mask]=pe.head[pe.ins_h],pe.head[pe.ins_h]=pe.strstart),--pe.prev_length!=0;);if(pe.match_available=0,pe.match_length=Q-1,pe.strstart++,Qe&&(ie(pe,!1),pe.strm.avail_out===0))return H}else if(pe.match_available){if((Qe=A._tr_tally(pe,0,pe.window[pe.strstart-1]))&&ie(pe,!1),pe.strstart++,pe.lookahead--,pe.strm.avail_out===0)return H}else pe.match_available=1,pe.strstart++,pe.lookahead--}return pe.match_available&&(Qe=A._tr_tally(pe,0,pe.window[pe.strstart-1]),pe.match_available=0),pe.insert=pe.strstart<Q-1?pe.strstart:Q-1,Pe===h?(ie(pe,!0),pe.strm.avail_out===0?K:Y):pe.last_lit&&(ie(pe,!1),pe.strm.avail_out===0)?H:G}function Ie(pe,Pe,Me,Qe,Oe){this.good_length=pe,this.max_lazy=Pe,this.nice_length=Me,this.max_chain=Qe,this.func=Oe}function he(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=I,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new a.Buf16(2*B),this.dyn_dtree=new a.Buf16(2*(2*x+1)),this.bl_tree=new a.Buf16(2*(2*E+1)),j(this.dyn_ltree),j(this.dyn_dtree),j(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new a.Buf16(b+1),this.heap=new a.Buf16(2*y+1),j(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new a.Buf16(2*y+1),j(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Ce(pe){var Pe;return pe&&pe.state?(pe.total_in=pe.total_out=0,pe.data_type=f,(Pe=pe.state).pending=0,Pe.pending_out=0,Pe.wrap<0&&(Pe.wrap=-Pe.wrap),Pe.status=Pe.wrap?k:T,pe.adler=Pe.wrap===2?0:1,Pe.last_flush=u,A._tr_init(Pe),d):q(pe,m)}function we(pe){var Pe=Ce(pe);return Pe===d&&(function(Me){Me.window_size=2*Me.w_size,j(Me.head),Me.max_lazy_match=s[Me.level].max_lazy,Me.good_match=s[Me.level].good_length,Me.nice_match=s[Me.level].nice_length,Me.max_chain_length=s[Me.level].max_chain,Me.strstart=0,Me.block_start=0,Me.lookahead=0,Me.insert=0,Me.match_length=Me.prev_length=Q-1,Me.match_available=0,Me.ins_h=0})(pe.state),Pe}function ve(pe,Pe,Me,Qe,Oe,Ne){if(!pe)return m;var Se=1;if(Pe===p&&(Pe=6),Qe<0?(Se=0,Qe=-Qe):15<Qe&&(Se=2,Qe-=16),Oe<1||C<Oe||Me!==I||Qe<8||15<Qe||Pe<0||9<Pe||Ne<0||_<Ne)return q(pe,m);Qe===8&&(Qe=9);var Le=new he;return(pe.state=Le).strm=pe,Le.wrap=Se,Le.gzhead=null,Le.w_bits=Qe,Le.w_size=1<<Le.w_bits,Le.w_mask=Le.w_size-1,Le.hash_bits=Oe+7,Le.hash_size=1<<Le.hash_bits,Le.hash_mask=Le.hash_size-1,Le.hash_shift=~~((Le.hash_bits+Q-1)/Q),Le.window=new a.Buf8(2*Le.w_size),Le.head=new a.Buf16(Le.hash_size),Le.prev=new a.Buf16(Le.w_size),Le.lit_bufsize=1<<Oe+6,Le.pending_buf_size=4*Le.lit_bufsize,Le.pending_buf=new a.Buf8(Le.pending_buf_size),Le.d_buf=1*Le.lit_bufsize,Le.l_buf=3*Le.lit_bufsize,Le.level=Pe,Le.strategy=Ne,Le.method=Me,we(pe)}s=[new Ie(0,0,0,0,function(pe,Pe){var Me=65535;for(Me>pe.pending_buf_size-5&&(Me=pe.pending_buf_size-5);;){if(pe.lookahead<=1){if(ge(pe),pe.lookahead===0&&Pe===u)return H;if(pe.lookahead===0)break}pe.strstart+=pe.lookahead,pe.lookahead=0;var Qe=pe.block_start+Me;if((pe.strstart===0||pe.strstart>=Qe)&&(pe.lookahead=pe.strstart-Qe,pe.strstart=Qe,ie(pe,!1),pe.strm.avail_out===0)||pe.strstart-pe.block_start>=pe.w_size-D&&(ie(pe,!1),pe.strm.avail_out===0))return H}return pe.insert=0,Pe===h?(ie(pe,!0),pe.strm.avail_out===0?K:Y):(pe.strstart>pe.block_start&&(ie(pe,!1),pe.strm.avail_out),H)}),new Ie(4,4,8,4,_e),new Ie(4,5,16,8,_e),new Ie(4,6,32,32,_e),new Ie(4,4,16,16,ce),new Ie(8,16,32,32,ce),new Ie(8,16,128,128,ce),new Ie(8,32,128,256,ce),new Ie(32,128,258,1024,ce),new Ie(32,258,258,4096,ce)],r.deflateInit=function(pe,Pe){return ve(pe,Pe,I,15,8,0)},r.deflateInit2=ve,r.deflateReset=we,r.deflateResetKeep=Ce,r.deflateSetHeader=function(pe,Pe){return pe&&pe.state?pe.state.wrap!==2?m:(pe.state.gzhead=Pe,d):m},r.deflate=function(pe,Pe){var Me,Qe,Oe,Ne;if(!pe||!pe.state||5<Pe||Pe<0)return pe?q(pe,m):m;if(Qe=pe.state,!pe.output||!pe.input&&pe.avail_in!==0||Qe.status===666&&Pe!==h)return q(pe,pe.avail_out===0?-5:m);if(Qe.strm=pe,Me=Qe.last_flush,Qe.last_flush=Pe,Qe.status===k)if(Qe.wrap===2)pe.adler=0,oe(Qe,31),oe(Qe,139),oe(Qe,8),Qe.gzhead?(oe(Qe,(Qe.gzhead.text?1:0)+(Qe.gzhead.hcrc?2:0)+(Qe.gzhead.extra?4:0)+(Qe.gzhead.name?8:0)+(Qe.gzhead.comment?16:0)),oe(Qe,255&Qe.gzhead.time),oe(Qe,Qe.gzhead.time>>8&255),oe(Qe,Qe.gzhead.time>>16&255),oe(Qe,Qe.gzhead.time>>24&255),oe(Qe,Qe.level===9?2:2<=Qe.strategy||Qe.level<2?4:0),oe(Qe,255&Qe.gzhead.os),Qe.gzhead.extra&&Qe.gzhead.extra.length&&(oe(Qe,255&Qe.gzhead.extra.length),oe(Qe,Qe.gzhead.extra.length>>8&255)),Qe.gzhead.hcrc&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending,0)),Qe.gzindex=0,Qe.status=69):(oe(Qe,0),oe(Qe,0),oe(Qe,0),oe(Qe,0),oe(Qe,0),oe(Qe,Qe.level===9?2:2<=Qe.strategy||Qe.level<2?4:0),oe(Qe,3),Qe.status=T);else{var Se=I+(Qe.w_bits-8<<4)<<8;Se|=(2<=Qe.strategy||Qe.level<2?0:Qe.level<6?1:Qe.level===6?2:3)<<6,Qe.strstart!==0&&(Se|=32),Se+=31-Se%31,Qe.status=T,ne(Qe,Se),Qe.strstart!==0&&(ne(Qe,pe.adler>>>16),ne(Qe,65535&pe.adler)),pe.adler=1}if(Qe.status===69)if(Qe.gzhead.extra){for(Oe=Qe.pending;Qe.gzindex<(65535&Qe.gzhead.extra.length)&&(Qe.pending!==Qe.pending_buf_size||(Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),J(pe),Oe=Qe.pending,Qe.pending!==Qe.pending_buf_size));)oe(Qe,255&Qe.gzhead.extra[Qe.gzindex]),Qe.gzindex++;Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),Qe.gzindex===Qe.gzhead.extra.length&&(Qe.gzindex=0,Qe.status=73)}else Qe.status=73;if(Qe.status===73)if(Qe.gzhead.name){Oe=Qe.pending;do{if(Qe.pending===Qe.pending_buf_size&&(Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),J(pe),Oe=Qe.pending,Qe.pending===Qe.pending_buf_size)){Ne=1;break}Ne=Qe.gzindex<Qe.gzhead.name.length?255&Qe.gzhead.name.charCodeAt(Qe.gzindex++):0,oe(Qe,Ne)}while(Ne!==0);Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),Ne===0&&(Qe.gzindex=0,Qe.status=91)}else Qe.status=91;if(Qe.status===91)if(Qe.gzhead.comment){Oe=Qe.pending;do{if(Qe.pending===Qe.pending_buf_size&&(Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),J(pe),Oe=Qe.pending,Qe.pending===Qe.pending_buf_size)){Ne=1;break}Ne=Qe.gzindex<Qe.gzhead.comment.length?255&Qe.gzhead.comment.charCodeAt(Qe.gzindex++):0,oe(Qe,Ne)}while(Ne!==0);Qe.gzhead.hcrc&&Qe.pending>Oe&&(pe.adler=l(pe.adler,Qe.pending_buf,Qe.pending-Oe,Oe)),Ne===0&&(Qe.status=103)}else Qe.status=103;if(Qe.status===103&&(Qe.gzhead.hcrc?(Qe.pending+2>Qe.pending_buf_size&&J(pe),Qe.pending+2<=Qe.pending_buf_size&&(oe(Qe,255&pe.adler),oe(Qe,pe.adler>>8&255),pe.adler=0,Qe.status=T)):Qe.status=T),Qe.pending!==0){if(J(pe),pe.avail_out===0)return Qe.last_flush=-1,d}else if(pe.avail_in===0&&ee(Pe)<=ee(Me)&&Pe!==h)return q(pe,-5);if(Qe.status===666&&pe.avail_in!==0)return q(pe,-5);if(pe.avail_in!==0||Qe.lookahead!==0||Pe!==u&&Qe.status!==666){var Le=Qe.strategy===2?(function(ye,ke){for(var Ye;;){if(ye.lookahead===0&&(ge(ye),ye.lookahead===0)){if(ke===u)return H;break}if(ye.match_length=0,Ye=A._tr_tally(ye,0,ye.window[ye.strstart]),ye.lookahead--,ye.strstart++,Ye&&(ie(ye,!1),ye.strm.avail_out===0))return H}return ye.insert=0,ke===h?(ie(ye,!0),ye.strm.avail_out===0?K:Y):ye.last_lit&&(ie(ye,!1),ye.strm.avail_out===0)?H:G})(Qe,Pe):Qe.strategy===3?(function(ye,ke){for(var Ye,$e,st,it,je=ye.window;;){if(ye.lookahead<=w){if(ge(ye),ye.lookahead<=w&&ke===u)return H;if(ye.lookahead===0)break}if(ye.match_length=0,ye.lookahead>=Q&&0<ye.strstart&&($e=je[st=ye.strstart-1])===je[++st]&&$e===je[++st]&&$e===je[++st]){it=ye.strstart+w;do;while($e===je[++st]&&$e===je[++st]&&$e===je[++st]&&$e===je[++st]&&$e===je[++st]&&$e===je[++st]&&$e===je[++st]&&$e===je[++st]&&st<it);ye.match_length=w-(it-st),ye.match_length>ye.lookahead&&(ye.match_length=ye.lookahead)}if(ye.match_length>=Q?(Ye=A._tr_tally(ye,1,ye.match_length-Q),ye.lookahead-=ye.match_length,ye.strstart+=ye.match_length,ye.match_length=0):(Ye=A._tr_tally(ye,0,ye.window[ye.strstart]),ye.lookahead--,ye.strstart++),Ye&&(ie(ye,!1),ye.strm.avail_out===0))return H}return ye.insert=0,ke===h?(ie(ye,!0),ye.strm.avail_out===0?K:Y):ye.last_lit&&(ie(ye,!1),ye.strm.avail_out===0)?H:G})(Qe,Pe):s[Qe.level].func(Qe,Pe);if(Le!==K&&Le!==Y||(Qe.status=666),Le===H||Le===K)return pe.avail_out===0&&(Qe.last_flush=-1),d;if(Le===G&&(Pe===1?A._tr_align(Qe):Pe!==5&&(A._tr_stored_block(Qe,0,0,!1),Pe===3&&(j(Qe.head),Qe.lookahead===0&&(Qe.strstart=0,Qe.block_start=0,Qe.insert=0))),J(pe),pe.avail_out===0))return Qe.last_flush=-1,d}return Pe!==h?d:Qe.wrap<=0?1:(Qe.wrap===2?(oe(Qe,255&pe.adler),oe(Qe,pe.adler>>8&255),oe(Qe,pe.adler>>16&255),oe(Qe,pe.adler>>24&255),oe(Qe,255&pe.total_in),oe(Qe,pe.total_in>>8&255),oe(Qe,pe.total_in>>16&255),oe(Qe,pe.total_in>>24&255)):(ne(Qe,pe.adler>>>16),ne(Qe,65535&pe.adler)),J(pe),0<Qe.wrap&&(Qe.wrap=-Qe.wrap),Qe.pending!==0?d:1)},r.deflateEnd=function(pe){var Pe;return pe&&pe.state?(Pe=pe.state.status)!==k&&Pe!==69&&Pe!==73&&Pe!==91&&Pe!==103&&Pe!==T&&Pe!==666?q(pe,m):(pe.state=null,Pe===T?q(pe,-3):d):m},r.deflateSetDictionary=function(pe,Pe){var Me,Qe,Oe,Ne,Se,Le,ye,ke,Ye=Pe.length;if(!pe||!pe.state||(Ne=(Me=pe.state).wrap)===2||Ne===1&&Me.status!==k||Me.lookahead)return m;for(Ne===1&&(pe.adler=c(pe.adler,Pe,Ye,0)),Me.wrap=0,Ye>=Me.w_size&&(Ne===0&&(j(Me.head),Me.strstart=0,Me.block_start=0,Me.insert=0),ke=new a.Buf8(Me.w_size),a.arraySet(ke,Pe,Ye-Me.w_size,Me.w_size,0),Pe=ke,Ye=Me.w_size),Se=pe.avail_in,Le=pe.next_in,ye=pe.input,pe.avail_in=Ye,pe.next_in=0,pe.input=Pe,ge(Me);Me.lookahead>=Q;){for(Qe=Me.strstart,Oe=Me.lookahead-(Q-1);Me.ins_h=(Me.ins_h<<Me.hash_shift^Me.window[Qe+Q-1])&Me.hash_mask,Me.prev[Qe&Me.w_mask]=Me.head[Me.ins_h],Me.head[Me.ins_h]=Qe,Qe++,--Oe;);Me.strstart=Qe,Me.lookahead=Q-1,ge(Me)}return Me.strstart+=Me.lookahead,Me.block_start=Me.strstart,Me.insert=Me.lookahead,Me.lookahead=0,Me.match_length=Me.prev_length=Q-1,Me.match_available=0,pe.next_in=Le,pe.input=ye,pe.avail_in=Se,Me.wrap=Ne,d},r.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(o,i,r){i.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(o,i,r){i.exports=function(s,a){var A,c,l,g,u,h,d,m,p,_,f,I,C,y,x,E,B,b,Q,w,D,k,T,H,G;A=s.state,c=s.next_in,H=s.input,l=c+(s.avail_in-5),g=s.next_out,G=s.output,u=g-(a-s.avail_out),h=g+(s.avail_out-257),d=A.dmax,m=A.wsize,p=A.whave,_=A.wnext,f=A.window,I=A.hold,C=A.bits,y=A.lencode,x=A.distcode,E=(1<<A.lenbits)-1,B=(1<<A.distbits)-1;e:do{C<15&&(I+=H[c++]<<C,C+=8,I+=H[c++]<<C,C+=8),b=y[I&E];t:for(;;){if(I>>>=Q=b>>>24,C-=Q,(Q=b>>>16&255)===0)G[g++]=65535&b;else{if(!(16&Q)){if((64&Q)==0){b=y[(65535&b)+(I&(1<<Q)-1)];continue t}if(32&Q){A.mode=12;break e}s.msg="invalid literal/length code",A.mode=30;break e}w=65535&b,(Q&=15)&&(C<Q&&(I+=H[c++]<<C,C+=8),w+=I&(1<<Q)-1,I>>>=Q,C-=Q),C<15&&(I+=H[c++]<<C,C+=8,I+=H[c++]<<C,C+=8),b=x[I&B];n:for(;;){if(I>>>=Q=b>>>24,C-=Q,!(16&(Q=b>>>16&255))){if((64&Q)==0){b=x[(65535&b)+(I&(1<<Q)-1)];continue n}s.msg="invalid distance code",A.mode=30;break e}if(D=65535&b,C<(Q&=15)&&(I+=H[c++]<<C,(C+=8)<Q&&(I+=H[c++]<<C,C+=8)),d<(D+=I&(1<<Q)-1)){s.msg="invalid distance too far back",A.mode=30;break e}if(I>>>=Q,C-=Q,(Q=g-u)<D){if(p<(Q=D-Q)&&A.sane){s.msg="invalid distance too far back",A.mode=30;break e}if(T=f,(k=0)===_){if(k+=m-Q,Q<w){for(w-=Q;G[g++]=f[k++],--Q;);k=g-D,T=G}}else if(_<Q){if(k+=m+_-Q,(Q-=_)<w){for(w-=Q;G[g++]=f[k++],--Q;);if(k=0,_<w){for(w-=Q=_;G[g++]=f[k++],--Q;);k=g-D,T=G}}}else if(k+=_-Q,Q<w){for(w-=Q;G[g++]=f[k++],--Q;);k=g-D,T=G}for(;2<w;)G[g++]=T[k++],G[g++]=T[k++],G[g++]=T[k++],w-=3;w&&(G[g++]=T[k++],1<w&&(G[g++]=T[k++]))}else{for(k=g-D;G[g++]=G[k++],G[g++]=G[k++],G[g++]=G[k++],2<(w-=3););w&&(G[g++]=G[k++],1<w&&(G[g++]=G[k++]))}break}}break}}while(c<l&&g<h);c-=w=C>>3,I&=(1<<(C-=w<<3))-1,s.next_in=c,s.next_out=g,s.avail_in=c<l?l-c+5:5-(c-l),s.avail_out=g<h?h-g+257:257-(g-h),A.hold=I,A.bits=C}},{}],49:[function(o,i,r){var s=o("../utils/common"),a=o("./adler32"),A=o("./crc32"),c=o("./inffast"),l=o("./inftrees"),g=1,u=2,h=0,d=-2,m=1,p=852,_=592;function f(k){return(k>>>24&255)+(k>>>8&65280)+((65280&k)<<8)+((255&k)<<24)}function I(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(k){var T;return k&&k.state?(T=k.state,k.total_in=k.total_out=T.total=0,k.msg="",T.wrap&&(k.adler=1&T.wrap),T.mode=m,T.last=0,T.havedict=0,T.dmax=32768,T.head=null,T.hold=0,T.bits=0,T.lencode=T.lendyn=new s.Buf32(p),T.distcode=T.distdyn=new s.Buf32(_),T.sane=1,T.back=-1,h):d}function y(k){var T;return k&&k.state?((T=k.state).wsize=0,T.whave=0,T.wnext=0,C(k)):d}function x(k,T){var H,G;return k&&k.state?(G=k.state,T<0?(H=0,T=-T):(H=1+(T>>4),T<48&&(T&=15)),T&&(T<8||15<T)?d:(G.window!==null&&G.wbits!==T&&(G.window=null),G.wrap=H,G.wbits=T,y(k))):d}function E(k,T){var H,G;return k?(G=new I,(k.state=G).window=null,(H=x(k,T))!==h&&(k.state=null),H):d}var B,b,Q=!0;function w(k){if(Q){var T;for(B=new s.Buf32(512),b=new s.Buf32(32),T=0;T<144;)k.lens[T++]=8;for(;T<256;)k.lens[T++]=9;for(;T<280;)k.lens[T++]=7;for(;T<288;)k.lens[T++]=8;for(l(g,k.lens,0,288,B,0,k.work,{bits:9}),T=0;T<32;)k.lens[T++]=5;l(u,k.lens,0,32,b,0,k.work,{bits:5}),Q=!1}k.lencode=B,k.lenbits=9,k.distcode=b,k.distbits=5}function D(k,T,H,G){var K,Y=k.state;return Y.window===null&&(Y.wsize=1<<Y.wbits,Y.wnext=0,Y.whave=0,Y.window=new s.Buf8(Y.wsize)),G>=Y.wsize?(s.arraySet(Y.window,T,H-Y.wsize,Y.wsize,0),Y.wnext=0,Y.whave=Y.wsize):(G<(K=Y.wsize-Y.wnext)&&(K=G),s.arraySet(Y.window,T,H-G,K,Y.wnext),(G-=K)?(s.arraySet(Y.window,T,H-G,G,0),Y.wnext=G,Y.whave=Y.wsize):(Y.wnext+=K,Y.wnext===Y.wsize&&(Y.wnext=0),Y.whave<Y.wsize&&(Y.whave+=K))),0}r.inflateReset=y,r.inflateReset2=x,r.inflateResetKeep=C,r.inflateInit=function(k){return E(k,15)},r.inflateInit2=E,r.inflate=function(k,T){var H,G,K,Y,q,ee,j,J,ie,oe,ne,le,ge,_e,ce,Ie,he,Ce,we,ve,pe,Pe,Me,Qe,Oe=0,Ne=new s.Buf8(4),Se=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!k||!k.state||!k.output||!k.input&&k.avail_in!==0)return d;(H=k.state).mode===12&&(H.mode=13),q=k.next_out,K=k.output,j=k.avail_out,Y=k.next_in,G=k.input,ee=k.avail_in,J=H.hold,ie=H.bits,oe=ee,ne=j,Pe=h;e:for(;;)switch(H.mode){case m:if(H.wrap===0){H.mode=13;break}for(;ie<16;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(2&H.wrap&&J===35615){Ne[H.check=0]=255&J,Ne[1]=J>>>8&255,H.check=A(H.check,Ne,2,0),ie=J=0,H.mode=2;break}if(H.flags=0,H.head&&(H.head.done=!1),!(1&H.wrap)||(((255&J)<<8)+(J>>8))%31){k.msg="incorrect header check",H.mode=30;break}if((15&J)!=8){k.msg="unknown compression method",H.mode=30;break}if(ie-=4,pe=8+(15&(J>>>=4)),H.wbits===0)H.wbits=pe;else if(pe>H.wbits){k.msg="invalid window size",H.mode=30;break}H.dmax=1<<pe,k.adler=H.check=1,H.mode=512&J?10:12,ie=J=0;break;case 2:for(;ie<16;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(H.flags=J,(255&H.flags)!=8){k.msg="unknown compression method",H.mode=30;break}if(57344&H.flags){k.msg="unknown header flags set",H.mode=30;break}H.head&&(H.head.text=J>>8&1),512&H.flags&&(Ne[0]=255&J,Ne[1]=J>>>8&255,H.check=A(H.check,Ne,2,0)),ie=J=0,H.mode=3;case 3:for(;ie<32;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.head&&(H.head.time=J),512&H.flags&&(Ne[0]=255&J,Ne[1]=J>>>8&255,Ne[2]=J>>>16&255,Ne[3]=J>>>24&255,H.check=A(H.check,Ne,4,0)),ie=J=0,H.mode=4;case 4:for(;ie<16;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.head&&(H.head.xflags=255&J,H.head.os=J>>8),512&H.flags&&(Ne[0]=255&J,Ne[1]=J>>>8&255,H.check=A(H.check,Ne,2,0)),ie=J=0,H.mode=5;case 5:if(1024&H.flags){for(;ie<16;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.length=J,H.head&&(H.head.extra_len=J),512&H.flags&&(Ne[0]=255&J,Ne[1]=J>>>8&255,H.check=A(H.check,Ne,2,0)),ie=J=0}else H.head&&(H.head.extra=null);H.mode=6;case 6:if(1024&H.flags&&(ee<(le=H.length)&&(le=ee),le&&(H.head&&(pe=H.head.extra_len-H.length,H.head.extra||(H.head.extra=new Array(H.head.extra_len)),s.arraySet(H.head.extra,G,Y,le,pe)),512&H.flags&&(H.check=A(H.check,G,le,Y)),ee-=le,Y+=le,H.length-=le),H.length))break e;H.length=0,H.mode=7;case 7:if(2048&H.flags){if(ee===0)break e;for(le=0;pe=G[Y+le++],H.head&&pe&&H.length<65536&&(H.head.name+=String.fromCharCode(pe)),pe&&le<ee;);if(512&H.flags&&(H.check=A(H.check,G,le,Y)),ee-=le,Y+=le,pe)break e}else H.head&&(H.head.name=null);H.length=0,H.mode=8;case 8:if(4096&H.flags){if(ee===0)break e;for(le=0;pe=G[Y+le++],H.head&&pe&&H.length<65536&&(H.head.comment+=String.fromCharCode(pe)),pe&&le<ee;);if(512&H.flags&&(H.check=A(H.check,G,le,Y)),ee-=le,Y+=le,pe)break e}else H.head&&(H.head.comment=null);H.mode=9;case 9:if(512&H.flags){for(;ie<16;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(J!==(65535&H.check)){k.msg="header crc mismatch",H.mode=30;break}ie=J=0}H.head&&(H.head.hcrc=H.flags>>9&1,H.head.done=!0),k.adler=H.check=0,H.mode=12;break;case 10:for(;ie<32;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}k.adler=H.check=f(J),ie=J=0,H.mode=11;case 11:if(H.havedict===0)return k.next_out=q,k.avail_out=j,k.next_in=Y,k.avail_in=ee,H.hold=J,H.bits=ie,2;k.adler=H.check=1,H.mode=12;case 12:if(T===5||T===6)break e;case 13:if(H.last){J>>>=7&ie,ie-=7&ie,H.mode=27;break}for(;ie<3;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}switch(H.last=1&J,ie-=1,3&(J>>>=1)){case 0:H.mode=14;break;case 1:if(w(H),H.mode=20,T!==6)break;J>>>=2,ie-=2;break e;case 2:H.mode=17;break;case 3:k.msg="invalid block type",H.mode=30}J>>>=2,ie-=2;break;case 14:for(J>>>=7&ie,ie-=7&ie;ie<32;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if((65535&J)!=(J>>>16^65535)){k.msg="invalid stored block lengths",H.mode=30;break}if(H.length=65535&J,ie=J=0,H.mode=15,T===6)break e;case 15:H.mode=16;case 16:if(le=H.length){if(ee<le&&(le=ee),j<le&&(le=j),le===0)break e;s.arraySet(K,G,Y,le,q),ee-=le,Y+=le,j-=le,q+=le,H.length-=le;break}H.mode=12;break;case 17:for(;ie<14;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(H.nlen=257+(31&J),J>>>=5,ie-=5,H.ndist=1+(31&J),J>>>=5,ie-=5,H.ncode=4+(15&J),J>>>=4,ie-=4,286<H.nlen||30<H.ndist){k.msg="too many length or distance symbols",H.mode=30;break}H.have=0,H.mode=18;case 18:for(;H.have<H.ncode;){for(;ie<3;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.lens[Se[H.have++]]=7&J,J>>>=3,ie-=3}for(;H.have<19;)H.lens[Se[H.have++]]=0;if(H.lencode=H.lendyn,H.lenbits=7,Me={bits:H.lenbits},Pe=l(0,H.lens,0,19,H.lencode,0,H.work,Me),H.lenbits=Me.bits,Pe){k.msg="invalid code lengths set",H.mode=30;break}H.have=0,H.mode=19;case 19:for(;H.have<H.nlen+H.ndist;){for(;Ie=(Oe=H.lencode[J&(1<<H.lenbits)-1])>>>16&255,he=65535&Oe,!((ce=Oe>>>24)<=ie);){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(he<16)J>>>=ce,ie-=ce,H.lens[H.have++]=he;else{if(he===16){for(Qe=ce+2;ie<Qe;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(J>>>=ce,ie-=ce,H.have===0){k.msg="invalid bit length repeat",H.mode=30;break}pe=H.lens[H.have-1],le=3+(3&J),J>>>=2,ie-=2}else if(he===17){for(Qe=ce+3;ie<Qe;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}ie-=ce,pe=0,le=3+(7&(J>>>=ce)),J>>>=3,ie-=3}else{for(Qe=ce+7;ie<Qe;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}ie-=ce,pe=0,le=11+(127&(J>>>=ce)),J>>>=7,ie-=7}if(H.have+le>H.nlen+H.ndist){k.msg="invalid bit length repeat",H.mode=30;break}for(;le--;)H.lens[H.have++]=pe}}if(H.mode===30)break;if(H.lens[256]===0){k.msg="invalid code -- missing end-of-block",H.mode=30;break}if(H.lenbits=9,Me={bits:H.lenbits},Pe=l(g,H.lens,0,H.nlen,H.lencode,0,H.work,Me),H.lenbits=Me.bits,Pe){k.msg="invalid literal/lengths set",H.mode=30;break}if(H.distbits=6,H.distcode=H.distdyn,Me={bits:H.distbits},Pe=l(u,H.lens,H.nlen,H.ndist,H.distcode,0,H.work,Me),H.distbits=Me.bits,Pe){k.msg="invalid distances set",H.mode=30;break}if(H.mode=20,T===6)break e;case 20:H.mode=21;case 21:if(6<=ee&&258<=j){k.next_out=q,k.avail_out=j,k.next_in=Y,k.avail_in=ee,H.hold=J,H.bits=ie,c(k,ne),q=k.next_out,K=k.output,j=k.avail_out,Y=k.next_in,G=k.input,ee=k.avail_in,J=H.hold,ie=H.bits,H.mode===12&&(H.back=-1);break}for(H.back=0;Ie=(Oe=H.lencode[J&(1<<H.lenbits)-1])>>>16&255,he=65535&Oe,!((ce=Oe>>>24)<=ie);){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(Ie&&(240&Ie)==0){for(Ce=ce,we=Ie,ve=he;Ie=(Oe=H.lencode[ve+((J&(1<<Ce+we)-1)>>Ce)])>>>16&255,he=65535&Oe,!(Ce+(ce=Oe>>>24)<=ie);){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}J>>>=Ce,ie-=Ce,H.back+=Ce}if(J>>>=ce,ie-=ce,H.back+=ce,H.length=he,Ie===0){H.mode=26;break}if(32&Ie){H.back=-1,H.mode=12;break}if(64&Ie){k.msg="invalid literal/length code",H.mode=30;break}H.extra=15&Ie,H.mode=22;case 22:if(H.extra){for(Qe=H.extra;ie<Qe;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.length+=J&(1<<H.extra)-1,J>>>=H.extra,ie-=H.extra,H.back+=H.extra}H.was=H.length,H.mode=23;case 23:for(;Ie=(Oe=H.distcode[J&(1<<H.distbits)-1])>>>16&255,he=65535&Oe,!((ce=Oe>>>24)<=ie);){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if((240&Ie)==0){for(Ce=ce,we=Ie,ve=he;Ie=(Oe=H.distcode[ve+((J&(1<<Ce+we)-1)>>Ce)])>>>16&255,he=65535&Oe,!(Ce+(ce=Oe>>>24)<=ie);){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}J>>>=Ce,ie-=Ce,H.back+=Ce}if(J>>>=ce,ie-=ce,H.back+=ce,64&Ie){k.msg="invalid distance code",H.mode=30;break}H.offset=he,H.extra=15&Ie,H.mode=24;case 24:if(H.extra){for(Qe=H.extra;ie<Qe;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}H.offset+=J&(1<<H.extra)-1,J>>>=H.extra,ie-=H.extra,H.back+=H.extra}if(H.offset>H.dmax){k.msg="invalid distance too far back",H.mode=30;break}H.mode=25;case 25:if(j===0)break e;if(le=ne-j,H.offset>le){if((le=H.offset-le)>H.whave&&H.sane){k.msg="invalid distance too far back",H.mode=30;break}ge=le>H.wnext?(le-=H.wnext,H.wsize-le):H.wnext-le,le>H.length&&(le=H.length),_e=H.window}else _e=K,ge=q-H.offset,le=H.length;for(j<le&&(le=j),j-=le,H.length-=le;K[q++]=_e[ge++],--le;);H.length===0&&(H.mode=21);break;case 26:if(j===0)break e;K[q++]=H.length,j--,H.mode=21;break;case 27:if(H.wrap){for(;ie<32;){if(ee===0)break e;ee--,J|=G[Y++]<<ie,ie+=8}if(ne-=j,k.total_out+=ne,H.total+=ne,ne&&(k.adler=H.check=H.flags?A(H.check,K,ne,q-ne):a(H.check,K,ne,q-ne)),ne=j,(H.flags?J:f(J))!==H.check){k.msg="incorrect data check",H.mode=30;break}ie=J=0}H.mode=28;case 28:if(H.wrap&&H.flags){for(;ie<32;){if(ee===0)break e;ee--,J+=G[Y++]<<ie,ie+=8}if(J!==(4294967295&H.total)){k.msg="incorrect length check",H.mode=30;break}ie=J=0}H.mode=29;case 29:Pe=1;break e;case 30:Pe=-3;break e;case 31:return-4;default:return d}return k.next_out=q,k.avail_out=j,k.next_in=Y,k.avail_in=ee,H.hold=J,H.bits=ie,(H.wsize||ne!==k.avail_out&&H.mode<30&&(H.mode<27||T!==4))&&D(k,k.output,k.next_out,ne-k.avail_out)?(H.mode=31,-4):(oe-=k.avail_in,ne-=k.avail_out,k.total_in+=oe,k.total_out+=ne,H.total+=ne,H.wrap&&ne&&(k.adler=H.check=H.flags?A(H.check,K,ne,k.next_out-ne):a(H.check,K,ne,k.next_out-ne)),k.data_type=H.bits+(H.last?64:0)+(H.mode===12?128:0)+(H.mode===20||H.mode===15?256:0),(oe==0&&ne===0||T===4)&&Pe===h&&(Pe=-5),Pe)},r.inflateEnd=function(k){if(!k||!k.state)return d;var T=k.state;return T.window&&(T.window=null),k.state=null,h},r.inflateGetHeader=function(k,T){var H;return k&&k.state?(2&(H=k.state).wrap)==0?d:((H.head=T).done=!1,h):d},r.inflateSetDictionary=function(k,T){var H,G=T.length;return k&&k.state?(H=k.state).wrap!==0&&H.mode!==11?d:H.mode===11&&a(1,T,G,0)!==H.check?-3:D(k,T,G,G)?(H.mode=31,-4):(H.havedict=1,h):d},r.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(o,i,r){var s=o("../utils/common"),a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],A=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],c=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],l=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];i.exports=function(g,u,h,d,m,p,_,f){var I,C,y,x,E,B,b,Q,w,D=f.bits,k=0,T=0,H=0,G=0,K=0,Y=0,q=0,ee=0,j=0,J=0,ie=null,oe=0,ne=new s.Buf16(16),le=new s.Buf16(16),ge=null,_e=0;for(k=0;k<=15;k++)ne[k]=0;for(T=0;T<d;T++)ne[u[h+T]]++;for(K=D,G=15;1<=G&&ne[G]===0;G--);if(G<K&&(K=G),G===0)return m[p++]=20971520,m[p++]=20971520,f.bits=1,0;for(H=1;H<G&&ne[H]===0;H++);for(K<H&&(K=H),k=ee=1;k<=15;k++)if(ee<<=1,(ee-=ne[k])<0)return-1;if(0<ee&&(g===0||G!==1))return-1;for(le[1]=0,k=1;k<15;k++)le[k+1]=le[k]+ne[k];for(T=0;T<d;T++)u[h+T]!==0&&(_[le[u[h+T]]++]=T);if(B=g===0?(ie=ge=_,19):g===1?(ie=a,oe-=257,ge=A,_e-=257,256):(ie=c,ge=l,-1),k=H,E=p,q=T=J=0,y=-1,x=(j=1<<(Y=K))-1,g===1&&852<j||g===2&&592<j)return 1;for(;;){for(b=k-q,w=_[T]<B?(Q=0,_[T]):_[T]>B?(Q=ge[_e+_[T]],ie[oe+_[T]]):(Q=96,0),I=1<<k-q,H=C=1<<Y;m[E+(J>>q)+(C-=I)]=b<<24|Q<<16|w|0,C!==0;);for(I=1<<k-1;J&I;)I>>=1;if(I!==0?(J&=I-1,J+=I):J=0,T++,--ne[k]==0){if(k===G)break;k=u[h+_[T]]}if(K<k&&(J&x)!==y){for(q===0&&(q=K),E+=H,ee=1<<(Y=k-q);Y+q<G&&!((ee-=ne[Y+q])<=0);)Y++,ee<<=1;if(j+=1<<Y,g===1&&852<j||g===2&&592<j)return 1;m[y=J&x]=K<<24|Y<<16|E-p|0}}return J!==0&&(m[E+J]=k-q<<24|64<<16|0),f.bits=K,0}},{"../utils/common":41}],51:[function(o,i,r){i.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(o,i,r){var s=o("../utils/common"),a=0,A=1;function c(Oe){for(var Ne=Oe.length;0<=--Ne;)Oe[Ne]=0}var l=0,g=29,u=256,h=u+1+g,d=30,m=19,p=2*h+1,_=15,f=16,I=7,C=256,y=16,x=17,E=18,B=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],b=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],w=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],D=new Array(2*(h+2));c(D);var k=new Array(2*d);c(k);var T=new Array(512);c(T);var H=new Array(256);c(H);var G=new Array(g);c(G);var K,Y,q,ee=new Array(d);function j(Oe,Ne,Se,Le,ye){this.static_tree=Oe,this.extra_bits=Ne,this.extra_base=Se,this.elems=Le,this.max_length=ye,this.has_stree=Oe&&Oe.length}function J(Oe,Ne){this.dyn_tree=Oe,this.max_code=0,this.stat_desc=Ne}function ie(Oe){return Oe<256?T[Oe]:T[256+(Oe>>>7)]}function oe(Oe,Ne){Oe.pending_buf[Oe.pending++]=255&Ne,Oe.pending_buf[Oe.pending++]=Ne>>>8&255}function ne(Oe,Ne,Se){Oe.bi_valid>f-Se?(Oe.bi_buf|=Ne<<Oe.bi_valid&65535,oe(Oe,Oe.bi_buf),Oe.bi_buf=Ne>>f-Oe.bi_valid,Oe.bi_valid+=Se-f):(Oe.bi_buf|=Ne<<Oe.bi_valid&65535,Oe.bi_valid+=Se)}function le(Oe,Ne,Se){ne(Oe,Se[2*Ne],Se[2*Ne+1])}function ge(Oe,Ne){for(var Se=0;Se|=1&Oe,Oe>>>=1,Se<<=1,0<--Ne;);return Se>>>1}function _e(Oe,Ne,Se){var Le,ye,ke=new Array(_+1),Ye=0;for(Le=1;Le<=_;Le++)ke[Le]=Ye=Ye+Se[Le-1]<<1;for(ye=0;ye<=Ne;ye++){var $e=Oe[2*ye+1];$e!==0&&(Oe[2*ye]=ge(ke[$e]++,$e))}}function ce(Oe){var Ne;for(Ne=0;Ne<h;Ne++)Oe.dyn_ltree[2*Ne]=0;for(Ne=0;Ne<d;Ne++)Oe.dyn_dtree[2*Ne]=0;for(Ne=0;Ne<m;Ne++)Oe.bl_tree[2*Ne]=0;Oe.dyn_ltree[2*C]=1,Oe.opt_len=Oe.static_len=0,Oe.last_lit=Oe.matches=0}function Ie(Oe){8<Oe.bi_valid?oe(Oe,Oe.bi_buf):0<Oe.bi_valid&&(Oe.pending_buf[Oe.pending++]=Oe.bi_buf),Oe.bi_buf=0,Oe.bi_valid=0}function he(Oe,Ne,Se,Le){var ye=2*Ne,ke=2*Se;return Oe[ye]<Oe[ke]||Oe[ye]===Oe[ke]&&Le[Ne]<=Le[Se]}function Ce(Oe,Ne,Se){for(var Le=Oe.heap[Se],ye=Se<<1;ye<=Oe.heap_len&&(ye<Oe.heap_len&&he(Ne,Oe.heap[ye+1],Oe.heap[ye],Oe.depth)&&ye++,!he(Ne,Le,Oe.heap[ye],Oe.depth));)Oe.heap[Se]=Oe.heap[ye],Se=ye,ye<<=1;Oe.heap[Se]=Le}function we(Oe,Ne,Se){var Le,ye,ke,Ye,$e=0;if(Oe.last_lit!==0)for(;Le=Oe.pending_buf[Oe.d_buf+2*$e]<<8|Oe.pending_buf[Oe.d_buf+2*$e+1],ye=Oe.pending_buf[Oe.l_buf+$e],$e++,Le===0?le(Oe,ye,Ne):(le(Oe,(ke=H[ye])+u+1,Ne),(Ye=B[ke])!==0&&ne(Oe,ye-=G[ke],Ye),le(Oe,ke=ie(--Le),Se),(Ye=b[ke])!==0&&ne(Oe,Le-=ee[ke],Ye)),$e<Oe.last_lit;);le(Oe,C,Ne)}function ve(Oe,Ne){var Se,Le,ye,ke=Ne.dyn_tree,Ye=Ne.stat_desc.static_tree,$e=Ne.stat_desc.has_stree,st=Ne.stat_desc.elems,it=-1;for(Oe.heap_len=0,Oe.heap_max=p,Se=0;Se<st;Se++)ke[2*Se]!==0?(Oe.heap[++Oe.heap_len]=it=Se,Oe.depth[Se]=0):ke[2*Se+1]=0;for(;Oe.heap_len<2;)ke[2*(ye=Oe.heap[++Oe.heap_len]=it<2?++it:0)]=1,Oe.depth[ye]=0,Oe.opt_len--,$e&&(Oe.static_len-=Ye[2*ye+1]);for(Ne.max_code=it,Se=Oe.heap_len>>1;1<=Se;Se--)Ce(Oe,ke,Se);for(ye=st;Se=Oe.heap[1],Oe.heap[1]=Oe.heap[Oe.heap_len--],Ce(Oe,ke,1),Le=Oe.heap[1],Oe.heap[--Oe.heap_max]=Se,Oe.heap[--Oe.heap_max]=Le,ke[2*ye]=ke[2*Se]+ke[2*Le],Oe.depth[ye]=(Oe.depth[Se]>=Oe.depth[Le]?Oe.depth[Se]:Oe.depth[Le])+1,ke[2*Se+1]=ke[2*Le+1]=ye,Oe.heap[1]=ye++,Ce(Oe,ke,1),2<=Oe.heap_len;);Oe.heap[--Oe.heap_max]=Oe.heap[1],(function(je,ht){var Bt,Ct,Ht,Lt,It,Jt,Cn=ht.dyn_tree,Be=ht.max_code,Ze=ht.stat_desc.static_tree,_t=ht.stat_desc.has_stree,gt=ht.stat_desc.extra_bits,Xe=ht.stat_desc.extra_base,pt=ht.stat_desc.max_length,bt=0;for(Lt=0;Lt<=_;Lt++)je.bl_count[Lt]=0;for(Cn[2*je.heap[je.heap_max]+1]=0,Bt=je.heap_max+1;Bt<p;Bt++)pt<(Lt=Cn[2*Cn[2*(Ct=je.heap[Bt])+1]+1]+1)&&(Lt=pt,bt++),Cn[2*Ct+1]=Lt,Be<Ct||(je.bl_count[Lt]++,It=0,Xe<=Ct&&(It=gt[Ct-Xe]),Jt=Cn[2*Ct],je.opt_len+=Jt*(Lt+It),_t&&(je.static_len+=Jt*(Ze[2*Ct+1]+It)));if(bt!==0){do{for(Lt=pt-1;je.bl_count[Lt]===0;)Lt--;je.bl_count[Lt]--,je.bl_count[Lt+1]+=2,je.bl_count[pt]--,bt-=2}while(0<bt);for(Lt=pt;Lt!==0;Lt--)for(Ct=je.bl_count[Lt];Ct!==0;)Be<(Ht=je.heap[--Bt])||(Cn[2*Ht+1]!==Lt&&(je.opt_len+=(Lt-Cn[2*Ht+1])*Cn[2*Ht],Cn[2*Ht+1]=Lt),Ct--)}})(Oe,Ne),_e(ke,it,Oe.bl_count)}function pe(Oe,Ne,Se){var Le,ye,ke=-1,Ye=Ne[1],$e=0,st=7,it=4;for(Ye===0&&(st=138,it=3),Ne[2*(Se+1)+1]=65535,Le=0;Le<=Se;Le++)ye=Ye,Ye=Ne[2*(Le+1)+1],++$e<st&&ye===Ye||($e<it?Oe.bl_tree[2*ye]+=$e:ye!==0?(ye!==ke&&Oe.bl_tree[2*ye]++,Oe.bl_tree[2*y]++):$e<=10?Oe.bl_tree[2*x]++:Oe.bl_tree[2*E]++,ke=ye,it=($e=0)===Ye?(st=138,3):ye===Ye?(st=6,3):(st=7,4))}function Pe(Oe,Ne,Se){var Le,ye,ke=-1,Ye=Ne[1],$e=0,st=7,it=4;for(Ye===0&&(st=138,it=3),Le=0;Le<=Se;Le++)if(ye=Ye,Ye=Ne[2*(Le+1)+1],!(++$e<st&&ye===Ye)){if($e<it)for(;le(Oe,ye,Oe.bl_tree),--$e!=0;);else ye!==0?(ye!==ke&&(le(Oe,ye,Oe.bl_tree),$e--),le(Oe,y,Oe.bl_tree),ne(Oe,$e-3,2)):$e<=10?(le(Oe,x,Oe.bl_tree),ne(Oe,$e-3,3)):(le(Oe,E,Oe.bl_tree),ne(Oe,$e-11,7));ke=ye,it=($e=0)===Ye?(st=138,3):ye===Ye?(st=6,3):(st=7,4)}}c(ee);var Me=!1;function Qe(Oe,Ne,Se,Le){ne(Oe,(l<<1)+(Le?1:0),3),(function(ye,ke,Ye,$e){Ie(ye),oe(ye,Ye),oe(ye,~Ye),s.arraySet(ye.pending_buf,ye.window,ke,Ye,ye.pending),ye.pending+=Ye})(Oe,Ne,Se)}r._tr_init=function(Oe){Me||((function(){var Ne,Se,Le,ye,ke,Ye=new Array(_+1);for(ye=Le=0;ye<g-1;ye++)for(G[ye]=Le,Ne=0;Ne<1<<B[ye];Ne++)H[Le++]=ye;for(H[Le-1]=ye,ye=ke=0;ye<16;ye++)for(ee[ye]=ke,Ne=0;Ne<1<<b[ye];Ne++)T[ke++]=ye;for(ke>>=7;ye<d;ye++)for(ee[ye]=ke<<7,Ne=0;Ne<1<<b[ye]-7;Ne++)T[256+ke++]=ye;for(Se=0;Se<=_;Se++)Ye[Se]=0;for(Ne=0;Ne<=143;)D[2*Ne+1]=8,Ne++,Ye[8]++;for(;Ne<=255;)D[2*Ne+1]=9,Ne++,Ye[9]++;for(;Ne<=279;)D[2*Ne+1]=7,Ne++,Ye[7]++;for(;Ne<=287;)D[2*Ne+1]=8,Ne++,Ye[8]++;for(_e(D,h+1,Ye),Ne=0;Ne<d;Ne++)k[2*Ne+1]=5,k[2*Ne]=ge(Ne,5);K=new j(D,B,u+1,h,_),Y=new j(k,b,0,d,_),q=new j(new Array(0),Q,0,m,I)})(),Me=!0),Oe.l_desc=new J(Oe.dyn_ltree,K),Oe.d_desc=new J(Oe.dyn_dtree,Y),Oe.bl_desc=new J(Oe.bl_tree,q),Oe.bi_buf=0,Oe.bi_valid=0,ce(Oe)},r._tr_stored_block=Qe,r._tr_flush_block=function(Oe,Ne,Se,Le){var ye,ke,Ye=0;0<Oe.level?(Oe.strm.data_type===2&&(Oe.strm.data_type=(function($e){var st,it=4093624447;for(st=0;st<=31;st++,it>>>=1)if(1&it&&$e.dyn_ltree[2*st]!==0)return a;if($e.dyn_ltree[18]!==0||$e.dyn_ltree[20]!==0||$e.dyn_ltree[26]!==0)return A;for(st=32;st<u;st++)if($e.dyn_ltree[2*st]!==0)return A;return a})(Oe)),ve(Oe,Oe.l_desc),ve(Oe,Oe.d_desc),Ye=(function($e){var st;for(pe($e,$e.dyn_ltree,$e.l_desc.max_code),pe($e,$e.dyn_dtree,$e.d_desc.max_code),ve($e,$e.bl_desc),st=m-1;3<=st&&$e.bl_tree[2*w[st]+1]===0;st--);return $e.opt_len+=3*(st+1)+5+5+4,st})(Oe),ye=Oe.opt_len+3+7>>>3,(ke=Oe.static_len+3+7>>>3)<=ye&&(ye=ke)):ye=ke=Se+5,Se+4<=ye&&Ne!==-1?Qe(Oe,Ne,Se,Le):Oe.strategy===4||ke===ye?(ne(Oe,2+(Le?1:0),3),we(Oe,D,k)):(ne(Oe,4+(Le?1:0),3),(function($e,st,it,je){var ht;for(ne($e,st-257,5),ne($e,it-1,5),ne($e,je-4,4),ht=0;ht<je;ht++)ne($e,$e.bl_tree[2*w[ht]+1],3);Pe($e,$e.dyn_ltree,st-1),Pe($e,$e.dyn_dtree,it-1)})(Oe,Oe.l_desc.max_code+1,Oe.d_desc.max_code+1,Ye+1),we(Oe,Oe.dyn_ltree,Oe.dyn_dtree)),ce(Oe),Le&&Ie(Oe)},r._tr_tally=function(Oe,Ne,Se){return Oe.pending_buf[Oe.d_buf+2*Oe.last_lit]=Ne>>>8&255,Oe.pending_buf[Oe.d_buf+2*Oe.last_lit+1]=255&Ne,Oe.pending_buf[Oe.l_buf+Oe.last_lit]=255&Se,Oe.last_lit++,Ne===0?Oe.dyn_ltree[2*Se]++:(Oe.matches++,Ne--,Oe.dyn_ltree[2*(H[Se]+u+1)]++,Oe.dyn_dtree[2*ie(Ne)]++),Oe.last_lit===Oe.lit_bufsize-1},r._tr_align=function(Oe){ne(Oe,2,3),le(Oe,C,D),(function(Ne){Ne.bi_valid===16?(oe(Ne,Ne.bi_buf),Ne.bi_buf=0,Ne.bi_valid=0):8<=Ne.bi_valid&&(Ne.pending_buf[Ne.pending++]=255&Ne.bi_buf,Ne.bi_buf>>=8,Ne.bi_valid-=8)})(Oe)}},{"../utils/common":41}],53:[function(o,i,r){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(o,i,r){(function(s){(function(a,A){if(!a.setImmediate){var c,l,g,u,h=1,d={},m=!1,p=a.document,_=Object.getPrototypeOf&&Object.getPrototypeOf(a);_=_&&_.setTimeout?_:a,c={}.toString.call(a.process)==="[object process]"?function(y){n.nextTick(function(){I(y)})}:(function(){if(a.postMessage&&!a.importScripts){var y=!0,x=a.onmessage;return a.onmessage=function(){y=!1},a.postMessage("","*"),a.onmessage=x,y}})()?(u="setImmediate$"+Math.random()+"$",a.addEventListener?a.addEventListener("message",C,!1):a.attachEvent("onmessage",C),function(y){a.postMessage(u+y,"*")}):a.MessageChannel?((g=new MessageChannel).port1.onmessage=function(y){I(y.data)},function(y){g.port2.postMessage(y)}):p&&"onreadystatechange"in p.createElement("script")?(l=p.documentElement,function(y){var x=p.createElement("script");x.onreadystatechange=function(){I(y),x.onreadystatechange=null,l.removeChild(x),x=null},l.appendChild(x)}):function(y){setTimeout(I,0,y)},_.setImmediate=function(y){typeof y!="function"&&(y=new Function(""+y));for(var x=new Array(arguments.length-1),E=0;E<x.length;E++)x[E]=arguments[E+1];var B={callback:y,args:x};return d[h]=B,c(h),h++},_.clearImmediate=f}function f(y){delete d[y]}function I(y){if(m)setTimeout(I,0,y);else{var x=d[y];if(x){m=!0;try{(function(E){var B=E.callback,b=E.args;switch(b.length){case 0:B();break;case 1:B(b[0]);break;case 2:B(b[0],b[1]);break;case 3:B(b[0],b[1],b[2]);break;default:B.apply(A,b)}})(x)}finally{f(y),m=!1}}}}function C(y){y.source===a&&typeof y.data=="string"&&y.data.indexOf(u)===0&&I(+y.data.slice(u.length))}})(typeof self>"u"?s===void 0?this:s:self)}).call(this,typeof WC<"u"?WC:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(OJe)),OJe.exports}var sDi=rDi();const Yme=jC(sDi),aDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const n=new Yme,[o,{convertCircuitJsonToBomRows:i,convertBomRowsToCsv:r},{convertCircuitJsonToPickAndPlaceCsv:s}]=await Promise.all([lE("circuit-json-to-gerber"),lE("circuit-json-to-bom-csv"),lE("circuit-json-to-pnp-csv")]),a=t.filter(h=>!("error_type"in h)&&!("warning_type"in h)),A=o.convertCircuitJsonToGerberFiles(a,{flip_y_axis:!1});for(const[h,d]of Object.entries(A))n.file(`gerber/${h}`,d);const c=await i({circuitJson:t}),l=await r(c);n.file("bom.csv",l);const g=await s(t,{supplier:"jlcpcb"});n.file("pick_and_place.csv",g);const u=await n.generateAsync({type:"blob"});pE(u,{fileName:`${e}_fabrication_files.zip`})})(),{loading:"Generating fabrication files...",success:"Fabrication ZIP ready",error:n=>`Failed to generate fabrication files: ${n instanceof Error?n.message:String(n)}`})},ADi=async t=>{const{createFdmComponentBox:e,renderFdmComponentBoxPng:n}=await lE("circuit-json-to-fdm-component-box"),[o,i]=await Promise.all([e(t),n(t,{},{width:960,height:640})]);return{...o,previewPng:i}},cDi=async t=>{const{createFdmComponentBox:e}=await lE("circuit-json-to-fdm-component-box");return e(t)},Dln=({generatedBox:t,projectName:e})=>{const n=Uint8Array.from(t.threeMf);pE(new Blob([n.buffer],{type:"model/3mf"}),{fileName:`${gJe(e)}-component-box.3mf`})},lDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const n=await cDi(t);Dln({generatedBox:n,projectName:e})})(),{loading:"Generating component box...",success:"Component box 3MF ready",error:n=>`Failed to generate component box: ${n instanceof Error?n.message:String(n)}`})},gDi=async({circuitJson:t,projectName:e})=>{let n;try{const{convertCircuitJsonToGltf:o}=await lE("circuit-json-to-gltf");console.log("convertCircuitJsonToGltf",o);const i=await o(t,{format:"glb",boardTextureResolution:1024});if(!i||!(i instanceof ArrayBuffer))throw new Error("Invalid GLB data returned from converter");n=new Blob([i],{type:"model/gltf-binary"})}catch(o){console.error("GLB Export Error:",o);return}pE(n,{fileName:`${e}.glb`})},uDi=async({circuitJson:t,libraryName:e})=>{const{CircuitJsonToKicadLibraryConverter:n}=await lE("circuit-json-to-kicad"),o=new n(t,{libraryName:e,footprintLibraryName:e});o.runUntilFinished();const i=o.getOutput(),r=new Yme;r.file(`${e}.kicad_sym`,i.kicadSymString);for(const s of i.footprints){const a=r.folder(`${e}.pretty`);a&&a.file(`${s.footprintName}.kicad_mod`,`${s.kicadModString}
|
|
5765
5589
|
`)}if(i.model3dSourcePaths.length>0){const s=r.folder(`${e}.3dshapes`);if(s)for(const a of i.model3dSourcePaths)try{const A=a.split("/").pop()||a,c=await fetch(a);if(c.ok){const l=await c.arrayBuffer();s.file(A,l)}}catch{}}return r.file("fp-lib-table",i.fpLibTableString),r.file("sym-lib-table",i.symLibTableString),r},dDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const o=await(await uDi({circuitJson:t,libraryName:e})).generateAsync({type:"blob"});pE(o,{fileName:`${e}_kicad_library.zip`})})(),{loading:"Generating KiCad library...",success:"KiCad library ZIP ready",error:n=>`Failed to generate KiCad library: ${n instanceof Error?n.message:String(n)}`})},hDi=async({circuitJson:t,projectName:e})=>{const{CircuitJsonToKicadPcbConverter:n,CircuitJsonToKicadSchConverter:o,CircuitJsonToKicadProConverter:i,resolveAndLoadKicad3dModelFiles:r}=await lE("circuit-json-to-kicad"),s=new o(t);s.runUntilFinished();const a=s.getOutputString(),A=new n(t,{includeBuiltin3dModels:!0,projectName:e});A.runUntilFinished();const c=A.getOutputString(),l=new i(t,{projectName:e,schematicFilename:`${e}.kicad_sch`,pcbFilename:`${e}.kicad_pcb`});l.runUntilFinished();const g=l.getOutputString(),u=new Yme;return u.file(`${e}.kicad_sch`,a),u.file(`${e}.kicad_pcb`,c),u.file(`${e}.kicad_pro`,g),await r({projectName:e,model3dSourcePaths:A.getModel3dSourcePaths(),fetch,onModelFile:({outputPath:h,content:d})=>{u.file(h,d)},onError:({sourcePath:h})=>{console.warn(`Failed to load 3D model from ${h}`)}}),u},mDi=async({circuitJson:t,projectName:e})=>{await ia.promise((async()=>{const o=await(await hDi({circuitJson:t,projectName:e})).generateAsync({type:"blob"});pE(o,{fileName:`${e}_kicad_project.zip`})})(),{loading:"Generating KiCad project...",success:"KiCad project ZIP ready",error:n=>`Failed to generate KiCad project: ${n instanceof Error?n.message:String(n)}`})},Nln=async({circuitJson:t,projectName:e,options:n={}})=>{try{const{convertCircuitJsonToLbrn:o}=await lE("circuit-json-to-lbrn"),r=(await o(t,{includeSilkscreen:n.includeSilkscreen??!1,includeOxidationCleaningLayer:n.includeOxidationCleaningLayer??!0})).toXml(),s=new Blob([r],{type:"application/lbrn"});pE(s,{fileName:`${e}.lbrn2`})}catch(o){const i=o instanceof Error?o.message:"Unknown error";ia.error(`Failed to export to LBRN format: ${i}`)}},pDi=async({circuitJson:t,projectName:e})=>{const{convertCircuitJsonToPinoutSvg:n}=await lE("circuit-to-svg"),o=n(t);pE(o,{fileName:`${e}-pinout.svg`,mimeType:"image/svg+xml"})},_Di=async({circuitJson:t,projectName:e})=>{const{circuitJsonToStep:n}=await lE("circuit-json-to-step"),o=t.find(c=>c.type==="pcb_board"),i=o&&"width"in o?o.width:void 0,r=o&&"height"in o?o.height:void 0,s=o&&"thickness"in o?o.thickness:void 0;if(i===void 0||r===void 0||s===void 0){ia.error("Board dimensions not found. Please add a pcb_board with width, height, and thickness to your circuit.");return}let a;try{a=await n(t,{boardWidth:i,boardHeight:r,boardThickness:s,productName:e,includeComponents:!0,includeExternalMeshes:!0})}catch(c){const l=c instanceof Error?c.message:"Unknown error";ia.error(`Failed to convert circuit to STEP format: ${l}`);return}const A=new Blob([a],{type:"application/step"});try{pE(A,{fileName:`${e}.step`})}catch(c){const l=c instanceof Error?c.message:"Unknown error";ia.error(`Failed to download STEP file: ${l}`)}},fDi=[{extension:"json",name:"Circuit JSON"},{extension:"json",name:"Simple Route JSON"},{extension:"zip",name:"Fabrication Files"},{extension:"zip",name:"KiCad Project"},{extension:"zip",name:"Altium Project"},{extension:"zip",name:"KiCad Library"},{extension:"glb",name:"GLB (Binary GLTF)"},{extension:"svg",name:"Pinout SVG"},{extension:"step",name:"STEP"},{extension:"lbrn2",name:"LightBurn"}],IDi=async({exportName:t,circuitJson:e,simpleRouteJson:n,projectName:o})=>{const i=gJe(o);if(t==="Fabrication Files"){await aDi({circuitJson:e,projectName:i});return}if(t==="KiCad Project"){await mDi({circuitJson:e,projectName:i});return}if(t==="Altium Project"){await iDi({circuitJson:e,projectName:i});return}if(t==="KiCad Library"){await dDi({circuitJson:e,projectName:i});return}if(t==="Circuit JSON"){pE(JSON.stringify(e,null,2),{fileName:`${i}.circuit.json`,mimeType:"application/json"});return}if(t==="Simple Route JSON"){if(!n)throw new Error("No Simple Route JSON available to export");pE(JSON.stringify(n,null,2),{fileName:`${i}.simple-route.json`,mimeType:"application/json"});return}if(t==="GLB (Binary GLTF)"){await gDi({circuitJson:e,projectName:i});return}if(t==="Pinout SVG"){pDi({circuitJson:e,projectName:i});return}if(t==="STEP"){await _Di({circuitJson:e,projectName:i});return}if(t==="Component Box (3MF)"){await lDi({circuitJson:e,projectName:i});return}if(t==="LightBurn"){await Nln({circuitJson:e,projectName:i});return}throw new Error(`Unsupported export type: "${t}"`)},CDi=({packageName:t,onSelectReview:e})=>{const n=od(g=>g.fsMap),o=od(g=>g.circuitJson),[i,r]=te.useState([]),[s,a]=te.useState(!1),[A,c]=te.useState(!1);te.useEffect(()=>{!t||!V0e()||(a(!0),kj.get("ai_reviews/list",{searchParams:{package_name:t}}).json().then(g=>r(g.ai_reviews)).catch(g=>{console.error("Failed to load AI reviews",g),ia.error("Failed to load AI reviews")}).finally(()=>a(!1)))},[t]);const l=async()=>{if(!o){ia.error("Need Circuit JSON to Request AI Review");return}if(!V0e()){ia.error("Missing registry token");return}c(!0);try{const{ai_review:g}=await kj.post("ai_reviews/create",{json:{package_name:t??"unknown",fs_map:Object.fromEntries(n),circuit_json:o}}).json();r(u=>[g,...u]),e(g),ia.success("AI review requested")}catch(g){console.error("Failed to create AI review",g),ia.error("Failed to request AI review")}finally{c(!1)}};return U.jsxs(U.Fragment,{children:[U.jsxs(ew,{children:[U.jsx(tw,{children:"AI Review"}),U.jsx(GR,{children:"Select an AI review or request a new one."})]}),U.jsx("div",{className:"rf-flex rf-gap-4 rf-mt-4",children:U.jsx("div",{className:"rf-w-48 rf-h-64 rf-overflow-y-auto rf-border rf-rounded rf-p-2 rf-flex-shrink-0",children:s?U.jsx("div",{className:"rf-text-sm",children:"Loading..."}):i.length>0?i.map(g=>U.jsx("div",{className:"rf-text-sm rf-p-2 rf-cursor-pointer rf-rounded hover:rf-bg-zinc-100",onClick:()=>e(g),children:new Date(g.created_at||"").toLocaleString()},g.ai_review_id)):U.jsx("div",{className:"rf-text-sm rf-text-muted-foreground",children:"No AI reviews found."})})}),U.jsx(PY,{className:"rf-mt-4",children:U.jsx(gA,{onClick:l,disabled:A,children:A?"Requesting...":"Review my Board"})})]})};function GJe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var YR=GJe();function Rln(t){YR=t}var v$={exec:()=>null};function x0(t,e=""){let n=typeof t=="string"?t:t.source;const o={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(Yy.caret,"$1"),n=n.replace(i,s),o},getRegex:()=>new RegExp(n,e)};return o}var Yy={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},yDi=/^(?:[ \t]*(?:\n|$))+/,xDi=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,EDi=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,P$=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,BDi=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,YJe=/(?:[*+-]|\d{1,9}[.)])/,Tln=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,kln=x0(Tln).replace(/bull/g,YJe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),SDi=x0(Tln).replace(/bull/g,YJe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),UJe=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,bDi=/^[^\n]+/,KJe=/(?!\s*\])(?:\\.|[^\[\]\\])+/,QDi=x0(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",KJe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),vDi=x0(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,YJe).getRegex(),Ume="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",VJe=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,PDi=x0("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",VJe).replace("tag",Ume).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Fln=x0(UJe).replace("hr",P$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ume).getRegex(),wDi=x0(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Fln).getRegex(),zJe={blockquote:wDi,code:xDi,def:QDi,fences:EDi,heading:BDi,hr:P$,html:PDi,lheading:kln,list:vDi,newline:yDi,paragraph:Fln,table:v$,text:bDi},Lln=x0("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",P$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ume).getRegex(),MDi={...zJe,lheading:SDi,table:Lln,paragraph:x0(UJe).replace("hr",P$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Lln).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ume).getRegex()},DDi={...zJe,html:x0(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",VJe).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:v$,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x0(UJe).replace("hr",P$).replace("heading",` *#{1,6} *[^
|
|
5766
5590
|
]`).replace("lheading",kln).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},NDi=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,RDi=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Hln=/^( {2,}|\\)\n(?!\s*$)/,TDi=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Kme=/[\p{P}\p{S}]/u,JJe=/[\s\p{P}\p{S}]/u,Oln=/[^\s\p{P}\p{S}]/u,kDi=x0(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,JJe).getRegex(),Gln=/(?!~)[\p{P}\p{S}]/u,FDi=/(?!~)[\s\p{P}\p{S}]/u,LDi=/(?:[^\s\p{P}\p{S}]|~)/u,HDi=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,Yln=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,ODi=x0(Yln,"u").replace(/punct/g,Kme).getRegex(),GDi=x0(Yln,"u").replace(/punct/g,Gln).getRegex(),Uln="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",YDi=x0(Uln,"gu").replace(/notPunctSpace/g,Oln).replace(/punctSpace/g,JJe).replace(/punct/g,Kme).getRegex(),UDi=x0(Uln,"gu").replace(/notPunctSpace/g,LDi).replace(/punctSpace/g,FDi).replace(/punct/g,Gln).getRegex(),KDi=x0("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Oln).replace(/punctSpace/g,JJe).replace(/punct/g,Kme).getRegex(),VDi=x0(/\\(punct)/,"gu").replace(/punct/g,Kme).getRegex(),zDi=x0(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),JDi=x0(VJe).replace("(?:-->|$)","-->").getRegex(),WDi=x0("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",JDi).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Vme=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,jDi=x0(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Vme).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kln=x0(/^!?\[(label)\]\[(ref)\]/).replace("label",Vme).replace("ref",KJe).getRegex(),Vln=x0(/^!?\[(ref)\](?:\[\])?/).replace("ref",KJe).getRegex(),qDi=x0("reflink|nolink(?!\\()","g").replace("reflink",Kln).replace("nolink",Vln).getRegex(),WJe={_backpedal:v$,anyPunctuation:VDi,autolink:zDi,blockSkip:HDi,br:Hln,code:RDi,del:v$,emStrongLDelim:ODi,emStrongRDelimAst:YDi,emStrongRDelimUnd:KDi,escape:NDi,link:jDi,nolink:Vln,punctuation:kDi,reflink:Kln,reflinkSearch:qDi,tag:WDi,text:TDi,url:v$},XDi={...WJe,link:x0(/^!?\[(label)\]\((.*?)\)/).replace("label",Vme).getRegex(),reflink:x0(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Vme).getRegex()},jJe={...WJe,emStrongRDelimAst:UDi,emStrongLDelim:GDi,url:x0(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},$Di={...jJe,br:x0(Hln).replace("{2,}","*").getRegex(),text:x0(jJe.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},zme={normal:zJe,gfm:MDi,pedantic:DDi},w$={normal:WJe,gfm:jJe,breaks:$Di,pedantic:XDi},ZDi={"&":"&","<":"<",">":">",'"':""","'":"'"},zln=t=>ZDi[t];function x7(t,e){if(e){if(Yy.escapeTest.test(t))return t.replace(Yy.escapeReplace,zln)}else if(Yy.escapeTestNoEncode.test(t))return t.replace(Yy.escapeReplaceNoEncode,zln);return t}function Jln(t){try{t=encodeURI(t).replace(Yy.percentDecode,"%")}catch{return null}return t}function Wln(t,e){const n=t.replace(Yy.findPipe,(r,s,a)=>{let A=!1,c=s;for(;--c>=0&&a[c]==="\\";)A=!A;return A?"|":" |"}),o=n.split(Yy.splitPipe);let i=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),e)if(o.length>e)o.splice(e);else for(;o.length<e;)o.push("");for(;i<o.length;i++)o[i]=o[i].trim().replace(Yy.slashPipe,"|");return o}function M$(t,e,n){const o=t.length;if(o===0)return"";let i=0;for(;i<o&&t.charAt(o-i-1)===e;)i++;return t.slice(0,o-i)}function eNi(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let o=0;o<t.length;o++)if(t[o]==="\\")o++;else if(t[o]===e[0])n++;else if(t[o]===e[1]&&(n--,n<0))return o;return n>0?-2:-1}function jln(t,e,n,o,i){const r=e.href,s=e.title||null,a=t[1].replace(i.other.outputLinkReplace,"$1");o.state.inLink=!0;const A={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:r,title:s,text:a,tokens:o.inlineTokens(a)};return o.state.inLink=!1,A}function tNi(t,e,n){const o=t.match(n.other.indentCodeCompensation);if(o===null)return e;const i=o[1];return e.split(`
|