1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106 |
- import{aF as tv,aG as rv,aH as ov,aI as iv,aJ as nv,aK as av,aL as sv,aM as uv,aN as pv,aO as lv,aP as cv,aQ as dv,aR as yv,aS as hv,aT as fv,aU as mv,aV as _v,aW as gv,Q as vv,aX as Ev,aY as xv,aZ as Pv,a_ as H,a$ as _t,b0 as bv,b1 as Av}from"./antd-B7v2hwFR.js";import{H as _p,I as r6,_ as Fv}from"./index-CL6hUm94.js";import{A as D0,E as rs,f as u2,c as uu,a as gc,n as rf,s as R3,d as p2,b as Rm,e as zg,g as Tv,h as Ph,i as dp,j as C3,k as Sv,l as $d,m as I3,t as bh,o as wv,p as Rv,q as Cv,_ as cp,r as pn,u as y1,v as Dn,w as F0,x as T0,y as Ad,z as Iv}from"./vec2-DjBoYTHr.js";import{o as Mv,j as Nv,a2 as Dv,a5 as Ov}from"./vue-DApy1uhY.js";function Vf(){var e=new D0(16);return D0!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Lv(e,t,r,i,s,u,n,y,m,g,x,b,F,R,I,U){var V=new D0(16);return V[0]=e,V[1]=t,V[2]=r,V[3]=i,V[4]=s,V[5]=u,V[6]=n,V[7]=y,V[8]=m,V[9]=g,V[10]=x,V[11]=b,V[12]=F,V[13]=R,V[14]=I,V[15]=U,V}function o6(e,t){var r=t[0],i=t[1],s=t[2],u=t[3],n=t[4],y=t[5],m=t[6],g=t[7],x=t[8],b=t[9],F=t[10],R=t[11],I=t[12],U=t[13],V=t[14],J=t[15],Q=r*y-i*n,te=r*m-s*n,ne=r*g-u*n,pe=i*m-s*y,Oe=i*g-u*y,Ee=s*g-u*m,He=x*U-b*I,ft=x*V-F*I,Ge=x*J-R*I,Ae=b*V-F*U,Be=b*J-R*U,ze=F*J-R*V,st=Q*ze-te*Be+ne*Ae+pe*Ge-Oe*ft+Ee*He;return st?(st=1/st,e[0]=(y*ze-m*Be+g*Ae)*st,e[1]=(s*Be-i*ze-u*Ae)*st,e[2]=(U*Ee-V*Oe+J*pe)*st,e[3]=(F*Oe-b*Ee-R*pe)*st,e[4]=(m*Ge-n*ze-g*ft)*st,e[5]=(r*ze-s*Ge+u*ft)*st,e[6]=(V*ne-I*Ee-J*te)*st,e[7]=(x*Ee-F*ne+R*te)*st,e[8]=(n*Be-y*Ge+g*He)*st,e[9]=(i*Ge-r*Be-u*He)*st,e[10]=(I*Oe-U*ne+J*Q)*st,e[11]=(b*ne-x*Oe-R*Q)*st,e[12]=(y*ft-n*Ae-m*He)*st,e[13]=(r*Ae-i*ft+s*He)*st,e[14]=(U*te-I*pe-V*Q)*st,e[15]=(x*pe-b*te+F*Q)*st,e):null}function S0(e,t,r){var i=t[0],s=t[1],u=t[2],n=t[3],y=t[4],m=t[5],g=t[6],x=t[7],b=t[8],F=t[9],R=t[10],I=t[11],U=t[12],V=t[13],J=t[14],Q=t[15],te=r[0],ne=r[1],pe=r[2],Oe=r[3];return e[0]=te*i+ne*y+pe*b+Oe*U,e[1]=te*s+ne*m+pe*F+Oe*V,e[2]=te*u+ne*g+pe*R+Oe*J,e[3]=te*n+ne*x+pe*I+Oe*Q,te=r[4],ne=r[5],pe=r[6],Oe=r[7],e[4]=te*i+ne*y+pe*b+Oe*U,e[5]=te*s+ne*m+pe*F+Oe*V,e[6]=te*u+ne*g+pe*R+Oe*J,e[7]=te*n+ne*x+pe*I+Oe*Q,te=r[8],ne=r[9],pe=r[10],Oe=r[11],e[8]=te*i+ne*y+pe*b+Oe*U,e[9]=te*s+ne*m+pe*F+Oe*V,e[10]=te*u+ne*g+pe*R+Oe*J,e[11]=te*n+ne*x+pe*I+Oe*Q,te=r[12],ne=r[13],pe=r[14],Oe=r[15],e[12]=te*i+ne*y+pe*b+Oe*U,e[13]=te*s+ne*m+pe*F+Oe*V,e[14]=te*u+ne*g+pe*R+Oe*J,e[15]=te*n+ne*x+pe*I+Oe*Q,e}function of(e,t,r){var i=r[0],s=r[1],u=r[2],n,y,m,g,x,b,F,R,I,U,V,J;return t===e?(e[12]=t[0]*i+t[4]*s+t[8]*u+t[12],e[13]=t[1]*i+t[5]*s+t[9]*u+t[13],e[14]=t[2]*i+t[6]*s+t[10]*u+t[14],e[15]=t[3]*i+t[7]*s+t[11]*u+t[15]):(n=t[0],y=t[1],m=t[2],g=t[3],x=t[4],b=t[5],F=t[6],R=t[7],I=t[8],U=t[9],V=t[10],J=t[11],e[0]=n,e[1]=y,e[2]=m,e[3]=g,e[4]=x,e[5]=b,e[6]=F,e[7]=R,e[8]=I,e[9]=U,e[10]=V,e[11]=J,e[12]=n*i+x*s+I*u+t[12],e[13]=y*i+b*s+U*u+t[13],e[14]=m*i+F*s+V*u+t[14],e[15]=g*i+R*s+J*u+t[15]),e}function nf(e,t,r){var i=r[0],s=r[1],u=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*u,e[9]=t[9]*u,e[10]=t[10]*u,e[11]=t[11]*u,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function i6(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[4],n=t[5],y=t[6],m=t[7],g=t[8],x=t[9],b=t[10],F=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=u*s+g*i,e[5]=n*s+x*i,e[6]=y*s+b*i,e[7]=m*s+F*i,e[8]=g*s-u*i,e[9]=x*s-n*i,e[10]=b*s-y*i,e[11]=F*s-m*i,e}function Vg(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[0],n=t[1],y=t[2],m=t[3],g=t[8],x=t[9],b=t[10],F=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=u*s-g*i,e[1]=n*s-x*i,e[2]=y*s-b*i,e[3]=m*s-F*i,e[8]=u*i+g*s,e[9]=n*i+x*s,e[10]=y*i+b*s,e[11]=m*i+F*s,e}function Hg(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[0],n=t[1],y=t[2],m=t[3],g=t[4],x=t[5],b=t[6],F=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=u*s+g*i,e[1]=n*s+x*i,e[2]=y*s+b*i,e[3]=m*s+F*i,e[4]=g*s-u*i,e[5]=x*s-n*i,e[6]=b*s-y*i,e[7]=F*s-m*i,e}function Bv(e,t,r,i,s){var u=1/Math.tan(t/2),n;return e[0]=u/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,s!=null&&s!==1/0?(n=1/(i-s),e[10]=(s+i)*n,e[14]=2*s*i*n):(e[10]=-1,e[14]=-2*i),e}var Uv=Bv;function M3(e,t){var r=e[0],i=e[1],s=e[2],u=e[3],n=e[4],y=e[5],m=e[6],g=e[7],x=e[8],b=e[9],F=e[10],R=e[11],I=e[12],U=e[13],V=e[14],J=e[15],Q=t[0],te=t[1],ne=t[2],pe=t[3],Oe=t[4],Ee=t[5],He=t[6],ft=t[7],Ge=t[8],Ae=t[9],Be=t[10],ze=t[11],st=t[12],Vt=t[13],ir=t[14],Fr=t[15];return Math.abs(r-Q)<=rs*Math.max(1,Math.abs(r),Math.abs(Q))&&Math.abs(i-te)<=rs*Math.max(1,Math.abs(i),Math.abs(te))&&Math.abs(s-ne)<=rs*Math.max(1,Math.abs(s),Math.abs(ne))&&Math.abs(u-pe)<=rs*Math.max(1,Math.abs(u),Math.abs(pe))&&Math.abs(n-Oe)<=rs*Math.max(1,Math.abs(n),Math.abs(Oe))&&Math.abs(y-Ee)<=rs*Math.max(1,Math.abs(y),Math.abs(Ee))&&Math.abs(m-He)<=rs*Math.max(1,Math.abs(m),Math.abs(He))&&Math.abs(g-ft)<=rs*Math.max(1,Math.abs(g),Math.abs(ft))&&Math.abs(x-Ge)<=rs*Math.max(1,Math.abs(x),Math.abs(Ge))&&Math.abs(b-Ae)<=rs*Math.max(1,Math.abs(b),Math.abs(Ae))&&Math.abs(F-Be)<=rs*Math.max(1,Math.abs(F),Math.abs(Be))&&Math.abs(R-ze)<=rs*Math.max(1,Math.abs(R),Math.abs(ze))&&Math.abs(I-st)<=rs*Math.max(1,Math.abs(I),Math.abs(st))&&Math.abs(U-Vt)<=rs*Math.max(1,Math.abs(U),Math.abs(Vt))&&Math.abs(V-ir)<=rs*Math.max(1,Math.abs(V),Math.abs(ir))&&Math.abs(J-Fr)<=rs*Math.max(1,Math.abs(J),Math.abs(Fr))}function Gg(){var e=new D0(4);return D0!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function kv(e,t,r,i){var s=new D0(4);return s[0]=e,s[1]=t,s[2]=r,s[3]=i,s}function zv(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function n6(e,t,r){var i=t[0],s=t[1],u=t[2],n=t[3];return e[0]=r[0]*i+r[4]*s+r[8]*u+r[12]*n,e[1]=r[1]*i+r[5]*s+r[9]*u+r[13]*n,e[2]=r[2]*i+r[6]*s+r[10]*u+r[14]*n,e[3]=r[3]*i+r[7]*s+r[11]*u+r[15]*n,e}(function(){var e=Gg();return function(t,r,i,s,u,n){var y,m;for(r||(r=4),i||(i=0),s?m=Math.min(s*r+i,t.length):m=t.length,y=i;y<m;y+=r)e[0]=t[y],e[1]=t[y+1],e[2]=t[y+2],e[3]=t[y+3],u(e,e,n),t[y]=e[0],t[y+1]=e[1],t[y+2]=e[2],t[y+3]=e[3];return t}})();var jg={},Wg={},N3=e=>Wg[e],cu=(e,t)=>{Wg[e]=t},Vv=e=>jg[e],Z0=(e,t)=>{jg[e]=t},D3={},Cm={},Im=34,Fd=10,Mm=13;function Xg(e){return new Function("d","return {"+e.map(function(t,r){return JSON.stringify(t)+": d["+r+'] || ""'}).join(",")+"}")}function Hv(e,t){var r=Xg(e);return function(i,s){return t(r(i),s,e)}}function O3(e){var t=Object.create(null),r=[];return e.forEach(function(i){for(var s in i)s in t||r.push(t[s]=s)}),r}function Ls(e,t){var r=e+"",i=r.length;return i<t?new Array(t-i+1).join(0)+r:r}function Gv(e){return e<0?"-"+Ls(-e,6):e>9999?"+"+Ls(e,6):Ls(e,4)}function jv(e){var t=e.getUTCHours(),r=e.getUTCMinutes(),i=e.getUTCSeconds(),s=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":Gv(e.getUTCFullYear())+"-"+Ls(e.getUTCMonth()+1,2)+"-"+Ls(e.getUTCDate(),2)+(s?"T"+Ls(t,2)+":"+Ls(r,2)+":"+Ls(i,2)+"."+Ls(s,3)+"Z":i?"T"+Ls(t,2)+":"+Ls(r,2)+":"+Ls(i,2)+"Z":r||t?"T"+Ls(t,2)+":"+Ls(r,2)+"Z":"")}function Wv(e){var t=new RegExp('["'+e+`
- \r]`),r=e.charCodeAt(0);function i(b,F){var R,I,U=s(b,function(V,J){if(R)return R(V,J-1);I=V,R=F?Hv(V,F):Xg(V)});return U.columns=I||[],U}function s(b,F){var R=[],I=b.length,U=0,V=0,J,Q=I<=0,te=!1;b.charCodeAt(I-1)===Fd&&--I,b.charCodeAt(I-1)===Mm&&--I;function ne(){if(Q)return Cm;if(te)return te=!1,D3;var Oe,Ee=U,He;if(b.charCodeAt(Ee)===Im){for(;U++<I&&b.charCodeAt(U)!==Im||b.charCodeAt(++U)===Im;);return(Oe=U)>=I?Q=!0:(He=b.charCodeAt(U++))===Fd?te=!0:He===Mm&&(te=!0,b.charCodeAt(U)===Fd&&++U),b.slice(Ee+1,Oe-1).replace(/""/g,'"')}for(;U<I;){if((He=b.charCodeAt(Oe=U++))===Fd)te=!0;else if(He===Mm)te=!0,b.charCodeAt(U)===Fd&&++U;else if(He!==r)continue;return b.slice(Ee,Oe)}return Q=!0,b.slice(Ee,I)}for(;(J=ne())!==Cm;){for(var pe=[];J!==D3&&J!==Cm;)pe.push(J),J=ne();F&&(pe=F(pe,V++))==null||R.push(pe)}return R}function u(b,F){return b.map(function(R){return F.map(function(I){return x(R[I])}).join(e)})}function n(b,F){return F==null&&(F=O3(b)),[F.map(x).join(e)].concat(u(b,F)).join(`
- `)}function y(b,F){return F==null&&(F=O3(b)),u(b,F).join(`
- `)}function m(b){return b.map(g).join(`
- `)}function g(b){return b.map(x).join(e)}function x(b){return b==null?"":b instanceof Date?jv(b):t.test(b+="")?'"'+b.replace(/"/g,'""')+'"':b}return{parse:i,parseRows:s,format:n,formatBody:y,formatRows:m,formatRow:g,formatValue:x}}var Xv=Wv(","),Zv=Xv.parse;function yy(e,t,r){r===void 0&&(r={});var i={type:"Feature"};return(r.id===0||r.id)&&(i.id=r.id),r.bbox&&(i.bbox=r.bbox),i.properties=t||{},i.geometry=e,i}function a6(e,t,r){r===void 0&&(r={});for(var i=0,s=e;i<s.length;i++){var u=s[i];if(u.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var n=0;n<u[u.length-1].length;n++)if(u[u.length-1][n]!==u[0][n])throw new Error("First and last Position are not equivalent.")}var y={type:"Polygon",coordinates:e};return yy(y,t,r)}function Yv(e,t,r){if(r===void 0&&(r={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");var i={type:"LineString",coordinates:e};return yy(i,t,r)}function $v(e,t){t===void 0&&(t={});var r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function qv(e,t,r){r===void 0&&(r={});var i={type:"MultiPolygon",coordinates:e};return yy(i,t,r)}function Zg(e){if(Array.isArray(e))return e;if(e.type==="Feature"){if(e.geometry!==null)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function L3(e){return e.type==="Feature"?e.geometry:e}function Yg(e,t,r){if(e!==null)for(var i,s,u,n,y,m,g,x=0,b=0,F,R=e.type,I=R==="FeatureCollection",U=R==="Feature",V=I?e.features.length:1,J=0;J<V;J++){g=I?e.features[J].geometry:U?e.geometry:e,F=g?g.type==="GeometryCollection":!1,y=F?g.geometries.length:1;for(var Q=0;Q<y;Q++){var te=0,ne=0;if(n=F?g.geometries[Q]:g,n!==null){m=n.coordinates;var pe=n.type;switch(x=0,pe){case null:break;case"Point":if(t(m,b,J,te,ne)===!1)return!1;b++,te++;break;case"LineString":case"MultiPoint":for(i=0;i<m.length;i++){if(t(m[i],b,J,te,ne)===!1)return!1;b++,pe==="MultiPoint"&&te++}pe==="LineString"&&te++;break;case"Polygon":case"MultiLineString":for(i=0;i<m.length;i++){for(s=0;s<m[i].length-x;s++){if(t(m[i][s],b,J,te,ne)===!1)return!1;b++}pe==="MultiLineString"&&te++,pe==="Polygon"&&ne++}pe==="Polygon"&&te++;break;case"MultiPolygon":for(i=0;i<m.length;i++){for(ne=0,s=0;s<m[i].length;s++){for(u=0;u<m[i][s].length-x;u++){if(t(m[i][s][u],b,J,te,ne)===!1)return!1;b++}ne++}te++}break;case"GeometryCollection":for(i=0;i<n.geometries.length;i++)if(Yg(n.geometries[i],t)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function Kv(e,t){var r,i,s,u,n,y,m,g,x,b,F=0,R=e.type==="FeatureCollection",I=e.type==="Feature",U=R?e.features.length:1;for(r=0;r<U;r++){for(y=R?e.features[r].geometry:I?e.geometry:e,g=R?e.features[r].properties:I?e.properties:{},x=R?e.features[r].bbox:I?e.bbox:void 0,b=R?e.features[r].id:I?e.id:void 0,m=y?y.type==="GeometryCollection":!1,n=m?y.geometries.length:1,s=0;s<n;s++){if(u=m?y.geometries[s]:y,u===null){if(t(null,F,g,x,b)===!1)return!1;continue}switch(u.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(t(u,F,g,x,b)===!1)return!1;break}case"GeometryCollection":{for(i=0;i<u.geometries.length;i++)if(t(u.geometries[i],F,g,x,b)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}F++}}function $g(e,t){Kv(e,function(r,i,s,u,n){var y=r===null?null:r.type;switch(y){case null:case"Point":case"LineString":case"Polygon":return t(yy(r,s,{bbox:u,id:n}),i,0)===!1?!1:void 0}var m;switch(y){case"MultiPoint":m="Point";break;case"MultiLineString":m="LineString";break;case"MultiPolygon":m="Polygon";break}for(var g=0;g<r.coordinates.length;g++){var x=r.coordinates[g],b={type:m,coordinates:x};if(t(yy(b,s),i,g)===!1)return!1}})}var jh={REGISTERED_PROTOCOLS:{}},Qv=Object.defineProperty,Jv=Object.defineProperties,eE=Object.getOwnPropertyDescriptors,B3=Object.getOwnPropertySymbols,tE=Object.prototype.hasOwnProperty,rE=Object.prototype.propertyIsEnumerable,U3=(e,t,r)=>t in e?Qv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,s6=(e,t)=>{for(var r in t||(t={}))tE.call(t,r)&&U3(e,r,t[r]);if(B3)for(var r of B3(t))rE.call(t,r)&&U3(e,r,t[r]);return e},u6=(e,t)=>Jv(e,eE(t)),p6=e=>jh.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf("://"))],oE=class extends Error{constructor(e,t,r,i){super(`AJAXError: ${t} (${e}): ${r}`),this.status=e,this.statusText=t,this.url=r,this.body=i}};function qg(e,t){const r=new XMLHttpRequest,i=Array.isArray(e.url)?e.url[0]:e.url;r.open(e.method||"GET",i,!0),e.type==="arrayBuffer"&&(r.responseType="arraybuffer");for(const s in e.headers)e.headers.hasOwnProperty(s)&&r.setRequestHeader(s,e.headers[s]);return e.type==="json"&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials=e.credentials==="include",r.onerror=()=>{t(new Error(r.statusText))},r.onload=()=>{if((r.status>=200&&r.status<300||r.status===0)&&r.response!==null){let s=r.response;if(e.type==="json")try{s=JSON.parse(r.response)}catch(u){return t(u)}t(null,s,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"),r)}else{const s=new Blob([r.response],{type:r.getResponseHeader("Content-Type")});t(new oE(r.status,r.statusText,i.toString(),s))}},r.cancel=r.abort,r.send(e.body),r}function iE(e){return new Promise((t,r)=>{qg(e,(i,s,u,n,y)=>{i?r({err:i,data:null,xhr:y}):t({err:null,data:s,cacheControl:u,expires:n,xhr:y})})})}function l6(e,t){return qg(e,t)}var nE=(e,t)=>(p6(e.url)||l6)(u6(s6({},e),{type:"json"}),t),c6=(e,t)=>(p6(e.url)||l6)(u6(s6({},e),{type:"arrayBuffer"}),t),aE=(e,t)=>l6(u6(s6({},e),{method:"GET"}),t),k3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Kg(e,t){const r=new window.Image,i=window.URL||window.webkitURL;r.crossOrigin="anonymous",r.onload=()=>{t(null,r),i.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>{r.src=k3})},r.onerror=()=>t(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new Blob([new Uint8Array(e)],{type:"image/png"});r.src=e.byteLength?i.createObjectURL(s):k3}function Qg(e,t){const r=new Blob([new Uint8Array(e)],{type:"image/png"});createImageBitmap(r).then(i=>{t(null,i)}).catch(i=>{t(new Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}var l2=(e,t,r)=>{const i=(s,u)=>{if(s)t(s);else if(u){const n=typeof createImageBitmap=="function",y=r?r(u):u;n?Qg(y,t):Kg(y,t)}};return e.type==="json"?nE(e,i):c6(e,i)},sE=(e,t)=>{typeof createImageBitmap=="function"?Qg(e,t):Kg(e,t)};function d6(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Jg(e,t){var r=Object.create(e.prototype);for(var i in t)r[i]=t[i];return r}function My(){}var hy=.7,af=1/hy,w0="\\s*([+-]?\\d+)\\s*",fy="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Yp="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",uE=/^#([0-9a-f]{3,8})$/,pE=new RegExp("^rgb\\("+[w0,w0,w0]+"\\)$"),lE=new RegExp("^rgb\\("+[Yp,Yp,Yp]+"\\)$"),cE=new RegExp("^rgba\\("+[w0,w0,w0,fy]+"\\)$"),dE=new RegExp("^rgba\\("+[Yp,Yp,Yp,fy]+"\\)$"),yE=new RegExp("^hsl\\("+[fy,Yp,Yp]+"\\)$"),hE=new RegExp("^hsla\\("+[fy,Yp,Yp,fy]+"\\)$"),z3={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};d6(My,O0,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:V3,formatHex:V3,formatHsl:fE,formatRgb:H3,toString:H3});function V3(){return this.rgb().formatHex()}function fE(){return e8(this).formatHsl()}function H3(){return this.rgb().formatRgb()}function O0(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=uE.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?G3(t):r===3?new pu(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ah(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ah(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=pE.exec(e))?new pu(t[1],t[2],t[3],1):(t=lE.exec(e))?new pu(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=cE.exec(e))?Ah(t[1],t[2],t[3],t[4]):(t=dE.exec(e))?Ah(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=yE.exec(e))?X3(t[1],t[2]/100,t[3]/100,1):(t=hE.exec(e))?X3(t[1],t[2]/100,t[3]/100,t[4]):z3.hasOwnProperty(e)?G3(z3[e]):e==="transparent"?new pu(NaN,NaN,NaN,0):null}function G3(e){return new pu(e>>16&255,e>>8&255,e&255,1)}function Ah(e,t,r,i){return i<=0&&(e=t=r=NaN),new pu(e,t,r,i)}function mE(e){return e instanceof My||(e=O0(e)),e?(e=e.rgb(),new pu(e.r,e.g,e.b,e.opacity)):new pu}function sf(e,t,r,i){return arguments.length===1?mE(e):new pu(e,t,r,i??1)}function pu(e,t,r,i){this.r=+e,this.g=+t,this.b=+r,this.opacity=+i}d6(pu,sf,Jg(My,{brighter:function(e){return e=e==null?af:Math.pow(af,e),new pu(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=e==null?hy:Math.pow(hy,e),new pu(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:j3,formatHex:j3,formatRgb:W3,toString:W3}));function j3(){return"#"+Nm(this.r)+Nm(this.g)+Nm(this.b)}function W3(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(e===1?")":", "+e+")")}function Nm(e){return e=Math.max(0,Math.min(255,Math.round(e)||0)),(e<16?"0":"")+e.toString(16)}function X3(e,t,r,i){return i<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Zp(e,t,r,i)}function e8(e){if(e instanceof Zp)return new Zp(e.h,e.s,e.l,e.opacity);if(e instanceof My||(e=O0(e)),!e)return new Zp;if(e instanceof Zp)return e;e=e.rgb();var t=e.r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),u=Math.max(t,r,i),n=NaN,y=u-s,m=(u+s)/2;return y?(t===u?n=(r-i)/y+(r<i)*6:r===u?n=(i-t)/y+2:n=(t-r)/y+4,y/=m<.5?u+s:2-u-s,n*=60):y=m>0&&m<1?0:n,new Zp(n,y,m,e.opacity)}function _E(e,t,r,i){return arguments.length===1?e8(e):new Zp(e,t,r,i??1)}function Zp(e,t,r,i){this.h=+e,this.s=+t,this.l=+r,this.opacity=+i}d6(Zp,_E,Jg(My,{brighter:function(e){return e=e==null?af:Math.pow(af,e),new Zp(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=e==null?hy:Math.pow(hy,e),new Zp(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*t,s=2*r-i;return new pu(Dm(e>=240?e-240:e+120,s,i),Dm(e,s,i),Dm(e<120?e+240:e-120,s,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(e===1?")":", "+e+")")}}));function Dm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function Mi(e){const t=O0(e),r=[0,0,0,0];return t!=null&&(r[0]=t.r/255,r[1]=t.g/255,r[2]=t.b/255,r[3]=t.opacity),r}function c1(e){const t=e&&e[0],r=e&&e[1],i=e&&e[2];return t+r*256+i*65536-1}function L0(e){return[e+1&255,e+1>>8&255,e+1>>8>>8&255]}function t8(e){let t=window.document.createElement("canvas"),r=t.getContext("2d");t.width=256,t.height=1;let i=null;const s=r.createLinearGradient(0,0,256,1),u=e.positions[0],n=e.positions[e.positions.length-1];for(let y=0;y<e.colors.length;++y){const m=(e.positions[y]-u)/(n-u);s.addColorStop(m,e.colors[y])}return r.fillStyle=s,r.fillRect(0,0,256,1),i=new Uint8ClampedArray(r.getImageData(0,0,256,1).data),t=null,r=null,{data:i,width:256,height:1}}function gE(e,t){let r=window.document.createElement("canvas"),i=r.getContext("2d");r.width=256,r.height=1;const s=i.createLinearGradient(0,0,256,1),u=t[1]-t[0];for(let m=0;m<e.colors.length;++m){const g=Math.max((e.positions[m]-t[0])/u,0);s.addColorStop(g,e.colors[m])}i.fillStyle=s,i.fillRect(0,0,256,1);const n=i.getImageData(0,0,256,1).data,y=y6(i,n);return r=null,i=null,y}function vE(e){let t=window.document.createElement("canvas"),r=t.getContext("2d");t.width=256,t.height=1;const i=r.createImageData(256,1);return i.data.fill(0),e.positions.forEach((s,u)=>{const n=Mi(e.colors[u]);i.data[s*4+0]=n[0]*255,i.data[s*4+1]=n[1]*255,i.data[s*4+2]=n[2]*255,i.data[s*4+3]=n[3]*255}),t=null,r=null,i}function EE(e){let t=window.document.createElement("canvas"),r=t.getContext("2d");r.globalAlpha=1,t.width=256,t.height=1;const i=256/e.colors.length;for(let n=0;n<e.colors.length;n++)r.beginPath(),r.lineWidth=2,r.strokeStyle=e.colors[n],r.moveTo(n*i,0),r.lineTo((n+1)*i,0),r.stroke();const s=r.getImageData(0,0,256,1).data,u=y6(r,s);return t=null,r=null,u}function xE(e,t){let r=window.document.createElement("canvas"),i=r.getContext("2d");i.globalAlpha=1,r.width=256,r.height=1;const s=t[1]-t[0];e.positions.length-e.colors.length!==1&&console.warn("positions 的数字个数应当比 colors 的样式多一个,poisitions 的首尾值一般为数据的最大最新值");for(let y=0;y<e.colors.length;y++)i.beginPath(),i.lineWidth=2,i.strokeStyle=e.colors[y],i.moveTo((e.positions[y]-t[0])/s*255,0),i.lineTo((e.positions[y+1]-t[0])/s*255,0),i.stroke();const u=i.getImageData(0,0,256,1).data,n=y6(i,u);return r=null,i=null,n}function y6(e,t){const r=e.createImageData(256,1);for(let i=0;i<r.data.length;i+=4)r.data[i+0]=t[i+0],r.data[i+1]=t[i+1],r.data[i+2]=t[i+2],r.data[i+3]=t[i+3];return r}function h6(e){switch(e==null?void 0:e.type){case"cat":return[0,255];default:return[0,1]}}var Qn={isNil:cv,merge:tv,throttle:lv,isString:hv,debounce:uv,pull:Pv,isTypedArray:fv,isPlainObject:iv,isNumber:ov,isBoolean:xv,isEqual:nv,cloneDeep:mv,uniq:pv,clamp:Ev,upperFirst:dv,get:vv,mergeWith:_v,isFunction:sv,isObject:rv,isUndefined:av,camelCase:yv,uniqueId:gv};function PE(e){let t=e;return typeof e=="string"&&(t=window.document.getElementById(e)),t}function r8(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function o8(e){return r8(e).split(/\s+/)}function bE(e){var t;const r=(t=document==null?void 0:document.documentElement)==null?void 0:t.style;if(!r)return e[0];for(const i in e)if(e[i]&&e[i]in r)return e[i];return e[0]}function lu(e,t,r){const i=window.document.createElement(e);return t&&(i.className=t||""),r&&r.appendChild(i),i}function uf(e){const t=e.parentNode;t&&t.removeChild(e)}function ay(e,t){if(e.classList!==void 0){const r=o8(t);for(let i=0,s=r.length;i<s;i++)e.classList.add(r[i])}else if(!AE(e,t)){const r=f6(e);i8(e,(r?r+" ":"")+t)}}function c2(e,t){e.classList!==void 0?o8(t).forEach(i=>{e.classList.remove(i)}):i8(e,r8((" "+f6(e)+" ").replace(" "+t+" "," ")))}function AE(e,t){if(e.classList!==void 0)return e.classList.contains(t);const r=f6(e);return r.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(r)}function i8(e,t){e instanceof HTMLElement?e.className=t:e.className.baseVal=t}function f6(e){return e instanceof SVGElement&&(e=e.correspondingElement),e.className.baseVal===void 0?e.className:e.className.baseVal}bE(["transform","WebkitTransform"]);function FE(){var e;const t=window.document.querySelector('meta[name="viewport"]');if(!t)return 1;const i=((e=t.content)==null?void 0:e.split(",")).find(s=>{const[u]=s.split("=");return u==="initial-scale"});return i?i.split("=")[1]*1:1}var Bs=FE()<1?1:window.devicePixelRatio;function TE(e,t){e.setAttribute("style",`${e.style.cssText}${t}`)}function SE(e){return Object.entries(e).map(([t,r])=>`${t}: ${r}`).join(";")}function wE(e,t){return{left:e.left-t.left,top:e.top-t.top,right:t.left+t.width-e.left-e.width,bottom:t.top+t.height-e.top-e.height}}function n8(e){e.innerHTML=""}function RE(e){e.setAttribute("draggable","false")}function CE(e,t){var r;const i=Array.isArray(t)?t:[t];let s=e;for(;s instanceof Element&&s!==window.document.body;){if(i.find(u=>s==null?void 0:s.matches(u)))return s;s=(r=s==null?void 0:s.parentElement)!=null?r:null}}function IE(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap}var d2=navigator==null?void 0:navigator.userAgent;d2.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);d2.indexOf("Android")>-1||d2.indexOf("Adr")>-1;function y2(e){var t=[1/0,1/0,-1/0,-1/0];return Yg(e,function(r){t[0]>r[0]&&(t[0]=r[0]),t[1]>r[1]&&(t[1]=r[1]),t[2]<r[0]&&(t[2]=r[0]),t[3]<r[1]&&(t[3]=r[1])}),t}y2.default=y2;function Om(e){return typeof e=="number"}function ua(e){return e-Math.fround(e)}var Z3=2*Math.PI*6378137/2;function ME(e,t){const[r,i,s,u]=t;return e.lng>r&&e.lng<=s&&e.lat>i&&e.lat<=u}function NE(e){const t=[1/0,1/0,-1/0,-1/0];return e.forEach(r=>{const{coordinates:i}=r;a8(t,i)}),t}function a8(e,t){return Array.isArray(t[0])?t.forEach(r=>{a8(e,r)}):(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])),e}function Wh(e,t=!0,r={enable:!0,decimal:1}){e=LE(e,t);const i=e[0],s=e[1];let u=i*Z3/180,n=Math.log(Math.tan((90+s)*Math.PI/360))/(Math.PI/180);return n=n*Z3/180,r.enable&&(u=Number(u.toFixed(r.decimal)),n=Number(n.toFixed(r.decimal))),e.length===3?[u,n,e[2]]:[u,n]}function DE(e){if(e==null)throw new Error("lng is required");return(e>180||e<-180)&&(e=e%360,e>180&&(e=-360+e),e<-180&&(e=360+e),e===0&&(e=0)),e}function OE(e){if(e==null)throw new Error("lat is required");return(e>90||e<-90)&&(e=e%180,e>90&&(e=-180+e),e<-90&&(e=180+e),e===0&&(e=0)),e}function LE(e,t){if(t===!1)return e;const r=DE(e[0]);let i=OE(e[1]);return i>85&&(i=85),i<-85&&(i=-85),e.length===3?[r,i,e[2]]:[r,i]}function Gu(e){const r=Math.max(Math.min(85.0511287798,e[1]),-85.0511287798),i=256<<20;let s=Math.PI/180,u=e[0]*s,n=r*s;n=Math.log(Math.tan(Math.PI/4+n/2));const y=.5/Math.PI,m=.5,g=-.5/Math.PI;return s=.5,u=i*(y*u+m),n=i*(g*n+s),[Math.floor(u),Math.floor(n)]}function m6(e,t){const r=Math.abs(e[1][1]-e[0][1])*t,i=Math.abs(e[1][0]-e[0][0])*t;return[[e[0][0]-i,e[0][1]-r],[e[1][0]+i,e[1][1]+r]]}function s8(e,t){return e[0][0]<=t[0][0]&&e[0][1]<=t[0][1]&&e[1][0]>=t[1][0]&&e[1][1]>=t[1][1]}function pf(e){return[[e[0],e[1]],[e[2],e[3]]]}function BE(e){const t=UE(e,[0,0]);return[e[0]/t,e[1]/t]}function UE(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function h1(e){if(Om(e[0]))return e;if(Om(e[0][0]))throw new Error("当前数据不支持标注");if(Om(e[0][0][0])){const t=e;let r=0,i=0,s=0;return t.forEach(u=>{u.forEach(n=>{r+=n[0],i+=n[1],s++})}),[r/s,i/s,0]}else throw new Error("当前数据不支持标注")}function kE(e){let t=e[0],r=e[1],i=e[0],s=e[1],u=0,n=0,y=0;for(let m=0;m<e.length;m+=2){const g=e[m],x=e[m+1];g&&x&&(t=Math.max(g,t),r=Math.max(x,r),i=Math.min(g,i),s=Math.min(x,s),u+=g,n+=x,y++)}return{center:[u/y,n/y],radius:Math.sqrt(Math.pow(t-i,2)+Math.pow(r-s,2))/2}}function zE(e){return y2($v([Yv(e)]))}function VE(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var HE=class{constructor(e=50,t){this.limit=e,this.destroy=t||this.defaultDestroy,this.order=[],this.clear()}clear(){this.order.forEach(e=>{this.delete(e)}),this.cache={},this.order=[]}get(e){const t=this.cache[e];return t&&(this.deleteOrder(e),this.appendOrder(e)),t}set(e,t){this.cache[e]?(this.delete(e),this.cache[e]=t,this.appendOrder(e)):(Object.keys(this.cache).length===this.limit&&this.delete(this.order[0]),this.cache[e]=t,this.appendOrder(e))}delete(e){const t=this.cache[e];t&&(this.deleteCache(e),this.deleteOrder(e),this.destroy(t,e))}deleteCache(e){delete this.cache[e]}deleteOrder(e){const t=this.order.findIndex(r=>r===e);t>=0&&this.order.splice(t,1)}appendOrder(e){this.order.push(e)}defaultDestroy(e,t){return null}};function GE(e){if(e.length===0)throw new Error("max requires at least one data point");let t=e[0];for(let r=1;r<e.length;r++)e[r]>t&&(t=e[r]);return t*1}function jE(e){if(e.length===0)throw new Error("min requires at least one data point");let t=e[0];for(let r=1;r<e.length;r++)e[r]<t&&(t=e[r]);return t*1}function u8(e){if(e.length===0)return 0;let t=e[0]*1;for(let r=1;r<e.length;r++)t+=e[r]*1;return t}function WE(e){if(e.length===0)throw new Error("mean requires at least one data point");return u8(e)/e.length}function XE(e){if(e.length===0)throw new Error("mean requires at least one data point");if(e.length<3)return e[0];e.sort();let t=e[0],r=NaN,i=0,s=1;for(let u=1;u<e.length+1;u++)e[u]!==t?(s>i&&(i=s,r=t),s=1,t=e[u]):s++;return r*1}var p8={min:jE,max:GE,mean:WE,sum:u8,mode:XE};function l8(e,t){return e.map(r=>r[t])}function ZE(e,t){t===void 0&&(t={});var r=Number(e[0]),i=Number(e[1]),s=Number(e[2]),u=Number(e[3]);if(e.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var n=[r,i],y=[r,u],m=[s,u],g=[s,i];return a6([[n,g,m,y,n]],t.properties,{bbox:e,id:t.id})}var c8={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function s(m,g,x){this.fn=m,this.context=g,this.once=x||!1}function u(m,g,x,b,F){if(typeof x!="function")throw new TypeError("The listener must be a function");var R=new s(x,b||m,F),I=r?r+g:g;return m._events[I]?m._events[I].fn?m._events[I]=[m._events[I],R]:m._events[I].push(R):(m._events[I]=R,m._eventsCount++),m}function n(m,g){--m._eventsCount===0?m._events=new i:delete m._events[g]}function y(){this._events=new i,this._eventsCount=0}y.prototype.eventNames=function(){var g=[],x,b;if(this._eventsCount===0)return g;for(b in x=this._events)t.call(x,b)&&g.push(r?b.slice(1):b);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(x)):g},y.prototype.listeners=function(g){var x=r?r+g:g,b=this._events[x];if(!b)return[];if(b.fn)return[b.fn];for(var F=0,R=b.length,I=new Array(R);F<R;F++)I[F]=b[F].fn;return I},y.prototype.listenerCount=function(g){var x=r?r+g:g,b=this._events[x];return b?b.fn?1:b.length:0},y.prototype.emit=function(g,x,b,F,R,I){var U=r?r+g:g;if(!this._events[U])return!1;var V=this._events[U],J=arguments.length,Q,te;if(V.fn){switch(V.once&&this.removeListener(g,V.fn,void 0,!0),J){case 1:return V.fn.call(V.context),!0;case 2:return V.fn.call(V.context,x),!0;case 3:return V.fn.call(V.context,x,b),!0;case 4:return V.fn.call(V.context,x,b,F),!0;case 5:return V.fn.call(V.context,x,b,F,R),!0;case 6:return V.fn.call(V.context,x,b,F,R,I),!0}for(te=1,Q=new Array(J-1);te<J;te++)Q[te-1]=arguments[te];V.fn.apply(V.context,Q)}else{var ne=V.length,pe;for(te=0;te<ne;te++)switch(V[te].once&&this.removeListener(g,V[te].fn,void 0,!0),J){case 1:V[te].fn.call(V[te].context);break;case 2:V[te].fn.call(V[te].context,x);break;case 3:V[te].fn.call(V[te].context,x,b);break;case 4:V[te].fn.call(V[te].context,x,b,F);break;default:if(!Q)for(pe=1,Q=new Array(J-1);pe<J;pe++)Q[pe-1]=arguments[pe];V[te].fn.apply(V[te].context,Q)}}return!0},y.prototype.on=function(g,x,b){return u(this,g,x,b,!1)},y.prototype.once=function(g,x,b){return u(this,g,x,b,!0)},y.prototype.removeListener=function(g,x,b,F){var R=r?r+g:g;if(!this._events[R])return this;if(!x)return n(this,R),this;var I=this._events[R];if(I.fn)I.fn===x&&(!F||I.once)&&(!b||I.context===b)&&n(this,R);else{for(var U=0,V=[],J=I.length;U<J;U++)(I[U].fn!==x||F&&!I[U].once||b&&I[U].context!==b)&&V.push(I[U]);V.length?this._events[R]=V.length===1?V[0]:V:n(this,R)}return this},y.prototype.removeAllListeners=function(g){var x;return g?(x=r?r+g:g,this._events[x]&&n(this,x)):(this._events=new i,this._eventsCount=0),this},y.prototype.off=y.prototype.removeListener,y.prototype.addListener=y.prototype.on,y.prefixed=r,y.EventEmitter=y,e.exports=y})(c8);var du=c8.exports;const _6=_p(du);var sy=(e=>(e.Realtime="realtime",e.Overlap="overlap",e.Replace="replace",e))(sy||{}),ku=(e=>(e.Loading="Loading",e.Loaded="Loaded",e.Failure="Failure",e.Cancelled="Cancelled",e))(ku||{}),d8=0,Y3=1,Hf=2;function YE(e){e.forEach(t=>{t.isCurrent&&(t.isVisible=t.isLoaded)})}function $E(e){e.forEach(t=>{t.properties.state=d8}),e.forEach(t=>{t.isCurrent&&!y8(t)&&g6(t)}),e.forEach(t=>{t.isVisible=!!(t.properties.state&Hf)})}function qE(e){e.forEach(r=>{r.properties.state=d8}),e.forEach(r=>{r.isCurrent&&y8(r)}),e.slice().sort((r,i)=>r.z-i.z).forEach(r=>{r.isVisible=!!(r.properties.state&Hf),r.children.length&&(r.isVisible||r.properties.state&Y3)?r.children.forEach(i=>{i.properties.state=Y3}):r.isCurrent&&g6(r)})}function y8(e){for(;e;){if(e.isLoaded)return e.properties.state|=Hf,!0;e=e.parent}return!1}function g6(e){e.children.forEach(t=>{t.isLoaded?t.properties.state|=Hf:g6(t)})}var h8=[-1/0,-1/0,1/0,1/0],KE=.2,QE=5,JE={[sy.Realtime]:YE,[sy.Overlap]:$E,[sy.Replace]:qE},ex=()=>{};function h2(e,t,r){const i=Math.floor((e+180)/360*Math.pow(2,r)),s=Math.floor((1-Math.log(Math.tan(t*Math.PI/180)+1/Math.cos(t*Math.PI/180))/Math.PI)/2*Math.pow(2,r));return[i,s]}function $3(e,t,r){const i=e/Math.pow(2,r)*360-180,s=Math.PI-2*Math.PI*t/Math.pow(2,r),u=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,u]}var f8=(e,t,r)=>{const[i,s]=$3(e,t,r),[u,n]=$3(e+1,t+1,r);return[i,n,u,s]};function tx({zoom:e,latLonBounds:t,maxZoom:r=1/0,minZoom:i=0,zoomOffset:s=0,extent:u=h8}){let n=Math.ceil(e)+s;if(Number.isFinite(i)&&n<i)return[];Number.isFinite(r)&&n>r&&(n=r);const[y,m,g,x]=t,b=[Math.max(y,u[0]),Math.max(m,u[1]),Math.min(g,u[2]),Math.min(x,u[3])],F=[],[R,I]=h2(b[0],b[1],n),[U,V]=h2(b[2],b[3],n);for(let ne=R;ne<=U;ne++)for(let pe=V;pe<=I;pe++)F.push({x:ne,y:pe,z:n});const J=(U+R)/2,Q=(I+V)/2,te=(ne,pe)=>Math.abs(ne-J)+Math.abs(pe-Q);return F.sort((ne,pe)=>te(ne.x,ne.y)-te(pe.x,pe.y)),F}var rx=(e,t,r,i=!0)=>{const s=Math.pow(2,r),u=s-1,n=s;let y=e;const m=t;return i&&(y<0?y=y+n:y>u&&(y=y%n)),{warpX:y,warpY:m}},ox=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),ix=class extends du.EventEmitter{constructor(e){super(),this.tileSize=256,this.isVisible=!1,this.isCurrent=!1,this.isVisibleChange=!1,this.loadedLayers=0,this.isLayerLoaded=!1,this.isLoad=!1,this.isChildLoad=!1,this.parent=null,this.children=[],this.data=null,this.properties={},this.loadDataId=0;const{x:t,y:r,z:i,tileSize:s,warp:u=!0}=e;this.x=t,this.y=r,this.z=i,this.warp=u||!0,this.tileSize=s}get isLoading(){return this.loadStatus===ku.Loading}get isLoaded(){return this.loadStatus===ku.Loaded}get isFailure(){return this.loadStatus===ku.Failure}setTileLayerLoaded(){this.isLayerLoaded=!0}get isCancelled(){return this.loadStatus===ku.Cancelled}get isDone(){return[ku.Loaded,ku.Cancelled,ku.Failure].includes(this.loadStatus)}get bounds(){return f8(this.x,this.y,this.z)}get bboxPolygon(){const[e,t,r,i]=this.bounds,s=[(r-e)/2,(i-t)/2];return ZE(this.bounds,{properties:{key:this.key,id:this.key,bbox:this.bounds,center:s,meta:`
- ${this.key}
- `}})}get key(){return`${this.x}_${this.y}_${this.z}`}layerLoad(){this.loadedLayers++,this.emit("layerLoaded")}loadData(e){return ox(this,arguments,function*({getData:t,onLoad:r,onError:i}){this.loadDataId++;const s=this.loadDataId;this.isLoading&&this.abortLoad(),this.abortController=new AbortController,this.loadStatus=ku.Loading;let u=null,n;try{const{x:y,y:m,z:g,bounds:x,tileSize:b,warp:F}=this,{warpX:R,warpY:I}=rx(y,m,g,F),{signal:U}=this.abortController;u=yield t({x:R,y:I,z:g,bounds:x,tileSize:b,signal:U,warp:F},this)}catch(y){n=y}if(s===this.loadDataId&&!(this.isCancelled&&!u)){if(n||!u){this.loadStatus=ku.Failure,i(n,this);return}this.loadStatus=ku.Loaded,this.data=u,r(this)}})}reloadData(e){this.isLoading&&this.abortLoad(),this.loadData(e)}abortLoad(){this.isLoaded||this.isCancelled||(this.loadStatus=ku.Cancelled,this.abortController.abort(),this.xhrCancel&&this.xhrCancel())}},nx=(e,t)=>{const r=pf(e),i=m6(r,t),s=360*3-180;return[Math.max(i[0][0],-900),Math.max(i[0][1],-85.0511287798065),Math.min(i[1][0],s),Math.min(i[1][1],85.0511287798065)]},ax=(e,t)=>{const r=pf(e),i=pf(t);return s8(r,i)},sx=Object.defineProperty,ux=Object.defineProperties,px=Object.getOwnPropertyDescriptors,q3=Object.getOwnPropertySymbols,lx=Object.prototype.hasOwnProperty,cx=Object.prototype.propertyIsEnumerable,K3=(e,t,r)=>t in e?sx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Q3=(e,t)=>{for(var r in t||(t={}))lx.call(t,r)&&K3(e,r,t[r]);if(q3)for(var r of q3(t))cx.call(t,r)&&K3(e,r,t[r]);return e},dx=(e,t)=>ux(e,px(t)),{throttle:yx}=Qn,hx=class extends _6{constructor(e){super(),this.currentTiles=[],this.cacheTiles=new Map,this.throttleUpdate=yx((t,r)=>{this.update(t,r)},16),this.onTileLoad=t=>{this.emit("tile-loaded",t),this.updateTileVisible(),this.loadFinished()},this.onTileError=(t,r)=>{this.emit("tile-error",{error:t,tile:r}),this.updateTileVisible(),this.loadFinished()},this.onTileUnload=t=>{this.emit("tile-unload",t),this.loadFinished()},this.options={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,extent:h8,getTileData:ex,warp:!0,updateStrategy:sy.Replace},this.updateOptions(e)}get isLoaded(){return this.currentTiles.every(e=>e.isDone)}get tiles(){return Array.from(this.cacheTiles.values()).sort((t,r)=>t.z-r.z)}updateOptions(e){const t=e.minZoom===void 0?this.options.minZoom:Math.ceil(e.minZoom),r=e.maxZoom===void 0?this.options.maxZoom:Math.floor(e.maxZoom);this.options=dx(Q3(Q3({},this.options),e),{minZoom:t,maxZoom:r})}update(e,t){const r=Math.max(0,Math.ceil(e));if(this.lastViewStates&&this.lastViewStates.zoom===r&&ax(this.lastViewStates.latLonBoundsBuffer,t))return;const i=nx(t,KE);this.lastViewStates={zoom:r,latLonBounds:t,latLonBoundsBuffer:i},this.currentZoom=r;let s=!1;const u=this.getTileIndices(r,i).filter(n=>this.options.warp||n.x>=0&&n.x<Math.pow(2,r));this.emit("tiles-load-start"),this.currentTiles=u.map(({x:n,y,z:m})=>{let g=this.getTile(n,y,m);return g?(((g==null?void 0:g.isFailure)||(g==null?void 0:g.isCancelled))&&g.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}),g):(g=this.createTile(n,y,m),s=!0,g)}),s&&this.resizeCacheTiles(),this.updateTileVisible(),this.pruneRequests()}reloadAll(){for(const[e,t]of this.cacheTiles){if(!this.currentTiles.includes(t)){this.cacheTiles.delete(e),this.onTileUnload(t);return}this.onTileUnload(t),t.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError})}}reloadTileById(e,t,r){const i=this.cacheTiles.get(`${t},${r},${e}`);i&&(this.onTileUnload(i),i.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}))}reloadTileByLnglat(e,t,r){const i=this.getTileByLngLat(e,t,r);i&&this.reloadTileById(i.z,i.x,i.y)}reloadTileByExtent(e,t){this.getTileIndices(t,e).forEach(i=>{this.reloadTileById(i.z,i.x,i.y)})}pruneRequests(){const e=[];for(const t of this.cacheTiles.values())t.isLoading&&!t.isCurrent&&!t.isVisible&&e.push(t);for(;e.length>0;)e.shift().abortLoad()}getTileByLngLat(e,t,r){const{zoomOffset:i}=this.options,s=Math.ceil(r)+i,u=h2(e,t,s);return this.tiles.filter(y=>y.key===`${u[0]}_${u[1]}_${s}`)[0]}getTileExtent(e,t){return this.getTileIndices(t,e)}getTileByZXY(e,t,r){return this.tiles.filter(s=>s.key===`${t}_${r}_${e}`)[0]}clear(){for(const e of this.cacheTiles.values())e.isLoading?e.abortLoad():this.onTileUnload(e);this.lastViewStates=void 0,this.cacheTiles.clear(),this.currentTiles=[]}destroy(){this.clear(),this.removeAllListeners()}updateTileVisible(){const e=this.options.updateStrategy,t=new Map;for(const s of this.cacheTiles.values())t.set(s.key,s.isVisible),s.isCurrent=!1,s.isVisible=!1;for(const s of this.currentTiles)s.isCurrent=!0,s.isVisible=!0;const r=Array.from(this.cacheTiles.values());typeof e=="function"?e(r):JE[e](r);let i=!1;Array.from(this.cacheTiles.values()).forEach(s=>{s.isVisible!==t.get(s.key)?(s.isVisibleChange=!0,i=!0):s.isVisibleChange=!1}),i&&this.emit("tile-update")}getTileIndices(e,t){const{tileSize:r,extent:i,zoomOffset:s}=this.options,u=Math.floor(this.options.maxZoom),n=Math.ceil(this.options.minZoom);return tx({maxZoom:u,minZoom:n,zoomOffset:s,zoom:e,latLonBounds:t,extent:i})}getTileId(e,t,r){return`${e},${t},${r}`}loadFinished(){const e=!this.currentTiles.some(t=>!t.isDone);return e&&this.emit("tiles-load-finished"),e}getTile(e,t,r){const i=this.getTileId(e,t,r);return this.cacheTiles.get(i)}createTile(e,t,r){const i=this.getTileId(e,t,r),s=new ix({x:e,y:t,z:r,tileSize:this.options.tileSize,warp:this.options.warp});return this.cacheTiles.set(i,s),s.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}),s}resizeCacheTiles(){const e=QE*this.currentTiles.length;if(this.cacheTiles.size>e){for(const[r,i]of this.cacheTiles)if(!i.isVisible&&!this.currentTiles.includes(i)&&(this.cacheTiles.delete(r),this.onTileUnload(i)),this.cacheTiles.size<=e)break}this.rebuildTileTree()}rebuildTileTree(){for(const e of this.cacheTiles.values())e.parent=null,e.children.length=0;for(const e of this.cacheTiles.values()){const t=this.getNearestAncestor(e.x,e.y,e.z);e.parent=t,t!=null&&t.children&&t.children.push(e)}}getNearestAncestor(e,t,r){for(;r>this.options.minZoom;){e=Math.floor(e/2),t=Math.floor(t/2),r=r-1;const i=this.getTile(e,t,r);if(i)return i}return null}};function m8(e){const t=[];let r=/\{([a-z])-([a-z])\}/.exec(e);if(r){const i=r[1].charCodeAt(0),s=r[2].charCodeAt(0);let u;for(u=i;u<=s;++u)t.push(e.replace(r[0],String.fromCharCode(u)));return t}if(r=/\{(\d+)-(\d+)\}/.exec(e),r){const i=parseInt(r[2],10);for(let s=parseInt(r[1],10);s<=i;s++)t.push(e.replace(r[0],s.toString()));return t}return t.push(e),t}function R0(e,t){if(!e||!e.length)throw new Error("url is not allowed to be empty");const{x:r,y:i,z:s}=t,u=m8(e),n=Math.abs(r+i)%u.length;return(p6(u[n])?`${u[n]}/{z}/{x}/{y}`:u[n]).replace(/\{x\}/g,r.toString()).replace(/\{y\}/g,i.toString()).replace(/\{z\}/g,s.toString()).replace(/\{bbox\}/g,f8(r,i,s).join(",")).replace(/\{-y\}/g,(Math.pow(2,s)-i-1).toString())}function fx(e,t){const{x:r,y:i,z:s,layer:u,version:n="1.0.0",style:y="default",format:m,service:g="WMTS",tileMatrixset:x}=t,b=m8(e),F=Math.abs(r+i)%b.length;return`${b[F]}&SERVICE=${g}&REQUEST=GetTile&VERSION=${n}&LAYER=${u}&STYLE=${y}&TILEMATRIXSET=${x}&FORMAT=${m}&TILECOL=${r}&TILEROW=${i}&TILEMATRIX=${s}`}function Td(e,t){return e??t}var mx=Xh;function Xh(e,t){var r=e&&e.type,i;if(r==="FeatureCollection")for(i=0;i<e.features.length;i++)Xh(e.features[i],t);else if(r==="GeometryCollection")for(i=0;i<e.geometries.length;i++)Xh(e.geometries[i],t);else if(r==="Feature")Xh(e.geometry,t);else if(r==="Polygon")J3(e.coordinates,t);else if(r==="MultiPolygon")for(i=0;i<e.coordinates.length;i++)J3(e.coordinates[i],t);return e}function J3(e,t){if(e.length!==0){e_(e[0],t);for(var r=1;r<e.length;r++)e_(e[r],!t)}}function e_(e,t){for(var r=0,i=0,s=0,u=e.length,n=u-1;s<u;n=s++){var y=(e[s][0]-e[n][0])*(e[n][1]+e[s][1]),m=r+y;i+=Math.abs(r)>=Math.abs(y)?r-m+y:y-m+r,r=m}r+i>=0!=!!t&&e.reverse()}const _x=_p(mx);function gx(e,t){return e.map(r=>r[t]*1)}function _8(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number":!1}function f2(e){const t=Object.isFrozen(e)?Qn.cloneDeep(e):e;return _x(t,!0),t}function Y0(e,t){return e||[[t[0],t[3]],[t[2],t[3]],[t[2],t[1]],[t[0],t[1]]]}var vx=Object.defineProperty,Ex=Object.defineProperties,xx=Object.getOwnPropertyDescriptors,t_=Object.getOwnPropertySymbols,Px=Object.prototype.hasOwnProperty,bx=Object.prototype.propertyIsEnumerable,r_=(e,t,r)=>t in e?vx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,o_=(e,t)=>{for(var r in t||(t={}))Px.call(t,r)&&r_(e,r,t[r]);if(t_)for(var r of t_(t))bx.call(t,r)&&r_(e,r,t[r]);return e},i_=(e,t)=>Ex(e,xx(t));function g8(e,t){const{x:r,y:i,x1:s,y1:u,coordinates:n,geometry:y}=t,m=[];if(!Array.isArray(e))return{dataArray:[]};if(y)return e.filter(g=>g[y]&&g[y].type&&g[y].coordinates&&g[y].coordinates.length>0).forEach((g,x)=>{const b=f2(g[y]);$g(b,F=>{const R=Zg(F),I=i_(o_({},g),{_id:x,coordinates:R});m.push(I)})}),{dataArray:m};for(let g=0;g<e.length;g++){const x=e[g];let b=[];if(n){let R="Polygon";Array.isArray(n[0])||(R="Point"),Array.isArray(n[0])&&!Array.isArray(n[0][0])&&(R="LineString"),b=f2({type:R,coordinates:x[n]}).coordinates}else if(r&&i&&s&&u){const R=[parseFloat(x[r]),parseFloat(x[i])],I=[parseFloat(x[s]),parseFloat(x[u])];b=[R,I]}else r&&i&&(b=[parseFloat(x[r]),parseFloat(x[i])]);const F=i_(o_({},x),{_id:g,coordinates:b});m.push(F)}return{dataArray:m}}function Ax(e,t){const r=Zv(e);return g8(r,t)}var Fx=Object.defineProperty,Tx=Object.defineProperties,Sx=Object.getOwnPropertyDescriptors,n_=Object.getOwnPropertySymbols,Rx=Object.prototype.hasOwnProperty,Cx=Object.prototype.propertyIsEnumerable,a_=(e,t,r)=>t in e?Fx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ix=(e,t)=>{for(var r in t||(t={}))Rx.call(t,r)&&a_(e,r,t[r]);if(n_)for(var r of n_(t))Cx.call(t,r)&&a_(e,r,t[r]);return e},Mx=(e,t)=>Tx(e,Sx(t));function Nx(e){const t=e.toString();let r=5381,i=t.length;for(;i;)r=r*33^t.charCodeAt(--i);return r>>>0}function Dx(e,t){return t===void 0?null:isNaN(e.properties[t]*1)?e.properties&&e.properties[t]?Nx(e.properties[t]+"")%1000019:null:e.properties[t]*1}function Ox(e,t){const r=[],i={};return e.features?(e.features=e.features.filter(s=>{const u=s.geometry;return s!=null&&u&&u.type&&u.coordinates&&u.coordinates.length>0}),e=f2(e),e.features.length===0?{dataArray:[],featureKeys:i}:($g(e,(s,u)=>{let n=Dx(s,t==null?void 0:t.featureId);n===null&&(n=u);const y=n,m=Zg(s),g=Mx(Ix({},s.properties),{coordinates:m,_id:y});r.push(g)}),{dataArray:r,featureKeys:i})):(e.features=[],{dataArray:[]})}function m2(e,t,r,i){for(var s=i,u=r-t>>1,n=r-t,y,m=e[t],g=e[t+1],x=e[r],b=e[r+1],F=t+3;F<r;F+=3){var R=Lx(e[F],e[F+1],m,g,x,b);if(R>s)y=F,s=R;else if(R===s){var I=Math.abs(F-u);I<n&&(y=F,n=I)}}s>i&&(y-t>3&&m2(e,t,y,i),e[y+2]=s,r-y>3&&m2(e,y,r,i))}function Lx(e,t,r,i,s,u){var n=s-r,y=u-i;if(n!==0||y!==0){var m=((e-r)*n+(t-i)*y)/(n*n+y*y);m>1?(r=s,i=u):m>0&&(r+=n*m,i+=y*m)}return n=e-r,y=t-i,n*n+y*y}function _y(e,t,r,i){var s={id:typeof e>"u"?null:e,type:t,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return Bx(s),s}function Bx(e){var t=e.geometry,r=e.type;if(r==="Point"||r==="MultiPoint"||r==="LineString")Lm(e,t);else if(r==="Polygon"||r==="MultiLineString")for(var i=0;i<t.length;i++)Lm(e,t[i]);else if(r==="MultiPolygon")for(i=0;i<t.length;i++)for(var s=0;s<t[i].length;s++)Lm(e,t[i][s])}function Lm(e,t){for(var r=0;r<t.length;r+=3)e.minX=Math.min(e.minX,t[r]),e.minY=Math.min(e.minY,t[r+1]),e.maxX=Math.max(e.maxX,t[r]),e.maxY=Math.max(e.maxY,t[r+1])}function Ux(e,t){var r=[];if(e.type==="FeatureCollection")for(var i=0;i<e.features.length;i++)Zh(r,e.features[i],t,i);else e.type==="Feature"?Zh(r,e,t):Zh(r,{geometry:e},t);return r}function Zh(e,t,r,i){if(t.geometry){var s=t.geometry.coordinates,u=t.geometry.type,n=Math.pow(r.tolerance/((1<<r.maxZoom)*r.extent),2),y=[],m=t.id;if(r.promoteId?m=t.properties[r.promoteId]:r.generateId&&(m=i||0),u==="Point")s_(s,y);else if(u==="MultiPoint")for(var g=0;g<s.length;g++)s_(s[g],y);else if(u==="LineString")_2(s,y,n,!1);else if(u==="MultiLineString")if(r.lineMetrics){for(g=0;g<s.length;g++)y=[],_2(s[g],y,n,!1),e.push(_y(m,"LineString",y,t.properties));return}else Bm(s,y,n,!1);else if(u==="Polygon")Bm(s,y,n,!0);else if(u==="MultiPolygon")for(g=0;g<s.length;g++){var x=[];Bm(s[g],x,n,!0),y.push(x)}else if(u==="GeometryCollection"){for(g=0;g<t.geometry.geometries.length;g++)Zh(e,{id:m,geometry:t.geometry.geometries[g],properties:t.properties},r,i);return}else throw new Error("Input data is not a valid GeoJSON object.");e.push(_y(m,u,y,t.properties))}}function s_(e,t){t.push(v8(e[0])),t.push(E8(e[1])),t.push(0)}function _2(e,t,r,i){for(var s,u,n=0,y=0;y<e.length;y++){var m=v8(e[y][0]),g=E8(e[y][1]);t.push(m),t.push(g),t.push(0),y>0&&(i?n+=(s*g-m*u)/2:n+=Math.sqrt(Math.pow(m-s,2)+Math.pow(g-u,2))),s=m,u=g}var x=t.length-3;t[2]=1,m2(t,0,x,r),t[x+2]=1,t.size=Math.abs(n),t.start=0,t.end=t.size}function Bm(e,t,r,i){for(var s=0;s<e.length;s++){var u=[];_2(e[s],u,r,i),t.push(u)}}function v8(e){return e/360+.5}function E8(e){var t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function wl(e,t,r,i,s,u,n,y){if(r/=t,i/=t,u>=r&&n<i)return e;if(n<r||u>=i)return null;for(var m=[],g=0;g<e.length;g++){var x=e[g],b=x.geometry,F=x.type,R=s===0?x.minX:x.minY,I=s===0?x.maxX:x.maxY;if(R>=r&&I<i){m.push(x);continue}else if(I<r||R>=i)continue;var U=[];if(F==="Point"||F==="MultiPoint")kx(b,U,r,i,s);else if(F==="LineString")x8(b,U,r,i,s,!1,y.lineMetrics);else if(F==="MultiLineString")Um(b,U,r,i,s,!1);else if(F==="Polygon")Um(b,U,r,i,s,!0);else if(F==="MultiPolygon")for(var V=0;V<b.length;V++){var J=[];Um(b[V],J,r,i,s,!0),J.length&&U.push(J)}if(U.length){if(y.lineMetrics&&F==="LineString"){for(V=0;V<U.length;V++)m.push(_y(x.id,F,U[V],x.tags));continue}(F==="LineString"||F==="MultiLineString")&&(U.length===1?(F="LineString",U=U[0]):F="MultiLineString"),(F==="Point"||F==="MultiPoint")&&(F=U.length===3?"Point":"MultiPoint"),m.push(_y(x.id,F,U,x.tags))}}return m.length?m:null}function kx(e,t,r,i,s){for(var u=0;u<e.length;u+=3){var n=e[u+s];n>=r&&n<=i&&(t.push(e[u]),t.push(e[u+1]),t.push(e[u+2]))}}function x8(e,t,r,i,s,u,n){for(var y=u_(e),m=s===0?zx:Vx,g=e.start,x,b,F=0;F<e.length-3;F+=3){var R=e[F],I=e[F+1],U=e[F+2],V=e[F+3],J=e[F+4],Q=s===0?R:I,te=s===0?V:J,ne=!1;n&&(x=Math.sqrt(Math.pow(R-V,2)+Math.pow(I-J,2))),Q<r?te>r&&(b=m(y,R,I,V,J,r),n&&(y.start=g+x*b)):Q>i?te<i&&(b=m(y,R,I,V,J,i),n&&(y.start=g+x*b)):km(y,R,I,U),te<r&&Q>=r&&(b=m(y,R,I,V,J,r),ne=!0),te>i&&Q<=i&&(b=m(y,R,I,V,J,i),ne=!0),!u&&ne&&(n&&(y.end=g+x*b),t.push(y),y=u_(e)),n&&(g+=x)}var pe=e.length-3;R=e[pe],I=e[pe+1],U=e[pe+2],Q=s===0?R:I,Q>=r&&Q<=i&&km(y,R,I,U),pe=y.length-3,u&&pe>=3&&(y[pe]!==y[0]||y[pe+1]!==y[1])&&km(y,y[0],y[1],y[2]),y.length&&t.push(y)}function u_(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function Um(e,t,r,i,s,u){for(var n=0;n<e.length;n++)x8(e[n],t,r,i,s,u,!1)}function km(e,t,r,i){e.push(t),e.push(r),e.push(i)}function zx(e,t,r,i,s,u){var n=(u-t)/(i-t);return e.push(u),e.push(r+(s-r)*n),e.push(1),n}function Vx(e,t,r,i,s,u){var n=(u-r)/(s-r);return e.push(t+(i-t)*n),e.push(u),e.push(1),n}function Hx(e,t){var r=t.buffer/t.extent,i=e,s=wl(e,1,-1-r,r,0,-1,2,t),u=wl(e,1,1-r,2+r,0,-1,2,t);return(s||u)&&(i=wl(e,1,-r,1+r,0,-1,2,t)||[],s&&(i=p_(s,1).concat(i)),u&&(i=i.concat(p_(u,-1)))),i}function p_(e,t){for(var r=[],i=0;i<e.length;i++){var s=e[i],u=s.type,n;if(u==="Point"||u==="MultiPoint"||u==="LineString")n=zm(s.geometry,t);else if(u==="MultiLineString"||u==="Polygon"){n=[];for(var y=0;y<s.geometry.length;y++)n.push(zm(s.geometry[y],t))}else if(u==="MultiPolygon")for(n=[],y=0;y<s.geometry.length;y++){for(var m=[],g=0;g<s.geometry[y].length;g++)m.push(zm(s.geometry[y][g],t));n.push(m)}r.push(_y(s.id,u,n,s.tags))}return r}function zm(e,t){var r=[];r.size=e.size,e.start!==void 0&&(r.start=e.start,r.end=e.end);for(var i=0;i<e.length;i+=3)r.push(e[i]+t,e[i+1],e[i+2]);return r}function l_(e,t){if(e.transformed)return e;var r=1<<e.z,i=e.x,s=e.y,u,n,y;for(u=0;u<e.features.length;u++){var m=e.features[u],g=m.geometry,x=m.type;if(m.geometry=[],x===1)for(n=0;n<g.length;n+=2)m.geometry.push(c_(g[n],g[n+1],t,r,i,s));else for(n=0;n<g.length;n++){var b=[];for(y=0;y<g[n].length;y+=2)b.push(c_(g[n][y],g[n][y+1],t,r,i,s));m.geometry.push(b)}}return e.transformed=!0,e}function c_(e,t,r,i,s,u){return[Math.round(r*(e*i-s)),Math.round(r*(t*i-u))]}function Gx(e,t,r,i,s){for(var u=t===s.maxZoom?0:s.tolerance/((1<<t)*s.extent),n={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},y=0;y<e.length;y++){n.numFeatures++,jx(n,e[y],u,s);var m=e[y].minX,g=e[y].minY,x=e[y].maxX,b=e[y].maxY;m<n.minX&&(n.minX=m),g<n.minY&&(n.minY=g),x>n.maxX&&(n.maxX=x),b>n.maxY&&(n.maxY=b)}return n}function jx(e,t,r,i){var s=t.geometry,u=t.type,n=[];if(u==="Point"||u==="MultiPoint")for(var y=0;y<s.length;y+=3)n.push(s[y]),n.push(s[y+1]),e.numPoints++,e.numSimplified++;else if(u==="LineString")Vm(n,s,e,r,!1,!1);else if(u==="MultiLineString"||u==="Polygon")for(y=0;y<s.length;y++)Vm(n,s[y],e,r,u==="Polygon",y===0);else if(u==="MultiPolygon")for(var m=0;m<s.length;m++){var g=s[m];for(y=0;y<g.length;y++)Vm(n,g[y],e,r,!0,y===0)}if(n.length){var x=t.tags||null;if(u==="LineString"&&i.lineMetrics){x={};for(var b in t.tags)x[b]=t.tags[b];x.mapbox_clip_start=s.start/s.size,x.mapbox_clip_end=s.end/s.size}var F={geometry:n,type:u==="Polygon"||u==="MultiPolygon"?3:u==="LineString"||u==="MultiLineString"?2:1,tags:x};t.id!==null&&(F.id=t.id),e.features.push(F)}}function Vm(e,t,r,i,s,u){var n=i*i;if(i>0&&t.size<(s?n:i)){r.numPoints+=t.length/3;return}for(var y=[],m=0;m<t.length;m+=3)(i===0||t[m+2]>n)&&(r.numSimplified++,y.push(t[m]),y.push(t[m+1])),r.numPoints++;s&&Wx(y,u),e.push(y)}function Wx(e,t){for(var r=0,i=0,s=e.length,u=s-2;i<s;u=i,i+=2)r+=(e[i]-e[u])*(e[i+1]+e[u+1]);if(r>0===t)for(i=0,s=e.length;i<s/2;i+=2){var n=e[i],y=e[i+1];e[i]=e[s-2-i],e[i+1]=e[s-1-i],e[s-2-i]=n,e[s-1-i]=y}}function Xx(e,t){return new Gf(e,t)}function Gf(e,t){t=this.options=Zx(Object.create(this.options),t);var r=t.debug;if(r&&console.time("preprocess data"),t.maxZoom<0||t.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var i=Ux(e,t);this.tiles={},this.tileCoords=[],r&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",t.indexMaxZoom,t.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),i=Hx(i,t),i.length&&this.splitTile(i,0,0,0),r&&(i.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}Gf.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0};Gf.prototype.splitTile=function(e,t,r,i,s,u,n){for(var y=[e,t,r,i],m=this.options,g=m.debug;y.length;){i=y.pop(),r=y.pop(),t=y.pop(),e=y.pop();var x=1<<t,b=g2(t,r,i),F=this.tiles[b];if(!F&&(g>1&&console.time("creation"),F=this.tiles[b]=Gx(e,t,r,i,m),this.tileCoords.push({z:t,x:r,y:i}),g)){g>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,i,F.numFeatures,F.numPoints,F.numSimplified),console.timeEnd("creation"));var R="z"+t;this.stats[R]=(this.stats[R]||0)+1,this.total++}if(F.source=e,s){if(t===m.maxZoom||t===s)continue;var I=1<<s-t;if(r!==Math.floor(u/I)||i!==Math.floor(n/I))continue}else if(t===m.indexMaxZoom||F.numPoints<=m.indexMaxPoints)continue;if(F.source=null,e.length!==0){g>1&&console.time("clipping");var U=.5*m.buffer/m.extent,V=.5-U,J=.5+U,Q=1+U,te,ne,pe,Oe,Ee,He;te=ne=pe=Oe=null,Ee=wl(e,x,r-U,r+J,0,F.minX,F.maxX,m),He=wl(e,x,r+V,r+Q,0,F.minX,F.maxX,m),e=null,Ee&&(te=wl(Ee,x,i-U,i+J,1,F.minY,F.maxY,m),ne=wl(Ee,x,i+V,i+Q,1,F.minY,F.maxY,m),Ee=null),He&&(pe=wl(He,x,i-U,i+J,1,F.minY,F.maxY,m),Oe=wl(He,x,i+V,i+Q,1,F.minY,F.maxY,m),He=null),g>1&&console.timeEnd("clipping"),y.push(te||[],t+1,r*2,i*2),y.push(ne||[],t+1,r*2,i*2+1),y.push(pe||[],t+1,r*2+1,i*2),y.push(Oe||[],t+1,r*2+1,i*2+1)}}};Gf.prototype.getTile=function(e,t,r){var i=this.options,s=i.extent,u=i.debug;if(e<0||e>24)return null;var n=1<<e;t=(t%n+n)%n;var y=g2(e,t,r);if(this.tiles[y])return l_(this.tiles[y],s);u>1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var m=e,g=t,x=r,b;!b&&m>0;)m--,g=Math.floor(g/2),x=Math.floor(x/2),b=this.tiles[g2(m,g,x)];return!b||!b.source?null:(u>1&&console.log("found parent tile z%d-%d-%d",m,g,x),u>1&&console.time("drilling down"),this.splitTile(b.source,m,g,x,e,t,r),u>1&&console.timeEnd("drilling down"),this.tiles[y]?l_(this.tiles[y],s):null)};function g2(e,t,r){return((1<<e)*r+t)*32+e}function Zx(e,t){for(var r in t)e[r]=t[r];return e}var qd=class{constructor(t,r,i,s){this.vectorLayerCache={},this.x=r,this.y=i,this.z=s,this.vectorTile=t}getTileData(t){return!t||!this.vectorTile.layers[t]?[]:this.vectorLayerCache[t]?this.vectorLayerCache[t]:this.vectorTile.layers[t].features}getFeatureById(){throw new Error("Method not implemented.")}},Yx=Object.defineProperty,$x=Object.defineProperties,qx=Object.getOwnPropertyDescriptors,d_=Object.getOwnPropertySymbols,Kx=Object.prototype.hasOwnProperty,Qx=Object.prototype.propertyIsEnumerable,y_=(e,t,r)=>t in e?Yx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,lf=(e,t)=>{for(var r in t||(t={}))Kx.call(t,r)&&y_(e,r,t[r]);if(d_)for(var r of d_(t))Qx.call(t,r)&&y_(e,r,t[r]);return e},Jx=(e,t)=>$x(e,qx(t)),eP=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),tP={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0};function rP(e){let t=0;for(let r=0,i=e.length,s=i-1,u,n;r<i;s=r++)u=e[r],n=e[s],t+=(n.x-u.x)*(u.y+n.y);return t}function oP(e){const t=e.length;if(t<=1)return[e];const r=[];let i,s;for(let u=0;u<t;u++){const n=rP(e[u]);n!==0&&(s===void 0&&(s=n<0),s===n<0?(i&&r.push(i),i=[e[u]]):i.push(e[u]))}return i&&r.push(i),r}var iP=["Unknown","Point","LineString","Polygon"];function nP(e,t,r,i,s){let u=s.geometry;const n=s.type,y=s.tags,m=s.id,g=e*Math.pow(2,i),x=e*t,b=e*r;let F=iP[n],R,I;function U(J){for(let Q=0;Q<J.length;Q++){const te=J[Q];if(te[3])break;const ne=180-(te[1]+b)*360/g,pe=(te[0]+x)*360/g-180,Oe=360/Math.PI*Math.atan(Math.exp(ne*Math.PI/180))-90;J[Q]=[pe,Oe,0,1]}}switch(n){case 1:const J=[];for(R=0;R<u.length;R++)J[R]=u[R][0];u=J,U(u);break;case 2:for(R=0;R<u.length;R++)U(u[R]);break;case 3:for(u=oP(u),R=0;R<u.length;R++)for(I=0;I<u[R].length;I++)U(u[R][I]);break}return u.length===1?u=u[0]:F="Multi"+F,{type:"Feature",geometry:{type:F,coordinates:u},properties:y,id:m,tileOrigin:[0,0],coord:""}}var aP=(e,t,r,i)=>eP(void 0,null,function*(){return new Promise(s=>{const u=t.getTile(e.z,e.x,e.y),y={layers:{defaultLayer:{features:u?u.features.map(g=>nP(i,r.x,r.y,r.z,g)):[]}}},m=new qd(y,e.x,e.y,e.z);s(m)})});function sP(e){const t={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!0,debug:0};return e===void 0||typeof e.geojsonvtOptions>"u"?t:lf(lf({},t),e.geojsonvtOptions)}function uP(e,t){const r=sP(t),i=r.extent||4096,s=Xx(e,r),u=(y,m)=>aP(m,s,y,i),n=Jx(lf(lf({},tP),t),{getTileData:u});return{data:e,dataArray:[],tilesetOptions:n,isTile:!0}}var pP=Object.defineProperty,lP=Object.defineProperties,cP=Object.getOwnPropertyDescriptors,h_=Object.getOwnPropertySymbols,dP=Object.prototype.hasOwnProperty,yP=Object.prototype.propertyIsEnumerable,f_=(e,t,r)=>t in e?pP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m_=(e,t)=>{for(var r in t||(t={}))dP.call(t,r)&&f_(e,r,t[r]);if(h_)for(var r of h_(t))yP.call(t,r)&&f_(e,r,t[r]);return e},__=(e,t)=>lP(e,cP(t));function P8(e,t){const{extent:r=[121.168,30.2828,121.384,30.4219],coordinates:i,requestParameters:s={}}=t,u=new Promise(m=>{e instanceof HTMLImageElement||IE(e)?m([e]):hP(e,s,g=>{m(g)})}),n=Y0(i,r);return{originData:e,images:u,_id:1,dataArray:[{_id:0,coordinates:n}]}}function hP(e,t,r){const i=[];if(typeof e=="string")l2(__(m_({},t),{url:e}),(s,u)=>{u&&(i.push(u),r(i))});else{const s=e.length;let u=0;e.forEach(n=>{l2(__(m_({},t),{url:n}),(y,m)=>{u++,m&&i.push(m),u===s&&r(i)})})}return P8}var fP=Object.defineProperty,mP=Object.defineProperties,_P=Object.getOwnPropertyDescriptors,g_=Object.getOwnPropertySymbols,gP=Object.prototype.hasOwnProperty,vP=Object.prototype.propertyIsEnumerable,v_=(e,t,r)=>t in e?fP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,b8=(e,t)=>{for(var r in t||(t={}))gP.call(t,r)&&v_(e,r,t[r]);if(g_)for(var r of g_(t))vP.call(t,r)&&v_(e,r,t[r]);return e},A8=(e,t)=>mP(e,_P(t)),EP=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),xP=(e,t,r,i)=>EP(void 0,null,function*(){const s={x:t.x,y:t.y,z:t.z},u=R0(e,s);return new Promise(n=>{i?i(s,(y,m)=>{if(y||!m){const g={layers:{defaultLayer:{features:[]}}},x=new qd(g,t.x,t.y,t.z);n(x)}else{const g={layers:{defaultLayer:{features:m.features}}},x=new qd(g,t.x,t.y,t.z);n(x)}}):aE(A8(b8({},r),{url:u}),(y,m)=>{if(y||!m){const g={layers:{defaultLayer:{features:[]}}},x=new qd(g,t.x,t.y,t.z);n(x)}else{const x={layers:{defaultLayer:{features:JSON.parse(m)}}},b=new qd(x,t.x,t.y,t.z);n(b)}})})});function PP(e,t){const r=(s,u)=>xP(e,u,t==null?void 0:t.requestParameters,t.getCustomData),i=A8(b8({},t),{getTileData:r});return{dataArray:[],tilesetOptions:i,isTile:!0}}var bP=C0;function C0(e,t){this.x=e,this.y=t}C0.prototype={clone:function(){return new C0(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,r=e.y-this.y;return t*t+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,r=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=r,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),r=Math.sin(e),i=t*this.x-r*this.y,s=r*this.x+t*this.y;return this.x=i,this.y=s,this},_rotateAround:function(e,t){var r=Math.cos(e),i=Math.sin(e),s=t.x+r*(this.x-t.x)-i*(this.y-t.y),u=t.y+i*(this.x-t.x)+r*(this.y-t.y);return this.x=s,this.y=u,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}};C0.convert=function(e){return e instanceof C0?e:Array.isArray(e)?new C0(e[0],e[1]):e};var AP=bP,FP=B0;function B0(e,t,r,i,s){this.properties={},this.extent=r,this.type=0,this._pbf=e,this._geometry=-1,this._keys=i,this._values=s,e.readFields(TP,this,t)}function TP(e,t,r){e==1?t.id=r.readVarint():e==2?SP(r,t):e==3?t.type=r.readVarint():e==4&&(t._geometry=r.pos)}function SP(e,t){for(var r=e.readVarint()+e.pos;e.pos<r;){var i=t._keys[e.readVarint()],s=t._values[e.readVarint()];t.properties[i]=s}}B0.types=["Unknown","Point","LineString","Polygon"];B0.prototype.loadGeometry=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,s=0,u=0,n=[],y;e.pos<t;){if(i<=0){var m=e.readVarint();r=m&7,i=m>>3}if(i--,r===1||r===2)s+=e.readSVarint(),u+=e.readSVarint(),r===1&&(y&&n.push(y),y=[]),y.push(new AP(s,u));else if(r===7)y&&y.push(y[0].clone());else throw new Error("unknown command "+r)}return y&&n.push(y),n};B0.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,s=0,u=0,n=1/0,y=-1/0,m=1/0,g=-1/0;e.pos<t;){if(i<=0){var x=e.readVarint();r=x&7,i=x>>3}if(i--,r===1||r===2)s+=e.readSVarint(),u+=e.readSVarint(),s<n&&(n=s),s>y&&(y=s),u<m&&(m=u),u>g&&(g=u);else if(r!==7)throw new Error("unknown command "+r)}return[n,m,y,g]};B0.prototype.toGeoJSON=function(e,t,r){var i=this.extent*Math.pow(2,r),s=this.extent*e,u=this.extent*t,n=this.loadGeometry(),y=B0.types[this.type],m,g;function x(R){for(var I=0;I<R.length;I++){var U=R[I],V=180-(U.y+u)*360/i;R[I]=[(U.x+s)*360/i-180,360/Math.PI*Math.atan(Math.exp(V*Math.PI/180))-90]}}switch(this.type){case 1:var b=[];for(m=0;m<n.length;m++)b[m]=n[m][0];n=b,x(n);break;case 2:for(m=0;m<n.length;m++)x(n[m]);break;case 3:for(n=wP(n),m=0;m<n.length;m++)for(g=0;g<n[m].length;g++)x(n[m][g]);break}n.length===1?n=n[0]:y="Multi"+y;var F={type:"Feature",geometry:{type:y,coordinates:n},properties:this.properties};return"id"in this&&(F.id=this.id),F};function wP(e){var t=e.length;if(t<=1)return[e];for(var r=[],i,s,u=0;u<t;u++){var n=RP(e[u]);n!==0&&(s===void 0&&(s=n<0),s===n<0?(i&&r.push(i),i=[e[u]]):i.push(e[u]))}return i&&r.push(i),r}function RP(e){for(var t=0,r=0,i=e.length,s=i-1,u,n;r<i;s=r++)u=e[r],n=e[s],t+=(n.x-u.x)*(u.y+n.y);return t}var CP=FP,IP=F8;function F8(e,t){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(MP,this,t),this.length=this._features.length}function MP(e,t,r){e===15?t.version=r.readVarint():e===1?t.name=r.readString():e===5?t.extent=r.readVarint():e===2?t._features.push(r.pos):e===3?t._keys.push(r.readString()):e===4&&t._values.push(NP(r))}function NP(e){for(var t=null,r=e.readVarint()+e.pos;e.pos<r;){var i=e.readVarint()>>3;t=i===1?e.readString():i===2?e.readFloat():i===3?e.readDouble():i===4?e.readVarint64():i===5?e.readVarint():i===6?e.readSVarint():i===7?e.readBoolean():null}return t}F8.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new CP(this._pbf,t,this.extent,this._keys,this._values)};var DP=IP,OP=LP;function LP(e,t){this.layers=e.readFields(BP,{},t)}function BP(e,t,r){if(e===3){var i=new DP(r,r.readVarint()+r.pos);i.length&&(t[i.name]=i)}}var UP=OP,v6={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */v6.read=function(e,t,r,i,s){var u,n,y=s*8-i-1,m=(1<<y)-1,g=m>>1,x=-7,b=r?s-1:0,F=r?-1:1,R=e[t+b];for(b+=F,u=R&(1<<-x)-1,R>>=-x,x+=y;x>0;u=u*256+e[t+b],b+=F,x-=8);for(n=u&(1<<-x)-1,u>>=-x,x+=i;x>0;n=n*256+e[t+b],b+=F,x-=8);if(u===0)u=1-g;else{if(u===m)return n?NaN:(R?-1:1)*(1/0);n=n+Math.pow(2,i),u=u-g}return(R?-1:1)*n*Math.pow(2,u-i)};v6.write=function(e,t,r,i,s,u){var n,y,m,g=u*8-s-1,x=(1<<g)-1,b=x>>1,F=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,R=i?0:u-1,I=i?1:-1,U=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,n=x):(n=Math.floor(Math.log(t)/Math.LN2),t*(m=Math.pow(2,-n))<1&&(n--,m*=2),n+b>=1?t+=F/m:t+=F*Math.pow(2,1-b),t*m>=2&&(n++,m/=2),n+b>=x?(y=0,n=x):n+b>=1?(y=(t*m-1)*Math.pow(2,s),n=n+b):(y=t*Math.pow(2,b-1)*Math.pow(2,s),n=0));s>=8;e[r+R]=y&255,R+=I,y/=256,s-=8);for(n=n<<s|y,g+=s;g>0;e[r+R]=n&255,R+=I,n/=256,g-=8);e[r+R-I]|=U*128};var kP=vi,Fh=v6;function vi(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}vi.Varint=0;vi.Fixed64=1;vi.Bytes=2;vi.Fixed32=5;var v2=65536*65536,E_=1/v2,zP=12,T8=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");vi.prototype={destroy:function(){this.buf=null},readFields:function(e,t,r){for(r=r||this.length;this.pos<r;){var i=this.readVarint(),s=i>>3,u=this.pos;this.type=i&7,e(s,t,this),this.pos===u&&this.skip(i)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=Th(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=P_(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=Th(this.buf,this.pos)+Th(this.buf,this.pos+4)*v2;return this.pos+=8,e},readSFixed64:function(){var e=Th(this.buf,this.pos)+P_(this.buf,this.pos+4)*v2;return this.pos+=8,e},readFloat:function(){var e=Fh.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=Fh.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,r,i;return i=t[this.pos++],r=i&127,i<128||(i=t[this.pos++],r|=(i&127)<<7,i<128)||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,VP(r,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=zP&&T8?tb(this.buf,t,e):eb(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==vi.Bytes)return e.push(this.readVarint(t));var r=Tl(this);for(e=e||[];this.pos<r;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==vi.Bytes)return e.push(this.readSVarint());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==vi.Bytes)return e.push(this.readBoolean());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==vi.Bytes)return e.push(this.readFloat());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==vi.Bytes)return e.push(this.readDouble());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==vi.Bytes)return e.push(this.readFixed32());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==vi.Bytes)return e.push(this.readSFixed32());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==vi.Bytes)return e.push(this.readFixed64());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==vi.Bytes)return e.push(this.readSFixed64());var t=Tl(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=e&7;if(t===vi.Varint)for(;this.buf[this.pos++]>127;);else if(t===vi.Bytes)this.pos=this.readVarint()+this.pos;else if(t===vi.Fixed32)this.pos+=4;else if(t===vi.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var r=new Uint8Array(t);r.set(this.buf),this.buf=r,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),l0(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),l0(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),l0(this.buf,e&-1,this.pos),l0(this.buf,Math.floor(e*E_),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),l0(this.buf,e&-1,this.pos),l0(this.buf,Math.floor(e*E_),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){HP(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(!!e)},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=rb(this.buf,e,this.pos);var r=this.pos-t;r>=128&&x_(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),Fh.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Fh.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var r=0;r<t;r++)this.buf[this.pos++]=e[r]},writeRawMessage:function(e,t){this.pos++;var r=this.pos;e(t,this);var i=this.pos-r;i>=128&&x_(r,i,this),this.pos=r-1,this.writeVarint(i),this.pos+=i},writeMessage:function(e,t,r){this.writeTag(e,vi.Bytes),this.writeRawMessage(t,r)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,WP,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,XP,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,$P,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,ZP,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,YP,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,qP,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,KP,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,QP,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,JP,t)},writeBytesField:function(e,t){this.writeTag(e,vi.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,vi.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,vi.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,vi.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,vi.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,vi.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,vi.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,vi.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,vi.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,vi.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,!!t)}};function VP(e,t,r){var i=r.buf,s,u;if(u=i[r.pos++],s=(u&112)>>4,u<128||(u=i[r.pos++],s|=(u&127)<<3,u<128)||(u=i[r.pos++],s|=(u&127)<<10,u<128)||(u=i[r.pos++],s|=(u&127)<<17,u<128)||(u=i[r.pos++],s|=(u&127)<<24,u<128)||(u=i[r.pos++],s|=(u&1)<<31,u<128))return p0(e,s,t);throw new Error("Expected varint not more than 10 bytes")}function Tl(e){return e.type===vi.Bytes?e.readVarint()+e.pos:e.pos+1}function p0(e,t,r){return r?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function HP(e,t){var r,i;if(e>=0?(r=e%4294967296|0,i=e/4294967296|0):(r=~(-e%4294967296),i=~(-e/4294967296),r^4294967295?r=r+1|0:(r=0,i=i+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),GP(r,i,t),jP(i,t)}function GP(e,t,r){r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos]=e&127}function jP(e,t){var r=(e&7)<<4;t.buf[t.pos++]|=r|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function x_(e,t,r){var i=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));r.realloc(i);for(var s=r.pos-1;s>=e;s--)r.buf[s+i]=r.buf[s]}function WP(e,t){for(var r=0;r<e.length;r++)t.writeVarint(e[r])}function XP(e,t){for(var r=0;r<e.length;r++)t.writeSVarint(e[r])}function ZP(e,t){for(var r=0;r<e.length;r++)t.writeFloat(e[r])}function YP(e,t){for(var r=0;r<e.length;r++)t.writeDouble(e[r])}function $P(e,t){for(var r=0;r<e.length;r++)t.writeBoolean(e[r])}function qP(e,t){for(var r=0;r<e.length;r++)t.writeFixed32(e[r])}function KP(e,t){for(var r=0;r<e.length;r++)t.writeSFixed32(e[r])}function QP(e,t){for(var r=0;r<e.length;r++)t.writeFixed64(e[r])}function JP(e,t){for(var r=0;r<e.length;r++)t.writeSFixed64(e[r])}function Th(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+e[t+3]*16777216}function l0(e,t,r){e[r]=t,e[r+1]=t>>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function P_(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function eb(e,t,r){for(var i="",s=t;s<r;){var u=e[s],n=null,y=u>239?4:u>223?3:u>191?2:1;if(s+y>r)break;var m,g,x;y===1?u<128&&(n=u):y===2?(m=e[s+1],(m&192)===128&&(n=(u&31)<<6|m&63,n<=127&&(n=null))):y===3?(m=e[s+1],g=e[s+2],(m&192)===128&&(g&192)===128&&(n=(u&15)<<12|(m&63)<<6|g&63,(n<=2047||n>=55296&&n<=57343)&&(n=null))):y===4&&(m=e[s+1],g=e[s+2],x=e[s+3],(m&192)===128&&(g&192)===128&&(x&192)===128&&(n=(u&15)<<18|(m&63)<<12|(g&63)<<6|x&63,(n<=65535||n>=1114112)&&(n=null))),n===null?(n=65533,y=1):n>65535&&(n-=65536,i+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),i+=String.fromCharCode(n),s+=y}return i}function tb(e,t,r){return T8.decode(e.subarray(t,r))}function rb(e,t,r){for(var i=0,s,u;i<t.length;i++){if(s=t.charCodeAt(i),s>55295&&s<57344)if(u)if(s<56320){e[r++]=239,e[r++]=191,e[r++]=189,u=s;continue}else s=u-55296<<10|s-56320|65536,u=null;else{s>56319||i+1===t.length?(e[r++]=239,e[r++]=191,e[r++]=189):u=s;continue}else u&&(e[r++]=239,e[r++]=191,e[r++]=189,u=null);s<128?e[r++]=s:(s<2048?e[r++]=s>>6|192:(s<65536?e[r++]=s>>12|224:(e[r++]=s>>18|240,e[r++]=s>>12&63|128),e[r++]=s>>6&63|128),e[r++]=s&63|128)}return r}const ob=_p(kP);var ib=Object.defineProperty,nb=Object.defineProperties,ab=Object.getOwnPropertyDescriptors,b_=Object.getOwnPropertySymbols,sb=Object.prototype.hasOwnProperty,ub=Object.prototype.propertyIsEnumerable,A_=(e,t,r)=>t in e?ib(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,F_=(e,t)=>{for(var r in t||(t={}))sb.call(t,r)&&A_(e,r,t[r]);if(b_)for(var r of b_(t))ub.call(t,r)&&A_(e,r,t[r]);return e},pb=(e,t)=>nb(e,ab(t)),T_=class{constructor(e,t,r,i){this.vectorLayerCache={},this.x=t,this.y=r,this.z=i,this.vectorTile=new UP(new ob(e))}getTileData(e){if(!e||!this.vectorTile.layers[e])return[];if(this.vectorLayerCache[e])return this.vectorLayerCache[e];const t=this.vectorTile.layers[e];if(Array.isArray(t.features))return this.vectorLayerCache[e]=t.features,t.features;const r=[];for(let i=0;i<t.length;i++){const u=t.feature(i).toGeoJSON(this.x,this.y,this.z);r.push(pb(F_({},u),{properties:F_({id:u.id},u.properties)}))}return this.vectorLayerCache[e]=r,r}getFeatureById(){throw new Error("Method not implemented.")}},lb=Object.defineProperty,cb=Object.defineProperties,db=Object.getOwnPropertyDescriptors,S_=Object.getOwnPropertySymbols,yb=Object.prototype.hasOwnProperty,hb=Object.prototype.propertyIsEnumerable,w_=(e,t,r)=>t in e?lb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,E2=(e,t)=>{for(var r in t||(t={}))yb.call(t,r)&&w_(e,r,t[r]);if(S_)for(var r of S_(t))hb.call(t,r)&&w_(e,r,t[r]);return e},S8=(e,t)=>cb(e,db(t)),fb=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),mb={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,warp:!0},_b=(e,t,r,i,s)=>fb(void 0,null,function*(){const u=R0(e,t);return new Promise(n=>{if(s)s({x:r.x,y:r.y,z:r.z},(y,m)=>{if(y||!m)n(void 0);else{const g=new T_(m,r.x,r.y,r.z);n(g)}});else{const y=c6(S8(E2({},i),{url:u}),(m,g)=>{if(m||!g)n(void 0);else{const x=new T_(g,r.x,r.y,r.z);n(x)}});r.xhrCancel=()=>y.cancel()}})});function gb(e,t){const r=Array.isArray(e)?e[0]:e,i=(u,n)=>_b(r,u,n,t==null?void 0:t.requestParameters,t==null?void 0:t.getCustomData),s=S8(E2(E2({},mb),t),{getTileData:i});return{data:r,dataArray:[],tilesetOptions:s,isTile:!0}}function vb(e,t,r){switch(e){case"+":return t+r;case"-":return t-r;case"*":return t*r;case"/":return t/r;case"%":return t%r;case"^":return Math.pow(t,r);case"abs":return Math.abs(t);case"floor":return Math.floor(t);case"round":return Math.round(t);case"ceil":return Math.ceil(t);case"sin":return Math.sin(t);case"cos":return Math.cos(t);case"atan":return r===-1?Math.atan(t):Math.atan2(t,r);case"min":return Math.min(t,r);case"max":return Math.max(t,r);case"log10":return Math.log(t);case"log2":return Math.log2(t);default:return console.warn("Calculate symbol err! Return default 0"),0}}function uy(e,t){const{width:r,height:i}=t[0],s=t.map(m=>m.rasterData),u=r*i,n=[],y=JSON.stringify(e);for(let m=0;m<u;m++){const g=JSON.parse(y),x=w8(g,s,m);if(typeof x=="number")n.push(x);else{const b=x2(g);n.push(b)}}return n}function w8(e,t,r){if(e.length===2&&e[0]==="band"&&typeof e[1]=="number")try{return t[e[1]][r]}catch{return console.warn("Raster Data err!"),0}e.map((i,s)=>{if(Array.isArray(i)&&i.length>0)switch(i[0]){case"band":try{e[s]=t[i[1]][r]}catch{console.warn("Raster Data err!"),e[s]=0}break;default:w8(i,t,r)}})}function Eb(e){const[t,r=-1,i=-1]=e;return t===void 0?(console.warn("Express err!"),["+",0,0]):[t.replace(/\s+/g,""),r,i]}function x2(e){const t=Eb(e),r=t[0];let i=t[1],s=t[2];return Array.isArray(i)&&(i=x2(e[1])),Array.isArray(s)&&(s=x2(e[2])),vb(r,i,s)}var xb={nd:{type:"operation",expression:["/",["-",["band",1],["band",0]],["+",["band",1],["band",0]]]},rgb:{type:"function",method:Pb}};function Pb(e,t){const r=e[0].rasterData,i=e[1].rasterData,s=e[2].rasterData,u=[],[n,y]=(t==null?void 0:t.countCut)||[2,98],m=(t==null?void 0:t.RMinMax)||I0(r,n,y),g=(t==null?void 0:t.GMinMax)||I0(i,n,y),x=(t==null?void 0:t.BMinMax)||I0(s,n,y);for(let b=0;b<r.length;b++)u.push(Math.max(0,r[b]-m[0])),u.push(Math.max(0,i[b]-g[0])),u.push(Math.max(0,s[b]-x[0]));return{rasterData:u,rMinMax:m,gMinMax:g,bMinMax:x}}function I0(e,t,r){const i=e.slice().sort((y,m)=>y-m),s=i.length,u=i[Math.ceil(s*t/100)],n=i[Math.ceil(s*r/100)];return[u,n]}var bb=Object.defineProperty,Ab=Object.defineProperties,Fb=Object.getOwnPropertyDescriptors,R_=Object.getOwnPropertySymbols,Tb=Object.prototype.hasOwnProperty,Sb=Object.prototype.propertyIsEnumerable,C_=(e,t,r)=>t in e?bb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,wb=(e,t)=>{for(var r in t||(t={}))Tb.call(t,r)&&C_(e,r,t[r]);if(R_)for(var r of R_(t))Sb.call(t,r)&&C_(e,r,t[r]);return e},Rb=(e,t)=>Ab(e,Fb(t)),R8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())});function E6(e,t,r){return R8(this,null,function*(){if(e.length===0)return{rasterData:[0],width:1,heigh:1};const i=yield Promise.all(e.map(({data:m,bands:g=[0]})=>t(m,g))),s=[];i.forEach(m=>{Array.isArray(m)?s.push(...m):s.push(m)});const{width:u,height:n}=s[0];let y;switch(typeof r){case"function":y=r(s);break;case"object":Array.isArray(r)?y={rasterData:uy(r,s)}:y=Cb(r,s);break;default:y={rasterData:s[0].rasterData}}return Rb(wb({},y),{width:u,height:n})})}function Cb(e,t){const r=xb[e.type];if(r.type==="function")return r.method(t,e==null?void 0:e.options);if(r.type==="operation")return e.type==="rgb"?Ib(r.expression,t):{rasterData:uy(r.expression,t)}}function Ib(e,t){e.r===void 0&&console.warn("Channel R lost in Operation! Use band[0] to fill!"),e.g===void 0&&console.warn("Channel G lost in Operation! Use band[0] to fill!"),e.b===void 0&&console.warn("Channel B lost in Operation! Use band[0] to fill!");const r=uy(e.r||["band",0],t),i=uy(e.g||["band",0],t),s=uy(e.b||["band",0],t);return[r,i,s]}function P2(e,t,r,i){return R8(this,null,function*(){const s=yield E6(e,t,r);i(null,{data:s})})}function Mb(e,t){const{extent:r=[121.168,30.2828,121.384,30.4219],coordinates:i,width:s,height:u,min:n,max:y,format:m,operation:g}=t;let x,b,F;if(m===void 0||_8(e))x=Array.from(e),b=s,F=u;else{const U=Array.isArray(e)?e:[e];x=E6(U,m,g)}const R=Y0(i,r);return{_id:1,dataArray:[{_id:1,data:x,width:b,height:F,min:n,max:y,coordinates:R}]}}let Ny=function(e){return e.Normal="normal",e.PostProcessing="post-processing",e}({}),L=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.CULL_FACE=2884]="CULL_FACE",e[e.BLEND=3042]="BLEND",e[e.DITHER=3024]="DITHER",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.RED=6403]="RED",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.TEXTURE1=33985]="TEXTURE1",e[e.TEXTURE2=33986]="TEXTURE2",e[e.TEXTURE3=33987]="TEXTURE3",e[e.TEXTURE4=33988]="TEXTURE4",e[e.TEXTURE5=33989]="TEXTURE5",e[e.TEXTURE6=33990]="TEXTURE6",e[e.TEXTURE7=33991]="TEXTURE7",e[e.TEXTURE8=33992]="TEXTURE8",e[e.TEXTURE9=33993]="TEXTURE9",e[e.TEXTURE10=33994]="TEXTURE10",e[e.TEXTURE11=33995]="TEXTURE11",e[e.TEXTURE12=33996]="TEXTURE12",e[e.TEXTURE13=33997]="TEXTURE13",e[e.TEXTURE14=33998]="TEXTURE14",e[e.TEXTURE15=33999]="TEXTURE15",e[e.TEXTURE16=34e3]="TEXTURE16",e[e.TEXTURE17=34001]="TEXTURE17",e[e.TEXTURE18=34002]="TEXTURE18",e[e.TEXTURE19=34003]="TEXTURE19",e[e.TEXTURE20=34004]="TEXTURE20",e[e.TEXTURE21=34005]="TEXTURE21",e[e.TEXTURE22=34006]="TEXTURE22",e[e.TEXTURE23=34007]="TEXTURE23",e[e.TEXTURE24=34008]="TEXTURE24",e[e.TEXTURE25=34009]="TEXTURE25",e[e.TEXTURE26=34010]="TEXTURE26",e[e.TEXTURE27=34011]="TEXTURE27",e[e.TEXTURE28=34012]="TEXTURE28",e[e.TEXTURE29=34013]="TEXTURE29",e[e.TEXTURE30=34014]="TEXTURE30",e[e.TEXTURE31=34015]="TEXTURE31",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e}({});const Nb=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`,{camelCase:Db,isNil:Ob,upperFirst:Lb}=Qn;class Nl{constructor(){H(this,"shaderModuleService",void 0),H(this,"rendererService",void 0),H(this,"config",void 0),H(this,"quad",Nb),H(this,"enabled",!0),H(this,"renderToScreen",!1),H(this,"model",void 0),H(this,"name",void 0),H(this,"optionsToUpdate",{})}getName(){return this.name}setName(t){this.name=t}getType(){return Ny.PostProcessing}init(t,r){this.config=r,this.rendererService=t.getContainer().rendererService,this.shaderModuleService=t.getContainer().shaderModuleService;const{createAttribute:i,createBuffer:s,createModel:u}=this.rendererService,{vs:n,fs:y,uniforms:m}=this.setupShaders();this.model=u({vs:n,fs:y,attributes:{a_Position:i({buffer:s({data:[-4,-4,4,-4,0,4],type:L.FLOAT}),size:2})},uniforms:_t(_t({u_Texture:null},m),this.config&&this.convertOptionsToUniforms(this.config)),depth:{enable:!1},count:3,blend:{enable:this.getName()==="copy"}})}render(t,r){const i=t.multiPassRenderer.getPostProcessor(),{useFramebuffer:s,getViewportSize:u,clear:n}=this.rendererService,{width:y,height:m}=u();s(this.renderToScreen?null:i.getWriteFBO(),()=>{n({framebuffer:i.getWriteFBO(),color:[0,0,0,0],depth:1,stencil:0});const g=_t({u_BloomFinal:0,u_Texture:i.getReadFBO(),u_ViewportSize:[y,m]},this.convertOptionsToUniforms(this.optionsToUpdate));r&&(g.u_BloomFinal=1,g.u_Texture2=r),this.model.draw({uniforms:g})})}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}setRenderToScreen(t){this.renderToScreen=t}updateOptions(t){this.optionsToUpdate=_t(_t({},this.optionsToUpdate),t)}setupShaders(){throw new Error("Method not implemented.")}convertOptionsToUniforms(t){const r={};return Object.keys(t).forEach(i=>{Ob(t[i])||(r[`u_${Lb(Db(i))}`]=t[i])}),r}}function Bb(e){let t=0;switch(e){case"vec2":case"ivec2":t=2;break;case"vec3":case"ivec3":t=3;break;case"vec4":case"ivec4":case"mat2":t=4;break;case"mat3":t=9;break;case"mat4":t=16;break}return t}const C8=/uniform\s+(bool|float|int|vec2|vec3|vec4|ivec2|ivec3|ivec4|mat2|mat3|mat4|sampler2D|samplerCube)\s+([\s\S]*?);/g;function I_(e,t=!1){const r={};return e=e.replace(C8,(i,s,u)=>{const n=u.split(":"),y=n[0].trim();let m="";switch(n.length>1&&(m=n[1].trim()),s){case"bool":m=m==="true";break;case"float":case"int":m=Number(m);break;case"vec2":case"vec3":case"vec4":case"ivec2":case"ivec3":case"ivec4":case"mat2":case"mat3":case"mat4":m?m=m.replace("[","").replace("]","").split(",").reduce((g,x)=>(g.push(Number(x.trim())),g),[]):m=new Array(Bb(s)).fill(0);break}return r[y]=m,`${t?"uniform ":""}${s} ${y};
- `}),{content:e,uniforms:r}}function Hm(e){let{content:t,uniforms:r}=I_(e,!0);return t=t.replace(/(\s*uniform\s*.*\s*){((?:\s*.*\s*)*?)};/g,(i,s,u)=>{u=u.trim().replace(/^.*$/gm,m=>`uniform ${m}`);const{content:n,uniforms:y}=I_(u);return Object.assign(r,y),`${s}{
- ${n}
- };`}),{content:t,uniforms:r}}function M_(e){const t={};return e.replace(C8,(r,i,s)=>{const u=s.trim();return t[u]?"":(t[u]=!0,`uniform ${i} ${u};
- `)})}const a1={ProjectionMatrix:"u_ProjectionMatrix",ViewMatrix:"u_ViewMatrix",ViewProjectionMatrix:"u_ViewProjectionMatrix",Zoom:"u_Zoom",ZoomScale:"u_ZoomScale",FocalDistance:"u_FocalDistance",CameraPosition:"u_CameraPosition"};let cf=function(e){return e.TOPRIGHT="topright",e.TOPLEFT="topleft",e.BOTTOMRIGHT="bottomright",e.BOTTOMLEFT="bottomleft",e.TOPCENTER="topcenter",e.BOTTOMCENTER="bottomcenter",e.LEFTCENTER="leftcenter",e.RIGHTCENTER="rightcenter",e.LEFTTOP="lefttop",e.RIGHTTOP="righttop",e.LEFTBOTTOM="leftbottom",e.RIGHTBOTTOM="rightbottom",e}({}),df=function(e){return e[e.LNGLAT=1]="LNGLAT",e[e.LNGLAT_OFFSET=2]="LNGLAT_OFFSET",e[e.VECTOR_TILE=3]="VECTOR_TILE",e[e.IDENTITY=4]="IDENTITY",e[e.METER_OFFSET=5]="METER_OFFSET",e}({});const c0={CoordinateSystem:"u_CoordinateSystem",ViewportCenter:"u_ViewportCenter",ViewportCenterProjection:"u_ViewportCenterProjection",PixelsPerDegree:"u_PixelsPerDegree",PixelsPerDegree2:"u_PixelsPerDegree2",PixelsPerMeter:"u_PixelsPerMeter"};var Ea={LayerInitStart:"layerInitStart",LayerInitEnd:"layerInitEnd",SourceInitStart:"sourceInitStart",SourceInitEnd:"sourceInitEnd",ScaleInitStart:"scaleInitStart",ScaleInitEnd:"scaleInitEnd",MappingStart:"mappingStart",MappingEnd:"mappingEnd",BuildModelStart:"buildModelStart",BuildModelEnd:"buildModelEnd"};let Us=function(e){return e.Hover="hover",e.Click="click",e.Select="select",e.Active="active",e.Drag="drag",e}({}),_c=function(e){return e.normal="normal",e.additive="additive",e.subtractive="subtractive",e.min="min",e.max="max",e.none="none",e}({}),p1=function(e){return e.MULTIPLE="MULTIPLE",e.SINGLE="SINGLE",e}({}),jf=function(e){return e.AND="and",e.OR="or",e}({}),Ga=function(e){return e.INIT="init",e.UPDATE="update",e}({}),Ei=function(e){return e.LINEAR="linear",e.SEQUENTIAL="sequential",e.POWER="power",e.LOG="log",e.IDENTITY="identity",e.TIME="time",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.CAT="cat",e.DIVERGING="diverging",e.CUSTOM="threshold",e}({}),d0=function(e){return e.CONSTANT="constant",e.VARIABLE="variable",e}({}),br=function(e){return e[e.Attribute=0]="Attribute",e[e.InstancedAttribute=1]="InstancedAttribute",e[e.Uniform=2]="Uniform",e}({});const Ub=["mapload","mapchange","mapAfterFrameChange"];var x6={exports:{}};x6.exports=Dy;x6.exports.default=Dy;var py=1e20;function Dy(e,t,r,i,s,u){this.fontSize=e||24,this.buffer=t===void 0?3:t,this.cutoff=i||.25,this.fontFamily=s||"sans-serif",this.fontWeight=u||"normal",this.radius=r||8;var n=this.size=this.fontSize+this.buffer*2,y=n+this.buffer*2;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=n,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(y*y),this.gridInner=new Float64Array(y*y),this.f=new Float64Array(y),this.z=new Float64Array(y+1),this.v=new Uint16Array(y),this.useMetrics=this.ctx.measureText("A").actualBoundingBoxLeft!==void 0,this.middle=Math.round(n/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function kb(e,t,r,i,s,u,n){u.fill(py,0,t*r),n.fill(0,0,t*r);for(var y=(t-i)/2,m=0;m<s;m++)for(var g=0;g<i;g++){var x=(m+y)*t+g+y,b=e.data[4*(m*i+g)+3]/255;if(b===1)u[x]=0,n[x]=py;else if(b===0)u[x]=py,n[x]=0;else{var F=Math.max(0,.5-b),R=Math.max(0,b-.5);u[x]=F*F,n[x]=R*R}}}function zb(e,t,r,i,s,u,n){for(var y=0;y<t*r;y++){var m=Math.sqrt(i[y])-Math.sqrt(s[y]);e[y]=Math.round(255-255*(m/u+n))}}Dy.prototype._draw=function(e,t){var r=this.ctx.measureText(e),i=r.width,s=2*this.buffer,u,n,y,m,g,x,b,F;t&&this.useMetrics?(g=Math.floor(r.actualBoundingBoxAscent),F=this.buffer+Math.ceil(r.actualBoundingBoxAscent),x=this.buffer,b=this.buffer,n=Math.min(this.size,Math.ceil(r.actualBoundingBoxRight-r.actualBoundingBoxLeft)),m=Math.min(this.size-x,Math.ceil(r.actualBoundingBoxAscent+r.actualBoundingBoxDescent)),u=n+s,y=m+s,this.ctx.textBaseline="alphabetic"):(u=n=this.size,y=m=this.size,g=19*this.fontSize/24,x=b=0,F=this.middle,this.ctx.textBaseline="middle");var R;n&&m&&(this.ctx.clearRect(b,x,n,m),this.ctx.fillText(e,this.buffer,F),R=this.ctx.getImageData(b,x,n,m));var I=new Uint8ClampedArray(u*y);return kb(R,u,y,n,m,this.gridOuter,this.gridInner),N_(this.gridOuter,u,y,this.f,this.v,this.z),N_(this.gridInner,u,y,this.f,this.v,this.z),zb(I,u,y,this.gridOuter,this.gridInner,this.radius,this.cutoff),{data:I,metrics:{width:n,height:m,sdfWidth:u,sdfHeight:y,top:g,left:0,advance:i}}};Dy.prototype.draw=function(e){return this._draw(e,!1).data};Dy.prototype.drawWithMetrics=function(e){return this._draw(e,!0)};function N_(e,t,r,i,s,u){for(var n=0;n<t;n++)D_(e,n,t,r,i,s,u);for(var y=0;y<r;y++)D_(e,y*t,1,t,i,s,u)}function D_(e,t,r,i,s,u,n){var y,m,g,x;for(u[0]=0,n[0]=-1e20,n[1]=py,y=0;y<i;y++)s[y]=e[t+y*r];for(y=1,m=0,g=0;y<i;y++){do x=u[m],g=(s[y]-s[x]+y*y-x*x)/(y-x)/2;while(g<=n[m]&&--m>-1);m++,u[m]=y,n[m]=g,n[m+1]=py}for(y=0,m=0;y<i;y++){for(;n[m+1]<y;)m++;x=u[m],e[t+y*r]=s[x]+(y-x)*(y-x)}}var Vb=x6.exports;const Hb=_p(Vb),Sd=30;function Gb({characterSet:e,getFontWidth:t,fontHeight:r,buffer:i,maxCanvasWidth:s,mapping:u={},xOffset:n=0,yOffset:y=0}){let m=0,g=n;Array.from(e).forEach((b,F)=>{if(!u[b]){const R=t(b,F);g+Sd>s&&(g=0,m++),u[b]={x:g,y:y+m*Sd,width:Sd,height:Sd,advance:R},g+=Sd}});const x=r+i*2;return{mapping:u,xOffset:g,yOffset:y+m*x,canvasHeight:I8(y+(m+1)*x)}}function jb(e,t,r){let i=0,s=0,u=0,n=[];const y={};for(const g of e)if(!y[g.id]){const{size:x}=g;i+x+t>r&&(O_(y,n,s),i=0,s=u+s+t,u=0,n=[]),n.push({icon:g,xOffset:i}),i=i+x+t,u=Math.max(u,x)}n.length>0&&O_(y,n,s);const m=I8(u+s+t);return{mapping:y,canvasHeight:m}}function O_(e,t,r){for(const i of t){const{icon:s,xOffset:u}=i;e[s.id]=_t(_t({},s),{},{x:u,y:r,image:s.image,width:s.width,height:s.height})}}function I8(e){return Math.pow(2,Math.ceil(Math.log2(e)))}const Wb=eA(),Xb="sans-serif",Zb="normal",Yb=24,$b=3,qb=.25,Kb=8,L_=1024,Qb=1,B_=1,Jb=3;function eA(){const e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}function U_(e,t,r,i){e.font=`${i} ${r}px ${t}`,e.fillStyle="black",e.textBaseline="middle"}function k_(e,t){for(let r=0;r<e.length;r++)t.data[4*r+3]=e[r]}class tA extends du.EventEmitter{constructor(...t){super(...t),H(this,"fontAtlas",void 0),H(this,"iconFontMap",void 0),H(this,"iconFontGlyphs",{}),H(this,"fontOptions",void 0),H(this,"key",void 0),H(this,"cache",new HE(Jb))}get scale(){return B_}get canvas(){const t=this.cache.get(this.key);return t&&t.data}get mapping(){const t=this.cache.get(this.key);return t&&t.mapping||{}}getCanvasByKey(t){const r=this.cache.get(t);return r&&r.data}getMappingByKey(t){const r=this.cache.get(t);return r&&r.mapping||{}}init(){this.cache.clear(),this.fontOptions={fontFamily:Xb,fontWeight:Zb,characterSet:Wb,fontSize:Yb,buffer:$b,sdf:!0,cutoff:qb,radius:Kb,iconfont:!1},this.key="",this.iconFontMap=new Map}addIconGlyphs(t){t.forEach(r=>{this.iconFontGlyphs[r.name]=r.unicode})}addIconFont(t,r){this.iconFontMap.set(t,r)}getIconFontKey(t){return this.iconFontMap.get(t)||t}getGlyph(t){return this.iconFontGlyphs[t]?String.fromCharCode(parseInt(this.iconFontGlyphs[t],16)):""}setFontOptions(t){this.fontOptions=_t(_t({},this.fontOptions),t),this.key=this.getKey();const r=this.getNewChars(this.key,this.fontOptions.characterSet),i=this.cache.get(this.key);if(i&&r.length===0)return;const s=this.generateFontAtlas(this.key,r,i);this.fontAtlas=s,this.cache.set(this.key,s)}addFontFace(t,r){const i=document.createElement("style");i.type="text/css",i.innerText=`
- @font-face{
- font-family: '${t}';
- src: url('${r}') format('woff2'),
- url('${r}') format('woff'),
- url('${r}') format('truetype');
- }`,i.onload=()=>{if(document.fonts)try{document.fonts.load(`24px ${t}`,"L7text"),document.fonts.ready.then(()=>{this.emit("fontloaded",{fontFamily:t})})}catch(s){console.warn("当前环境不支持 document.fonts !"),console.warn("当前环境不支持 iconfont !"),console.warn(s)}},document.getElementsByTagName("head")[0].appendChild(i)}destroy(){this.cache.clear(),this.iconFontMap.clear()}generateFontAtlas(t,r,i){const{fontFamily:s,fontWeight:u,fontSize:n,buffer:y,sdf:m,radius:g,cutoff:x,iconfont:b}=this.fontOptions;let F=i&&i.data;F||(F=window.document.createElement("canvas"),F.width=L_);const R=F.getContext("2d",{willReadFrequently:!0});U_(R,s,n,u);const{mapping:I,canvasHeight:U,xOffset:V,yOffset:J}=Gb(_t({getFontWidth:te=>R.measureText(te).width,fontHeight:n*B_,buffer:y,characterSet:r,maxCanvasWidth:L_},i&&{mapping:i.mapping,xOffset:i.xOffset,yOffset:i.yOffset})),Q=R.getImageData(0,0,F.width,F.height);if(F.height=U,R.putImageData(Q,0,0),U_(R,s,n,u),m){const te=new Hb(n,y,g,x,s,u),ne=R.getImageData(0,0,te.size,te.size);for(const pe of r){if(b){const Oe=String.fromCharCode(parseInt(pe.replace("&#x","").replace(";",""),16)),Ee=te.draw(Oe);k_(Ee,ne)}else k_(te.draw(pe),ne);R.putImageData(ne,I[pe].x,I[pe].y)}}else for(const te of r)R.fillText(te,I[te].x,I[te].y+n*Qb);return{xOffset:V,yOffset:J,mapping:I,data:F,width:F.width,height:F.height}}getKey(){const{fontFamily:t,fontWeight:r}=this.fontOptions;return`${t}_${r}`}getNewChars(t,r){const i=this.cache.get(t);if(!i)return r;const s=[],u=i.mapping,n=new Set(Object.keys(u));return new Set(r).forEach(m=>{n.has(m)||s.push(m)}),s}}function z_(e,t,r,i,s,u,n){try{var y=e[u](n),m=y.value}catch(g){return void r(g)}y.done?t(m):Promise.resolve(m).then(i,s)}function mt(e){return function(){var t=this,r=arguments;return new Promise(function(i,s){var u=e.apply(t,r);function n(m){z_(u,i,s,n,y,"next",m)}function y(m){z_(u,i,s,n,y,"throw",m)}n(void 0)})}}const rA=3,V_=1024,wd=64;class oA extends du.EventEmitter{constructor(...t){super(...t),H(this,"canvasHeight",128),H(this,"texture",void 0),H(this,"canvas",void 0),H(this,"iconData",void 0),H(this,"iconMap",void 0),H(this,"ctx",void 0),H(this,"loadingImageCount",0)}isLoading(){return this.loadingImageCount===0}init(){this.iconData=[],this.iconMap={},this.canvas=window.document.createElement("canvas"),this.canvas.width=128,this.canvas.height=128,this.ctx=this.canvas.getContext("2d")}addImage(t,r){var i=this;return mt(function*(){let s=new Image;i.loadingImageCount++,i.hasImage(t)?console.warn("Image Id already exists"):i.iconData.push({id:t,size:wd}),i.updateIconMap(),s=yield i.loadImage(r);const u=i.iconData.find(n=>n.id===t);u&&(u.image=s,u.width=s.width,u.height=s.height),i.update()})()}addImageMini(t,r,i){const s=i.getSceneConfig().canvas;let u=s.createImage();if(this.loadingImageCount++,this.hasImage(t))throw new Error("Image Id already exists");this.iconData.push({id:t,size:wd}),this.updateIconMap(),this.loadImageMini(r,s).then(n=>{u=n;const y=this.iconData.find(m=>m.id===t);y&&(y.image=u,y.width=u.width,y.height=u.height),this.update()})}getTexture(){return this.texture}getIconMap(){return this.iconMap}getCanvas(){return this.canvas}hasImage(t){return this.iconMap.hasOwnProperty(t)}removeImage(t){this.hasImage(t)&&(this.iconData=this.iconData.filter(r=>r.id!==t),delete this.iconMap[t],this.update())}destroy(){this.removeAllListeners("imageUpdate"),this.iconData=[],this.iconMap={}}loadImage(t){return new Promise((r,i)=>{if(t instanceof HTMLImageElement){r(t);return}const s=new Image;s.crossOrigin="anonymous",s.onload=()=>{r(s)},s.onerror=()=>{i(new Error("Could not load image at "+t))},s.src=t instanceof File?URL.createObjectURL(t):t})}update(){this.updateIconMap(),this.updateIconAtlas(),this.loadingImageCount--,this.loadingImageCount===0&&this.emit("imageUpdate")}updateIconAtlas(){this.canvas.width=V_,this.canvas.height=this.canvasHeight,Object.keys(this.iconMap).forEach(t=>{const{x:r,y:i,image:s,width:u=64,height:n=64}=this.iconMap[t],m=Math.max(u,n)/wd,g=n/m,x=u/m;s&&this.ctx.drawImage(s,r+(wd-x)/2,i+(wd-g)/2,x,g)})}updateIconMap(){const{mapping:t,canvasHeight:r}=jb(this.iconData,rA,V_);this.iconMap=t,this.canvasHeight=r}loadImageMini(t,r){return new Promise((i,s)=>{const u=r.createImage();u.crossOrigin="anonymous",u.onload=()=>{i(u)},u.onerror=()=>{s(new Error("Could not load image at "+t))},u.src=t})}}class iA{constructor(){H(this,"viewport",void 0),H(this,"overridedViewProjectionMatrix",void 0),H(this,"viewMatrixInverse",void 0),H(this,"cameraPosition",void 0)}init(){}update(t){this.viewport=t,this.viewMatrixInverse=Vf(),o6(this.viewMatrixInverse,t.getViewMatrix()),this.cameraPosition=[this.viewMatrixInverse[12],this.viewMatrixInverse[13],this.viewMatrixInverse[14]]}getProjectionMatrix(){return this.viewport.getProjectionMatrix()}getModelMatrix(){return this.viewport.getModelMatrix()}getViewMatrix(){return this.viewport.getViewMatrix()}getViewMatrixUncentered(){return this.viewport.getViewMatrixUncentered()}getViewProjectionMatrixUncentered(){return this.viewport.getViewProjectionMatrixUncentered()}getViewProjectionMatrix(){return this.overridedViewProjectionMatrix||this.viewport.getViewProjectionMatrix()}getZoom(){return this.viewport.getZoom()}getZoomScale(){return this.viewport.getZoomScale()}getCenter(){const[t,r]=this.viewport.getCenter();return[t,r]}getFocalDistance(){return this.viewport.getFocalDistance()}getCameraPosition(){return this.cameraPosition}projectFlat(t,r){return this.viewport.projectFlat(t,r)}setViewProjectionMatrix(t){this.overridedViewProjectionMatrix=t}}const nA={topleft:"column",topright:"column",bottomright:"column",bottomleft:"column",leftcenter:"column",rightcenter:"column",topcenter:"row",bottomcenter:"row",lefttop:"row",righttop:"row",leftbottom:"row",rightbottom:"row"};class aA{constructor(){H(this,"container",void 0),H(this,"controlCorners",void 0),H(this,"controlContainer",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"controls",[]),H(this,"unAddControls",[])}init(t,r){this.container=t.container,this.scene=r,this.mapsService=r.mapService,this.initControlPos()}addControl(t,r){r.mapService.map?(t.addTo(this.scene),this.controls.push(t)):this.unAddControls.push(t)}getControlByName(t){return this.controls.find(r=>r.controlOption.name===t)}removeControl(t){const r=this.controls.indexOf(t);return r>-1&&this.controls.splice(r,1),t.remove(),this}addControls(){this.unAddControls.forEach(t=>{t.addTo(this.scene),this.controls.push(t)}),this.unAddControls=[]}destroy(){for(const t of this.controls)t.remove();this.controls=[],this.clearControlPos()}initControlPos(){const t=this.controlCorners={},r="l7-",i=this.controlContainer=lu("div",r+"control-container",this.container);function s(n=[]){const y=n.map(m=>r+m).join(" ");t[n.filter(m=>!["row","column"].includes(m)).join("")]=lu("div",y,i)}function u(n){return[...n.replace(/^(top|bottom|left|right|center)/,"$1-").split("-"),nA[n]]}Object.values(cf).forEach(n=>{s(u(n))}),this.checkCornerOverlap()}clearControlPos(){for(const t in this.controlCorners)this.controlCorners[t]&&uf(this.controlCorners[t]);this.controlContainer&&uf(this.controlContainer)}checkCornerOverlap(){const t=window.MutationObserver;if(t)for(const r of Object.keys(this.controlCorners)){const i=r.match(/^(top|bottom)(left|right)$/);if(i){const[,s,u]=i,n=this.controlCorners[`${s}${u}`];new t(([{target:m}])=>{n&&(n.style[s]=m.clientHeight+"px")}).observe(this.controlCorners[`${u}${s}`],{childList:!0,attributes:!0})}}}}class sA{constructor(){H(this,"container",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"markers",[]),H(this,"markerLayers",[]),H(this,"unAddMarkers",[]),H(this,"unAddMarkerLayers",[])}addMarkerLayer(t){this.mapsService.map&&this.mapsService.getMarkerContainer()?(this.markerLayers.push(t),t.addTo(this.scene)):this.unAddMarkerLayers.push(t)}removeMarkerLayer(t){t.destroy(),this.markerLayers.indexOf(t);const r=this.markerLayers.indexOf(t);r>-1&&this.markerLayers.splice(r,1)}addMarker(t){this.mapsService.map&&this.mapsService.getMarkerContainer()?(this.markers.push(t),t.addTo(this.scene)):this.unAddMarkers.push(t)}addMarkers(){this.unAddMarkers.forEach(t=>{t.addTo(this.scene),this.markers.push(t)}),this.unAddMarkers=[]}addMarkerLayers(){this.unAddMarkerLayers.forEach(t=>{this.markerLayers.push(t),t.addTo(this.scene)}),this.unAddMarkers=[]}removeMarker(t){t.remove(),this.markers.indexOf(t);const r=this.markers.indexOf(t);r>-1&&this.markers.splice(r,1)}removeAllMarkers(){this.destroy()}init(t){this.scene=t,this.mapsService=t.mapService}destroy(){this.markers.forEach(t=>{t.remove()}),this.markers=[],this.markerLayers.forEach(t=>{t.destroy()}),this.markerLayers=[]}removeMakerLayerMarker(t){t.destroy()}}class uA{constructor(){H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"popups",[]),H(this,"unAddPopups",[])}get isMarkerReady(){return this.mapsService.map&&this.mapsService.getMarkerContainer()}removePopup(t){t!=null&&t.isOpen()&&t.remove();const r=this.popups.indexOf(t);r>-1&&this.popups.splice(r,1);const i=this.unAddPopups.indexOf(t);i>-1&&this.unAddPopups.splice(i,1)}destroy(){this.popups.forEach(t=>t.remove())}addPopup(t){t&&t.getOptions().autoClose&&[...this.popups,...this.unAddPopups].forEach(r=>{r.getOptions().autoClose&&this.removePopup(r)}),this.isMarkerReady?(t.addTo(this.scene),this.popups.push(t)):this.unAddPopups.push(t),t.on("close",()=>{this.removePopup(t)})}initPopup(){this.unAddPopups.length&&this.unAddPopups.forEach(t=>{this.addPopup(t),this.unAddPopups=[]})}init(t){this.scene=t,this.mapsService=t.mapService}}const pA={MapToken:"您正在使用 Demo 测试 Token, 生产环境务必自行注册 Token 确保服务稳定 高德地图申请地址 https://lbs.amap.com/api/javascript-api/guide/abc/prepare Mapbox地图申请地址 https://docs.mapbox.com/help/glossary/access-token/",SDK:"请确认引入了mapbox-gl api且在L7之前引入"},{merge:lA}=Qn,cA={id:"map",logoPosition:"bottomleft",logoVisible:!0,antialias:!0,stencil:!0,preserveDrawingBuffer:!1,pickBufferScale:1,fitBoundsOptions:{animate:!1}},dA={colors:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(247,247,247)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)","rgb(5,48,97)"],size:10,shape:"circle",scales:{},shape2d:["circle","triangle","square","pentagon","hexagon","octogon","hexagram","rhombus","vesica"],shape3d:["cylinder","triangleColumn","hexagonColumn","squareColumn"],minZoom:-1,maxZoom:24,visible:!0,autoFit:!1,pickingBuffer:0,enablePropagation:!1,zIndex:0,blend:"normal",maskLayers:[],enableMask:!0,maskOperation:jf.AND,pickedFeatureID:-1,enableMultiPassRenderer:!1,enablePicking:!0,active:!1,activeColor:"#2f54eb",enableHighlight:!1,enableSelect:!1,highlightColor:"#2f54eb",activeMix:0,selectColor:"blue",selectMix:0,enableLighting:!1,animateOption:{enable:!1,interval:.2,duration:4,trailLength:.15},forward:!0};class yA{constructor(){H(this,"sceneConfigCache",{}),H(this,"layerConfigCache",{}),H(this,"layerAttributeConfigCache",{})}getSceneConfig(t){return this.sceneConfigCache[t]}getSceneWarninfo(t){return pA[t]}setSceneConfig(t,r){this.sceneConfigCache[t]=_t(_t({},cA),r)}getLayerConfig(t){return this.layerConfigCache[t]}setLayerConfig(t,r,i){this.layerConfigCache[r]=_t({},lA({},this.sceneConfigCache[t],dA,i))}getAttributeConfig(t){return this.layerAttributeConfigCache[t]}setAttributeConfig(t,r){this.layerAttributeConfigCache[t]=_t(_t({},this.layerAttributeConfigCache[t]),r)}clean(){this.sceneConfigCache={},this.layerConfigCache={}}}const Gm=Math.PI/180,hA=512,H_=4003e4;function G_({latitude:e=0,zoom:t=0,scale:r,highPrecision:i=!1,flipY:s=!1}){r=r!==void 0?r:Math.pow(2,t);const u={},n=hA*r,y=Math.cos(e*Gm),m=n/360,g=m/y,x=n/H_/y;if(u.pixelsPerMeter=[x,-x,x],u.metersPerPixel=[1/x,-1/x,1/x],u.pixelsPerDegree=[m,-g,x],u.degreesPerPixel=[1/m,-1/g,1/x],i){const b=Gm*Math.tan(e*Gm)/y,F=m*b/2,R=n/H_*b,I=R/g*x;u.pixelsPerDegree2=[0,-F,R],u.pixelsPerMeter2=[I,0,I],s&&(u.pixelsPerDegree2[1]=-u.pixelsPerDegree2[1],u.pixelsPerMeter2[1]=-u.pixelsPerMeter2[1])}return s&&(u.pixelsPerMeter[1]=-u.pixelsPerMeter[1],u.metersPerPixel[1]=-u.metersPerPixel[1],u.pixelsPerDegree[1]=-u.pixelsPerDegree[1],u.degreesPerPixel[1]=-u.degreesPerPixel[1]),u}const fA=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];class mA{constructor(t){H(this,"needRefresh",!0),H(this,"coordinateSystem",void 0),H(this,"viewportCenter",void 0),H(this,"viewportCenterProjection",void 0),H(this,"pixelsPerDegree",void 0),H(this,"pixelsPerDegree2",void 0),H(this,"pixelsPerMeter",void 0),this.cameraService=t}refresh(t){const r=this.cameraService.getZoom(),i=t||this.cameraService.getCenter(),{pixelsPerMeter:s,pixelsPerDegree:u}=G_({latitude:i[1],zoom:r});this.viewportCenter=i,this.viewportCenterProjection=[0,0,0,0],this.pixelsPerMeter=s,this.pixelsPerDegree=u,this.pixelsPerDegree2=[0,0,0],this.coordinateSystem===df.LNGLAT?this.cameraService.setViewProjectionMatrix(void 0):this.coordinateSystem===df.LNGLAT_OFFSET&&this.calculateLnglatOffset(i,r),this.needRefresh=!1}getCoordinateSystem(){return this.coordinateSystem}setCoordinateSystem(t){this.coordinateSystem=t}getViewportCenter(){return this.viewportCenter}getViewportCenterProjection(){return this.viewportCenterProjection}getPixelsPerDegree(){return this.pixelsPerDegree}getPixelsPerDegree2(){return this.pixelsPerDegree2}getPixelsPerMeter(){return this.pixelsPerMeter}calculateLnglatOffset(t,r,i,s){const{pixelsPerMeter:u,pixelsPerDegree:n,pixelsPerDegree2:y}=G_({latitude:t[1],zoom:r,scale:i,flipY:s,highPrecision:!0});let m=this.cameraService.getViewMatrix();const g=this.cameraService.getProjectionMatrix();let x=S0([],g,m);const b=this.cameraService.projectFlat([Math.fround(t[0]),Math.fround(t[1])],Math.pow(2,r));this.viewportCenterProjection=n6([],[b[0],b[1],0,1],x),m=this.cameraService.getViewMatrixUncentered()||m,x=S0([],g,m),x=S0([],x,fA),this.cameraService.setViewProjectionMatrix(x),this.pixelsPerMeter=u,this.pixelsPerDegree=n,this.pixelsPerDegree2=y}}class _A extends du.EventEmitter{constructor(...t){super(...t),H(this,"renderMap",new Map),H(this,"enable",!1),H(this,"renderEnable",!1),H(this,"cacheLogs",{})}setEnable(t){this.enable=!!t}log(t,r){if(!this.enable)return;const i=t.split(".");let s=null;i.forEach((u,n)=>{s!==null?(s[u]||(s[u]={}),n!==i.length-1&&(s=s[u])):(this.cacheLogs[u]||(this.cacheLogs[u]={}),n!==i.length-1&&(s=this.cacheLogs[u])),n===i.length-1&&(s[u]=_t(_t({time:Date.now()},s[u]),r))})}getLog(t){switch(typeof t){case"string":return this.cacheLogs[t];case"object":return t.map(r=>this.cacheLogs[r]).filter(r=>r!==void 0);case"undefined":return this.cacheLogs}}removeLog(t){delete this.cacheLogs[t]}generateRenderUid(){return this.renderEnable?VE():""}renderDebug(t){this.renderEnable=t}renderStart(t){if(!this.renderEnable||!this.enable)return;const r=this.renderMap.get(t)||{};this.renderMap.set(t,_t(_t({},r),{},{renderUid:t,renderStart:Date.now()}))}renderEnd(t){if(!this.renderEnable||!this.enable)return;const r=this.renderMap.get(t);if(r){const i=r.renderStart,s=Date.now();this.emit("renderEnd",_t(_t({},r),{},{renderEnd:s,renderDuration:s-i})),this.renderMap.delete(t)}}destroy(){this.cacheLogs=null,this.renderMap.clear()}}var M8={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22
- * http://hammerjs.github.io/
- *
- * Copyright (c) 2016 Jorik Tangelder;
- * Licensed under the MIT license */(function(e){(function(t,r,i,s){var u=["","webkit","Moz","MS","ms","o"],n=r.createElement("div"),y="function",m=Math.round,g=Math.abs,x=Date.now;function b(X,re,we){return setTimeout(te(X,we),re)}function F(X,re,we){return Array.isArray(X)?(R(X,we[re],we),!0):!1}function R(X,re,we){var rt;if(X)if(X.forEach)X.forEach(re,we);else if(X.length!==s)for(rt=0;rt<X.length;)re.call(we,X[rt],rt,X),rt++;else for(rt in X)X.hasOwnProperty(rt)&&re.call(we,X[rt],rt,X)}function I(X,re,we){var rt="DEPRECATED METHOD: "+re+`
- `+we+` AT
- `;return function(){var zt=new Error("get-stack-trace"),wr=zt&&zt.stack?zt.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Oo=t.console&&(t.console.warn||t.console.log);return Oo&&Oo.call(t.console,rt,wr),X.apply(this,arguments)}}var U;typeof Object.assign!="function"?U=function(re){if(re===s||re===null)throw new TypeError("Cannot convert undefined or null to object");for(var we=Object(re),rt=1;rt<arguments.length;rt++){var zt=arguments[rt];if(zt!==s&&zt!==null)for(var wr in zt)zt.hasOwnProperty(wr)&&(we[wr]=zt[wr])}return we}:U=Object.assign;var V=I(function(re,we,rt){for(var zt=Object.keys(we),wr=0;wr<zt.length;)(!rt||rt&&re[zt[wr]]===s)&&(re[zt[wr]]=we[zt[wr]]),wr++;return re},"extend","Use `assign`."),J=I(function(re,we){return V(re,we,!0)},"merge","Use `assign`.");function Q(X,re,we){var rt=re.prototype,zt;zt=X.prototype=Object.create(rt),zt.constructor=X,zt._super=rt,we&&U(zt,we)}function te(X,re){return function(){return X.apply(re,arguments)}}function ne(X,re){return typeof X==y?X.apply(re&&re[0]||s,re):X}function pe(X,re){return X===s?re:X}function Oe(X,re,we){R(Ge(re),function(rt){X.addEventListener(rt,we,!1)})}function Ee(X,re,we){R(Ge(re),function(rt){X.removeEventListener(rt,we,!1)})}function He(X,re){for(;X;){if(X==re)return!0;X=X.parentNode}return!1}function ft(X,re){return X.indexOf(re)>-1}function Ge(X){return X.trim().split(/\s+/g)}function Ae(X,re,we){if(X.indexOf&&!we)return X.indexOf(re);for(var rt=0;rt<X.length;){if(we&&X[rt][we]==re||!we&&X[rt]===re)return rt;rt++}return-1}function Be(X){return Array.prototype.slice.call(X,0)}function ze(X,re,we){for(var rt=[],zt=[],wr=0;wr<X.length;){var Oo=X[wr][re];Ae(zt,Oo)<0&&rt.push(X[wr]),zt[wr]=Oo,wr++}return rt=rt.sort(function(Sn,cn){return Sn[re]>cn[re]}),rt}function st(X,re){for(var we,rt,zt=re[0].toUpperCase()+re.slice(1),wr=0;wr<u.length;){if(we=u[wr],rt=we?we+zt:re,rt in X)return rt;wr++}return s}var Vt=1;function ir(){return Vt++}function Fr(X){var re=X.ownerDocument||X;return re.defaultView||re.parentWindow||t}var Yr=/mobile|tablet|ip(ad|hone|od)|android/i,mr="ontouchstart"in t,Er=st(t,"PointerEvent")!==s,qr=mr&&Yr.test(navigator.userAgent),Jr="touch",_o="pen",So="mouse",oo="kinect",Wi=25,bo=1,Ni=2,$e=4,Yt=8,Sr=1,Ft=2,xr=4,io=8,go=16,to=Ft|xr,Kr=io|go,Ao=to|Kr,$i=["x","y"],Qo=["clientX","clientY"];function ti(X,re){var we=this;this.manager=X,this.callback=re,this.element=X.element,this.target=X.options.inputTarget,this.domHandler=function(rt){ne(X.options.enable,[X])&&we.handler(rt)},this.init()}ti.prototype={handler:function(){},init:function(){this.evEl&&Oe(this.element,this.evEl,this.domHandler),this.evTarget&&Oe(this.target,this.evTarget,this.domHandler),this.evWin&&Oe(Fr(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&Ee(this.element,this.evEl,this.domHandler),this.evTarget&&Ee(this.target,this.evTarget,this.domHandler),this.evWin&&Ee(Fr(this.element),this.evWin,this.domHandler)}};function Pn(X){var re,we=X.options.inputClass;return we?re=we:Er?re=Es:qr?re=Ie:mr?re=We:re=Gs,new re(X,se)}function se(X,re,we){var rt=we.pointers.length,zt=we.changedPointers.length,wr=re&bo&&rt-zt===0,Oo=re&($e|Yt)&&rt-zt===0;we.isFirst=!!wr,we.isFinal=!!Oo,wr&&(X.session={}),we.eventType=re,bn(X,we),X.emit("hammer.input",we),X.recognize(we),X.session.prevInput=we}function bn(X,re){var we=X.session,rt=re.pointers,zt=rt.length;we.firstInput||(we.firstInput=ss(re)),zt>1&&!we.firstMultiple?we.firstMultiple=ss(re):zt===1&&(we.firstMultiple=!1);var wr=we.firstInput,Oo=we.firstMultiple,Xi=Oo?Oo.center:wr.center,Sn=re.center=si(rt);re.timeStamp=x(),re.deltaTime=re.timeStamp-wr.timeStamp,re.angle=vs(Xi,Sn),re.distance=Tn(Xi,Sn),ja(we,re),re.offsetDirection=pa(re.deltaX,re.deltaY);var cn=Fn(re.deltaTime,re.deltaX,re.deltaY);re.overallVelocityX=cn.x,re.overallVelocityY=cn.y,re.overallVelocity=g(cn.x)>g(cn.y)?cn.x:cn.y,re.scale=Oo?us(Oo.pointers,rt):1,re.rotation=Oo?zi(Oo.pointers,rt):0,re.maxPointers=we.prevInput?re.pointers.length>we.prevInput.maxPointers?re.pointers.length:we.prevInput.maxPointers:re.pointers.length,An(we,re);var Xa=X.element;He(re.srcEvent.target,Xa)&&(Xa=re.srcEvent.target),re.target=Xa}function ja(X,re){var we=re.center,rt=X.offsetDelta||{},zt=X.prevDelta||{},wr=X.prevInput||{};(re.eventType===bo||wr.eventType===$e)&&(zt=X.prevDelta={x:wr.deltaX||0,y:wr.deltaY||0},rt=X.offsetDelta={x:we.x,y:we.y}),re.deltaX=zt.x+(we.x-rt.x),re.deltaY=zt.y+(we.y-rt.y)}function An(X,re){var we=X.lastInterval||re,rt=re.timeStamp-we.timeStamp,zt,wr,Oo,Xi;if(re.eventType!=Yt&&(rt>Wi||we.velocity===s)){var Sn=re.deltaX-we.deltaX,cn=re.deltaY-we.deltaY,Xa=Fn(rt,Sn,cn);wr=Xa.x,Oo=Xa.y,zt=g(Xa.x)>g(Xa.y)?Xa.x:Xa.y,Xi=pa(Sn,cn),X.lastInterval=re}else zt=we.velocity,wr=we.velocityX,Oo=we.velocityY,Xi=we.direction;re.velocity=zt,re.velocityX=wr,re.velocityY=Oo,re.direction=Xi}function ss(X){for(var re=[],we=0;we<X.pointers.length;)re[we]={clientX:m(X.pointers[we].clientX),clientY:m(X.pointers[we].clientY)},we++;return{timeStamp:x(),pointers:re,center:si(re),deltaX:X.deltaX,deltaY:X.deltaY}}function si(X){var re=X.length;if(re===1)return{x:m(X[0].clientX),y:m(X[0].clientY)};for(var we=0,rt=0,zt=0;zt<re;)we+=X[zt].clientX,rt+=X[zt].clientY,zt++;return{x:m(we/re),y:m(rt/re)}}function Fn(X,re,we){return{x:re/X||0,y:we/X||0}}function pa(X,re){return X===re?Sr:g(X)>=g(re)?X<0?Ft:xr:re<0?io:go}function Tn(X,re,we){we||(we=$i);var rt=re[we[0]]-X[we[0]],zt=re[we[1]]-X[we[1]];return Math.sqrt(rt*rt+zt*zt)}function vs(X,re,we){we||(we=$i);var rt=re[we[0]]-X[we[0]],zt=re[we[1]]-X[we[1]];return Math.atan2(zt,rt)*180/Math.PI}function zi(X,re){return vs(re[1],re[0],Qo)+vs(X[1],X[0],Qo)}function us(X,re){return Tn(re[0],re[1],Qo)/Tn(X[0],X[1],Qo)}var xa={mousedown:bo,mousemove:Ni,mouseup:$e},Hs="mousedown",Zu="mousemove mouseup";function Gs(){this.evEl=Hs,this.evWin=Zu,this.pressed=!1,ti.apply(this,arguments)}Q(Gs,ti,{handler:function(re){var we=xa[re.type];we&bo&&re.button===0&&(this.pressed=!0),we&Ni&&re.which!==1&&(we=$e),this.pressed&&(we&$e&&(this.pressed=!1),this.callback(this.manager,we,{pointers:[re],changedPointers:[re],pointerType:So,srcEvent:re}))}});var vp={pointerdown:bo,pointermove:Ni,pointerup:$e,pointercancel:Yt,pointerout:Yt},js={2:Jr,3:_o,4:So,5:oo},Ma="pointerdown",Na="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ma="MSPointerDown",Na="MSPointerMove MSPointerUp MSPointerCancel");function Es(){this.evEl=Ma,this.evWin=Na,ti.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}Q(Es,ti,{handler:function(re){var we=this.store,rt=!1,zt=re.type.toLowerCase().replace("ms",""),wr=vp[zt],Oo=js[re.pointerType]||re.pointerType,Xi=Oo==Jr,Sn=Ae(we,re.pointerId,"pointerId");wr&bo&&(re.button===0||Xi)?Sn<0&&(we.push(re),Sn=we.length-1):wr&($e|Yt)&&(rt=!0),!(Sn<0)&&(we[Sn]=re,this.callback(this.manager,wr,{pointers:we,changedPointers:[re],pointerType:Oo,srcEvent:re}),rt&&we.splice(Sn,1))}});var Yu={touchstart:bo,touchmove:Ni,touchend:$e,touchcancel:Yt},Go="touchstart",k="touchstart touchmove touchend touchcancel";function G(){this.evTarget=Go,this.evWin=k,this.started=!1,ti.apply(this,arguments)}Q(G,ti,{handler:function(re){var we=Yu[re.type];if(we===bo&&(this.started=!0),!!this.started){var rt=W.call(this,re,we);we&($e|Yt)&&rt[0].length-rt[1].length===0&&(this.started=!1),this.callback(this.manager,we,{pointers:rt[0],changedPointers:rt[1],pointerType:Jr,srcEvent:re})}}});function W(X,re){var we=Be(X.touches),rt=Be(X.changedTouches);return re&($e|Yt)&&(we=ze(we.concat(rt),"identifier")),[we,rt]}var oe={touchstart:bo,touchmove:Ni,touchend:$e,touchcancel:Yt},ye="touchstart touchmove touchend touchcancel";function Ie(){this.evTarget=ye,this.targetIds={},ti.apply(this,arguments)}Q(Ie,ti,{handler:function(re){var we=oe[re.type],rt=Le.call(this,re,we);rt&&this.callback(this.manager,we,{pointers:rt[0],changedPointers:rt[1],pointerType:Jr,srcEvent:re})}});function Le(X,re){var we=Be(X.touches),rt=this.targetIds;if(re&(bo|Ni)&&we.length===1)return rt[we[0].identifier]=!0,[we,we];var zt,wr,Oo=Be(X.changedTouches),Xi=[],Sn=this.target;if(wr=we.filter(function(cn){return He(cn.target,Sn)}),re===bo)for(zt=0;zt<wr.length;)rt[wr[zt].identifier]=!0,zt++;for(zt=0;zt<Oo.length;)rt[Oo[zt].identifier]&&Xi.push(Oo[zt]),re&($e|Yt)&&delete rt[Oo[zt].identifier],zt++;if(Xi.length)return[ze(wr.concat(Xi),"identifier"),Xi]}var q=2500,ge=25;function We(){ti.apply(this,arguments);var X=te(this.handler,this);this.touch=new Ie(this.manager,X),this.mouse=new Gs(this.manager,X),this.primaryTouch=null,this.lastTouches=[]}Q(We,ti,{handler:function(re,we,rt){var zt=rt.pointerType==Jr,wr=rt.pointerType==So;if(!(wr&&rt.sourceCapabilities&&rt.sourceCapabilities.firesTouchEvents)){if(zt)ht.call(this,we,rt);else if(wr&<.call(this,rt))return;this.callback(re,we,rt)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function ht(X,re){X&bo?(this.primaryTouch=re.changedPointers[0].identifier,Nt.call(this,re)):X&($e|Yt)&&Nt.call(this,re)}function Nt(X){var re=X.changedPointers[0];if(re.identifier===this.primaryTouch){var we={x:re.clientX,y:re.clientY};this.lastTouches.push(we);var rt=this.lastTouches,zt=function(){var wr=rt.indexOf(we);wr>-1&&rt.splice(wr,1)};setTimeout(zt,q)}}function lt(X){for(var re=X.srcEvent.clientX,we=X.srcEvent.clientY,rt=0;rt<this.lastTouches.length;rt++){var zt=this.lastTouches[rt],wr=Math.abs(re-zt.x),Oo=Math.abs(we-zt.y);if(wr<=ge&&Oo<=ge)return!0}return!1}var wt=st(n.style,"touchAction"),_r=wt!==s,yr="compute",dt="auto",or="manipulation",Wt="none",Zt="pan-x",no="pan-y",er=vo();function Fo(X,re){this.manager=X,this.set(re)}Fo.prototype={set:function(X){X==yr&&(X=this.compute()),_r&&this.manager.element.style&&er[X]&&(this.manager.element.style[wt]=X),this.actions=X.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var X=[];return R(this.manager.recognizers,function(re){ne(re.options.enable,[re])&&(X=X.concat(re.getTouchAction()))}),Jo(X.join(" "))},preventDefaults:function(X){var re=X.srcEvent,we=X.offsetDirection;if(this.manager.session.prevented){re.preventDefault();return}var rt=this.actions,zt=ft(rt,Wt)&&!er[Wt],wr=ft(rt,no)&&!er[no],Oo=ft(rt,Zt)&&!er[Zt];if(zt){var Xi=X.pointers.length===1,Sn=X.distance<2,cn=X.deltaTime<250;if(Xi&&Sn&&cn)return}if(!(Oo&&wr)&&(zt||wr&&we&to||Oo&&we&Kr))return this.preventSrc(re)},preventSrc:function(X){this.manager.session.prevented=!0,X.preventDefault()}};function Jo(X){if(ft(X,Wt))return Wt;var re=ft(X,Zt),we=ft(X,no);return re&&we?Wt:re||we?re?Zt:no:ft(X,or)?or:dt}function vo(){if(!_r)return!1;var X={},re=t.CSS&&t.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(we){X[we]=re?t.CSS.supports("touch-action",we):!0}),X}var Mo=1,ao=2,Vi=4,wo=8,ei=wo,ko=16,so=32;function Eo(X){this.options=U({},this.defaults,X||{}),this.id=ir(),this.manager=null,this.options.enable=pe(this.options.enable,!0),this.state=Mo,this.simultaneous={},this.requireFail=[]}Eo.prototype={defaults:{},set:function(X){return U(this.options,X),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(X){if(F(X,"recognizeWith",this))return this;var re=this.simultaneous;return X=Di(X,this),re[X.id]||(re[X.id]=X,X.recognizeWith(this)),this},dropRecognizeWith:function(X){return F(X,"dropRecognizeWith",this)?this:(X=Di(X,this),delete this.simultaneous[X.id],this)},requireFailure:function(X){if(F(X,"requireFailure",this))return this;var re=this.requireFail;return X=Di(X,this),Ae(re,X)===-1&&(re.push(X),X.requireFailure(this)),this},dropRequireFailure:function(X){if(F(X,"dropRequireFailure",this))return this;X=Di(X,this);var re=Ae(this.requireFail,X);return re>-1&&this.requireFail.splice(re,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(X){return!!this.simultaneous[X.id]},emit:function(X){var re=this,we=this.state;function rt(zt){re.manager.emit(zt,X)}we<wo&&rt(re.options.event+Ln(we)),rt(re.options.event),X.additionalEvent&&rt(X.additionalEvent),we>=wo&&rt(re.options.event+Ln(we))},tryEmit:function(X){if(this.canEmit())return this.emit(X);this.state=so},canEmit:function(){for(var X=0;X<this.requireFail.length;){if(!(this.requireFail[X].state&(so|Mo)))return!1;X++}return!0},recognize:function(X){var re=U({},X);if(!ne(this.options.enable,[this,re])){this.reset(),this.state=so;return}this.state&(ei|ko|so)&&(this.state=Mo),this.state=this.process(re),this.state&(ao|Vi|wo|ko)&&this.tryEmit(re)},process:function(X){},getTouchAction:function(){},reset:function(){}};function Ln(X){return X&ko?"cancel":X&wo?"end":X&Vi?"move":X&ao?"start":""}function yu(X){return X==go?"down":X==io?"up":X==Ft?"left":X==xr?"right":""}function Di(X,re){var we=re.manager;return we?we.get(X):X}function gi(){Eo.apply(this,arguments)}Q(gi,Eo,{defaults:{pointers:1},attrTest:function(X){var re=this.options.pointers;return re===0||X.pointers.length===re},process:function(X){var re=this.state,we=X.eventType,rt=re&(ao|Vi),zt=this.attrTest(X);return rt&&(we&Yt||!zt)?re|ko:rt||zt?we&$e?re|wo:re&ao?re|Vi:ao:so}});function hu(){gi.apply(this,arguments),this.pX=null,this.pY=null}Q(hu,gi,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ao},getTouchAction:function(){var X=this.options.direction,re=[];return X&to&&re.push(no),X&Kr&&re.push(Zt),re},directionTest:function(X){var re=this.options,we=!0,rt=X.distance,zt=X.direction,wr=X.deltaX,Oo=X.deltaY;return zt&re.direction||(re.direction&to?(zt=wr===0?Sr:wr<0?Ft:xr,we=wr!=this.pX,rt=Math.abs(X.deltaX)):(zt=Oo===0?Sr:Oo<0?io:go,we=Oo!=this.pY,rt=Math.abs(X.deltaY))),X.direction=zt,we&&rt>re.threshold&&zt&re.direction},attrTest:function(X){return gi.prototype.attrTest.call(this,X)&&(this.state&ao||!(this.state&ao)&&this.directionTest(X))},emit:function(X){this.pX=X.deltaX,this.pY=X.deltaY;var re=yu(X.direction);re&&(X.additionalEvent=this.options.event+re),this._super.emit.call(this,X)}});function Wa(){gi.apply(this,arguments)}Q(Wa,gi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Wt]},attrTest:function(X){return this._super.attrTest.call(this,X)&&(Math.abs(X.scale-1)>this.options.threshold||this.state&ao)},emit:function(X){if(X.scale!==1){var re=X.scale<1?"in":"out";X.additionalEvent=this.options.event+re}this._super.emit.call(this,X)}});function hi(){Eo.apply(this,arguments),this._timer=null,this._input=null}Q(hi,Eo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[dt]},process:function(X){var re=this.options,we=X.pointers.length===re.pointers,rt=X.distance<re.threshold,zt=X.deltaTime>re.time;if(this._input=X,!rt||!we||X.eventType&($e|Yt)&&!zt)this.reset();else if(X.eventType&bo)this.reset(),this._timer=b(function(){this.state=ei,this.tryEmit()},re.time,this);else if(X.eventType&$e)return ei;return so},reset:function(){clearTimeout(this._timer)},emit:function(X){this.state===ei&&(X&&X.eventType&$e?this.manager.emit(this.options.event+"up",X):(this._input.timeStamp=x(),this.manager.emit(this.options.event,this._input)))}});function Ws(){gi.apply(this,arguments)}Q(Ws,gi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Wt]},attrTest:function(X){return this._super.attrTest.call(this,X)&&(Math.abs(X.rotation)>this.options.threshold||this.state&ao)}});function ln(){gi.apply(this,arguments)}Q(ln,gi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:to|Kr,pointers:1},getTouchAction:function(){return hu.prototype.getTouchAction.call(this)},attrTest:function(X){var re=this.options.direction,we;return re&(to|Kr)?we=X.overallVelocity:re&to?we=X.overallVelocityX:re&Kr&&(we=X.overallVelocityY),this._super.attrTest.call(this,X)&&re&X.offsetDirection&&X.distance>this.options.threshold&&X.maxPointers==this.options.pointers&&g(we)>this.options.velocity&&X.eventType&$e},emit:function(X){var re=yu(X.offsetDirection);re&&this.manager.emit(this.options.event+re,X),this.manager.emit(this.options.event,X)}});function fi(){Eo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}Q(fi,Eo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[or]},process:function(X){var re=this.options,we=X.pointers.length===re.pointers,rt=X.distance<re.threshold,zt=X.deltaTime<re.time;if(this.reset(),X.eventType&bo&&this.count===0)return this.failTimeout();if(rt&&zt&&we){if(X.eventType!=$e)return this.failTimeout();var wr=this.pTime?X.timeStamp-this.pTime<re.interval:!0,Oo=!this.pCenter||Tn(this.pCenter,X.center)<re.posThreshold;this.pTime=X.timeStamp,this.pCenter=X.center,!Oo||!wr?this.count=1:this.count+=1,this._input=X;var Xi=this.count%re.taps;if(Xi===0)return this.hasRequireFailures()?(this._timer=b(function(){this.state=ei,this.tryEmit()},re.interval,this),ao):ei}return so},failTimeout:function(){return this._timer=b(function(){this.state=so},this.options.interval,this),so},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ei&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function Hi(X,re){return re=re||{},re.recognizers=pe(re.recognizers,Hi.defaults.preset),new jn(X,re)}Hi.VERSION="2.0.7",Hi.defaults={domEvents:!1,touchAction:yr,enable:!0,inputTarget:null,inputClass:null,preset:[[Ws,{enable:!1}],[Wa,{enable:!1},["rotate"]],[ln,{direction:to}],[hu,{direction:to},["swipe"]],[fi],[fi,{event:"doubletap",taps:2},["tap"]],[hi]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ui=1,Jn=2;function jn(X,re){this.options=U({},Hi.defaults,re||{}),this.options.inputTarget=this.options.inputTarget||X,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=X,this.input=Pn(this),this.touchAction=new Fo(this,this.options.touchAction),Kp(this,!0),R(this.options.recognizers,function(we){var rt=this.add(new we[0](we[1]));we[2]&&rt.recognizeWith(we[2]),we[3]&&rt.requireFailure(we[3])},this)}jn.prototype={set:function(X){return U(this.options,X),X.touchAction&&this.touchAction.update(),X.inputTarget&&(this.input.destroy(),this.input.target=X.inputTarget,this.input.init()),this},stop:function(X){this.session.stopped=X?Jn:ui},recognize:function(X){var re=this.session;if(!re.stopped){this.touchAction.preventDefaults(X);var we,rt=this.recognizers,zt=re.curRecognizer;(!zt||zt&&zt.state&ei)&&(zt=re.curRecognizer=null);for(var wr=0;wr<rt.length;)we=rt[wr],re.stopped!==Jn&&(!zt||we==zt||we.canRecognizeWith(zt))?we.recognize(X):we.reset(),!zt&&we.state&(ao|Vi|wo)&&(zt=re.curRecognizer=we),wr++}},get:function(X){if(X instanceof Eo)return X;for(var re=this.recognizers,we=0;we<re.length;we++)if(re[we].options.event==X)return re[we];return null},add:function(X){if(F(X,"add",this))return this;var re=this.get(X.options.event);return re&&this.remove(re),this.recognizers.push(X),X.manager=this,this.touchAction.update(),X},remove:function(X){if(F(X,"remove",this))return this;if(X=this.get(X),X){var re=this.recognizers,we=Ae(re,X);we!==-1&&(re.splice(we,1),this.touchAction.update())}return this},on:function(X,re){if(X!==s&&re!==s){var we=this.handlers;return R(Ge(X),function(rt){we[rt]=we[rt]||[],we[rt].push(re)}),this}},off:function(X,re){if(X!==s){var we=this.handlers;return R(Ge(X),function(rt){re?we[rt]&&we[rt].splice(Ae(we[rt],re),1):delete we[rt]}),this}},emit:function(X,re){this.options.domEvents&&Pa(X,re);var we=this.handlers[X]&&this.handlers[X].slice();if(!(!we||!we.length)){re.type=X,re.preventDefault=function(){re.srcEvent.preventDefault()};for(var rt=0;rt<we.length;)we[rt](re),rt++}},destroy:function(){this.element&&Kp(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function Kp(X,re){var we=X.element;if(we.style){var rt;R(X.options.cssProps,function(zt,wr){rt=st(we.style,wr),re?(X.oldCssProps[rt]=we.style[rt],we.style[rt]=zt):we.style[rt]=X.oldCssProps[rt]||""}),re||(X.oldCssProps={})}}function Pa(X,re){var we=r.createEvent("Event");we.initEvent(X,!0,!0),we.gesture=re,re.target.dispatchEvent(we)}U(Hi,{INPUT_START:bo,INPUT_MOVE:Ni,INPUT_END:$e,INPUT_CANCEL:Yt,STATE_POSSIBLE:Mo,STATE_BEGAN:ao,STATE_CHANGED:Vi,STATE_ENDED:wo,STATE_RECOGNIZED:ei,STATE_CANCELLED:ko,STATE_FAILED:so,DIRECTION_NONE:Sr,DIRECTION_LEFT:Ft,DIRECTION_RIGHT:xr,DIRECTION_UP:io,DIRECTION_DOWN:go,DIRECTION_HORIZONTAL:to,DIRECTION_VERTICAL:Kr,DIRECTION_ALL:Ao,Manager:jn,Input:ti,TouchAction:Fo,TouchInput:Ie,MouseInput:Gs,PointerEventInput:Es,TouchMouseInput:We,SingleTouchInput:G,Recognizer:Eo,AttrRecognizer:gi,Tap:fi,Pan:hu,Swipe:ln,Pinch:Wa,Rotate:Ws,Press:hi,on:Oe,off:Ee,each:R,merge:J,extend:V,assign:U,inherit:Q,bindFn:te,prefixed:st});var Rc=typeof t<"u"?t:typeof self<"u"?self:{};Rc.Hammer=Hi,e.exports?e.exports=Hi:t[i]=Hi})(window,document,"Hammer")})(M8);var gA=M8.exports;const Rd=_p(gA),vA={panstart:"dragstart",panmove:"dragging",panend:"dragend",pancancel:"dragcancel"};class EA extends _6{get mapService(){return this.container.mapService}constructor(t){super(),H(this,"indragging",!1),H(this,"hammertime",void 0),H(this,"lastClickTime",0),H(this,"lastClickXY",[-1,-1]),H(this,"clickTimer",void 0),H(this,"$containter",void 0),H(this,"onDrag",r=>{const i=this.interactionEvent(r);i.type=vA[i.type],i.type==="dragging"?this.indragging=!0:this.indragging=!1,this.emit(Us.Drag,i)}),H(this,"onHammer",r=>{r.srcEvent.stopPropagation();const i=this.interactionEvent(r);this.emit(Us.Hover,i)}),H(this,"onTouch",r=>{const i=r.touches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchstart"})}),H(this,"onTouchEnd",r=>{if(r.changedTouches.length>0){const i=r.changedTouches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchend"})}}),H(this,"onTouchMove",r=>{const i=r.changedTouches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchmove"})}),H(this,"onHover",r=>{const{clientX:i,clientY:s}=r;let u=i,n=s;const y=r.type,m=this.mapService.getMapContainer();if(m){const{top:x,left:b}=m.getBoundingClientRect();u=u-b-m.clientLeft,n=n-x-m.clientTop}const g=this.mapService.containerToLngLat([u,n]);if(y==="click"){this.isDoubleTap(u,n,g);return}if(y==="touch"){this.isDoubleTap(u,n,g);return}y!=="click"&&y!=="dblclick"&&this.emit(Us.Hover,{x:u,y:n,lngLat:g,type:y,target:r})}),this.container=t}init(){this.addEventListenerOnMap(),this.$containter=this.mapService.getMapContainer()}destroy(){this.hammertime&&this.hammertime.destroy(),this.removeEventListenerOnMap(),this.off(Us.Hover)}triggerHover({x:t,y:r}){this.emit(Us.Hover,{x:t,y:r})}triggerSelect(t){this.emit(Us.Select,{featureId:t})}triggerActive(t){this.emit(Us.Active,{featureId:t})}addEventListenerOnMap(){const t=this.mapService.getMapContainer();if(t){const r=new Rd.Manager(t);r.add(new Rd.Tap({event:"dblclick",taps:2})),r.add(new Rd.Tap({event:"click"})),r.add(new Rd.Pan({threshold:0,pointers:0})),r.add(new Rd.Press({})),r.on("dblclick click",this.onHammer),r.on("panstart panmove panend pancancel",this.onDrag),t.addEventListener("touchstart",this.onTouch),t.addEventListener("touchend",this.onTouchEnd),t.addEventListener("mousemove",this.onHover),t.addEventListener("touchmove",this.onTouchMove),t.addEventListener("mousedown",this.onHover,!0),t.addEventListener("mouseup",this.onHover),t.addEventListener("contextmenu",this.onHover),this.hammertime=r}}removeEventListenerOnMap(){const t=this.mapService.getMapContainer();t&&(t.removeEventListener("mousemove",this.onHover),this.hammertime.off("dblclick click",this.onHammer),this.hammertime.off("panstart panmove panend pancancel",this.onDrag),t.removeEventListener("touchstart",this.onTouch),t.removeEventListener("touchend",this.onTouchEnd),t.removeEventListener("mousedown",this.onHover),t.removeEventListener("mouseup",this.onHover),t.removeEventListener("contextmenu",this.onHover))}interactionEvent(t){const{type:r,pointerType:i}=t;let s,u;i==="touch"?(u=Math.floor(t.pointers[0].clientY),s=Math.floor(t.pointers[0].clientX)):(u=Math.floor(t.srcEvent.y),s=Math.floor(t.srcEvent.x));const n=this.mapService.getMapContainer();if(n){const{top:m,left:g}=n.getBoundingClientRect();s-=g,u-=m}const y=this.mapService.containerToLngLat([s,u]);return{x:s,y:u,lngLat:y,type:r,target:t.srcEvent}}isDoubleTap(t,r,i){const s=new Date().getTime();let u="click";s-this.lastClickTime<400&&Math.abs(this.lastClickXY[0]-t)<10&&Math.abs(this.lastClickXY[1]-r)<10?(this.lastClickTime=0,this.lastClickXY=[-1,-1],this.clickTimer&&clearTimeout(this.clickTimer),u="dblclick",this.emit(Us.Hover,{x:t,y:r,lngLat:i,type:u})):(this.lastClickTime=s,this.lastClickXY=[t,r],this.clickTimer=setTimeout(()=>{u="click",this.emit(Us.Hover,{x:t,y:r,lngLat:i,type:u})},400))}}let xA=0;function PA(e){let t=e;if(typeof e=="string"&&(t=document.getElementById(e)),t){const r=document.createElement("div");return r.style.cssText+=`
- position: absolute;
- z-index:2;
- height: 100%;
- width: 100%;
- pointer-events: none;
- `,r.id=`l7-scene-${xA++}`,r.classList.add("l7-scene"),t.appendChild(r),r}return null}function bA(e){var t;let r=!0;if((e==null||(t=e.target)===null||t===void 0?void 0:t.target)instanceof HTMLElement){var i;let u=e==null||(i=e.target)===null||i===void 0?void 0:i.target;for(;u;){var s;const n=Array.from(u.classList);if(n.includes("l7-marker")||n.includes("l7-popup")){r=!1;break}u=(s=u)===null||s===void 0?void 0:s.parentElement}}return r}let f1=function(e){return e[e.SAMPLED=0]="SAMPLED",e[e.RENDER_TARGET=1]="RENDER_TARGET",e}({});class AA{constructor(t){var r=this;H(this,"pickedColors",void 0),H(this,"pickedTileLayers",[]),H(this,"pickingFBO",void 0),H(this,"width",0),H(this,"height",0),H(this,"alreadyInPicking",!1),H(this,"pickBufferScale",1),H(this,"pickFromPickingFBO",function(){var i=mt(function*(s,{x:u,y:n,lngLat:y,type:m,target:g}){var x;let b=!1;const{readPixels:F,readPixelsAsync:R,getViewportSize:I,queryVerdorInfo:U}=r.rendererService,{width:V,height:J}=I(),{enableHighlight:Q,enableSelect:te}=s.getLayerConfig(),ne=u*Bs,pe=n*Bs;if(ne>V-1*Bs||ne<0||pe>J-1*Bs||pe<0)return!1;let Oe;if(U()==="WebGPU"?Oe=yield R({x:Math.floor(ne/r.pickBufferScale),y:Math.floor((J-(n+1)*Bs)/r.pickBufferScale),width:1,height:1,data:new Uint8Array(4),framebuffer:r.pickingFBO}):Oe=F({x:Math.floor(ne/r.pickBufferScale),y:Math.floor((J-(n+1)*Bs)/r.pickBufferScale),width:1,height:1,data:new Uint8Array(4),framebuffer:r.pickingFBO}),r.pickedColors=Oe,Oe[0]!==0||Oe[1]!==0||Oe[2]!==0){const He=c1(Oe),ft=s.layerPickService.getFeatureById(He);He!==s.getCurrentPickId()&&m==="mousemove"&&(m="mouseenter");const Ge={x:u,y:n,type:m,lngLat:y,featureId:He,feature:ft,target:g};ft&&(b=!0,s.setCurrentPickId(He),r.triggerHoverOnLayer(s,Ge))}else{const He={x:u,y:n,lngLat:y,type:s.getCurrentPickId()!==null&&m==="mousemove"?"mouseout":"un"+m,featureId:null,target:g,feature:null};r.triggerHoverOnLayer(s,_t(_t({},He),{},{type:"unpick"})),r.triggerHoverOnLayer(s,He),s.setCurrentPickId(null)}if(Q&&s.layerPickService.highlightPickedFeature(Oe),te&&m==="click"&&((x=Oe)===null||x===void 0?void 0:x.toString())!==[0,0,0,0].toString()){const He=c1(Oe);s.getCurrentSelectedId()===null||He!==s.getCurrentSelectedId()?(s.layerPickService.selectFeature(Oe),s.setCurrentSelectedId(He)):(s.layerPickService.selectFeature(new Uint8Array([0,0,0,0])),s.setCurrentSelectedId(null))}return b});return function(s,u){return i.apply(this,arguments)}}()),this.container=t}get mapService(){return this.container.mapService}get rendererService(){return this.container.rendererService}get configService(){return this.container.globalConfigService}get interactionService(){return this.container.interactionService}get layerService(){return this.container.layerService}init(t){const{createTexture2D:r,createFramebuffer:i,getViewportSize:s}=this.rendererService;let{width:u,height:n}=s();this.pickBufferScale=this.configService.getSceneConfig(t).pickBufferScale||1,u=Math.round(u/this.pickBufferScale),n=Math.round(n/this.pickBufferScale);const y=r({width:u,height:n,usage:f1.RENDER_TARGET,label:"Picking Texture"});this.pickingFBO=i({color:y,depth:!0,width:u,height:n}),this.interactionService.on(Us.Hover,this.pickingAllLayer.bind(this))}boxPickLayer(t,r,i){var s=this;return mt(function*(){const{useFramebufferAsync:u,clear:n}=s.rendererService;s.resizePickingFBO(),t.hooks.beforePickingEncode.call(),yield u(s.pickingFBO,mt(function*(){n({framebuffer:s.pickingFBO,color:[0,0,0,0],stencil:0,depth:1}),t.renderModels({ispick:!0})})),t.hooks.afterPickingEncode.call();const y=yield s.pickBox(t,r);i(y)})()}pickBox(t,r){var i=this;return mt(function*(){const[s,u,n,y]=r.map(J=>{const Q=J<0?0:J;return Math.floor(Q*Bs/i.pickBufferScale)}),{readPixelsAsync:m,getViewportSize:g}=i.rendererService,{width:x,height:b}=g();if(s>(x-1)*Bs/i.pickBufferScale||n<0||u>(b-1)*Bs/i.pickBufferScale||y<0)return[];const F=Math.min(x/i.pickBufferScale,n)-s,R=Math.min(b/i.pickBufferScale,y)-u,I=yield m({x:s,y:Math.floor(b/i.pickBufferScale-(y+1)),width:F,height:R,data:new Uint8Array(F*R*4),framebuffer:i.pickingFBO}),U=[],V={};for(let J=0;J<I.length/4;J=J+1){const Q=I.slice(J*4,J*4+4),te=c1(Q);if(te!==-1&&!V[te]){const ne=t.layerPickService.getFeatureById(te);U.push(_t(_t({},ne),{},{pickedFeatureIdx:te})),V[te]=!0}}return U})()}handleCursor(t,r){const{cursor:i="",cursorEnabled:s}=t.getLayerConfig();if(s){const n=this.mapService.getType()==="amap"?this.mapService.getMapContainer():this.mapService.getMarkerContainer(),y=n==null?void 0:n.style.getPropertyValue("cursor");r==="unmousemove"&&y!==""?n==null||n.style.setProperty("cursor",""):r==="mousemove"&&(n==null||n.style.setProperty("cursor",i))}}destroy(){this.pickingFBO.destroy(),this.pickingFBO=null}pickingAllLayer(t){var r=this;return mt(function*(){!r.layerService.needPick(t.type)||!r.isPickingAllLayer()||(r.alreadyInPicking=!0,yield r.pickingLayers(t),r.layerService.renderLayers(),r.alreadyInPicking=!1)})()}isPickingAllLayer(){return!(this.alreadyInPicking||this.layerService.alreadyInRendering||this.interactionService.indragging||!this.layerService.getShaderPickStat())}resizePickingFBO(){const{getViewportSize:t}=this.rendererService,{width:r,height:i}=t();(this.width!==r||this.height!==i)&&(this.pickingFBO.resize({width:Math.round(r/this.pickBufferScale),height:Math.round(i/this.pickBufferScale)}),this.width=r,this.height=i)}pickingLayers(t){var r=this;return mt(function*(){const{clear:i,useFramebufferAsync:s}=r.rendererService;r.resizePickingFBO();const u=r.layerService.getRenderList();for(const n of u.filter(y=>y.needPick(t.type)).reverse()){yield s(r.pickingFBO,mt(function*(){i({framebuffer:r.pickingFBO,color:[0,0,0,0],stencil:0,depth:1}),n.layerPickService.pickRender(t)}));const y=yield r.pickFromPickingFBO(n,t);if(r.layerService.pickedLayerId=y?+n.id:-1,y&&!n.getLayerConfig().enablePropagation)break}})()}triggerHoverOnLayer(t,r){bA(r)&&(this.handleCursor(t,r.type),t.emit(r.type,r))}}class FA{constructor(t=!0){H(this,"autoStart",void 0),H(this,"startTime",0),H(this,"oldTime",0),H(this,"running",!1),H(this,"elapsedTime",0),this.autoStart=t}start(){this.startTime=(typeof performance>"u"?Date:performance).now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const r=(typeof performance>"u"?Date:performance).now();t=(r-this.oldTime)/1e3,this.oldTime=r,this.elapsedTime+=t}return t}}const{throttle:j_}=Qn;class TA extends du.EventEmitter{get renderService(){return this.container.rendererService}get mapService(){return this.container.mapService}get debugService(){return this.container.debugService}constructor(t){super(),H(this,"pickedLayerId",-1),H(this,"clock",new FA),H(this,"alreadyInRendering",!1),H(this,"layers",[]),H(this,"layerList",[]),H(this,"layerRenderID",void 0),H(this,"sceneInited",!1),H(this,"animateInstanceCount",0),H(this,"shaderPicking",!0),H(this,"enableRender",!0),H(this,"reRender",j_(()=>{this.renderLayers()},32)),H(this,"throttleRenderLayers",j_(()=>{this.renderLayers()},16)),this.container=t}needPick(t){return this.updateLayerRenderList(),this.layerList.some(r=>r.needPick(t))}add(t){this.layers.push(t),this.sceneInited&&t.init().then(()=>{this.renderLayers()})}addMask(t){this.sceneInited&&t.init().then(()=>{this.renderLayers()})}initLayers(){var t=this;return mt(function*(){t.sceneInited=!0,t.layers.forEach(function(){var r=mt(function*(i){i.startInit||(yield i.init(),t.updateLayerRenderList())});return function(i){return r.apply(this,arguments)}}())})()}getSceneInited(){return this.sceneInited}getRenderList(){return this.layerList}getLayers(){return this.layers}getLayer(t){return this.layers.find(r=>r.id===t)}getLayerByName(t){return this.layers.find(r=>r.name===t)}remove(t,r){var i=this;return mt(function*(){r?r.layerChildren=r.layerChildren.filter(s=>s!==t):i.layers=i.layers.filter(s=>s!==t),t.destroy(),i.reRender(),i.emit("layerChange",i.layers)})()}removeAllLayers(){var t=this;return mt(function*(){t.destroy(),t.reRender()})()}setEnableRender(t){this.enableRender=t}renderLayers(){var t=this;return mt(function*(){if(t.alreadyInRendering||!t.enableRender)return;t.updateLayerRenderList();const r=t.debugService.generateRenderUid();t.debugService.renderStart(r),t.alreadyInRendering=!0,t.clear();for(const i of t.layerList)i.prerender();t.renderService.beginFrame();for(const i of t.layerList){const{enableMask:s}=i.getLayerConfig();i.masks.filter(u=>u.inited).length>0&&s&&t.renderMask(i.masks),i.getLayerConfig().enableMultiPassRenderer?yield i.renderMultiPass():i.render()}t.renderService.endFrame(),t.debugService.renderEnd(r),t.alreadyInRendering=!1})()}renderMask(t){let r=0;this.renderService.clear({stencil:0,depth:1,framebuffer:null});const i=t.length>1?p1.MULTIPLE:p1.SINGLE;for(const s of t)s.render({isStencil:!0,stencilType:i,stencilIndex:r++})}beforeRenderData(t){var r=this;return mt(function*(){(yield t.hooks.beforeRenderData.promise())&&r.renderLayers()})()}renderTileLayerMask(t){let r=0;const{enableMask:i=!0}=t.getLayerConfig();let s=t.tileMask?1:0;const u=t.masks.filter(y=>y.inited);s=s+(i?u.length:1);const n=s>1?p1.MULTIPLE:p1.SINGLE;if((t.tileMask||u.length&&i)&&this.renderService.clear({stencil:0,depth:1,framebuffer:null}),u.length&&i)for(const y of u)y.render({isStencil:!0,stencilType:n,stencilIndex:r++});t.tileMask&&t.tileMask.render({isStencil:!0,stencilType:n,stencilIndex:r++,stencilOperation:jf.OR})}renderTileLayer(t){var r=this;return mt(function*(){r.renderTileLayerMask(t),t.getLayerConfig().enableMultiPassRenderer?yield t.renderMultiPass():yield t.render()})()}updateLayerRenderList(){this.layerList=[],this.layers.filter(t=>t.inited).filter(t=>t.isVisible()).sort((t,r)=>t.zIndex-r.zIndex).forEach(t=>{this.layerList.push(t)})}destroy(){this.layers.forEach(t=>{t.destroy()}),this.layers=[],this.layerList=[],this.emit("layerChange",this.layers)}startAnimate(){this.animateInstanceCount++===0&&(this.clock.start(),this.runRender())}stopAnimate(){--this.animateInstanceCount===0&&(this.stopRender(),this.clock.stop())}getOESTextureFloat(){return this.renderService.extensionObject.OES_texture_float}enableShaderPick(){this.shaderPicking=!0}disableShaderPick(){this.shaderPicking=!1}getShaderPickStat(){return this.shaderPicking}clear(){const t=Mi(this.mapService.bgColor);this.renderService.clear({color:t,depth:1,stencil:0,framebuffer:null})}runRender(){this.renderLayers(),this.layerRenderID=window.requestAnimationFrame(this.runRender.bind(this))}stopRender(){window.cancelAnimationFrame(this.layerRenderID)}}function SA(e,t){if(e==null)return{};var r={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)!==-1)continue;r[i]=e[i]}return r}function $p(e,t){if(e==null)return{};var r,i,s=SA(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(i=0;i<u.length;i++)r=u[i],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}const{isNil:wA}=Qn;class RA{constructor(t){H(this,"name",void 0),H(this,"type",void 0),H(this,"scale",void 0),H(this,"descriptor",void 0),H(this,"featureBufferLayout",[]),H(this,"needRescale",!1),H(this,"needRemapping",!1),H(this,"needRegenerateVertices",!1),H(this,"featureRange",{startIndex:0,endIndex:1/0}),H(this,"vertexAttribute",void 0),H(this,"defaultCallback",r=>{if(r.length===0){var i;return((i=this.scale)===null||i===void 0?void 0:i.defaultValues)||[]}return r.map((s,u)=>{var n;return((n=this.scale)===null||n===void 0?void 0:n.scalers[u].func)(s)})}),this.setProps(t)}setProps(t){Object.assign(this,t)}mapping(t){var r;if((r=this.scale)!==null&&r!==void 0&&r.callback){var i;const s=(i=this.scale)===null||i===void 0?void 0:i.callback(...t);if(!wA(s))return[s]}return this.defaultCallback(t)}resetDescriptor(){this.descriptor&&(this.descriptor.buffer.data=[])}}const CA=["buffer","update","name"],IA=["buffer","update","name"],MA={[L.FLOAT]:4,[L.UNSIGNED_BYTE]:1,[L.UNSIGNED_SHORT]:2};class NA{constructor(t){H(this,"attributesAndIndices",void 0),H(this,"attributes",[]),H(this,"triangulation",void 0),H(this,"featureLayout",{sizePerElement:0,elements:[]}),this.rendererService=t}registerStyleAttribute(t){let r=this.getLayerStyleAttribute(t.name||"");return r?r.setProps(t):(r=new RA(t),this.attributes.push(r)),r}unRegisterStyleAttribute(t){const r=this.attributes.findIndex(i=>i.name===t);r>-1&&this.attributes.splice(r,1)}updateScaleAttribute(t){this.attributes.forEach(r=>{var i;const s=r.name,u=(i=r.scale)===null||i===void 0?void 0:i.field;(t[s]||u&&t[u])&&(r.needRescale=!0,r.needRemapping=!0,r.needRegenerateVertices=!0)})}updateStyleAttribute(t,r,i){let s=this.getLayerStyleAttribute(t);s||(s=this.registerStyleAttribute(_t(_t({},r),{},{name:t})));const{scale:u}=r;u&&s&&(s.scale=u,s.needRescale=!0,s.needRemapping=!0,s.needRegenerateVertices=!0,i&&i.featureRange&&(s.featureRange=i.featureRange))}getLayerStyleAttributes(){return this.attributes}getLayerStyleAttribute(t){return this.attributes.find(r=>r.name===t)}getLayerAttributeScale(t){var r;const i=this.getLayerStyleAttribute(t),s=i==null||(r=i.scale)===null||r===void 0?void 0:r.scalers;return s&&s[0]?s[0].func:null}updateAttributeByFeatureRange(t,r,i=0,s,u){const n=this.attributes.find(y=>y.name===t);if(n&&n.descriptor){const{descriptor:y}=n,{update:m,buffer:g,size:x=0}=y,b=MA[g.type||L.FLOAT];if(m){const{elements:F,sizePerElement:R}=this.featureLayout,I=F.slice(i,s);if(!I.length)return;const{offset:U}=I[0],V=U*x*b,J=I.map(({featureIdx:Q,vertices:te,normals:ne},pe)=>{const Oe=te.length/R,Ee=[];for(let He=0;He<Oe;He++){const ft=ne?ne.slice(He*3,He*3+3):[];Ee.push(...m(r[Q],Q,te.slice(He*R,He*R+R),pe,ft))}return Ee}).flat();n.vertexAttribute.updateBuffer({data:J,offset:V}),u==null||u.emit(`legend:${t}`,u.getLegend(t))}}}createAttributesAndIndices(t,r,i,s){this.featureLayout={sizePerElement:0,elements:[]},r&&(this.triangulation=r);const u=this.attributes.map(U=>(U.resetDescriptor(),U.descriptor));let n=0,y=0;const m=[];let g=3;t.forEach((U,V)=>{const{indices:J,vertices:Q,normals:te,size:ne,indexes:pe,count:Oe}=this.triangulation(U,i);typeof Oe=="number"&&(y+=Oe),J.forEach(He=>{m.push(He+n)}),g=ne;const Ee=Q.length/ne;this.featureLayout.sizePerElement=g,this.featureLayout.elements.push({featureIdx:V,vertices:Q,normals:te,offset:n}),n+=Ee;for(let He=0;He<Ee;He++){const ft=(te==null?void 0:te.slice(He*3,He*3+3))||[],Ge=Q.slice(He*ne,He*ne+ne);let Ae=0;pe&&pe[He]!==void 0&&(Ae=pe[He]),u.forEach((Be,ze)=>{Be&&Be.update&&Be.buffer.data.push(...Be.update(U,V,Ge,He,ft,Ae))})}});const{createAttribute:x,createBuffer:b,createElements:F}=this.rendererService,R={};u.forEach((U,V)=>{if(U){const{buffer:J,update:Q,name:te}=U,ne=$p(U,CA),pe=x(_t({buffer:b(J)},ne));R[U.name||""]=pe,this.attributes[V].vertexAttribute=pe}});const I=F({data:m,type:L.UNSIGNED_INT,count:m.length});return this.attributesAndIndices={attributes:R,elements:I,count:y},Object.values(this.attributes).filter(U=>U.scale).forEach(U=>{const V=U.name;s==null||s.emit(`legend:${V}`,s.getLegend(V))}),this.attributesAndIndices}createAttributes(t,r){this.featureLayout={sizePerElement:0,elements:[]},r&&(this.triangulation=r);const i=this.attributes.map(g=>(g.resetDescriptor(),g.descriptor));let s=0,u=3;t.forEach((g,x)=>{const{indices:b,vertices:F,normals:R,size:I,indexes:U}=this.triangulation(g);b.forEach(J=>{}),u=I;const V=F.length/I;this.featureLayout.sizePerElement=u,this.featureLayout.elements.push({featureIdx:x,vertices:F,normals:R,offset:s}),s+=V;for(let J=0;J<V;J++){const Q=(R==null?void 0:R.slice(J*3,J*3+3))||[],te=F.slice(J*I,J*I+I);let ne=0;U&&U[J]!==void 0&&(ne=U[J]),i.forEach((pe,Oe)=>{pe&&pe.update&&pe.buffer.data.push(...pe.update(g,x,te,J,Q,ne))})}});const{createAttribute:n,createBuffer:y}=this.rendererService,m={};return i.forEach((g,x)=>{if(g){const{buffer:b,update:F,name:R}=g,I=$p(g,IA),U=n(_t({buffer:y(b)},I));m[g.name||""]=U,this.attributes[x].vertexAttribute=U}}),{attributes:m}}clearAllAttributes(){var t;this.attributes.forEach(r=>{r.vertexAttribute&&r.vertexAttribute.destroy()}),(t=this.attributesAndIndices)===null||t===void 0||t.elements.destroy(),this.attributes=[]}}function N8(e,t,r,i){function s(u){return u instanceof r?u:new r(function(n){n(u)})}return new(r||(r=Promise))(function(u,n){function y(x){try{g(i.next(x))}catch(b){n(b)}}function m(x){try{g(i.throw(x))}catch(b){n(b)}}function g(x){x.done?u(x.value):s(x.value).then(y,m)}g((i=i.apply(e,[])).next())})}function D8(e,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},i,s,u,n;return n={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(n[Symbol.iterator]=function(){return this}),n;function y(g){return function(x){return m([g,x])}}function m(g){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,s&&(u=g[0]&2?s.return:g[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,g[1])).done)return u;switch(s=0,u&&(g=[g[0]&2,u.value]),g[0]){case 0:case 1:u=g;break;case 4:return r.label++,{value:g[1],done:!1};case 5:r.label++,s=g[1],g=[0];continue;case 7:g=r.ops.pop(),r.trys.pop();continue;default:if(u=r.trys,!(u=u.length>0&&u[u.length-1])&&(g[0]===6||g[0]===2)){r=0;continue}if(g[0]===3&&(!u||g[1]>u[0]&&g[1]<u[3])){r.label=g[1];break}if(g[0]===6&&r.label<u[1]){r.label=u[1],u=g;break}if(u&&r.label<u[2]){r.label=u[2],r.ops.push(g);break}u[2]&&r.ops.pop(),r.trys.pop();continue}g=t.call(e,r)}catch(x){g=[6,x],s=0}finally{i=u=0}if(g[0]&5)throw g[1];return{value:g[0]?g[1]:void 0,done:!0}}}function P6(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i=r.call(e),s,u=[],n;try{for(;(t===void 0||t-- >0)&&!(s=i.next()).done;)u.push(s.value)}catch(y){n={error:y}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return u}function b6(e,t,r){if(arguments.length===2)for(var i=0,s=t.length,u;i<s;i++)(u||!(i in t))&&(u||(u=Array.prototype.slice.call(t,0,i)),u[i]=t[i]);return e.concat(u||Array.prototype.slice.call(t))}function O8(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var b2={exports:{}},yf={exports:{}},gy={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i){return i&&typeof i.length=="number"&&i.length>=0&&i.length%1===0}e.exports=t.default})(gy,gy.exports);var Vs={},A2={exports:{}},F2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(r){return function(){for(var i=[],s=arguments.length;s--;)i[s]=arguments[s];var u=i.pop();return r.call(this,i,u)}},e.exports=t.default})(F2,F2.exports);var Sc={};Object.defineProperty(Sc,"__esModule",{value:!0});Sc.fallback=L8;Sc.wrap=B8;var DA=Sc.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,OA=Sc.hasSetImmediate=typeof setImmediate=="function"&&setImmediate,LA=Sc.hasNextTick=typeof process=="object"&&typeof process.nextTick=="function";function L8(e){setTimeout(e,0)}function B8(e){return function(t){for(var r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];return e(function(){return t.apply(void 0,r)})}}var Kd;DA?Kd=queueMicrotask:OA?Kd=setImmediate:LA?Kd=process.nextTick:Kd=L8;Sc.default=B8(Kd);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=m;var r=F2.exports,i=y(r),s=Sc,u=y(s),n=Vs;function y(b){return b&&b.__esModule?b:{default:b}}function m(b){return(0,n.isAsync)(b)?function(){for(var F=[],R=arguments.length;R--;)F[R]=arguments[R];var I=F.pop(),U=b.apply(this,F);return g(U,I)}:(0,i.default)(function(F,R){var I;try{I=b.apply(this,F)}catch(U){return R(U)}if(I&&typeof I.then=="function")return g(I,R);R(null,I)})}function g(b,F){return b.then(function(R){x(F,null,R)},function(R){x(F,R&&R.message?R:new Error(R))})}function x(b,F,R){try{b(F,R)}catch(I){(0,u.default)(function(U){throw U},I)}}e.exports=t.default})(A2,A2.exports);Object.defineProperty(Vs,"__esModule",{value:!0});Vs.isAsyncIterable=Vs.isAsyncGenerator=Vs.isAsync=void 0;var BA=A2.exports,UA=kA(BA);function kA(e){return e&&e.__esModule?e:{default:e}}function U8(e){return e[Symbol.toStringTag]==="AsyncFunction"}function zA(e){return e[Symbol.toStringTag]==="AsyncGenerator"}function VA(e){return typeof e[Symbol.asyncIterator]=="function"}function HA(e){if(typeof e!="function")throw new Error("expected a function");return U8(e)?(0,UA.default)(e):e}Vs.default=HA;Vs.isAsync=U8;Vs.isAsyncGenerator=zA;Vs.isAsyncIterable=VA;var m1={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i,s){if(s===void 0&&(s=i.length),!s)throw new Error("arity is undefined");function u(){for(var n=this,y=[],m=arguments.length;m--;)y[m]=arguments[m];return typeof y[s-1]=="function"?i.apply(this,y):new Promise(function(g,x){y[s-1]=function(b){for(var F=[],R=arguments.length-1;R-- >0;)F[R]=arguments[R+1];if(b)return x(b);g(F.length>1?F:F[0])},i.apply(n,y)})}return u}e.exports=t.default})(m1,m1.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=gy.exports,i=m(r),s=Vs,u=m(s),n=m1.exports,y=m(n);function m(g){return g&&g.__esModule?g:{default:g}}t.default=(0,y.default)(function(g,x,b){var F=(0,i.default)(x)?[]:{};g(x,function(R,I,U){(0,u.default)(R)(function(V){for(var J,Q=[],te=arguments.length-1;te-- >0;)Q[te]=arguments[te+1];Q.length<2&&(J=Q,Q=J[0]),F[I]=Q,U(V)})},function(R){return b(R,F)})},3),e.exports=t.default})(yf,yf.exports);var T2={exports:{}},hf={exports:{}},S2={exports:{}},vy={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i){function s(){for(var u=[],n=arguments.length;n--;)u[n]=arguments[n];if(i!==null){var y=i;i=null,y.apply(this,u)}}return Object.assign(s,i),s}e.exports=t.default})(vy,vy.exports);var w2={exports:{}},R2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(r){return r[Symbol.iterator]&&r[Symbol.iterator]()},e.exports=t.default})(R2,R2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=x;var r=gy.exports,i=n(r),s=R2.exports,u=n(s);function n(b){return b&&b.__esModule?b:{default:b}}function y(b){var F=-1,R=b.length;return function(){return++F<R?{value:b[F],key:F}:null}}function m(b){var F=-1;return function(){var I=b.next();return I.done?null:(F++,{value:I.value,key:F})}}function g(b){var F=b?Object.keys(b):[],R=-1,I=F.length;return function U(){var V=F[++R];return V==="__proto__"?U():R<I?{value:b[V],key:V}:null}}function x(b){if((0,i.default)(b))return y(b);var F=(0,u.default)(b);return F?m(F):g(b)}e.exports=t.default})(w2,w2.exports);var Ey={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i){return function(){for(var s=[],u=arguments.length;u--;)s[u]=arguments[u];if(i===null)throw new Error("Callback was already called.");var n=i;i=null,n.apply(this,s)}}e.exports=t.default})(Ey,Ey.exports);var C2={exports:{}},xy={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={};t.default=r,e.exports=t.default})(xy,xy.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var r=xy.exports,i=s(r);function s(n){return n&&n.__esModule?n:{default:n}}function u(n,y,m,g){var x=!1,b=!1,F=!1,R=0,I=0;function U(){R>=y||F||x||(F=!0,n.next().then(function(Q){var te=Q.value,ne=Q.done;if(!(b||x)){if(F=!1,ne){x=!0,R<=0&&g(null);return}R++,m(te,I,V),I++,U()}}).catch(J))}function V(Q,te){if(R-=1,!b){if(Q)return J(Q);if(Q===!1){x=!0,b=!0;return}if(te===i.default||x&&R<=0)return x=!0,g(null);U()}}function J(Q){b||(F=!1,x=!0,g(Q))}U()}e.exports=t.default})(C2,C2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=vy.exports,i=R(r),s=w2.exports,u=R(s),n=Ey.exports,y=R(n),m=Vs,g=C2.exports,x=R(g),b=xy.exports,F=R(b);function R(I){return I&&I.__esModule?I:{default:I}}t.default=function(I){return function(U,V,J){if(J=(0,i.default)(J),I<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!U)return J(null);if((0,m.isAsyncGenerator)(U))return(0,x.default)(U,I,V,J);if((0,m.isAsyncIterable)(U))return(0,x.default)(U[Symbol.asyncIterator](),I,V,J);var Q=(0,u.default)(U),te=!1,ne=!1,pe=0,Oe=!1;function Ee(ft,Ge){if(!ne)if(pe-=1,ft)te=!0,J(ft);else if(ft===!1)te=!0,ne=!0;else{if(Ge===F.default||te&&pe<=0)return te=!0,J(null);Oe||He()}}function He(){for(Oe=!0;pe<I&&!te;){var ft=Q();if(ft===null){te=!0,pe<=0&&J(null);return}pe+=1,V(ft.value,ft.key,(0,y.default)(Ee))}Oe=!1}He()}},e.exports=t.default})(S2,S2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=S2.exports,i=m(r),s=Vs,u=m(s),n=m1.exports,y=m(n);function m(x){return x&&x.__esModule?x:{default:x}}function g(x,b,F,R){return(0,i.default)(b)(x,(0,u.default)(F),R)}t.default=(0,y.default)(g,4),e.exports=t.default})(hf,hf.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=hf.exports,i=n(r),s=m1.exports,u=n(s);function n(m){return m&&m.__esModule?m:{default:m}}function y(m,g,x){return(0,i.default)(m,1,g,x)}t.default=(0,u.default)(y,3),e.exports=t.default})(T2,T2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=y;var r=yf.exports,i=n(r),s=T2.exports,u=n(s);function n(m){return m&&m.__esModule?m:{default:m}}function y(m,g){return(0,i.default)(u.default,m,g)}e.exports=t.default})(b2,b2.exports);var Wf=O8(b2.exports),Wp=function(){function e(){this.args=[],this.tasks=[]}return e.prototype.call=function(){for(var t=arguments,r=[],i=0;i<arguments.length;i++)r[i]=t[i];return this.args=r,Wf(this.tasks)},e.prototype.tap=function(t,r){var i=this;this.tasks.push(function(s){r.apply(void 0,b6([],P6(i.args),!1)),s(null,t)})},e}(),W_={exports:{}},I2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=gy.exports,i=V(r),s=xy.exports,u=V(s),n=hf.exports,y=V(n),m=vy.exports,g=V(m),x=Ey.exports,b=V(x),F=Vs,R=V(F),I=m1.exports,U=V(I);function V(ne){return ne&&ne.__esModule?ne:{default:ne}}function J(ne,pe,Oe){Oe=(0,g.default)(Oe);var Ee=0,He=0,ft=ne.length,Ge=!1;ft===0&&Oe(null);function Ae(Be,ze){Be===!1&&(Ge=!0),Ge!==!0&&(Be?Oe(Be):(++He===ft||ze===u.default)&&Oe(null))}for(;Ee<ft;Ee++)pe(ne[Ee],Ee,(0,b.default)(Ae))}function Q(ne,pe,Oe){return(0,y.default)(ne,1/0,pe,Oe)}function te(ne,pe,Oe){var Ee=(0,i.default)(ne)?J:Q;return Ee(ne,(0,R.default)(pe),Oe)}t.default=(0,U.default)(te,3),e.exports=t.default})(I2,I2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=y;var r=I2.exports,i=n(r),s=yf.exports,u=n(s);function n(m){return m&&m.__esModule?m:{default:m}}function y(m,g){return(0,u.default)(i.default,m,g)}e.exports=t.default})(W_,W_.exports);var M2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=vy.exports,i=x(r),s=Ey.exports,u=x(s),n=Vs,y=x(n),m=m1.exports,g=x(m);function x(F){return F&&F.__esModule?F:{default:F}}function b(F,R){if(R=(0,i.default)(R),!Array.isArray(F))return R(new Error("First argument to waterfall must be an array of functions"));if(!F.length)return R();var I=0;function U(J){var Q=(0,y.default)(F[I++]);Q.apply(void 0,J.concat([(0,u.default)(V)]))}function V(J){for(var Q=[],te=arguments.length-1;te-- >0;)Q[te]=arguments[te+1];if(J!==!1){if(J||I===F.length)return R.apply(void 0,[J].concat(Q));U(Q)}}U([])}t.default=(0,g.default)(b),e.exports=t.default})(M2,M2.exports);var GA=O8(M2.exports),X_=function(){function e(){this.tasks=[]}return e.prototype.call=function(){return Wf(this.tasks)},e.prototype.tap=function(t,r){this.tasks.push(function(i){var s=r();i(s,t)})},e}(),jA=function(){function e(){this.args=[],this.tasks=[]}return e.prototype.promise=function(){for(var t=arguments,r=[],i=0;i<arguments.length;i++)r[i]=t[i];return this.args=r,Wf(this.tasks)},e.prototype.tapPromise=function(t,r){var i=this;this.tasks.push(function(s){return N8(i,void 0,void 0,function(){return D8(this,function(u){switch(u.label){case 0:return[4,r.apply(void 0,b6([],P6(this.args),!1))];case 1:return u.sent(),s(null,t),[2]}})})})},e}(),WA=function(){function e(){this.args=[],this.tasks=[]}return e.prototype.promise=function(){for(var t=arguments,r=[],i=0;i<arguments.length;i++)r[i]=t[i];return this.args=r,Wf(this.tasks)},e.prototype.tapPromise=function(t,r){var i=this;this.tasks.push(function(s){return N8(i,void 0,void 0,function(){var u;return D8(this,function(n){switch(n.label){case 0:return[4,r.apply(void 0,b6([],P6(this.args),!1))];case 1:return u=n.sent(),s(u,t),[2]}})})})},e}(),XA=function(){function e(){this.tasks=[]}return e.prototype.promise=function(){return GA(this.tasks)},e.prototype.tapPromise=function(t,r){this.tasks.length===0?this.tasks.push(function(i){r().then(function(s){i(null,s)})}):this.tasks.push(function(i,s){r(i).then(function(u){s(null,u)})})},e}(),k8={exports:{}},ZA=k8.exports={};ZA.forEach=function(e,t){for(var r=0;r<e.length;r++){var i=t(e[r]);if(i)return i}};var z8=k8.exports,YA=function(e){var t=e.stateHandler.getState;function r(n){var y=t(n);return y&&!!y.isDetectable}function i(n){t(n).isDetectable=!0}function s(n){return!!t(n).busy}function u(n,y){t(n).busy=!!y}return{isDetectable:r,markAsDetectable:i,isBusy:s,markBusy:u}},$A=function(e){var t={};function r(n){var y=e.get(n);return y===void 0?[]:t[y]||[]}function i(n,y){var m=e.get(n);t[m]||(t[m]=[]),t[m].push(y)}function s(n,y){for(var m=r(n),g=0,x=m.length;g<x;++g)if(m[g]===y){m.splice(g,1);break}}function u(n){var y=r(n);y&&(y.length=0)}return{get:r,add:i,removeListener:s,removeAllListeners:u}},qA=function(){var e=1;function t(){return e++}return{generate:t}},KA=function(e){var t=e.idGenerator,r=e.stateHandler.getState;function i(u){var n=r(u);return n&&n.id!==void 0?n.id:null}function s(u){var n=r(u);if(!n)throw new Error("setId required the element to have a resize detection state.");var y=t.generate();return n.id=y,y}return{get:i,set:s}},QA=function(e){function t(){}var r={log:t,warn:t,error:t};if(!e&&window.console){var i=function(s,u){s[u]=function(){var y=console[u];if(y.apply)y.apply(console,arguments);else for(var m=0;m<arguments.length;m++)y(arguments[m])}};i(r,"log"),i(r,"warn"),i(r,"error")}return r},V8={exports:{}},H8=V8.exports={};H8.isIE=function(e){function t(){var i=navigator.userAgent.toLowerCase();return i.indexOf("msie")!==-1||i.indexOf("trident")!==-1||i.indexOf(" edge/")!==-1}if(!t())return!1;if(!e)return!0;var r=function(){var i,s=3,u=document.createElement("div"),n=u.getElementsByTagName("i");do u.innerHTML="<!--[if gt IE "+ ++s+"]><i></i><![endif]-->";while(n[0]);return s>4?s:i}();return e===r};H8.isLegacyOpera=function(){return!!window.opera};var G8=V8.exports,j8={exports:{}},JA=j8.exports={};JA.getOption=eF;function eF(e,t,r){var i=e[t];return i==null&&r!==void 0?r:i}var tF=j8.exports,Z_=tF,rF=function(t){t=t||{};var r=t.reporter,i=Z_.getOption(t,"async",!0),s=Z_.getOption(t,"auto",!0);s&&!i&&(r&&r.warn("Invalid options combination. auto=true and async=false is invalid. Setting async=true."),i=!0);var u=Y_(),n,y=!1;function m(I,U){!y&&s&&i&&u.size()===0&&b(),u.add(I,U)}function g(){for(y=!0;u.size();){var I=u;u=Y_(),I.process()}y=!1}function x(I){y||(I===void 0&&(I=i),n&&(F(n),n=null),I?b():g())}function b(){n=R(g)}function F(I){var U=clearTimeout;return U(I)}function R(I){var U=function(V){return setTimeout(V,0)};return U(I)}return{add:m,force:x}};function Y_(){var e={},t=0,r=0,i=0;function s(y,m){m||(m=y,y=0),y>r?r=y:y<i&&(i=y),e[y]||(e[y]=[]),e[y].push(m),t++}function u(){for(var y=i;y<=r;y++)for(var m=e[y],g=0;g<m.length;g++){var x=m[g];x()}}function n(){return t}return{add:s,process:u,size:n}}var A6="_erd";function oF(e){return e[A6]={},W8(e)}function W8(e){return e[A6]}function iF(e){delete e[A6]}var nF={initState:oF,getState:W8,cleanState:iF},Cd=G8,aF=function(e){e=e||{};var t=e.reporter,r=e.batchProcessor,i=e.stateHandler.getState;if(!t)throw new Error("Missing required dependency: reporter.");function s(g,x){function b(){x(g)}if(Cd.isIE(8))i(g).object={proxy:b},g.attachEvent("onresize",b);else{var F=y(g);if(!F)throw new Error("Element is not detectable by this strategy.");F.contentDocument.defaultView.addEventListener("resize",b)}}function u(g){var x=e.important?" !important; ":"; ";return(g.join(x)+x).trim()}function n(g,x,b){b||(b=x,x=g,g=null),g=g||{},g.debug;function F(R,I){var U=u(["display: block","position: absolute","top: 0","left: 0","width: 100%","height: 100%","border: none","padding: 0","margin: 0","opacity: 0","z-index: -1000","pointer-events: none"]),V=!1,J=window.getComputedStyle(R),Q=R.offsetWidth,te=R.offsetHeight;i(R).startSize={width:Q,height:te};function ne(){function pe(){if(J.position==="static"){R.style.setProperty("position","relative",g.important?"important":"");var He=function(ft,Ge,Ae,Be){function ze(Vt){return Vt.replace(/[^-\d\.]/g,"")}var st=Ae[Be];st!=="auto"&&ze(st)!=="0"&&(ft.warn("An element that is positioned static has style."+Be+"="+st+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+Be+" will be set to 0. Element: ",Ge),Ge.style.setProperty(Be,"0",g.important?"important":""))};He(t,R,J,"top"),He(t,R,J,"right"),He(t,R,J,"bottom"),He(t,R,J,"left")}}function Oe(){V||pe();function He(Ge,Ae){if(!Ge.contentDocument){var Be=i(Ge);Be.checkForObjectDocumentTimeoutId&&window.clearTimeout(Be.checkForObjectDocumentTimeoutId),Be.checkForObjectDocumentTimeoutId=setTimeout(function(){Be.checkForObjectDocumentTimeoutId=0,He(Ge,Ae)},100);return}Ae(Ge.contentDocument)}var ft=this;He(ft,function(Ae){I(R)})}J.position!==""&&(pe(),V=!0);var Ee=document.createElement("object");Ee.style.cssText=U,Ee.tabIndex=-1,Ee.type="text/html",Ee.setAttribute("aria-hidden","true"),Ee.onload=Oe,Cd.isIE()||(Ee.data="about:blank"),i(R)&&(R.appendChild(Ee),i(R).object=Ee,Cd.isIE()&&(Ee.data="about:blank"))}r?r.add(ne):ne()}Cd.isIE(8)?b(x):F(x,b)}function y(g){return i(g).object}function m(g){if(i(g)){var x=y(g);x&&(Cd.isIE(8)?g.detachEvent("onresize",x.proxy):g.removeChild(x),i(g).checkForObjectDocumentTimeoutId&&window.clearTimeout(i(g).checkForObjectDocumentTimeoutId),delete i(g).object)}}return{makeDetectable:n,addListener:s,uninstall:m}},sF=z8.forEach,uF=function(e){e=e||{};var t=e.reporter,r=e.batchProcessor,i=e.stateHandler.getState;e.stateHandler.hasState;var s=e.idHandler;if(!r)throw new Error("Missing required dependency: batchProcessor");if(!t)throw new Error("Missing required dependency: reporter.");var u=x(),n="erd_scroll_detection_scrollbar_style",y="erd_scroll_detection_container";function m(ne){b(ne,n,y)}m(window.document);function g(ne){var pe=e.important?" !important; ":"; ";return(ne.join(pe)+pe).trim()}function x(){var ne=500,pe=500,Oe=document.createElement("div");Oe.style.cssText=g(["position: absolute","width: "+ne*2+"px","height: "+pe*2+"px","visibility: hidden","margin: 0","padding: 0"]);var Ee=document.createElement("div");Ee.style.cssText=g(["position: absolute","width: "+ne+"px","height: "+pe+"px","overflow: scroll","visibility: none","top: "+-500*3+"px","left: "+-500*3+"px","visibility: hidden","margin: 0","padding: 0"]),Ee.appendChild(Oe),document.body.insertBefore(Ee,document.body.firstChild);var He=ne-Ee.clientWidth,ft=pe-Ee.clientHeight;return document.body.removeChild(Ee),{width:He,height:ft}}function b(ne,pe,Oe){function Ee(Ae,Be){Be=Be||function(st){ne.head.appendChild(st)};var ze=ne.createElement("style");return ze.innerHTML=Ae,ze.id=pe,Be(ze),ze}if(!ne.getElementById(pe)){var He=Oe+"_animation",ft=Oe+"_animation_active",Ge=`/* Created by the element-resize-detector library. */
- `;Ge+="."+Oe+" > div::-webkit-scrollbar { "+g(["display: none"])+` }
- `,Ge+="."+ft+" { "+g(["-webkit-animation-duration: 0.1s","animation-duration: 0.1s","-webkit-animation-name: "+He,"animation-name: "+He])+` }
- `,Ge+="@-webkit-keyframes "+He+` { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }
- `,Ge+="@keyframes "+He+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",Ee(Ge)}}function F(ne){ne.className+=" "+y+"_animation_active"}function R(ne,pe,Oe){if(ne.addEventListener)ne.addEventListener(pe,Oe);else if(ne.attachEvent)ne.attachEvent("on"+pe,Oe);else return t.error("[scroll] Don't know how to add event listeners.")}function I(ne,pe,Oe){if(ne.removeEventListener)ne.removeEventListener(pe,Oe);else if(ne.detachEvent)ne.detachEvent("on"+pe,Oe);else return t.error("[scroll] Don't know how to remove event listeners.")}function U(ne){return i(ne).container.childNodes[0].childNodes[0].childNodes[0]}function V(ne){return i(ne).container.childNodes[0].childNodes[0].childNodes[1]}function J(ne,pe){var Oe=i(ne).listeners;if(!Oe.push)throw new Error("Cannot add listener to an element that is not detectable.");i(ne).listeners.push(pe)}function Q(ne,pe,Oe){Oe||(Oe=pe,pe=ne,ne=null),ne=ne||{};function Ee(){if(ne.debug){var $e=Array.prototype.slice.call(arguments);if($e.unshift(s.get(pe),"Scroll: "),t.log.apply)t.log.apply(null,$e);else for(var Yt=0;Yt<$e.length;Yt++)t.log($e[Yt])}}function He($e){function Yt(Sr){var Ft=Sr.getRootNode&&Sr.getRootNode().contains(Sr);return Sr===Sr.ownerDocument.body||Sr.ownerDocument.body.contains(Sr)||Ft}return!Yt($e)||window.getComputedStyle($e)===null}function ft($e){var Yt=i($e).container.childNodes[0],Sr=window.getComputedStyle(Yt);return!Sr.width||Sr.width.indexOf("px")===-1}function Ge(){var $e=window.getComputedStyle(pe),Yt={};return Yt.position=$e.position,Yt.width=pe.offsetWidth,Yt.height=pe.offsetHeight,Yt.top=$e.top,Yt.right=$e.right,Yt.bottom=$e.bottom,Yt.left=$e.left,Yt.widthCSS=$e.width,Yt.heightCSS=$e.height,Yt}function Ae(){var $e=Ge();i(pe).startSize={width:$e.width,height:$e.height},Ee("Element start size",i(pe).startSize)}function Be(){i(pe).listeners=[]}function ze(){if(Ee("storeStyle invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}var $e=Ge();i(pe).style=$e}function st($e,Yt,Sr){i($e).lastWidth=Yt,i($e).lastHeight=Sr}function Vt($e){return U($e).childNodes[0]}function ir(){return 2*u.width+1}function Fr(){return 2*u.height+1}function Yr($e){return $e+10+ir()}function mr($e){return $e+10+Fr()}function Er($e){return $e*2+ir()}function qr($e){return $e*2+Fr()}function Jr($e,Yt,Sr){var Ft=U($e),xr=V($e),io=Yr(Yt),go=mr(Sr),to=Er(Yt),Kr=qr(Sr);Ft.scrollLeft=io,Ft.scrollTop=go,xr.scrollLeft=to,xr.scrollTop=Kr}function _o(){var $e=i(pe).container;if(!$e){$e=document.createElement("div"),$e.className=y,$e.style.cssText=g(["visibility: hidden","display: inline","width: 0px","height: 0px","z-index: -1","overflow: hidden","margin: 0","padding: 0"]),i(pe).container=$e,F($e),pe.appendChild($e);var Yt=function(){i(pe).onRendered&&i(pe).onRendered()};R($e,"animationstart",Yt),i(pe).onAnimationStart=Yt}return $e}function So(){function $e(){var si=i(pe).style;if(si.position==="static"){pe.style.setProperty("position","relative",ne.important?"important":"");var Fn=function(pa,Tn,vs,zi){function us(Hs){return Hs.replace(/[^-\d\.]/g,"")}var xa=vs[zi];xa!=="auto"&&us(xa)!=="0"&&(pa.warn("An element that is positioned static has style."+zi+"="+xa+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+zi+" will be set to 0. Element: ",Tn),Tn.style[zi]=0)};Fn(t,pe,si,"top"),Fn(t,pe,si,"right"),Fn(t,pe,si,"bottom"),Fn(t,pe,si,"left")}}function Yt(si,Fn,pa,Tn){return si=si?si+"px":"0",Fn=Fn?Fn+"px":"0",pa=pa?pa+"px":"0",Tn=Tn?Tn+"px":"0",["left: "+si,"top: "+Fn,"right: "+Tn,"bottom: "+pa]}if(Ee("Injecting elements"),!i(pe)){Ee("Aborting because element has been uninstalled");return}$e();var Sr=i(pe).container;Sr||(Sr=_o());var Ft=u.width,xr=u.height,io=g(["position: absolute","flex: none","overflow: hidden","z-index: -1","visibility: hidden","width: 100%","height: 100%","left: 0px","top: 0px"]),go=g(["position: absolute","flex: none","overflow: hidden","z-index: -1","visibility: hidden"].concat(Yt(-(1+Ft),-(1+xr),-xr,-Ft))),to=g(["position: absolute","flex: none","overflow: scroll","z-index: -1","visibility: hidden","width: 100%","height: 100%"]),Kr=g(["position: absolute","flex: none","overflow: scroll","z-index: -1","visibility: hidden","width: 100%","height: 100%"]),Ao=g(["position: absolute","left: 0","top: 0"]),$i=g(["position: absolute","width: 200%","height: 200%"]),Qo=document.createElement("div"),ti=document.createElement("div"),Pn=document.createElement("div"),se=document.createElement("div"),bn=document.createElement("div"),ja=document.createElement("div");Qo.dir="ltr",Qo.style.cssText=io,Qo.className=y,ti.className=y,ti.style.cssText=go,Pn.style.cssText=to,se.style.cssText=Ao,bn.style.cssText=Kr,ja.style.cssText=$i,Pn.appendChild(se),bn.appendChild(ja),ti.appendChild(Pn),ti.appendChild(bn),Qo.appendChild(ti),Sr.appendChild(Qo);function An(){var si=i(pe);si&&si.onExpand?si.onExpand():Ee("Aborting expand scroll handler: element has been uninstalled")}function ss(){var si=i(pe);si&&si.onShrink?si.onShrink():Ee("Aborting shrink scroll handler: element has been uninstalled")}R(Pn,"scroll",An),R(bn,"scroll",ss),i(pe).onExpandScroll=An,i(pe).onShrinkScroll=ss}function oo(){function $e(to,Kr,Ao){var $i=Vt(to),Qo=Yr(Kr),ti=mr(Ao);$i.style.setProperty("width",Qo+"px",ne.important?"important":""),$i.style.setProperty("height",ti+"px",ne.important?"important":"")}function Yt(to){var Kr=pe.offsetWidth,Ao=pe.offsetHeight,$i=Kr!==i(pe).lastWidth||Ao!==i(pe).lastHeight;Ee("Storing current size",Kr,Ao),st(pe,Kr,Ao),r.add(0,function(){if($i){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}if(ne.debug){var ti=pe.offsetWidth,Pn=pe.offsetHeight;(ti!==Kr||Pn!==Ao)&&t.warn(s.get(pe),"Scroll: Size changed before updating detector elements.")}$e(pe,Kr,Ao)}}),r.add(1,function(){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}Jr(pe,Kr,Ao)}),$i&&to&&r.add(2,function(){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}to()})}function Sr(){return!!i(pe).container}function Ft(){function to(){return i(pe).lastNotifiedWidth===void 0}Ee("notifyListenersIfNeeded invoked");var Kr=i(pe);if(to()&&Kr.lastWidth===Kr.startSize.width&&Kr.lastHeight===Kr.startSize.height)return Ee("Not notifying: Size is the same as the start size, and there has been no notification yet.");if(Kr.lastWidth===Kr.lastNotifiedWidth&&Kr.lastHeight===Kr.lastNotifiedHeight)return Ee("Not notifying: Size already notified");Ee("Current size not notified, notifying..."),Kr.lastNotifiedWidth=Kr.lastWidth,Kr.lastNotifiedHeight=Kr.lastHeight,sF(i(pe).listeners,function(Ao){Ao(pe)})}function xr(){if(Ee("startanimation triggered."),ft(pe)){Ee("Ignoring since element is still unrendered...");return}Ee("Element rendered.");var to=U(pe),Kr=V(pe);(to.scrollLeft===0||to.scrollTop===0||Kr.scrollLeft===0||Kr.scrollTop===0)&&(Ee("Scrollbars out of sync. Updating detector elements..."),Yt(Ft))}function io(){if(Ee("Scroll detected."),ft(pe)){Ee("Scroll event fired while unrendered. Ignoring...");return}Yt(Ft)}if(Ee("registerListenersAndPositionElements invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}i(pe).onRendered=xr,i(pe).onExpand=io,i(pe).onShrink=io;var go=i(pe).style;$e(pe,go.width,go.height)}function Wi(){if(Ee("finalizeDomMutation invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}var $e=i(pe).style;st(pe,$e.width,$e.height),Jr(pe,$e.width,$e.height)}function bo(){Oe(pe)}function Ni(){Ee("Installing..."),Be(),Ae(),r.add(0,ze),r.add(1,So),r.add(2,oo),r.add(3,Wi),r.add(4,bo)}Ee("Making detectable..."),He(pe)?(Ee("Element is detached"),_o(),Ee("Waiting until element is attached..."),i(pe).onRendered=function(){Ee("Element is now attached"),Ni()}):Ni()}function te(ne){var pe=i(ne);pe&&(pe.onExpandScroll&&I(U(ne),"scroll",pe.onExpandScroll),pe.onShrinkScroll&&I(V(ne),"scroll",pe.onShrinkScroll),pe.onAnimationStart&&I(pe.container,"animationstart",pe.onAnimationStart),pe.container&&ne.removeChild(pe.container))}return{makeDetectable:Q,addListener:J,uninstall:te,initDocument:m}},Qd=z8.forEach,pF=YA,lF=$A,cF=qA,dF=KA,yF=QA,$_=G8,hF=rF,dc=nF,fF=aF,mF=uF;function q_(e){return Array.isArray(e)||e.length!==void 0}function K_(e){if(Array.isArray(e))return e;var t=[];return Qd(e,function(r){t.push(r)}),t}function Q_(e){return e&&e.nodeType===1}var _F=function(e){e=e||{};var t;if(e.idHandler)t={get:function(Q){return e.idHandler.get(Q,!0)},set:e.idHandler.set};else{var r=cF(),i=dF({idGenerator:r,stateHandler:dc});t=i}var s=e.reporter;if(!s){var u=s===!1;s=yF(u)}var n=yc(e,"batchProcessor",hF({reporter:s})),y={};y.callOnAdd=!!yc(e,"callOnAdd",!0),y.debug=!!yc(e,"debug",!1);var m=lF(t),g=pF({stateHandler:dc}),x,b=yc(e,"strategy","object"),F=yc(e,"important",!1),R={reporter:s,batchProcessor:n,stateHandler:dc,idHandler:t,important:F};if(b==="scroll"&&($_.isLegacyOpera()?(s.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),b="object"):$_.isIE(9)&&(s.warn("Scroll strategy is not supported on IE9. Changing to object strategy."),b="object")),b==="scroll")x=mF(R);else if(b==="object")x=fF(R);else throw new Error("Invalid strategy name: "+b);var I={};function U(Q,te,ne){function pe(Ae){var Be=m.get(Ae);Qd(Be,function(st){st(Ae)})}function Oe(Ae,Be,ze){m.add(Be,ze),Ae&&ze(Be)}if(ne||(ne=te,te=Q,Q={}),!te)throw new Error("At least one element required.");if(!ne)throw new Error("Listener required.");if(Q_(te))te=[te];else if(q_(te))te=K_(te);else return s.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");var Ee=0,He=yc(Q,"callOnAdd",y.callOnAdd),ft=yc(Q,"onReady",function(){}),Ge=yc(Q,"debug",y.debug);Qd(te,function(Be){dc.getState(Be)||(dc.initState(Be),t.set(Be));var ze=t.get(Be);if(Ge&&s.log("Attaching listener to element",ze,Be),!g.isDetectable(Be)){if(Ge&&s.log(ze,"Not detectable."),g.isBusy(Be)){Ge&&s.log(ze,"System busy making it detectable"),Oe(He,Be,ne),I[ze]=I[ze]||[],I[ze].push(function(){Ee++,Ee===te.length&&ft()});return}return Ge&&s.log(ze,"Making detectable..."),g.markBusy(Be,!0),x.makeDetectable({debug:Ge,important:F},Be,function(Vt){if(Ge&&s.log(ze,"onElementDetectable"),dc.getState(Vt)){g.markAsDetectable(Vt),g.markBusy(Vt,!1),x.addListener(Vt,pe),Oe(He,Vt,ne);var ir=dc.getState(Vt);if(ir&&ir.startSize){var Fr=Vt.offsetWidth,Yr=Vt.offsetHeight;(ir.startSize.width!==Fr||ir.startSize.height!==Yr)&&pe(Vt)}I[ze]&&Qd(I[ze],function(mr){mr()})}else Ge&&s.log(ze,"Element uninstalled before being detectable.");delete I[ze],Ee++,Ee===te.length&&ft()})}Ge&&s.log(ze,"Already detecable, adding listener."),Oe(He,Be,ne),Ee++}),Ee===te.length&&ft()}function V(Q){if(!Q)return s.error("At least one element is required.");if(Q_(Q))Q=[Q];else if(q_(Q))Q=K_(Q);else return s.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");Qd(Q,function(te){m.removeAllListeners(te),x.uninstall(te),dc.cleanState(te)})}function J(Q){x.initDocument&&x.initDocument(Q)}return{listenTo:U,removeListener:m.removeListener,removeAllListeners:m.removeAllListeners,uninstall:V,initDocument:J}};function yc(e,t,r){var i=e[t];return i==null&&r!==void 0?r:i}const gF=_p(_F);let vF=class extends du.EventEmitter{get iconService(){return this.container.iconService}get fontService(){return this.container.fontService}get controlService(){return this.container.controlService}get configService(){return this.container.globalConfigService}get map(){return this.container.mapService}get coordinateSystemService(){return this.container.coordinateSystemService}get rendererService(){return this.container.rendererService}get layerService(){return this.container.layerService}get debugService(){return this.container.debugService}get cameraService(){return this.container.cameraService}get interactionService(){return this.container.interactionService}get pickingService(){return this.container.pickingService}get shaderModuleService(){return this.container.shaderModuleService}get markerService(){return this.container.markerService}get popupService(){return this.container.popupService}constructor(t){super(),H(this,"destroyed",!1),H(this,"loaded",!1),H(this,"id",void 0),H(this,"inited",!1),H(this,"rendering",!1),H(this,"$container",void 0),H(this,"canvas",void 0),H(this,"markerContainer",void 0),H(this,"resizeDetector",void 0),H(this,"hooks",void 0),H(this,"handleWindowResized",()=>{this.emit("resize"),this.$container&&(this.initContainer(),this.coordinateSystemService.needRefresh=!0,this.render())}),H(this,"handleMapCameraChanged",r=>{this.cameraService.update(r),this.render()}),this.container=t,this.hooks={init:new jA},this.id=t.id}init(t){var r=this;this.configService.setSceneConfig(this.id,t),this.shaderModuleService.registerBuiltinModules(),this.iconService.init(),this.iconService.on("imageUpdate",()=>this.render()),this.fontService.init(),this.hooks.init.tapPromise("initMap",mt(function*(){r.debugService.log("map.mapInitStart",{type:r.map.version}),yield new Promise(i=>{r.map.onCameraChanged(s=>{r.cameraService.init(),r.cameraService.update(s),i()}),r.map.init()}),r.map.onCameraChanged(r.handleMapCameraChanged),r.map.addMarkerContainer(),r.markerService.addMarkers(),r.markerService.addMarkerLayers(),r.popupService.initPopup(),r.interactionService.init(),r.interactionService.on(Us.Drag,r.addSceneEvent.bind(r))})),this.hooks.init.tapPromise("initRenderer",mt(function*(){var i;const s=((i=r.map)===null||i===void 0?void 0:i.getOverlayContainer())||void 0;if(s?r.$container=s:r.$container=PA(r.configService.getSceneConfig(r.id).id||""),r.$container){const{canvas:n}=t;if(r.canvas=n||lu("canvas","",r.$container),r.setCanvas(),yield r.rendererService.init(r.canvas,r.configService.getSceneConfig(r.id),t.gl),r.registerContextLost(),r.initContainer(),r.resizeDetector=gF({strategy:"scroll"}),r.resizeDetector.listenTo(r.$container,r.handleWindowResized),window.matchMedia){var u;(u=window.matchMedia("screen and (-webkit-min-device-pixel-ratio: 1.5)"))===null||u===void 0||u.addListener(r.handleWindowResized.bind("screen"))}}else console.error("容器 id 不存在");r.pickingService.init(r.id)})),this.render()}registerContextLost(){const t=this.rendererService.getCanvas();t&&t.addEventListener("webglcontextlost",()=>this.emit("webglcontextlost"))}addLayer(t){this.layerService.sceneService=this,this.layerService.add(t)}addMask(t){this.layerService.sceneService=this,this.layerService.addMask(t)}render(){var t=this;return mt(function*(){t.rendering||t.destroyed||(t.rendering=!0,t.inited?(yield t.layerService.initLayers(),yield t.layerService.renderLayers()):(yield t.hooks.init.promise(),t.destroyed&&t.destroy(),yield t.layerService.initLayers(),t.layerService.renderLayers(),t.controlService.addControls(),t.loaded=!0,t.emit("loaded"),t.inited=!0),t.rendering=!1)})()}addFontFace(t,r){this.fontService.addFontFace(t,r)}getSceneContainer(){return this.$container}exportPng(t){var r=this;return mt(function*(){var i;const s=(i=r.$container)===null||i===void 0?void 0:i.getElementsByTagName("canvas")[0];return yield r.render(),t==="jpg"?s==null?void 0:s.toDataURL("image/jpeg"):s==null?void 0:s.toDataURL("image/png")})()}getSceneConfig(){return this.configService.getSceneConfig(this.id)}getPointSizeRange(){return this.rendererService.getPointSizeRange()}addMarkerContainer(){const t=this.$container.parentElement;t!==null&&(this.markerContainer=lu("div","l7-marker-container",t))}getMarkerContainer(){return this.markerContainer}destroy(){var t;if(!this.inited){this.destroyed=!0;return}this.resizeDetector.removeListener(this.$container,this.handleWindowResized),this.pickingService.destroy(),this.layerService.destroy(),this.interactionService.destroy(),this.controlService.destroy(),this.markerService.destroy(),this.fontService.destroy(),this.iconService.destroy(),this.removeAllListeners(),this.inited=!1,this.map.destroy(),setTimeout(()=>{var r;(r=this.$container)===null||r===void 0||r.removeChild(this.canvas),this.canvas=null,this.rendererService.destroy()}),(t=this.$container)===null||t===void 0||(t=t.parentNode)===null||t===void 0||t.removeChild(this.$container),this.emit("destroy")}initContainer(){var t,r;const i=Bs,s=((t=this.$container)===null||t===void 0?void 0:t.clientWidth)||400,u=((r=this.$container)===null||r===void 0?void 0:r.clientHeight)||300,n=this.canvas;n&&(n.width=s*i,n.height=u*i),this.rendererService.viewport({x:0,y:0,width:i*s,height:i*u})}setCanvas(){var t,r;const i=Bs,s=((t=this.$container)===null||t===void 0?void 0:t.clientWidth)||400,u=((r=this.$container)===null||r===void 0?void 0:r.clientHeight)||300,n=this.canvas;n.width=s*i,n.height=u*i,n.style.width="100%",n.style.height="100%"}addSceneEvent(t){this.emit(t.type,t)}};const{uniq:EF}=Qn,J_="#define PI 3.14159265359",xF=`#define ambientRatio 0.5
- #define diffuseRatio 0.3
- #define specularRatio 0.2
- float calc_lighting(vec4 pos) {
- vec3 worldPos = vec3(pos * u_ModelMatrix);
- vec3 worldNormal = a_Normal;
- // //cal light weight
- vec3 viewDir = normalize(u_CameraPosition - worldPos);
- vec3 lightDir = normalize(vec3(1, -10.5, 12));
- vec3 halfDir = normalize(viewDir+lightDir);
- // //lambert
- float lambert = dot(worldNormal, lightDir);
- //specular
- float specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0);
- //sum to light weight
- float lightWeight = ambientRatio + diffuseRatio * lambert + specularRatio * specular;
- return lightWeight;
- }
- `,PF=`#define SHIFT_RIGHT17 1.0 / 131072.0
- #define SHIFT_RIGHT18 1.0 / 262144.0
- #define SHIFT_RIGHT19 1.0 / 524288.0
- #define SHIFT_RIGHT20 1.0 / 1048576.0
- #define SHIFT_RIGHT21 1.0 / 2097152.0
- #define SHIFT_RIGHT22 1.0 / 4194304.0
- #define SHIFT_RIGHT23 1.0 / 8388608.0
- #define SHIFT_RIGHT24 1.0 / 16777216.0
- #define SHIFT_LEFT17 131072.0
- #define SHIFT_LEFT18 262144.0
- #define SHIFT_LEFT19 524288.0
- #define SHIFT_LEFT20 1048576.0
- #define SHIFT_LEFT21 2097152.0
- #define SHIFT_LEFT22 4194304.0
- #define SHIFT_LEFT23 8388608.0
- #define SHIFT_LEFT24 16777216.0
- vec2 unpack_float(float packedValue) {
- int packedIntValue = int(packedValue);
- int v0 = packedIntValue / 256;
- return vec2(v0, packedIntValue - v0 * 256);
- }
- vec4 decode_color(vec2 encodedColor) {
- return vec4(
- unpack_float(encodedColor[0]) / 255.0,
- unpack_float(encodedColor[1]) / 255.0
- );
- }
- `,bF=`// Blinn-Phong model
- // apply lighting in vertex shader instead of fragment shader
- // @see https://learnopengl.com/Advanced-Lighting/Advanced-Lighting
- uniform float u_Ambient : 1.0;
- uniform float u_Diffuse : 1.0;
- uniform float u_Specular : 1.0;
- uniform int u_NumOfDirectionalLights : 1;
- uniform int u_NumOfSpotLights : 0;
- #define SHININESS 32.0
- #define MAX_NUM_OF_DIRECTIONAL_LIGHTS 3
- #define MAX_NUM_OF_SPOT_LIGHTS 3
- struct DirectionalLight {
- vec3 direction;
- vec3 ambient;
- vec3 diffuse;
- vec3 specular;
- };
- struct SpotLight {
- vec3 position;
- vec3 direction;
- vec3 ambient;
- vec3 diffuse;
- vec3 specular;
- float constant;
- float linear;
- float quadratic;
- float angle;
- float blur;
- float exponent;
- };
- uniform DirectionalLight u_DirectionalLights[MAX_NUM_OF_DIRECTIONAL_LIGHTS];
- uniform SpotLight u_SpotLights[MAX_NUM_OF_SPOT_LIGHTS];
- vec3 calc_directional_light(DirectionalLight light, vec3 normal, vec3 viewDir) {
- vec3 lightDir = normalize(light.direction);
- // diffuse shading
- float diff = max(dot(normal, lightDir), 0.0);
- // Blinn-Phong specular shading
- vec3 halfwayDir = normalize(lightDir + viewDir);
- float spec = pow(max(dot(normal, halfwayDir), 0.0), SHININESS);
- vec3 ambient = light.ambient * u_Ambient;
- vec3 diffuse = light.diffuse * diff * u_Diffuse;
- vec3 specular = light.specular * spec * u_Specular;
- return ambient + diffuse + specular;
- }
- vec3 calc_lighting(vec3 position, vec3 normal, vec3 viewDir) {
- vec3 weight = vec3(0.0);
- for (int i = 0; i < MAX_NUM_OF_DIRECTIONAL_LIGHTS; i++) {
- if (i >= u_NumOfDirectionalLights) {
- break;
- }
- weight += calc_directional_light(u_DirectionalLights[i], normal, viewDir);
- }
- return weight;
- }
- `,AF=`
- in vec4 v_PickingResult;
- #pragma include "picking_uniforms"
- #define PICKING_NONE 0.0
- #define PICKING_ENCODE 1.0
- #define PICKING_HIGHLIGHT 2.0
- #define COLOR_SCALE 1. / 255.
- #define HIGHLIGHT 1.0
- #define SELECT 2.0
- /*
- * Returns highlight color if this item is selected.
- */
- vec4 filterHighlightColor(vec4 color, float weight) {
- float activeType = v_PickingResult.a;
- if(activeType > 0.0) {
- vec4 highLightColor = activeType > 1.5 ? u_SelectColor : u_HighlightColor;
- highLightColor = highLightColor * COLOR_SCALE;
- float highLightAlpha = highLightColor.a;
- float highLightRatio = highLightAlpha / (highLightAlpha + color.a * (1.0 - highLightAlpha));
- vec3 resultRGB = mix(color.rgb, highLightColor.rgb, highLightRatio);
- return vec4(mix(resultRGB * weight, color.rgb, u_activeMix), color.a);
- }
- else {
- return color;
- }
-
- }
- /*
- * Returns picking color if picking enabled else unmodified argument.
- */
- vec4 filterPickingColor(vec4 color) {
- vec3 pickingColor = v_PickingResult.rgb;
- if (u_PickingStage == PICKING_ENCODE && length(pickingColor) < 0.001) {
- discard;
- }
- return u_PickingStage == PICKING_ENCODE ? vec4(pickingColor, step(0.001,color.a)): color;
- }
- /*
- * Returns picking color if picking is enabled if not
- * highlight color if this item is selected, otherwise unmodified argument.
- */
- vec4 filterColor(vec4 color) {
- // 过滤多余的 shader 计算
- // return color;
- if(u_shaderPick < 0.5) {
- return color; // 暂时去除 直接取消计算在选中时拖拽地图会有问题
- } else {
- return filterPickingColor(filterHighlightColor(color, 1.0));
- }
-
- }
- vec4 filterColorAlpha(vec4 color, float alpha) {
- // 过滤多余的 shader 计算
- // return color;
- if(u_shaderPick < 0.5) {
- return color; // 暂时去除 直接取消计算在选中时拖拽地图会有问题
- } else {
- return filterPickingColor(filterHighlightColor(color, alpha));
- }
- }
- `,FF=`layout(location = ATTRIBUTE_LOCATION_PICKING_COLOR) in vec3 a_PickingColor;
- out vec4 v_PickingResult;
- #pragma include "picking_uniforms"
- #define PICKING_NONE 0.0
- #define PICKING_ENCODE 1.0
- #define PICKING_HIGHLIGHT 2.0
- #define COLOR_SCALE 1. / 255.
- #define NORMAL 0.0
- #define HIGHLIGHT 1.0
- #define SELECT 2.0
- bool isVertexPicked(vec3 vertexColor) {
- return distance(vertexColor,u_PickingColor.rgb) < 0.01;
- }
- // 判断当前点是否已经被 select 选中
- bool isVertexSelected(vec3 vertexColor) {
- return distance(vertexColor,u_CurrentSelectedId.rgb) < 0.01;
- }
- void setPickingColor(vec3 pickingColor) {
- if(u_shaderPick < 0.5) {
- return;
- }
- // compares only in highlight stage
- if(u_PickingStage == PICKING_HIGHLIGHT) {
- if(isVertexPicked(pickingColor)) {
- v_PickingResult = vec4(pickingColor.rgb * COLOR_SCALE,HIGHLIGHT);
- return;
- }
- if(isVertexSelected(pickingColor)) {
- v_PickingResult = vec4(u_CurrentSelectedId.rgb * COLOR_SCALE,SELECT);
- return;
- }
- } else {
- v_PickingResult= vec4(pickingColor.rgb * COLOR_SCALE,NORMAL);
- return;
- }
- // // v_PickingResult.a = float((u_PickingStage == PICKING_HIGHLIGHT) && (isVertexPicked(pickingColor) || isVertexPicked(u_CurrentSelectedId)));
- // // Stores the picking color so that the fragment shader can render it during picking
- // v_PickingResult.rgb = pickingColor * COLOR_SCALE;
- }
- float setPickingSize(float x) {
- return u_PickingStage == PICKING_ENCODE ? x + u_PickingBuffer : x;
- }
- float setPickingOrder(float z) {
- bool selected = bool(v_PickingResult.a);
- return selected ? z + 1. : 0.;
- }
- `,e5=`layout(std140) uniform PickingUniforms {
- vec4 u_HighlightColor;
- vec4 u_SelectColor;
- vec3 u_PickingColor;
- float u_PickingStage;
- vec3 u_CurrentSelectedId;
- float u_PickingThreshold;
- float u_PickingBuffer;
- float u_shaderPick;
- float u_activeMix;
- };`,TF=`
- #define E 2.718281828459045
- vec2 ProjectFlat(vec2 lnglat){
- float maxs=85.0511287798;
- float lat=max(min(maxs,lnglat.y),-maxs);
- float scale= 268435456.;
- float d=PI/180.;
- float x=lnglat.x*d;
- float y=lat*d;
- y=log(tan((PI/4.)+(y/2.)));
- float a=.5/PI,
- b=.5,
- c=-.5/PI;
- d=.5;
- x=scale*(a*x+b);
- y=scale*(c*y+d);
- return vec2(x,y);
- }
- vec2 unProjectFlat(vec2 px){
- float a=.5/PI;
- float b=.5;
- float c=-.5/PI;
- float d=.5;
- float scale = 268435456.;
- float x=(px.x/scale-b)/a;
- float y=(px.y/scale-d)/c;
- y=(atan(pow(E,y))-(PI/4.))*2.;
- d=PI/180.;
- float lat=y/d;
- float lng=x/d;
- return vec2(lng,lat);
- }
- float pixelDistance(vec2 from, vec2 to) {
- vec2 a1 = ProjectFlat(from);
- vec2 b1 = ProjectFlat(to);
- return distance(a1, b1);
- }
- // gaode2.0
- vec2 customProject(vec2 lnglat) { // 经纬度 => 平面坐标
- float t = lnglat.x;
- float e = lnglat.y;
- float Sm = 180.0 / PI;
- float Tm = 6378137.0;
- float Rm = PI / 180.0;
- float r = 85.0511287798;
- e = max(min(r, e), -r);
- t *= Rm;
- e *= Rm;
- e = log(tan(PI / 4.0 + e / 2.0));
- return vec2(t * Tm, e * Tm);
- }
- vec2 unProjCustomCoord(vec2 point) { // 平面坐标 => 经纬度
- float Sm = 57.29577951308232; //180 / Math.PI
- float Tm = 6378137.0;
- float t = point.x;
- float e = point.y;
- return vec2(t / Tm * Sm, (2.0 * atan(exp(e / Tm)) - PI / 2.0) * Sm);
- }
- float customPixelDistance(vec2 from, vec2 to) {
- vec2 a1 = ProjectFlat(from);
- vec2 b1 = ProjectFlat(to);
- return distance(a1, b1);
- }`,t5=`#define TILE_SIZE (512.0)
- #define PI (3.1415926536)
- #define WORLD_SCALE (TILE_SIZE / (PI * 2.0))
- #define EARTH_CIRCUMFERENCE (40.03e6)
- #define COORDINATE_SYSTEM_LNGLAT (1.0) // mapbox
- #define COORDINATE_SYSTEM_LNGLAT_OFFSET (2.0) // mapbox offset
- #define COORDINATE_SYSTEM_VECTOR_TILE (3.0)
- #define COORDINATE_SYSTEM_IDENTITY (4.0)
- #define COORDINATE_SYSTEM_METER_OFFSET (5.0)
- #pragma include "scene_uniforms"
- const vec2 ZERO_64_XY_LOW = vec2(0.0, 0.0);
- // web mercator coords -> world coords
- vec2 project_mercator(vec2 lnglat) {
- float x = lnglat.x;
- return vec2(radians(x) + PI, PI - log(tan(PI * 0.25 + radians(lnglat.y) * 0.5)));
- }
- float project_scale(float meters) {
- return meters * u_PixelsPerMeter.z;
- }
- // offset coords -> world coords
- vec4 project_offset(vec4 offset) {
- float dy = offset.y;
- dy = clamp(dy, -1.0, 1.0);
- vec3 pixels_per_unit = u_PixelsPerDegree + u_PixelsPerDegree2 * dy;
- return vec4(offset.xyz * pixels_per_unit, offset.w);
- }
- vec3 project_normal(vec3 normal) {
- vec4 normal_modelspace = u_ModelMatrix * vec4(normal, 0.0);
- return normalize(normal_modelspace.xyz * u_PixelsPerMeter);
- }
- vec3 project_offset_normal(vec3 vector) {
- if (
- u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 &&
- u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // normals generated by the polygon tesselator are in lnglat offsets instead of meters
- return normalize(vector * u_PixelsPerDegree);
- }
- return project_normal(vector);
- }
- vec4 project_position(vec4 position, vec2 position64xyLow) {
- if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- float X = position.x - u_ViewportCenter.x;
- float Y = position.y - u_ViewportCenter.y;
- return project_offset(
- vec4(X + position64xyLow.x, Y + position64xyLow.y, position.z, position.w)
- );
- }
- if (
- u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 &&
- u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01
- ) {
- return vec4(
- project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale,
- project_scale(position.z),
- position.w
- );
- }
- return position;
- }
- vec4 project_position(vec4 position) {
- return project_position(position, ZERO_64_XY_LOW);
- }
- vec2 project_pixel_size_to_clipspace(vec2 pixels) {
- vec2 offset = pixels / u_ViewportSize * u_DevicePixelRatio * 2.0;
- return offset * u_FocalDistance;
- }
- // 适配纹理贴图的等像素大小
- float project_pixel_texture(float pixel) {
- // mapbox zoom > 12
- if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- return pixel * pow(0.5, u_Zoom) * u_FocalDistance;
- }
- return pixel * 2.0 * u_FocalDistance;
- }
- // 在不论什么底图下需要统一处理的时候使用
- float project_float_pixel(float pixel) {
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // mapbox 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1
- return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance;
- }
- return pixel * u_FocalDistance;
- }
- // Project meter into the unit of pixel which used in the camera world space
- float project_float_meter(float meter) {
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // Since the zoom level uniform is updated by mapservice and it's alread been subtracted by 1
- // Not sure if we are supposed to do that again
- return meter;
- } else {
- return project_float_pixel(meter);
- }
- // TODO: change the following code to make adaptations for amap
- // return u_FocalDistance * TILE_SIZE * pow(2.0, u_Zoom) * meter / EARTH_CIRCUMFERENCE;
- }
- float project_pixel(float pixel) {
- return pixel * u_FocalDistance;
- }
- vec2 project_pixel(vec2 pixel) {
- return pixel * -1.0 * u_FocalDistance;
- }
- vec3 project_pixel(vec3 pixel) {
- return pixel * -1.0 * u_FocalDistance;
- }
- vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // Needs to be divided with project_uCommonUnitsPerMeter
- position.w *= u_PixelsPerMeter.z;
- }
- return viewProjectionMatrix * position + center;
- }
- // Projects from common space coordinates to clip space
- vec4 project_common_position_to_clipspace(vec4 position) {
- return project_common_position_to_clipspace(
- position,
- u_ViewProjectionMatrix,
- u_ViewportCenterProjection
- );
- }
- vec4 unproject_clipspace_to_position(vec4 clipspacePos, mat4 u_InverseViewProjectionMatrix) {
- vec4 pos = u_InverseViewProjectionMatrix * (clipspacePos - u_ViewportCenterProjection);
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // Needs to be divided with project_uCommonUnitsPerMeter
- pos.w = pos.w / u_PixelsPerMeter.z;
- }
- return pos;
- }
- bool isEqual(float a, float b) {
- return a < b + 0.001 && a > b - 0.001;
- }
- `,SF=`vec2 rotate_matrix(vec2 v, float a) {
- float b = a / 180.0 * 3.1415926535897932384626433832795;
- float s = sin(b);
- float c = cos(b);
- mat2 m = mat2(c, s, -s, c);
- return m * v;
- }`,r5=`layout(std140) uniform SceneUniforms {
- mat4 u_ViewMatrix;
- mat4 u_ProjectionMatrix;
- mat4 u_ViewProjectionMatrix;
- mat4 u_ModelMatrix;
- vec4 u_ViewportCenterProjection;
- vec3 u_PixelsPerDegree;
- float u_Zoom;
- vec3 u_PixelsPerDegree2;
- float u_ZoomScale;
- vec3 u_PixelsPerMeter;
- float u_CoordinateSystem;
- vec3 u_CameraPosition;
- float u_DevicePixelRatio;
- vec2 u_ViewportCenter;
- vec2 u_ViewportSize;
- float u_FocalDistance;
- };
- `,wF=`/**
- * 2D signed distance field functions
- * @see http://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
- */
- float ndot(vec2 a, vec2 b ) { return a.x*b.x - a.y*b.y; }
- float sdCircle(vec2 p, float r) {
- return length(p) - r;
- }
- float sdEquilateralTriangle(vec2 p) {
- float k = sqrt(3.0);
- p.x = abs(p.x) - 1.0;
- p.y = p.y + 1.0/k;
- if( p.x + k*p.y > 0.0 ) p = vec2(p.x-k*p.y,-k*p.x-p.y)/2.0;
- p.x -= clamp( p.x, -2.0, 0.0 );
- return -length(p)*sign(p.y);
- }
- float sdBox(vec2 p, vec2 b) {
- vec2 d = abs(p)-b;
- return length(max(d,vec2(0))) + min(max(d.x,d.y),0.0);
- }
- float sdPentagon(vec2 p, float r) {
- vec3 k = vec3(0.809016994,0.587785252,0.726542528);
- p.x = abs(p.x);
- p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y);
- p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y);
- p -= vec2(clamp(p.x,-r*k.z,r*k.z),r);
- return length(p)*sign(p.y);
- }
- float sdHexagon(vec2 p, float r) {
- vec3 k = vec3(-0.866025404,0.5,0.577350269);
- p = abs(p);
- p -= 2.0*min(dot(k.xy,p),0.0)*k.xy;
- p -= vec2(clamp(p.x, -k.z*r, k.z*r), r);
- return length(p)*sign(p.y);
- }
- float sdOctogon(vec2 p, float r) {
- vec3 k = vec3(-0.9238795325, 0.3826834323, 0.4142135623 );
- p = abs(p);
- p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y);
- p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y);
- p -= vec2(clamp(p.x, -k.z*r, k.z*r), r);
- return length(p)*sign(p.y);
- }
- float sdHexagram(vec2 p, float r) {
- vec4 k=vec4(-0.5,0.8660254038,0.5773502692,1.7320508076);
- p = abs(p);
- p -= 2.0*min(dot(k.xy,p),0.0)*k.xy;
- p -= 2.0*min(dot(k.yx,p),0.0)*k.yx;
- p -= vec2(clamp(p.x,r*k.z,r*k.w),r);
- return length(p)*sign(p.y);
- }
- float sdRhombus(vec2 p, vec2 b) {
- vec2 q = abs(p);
- float h = clamp((-2.0*ndot(q,b)+ndot(b,b))/dot(b,b),-1.0,1.0);
- float d = length( q - 0.5*b*vec2(1.0-h,1.0+h) );
- return d * sign( q.x*b.y + q.y*b.x - b.x*b.y );
- }
- float sdVesica(vec2 p, float r, float d) {
- p = abs(p);
- float b = sqrt(r*r-d*d); // can delay this sqrt
- return ((p.y-b)*d>p.x*b)
- ? length(p-vec2(0.0,b))
- : length(p-vec2(-d,0.0))-r;
- }
- `,o5=/precision\s+(high|low|medium)p\s+float/,i5=`#ifdef GL_FRAGMENT_PRECISION_HIGH
- precision highp float;
- #else
- precision mediump float;
- #endif
- `,RF=/#pragma include (["^+"]?["[a-zA-Z_0-9](.*)"]*?)/g,CF=/void\s+main\s*\([^)]*\)\s*\{\n?/;class IF{constructor(){H(this,"moduleCache",{}),H(this,"rawContentCache",{})}registerBuiltinModules(){this.destroy(),this.registerModule("common",{vs:J_,fs:J_}),this.registerModule("decode",{vs:PF,fs:""}),this.registerModule("scene_uniforms",{vs:r5,fs:r5}),this.registerModule("picking_uniforms",{vs:e5,fs:e5}),this.registerModule("projection",{vs:t5,fs:t5}),this.registerModule("project",{vs:TF,fs:""}),this.registerModule("sdf_2d",{vs:"",fs:wF}),this.registerModule("lighting",{vs:bF,fs:""}),this.registerModule("light",{vs:xF,fs:""}),this.registerModule("picking",{vs:FF,fs:AF}),this.registerModule("rotation_2d",{vs:SF,fs:""})}registerModule(t,r){r.vs=r.vs.replace(/\r\n/g,`
- `),r.fs=r.fs.replace(/\r\n/g,`
- `);const{vs:i,fs:s,uniforms:u,defines:n,inject:y}=r,{content:m,uniforms:g}=Hm(i),{content:x,uniforms:b}=Hm(s);this.rawContentCache[t]={fs:x,defines:n,inject:y,uniforms:_t(_t(_t({},g),b),u),vs:m}}getModule(t){let r=this.rawContentCache[t].vs,i=this.rawContentCache[t].fs;const{defines:s={},inject:u={}}=this.rawContentCache[t];let n={};u["vs:#decl"]&&(r=u["vs:#decl"]+r,n=Hm(u["vs:#decl"]).uniforms),u["vs:#main-start"]&&(r=r.replace(CF,U=>U+u["vs:#main-start"])),u["fs:#decl"]&&(i=u["fs:#decl"]+i),r=MF(s)+r;const{content:m,includeList:g}=this.processModule(r,[],"vs"),{content:x,includeList:b}=this.processModule(i,[],"fs"),F=EF(g.concat(b).concat(t)).reduce((U,V)=>_t(_t({},U),this.rawContentCache[V].uniforms),_t({},n)),R=(o5.test(x)?"":i5)+m,I=(o5.test(x)?"":i5)+x;return this.moduleCache[t]={vs:R.trim(),fs:I.trim(),uniforms:F},this.moduleCache[t]}destroy(){this.moduleCache={},this.rawContentCache={}}processModule(t,r,i){return{content:t.replace(RF,(u,n)=>{const m=n.split(" ")[0].replace(/"/g,"");if(r.indexOf(m)>-1)return"";const g=this.rawContentCache[m][i];r.push(m);const{content:x}=this.processModule(g,r,i);return x}),includeList:r}}}function MF(e){return Object.keys(e).reduce((r,i)=>r+`#define ${i.toUpperCase()} ${e[i]}
- `,`
- `)}class F6{constructor(){H(this,"shaderModuleService",void 0),H(this,"rendererService",void 0),H(this,"cameraService",void 0),H(this,"mapService",void 0),H(this,"interactionService",void 0),H(this,"layerService",void 0),H(this,"config",void 0)}getName(){return""}getType(){return Ny.Normal}init(t,r){this.config=r,this.rendererService=t.getContainer().rendererService,this.cameraService=t.getContainer().cameraService,this.mapService=t.getContainer().mapService,this.interactionService=t.getContainer().interactionService,this.layerService=t.getContainer().layerService,this.shaderModuleService=t.getContainer().shaderModuleService}render(t){}}class NF extends F6{getName(){return"clear"}init(t,r){super.init(t,r)}render(){this.rendererService.clear({color:[0,0,0,0],depth:1,framebuffer:null})}}class DF{constructor(t){H(this,"passes",[]),H(this,"layer",void 0),H(this,"renderFlag",void 0),H(this,"width",0),H(this,"height",0),this.postProcessor=t}setLayer(t){this.layer=t}setRenderFlag(t){this.renderFlag=t}getRenderFlag(){return this.renderFlag}getPostProcessor(){return this.postProcessor}render(){var t=this;return mt(function*(){for(const r of t.passes)yield r.render(t.layer);yield t.postProcessor.render(t.layer)})()}resize(t,r){(this.width!==t||this.height!==r)&&(this.postProcessor.resize(t,r),this.width=t,this.height=r)}add(t,r){t.getType()===Ny.PostProcessing?this.postProcessor.add(t,this.layer,r):(t.init(this.layer,r),this.passes.push(t))}insert(t,r,i){t.init(this.layer,r),this.passes.splice(i,0,t)}destroy(){this.passes.length=0}}class OF extends F6{constructor(...t){var r;super(...t),r=this,H(this,"pickingFBO",void 0),H(this,"layer",void 0),H(this,"width",0),H(this,"height",0),H(this,"alreadyInRendering",!1),H(this,"pickFromPickingFBO",({x:i,y:s,lngLat:u,type:n})=>{if(!this.layer.isVisible()||!this.layer.needPick(n))return;const{getViewportSize:y,readPixelsAsync:m,useFramebuffer:g}=this.rendererService,{width:x,height:b}=y(),{enableHighlight:F,enableSelect:R}=this.layer.getLayerConfig(),I=i*Bs,U=s*Bs;if(I>x||I<0||U>b||U<0)return;let V;g(this.pickingFBO,mt(function*(){var J;if(V=yield m({x:Math.round(I),y:Math.round(b-(s+1)*Bs),width:1,height:1,data:new Uint8Array(1*1*4),framebuffer:r.pickingFBO}),V[0]!==0||V[1]!==0||V[2]!==0){const Q=c1(V),te=r.layer.getSource().getFeatureById(Q),ne={x:i,y:s,type:n,lngLat:u,featureId:Q,feature:te};te&&(r.layer.setCurrentPickId(Q),r.triggerHoverOnLayer(ne))}else{const Q={x:i,y:s,lngLat:u,type:r.layer.getCurrentPickId()===null?"un"+n:"mouseout",featureId:null,feature:null};r.triggerHoverOnLayer(_t(_t({},Q),{},{type:"unpick"})),r.triggerHoverOnLayer(Q),r.layer.setCurrentPickId(null)}F&&r.highlightPickedFeature(V),R&&n==="click"&&((J=V)===null||J===void 0?void 0:J.toString())!==[0,0,0,0].toString()&&r.selectFeature(V)}))})}getType(){return Ny.Normal}getName(){return"pixelPicking"}init(t,r){super.init(t,r),this.layer=t;const{createTexture2D:i,createFramebuffer:s,getViewportSize:u}=this.rendererService,{width:n,height:y}=u(),m=i({width:n,height:y,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,label:"Picking Texture"});this.pickingFBO=s({color:m}),this.interactionService.on(Us.Hover,this.pickFromPickingFBO),this.interactionService.on(Us.Select,this.selectFeatureHandle.bind(this)),this.interactionService.on(Us.Active,this.highlightFeatureHandle.bind(this))}render(t){if(this.alreadyInRendering)return;const{getViewportSize:r,useFramebuffer:i,clear:s}=this.rendererService,{width:u,height:n}=r();this.alreadyInRendering=!0,(this.width!==u||this.height!==n)&&(this.pickingFBO.resize({width:u,height:n}),this.width=u,this.height=n),i(this.pickingFBO,()=>{s({framebuffer:this.pickingFBO,color:[0,0,0,0],stencil:0,depth:1});const y=this.layer.multiPassRenderer.getRenderFlag();this.layer.multiPassRenderer.setRenderFlag(!1),t.hooks.beforePickingEncode.call(),t.render(),t.hooks.afterPickingEncode.call(),this.layer.multiPassRenderer.setRenderFlag(y),this.alreadyInRendering=!1})}triggerHoverOnLayer(t){this.layer.emit(t.type,t)}highlightPickedFeature(t){const[r,i,s]=t;this.layer.hooks.beforeHighlight.call([r,i,s]),this.layerService.renderLayers()}selectFeature(t){const[r,i,s]=t;this.layer.hooks.beforeSelect.call([r,i,s]),this.layerService.renderLayers()}selectFeatureHandle({featureId:t}){const r=L0(t);this.selectFeature(new Uint8Array(r))}highlightFeatureHandle({featureId:t}){const r=L0(t);this.highlightPickedFeature(new Uint8Array(r))}}class LF{constructor(t){H(this,"passes",[]),H(this,"readFBO",void 0),H(this,"writeFBO",void 0),this.rendererService=t,this.init()}getReadFBO(){return this.readFBO}getWriteFBO(){return this.writeFBO}getCurrentFBOTex(){const{getViewportSize:t,createTexture2D:r}=this.rendererService,{width:i,height:s}=t();return r({x:0,y:0,width:i,height:s,copy:!0})}getReadFBOTex(){var t=this;const{useFramebuffer:r}=this.rendererService;return new Promise(i=>{r(this.readFBO,mt(function*(){i(t.getCurrentFBOTex())}))})}renderBloomPass(t,r){var i=this;return mt(function*(){const s=yield i.getReadFBOTex();let u=0;for(;u<4;)yield r.render(t,s),i.swap(),u++})()}render(t){var r=this;return mt(function*(){for(let i=0;i<r.passes.length;i++){const s=r.passes[i];s.setRenderToScreen(r.isLastEnabledPass(i)),s.getName()==="bloom"?yield r.renderBloomPass(t,s):(yield s.render(t),i!==r.passes.length-1&&r.swap())}})()}resize(t,r){this.readFBO.resize({width:t,height:r}),this.writeFBO.resize({width:t,height:r})}add(t,r,i){t.init(r,i),this.passes.push(t)}insert(t,r,i,s){t.init(i,s),this.passes.splice(r,0,t)}getPostProcessingPassByName(t){return this.passes.find(r=>r.getName()===t)}init(){const{createFramebuffer:t,createTexture2D:r}=this.rendererService;this.readFBO=t({color:r({width:1,height:1,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,usage:f1.RENDER_TARGET})}),this.writeFBO=t({color:r({width:1,height:1,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,usage:f1.RENDER_TARGET})})}isLastEnabledPass(t){for(let r=t+1;r<this.passes.length;r++)if(this.passes[r].isEnabled())return!1;return!0}swap(){const t=this.readFBO;this.readFBO=this.writeFBO,this.writeFBO=t}}class BF extends F6{getType(){return Ny.Normal}getName(){return"render"}init(t,r){super.init(t,r)}render(t){const{useFramebuffer:r,clear:i}=this.rendererService,s=t.multiPassRenderer.getPostProcessor().getReadFBO();r(s,()=>{i({color:[0,0,0,0],depth:1,stencil:0,framebuffer:s}),t.multiPassRenderer.setRenderFlag(!1),t.models.forEach(u=>{u.draw({uniforms:t.layerModel.getUninforms()})}),t.multiPassRenderer.setRenderFlag(!0)})}}const UF=`varying vec2 v_UV;
- uniform float u_BloomFinal: 0.0;
- uniform sampler2D u_Texture;
- uniform sampler2D u_Texture2;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform float u_radius: 5.0;
- uniform float u_intensity: 0.3;
- uniform float u_baseRadio: 0.5;
- // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl
- vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
- vec4 color = vec4(0.0);
- vec2 off1 = vec2(1.3846153846) * direction;
- vec2 off2 = vec2(3.2307692308) * direction;
- color += texture2D(image, uv) * 0.2270270270;
- color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
- color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
- return color;
- }
- float luminance(vec4 color) {
- return 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b;
- }
- void main() {
- // vec4 baseColor = texture2D(u_Texture, v_UV);
- float r = sqrt(u_radius);
- vec4 c1 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(u_radius, 0.0));
- // c1 *= luminance(c1);
- vec4 c2 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(0.0, u_radius));
- // c2 *= luminance(c2);
- vec4 c3 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(r, r));
- // c3 *= luminance(c3);
- vec4 c4 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(r, -r));
- // c4 *= luminance(c4);
- vec4 inbloomColor = (c1 + c2 + c3 + c4) * 0.25;
- // float lum = luminance(inbloomColor);
- // inbloomColor.rgb *= lum;
- if(u_BloomFinal > 0.0) {
- vec4 baseColor = texture2D(u_Texture2, v_UV);
- float baselum = luminance(baseColor);
- gl_FragColor = mix(inbloomColor, baseColor, u_baseRadio);
- if(baselum <= 0.2) {
- gl_FragColor = inbloomColor * u_intensity;
- }
- } else {
- gl_FragColor = inbloomColor;
- }
- }`,kF=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`,{isNil:jm}=Qn;class zF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:kF,fs:UF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return jm(t.bloomRadius)||(r.u_radius=t.bloomRadius),jm(t.bloomIntensity)||(r.u_intensity=t.bloomIntensity),jm(t.bloomBaseRadio)||(r.u_baseRadio=t.bloomBaseRadio),r}}const VF=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform vec2 u_BlurDir: [1.0, 0.0];
- // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl
- vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
- vec4 color = vec4(0.0);
- vec2 off1 = vec2(1.3846153846) * direction;
- vec2 off2 = vec2(3.2307692308) * direction;
- color += texture2D(image, uv) * 0.2270270270;
- color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
- color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
- return color;
- }
- void main() {
- gl_FragColor = blur9(u_Texture, v_UV, u_ViewportSize, u_BlurDir);
- }`,HF=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`,{isNil:GF}=Qn;class jF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:HF,fs:VF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return GF(t.blurRadius)||(r.u_BlurDir=[t.blurRadius,0]),r}}const WF=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform vec2 u_BlurDir: [1.0, 0.0];
- // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl
- vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
- vec4 color = vec4(0.0);
- vec2 off1 = vec2(1.3846153846) * direction;
- vec2 off2 = vec2(3.2307692308) * direction;
- color += texture2D(image, uv) * 0.2270270270;
- color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
- color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
- color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
- return color;
- }
- void main() {
- gl_FragColor = blur9(u_Texture, v_UV, u_ViewportSize, u_BlurDir);
- }`,XF=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`,{isNil:ZF}=Qn;class YF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:XF,fs:WF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return ZF(t.blurRadius)||(r.u_BlurDir=[0,t.blurRadius]),r}}const $F=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform vec2 u_Center : [0.5, 0.5];
- uniform float u_Angle : 0;
- uniform float u_Size : 8;
- #pragma include "common"
- float scale = PI / u_Size;
- float pattern(float u_Angle, vec2 texSize, vec2 texCoord) {
- float s = sin(u_Angle), c = cos(u_Angle);
- vec2 tex = texCoord * texSize - u_Center * texSize;
- vec2 point = vec2(
- c * tex.x - s * tex.y,
- s * tex.x + c * tex.y
- ) * scale;
- return (sin(point.x) * sin(point.y)) * 4.0;
- }
- // https://github.com/evanw/glfx.js/blob/master/src/filters/fun/colorhalftone.js
- vec4 colorHalftone_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
- vec3 cmy = 1.0 - color.rgb;
- float k = min(cmy.x, min(cmy.y, cmy.z));
- cmy = (cmy - k) / (1.0 - k);
- cmy = clamp(
- cmy * 10.0 - 3.0 + vec3(
- pattern(u_Angle + 0.26179, texSize, texCoord),
- pattern(u_Angle + 1.30899, texSize, texCoord),
- pattern(u_Angle, texSize, texCoord)
- ),
- 0.0,
- 1.0
- );
- k = clamp(k * 10.0 - 5.0 + pattern(u_Angle + 0.78539, texSize, texCoord), 0.0, 1.0);
- return vec4(1.0 - cmy - k, color.a);
- }
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- gl_FragColor = colorHalftone_filterColor(gl_FragColor, u_ViewportSize, v_UV);
- }`,qF=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`;class KF extends Nl{setupShaders(){this.shaderModuleService.registerModule("colorhalftone-pass",{vs:qF,fs:$F});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("colorhalftone-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const QF=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- }`,JF=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`;class eT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("copy-pass",{vs:JF,fs:QF}),this.shaderModuleService.getModule("copy-pass")}}const tT=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform vec2 u_Center : [0.5, 0.5];
- uniform float u_Scale : 10;
- // https://github.com/evanw/glfx.js/blob/master/src/filters/fun/hexagonalpixelate.js
- vec4 hexagonalPixelate_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) {
- vec2 tex = (texCoord * texSize - u_Center * texSize) / u_Scale;
- tex.y /= 0.866025404;
- tex.x -= tex.y * 0.5;
- vec2 a;
- if (tex.x + tex.y - floor(tex.x) - floor(tex.y) < 1.0) {
- a = vec2(floor(tex.x), floor(tex.y));
- }
- else a = vec2(ceil(tex.x), ceil(tex.y));
- vec2 b = vec2(ceil(tex.x), floor(tex.y));
- vec2 c = vec2(floor(tex.x), ceil(tex.y));
- vec3 TEX = vec3(tex.x, tex.y, 1.0 - tex.x - tex.y);
- vec3 A = vec3(a.x, a.y, 1.0 - a.x - a.y);
- vec3 B = vec3(b.x, b.y, 1.0 - b.x - b.y);
- vec3 C = vec3(c.x, c.y, 1.0 - c.x - c.y);
- float alen = length(TEX - A);
- float blen = length(TEX - B);
- float clen = length(TEX - C);
- vec2 choice;
- if (alen < blen) {
- if (alen < clen) choice = a;
- else choice = c;
- } else {
- if (blen < clen) choice = b;
- else choice = c;
- }
- choice.x += choice.y * 0.5;
- choice.y *= 0.866025404;
- choice *= u_Scale / texSize;
- return texture2D(texture, choice + u_Center);
- }
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- gl_FragColor = hexagonalPixelate_sampleColor(u_Texture, u_ViewportSize, v_UV);
- }`,rT=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`;class oT extends Nl{setupShaders(){this.shaderModuleService.registerModule("hexagonalpixelate-pass",{vs:rT,fs:tT});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("hexagonalpixelate-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const iT=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform vec2 u_ViewportSize: [1.0, 1.0];
- uniform float u_Strength : 0.6;
- vec4 ink_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) {
- vec2 dx = vec2(1.0 / texSize.x, 0.0);
- vec2 dy = vec2(0.0, 1.0 / texSize.y);
- vec4 color = texture2D(texture, texCoord);
- float bigTotal = 0.0;
- float smallTotal = 0.0;
- vec3 bigAverage = vec3(0.0);
- vec3 smallAverage = vec3(0.0);
- for (float x = -2.0; x <= 2.0; x += 1.0) {
- for (float y = -2.0; y <= 2.0; y += 1.0) {
- vec3 sample = texture2D(texture, texCoord + dx * x + dy * y).rgb;
- bigAverage += sample;
- bigTotal += 1.0;
- if (abs(x) + abs(y) < 2.0) {
- smallAverage += sample;
- smallTotal += 1.0;
- }
- }
- }
- vec3 edge = max(vec3(0.0), bigAverage / bigTotal - smallAverage / smallTotal);
- float power = u_Strength * u_Strength * u_Strength * u_Strength * u_Strength;
- return vec4(color.rgb - dot(edge, edge) * power * 100000.0, color.a);
- }
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- gl_FragColor = ink_sampleColor(u_Texture, u_ViewportSize, v_UV);
- }`,nT=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`;class aT extends Nl{setupShaders(){this.shaderModuleService.registerModule("ink-pass",{vs:nT,fs:iT});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("ink-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const sT=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform float u_Amount : 0.5;
- float rand(vec2 co) {
- return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
- }
- // https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/noise.js
- vec4 noise_filterColor(vec4 color, vec2 texCoord) {
- float diff = (rand(texCoord) - 0.5) * u_Amount;
- color.r += diff;
- color.g += diff;
- color.b += diff;
- return color;
- }
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- gl_FragColor = noise_filterColor(gl_FragColor, v_UV);
- }`,uT=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`;class pT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("noise-pass",{vs:uT,fs:sT}),this.shaderModuleService.getModule("noise-pass")}}const lT=`attribute vec2 a_Position;
- varying vec2 v_UV;
- void main() {
- v_UV = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- }`,cT=`varying vec2 v_UV;
- uniform sampler2D u_Texture;
- uniform float u_Amount : 0.5;
- // https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/sepia.js
- vec4 sepia_filterColor(vec4 color) {
- float r = color.r;
- float g = color.g;
- float b = color.b;
- color.r =
- min(1.0, (r * (1.0 - (0.607 * u_Amount))) + (g * (0.769 * u_Amount)) + (b * (0.189 * u_Amount)));
- color.g = min(1.0, (r * 0.349 * u_Amount) + (g * (1.0 - (0.314 * u_Amount))) + (b * 0.168 * u_Amount));
- color.b = min(1.0, (r * 0.272 * u_Amount) + (g * 0.534 * u_Amount) + (b * (1.0 - (0.869 * u_Amount))));
- return color;
- }
- void main() {
- gl_FragColor = vec4(texture2D(u_Texture, v_UV));
- gl_FragColor = sepia_filterColor(gl_FragColor);
- }`;class dT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("sepia-pass",{vs:lT,fs:cT}),this.shaderModuleService.getModule("sepia-pass")}}const X8=new yA;let yT=0;function hT(){const e=new IF,t=new _A,r=new iA,i=new mA(r),s=new tA,u=new oA,n=new sA,y=new uA,m=new aA,g={id:`${yT++}`,globalConfigService:X8,shaderModuleService:e,debugService:t,cameraService:r,coordinateSystemService:i,fontService:s,iconService:u,markerService:n,popupService:y,controlService:m,customRenderService:{}},x=new TA(g);g.layerService=x;const b=new vF(g);g.sceneService=b;const F=new EA(g);g.interactionService=F;const R=new AA(g);g.pickingService=R;const I={clear:new NF,pixelPicking:new OF,render:new BF};g.normalPassFactory=V=>I[V];const U={copy:new eT,bloom:new zF,blurH:new jF,blurV:new YF,noise:new pT,sepia:new dT,colorHalftone:new KF,hexagonalPixelate:new oT,ink:new aT};return g.postProcessingPass=U,g.postProcessingPassFactory=V=>U[V],g}function ly(e){const t=_t({},e);return t.postProcessor=new LF(t.rendererService),t.multiPassRenderer=new DF(t.postProcessor),t.styleAttributeService=new NA(t.rendererService),t}const Sh=["loaded","fontloaded","maploaded","resize","destroy","dragstart","dragging","dragend","dragcancel"];let Ha=function(e){return e.IMAGE="image",e.CUSTOMIMAGE="customImage",e.ARRAYBUFFER="arraybuffer",e.RGB="rgb",e.TERRAINRGB="terrainRGB",e.CUSTOMRGB="customRGB",e.CUSTOMARRAYBUFFER="customArrayBuffer",e.CUSTOMTERRAINRGB="customTerrainRGB",e}({});var Z8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),fT=(e,t,r,i)=>Z8(void 0,null,function*(){return new Promise((s,u)=>{t({x:e.x,y:e.y,z:e.z},(n,y)=>{if(n||y.length===0){u(n);return}y&&P2([{data:y,bands:[0]}],r,i,(m,g)=>{m?u(m):g&&s(g)})})})}),mT=(e,t)=>Z8(void 0,null,function*(){return new Promise((r,i)=>{t({x:e.x,y:e.y,z:e.z},(s,u)=>{if(s||!u){i(s);return}u instanceof ArrayBuffer?sE(u,(n,y)=>{n&&i(n),r(y)}):u instanceof HTMLImageElement?r(u):i(s)})})});function _T(e,t){return Array.isArray(e)?typeof e[0]=="string"?e.map(r=>R0(r,t)):e.map(r=>({url:R0(r.url,t),bands:r.bands||[0]})):R0(e,t)}function gT(e){return typeof e=="string"?[{url:e,bands:[0]}]:typeof e[0]=="string"?e.map(t=>({url:t,bands:[0]})):e}function n5(e,t){e.xhrCancel=()=>{t.map(r=>{r.abort()})}}var vT=Object.defineProperty,ET=Object.defineProperties,xT=Object.getOwnPropertyDescriptors,a5=Object.getOwnPropertySymbols,PT=Object.prototype.hasOwnProperty,bT=Object.prototype.propertyIsEnumerable,s5=(e,t,r)=>t in e?vT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u5=(e,t)=>{for(var r in t||(t={}))PT.call(t,r)&&s5(e,r,t[r]);if(a5)for(var r of a5(t))bT.call(t,r)&&s5(e,r,t[r]);return e},p5=(e,t)=>ET(e,xT(t)),Y8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),AT=(e,t,r,i,s)=>Y8(void 0,null,function*(){const u=gT(t.url);if(u.length>1){const{rasterFiles:n,xhrList:y,errList:m}=yield FT(u,t);if(n5(e,y),m.length>0){r(m,null);return}P2(n,i,s,r)}else{const n=c6(t,(y,m)=>{if(y)r(y);else if(m){const g=[{data:m,bands:u[0].bands}];P2(g,i,s,r)}});n5(e,[n])}});function FT(e,t){return Y8(this,null,function*(){const r=[],i=[],s=[];for(let u=0;u<e.length;u++){const n=e[u],y=p5(u5({},t),{url:n.url}),m=n.bands,{err:g,data:x,xhr:b}=yield iE(p5(u5({},y),{type:"arrayBuffer"}));g&&s.push(g),i.push(b),r.push({data:x,bands:m})}return{rasterFiles:r,xhrList:i,errList:s}})}var TT=Object.defineProperty,ST=Object.defineProperties,wT=Object.getOwnPropertyDescriptors,l5=Object.getOwnPropertySymbols,RT=Object.prototype.hasOwnProperty,CT=Object.prototype.propertyIsEnumerable,c5=(e,t,r)=>t in e?TT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Yh=(e,t)=>{for(var r in t||(t={}))RT.call(t,r)&&c5(e,r,t[r]);if(l5)for(var r of l5(t))CT.call(t,r)&&c5(e,r,t[r]);return e},$8=(e,t)=>ST(e,wT(t)),q8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),IT=(e,t,r,i)=>q8(void 0,null,function*(){const{format:s=K8,operation:u,requestParameters:n={}}=i,y=$8(Yh({},n),{url:_T(e,t)});return new Promise((m,g)=>{AT(r,y,(x,b)=>{x?g(x):b&&m(b)},s,u)})}),d5=(e,t,r,i)=>q8(void 0,null,function*(){let s;const u=Array.isArray(e)?e[0]:e;return i.wmtsOptions?s=((i==null?void 0:i.getURLFromTemplate)||fx)(u,Yh(Yh({},t),i.wmtsOptions)):s=((i==null?void 0:i.getURLFromTemplate)||R0)(u,t),new Promise((n,y)=>{var m;const g=l2($8(Yh({},i==null?void 0:i.requestParameters),{url:s,type:((m=i==null?void 0:i.requestParameters)==null?void 0:m.type)||"arrayBuffer"}),(x,b)=>{x?y(x):b&&n(b)},i.transformResponse);r.xhrCancel=()=>g.cancel()})}),K8=()=>({rasterData:new Uint8Array([0]),width:1,height:1}),MT=Object.defineProperty,NT=Object.defineProperties,DT=Object.getOwnPropertyDescriptors,y5=Object.getOwnPropertySymbols,OT=Object.prototype.hasOwnProperty,LT=Object.prototype.propertyIsEnumerable,h5=(e,t,r)=>t in e?MT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,f5=(e,t)=>{for(var r in t||(t={}))OT.call(t,r)&&h5(e,r,t[r]);if(y5)for(var r of y5(t))LT.call(t,r)&&h5(e,r,t[r]);return e},BT=(e,t)=>NT(e,DT(t)),UT={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,warp:!0};Ha.ARRAYBUFFER,Ha.RGB;function kT(e){return!!(Array.isArray(e)&&e.length===0||!Array.isArray(e)&&typeof e!="string")}function zT(e,t={}){if(kT(e))throw new Error("tile server url is error");const{extent:r=[1/0,1/0,-1/0,-1/0],coordinates:i}=t;let s=(t==null?void 0:t.dataType)||Ha.IMAGE;s===Ha.RGB&&(s=Ha.ARRAYBUFFER);const u=(m,g)=>{switch(s){case Ha.IMAGE:return d5(e,m,g,t);case Ha.CUSTOMIMAGE:case Ha.CUSTOMTERRAINRGB:return mT(g,t==null?void 0:t.getCustomData);case Ha.ARRAYBUFFER:return IT(e,m,g,t);case Ha.CUSTOMARRAYBUFFER:case Ha.CUSTOMRGB:return fT(g,t==null?void 0:t.getCustomData,(t==null?void 0:t.format)||K8,t==null?void 0:t.operation);default:return d5(e,m,g,t)}},n=BT(f5(f5({},UT),t),{getTileData:u}),y=Y0(i,r);return{data:e,dataArray:[{_id:1,coordinates:y}],tilesetOptions:n,isTile:!0}}var VT=Object.defineProperty,HT=Object.defineProperties,GT=Object.getOwnPropertyDescriptors,ff=Object.getOwnPropertySymbols,Q8=Object.prototype.hasOwnProperty,J8=Object.prototype.propertyIsEnumerable,m5=(e,t,r)=>t in e?VT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jT=(e,t)=>{for(var r in t||(t={}))Q8.call(t,r)&&m5(e,r,t[r]);if(ff)for(var r of ff(t))J8.call(t,r)&&m5(e,r,t[r]);return e},WT=(e,t)=>HT(e,GT(t)),XT=(e,t)=>{var r={};for(var i in e)Q8.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&ff)for(var i of ff(e))t.indexOf(i)<0&&J8.call(e,i)&&(r[i]=e[i]);return r};function ZT(e,t){const r=t,{extent:i=[121.168,30.2828,121.384,30.4219],coordinates:s,width:u,height:n}=r,y=XT(r,["extent","coordinates","width","height"]);e.length<2&&console.warn("RGB解析需要2个波段的数据");const[m,g]=y.bands||[0,1],x=[e[m],e[g]],b=[];for(let I=0;I<x[0].length;I++)b.push((x[1][I]-x[0][I])/(x[1][I]+x[0][I]));const F=Y0(s,i);return{_id:1,dataArray:[WT(jT({_id:1,data:b,width:u,height:n},y),{coordinates:F})]}}var YT=Object.defineProperty,$T=Object.defineProperties,qT=Object.getOwnPropertyDescriptors,mf=Object.getOwnPropertySymbols,e9=Object.prototype.hasOwnProperty,t9=Object.prototype.propertyIsEnumerable,_5=(e,t,r)=>t in e?YT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,KT=(e,t)=>{for(var r in t||(t={}))e9.call(t,r)&&_5(e,r,t[r]);if(mf)for(var r of mf(t))t9.call(t,r)&&_5(e,r,t[r]);return e},QT=(e,t)=>$T(e,qT(t)),JT=(e,t)=>{var r={};for(var i in e)e9.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&mf)for(var i of mf(e))t.indexOf(i)<0&&t9.call(e,i)&&(r[i]=e[i]);return r};function eS(e,t){const r=t,{extent:i,coordinates:s,width:u,height:n}=r,y=JT(r,["extent","coordinates","width","height"]);e.length<3&&console.warn("RGB解析需要三个波段的数据");const[m,g,x]=y.bands||[0,1,2],b=[e[m],e[g],e[x]],F=[],[R,I]=(y==null?void 0:y.countCut)||[2,98],U=(y==null?void 0:y.RMinMax)||I0(b[0],R,I),V=(y==null?void 0:y.GMinMax)||I0(b[1],R,I),J=(y==null?void 0:y.BMinMax)||I0(b[2],R,I);for(let ne=0;ne<b[0].length;ne++)F.push(Math.max(0,b[0][ne]-U[0])),F.push(Math.max(0,b[1][ne]-V[0])),F.push(Math.max(0,b[2][ne]-J[0]));const Q=Y0(s,i);return{_id:1,dataArray:[QT(KT({_id:1,data:F,width:u,height:n,rMinMax:U,gMinMax:V,bMinMax:J},y),{coordinates:Q})]}}var tS=Object.defineProperty,rS=Object.defineProperties,oS=Object.getOwnPropertyDescriptors,_f=Object.getOwnPropertySymbols,r9=Object.prototype.hasOwnProperty,o9=Object.prototype.propertyIsEnumerable,g5=(e,t,r)=>t in e?tS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,iS=(e,t)=>{for(var r in t||(t={}))r9.call(t,r)&&g5(e,r,t[r]);if(_f)for(var r of _f(t))o9.call(t,r)&&g5(e,r,t[r]);return e},nS=(e,t)=>rS(e,oS(t)),aS=(e,t)=>{var r={};for(var i in e)r9.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&_f)for(var i of _f(e))t.indexOf(i)<0&&o9.call(e,i)&&(r[i]=e[i]);return r};function sS(e,t){const r=t,{extent:i,coordinates:s,min:u,max:n,width:y,height:m,format:g,operation:x}=r,b=aS(r,["extent","coordinates","min","max","width","height","format","operation"]);let F;if(g===void 0||_8(e))F=Array.from(e);else{const U=Array.isArray(e)?e:[e];F=E6(U,g,x)}const R=Y0(s,i);return{_id:1,dataArray:[nS(iS({_id:1,data:F,width:y,height:m},b),{min:u,max:n,coordinates:R})]}}var uS=Object.defineProperty,pS=Object.defineProperties,lS=Object.getOwnPropertyDescriptors,v5=Object.getOwnPropertySymbols,cS=Object.prototype.hasOwnProperty,dS=Object.prototype.propertyIsEnumerable,E5=(e,t,r)=>t in e?uS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x5=(e,t)=>{for(var r in t||(t={}))cS.call(t,r)&&E5(e,r,t[r]);if(v5)for(var r of v5(t))dS.call(t,r)&&E5(e,r,t[r]);return e},yS=(e,t)=>pS(e,lS(t)),hS=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),fS={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0},mS=e=>hS(void 0,null,function*(){return new Promise(t=>{const[r,i,s,u]=e.bounds,n={layers:{testTile:{features:[{type:"Feature",properties:{key:e.x+"/"+e.y+"/"+e.z,x:(r+s)/2,y:(i+u)/2},geometry:{type:"LineString",coordinates:[[s,u],[s,i],[r,i],[r,i]]}}]}}};t(n)})});function _S(e,t){const r=s=>mS(s),i=yS(x5(x5({},fS),t),{getTileData:r});return{data:e,dataArray:[],tilesetOptions:i,isTile:!0}}var i9={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){function r(Ge,Ae,Be,ze,st,Vt){if(!(st-ze<=Be)){var ir=ze+st>>1;i(Ge,Ae,ir,ze,st,Vt%2),r(Ge,Ae,Be,ze,ir-1,Vt+1),r(Ge,Ae,Be,ir+1,st,Vt+1)}}function i(Ge,Ae,Be,ze,st,Vt){for(;st>ze;){if(st-ze>600){var ir=st-ze+1,Fr=Be-ze+1,Yr=Math.log(ir),mr=.5*Math.exp(2*Yr/3),Er=.5*Math.sqrt(Yr*mr*(ir-mr)/ir)*(Fr-ir/2<0?-1:1),qr=Math.max(ze,Math.floor(Be-Fr*mr/ir+Er)),Jr=Math.min(st,Math.floor(Be+(ir-Fr)*mr/ir+Er));i(Ge,Ae,Be,qr,Jr,Vt)}var _o=Ae[2*Be+Vt],So=ze,oo=st;for(s(Ge,Ae,ze,Be),Ae[2*st+Vt]>_o&&s(Ge,Ae,ze,st);So<oo;){for(s(Ge,Ae,So,oo),So++,oo--;Ae[2*So+Vt]<_o;)So++;for(;Ae[2*oo+Vt]>_o;)oo--}Ae[2*ze+Vt]===_o?s(Ge,Ae,ze,oo):(oo++,s(Ge,Ae,oo,st)),oo<=Be&&(ze=oo+1),Be<=oo&&(st=oo-1)}}function s(Ge,Ae,Be,ze){u(Ge,Be,ze),u(Ae,2*Be,2*ze),u(Ae,2*Be+1,2*ze+1)}function u(Ge,Ae,Be){var ze=Ge[Ae];Ge[Ae]=Ge[Be],Ge[Be]=ze}function n(Ge,Ae,Be,ze,st,Vt,ir){for(var Fr=[0,Ge.length-1,0],Yr=[],mr,Er;Fr.length;){var qr=Fr.pop(),Jr=Fr.pop(),_o=Fr.pop();if(Jr-_o<=ir){for(var So=_o;So<=Jr;So++)mr=Ae[2*So],Er=Ae[2*So+1],mr>=Be&&mr<=st&&Er>=ze&&Er<=Vt&&Yr.push(Ge[So]);continue}var oo=Math.floor((_o+Jr)/2);mr=Ae[2*oo],Er=Ae[2*oo+1],mr>=Be&&mr<=st&&Er>=ze&&Er<=Vt&&Yr.push(Ge[oo]);var Wi=(qr+1)%2;(qr===0?Be<=mr:ze<=Er)&&(Fr.push(_o),Fr.push(oo-1),Fr.push(Wi)),(qr===0?st>=mr:Vt>=Er)&&(Fr.push(oo+1),Fr.push(Jr),Fr.push(Wi))}return Yr}function y(Ge,Ae,Be,ze,st,Vt){for(var ir=[0,Ge.length-1,0],Fr=[],Yr=st*st;ir.length;){var mr=ir.pop(),Er=ir.pop(),qr=ir.pop();if(Er-qr<=Vt){for(var Jr=qr;Jr<=Er;Jr++)m(Ae[2*Jr],Ae[2*Jr+1],Be,ze)<=Yr&&Fr.push(Ge[Jr]);continue}var _o=Math.floor((qr+Er)/2),So=Ae[2*_o],oo=Ae[2*_o+1];m(So,oo,Be,ze)<=Yr&&Fr.push(Ge[_o]);var Wi=(mr+1)%2;(mr===0?Be-st<=So:ze-st<=oo)&&(ir.push(qr),ir.push(_o-1),ir.push(Wi)),(mr===0?Be+st>=So:ze+st>=oo)&&(ir.push(_o+1),ir.push(Er),ir.push(Wi))}return Fr}function m(Ge,Ae,Be,ze){var st=Ge-Be,Vt=Ae-ze;return st*st+Vt*Vt}var g=function(Ge){return Ge[0]},x=function(Ge){return Ge[1]},b=function(Ae,Be,ze,st,Vt){Be===void 0&&(Be=g),ze===void 0&&(ze=x),st===void 0&&(st=64),Vt===void 0&&(Vt=Float64Array),this.nodeSize=st,this.points=Ae;for(var ir=Ae.length<65536?Uint16Array:Uint32Array,Fr=this.ids=new ir(Ae.length),Yr=this.coords=new Vt(Ae.length*2),mr=0;mr<Ae.length;mr++)Fr[mr]=mr,Yr[2*mr]=Be(Ae[mr]),Yr[2*mr+1]=ze(Ae[mr]);r(Fr,Yr,st,0,Fr.length-1,0)};b.prototype.range=function(Ae,Be,ze,st){return n(this.ids,this.coords,Ae,Be,ze,st,this.nodeSize)},b.prototype.within=function(Ae,Be,ze){return y(this.ids,this.coords,Ae,Be,ze,this.nodeSize)};var F={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(Ge){return Ge}},R=Math.fround||function(Ge){return function(Ae){return Ge[0]=+Ae,Ge[0]}}(new Float32Array(1)),I=function(Ae){this.options=Ee(Object.create(F),Ae),this.trees=new Array(this.options.maxZoom+1)};I.prototype.load=function(Ae){var Be=this.options,ze=Be.log,st=Be.minZoom,Vt=Be.maxZoom,ir=Be.nodeSize;ze&&console.time("total time");var Fr="prepare "+Ae.length+" points";ze&&console.time(Fr),this.points=Ae;for(var Yr=[],mr=0;mr<Ae.length;mr++)Ae[mr].geometry&&Yr.push(V(Ae[mr],mr));this.trees[Vt+1]=new b(Yr,He,ft,ir,Float32Array),ze&&console.timeEnd(Fr);for(var Er=Vt;Er>=st;Er--){var qr=+Date.now();Yr=this._cluster(Yr,Er),this.trees[Er]=new b(Yr,He,ft,ir,Float32Array),ze&&console.log("z%d: %d clusters in %dms",Er,Yr.length,+Date.now()-qr)}return ze&&console.timeEnd("total time"),this},I.prototype.getClusters=function(Ae,Be){var ze=((Ae[0]+180)%360+360)%360-180,st=Math.max(-90,Math.min(90,Ae[1])),Vt=Ae[2]===180?180:((Ae[2]+180)%360+360)%360-180,ir=Math.max(-90,Math.min(90,Ae[3]));if(Ae[2]-Ae[0]>=360)ze=-180,Vt=180;else if(ze>Vt){var Fr=this.getClusters([ze,st,180,ir],Be),Yr=this.getClusters([-180,st,Vt,ir],Be);return Fr.concat(Yr)}for(var mr=this.trees[this._limitZoom(Be)],Er=mr.range(te(ze),ne(ir),te(Vt),ne(st)),qr=[],Jr=0,_o=Er;Jr<_o.length;Jr+=1){var So=_o[Jr],oo=mr.points[So];qr.push(oo.numPoints?J(oo):this.points[oo.index])}return qr},I.prototype.getChildren=function(Ae){var Be=this._getOriginId(Ae),ze=this._getOriginZoom(Ae),st="No cluster with the specified id.",Vt=this.trees[ze];if(!Vt)throw new Error(st);var ir=Vt.points[Be];if(!ir)throw new Error(st);for(var Fr=this.options.radius/(this.options.extent*Math.pow(2,ze-1)),Yr=Vt.within(ir.x,ir.y,Fr),mr=[],Er=0,qr=Yr;Er<qr.length;Er+=1){var Jr=qr[Er],_o=Vt.points[Jr];_o.parentId===Ae&&mr.push(_o.numPoints?J(_o):this.points[_o.index])}if(mr.length===0)throw new Error(st);return mr},I.prototype.getLeaves=function(Ae,Be,ze){Be=Be||10,ze=ze||0;var st=[];return this._appendLeaves(st,Ae,Be,ze,0),st},I.prototype.getTile=function(Ae,Be,ze){var st=this.trees[this._limitZoom(Ae)],Vt=Math.pow(2,Ae),ir=this.options,Fr=ir.extent,Yr=ir.radius,mr=Yr/Fr,Er=(ze-mr)/Vt,qr=(ze+1+mr)/Vt,Jr={features:[]};return this._addTileFeatures(st.range((Be-mr)/Vt,Er,(Be+1+mr)/Vt,qr),st.points,Be,ze,Vt,Jr),Be===0&&this._addTileFeatures(st.range(1-mr/Vt,Er,1,qr),st.points,Vt,ze,Vt,Jr),Be===Vt-1&&this._addTileFeatures(st.range(0,Er,mr/Vt,qr),st.points,-1,ze,Vt,Jr),Jr.features.length?Jr:null},I.prototype.getClusterExpansionZoom=function(Ae){for(var Be=this._getOriginZoom(Ae)-1;Be<=this.options.maxZoom;){var ze=this.getChildren(Ae);if(Be++,ze.length!==1)break;Ae=ze[0].properties.cluster_id}return Be},I.prototype._appendLeaves=function(Ae,Be,ze,st,Vt){for(var ir=this.getChildren(Be),Fr=0,Yr=ir;Fr<Yr.length;Fr+=1){var mr=Yr[Fr],Er=mr.properties;if(Er&&Er.cluster?Vt+Er.point_count<=st?Vt+=Er.point_count:Vt=this._appendLeaves(Ae,Er.cluster_id,ze,st,Vt):Vt<st?Vt++:Ae.push(mr),Ae.length===ze)break}return Vt},I.prototype._addTileFeatures=function(Ae,Be,ze,st,Vt,ir){for(var Fr=0,Yr=Ae;Fr<Yr.length;Fr+=1){var mr=Yr[Fr],Er=Be[mr],qr=Er.numPoints,Jr=void 0,_o=void 0,So=void 0;if(qr)Jr=Q(Er),_o=Er.x,So=Er.y;else{var oo=this.points[Er.index];Jr=oo.properties,_o=te(oo.geometry.coordinates[0]),So=ne(oo.geometry.coordinates[1])}var Wi={type:1,geometry:[[Math.round(this.options.extent*(_o*Vt-ze)),Math.round(this.options.extent*(So*Vt-st))]],tags:Jr},bo=void 0;qr?bo=Er.id:this.options.generateId?bo=Er.index:this.points[Er.index].id&&(bo=this.points[Er.index].id),bo!==void 0&&(Wi.id=bo),ir.features.push(Wi)}},I.prototype._limitZoom=function(Ae){return Math.max(this.options.minZoom,Math.min(Math.floor(+Ae),this.options.maxZoom+1))},I.prototype._cluster=function(Ae,Be){for(var ze=[],st=this.options,Vt=st.radius,ir=st.extent,Fr=st.reduce,Yr=st.minPoints,mr=Vt/(ir*Math.pow(2,Be)),Er=0;Er<Ae.length;Er++){var qr=Ae[Er];if(!(qr.zoom<=Be)){qr.zoom=Be;for(var Jr=this.trees[Be+1],_o=Jr.within(qr.x,qr.y,mr),So=qr.numPoints||1,oo=So,Wi=0,bo=_o;Wi<bo.length;Wi+=1){var Ni=bo[Wi],$e=Jr.points[Ni];$e.zoom>Be&&(oo+=$e.numPoints||1)}if(oo>So&&oo>=Yr){for(var Yt=qr.x*So,Sr=qr.y*So,Ft=Fr&&So>1?this._map(qr,!0):null,xr=(Er<<5)+(Be+1)+this.points.length,io=0,go=_o;io<go.length;io+=1){var to=go[io],Kr=Jr.points[to];if(!(Kr.zoom<=Be)){Kr.zoom=Be;var Ao=Kr.numPoints||1;Yt+=Kr.x*Ao,Sr+=Kr.y*Ao,Kr.parentId=xr,Fr&&(Ft||(Ft=this._map(qr,!0)),Fr(Ft,this._map(Kr)))}}qr.parentId=xr,ze.push(U(Yt/oo,Sr/oo,xr,oo,Ft))}else if(ze.push(qr),oo>1)for(var $i=0,Qo=_o;$i<Qo.length;$i+=1){var ti=Qo[$i],Pn=Jr.points[ti];Pn.zoom<=Be||(Pn.zoom=Be,ze.push(Pn))}}}return ze},I.prototype._getOriginId=function(Ae){return Ae-this.points.length>>5},I.prototype._getOriginZoom=function(Ae){return(Ae-this.points.length)%32},I.prototype._map=function(Ae,Be){if(Ae.numPoints)return Be?Ee({},Ae.properties):Ae.properties;var ze=this.points[Ae.index].properties,st=this.options.map(ze);return Be&&st===ze?Ee({},st):st};function U(Ge,Ae,Be,ze,st){return{x:R(Ge),y:R(Ae),zoom:1/0,id:Be,parentId:-1,numPoints:ze,properties:st}}function V(Ge,Ae){var Be=Ge.geometry.coordinates,ze=Be[0],st=Be[1];return{x:R(te(ze)),y:R(ne(st)),zoom:1/0,index:Ae,parentId:-1}}function J(Ge){return{type:"Feature",id:Ge.id,properties:Q(Ge),geometry:{type:"Point",coordinates:[pe(Ge.x),Oe(Ge.y)]}}}function Q(Ge){var Ae=Ge.numPoints,Be=Ae>=1e4?Math.round(Ae/1e3)+"k":Ae>=1e3?Math.round(Ae/100)/10+"k":Ae;return Ee(Ee({},Ge.properties),{cluster:!0,cluster_id:Ge.id,point_count:Ae,point_count_abbreviated:Be})}function te(Ge){return Ge/360+.5}function ne(Ge){var Ae=Math.sin(Ge*Math.PI/180),Be=.5-.25*Math.log((1+Ae)/(1-Ae))/Math.PI;return Be<0?0:Be>1?1:Be}function pe(Ge){return(Ge-.5)*360}function Oe(Ge){var Ae=(180-Ge*360)*Math.PI/180;return 360*Math.atan(Math.exp(Ae))/Math.PI-90}function Ee(Ge,Ae){for(var Be in Ae)Ge[Be]=Ae[Be];return Ge}function He(Ge){return Ge.x}function ft(Ge){return Ge.y}return I})})(i9);var gS=i9.exports;const vS=_p(gS);var ES=Object.defineProperty,P5=Object.getOwnPropertySymbols,xS=Object.prototype.hasOwnProperty,PS=Object.prototype.propertyIsEnumerable,b5=(e,t,r)=>t in e?ES(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,n9=(e,t)=>{for(var r in t||(t={}))xS.call(t,r)&&b5(e,r,t[r]);if(P5)for(var r of P5(t))PS.call(t,r)&&b5(e,r,t[r]);return e};function a9(e,t){const{radius:r=40,maxZoom:i=18,minZoom:s=0,zoom:u=2}=t;if(e.pointIndex){const m=e.pointIndex.getClusters(e.extent,Math.floor(u));return e.dataArray=bS(m),e}const n=new vS({radius:r,minZoom:s,maxZoom:i}),y={features:[]};return y.features=e.dataArray.map(m=>({type:"Feature",geometry:{type:"Point",coordinates:m.coordinates},properties:n9({},m)})),n.load(y.features),n}function bS(e){return e.map((t,r)=>n9({coordinates:t.geometry.coordinates,_id:r+1},t.properties))}function AS(e){if(e.length===0)throw new Error("max requires at least one data point");let t=e[0];for(let r=1;r<e.length;r++)e[r]>t&&(t=e[r]);return t}function FS(e){if(e.length===0)throw new Error("min requires at least one data point");let t=e[0];for(let r=1;r<e.length;r++)e[r]<t&&(t=e[r]);return t}function s9(e){if(e.length===0)return 0;let t=e[0],r=0,i;for(let s=1;s<e.length;s++)i=t+e[s]*1,Math.abs(t)>=Math.abs(e[s])?r+=t-i+e[s]:r+=e[s]-i+t,t=i;return t+r*1}function TS(e){if(e.length===0)throw new Error("mean requires at least one data point");return s9(e)/e.length}var SS={min:FS,max:AS,mean:TS,sum:s9},wS=Object.defineProperty,A5=Object.getOwnPropertySymbols,RS=Object.prototype.hasOwnProperty,CS=Object.prototype.propertyIsEnumerable,F5=(e,t,r)=>t in e?wS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Id=(e,t)=>{for(var r in t||(t={}))RS.call(t,r)&&F5(e,r,t[r]);if(A5)for(var r of A5(t))CS.call(t,r)&&F5(e,r,t[r]);return e},T5=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),{cloneDeep:IS,isFunction:S5,isString:MS,mergeWith:NS}=Qn;function DS(e,t){if(Array.isArray(t))return t}var OS=class extends du.EventEmitter{constructor(e,t){super(),this.type="source",this.isTile=!1,this.inited=!1,this.hooks={init:new Wp},this.parser={type:"geojson"},this.transforms=[],this.cluster=!1,this.clusterOptions={enable:!1,radius:40,maxZoom:20,zoom:-99,method:"count"},this.invalidExtent=!1,this.dataArrayChanged=!1,this.cfg={autoRender:!0},this.originData=e,this.initCfg(t),this.init().then(()=>{this.inited=!0,this.emit("update",{type:"inited"})})}getSourceCfg(){return this.cfg}getClusters(e){return this.clusterIndex.getClusters(this.caculClusterExtent(2),e)}getClustersLeaves(e){return this.clusterIndex.getLeaves(e,1/0)}getParserType(){return this.parser.type}updateClusterData(e){const{method:t="sum",field:r}=this.clusterOptions;let i=this.clusterIndex.getClusters(this.caculClusterExtent(2),Math.floor(e));this.clusterOptions.zoom=e,i.forEach(s=>{s.id||(s.properties.point_count=1)}),(r||S5(t))&&(i=i.map(s=>{const u=s.id;if(u){const y=this.clusterIndex.getLeaves(u,1/0).map(g=>g.properties);let m;if(MS(t)&&r){const g=gx(y,r);m=SS[t](g)}S5(t)&&(m=t(y)),s.properties.stat=m}else s.properties.point_count=1;return s})),this.data=N3("geojson")({type:"FeatureCollection",features:i}),this.executeTrans()}getFeatureById(e){const{type:t="geojson",geometry:r}=this.parser;if(t==="geojson"&&!this.cluster){const i=e<this.originData.features.length?this.originData.features[e]:"null",s=IS(i);if(s!=null&&s.properties&&(this.transforms.length!==0||this.dataArrayChanged)){const u=this.data.dataArray.find(n=>n._id===e);s.properties=u}return s}else return t==="json"&&r?this.data.dataArray.find(i=>i._id===e):e<this.data.dataArray.length?this.data.dataArray[e]:"null"}updateFeaturePropertiesById(e,t){this.data.dataArray=this.data.dataArray.map(r=>r._id===e?Id(Id({},r),t):r),this.dataArrayChanged=!0,this.emit("update",{type:"update"})}getFeatureId(e,t){const r=this.data.dataArray.find(i=>i[e]===t);return r==null?void 0:r._id}setData(e,t){this.originData=e,this.dataArrayChanged=!1,this.initCfg(t),this.init().then(()=>{this.emit("update",{type:"update"})})}reloadAllTile(){var e;(e=this.tileset)==null||e.reloadAll()}reloadTilebyId(e,t,r){var i;(i=this.tileset)==null||i.reloadTileById(e,t,r)}reloadTileByLnglat(e,t,r){var i;(i=this.tileset)==null||i.reloadTileByLnglat(e,t,r)}getTileExtent(e,t){var r;return(r=this.tileset)==null?void 0:r.getTileExtent(e,t)}getTileByZXY(e,t,r){var i;return(i=this.tileset)==null?void 0:i.getTileByZXY(e,t,r)}reloadTileByExtent(e,t){var r;(r=this.tileset)==null||r.reloadTileByExtent(e,t)}destroy(){var e;this.removeAllListeners(),this.originData=null,this.clusterIndex=null,this.data=null,(e=this.tileset)==null||e.destroy()}processData(){return T5(this,null,function*(){return new Promise((e,t)=>{try{this.excuteParser(),this.initCluster(),this.executeTrans(),e({})}catch(r){t(r)}})})}initCfg(e){this.cfg=NS(this.cfg,e,DS);const t=this.cfg;t&&(t.parser&&(this.parser=t.parser),t.transforms&&(this.transforms=t.transforms),this.cluster=t.cluster||!1,t.clusterOptions&&(this.cluster=!0,this.clusterOptions=Id(Id({},this.clusterOptions),t.clusterOptions)))}init(){return T5(this,null,function*(){this.inited=!1,yield this.processData(),this.inited=!0})}excuteParser(){const e=this.parser,t=e.type||"geojson",r=N3(t);this.data=r(this.originData,e),this.tileset=this.initTileset(),!e.cancelExtent&&(this.extent=NE(this.data.dataArray),this.setCenter(this.extent),this.invalidExtent=this.extent[0]===this.extent[2]||this.extent[1]===this.extent[3])}setCenter(e){this.center=[(e[0]+e[2])/2,(e[1]+e[3])/2],(isNaN(this.center[0])||isNaN(this.center[1]))&&(this.center=[108.92361111111111,34.54083333333333])}initTileset(){const{tilesetOptions:e}=this.data;return e?(this.isTile=!0,this.tileset?(this.tileset.updateOptions(e),this.tileset):new hx(Id({},e))):void 0}executeTrans(){this.transforms.forEach(t=>{const{type:r}=t,i=Vv(r)(this.data,t);Object.assign(this.data,i)})}initCluster(){if(!this.cluster)return;const e=this.clusterOptions||{};this.clusterIndex=a9(this.data,e)}caculClusterExtent(e){let t=[[-1/0,-1/0],[1/0,1/0]];return this.invalidExtent||(t=m6(pf(this.extent),e)),t[0].concat(t[1])}};function LS(e,t){const{callback:r}=t;return r&&(e.dataArray=e.dataArray.filter(r)),e}var T6=6378e3;function BS(e,t){const r=e.dataArray,{size:i=10}=t,s=i/(2*Math.PI*T6)*(256<<20)/2,{gridHash:u,gridOffset:n}=US(r,i),y=HS(u,n,t);return{yOffset:s,xOffset:s,radius:s,type:"grid",dataArray:y}}function US(e,t){let r=1/0,i=-1/0,s;for(const m of e)s=m.coordinates[1],Number.isFinite(s)&&(r=s<r?s:r,i=s>i?s:i);const u=(r+i)/2,n=kS(t,u);if(n.xOffset<=0||n.yOffset<=0)return{gridHash:{},gridOffset:n};const y={};for(const m of e){const g=m.coordinates[1],x=m.coordinates[0];if(Number.isFinite(g)&&Number.isFinite(x)){const b=Math.floor((g+90)/n.yOffset),F=Math.floor((x+180)/n.xOffset),R=`${b}-${F}`;y[R]=y[R]||{count:0,points:[]},y[R].count+=1,y[R].points.push(m)}}return{gridHash:y,gridOffset:n}}function kS(e,t){const r=zS(e),i=VS(t,e);return{yOffset:r,xOffset:i}}function zS(e){return e/T6*(180/Math.PI)}function VS(e,t){return t/T6*(180/Math.PI)/Math.cos(e*Math.PI/180)}function HS(e,t,r){return Object.keys(e).reduce((i,s,u)=>{const n=s.split("-"),y=parseInt(n[0],10),m=parseInt(n[1],10),g={};if(r.field&&r.method){const x=l8(e[s].points,r.field);g[r.method]=p8[r.method](x)}return Object.assign(g,{_id:u,coordinates:Gu([-180+t.xOffset*(m+.5),-90+t.yOffset*(y+.5)]),rawData:e[s].points,count:e[s].count}),i.push(g),i},[])}var v0=Math.PI/3,GS=[0,v0,2*v0,3*v0,4*v0,5*v0];function jS(e){return e[0]}function WS(e){return e[1]}function XS(){var e=0,t=0,r=1,i=1,s=jS,u=WS,n,y,m;function g(b){var F={},R=[],I,U=b.length;for(I=0;I<U;++I)if(!(isNaN(J=+s.call(null,V=b[I],I,b))||isNaN(Q=+u.call(null,V,I,b)))){var V,J,Q,te=Math.round(Q=Q/m),ne=Math.round(J=J/y-(te&1)/2),pe=Q-te;if(Math.abs(pe)*3>1){var Oe=J-ne,Ee=ne+(J<ne?-1:1)/2,He=te+(Q<te?-1:1),ft=J-Ee,Ge=Q-He;Oe*Oe+pe*pe>ft*ft+Ge*Ge&&(ne=Ee+(te&1?1:-1)/2,te=He)}var Ae=ne+"-"+te,Be=F[Ae];Be?Be.push(V):(R.push(Be=F[Ae]=[V]),Be.x=(ne+(te&1)/2)*y,Be.y=te*m)}return R}function x(b){var F=0,R=0;return GS.map(function(I){var U=Math.sin(I)*b,V=-Math.cos(I)*b,J=U-F,Q=V-R;return F=U,R=V,[J,Q]})}return g.hexagon=function(b){return"m"+x(b==null?n:+b).join("l")+"z"},g.centers=function(){for(var b=[],F=Math.round(t/m),R=Math.round(e/y),I=F*m;I<i+n;I+=m,++F)for(var U=R*y+(F&1)*y/2;U<r+y/2;U+=y)b.push([U,I]);return b},g.mesh=function(){var b=x(n).slice(0,4).join("l");return g.centers().map(function(F){return"M"+F+"m"+b}).join("")},g.x=function(b){return arguments.length?(s=b,g):s},g.y=function(b){return arguments.length?(u=b,g):u},g.radius=function(b){return arguments.length?(n=+b,y=n*2*Math.sin(v0),m=n*1.5,g):n},g.size=function(b){return arguments.length?(e=t=0,r=+b[0],i=+b[1],g):[r-e,i-t]},g.extent=function(b){return arguments.length?(e=+b[0][0],t=+b[0][1],r=+b[1][0],i=+b[1][1],g):[[e,t],[r,i]]},g.radius(1)}var ZS=Object.defineProperty,YS=Object.defineProperties,$S=Object.getOwnPropertyDescriptors,w5=Object.getOwnPropertySymbols,qS=Object.prototype.hasOwnProperty,KS=Object.prototype.propertyIsEnumerable,R5=(e,t,r)=>t in e?ZS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,QS=(e,t)=>{for(var r in t||(t={}))qS.call(t,r)&&R5(e,r,t[r]);if(w5)for(var r of w5(t))KS.call(t,r)&&R5(e,r,t[r]);return e},JS=(e,t)=>YS(e,$S(t)),ew=6378e3;function tw(e,t){const r=e.dataArray,{size:i=10,method:s="sum"}=t,u=i/(2*Math.PI*ew)*(256<<20)/2,n=r.map(x=>{const[b,F]=Gu(x.coordinates);return JS(QS({},x),{coordinates:[b,F]})});return{dataArray:XS().radius(u).x(x=>x.coordinates[0]).y(x=>x.coordinates[1])(n).map((x,b)=>{if(t.field&&s){const F=l8(x,t.field);x[s]=p8[s](F)}return{[t.method]:x[s],count:x.length,rawData:x,coordinates:[x.x,x.y],_id:b}}),radius:u,xOffset:u,yOffset:u,type:"hexagon"}}var rw=Object.defineProperty,C5=Object.getOwnPropertySymbols,ow=Object.prototype.hasOwnProperty,iw=Object.prototype.propertyIsEnumerable,I5=(e,t,r)=>t in e?rw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,M5=(e,t)=>{for(var r in t||(t={}))ow.call(t,r)&&I5(e,r,t[r]);if(C5)for(var r of C5(t))iw.call(t,r)&&I5(e,r,t[r]);return e};function nw(e,t){const{sourceField:r,targetField:i,data:s}=t,u={};return s.forEach(n=>{u[n[r]]=n}),e.dataArray=e.dataArray.map(n=>{const y=n[i];return M5(M5({},n),u[y])}),e}function aw(e,t){const{callback:r}=t;return r&&(e.dataArray=e.dataArray.map(r)),e}cu("rasterTile",zT);cu("mvt",gb);cu("geojsonvt",uP);cu("testTile",_S);cu("geojson",Ox);cu("jsonTile",PP);cu("image",P8);cu("csv",Ax);cu("json",g8);cu("raster",Mb);cu("rasterRgb",sS);cu("rgb",eS);cu("ndi",ZT);Z0("cluster",a9);Z0("filter",LS);Z0("join",nw);Z0("map",aw);Z0("grid",BS);Z0("hexagon",tw);var sw=OS;window._iconfont_svg_string_3580659='<svg><symbol id="l7-icon-area1" viewBox="0 0 1024 1024"><path d="M796.444444 56.888889a113.777778 113.777778 0 0 1 43.064889 219.136l38.798223 466.261333a113.777778 113.777778 0 1 1-133.518223 145.237334H279.210667a113.777778 113.777778 0 1 1-60.302223-137.272889L697.856 227.555556A113.777778 113.777778 0 0 1 796.444444 56.888889z m56.888889 750.933333a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m-682.666666 0a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m577.592889-534.072889L269.198222 796.444444c4.152889 7.168 7.509333 14.791111 10.012445 22.812445h465.578666a114.119111 114.119111 0 0 1 65.479111-71.224889l-38.798222-466.261333a112.924444 112.924444 0 0 1-23.210666-7.964445zM796.444444 125.155556a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-area" viewBox="0 0 1024 1024"><path d="M796.444444 56.888889a113.777778 113.777778 0 0 1 43.008 219.136l38.855112 466.261333a113.777778 113.777778 0 0 1-16.497778 224.540445L853.333333 967.111111a113.777778 113.777778 0 0 1-108.544-79.644444H279.210667a113.834667 113.834667 0 0 1-100.067556 79.36L170.666667 967.111111a113.777778 113.777778 0 0 1-17.066667-226.304l30.492444-351.175111a113.777778 113.777778 0 0 1 34.986667-218.680889L227.555556 170.666667a113.777778 113.777778 0 0 1 99.896888 59.221333l355.84-71.395556a113.777778 113.777778 0 0 1 104.675556-101.262222L796.444444 56.888889z m56.888889 750.933333a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m-682.666666 0a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m526.051555-582.314666L340.650667 296.903111a113.891556 113.891556 0 0 1-88.462223 98.645333l-30.947555 355.84c27.477333 13.653333 48.64 38.115556 58.026667 67.754667h465.521777a114.119111 114.119111 0 0 1 65.536-71.168l-38.855111-466.261333a113.948444 113.948444 0 0 1-74.752-56.206222zM227.555556 238.933333a45.511111 45.511111 0 1 0 0 91.022223 45.511111 45.511111 0 0 0 0-91.022223z m568.888888-113.777777a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-delete" viewBox="0 0 1024 1024"><path d="M705.422222 85.333333a34.133333 34.133333 0 0 1 34.133334 34.133334V227.555556h136.533333a34.133333 34.133333 0 0 1 0 68.266666h-25.543111l-24.348445 610.076445a34.133333 34.133333 0 0 1-34.133333 32.768H231.936a34.133333 34.133333 0 0 1-34.076444-32.768L173.340444 295.822222H147.911111a34.133333 34.133333 0 1 1 0-68.266666H284.444444V119.466667a34.133333 34.133333 0 0 1 34.133334-34.133334h386.844444zM241.720889 295.822222l22.983111 574.577778h494.535111l23.04-574.577778H241.720889zM671.288889 153.6H352.711111V227.555556h318.577778V153.6z" ></path></symbol><symbol id="l7-icon-color" viewBox="0 0 1024 1024"><path d="M512 56.888889c9.841778 0 19.626667 0.341333 29.354667 0.910222 69.176889 4.437333 119.068444 62.577778 124.302222 131.072l0.455111 9.386667c0.739556 44.600889 15.303111 84.935111 44.999111 114.631111 27.022222 27.022222 62.805333 41.528889 102.570667 44.430222l12.060444 0.568889c72.476444 1.194667 135.793778 52.451556 140.458667 124.757333 1.137778 18.261333 1.251556 36.807111 0.170667 55.637334-13.198222 233.585778-211.399111 424.220444-445.326223 428.714666L512 967.111111a455.111111 455.111111 0 0 1-455.054222-464.156444c4.551111-233.927111 195.185778-432.128 428.771555-445.326223C494.535111 57.116444 503.296 56.888889 512 56.888889z m0 68.266667a385.706667 385.706667 0 0 0-22.414222 0.625777C291.726222 136.988444 129.080889 305.948444 125.155556 504.263111c-4.152889 212.366222 163.100444 387.185778 372.508444 394.353778l13.425778 0.227555 8.533333-0.113777c198.371556-3.811556 367.331556-166.456889 378.538667-364.373334a396.174222 396.174222 0 0 0-0.170667-47.331555c-1.991111-31.232-29.127111-56.604444-67.128889-60.472889l-8.248889-0.455111-14.051555-0.682667c-56.547556-4.209778-107.406222-25.884444-145.806222-64.284444-38.855111-38.798222-60.416-90.225778-64.284445-145.749334l-0.910222-21.333333c-2.901333-38.001778-28.785778-66.048-60.302222-68.096A433.891556 433.891556 0 0 0 512 125.155556zM438.044444 682.666667a68.266667 68.266667 0 1 1 0 136.533333 68.266667 68.266667 0 0 1 0-136.533333z m-170.666666-227.555556a68.266667 68.266667 0 1 1 0 136.533333 68.266667 68.266667 0 0 1 0-136.533333z m142.222222-227.555555a68.266667 68.266667 0 1 1 0 136.533333 68.266667 68.266667 0 0 1 0-136.533333z" ></path></symbol><symbol id="l7-icon-base-map" viewBox="0 0 1024 1024"><path d="M923.761778 115.029333A34.133333 34.133333 0 0 1 967.111111 147.911111v624.128a34.133333 34.133333 0 0 1-22.186667 32.028445l-278.755555 103.992888a34.133333 34.133333 0 0 1-23.665778 0.056889L381.724444 812.714667a34.133333 34.133333 0 0 0-23.665777 0.113777L102.968889 908.060444a34.133333 34.133333 0 0 1-45.738667-26.965333L56.888889 876.088889V251.960889a34.133333 34.133333 0 0 1 22.186667-32.028445l278.755555-103.992888a34.133333 34.133333 0 0 1 20.992-0.967112l266.183111 72.988445a34.133333 34.133333 0 0 0 18.204445 0zM403.911111 192.625778v555.576889l216.177778 79.075555V251.960889l-216.177778-59.335111z m-68.266667 4.380444L125.155556 275.569778v551.310222l210.432-78.506667V197.006222zM898.844444 192.853333l-210.545777 58.936889v575.089778l210.545777-78.563556V192.853333z" ></path></symbol><symbol id="l7-icon-dot" viewBox="0 0 1024 1024"><path d="M341.333333 739.555556a113.777778 113.777778 0 0 1 8.533334 227.271111L341.333333 967.111111a113.777778 113.777778 0 0 1-8.533333-227.271111L341.333333 739.555556z m0 68.266666a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222zM910.222222 341.333333a113.777778 113.777778 0 0 1 8.533334 227.271111L910.222222 568.888889a113.777778 113.777778 0 0 1-8.533333-227.271111L910.222222 341.333333z m0 68.266667a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222zM227.555556 56.888889a113.777778 113.777778 0 0 1 8.533333 227.271111L227.555556 284.444444a113.777778 113.777778 0 0 1-8.533334-227.271111L227.555556 56.888889z m0 68.266667a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-display" viewBox="0 0 1024 1024"><path d="M512 170.666667c284.444444 0 455.111111 227.555556 455.111111 341.333333s-170.666667 341.333333-455.111111 341.333333-455.111111-227.555556-455.111111-341.333333 170.666667-341.333333 455.111111-341.333333z m0 68.266666C303.729778 238.933333 125.155556 401.237333 125.155556 512c0 110.762667 178.574222 273.066667 386.844444 273.066667s386.844444-162.304 386.844444-273.066667c0-110.762667-178.574222-273.066667-386.844444-273.066667zM512 341.333333a170.666667 170.666667 0 1 1 0 341.333334 170.666667 170.666667 0 0 1 0-341.333334z m0 68.266667a102.4 102.4 0 1 0 0 204.8 102.4 102.4 0 0 0 0-204.8z" ></path></symbol><symbol id="l7-icon-enlarge" viewBox="0 0 1024 1024"><path d="M546.133333 147.911111l-0.056889 329.955556H876.088889a34.133333 34.133333 0 0 1 0 68.266666H546.076444v329.955556a34.133333 34.133333 0 0 1-68.266666 0V546.133333H147.911111a34.133333 34.133333 0 1 1 0-68.266666h329.898667V147.911111a34.133333 34.133333 0 0 1 68.266666 0z" ></path></symbol><symbol id="l7-icon-export-picture" viewBox="0 0 1024 1024"><path d="M883.873684 161.684211a32.336842 32.336842 0 0 1 32.336842 32.336842v582.063158a32.336842 32.336842 0 0 1-32.336842 32.336842H86.231579a32.336842 32.336842 0 0 1-32.336842-32.336842V194.021053a32.336842 32.336842 0 0 1 32.336842-32.336842h797.642105z m-32.336842 64.673684H118.568421v517.389473h170.792421a32.175158 32.175158 0 0 1 0.431158-0.646736l3.772632-4.473264 330.320842-330.374736a32.336842 32.336842 0 0 1 38.588631-5.389474l4.473263 3.018105 184.589474 147.725474V226.357895z m-202.428631 248.131368L379.850105 743.747368H851.536842v-107.304421l-202.428631-161.953684zM323.368421 323.368421a107.789474 107.789474 0 1 1 0 215.578947 107.789474 107.789474 0 0 1 0-215.578947z m0 64.673684a43.115789 43.115789 0 1 0 0 86.231579 43.115789 43.115789 0 0 0 0-86.231579z" ></path></symbol><symbol id="l7-icon-exit-fullscreen" viewBox="0 0 1024 1024"><path d="M841.955556 591.644444a34.133333 34.133333 0 0 1 5.518222 67.811556l-5.518222 0.455111h-133.745778l192 192.056889a34.133333 34.133333 0 0 1-38.343111 55.182222l-5.176889-2.958222-4.721778-3.982222L659.911111 708.266667V841.955556a34.133333 34.133333 0 0 1-28.615111 33.678222L625.777778 876.088889a34.133333 34.133333 0 0 1-33.678222-28.615111L591.644444 841.955556V625.777778a34.133333 34.133333 0 0 1 28.615112-33.678222L625.777778 591.644444h216.177778z m-443.733334 0a34.133333 34.133333 0 0 1 33.678222 28.615112L432.355556 625.777778v216.177778a34.133333 34.133333 0 0 1-67.811556 5.518222L364.088889 841.955556v-133.745778l-192.056889 192a34.133333 34.133333 0 0 1-52.224-43.52l3.982222-4.721778L315.847111 659.911111H182.044444a34.133333 34.133333 0 0 1-33.678222-28.615111L147.911111 625.777778a34.133333 34.133333 0 0 1 28.615111-33.678222L182.044444 591.644444H398.222222zM167.310222 119.808l4.721778 3.982222L364.088889 315.847111V182.044444a34.133333 34.133333 0 0 1 28.615111-33.678222L398.222222 147.911111a34.133333 34.133333 0 0 1 33.678222 28.615111L432.355556 182.044444V398.222222a34.133333 34.133333 0 0 1-28.615112 33.678222L398.222222 432.355556H182.044444a34.133333 34.133333 0 0 1-5.518222-67.811556L182.044444 364.088889h133.802667L123.790222 172.032a34.133333 34.133333 0 0 1 43.52-52.224z m732.899556 3.982222a34.133333 34.133333 0 0 1 3.982222 43.52l-3.982222 4.721778L708.266667 364.088889H841.955556a34.133333 34.133333 0 0 1 33.678222 28.615111L876.088889 398.222222a34.133333 34.133333 0 0 1-28.615111 33.678222L841.955556 432.355556H625.777778a34.133333 34.133333 0 0 1-33.678222-28.615112L591.644444 398.222222V182.044444a34.133333 34.133333 0 0 1 67.811556-5.518222l0.455111 5.518222v133.802667l192.056889-192.056889a34.133333 34.133333 0 0 1 48.241778 0z" ></path></symbol><symbol id="l7-icon-line" viewBox="0 0 1024 1024"><path d="M853.333333 56.888889a113.777778 113.777778 0 0 1 8.533334 227.271111L853.333333 284.444444c-19.000889 0-36.864-4.664889-52.622222-12.856888l-529.123555 529.066666a113.777778 113.777778 0 0 1-92.387556 166.115556L170.666667 967.111111a113.777778 113.777778 0 0 1-8.533334-227.271111L170.666667 739.555556c19.000889 0 36.864 4.664889 52.622222 12.856888l529.123555-529.066666a113.777778 113.777778 0 0 1 92.387556-166.115556L853.333333 56.888889zM170.666667 807.822222a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m682.666666-682.666666a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-layer" viewBox="0 0 1024 1024"><path d="M767.089778 625.777778l180.167111 82.773333a34.133333 34.133333 0 0 1 4.892444 59.278222l-4.892444 2.730667-420.977778 193.422222a34.133333 34.133333 0 0 1-22.983111 1.991111l-5.575111-1.991111-420.977778-193.422222a34.133333 34.133333 0 0 1-4.892444-59.278222l4.892444-2.730667L256.853333 625.777778l81.749334 37.546666L172.771556 739.555556 512 895.374222 851.171556 739.555556l-165.831112-76.231112 81.749334-37.546666z m0-227.555556l180.167111 82.773334a34.133333 34.133333 0 0 1 4.892444 59.278222l-4.892444 2.730666-420.977778 193.422223a34.133333 34.133333 0 0 1-22.983111 1.991111l-5.575111-1.991111-420.977778-193.422223a34.133333 34.133333 0 0 1-4.892444-59.278222l4.892444-2.730666L256.853333 398.222222l81.749334 37.546667-165.831111 76.174222L512 667.818667l339.171556-155.875556-165.831112-76.174222L767.089778 398.222222zM497.720889 60.017778a34.133333 34.133333 0 0 1 28.558222 0l420.977778 193.422222a34.133333 34.133333 0 0 1 0 62.008889l-420.977778 193.422222a34.133333 34.133333 0 0 1-28.558222 0l-420.977778-193.422222a34.133333 34.133333 0 0 1 0-62.008889zM512 128.568889L172.771556 284.387556 512 440.263111l339.171556-155.875555L512 128.568889z" ></path></symbol><symbol id="l7-icon-narrow" viewBox="0 0 1024 1024"><path d="M910.222222 512a34.133333 34.133333 0 0 1-34.133333 34.133333H147.911111a34.133333 34.133333 0 1 1 0-68.266666h728.177778a34.133333 34.133333 0 0 1 34.133333 34.133333z" ></path></symbol><symbol id="l7-icon-fullscreen" viewBox="0 0 1024 1024"><path d="M645.176889 597.674667l4.721778 3.982222L841.955556 793.6l0.056888-133.688889a34.133333 34.133333 0 0 1 28.615112-33.678222L876.088889 625.777778a34.133333 34.133333 0 0 1 33.678222 28.615111L910.222222 659.911111v216.177778a34.133333 34.133333 0 0 1-28.615111 33.678222L876.088889 910.222222h-216.177778a34.133333 34.133333 0 0 1-5.518222-67.811555l5.518222-0.455111h133.745778l-192-192.056889a34.133333 34.133333 0 0 1 43.52-52.224z m-222.833778 3.982222a34.133333 34.133333 0 0 1 3.982222 43.52l-3.982222 4.721778L230.286222 841.955556H364.088889a34.133333 34.133333 0 0 1 33.678222 28.615111L398.222222 876.088889a34.133333 34.133333 0 0 1-28.615111 33.678222L364.088889 910.222222H147.911111a34.133333 34.133333 0 0 1-33.678222-28.615111L113.777778 876.088889v-216.177778a34.133333 34.133333 0 0 1 67.811555-5.518222l0.455111 5.518222-0.056888 133.745778 192.113777-192a34.133333 34.133333 0 0 1 48.241778 0zM364.088889 113.777778a34.133333 34.133333 0 0 1 5.518222 67.811555L364.088889 182.044444H230.343111l192 192.056889a34.133333 34.133333 0 0 1-43.52 52.224l-4.721778-3.982222-192.113777-192.056889L182.044444 364.088889a34.133333 34.133333 0 0 1-28.615111 33.678222L147.911111 398.222222a34.133333 34.133333 0 0 1-33.678222-28.615111L113.777778 364.088889V147.911111a34.133333 34.133333 0 0 1 28.615111-33.678222L147.911111 113.777778h216.177778z m512 0a34.133333 34.133333 0 0 1 33.678222 28.615111L910.222222 147.911111v216.177778a34.133333 34.133333 0 0 1-67.811555 5.518222L841.955556 364.088889l-0.056889-133.745778-192 192a34.133333 34.133333 0 0 1-52.224-43.52l3.982222-4.721778L793.6 182.044444H659.911111a34.133333 34.133333 0 0 1-33.678222-28.615111L625.777778 147.911111a34.133333 34.133333 0 0 1 28.615111-33.678222L659.911111 113.777778h216.177778z" ></path></symbol><symbol id="l7-icon-hide" viewBox="0 0 1024 1024"><path d="M875.52 87.836444a34.133333 34.133333 0 0 1 7.281778 43.121778l-3.527111 5.006222-682.666667 796.444445a34.133333 34.133333 0 0 1-55.409778-39.367111l3.527111-5.006222 97.166223-113.379556C123.164444 697.969778 56.888889 582.940444 56.888889 512c0-113.777778 170.666667-341.333333 455.111111-341.333333a496.64 496.64 0 0 1 208.952889 45.112889l106.439111-124.188445a34.133333 34.133333 0 0 1 48.128-3.754667z m-38.684444 202.524445C921.031111 362.951111 967.111111 452.835556 967.111111 512c0 113.777778-170.666667 341.333333-455.111111 341.333333-50.631111 0-97.678222-7.224889-140.8-19.740444l50.232889-58.595556A417.393778 417.393778 0 0 0 512 785.066667c208.270222 0 386.844444-162.304 386.844444-273.066667 0-52.849778-40.675556-117.418667-105.813333-170.496l43.804445-51.2zM512 238.933333C303.729778 238.933333 125.155556 401.237333 125.155556 512c0 66.787556 64.853333 152.291556 162.133333 209.692444L377.173333 616.675556a170.666667 170.666667 0 0 1 217.713778-253.895112l78.620445-91.704888A432.924444 432.924444 0 0 0 512 238.933333z m166.684444 236.088889a170.666667 170.666667 0 0 1-177.664 207.303111l177.607112-207.303111zM512 409.6a102.4 102.4 0 0 0-88.746667 153.486222L548.864 416.426667A102.172444 102.172444 0 0 0 512 409.6z" ></path></symbol><symbol id="l7-icon-rectangle" viewBox="0 0 1024 1024"><path d="M170.666667 56.888889a113.777778 113.777778 0 0 1 108.544 79.644444H853.333333a34.133333 34.133333 0 0 1 33.678223 28.615111L887.466667 170.666667v574.122666a113.777778 113.777778 0 1 1-142.677334 142.734223L170.666667 887.466667a34.133333 34.133333 0 0 1-33.678223-28.615111L136.533333 853.333333V279.210667A113.777778 113.777778 0 0 1 170.666667 56.888889z m682.666666 750.933333a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z m-34.133333-603.022222H279.210667a114.062222 114.062222 0 0 1-74.353778 74.410667L204.8 819.2h539.989333a114.062222 114.062222 0 0 1 74.410667-74.410667V204.8zM170.666667 125.155556a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-ranging" viewBox="0 0 1024 1024"><path d="M723.171556 50.403556l250.424888 250.424888a31.061333 31.061333 0 0 1 0 43.918223L344.746667 973.596444a31.061333 31.061333 0 0 1-43.918223 0L50.403556 723.171556a31.061333 31.061333 0 0 1 0-43.918223L679.253333 50.403556a31.061333 31.061333 0 0 1 43.918223 0z m-21.959112 74.524444l-39.765333 39.822222 98.986667 98.872889a34.133333 34.133333 0 0 1-44.088889 51.882667l-4.209778-3.640889-98.929778-98.929778-63.886222 63.886222 62.179556 62.122667a34.133333 34.133333 0 0 1-44.088889 51.882667L563.2 387.242667 501.077333 325.063111 437.191111 388.949333l98.986667 98.929778a34.133333 34.133333 0 0 1-44.088889 51.882667l-4.209778-3.640889-98.929778-98.929778-63.886222 63.886222L387.242667 563.2a34.133333 34.133333 0 0 1-44.088889 51.882667l-4.209778-3.584-62.122667-62.179556-63.886222 63.886222 98.986667 98.929778a34.133333 34.133333 0 0 1-44.088889 51.882667l-4.209778-3.640889-98.929778-98.929778-39.765333 39.822222 197.802667 197.745778 576.284444-576.284444-197.802667-197.745778z" ></path></symbol><symbol id="l7-icon-reposition" viewBox="0 0 1024 1024"><path d="M512 56.888889a34.133333 34.133333 0 0 1 34.133333 34.133333v24.177778A398.336 398.336 0 0 1 908.856889 477.866667h24.177778a34.133333 34.133333 0 0 1 0 68.266666h-24.177778A398.336 398.336 0 0 1 546.133333 908.856889L546.133333 932.977778a34.133333 34.133333 0 0 1-68.266666 0v-24.177778A398.336 398.336 0 0 1 115.2 546.133333L91.022222 546.133333a34.133333 34.133333 0 1 1 0-68.266666h24.177778A398.336 398.336 0 0 1 477.866667 115.2V91.022222A34.133333 34.133333 0 0 1 512 56.888889z m34.190222 126.862222L546.133333 193.422222a34.133333 34.133333 0 1 1-68.266666 0v-9.671111A330.069333 330.069333 0 0 0 183.751111 477.866667h9.671111a34.133333 34.133333 0 1 1 0 68.266666l-9.671111 0.056889A330.069333 330.069333 0 0 0 477.866667 840.248889V830.577778a34.133333 34.133333 0 0 1 68.266666 0l0.056889 9.671111A330.069333 330.069333 0 0 0 840.248889 546.133333L830.577778 546.133333a34.133333 34.133333 0 0 1 0-68.266666h9.671111A330.069333 330.069333 0 0 0 546.133333 183.751111zM512 341.333333a170.666667 170.666667 0 1 1 0 341.333334 170.666667 170.666667 0 0 1 0-341.333334z m0 68.266667a102.4 102.4 0 1 0 0 204.8 102.4 102.4 0 0 0 0-204.8z" ></path></symbol><symbol id="l7-icon-round" viewBox="0 0 1024 1024"><path d="M512 56.888889a455.111111 455.111111 0 0 1 391.395556 687.502222 113.777778 113.777778 0 0 1-159.061334 158.890667A455.111111 455.111111 0 0 1 120.604444 279.608889 113.777778 113.777778 0 0 1 279.608889 120.604444 452.835556 452.835556 0 0 1 512 56.888889z m0 68.266667a384.910222 384.910222 0 0 0-191.715556 50.744888A113.777778 113.777778 0 0 1 175.957333 320.284444a386.844444 386.844444 0 0 0 527.815111 527.758223 113.777778 113.777778 0 0 1 144.270223-144.440889A386.844444 386.844444 0 0 0 512 125.155556z m299.406222 640.739555a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222zM212.593778 167.082667a45.511111 45.511111 0 1 0 0 91.022222 45.511111 45.511111 0 0 0 0-91.022222z" ></path></symbol><symbol id="l7-icon-guanbi" viewBox="0 0 1024 1024"><path d="M576 512l277.333333 277.333333-64 64-277.333333-277.333333L234.666667 853.333333 170.666667 789.333333l277.333333-277.333333L170.666667 234.666667 234.666667 170.666667l277.333333 277.333333L789.333333 170.666667 853.333333 234.666667 576 512z" ></path></symbol></svg>',function(e){try{let g=function(){y||(y=!0,u())},x=function(){try{n.documentElement.doScroll("left")}catch{return void setTimeout(x,50)}g()};var r=(r=document.getElementsByTagName("script"))[r.length-1],t=r.getAttribute("data-injectcss"),r=r.getAttribute("data-disable-injectsvg");if(!r){var i,s,u,n,y,m=function(b,F){F.parentNode.insertBefore(b,F)};if(t&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(b){console&&console.log(b)}}i=function(){var b,F=document.createElement("div");F.innerHTML=e._iconfont_svg_string_3580659,(F=F.getElementsByTagName("svg")[0])&&(F.setAttribute("aria-hidden","true"),F.style.position="absolute",F.style.width=0,F.style.height=0,F.style.overflow="hidden",F=F,(b=document.body).firstChild?m(F,b.firstChild):b.appendChild(F))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(i,0):(s=function(){document.removeEventListener("DOMContentLoaded",s,!1),i()},document.addEventListener("DOMContentLoaded",s,!1)):document.attachEvent&&(u=i,n=e.document,y=!1,x(),n.onreadystatechange=function(){n.readyState=="complete"&&(n.onreadystatechange=null,g())})}}catch{}}(window);class Py extends _6{constructor(t){super(),H(this,"controlOption",void 0),H(this,"container",void 0),H(this,"isShow",void 0),H(this,"sceneContainer",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"renderService",void 0),H(this,"layerService",void 0),H(this,"controlService",void 0),H(this,"configService",void 0),Py.controlCount++,this.controlOption=_t(_t({},this.getDefault(t)),t||{})}getOptions(){return this.controlOption}setOptions(t){const r=this.getDefault(t);Object.entries(t).forEach(([i,s])=>{s===void 0&&(t[i]=r[i])}),"position"in t&&this.setPosition(t.position),"className"in t&&this.setClassName(t.className),"style"in t&&this.setStyle(t.style),this.controlOption=_t(_t({},this.controlOption),t)}addTo(t){this.mapsService=t.mapService,this.renderService=t.rendererService,this.layerService=t.layerService,this.controlService=t.controlService,this.configService=t.globalConfigService,this.scene=t.sceneService,this.sceneContainer=t,this.isShow=!0,this.container=this.onAdd(),ay(this.container,"l7-control");const{className:r,style:i}=this.controlOption;return r&&this.setClassName(r),i&&this.setStyle(i),this.insertContainer(),this.emit("add",this),this}remove(){if(!this.mapsService)return this;uf(this.container),this.onRemove(),this.emit("remove",this)}onAdd(){return lu("div")}onRemove(){}show(){const t=this.container;c2(t,"l7-control--hide"),this.isShow=!0,this.emit("show",this)}hide(){const t=this.container;ay(t,"l7-control--hide"),this.isShow=!1,this.emit("hide",this)}getDefault(t){return{position:cf.TOPRIGHT,name:`${Py.controlCount}`}}getContainer(){return this.container}getIsShow(){return this.isShow}_refocusOnMap(t){if(this.mapsService&&t&&t.screenX>0&&t.screenY>0){const r=this.mapsService.getContainer();r!==null&&r.focus()}}setPosition(t=cf.TOPLEFT){const r=this.controlService;return r&&r.removeControl(this),this.controlOption.position=t,r&&r.addControl(this,this.sceneContainer),this}setClassName(t){const r=this.container,{className:i}=this.controlOption;i&&c2(r,i),t&&ay(r,t)}setStyle(t){const r=this.container;t?r.setAttribute("style",t):r.removeAttribute("style")}insertContainer(){const t=this.controlOption.position,r=this.container;if(t instanceof Element)t.appendChild(r);else{const i=this.controlService.controlCorners[t];["bottomleft","bottomright","righttop","rightbottom"].includes(t)?i.insertBefore(r,i.firstChild):i.appendChild(r)}}checkUpdateOption(t,r){return r.some(i=>i in t)}}H(Py,"controlCount",0);class gf extends du.EventEmitter{get buttonRect(){return this.button.getBoundingClientRect()}constructor(t,r){super(),H(this,"popperDOM",void 0),H(this,"contentDOM",void 0),H(this,"button",void 0),H(this,"option",void 0),H(this,"isShow",!1),H(this,"content",void 0),H(this,"timeout",null),H(this,"show",()=>this.isShow||!this.contentDOM.innerHTML?this:(this.resetPopperPosition(),c2(this.popperDOM,"l7-popper-hide"),this.isShow=!0,this.option.unique&&gf.conflictPopperList.forEach(i=>{i!==this&&i.isShow&&i.hide()}),this.emit("show"),window.addEventListener("pointerdown",this.onPopperUnClick),this)),H(this,"hide",()=>this.isShow?(ay(this.popperDOM,"l7-popper-hide"),this.isShow=!1,this.emit("hide"),window.removeEventListener("pointerdown",this.onPopperUnClick),this):this),H(this,"setHideTimeout",()=>{this.timeout||(this.timeout=window.setTimeout(()=>{this.isShow&&(this.hide(),this.timeout=null)},300))}),H(this,"clearHideTimeout",()=>{this.timeout&&(window.clearTimeout(this.timeout),this.timeout=null)}),H(this,"onBtnClick",()=>{this.isShow?this.hide():this.show()}),H(this,"onPopperUnClick",i=>{CE(i.target,[".l7-button-control",".l7-popper-content"])||this.hide()}),H(this,"onBtnMouseLeave",()=>{this.setHideTimeout()}),H(this,"onBtnMouseMove",()=>{this.clearHideTimeout(),!this.isShow&&this.show()}),this.button=t,this.option=r,this.init(),r.unique&&gf.conflictPopperList.push(this)}getPopperDOM(){return this.popperDOM}getIsShow(){return this.isShow}getContent(){return this.content}setContent(t){typeof t=="string"?this.contentDOM.innerHTML=t:t instanceof HTMLElement&&(n8(this.contentDOM),this.contentDOM.appendChild(t)),this.content=t}init(){const{trigger:t}=this.option;this.popperDOM=this.createPopper(),t==="click"?this.button.addEventListener("click",this.onBtnClick):(this.button.addEventListener("mousemove",this.onBtnMouseMove),this.button.addEventListener("mouseleave",this.onBtnMouseLeave),this.popperDOM.addEventListener("mousemove",this.onBtnMouseMove),this.popperDOM.addEventListener("mouseleave",this.onBtnMouseLeave))}destroy(){this.button.removeEventListener("click",this.onBtnClick),this.button.removeEventListener("mousemove",this.onBtnMouseMove),this.button.removeEventListener("mousemove",this.onBtnMouseLeave),this.popperDOM.removeEventListener("mousemove",this.onBtnMouseMove),this.popperDOM.removeEventListener("mouseleave",this.onBtnMouseLeave),uf(this.popperDOM)}resetPopperPosition(){const t={},{container:r,offset:i=[0,0],placement:s}=this.option,[u,n]=i,y=this.button.getBoundingClientRect(),m=r.getBoundingClientRect(),{left:g,right:x,top:b,bottom:F}=wE(y,m);let R=!1,I=!1;/^(left|right)/.test(s)?(s.includes("left")?t.right=`${y.width+x}px`:s.includes("right")&&(t.left=`${y.width+g}px`),s.includes("start")?t.top=`${b}px`:s.includes("end")?t.bottom=`${F}px`:(t.top=`${b+y.height/2}px`,I=!0,t.transform=`translate(${u}px, calc(${n}px - 50%))`)):/^(top|bottom)/.test(s)&&(s.includes("top")?t.bottom=`${y.height+F}px`:s.includes("bottom")&&(t.top=`${y.height+b}px`),s.includes("start")?t.left=`${g}px`:s.includes("end")?t.right=`${x}px`:(t.left=`${g+y.width/2}px`,R=!0,t.transform=`translate(calc(${u}px - 50%), ${n}px)`)),t.transform=`translate(calc(${u}px - ${R?"50%":"0%"}), calc(${n}px - ${I?"50%":"0%"})`;const U=s.split("-");U.length&&ay(this.popperDOM,U.map(V=>`l7-popper-${V}`).join(" ")),TE(this.popperDOM,SE(t))}createPopper(){const{container:t,className:r="",content:i}=this.option,s=lu("div",`l7-popper l7-popper-hide ${r}`),u=lu("div","l7-popper-content"),n=lu("div","l7-popper-arrow");return s.appendChild(u),s.appendChild(n),t.appendChild(s),this.popperDOM=s,this.contentDOM=u,i&&this.setContent(i),s}}H(gf,"conflictPopperList",[]);const N5=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Cl=(()=>{if(typeof document>"u")return!1;const e=N5[0],t={};for(const r of N5)if((r==null?void 0:r[1])in document){for(const[s,u]of r.entries())t[e[s]]=u;return t}return!1})(),D5={change:Cl.fullscreenchange,error:Cl.fullscreenerror};let Vu={request(e=document.documentElement,t){return new Promise((r,i)=>{const s=()=>{Vu.off("change",s),r()};Vu.on("change",s);const u=e[Cl.requestFullscreen](t);u instanceof Promise&&u.then(s).catch(i)})},exit(){return new Promise((e,t)=>{if(!Vu.isFullscreen){e();return}const r=()=>{Vu.off("change",r),e()};Vu.on("change",r);const i=document[Cl.exitFullscreen]();i instanceof Promise&&i.then(r).catch(t)})},toggle(e,t){return Vu.isFullscreen?Vu.exit():Vu.request(e,t)},onchange(e){Vu.on("change",e)},onerror(e){Vu.on("error",e)},on(e,t){const r=D5[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=D5[e];r&&document.removeEventListener(r,t,!1)},raw:Cl};Object.defineProperties(Vu,{isFullscreen:{get:()=>!!document[Cl.fullscreenElement]},element:{enumerable:!0,get:()=>{var e;return(e=document[Cl.fullscreenElement])!==null&&e!==void 0?e:void 0}},isEnabled:{enumerable:!0,get:()=>!!document[Cl.fullscreenEnabled]}});Cl||(Vu={isEnabled:!1});class uw extends Py{getDefault(){return{position:cf.BOTTOMLEFT,name:"logo",href:"https://l7.antv.antgroup.com/",img:"https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*GRb1TKp4HcMAAAAAAAAAAAAAARQnAQ"}}onAdd(){const t=lu("div","l7-control-logo");return this.setLogoContent(t),t}onRemove(){return null}setOptions(t){super.setOptions(t),this.checkUpdateOption(t,["img","href"])&&(n8(this.container),this.setLogoContent(this.container))}setLogoContent(t){const{href:r,img:i}=this.controlOption,s=lu("img");if(s.setAttribute("src",i),s.setAttribute("aria-label","AntV logo"),RE(s),r){const u=lu("a","l7-control-logo-link");u.target="_blank",u.href=r,u.rel="noopener nofollow",u.setAttribute("rel","noopener nofollow"),u.appendChild(s),t.appendChild(u)}else t.appendChild(s)}}class pw{constructor(){H(this,"mapService",void 0),H(this,"fontService",void 0)}apply(t,{styleAttributeService:r,mapService:i,fontService:s}){var u=this;this.mapService=i,this.fontService=s,t.hooks.init.tapPromise("DataMappingPlugin",mt(function*(){t.log(Ea.MappingStart,Ga.INIT),u.generateMaping(t,{styleAttributeService:r}),t.log(Ea.MappingEnd,Ga.INIT)})),t.hooks.beforeRenderData.tapPromise("DataMappingPlugin",function(){var n=mt(function*(y){if(!y)return y;t.dataState.dataMappingNeedUpdate=!1,t.log(Ea.MappingStart,Ga.UPDATE);const m=u.generateMaping(t,{styleAttributeService:r});return t.log(Ea.MappingEnd,Ga.UPDATE),m});return function(y){return n.apply(this,arguments)}}()),t.hooks.beforeRender.tap("DataMappingPlugin",()=>{const n=t.getSource();if(t.layerModelNeedUpdate||!n||!n.inited)return;const y=r.getLayerStyleAttributes()||[],m=r.getLayerStyleAttribute("filter"),{dataArray:g}=n.data;if(Array.isArray(g)&&g.length===0)return;const x=y.filter(F=>F.needRemapping);let b=g;if(m!=null&&m.needRemapping&&m!==null&&m!==void 0&&m.scale&&(b=g.filter(F=>this.applyAttributeMapping(m,F)[0])),x.length){const F=this.mapping(t,x,b,t.getEncodedData());t.setEncodedData(F)}})}generateMaping(t,{styleAttributeService:r}){const i=r.getLayerStyleAttributes()||[],s=r.getLayerStyleAttribute("filter"),{dataArray:u}=t.getSource().data;let n=u;s!=null&&s.scale&&(n=u.filter(m=>this.applyAttributeMapping(s,m)[0])),n=t.processData(n);const y=this.mapping(t,i,n,void 0);return t.setEncodedData(y),t.emit("dataUpdate",null),!0}mapping(t,r,i,s){const u=r.filter(y=>y.scale!==void 0).filter(y=>y.name!=="filter"),n=i.map((y,m)=>{const g=s?s[m]:{},x=_t({id:y._id,coordinates:y.coordinates},g);return u.forEach(b=>{let F=this.applyAttributeMapping(b,y);(b.name==="color"||b.name==="stroke")&&(F=F.map(R=>Mi(R))),x[b.name]=Array.isArray(F)&&F.length===1?F[0]:F,b.name==="shape"&&(x.shape=this.fontService.getIconFontKey(x[b.name]))}),x});return r.forEach(y=>{y.needRemapping=!1}),this.adjustData2SimpleCoordinates(n),n}adjustData2SimpleCoordinates(t){t.length>0&&this.mapService.version==="SIMPLE"&&t.map(r=>{r.simpleCoordinate||(r.coordinates=this.unProjectCoordinates(r.coordinates),r.simpleCoordinate=!0)})}unProjectCoordinates(t){if(typeof t[0]=="number")return this.mapService.simpleMapCoord.unproject(t);if(t[0]&&t[0][0]instanceof Array){const r=[];return t.map(i=>{const s=[];i.map(u=>{s.push(this.mapService.simpleMapCoord.unproject(u))}),r.push(s)}),r}else{const r=[];return t.map(i=>{r.push(this.mapService.simpleMapCoord.unproject(i))}),r}}applyAttributeMapping(t,r){var i;if(!t.scale)return[];const s=(t==null||(i=t.scale)===null||i===void 0?void 0:i.scalers)||[],u=[];return s.forEach(({field:y})=>{var m;(r.hasOwnProperty(y)||((m=t.scale)===null||m===void 0?void 0:m.type)==="variable")&&u.push(r[y])}),t.mapping?t.mapping(u):[]}getArrowPoints(t,r){const i=[r[0]-t[0],r[1]-t[1]],s=BE(i);return[t[0]+s[0]*1e-4,t[1]+s[1]*1e-4]}}class lw{constructor(){H(this,"mapService",void 0)}apply(t){var r=this;this.mapService=t.getContainer().mapService,t.hooks.init.tapPromise("DataSourcePlugin",mt(function*(){t.log(Ea.SourceInitStart,Ga.INIT);let i=t.getSource();if(!i){const{data:s,options:u}=t.sourceOption||t.defaultSourceConfig;i=new sw(s,u),t.setSource(i)}i.inited?(r.updateClusterData(t),t.log(Ea.SourceInitEnd,Ga.INIT)):yield new Promise(s=>{i.on("update",u=>{u.type==="inited"&&(r.updateClusterData(t),t.log(Ea.SourceInitEnd,Ga.INIT)),s(null)})})})),t.hooks.beforeRenderData.tapPromise("DataSourcePlugin",mt(function*(){const i=r.updateClusterData(t),s=t.dataState.dataSourceNeedUpdate;return t.dataState.dataSourceNeedUpdate=!1,i||s}))}updateClusterData(t){if(t.isTileLayer||t.tileLayer||!t.getSource())return!1;const r=t.getSource(),i=r.cluster,{zoom:s=0}=r.clusterOptions,u=this.mapService.getZoom()-1,n=t.dataState.dataSourceNeedUpdate;return i&&n&&r.updateClusterData(Math.floor(u)),i&&Math.abs(t.clusterZoom-u)>=1?(s!==Math.floor(u)&&r.updateClusterData(Math.floor(u)),t.clusterZoom=u,!0):!1}}function O5(e,t){let r,i;for(const s of e)s!=null&&(r===void 0?s>=s&&(r=i=s):(r>s&&(r=s),i<s&&(i=s)));return[r,i]}function cw(e,t,r,i,s){var u=e*e,n=u*e;return((1-3*e+3*u-n)*t+(4-6*u+3*n)*r+(1+3*e+3*u-3*n)*i+n*s)/6}function dw(e){var t=e.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),s=e[i],u=e[i+1],n=i>0?e[i-1]:2*s-u,y=i<t-1?e[i+2]:2*u-s;return cw((r-i/t)*t,n,s,u,y)}}function S6(e){return function(){return e}}function yw(e,t){return function(r){return e+r*t}}function hw(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(i){return Math.pow(e+i*t,r)}}function fw(e){return(e=+e)==1?u9:function(t,r){return r-t?hw(t,r,e):S6(isNaN(t)?r:t)}}function u9(e,t){var r=t-e;return r?yw(e,r):S6(isNaN(e)?t:e)}const L5=function e(t){var r=fw(t);function i(s,u){var n=r((s=sf(s)).r,(u=sf(u)).r),y=r(s.g,u.g),m=r(s.b,u.b),g=u9(s.opacity,u.opacity);return function(x){return s.r=n(x),s.g=y(x),s.b=m(x),s.opacity=g(x),s+""}}return i.gamma=e,i}(1);function mw(e){return function(t){var r=t.length,i=new Array(r),s=new Array(r),u=new Array(r),n,y;for(n=0;n<r;++n)y=sf(t[n]),i[n]=y.r||0,s[n]=y.g||0,u[n]=y.b||0;return i=e(i),s=e(s),u=e(u),y.opacity=1,function(m){return y.r=i(m),y.g=s(m),y.b=u(m),y+""}}}var _w=mw(dw);function gw(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,i=t.slice(),s;return function(u){for(s=0;s<r;++s)i[s]=e[s]*(1-u)+t[s]*u;return i}}function vw(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ew(e,t){var r=t?t.length:0,i=e?Math.min(r,e.length):0,s=new Array(i),u=new Array(r),n;for(n=0;n<i;++n)s[n]=w6(e[n],t[n]);for(;n<r;++n)u[n]=t[n];return function(y){for(n=0;n<i;++n)u[n]=s[n](y);return u}}function xw(e,t){var r=new Date;return e=+e,t=+t,function(i){return r.setTime(e*(1-i)+t*i),r}}function vf(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function Pw(e,t){var r={},i={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?r[s]=w6(e[s],t[s]):i[s]=t[s];return function(u){for(s in r)i[s]=r[s](u);return i}}var N2=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wm=new RegExp(N2.source,"g");function bw(e){return function(){return e}}function Aw(e){return function(t){return e(t)+""}}function Fw(e,t){var r=N2.lastIndex=Wm.lastIndex=0,i,s,u,n=-1,y=[],m=[];for(e=e+"",t=t+"";(i=N2.exec(e))&&(s=Wm.exec(t));)(u=s.index)>r&&(u=t.slice(r,u),y[n]?y[n]+=u:y[++n]=u),(i=i[0])===(s=s[0])?y[n]?y[n]+=s:y[++n]=s:(y[++n]=null,m.push({i:n,x:vf(i,s)})),r=Wm.lastIndex;return r<t.length&&(u=t.slice(r),y[n]?y[n]+=u:y[++n]=u),y.length<2?m[0]?Aw(m[0].x):bw(t):(t=m.length,function(g){for(var x=0,b;x<t;++x)y[(b=m[x]).i]=b.x(g);return y.join("")})}function w6(e,t){var r=typeof t,i;return t==null||r==="boolean"?S6(t):(r==="number"?vf:r==="string"?(i=O0(t))?(t=i,L5):Fw:t instanceof O0?L5:t instanceof Date?xw:vw(t)?gw:Array.isArray(t)?Ew:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Pw:vf)(e,t)}function Tw(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}function R6(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function p9(e){return e.length===1&&(e=Sw(e)),{left:function(t,r,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i<s;){var u=i+s>>>1;e(t[u],r)<0?i=u+1:s=u}return i},right:function(t,r,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i<s;){var u=i+s>>>1;e(t[u],r)>0?s=u:i=u+1}return i}}}function Sw(e){return function(t,r){return R6(e(t),r)}}var ww=p9(R6),Xf=ww.right;function Rw(e){return e===null?NaN:+e}var D2=Math.sqrt(50),O2=Math.sqrt(10),L2=Math.sqrt(2);function l9(e,t,r){var i,s=-1,u,n,y;if(t=+t,e=+e,r=+r,e===t&&r>0)return[e];if((i=t<e)&&(u=e,e=t,t=u),(y=$h(e,t,r))===0||!isFinite(y))return[];if(y>0)for(e=Math.ceil(e/y),t=Math.floor(t/y),n=new Array(u=Math.ceil(t-e+1));++s<u;)n[s]=(e+s)*y;else for(e=Math.floor(e*y),t=Math.ceil(t*y),n=new Array(u=Math.ceil(e-t+1));++s<u;)n[s]=(e-s)/y;return i&&n.reverse(),n}function $h(e,t,r){var i=(t-e)/Math.max(0,r),s=Math.floor(Math.log(i)/Math.LN10),u=i/Math.pow(10,s);return s>=0?(u>=D2?10:u>=O2?5:u>=L2?2:1)*Math.pow(10,s):-Math.pow(10,-s)/(u>=D2?10:u>=O2?5:u>=L2?2:1)}function B2(e,t,r){var i=Math.abs(t-e)/Math.max(0,r),s=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),u=i/s;return u>=D2?s*=10:u>=O2?s*=5:u>=L2&&(s*=2),t<e?-s:s}function Cw(e,t,r){if(r==null&&(r=Rw),!!(i=e.length)){if((t=+t)<=0||i<2)return+r(e[0],0,e);if(t>=1)return+r(e[i-1],i-1,e);var i,s=(i-1)*t,u=Math.floor(s),n=+r(e[u],u,e),y=+r(e[u+1],u+1,e);return n+(y-n)*(s-u)}}function wc(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function c9(e,t){switch(arguments.length){case 0:break;case 1:this.interpolator(e);break;default:this.interpolator(t).domain(e);break}return this}var zu="$";function Ef(){}Ef.prototype=xf.prototype={constructor:Ef,has:function(e){return zu+e in this},get:function(e){return this[zu+e]},set:function(e,t){return this[zu+e]=t,this},remove:function(e){var t=zu+e;return t in this&&delete this[t]},clear:function(){for(var e in this)e[0]===zu&&delete this[e]},keys:function(){var e=[];for(var t in this)t[0]===zu&&e.push(t.slice(1));return e},values:function(){var e=[];for(var t in this)t[0]===zu&&e.push(this[t]);return e},entries:function(){var e=[];for(var t in this)t[0]===zu&&e.push({key:t.slice(1),value:this[t]});return e},size:function(){var e=0;for(var t in this)t[0]===zu&&++e;return e},empty:function(){for(var e in this)if(e[0]===zu)return!1;return!0},each:function(e){for(var t in this)t[0]===zu&&e(this[t],t.slice(1),this)}};function xf(e,t){var r=new Ef;if(e instanceof Ef)e.each(function(y,m){r.set(m,y)});else if(Array.isArray(e)){var i=-1,s=e.length,u;if(t==null)for(;++i<s;)r.set(i,e[i]);else for(;++i<s;)r.set(t(u=e[i],i,e),u)}else if(e)for(var n in e)r.set(n,e[n]);return r}function B5(){}var s1=xf.prototype;B5.prototype={constructor:B5,has:s1.has,add:function(e){return e+="",this[zu+e]=e,this},remove:s1.remove,clear:s1.clear,values:s1.keys,size:s1.size,empty:s1.empty,each:s1.each};var d9=Array.prototype,y9=d9.map,_1=d9.slice,U5={name:"implicit"};function Pf(){var e=xf(),t=[],r=[],i=U5;function s(u){var n=u+"",y=e.get(n);if(!y){if(i!==U5)return i;e.set(n,y=t.push(u))}return r[(y-1)%r.length]}return s.domain=function(u){if(!arguments.length)return t.slice();t=[],e=xf();for(var n=-1,y=u.length,m,g;++n<y;)e.has(g=(m=u[n])+"")||e.set(g,t.push(m));return s},s.range=function(u){return arguments.length?(r=_1.call(u),s):r.slice()},s.unknown=function(u){return arguments.length?(i=u,s):i},s.copy=function(){return Pf(t,r).unknown(i)},wc.apply(s,arguments),s}function Iw(e){return function(){return e}}function Mw(e){return+e}var k5=[0,1];function ns(e){return e}function U2(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:Iw(isNaN(t)?NaN:.5)}function z5(e){var t=e[0],r=e[e.length-1],i;return t>r&&(i=t,t=r,r=i),function(s){return Math.max(t,Math.min(r,s))}}function Nw(e,t,r){var i=e[0],s=e[1],u=t[0],n=t[1];return s<i?(i=U2(s,i),u=r(n,u)):(i=U2(i,s),u=r(u,n)),function(y){return u(i(y))}}function Dw(e,t,r){var i=Math.min(e.length,t.length)-1,s=new Array(i),u=new Array(i),n=-1;for(e[i]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++n<i;)s[n]=U2(e[n],e[n+1]),u[n]=r(t[n],t[n+1]);return function(y){var m=Xf(e,y,1,i)-1;return u[m](s[m](y))}}function Zf(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function C6(){var e=k5,t=k5,r=w6,i,s,u,n=ns,y,m,g;function x(){return y=Math.min(e.length,t.length)>2?Dw:Nw,m=g=null,b}function b(F){return isNaN(F=+F)?u:(m||(m=y(e.map(i),t,r)))(i(n(F)))}return b.invert=function(F){return n(s((g||(g=y(t,e.map(i),vf)))(F)))},b.domain=function(F){return arguments.length?(e=y9.call(F,Mw),n===ns||(n=z5(e)),x()):e.slice()},b.range=function(F){return arguments.length?(t=_1.call(F),x()):t.slice()},b.rangeRound=function(F){return t=_1.call(F),r=Tw,x()},b.clamp=function(F){return arguments.length?(n=F?z5(e):ns,b):n!==ns},b.interpolate=function(F){return arguments.length?(r=F,x()):r},b.unknown=function(F){return arguments.length?(u=F,b):u},function(F,R){return i=F,s=R,x()}}function h9(e,t){return C6()(e,t)}function Ow(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function bf(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,i=e.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+e.slice(r+1)]}function U0(e){return e=bf(Math.abs(e)),e?e[1]:NaN}function Lw(e,t){return function(r,i){for(var s=r.length,u=[],n=0,y=e[0],m=0;s>0&&y>0&&(m+y+1>i&&(y=Math.max(1,i-m)),u.push(r.substring(s-=y,s+y)),!((m+=y+1)>i));)y=e[n=(n+1)%e.length];return u.reverse().join(t)}}function Bw(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var Uw=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Af(e){if(!(t=Uw.exec(e)))throw new Error("invalid format: "+e);var t;return new I6({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Af.prototype=I6.prototype;function I6(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}I6.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function kw(e){e:for(var t=e.length,r=1,i=-1,s;r<t;++r)switch(e[r]){case".":i=s=r;break;case"0":i===0&&(i=r),s=r;break;default:if(!+e[r])break e;i>0&&(i=0);break}return i>0?e.slice(0,i)+e.slice(s+1):e}var f9;function zw(e,t){var r=bf(e,t);if(!r)return e+"";var i=r[0],s=r[1],u=s-(f9=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,n=i.length;return u===n?i:u>n?i+new Array(u-n+1).join("0"):u>0?i.slice(0,u)+"."+i.slice(u):"0."+new Array(1-u).join("0")+bf(e,Math.max(0,t+u-1))[0]}function V5(e,t){var r=bf(e,t);if(!r)return e+"";var i=r[0],s=r[1];return s<0?"0."+new Array(-s).join("0")+i:i.length>s+1?i.slice(0,s+1)+"."+i.slice(s+1):i+new Array(s-i.length+2).join("0")}const H5={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:Ow,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return V5(e*100,t)},r:V5,s:zw,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function G5(e){return e}var j5=Array.prototype.map,W5=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Vw(e){var t=e.grouping===void 0||e.thousands===void 0?G5:Lw(j5.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",i=e.currency===void 0?"":e.currency[1]+"",s=e.decimal+"",u=e.numerals===void 0?G5:Bw(j5.call(e.numerals,String)),n=e.percent===void 0?"%":e.percent+"",y=e.minus+"",m=e.nan===void 0?"NaN":e.nan+"";function g(b){b=Af(b);var F=b.fill,R=b.align,I=b.sign,U=b.symbol,V=b.zero,J=b.width,Q=b.comma,te=b.precision,ne=b.trim,pe=b.type;pe==="n"?(Q=!0,pe="g"):H5[pe]||(te===void 0&&(te=12),ne=!0,pe="g"),(V||F==="0"&&R==="=")&&(V=!0,F="0",R="=");var Oe=U==="$"?r:U==="#"&&/[boxX]/.test(pe)?"0"+pe.toLowerCase():"",Ee=U==="$"?i:/[%p]/.test(pe)?n:"",He=H5[pe],ft=/[defgprs%]/.test(pe);te=te===void 0?6:/[gprs]/.test(pe)?Math.max(1,Math.min(21,te)):Math.max(0,Math.min(20,te));function Ge(Ae){var Be=Oe,ze=Ee,st,Vt,ir;if(pe==="c")ze=He(Ae)+ze,Ae="";else{Ae=+Ae;var Fr=Ae<0||1/Ae<0;if(Ae=isNaN(Ae)?m:He(Math.abs(Ae),te),ne&&(Ae=kw(Ae)),Fr&&+Ae==0&&I!=="+"&&(Fr=!1),Be=(Fr?I==="("?I:y:I==="-"||I==="("?"":I)+Be,ze=(pe==="s"?W5[8+f9/3]:"")+ze+(Fr&&I==="("?")":""),ft){for(st=-1,Vt=Ae.length;++st<Vt;)if(ir=Ae.charCodeAt(st),48>ir||ir>57){ze=(ir===46?s+Ae.slice(st+1):Ae.slice(st))+ze,Ae=Ae.slice(0,st);break}}}Q&&!V&&(Ae=t(Ae,1/0));var Yr=Be.length+Ae.length+ze.length,mr=Yr<J?new Array(J-Yr+1).join(F):"";switch(Q&&V&&(Ae=t(mr+Ae,mr.length?J-ze.length:1/0),mr=""),R){case"<":Ae=Be+Ae+ze+mr;break;case"=":Ae=Be+mr+Ae+ze;break;case"^":Ae=mr.slice(0,Yr=mr.length>>1)+Be+Ae+ze+mr.slice(Yr);break;default:Ae=mr+Be+Ae+ze;break}return u(Ae)}return Ge.toString=function(){return b+""},Ge}function x(b,F){var R=g((b=Af(b),b.type="f",b)),I=Math.max(-8,Math.min(8,Math.floor(U0(F)/3)))*3,U=Math.pow(10,-I),V=W5[8+I/3];return function(J){return R(U*J)+V}}return{format:g,formatPrefix:x}}var wh,M6,m9;Hw({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function Hw(e){return wh=Vw(e),M6=wh.format,m9=wh.formatPrefix,wh}function Gw(e){return Math.max(0,-U0(Math.abs(e)))}function jw(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(U0(t)/3)))*3-U0(Math.abs(e)))}function Ww(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,U0(t)-U0(e))+1}function Xw(e,t,r,i){var s=B2(e,t,r),u;switch(i=Af(i??",f"),i.type){case"s":{var n=Math.max(Math.abs(e),Math.abs(t));return i.precision==null&&!isNaN(u=jw(s,n))&&(i.precision=u),m9(i,n)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(u=Ww(s,Math.max(Math.abs(e),Math.abs(t))))&&(i.precision=u-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(u=Gw(s))&&(i.precision=u-(i.type==="%")*2);break}}return M6(i)}function Oy(e){var t=e.domain;return e.ticks=function(r){var i=t();return l9(i[0],i[i.length-1],r??10)},e.tickFormat=function(r,i){var s=t();return Xw(s[0],s[s.length-1],r??10,i)},e.nice=function(r){r==null&&(r=10);var i=t(),s=0,u=i.length-1,n=i[s],y=i[u],m;return y<n&&(m=n,n=y,y=m,m=s,s=u,u=m),m=$h(n,y,r),m>0?(n=Math.floor(n/m)*m,y=Math.ceil(y/m)*m,m=$h(n,y,r)):m<0&&(n=Math.ceil(n*m)/m,y=Math.floor(y*m)/m,m=$h(n,y,r)),m>0?(i[s]=Math.floor(n/m)*m,i[u]=Math.ceil(y/m)*m,t(i)):m<0&&(i[s]=Math.ceil(n*m)/m,i[u]=Math.floor(y*m)/m,t(i)),e},e}function _9(){var e=h9(ns,ns);return e.copy=function(){return Zf(e,_9())},wc.apply(e,arguments),Oy(e)}function g9(e,t){e=e.slice();var r=0,i=e.length-1,s=e[r],u=e[i],n;return u<s&&(n=r,r=i,i=n,n=s,s=u,u=n),e[r]=t.floor(s),e[i]=t.ceil(u),e}function X5(e){return Math.log(e)}function Z5(e){return Math.exp(e)}function Zw(e){return-Math.log(-e)}function Yw(e){return-Math.exp(-e)}function $w(e){return isFinite(e)?+("1e"+e):e<0?0:e}function qw(e){return e===10?$w:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}}function Kw(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),function(t){return Math.log(t)/e})}function Y5(e){return function(t){return-e(-t)}}function Qw(e){var t=e(X5,Z5),r=t.domain,i=10,s,u;function n(){return s=Kw(i),u=qw(i),r()[0]<0?(s=Y5(s),u=Y5(u),e(Zw,Yw)):e(X5,Z5),t}return t.base=function(y){return arguments.length?(i=+y,n()):i},t.domain=function(y){return arguments.length?(r(y),n()):r()},t.ticks=function(y){var m=r(),g=m[0],x=m[m.length-1],b;(b=x<g)&&(F=g,g=x,x=F);var F=s(g),R=s(x),I,U,V,J=y==null?10:+y,Q=[];if(!(i%1)&&R-F<J){if(F=Math.round(F)-1,R=Math.round(R)+1,g>0){for(;F<R;++F)for(U=1,I=u(F);U<i;++U)if(V=I*U,!(V<g)){if(V>x)break;Q.push(V)}}else for(;F<R;++F)for(U=i-1,I=u(F);U>=1;--U)if(V=I*U,!(V<g)){if(V>x)break;Q.push(V)}}else Q=l9(F,R,Math.min(R-F,J)).map(u);return b?Q.reverse():Q},t.tickFormat=function(y,m){if(m==null&&(m=i===10?".0e":","),typeof m!="function"&&(m=M6(m)),y===1/0)return m;y==null&&(y=10);var g=Math.max(1,i*y/t.ticks().length);return function(x){var b=x/u(Math.round(s(x)));return b*i<i-.5&&(b*=i),b<=g?m(x):""}},t.nice=function(){return r(g9(r(),{floor:function(y){return u(Math.floor(s(y)))},ceil:function(y){return u(Math.ceil(s(y)))}}))},t}function v9(){var e=Qw(C6()).domain([1,10]);return e.copy=function(){return Zf(e,v9()).base(e.base())},wc.apply(e,arguments),e}function $5(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Jw(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function eR(e){return e<0?-e*e:e*e}function tR(e){var t=e(ns,ns),r=1;function i(){return r===1?e(ns,ns):r===.5?e(Jw,eR):e($5(r),$5(1/r))}return t.exponent=function(s){return arguments.length?(r=+s,i()):r},Oy(t)}function E9(){var e=tR(C6());return e.copy=function(){return Zf(e,E9()).exponent(e.exponent())},wc.apply(e,arguments),e}function x9(){var e=[],t=[],r=[],i;function s(){var n=0,y=Math.max(1,t.length);for(r=new Array(y-1);++n<y;)r[n-1]=Cw(e,n/y);return u}function u(n){return isNaN(n=+n)?i:t[Xf(r,n)]}return u.invertExtent=function(n){var y=t.indexOf(n);return y<0?[NaN,NaN]:[y>0?r[y-1]:e[0],y<r.length?r[y]:e[e.length-1]]},u.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var y=0,m=n.length,g;y<m;++y)g=n[y],g!=null&&!isNaN(g=+g)&&e.push(g);return e.sort(R6),s()},u.range=function(n){return arguments.length?(t=_1.call(n),s()):t.slice()},u.unknown=function(n){return arguments.length?(i=n,u):i},u.quantiles=function(){return r.slice()},u.copy=function(){return x9().domain(e).range(t).unknown(i)},wc.apply(u,arguments)}function P9(){var e=0,t=1,r=1,i=[.5],s=[0,1],u;function n(m){return m<=m?s[Xf(i,m,0,r)]:u}function y(){var m=-1;for(i=new Array(r);++m<r;)i[m]=((m+1)*t-(m-r)*e)/(r+1);return n}return n.domain=function(m){return arguments.length?(e=+m[0],t=+m[1],y()):[e,t]},n.range=function(m){return arguments.length?(r=(s=_1.call(m)).length-1,y()):s.slice()},n.invertExtent=function(m){var g=s.indexOf(m);return g<0?[NaN,NaN]:g<1?[e,i[0]]:g>=r?[i[r-1],t]:[i[g-1],i[g]]},n.unknown=function(m){return arguments.length&&(u=m),n},n.thresholds=function(){return i.slice()},n.copy=function(){return P9().domain([e,t]).range(s).unknown(u)},wc.apply(Oy(n),arguments)}function b9(){var e=[.5],t=[0,1],r,i=1;function s(u){return u<=u?t[Xf(e,u,0,i)]:r}return s.domain=function(u){return arguments.length?(e=_1.call(u),i=Math.min(e.length,t.length-1),s):e.slice()},s.range=function(u){return arguments.length?(t=_1.call(u),i=Math.min(e.length,t.length-1),s):t.slice()},s.invertExtent=function(u){var n=t.indexOf(u);return[e[n-1],e[n]]},s.unknown=function(u){return arguments.length?(r=u,s):r},s.copy=function(){return b9().domain(e).range(t).unknown(r)},wc.apply(s,arguments)}var Xm=new Date,Zm=new Date;function gs(e,t,r,i){function s(u){return e(u=arguments.length===0?new Date:new Date(+u)),u}return s.floor=function(u){return e(u=new Date(+u)),u},s.ceil=function(u){return e(u=new Date(u-1)),t(u,1),e(u),u},s.round=function(u){var n=s(u),y=s.ceil(u);return u-n<y-u?n:y},s.offset=function(u,n){return t(u=new Date(+u),n==null?1:Math.floor(n)),u},s.range=function(u,n,y){var m=[],g;if(u=s.ceil(u),y=y==null?1:Math.floor(y),!(u<n)||!(y>0))return m;do m.push(g=new Date(+u)),t(u,y),e(u);while(g<u&&u<n);return m},s.filter=function(u){return gs(function(n){if(n>=n)for(;e(n),!u(n);)n.setTime(n-1)},function(n,y){if(n>=n)if(y<0)for(;++y<=0;)for(;t(n,-1),!u(n););else for(;--y>=0;)for(;t(n,1),!u(n););})},r&&(s.count=function(u,n){return Xm.setTime(+u),Zm.setTime(+n),e(Xm),e(Zm),Math.floor(r(Xm,Zm))},s.every=function(u){return u=Math.floor(u),!isFinite(u)||!(u>0)?null:u>1?s.filter(i?function(n){return i(n)%u===0}:function(n){return s.count(0,n)%u===0}):s}),s}var Ff=gs(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});Ff.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?gs(function(t){t.setTime(Math.floor(t/e)*e)},function(t,r){t.setTime(+t+r*e)},function(t,r){return(r-t)/e}):Ff};Ff.range;var Tf=1e3,by=6e4,q5=36e5,A9=864e5,F9=6048e5,T9=gs(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Tf)},function(e,t){return(t-e)/Tf},function(e){return e.getUTCSeconds()});T9.range;var S9=gs(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tf)},function(e,t){e.setTime(+e+t*by)},function(e,t){return(t-e)/by},function(e){return e.getMinutes()});S9.range;var w9=gs(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tf-e.getMinutes()*by)},function(e,t){e.setTime(+e+t*q5)},function(e,t){return(t-e)/q5},function(e){return e.getHours()});w9.range;var Yf=gs(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*by)/A9},function(e){return e.getDate()-1});Yf.range;function P1(e){return gs(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,r){t.setDate(t.getDate()+r*7)},function(t,r){return(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*by)/F9})}var N6=P1(0),Sf=P1(1),rR=P1(2),oR=P1(3),k0=P1(4),iR=P1(5),nR=P1(6);N6.range;Sf.range;rR.range;oR.range;k0.range;iR.range;nR.range;var R9=gs(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});R9.range;var Fc=gs(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Fc.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:gs(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,r){t.setFullYear(t.getFullYear()+r*e)})};Fc.range;var D6=gs(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/A9},function(e){return e.getUTCDate()-1});D6.range;function b1(e){return gs(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,r){t.setUTCDate(t.getUTCDate()+r*7)},function(t,r){return(r-t)/F9})}var C9=b1(0),wf=b1(1),aR=b1(2),sR=b1(3),z0=b1(4),uR=b1(5),pR=b1(6);C9.range;wf.range;aR.range;sR.range;z0.range;uR.range;pR.range;var g1=gs(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});g1.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:gs(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,r){t.setUTCFullYear(t.getUTCFullYear()+r*e)})};g1.range;function Ym(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function $m(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Md(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function lR(e){var t=e.dateTime,r=e.date,i=e.time,s=e.periods,u=e.days,n=e.shortDays,y=e.months,m=e.shortMonths,g=Nd(s),x=Dd(s),b=Nd(u),F=Dd(u),R=Nd(n),I=Dd(n),U=Nd(y),V=Dd(y),J=Nd(m),Q=Dd(m),te={a:Fr,A:Yr,b:mr,B:Er,c:null,d:r4,e:r4,f:NR,g:GR,G:WR,H:CR,I:IR,j:MR,L:I9,m:DR,M:OR,p:qr,q:Jr,Q:n4,s:a4,S:LR,u:BR,U:UR,V:kR,w:zR,W:VR,x:null,X:null,y:HR,Y:jR,Z:XR,"%":i4},ne={a:_o,A:So,b:oo,B:Wi,c:null,d:o4,e:o4,f:qR,g:aC,G:uC,H:ZR,I:YR,j:$R,L:N9,m:KR,M:QR,p:bo,q:Ni,Q:n4,s:a4,S:JR,u:eC,U:tC,V:rC,w:oC,W:iC,x:null,X:null,y:nC,Y:sC,Z:pC,"%":i4},pe={a:Ge,A:Ae,b:Be,B:ze,c:st,d:e4,e:e4,f:TR,g:J5,G:Q5,H:t4,I:t4,j:PR,L:FR,m:xR,M:bR,p:ft,q:ER,Q:wR,s:RR,S:AR,u:fR,U:mR,V:_R,w:hR,W:gR,x:Vt,X:ir,y:J5,Y:Q5,Z:vR,"%":SR};te.x=Oe(r,te),te.X=Oe(i,te),te.c=Oe(t,te),ne.x=Oe(r,ne),ne.X=Oe(i,ne),ne.c=Oe(t,ne);function Oe($e,Yt){return function(Sr){var Ft=[],xr=-1,io=0,go=$e.length,to,Kr,Ao;for(Sr instanceof Date||(Sr=new Date(+Sr));++xr<go;)$e.charCodeAt(xr)===37&&(Ft.push($e.slice(io,xr)),(Kr=K5[to=$e.charAt(++xr)])!=null?to=$e.charAt(++xr):Kr=to==="e"?" ":"0",(Ao=Yt[to])&&(to=Ao(Sr,Kr)),Ft.push(to),io=xr+1);return Ft.push($e.slice(io,xr)),Ft.join("")}}function Ee($e,Yt){return function(Sr){var Ft=Md(1900,void 0,1),xr=He(Ft,$e,Sr+="",0),io,go;if(xr!=Sr.length)return null;if("Q"in Ft)return new Date(Ft.Q);if("s"in Ft)return new Date(Ft.s*1e3+("L"in Ft?Ft.L:0));if(Yt&&!("Z"in Ft)&&(Ft.Z=0),"p"in Ft&&(Ft.H=Ft.H%12+Ft.p*12),Ft.m===void 0&&(Ft.m="q"in Ft?Ft.q:0),"V"in Ft){if(Ft.V<1||Ft.V>53)return null;"w"in Ft||(Ft.w=1),"Z"in Ft?(io=$m(Md(Ft.y,0,1)),go=io.getUTCDay(),io=go>4||go===0?wf.ceil(io):wf(io),io=D6.offset(io,(Ft.V-1)*7),Ft.y=io.getUTCFullYear(),Ft.m=io.getUTCMonth(),Ft.d=io.getUTCDate()+(Ft.w+6)%7):(io=Ym(Md(Ft.y,0,1)),go=io.getDay(),io=go>4||go===0?Sf.ceil(io):Sf(io),io=Yf.offset(io,(Ft.V-1)*7),Ft.y=io.getFullYear(),Ft.m=io.getMonth(),Ft.d=io.getDate()+(Ft.w+6)%7)}else("W"in Ft||"U"in Ft)&&("w"in Ft||(Ft.w="u"in Ft?Ft.u%7:"W"in Ft?1:0),go="Z"in Ft?$m(Md(Ft.y,0,1)).getUTCDay():Ym(Md(Ft.y,0,1)).getDay(),Ft.m=0,Ft.d="W"in Ft?(Ft.w+6)%7+Ft.W*7-(go+5)%7:Ft.w+Ft.U*7-(go+6)%7);return"Z"in Ft?(Ft.H+=Ft.Z/100|0,Ft.M+=Ft.Z%100,$m(Ft)):Ym(Ft)}}function He($e,Yt,Sr,Ft){for(var xr=0,io=Yt.length,go=Sr.length,to,Kr;xr<io;){if(Ft>=go)return-1;if(to=Yt.charCodeAt(xr++),to===37){if(to=Yt.charAt(xr++),Kr=pe[to in K5?Yt.charAt(xr++):to],!Kr||(Ft=Kr($e,Sr,Ft))<0)return-1}else if(to!=Sr.charCodeAt(Ft++))return-1}return Ft}function ft($e,Yt,Sr){var Ft=g.exec(Yt.slice(Sr));return Ft?($e.p=x[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Ge($e,Yt,Sr){var Ft=R.exec(Yt.slice(Sr));return Ft?($e.w=I[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Ae($e,Yt,Sr){var Ft=b.exec(Yt.slice(Sr));return Ft?($e.w=F[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Be($e,Yt,Sr){var Ft=J.exec(Yt.slice(Sr));return Ft?($e.m=Q[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function ze($e,Yt,Sr){var Ft=U.exec(Yt.slice(Sr));return Ft?($e.m=V[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function st($e,Yt,Sr){return He($e,t,Yt,Sr)}function Vt($e,Yt,Sr){return He($e,r,Yt,Sr)}function ir($e,Yt,Sr){return He($e,i,Yt,Sr)}function Fr($e){return n[$e.getDay()]}function Yr($e){return u[$e.getDay()]}function mr($e){return m[$e.getMonth()]}function Er($e){return y[$e.getMonth()]}function qr($e){return s[+($e.getHours()>=12)]}function Jr($e){return 1+~~($e.getMonth()/3)}function _o($e){return n[$e.getUTCDay()]}function So($e){return u[$e.getUTCDay()]}function oo($e){return m[$e.getUTCMonth()]}function Wi($e){return y[$e.getUTCMonth()]}function bo($e){return s[+($e.getUTCHours()>=12)]}function Ni($e){return 1+~~($e.getUTCMonth()/3)}return{format:function($e){var Yt=Oe($e+="",te);return Yt.toString=function(){return $e},Yt},parse:function($e){var Yt=Ee($e+="",!1);return Yt.toString=function(){return $e},Yt},utcFormat:function($e){var Yt=Oe($e+="",ne);return Yt.toString=function(){return $e},Yt},utcParse:function($e){var Yt=Ee($e+="",!0);return Yt.toString=function(){return $e},Yt}}}var K5={"-":"",_:" ",0:"0"},Ia=/^\s*\d+/,cR=/^%/,dR=/[\\^$*+?|[\]().{}]/g;function _i(e,t,r){var i=e<0?"-":"",s=(i?-e:e)+"",u=s.length;return i+(u<r?new Array(r-u+1).join(t)+s:s)}function yR(e){return e.replace(dR,"\\$&")}function Nd(e){return new RegExp("^(?:"+e.map(yR).join("|")+")","i")}function Dd(e){for(var t={},r=-1,i=e.length;++r<i;)t[e[r].toLowerCase()]=r;return t}function hR(e,t,r){var i=Ia.exec(t.slice(r,r+1));return i?(e.w=+i[0],r+i[0].length):-1}function fR(e,t,r){var i=Ia.exec(t.slice(r,r+1));return i?(e.u=+i[0],r+i[0].length):-1}function mR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.U=+i[0],r+i[0].length):-1}function _R(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.V=+i[0],r+i[0].length):-1}function gR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.W=+i[0],r+i[0].length):-1}function Q5(e,t,r){var i=Ia.exec(t.slice(r,r+4));return i?(e.y=+i[0],r+i[0].length):-1}function J5(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function vR(e,t,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function ER(e,t,r){var i=Ia.exec(t.slice(r,r+1));return i?(e.q=i[0]*3-3,r+i[0].length):-1}function xR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.m=i[0]-1,r+i[0].length):-1}function e4(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.d=+i[0],r+i[0].length):-1}function PR(e,t,r){var i=Ia.exec(t.slice(r,r+3));return i?(e.m=0,e.d=+i[0],r+i[0].length):-1}function t4(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.H=+i[0],r+i[0].length):-1}function bR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.M=+i[0],r+i[0].length):-1}function AR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.S=+i[0],r+i[0].length):-1}function FR(e,t,r){var i=Ia.exec(t.slice(r,r+3));return i?(e.L=+i[0],r+i[0].length):-1}function TR(e,t,r){var i=Ia.exec(t.slice(r,r+6));return i?(e.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function SR(e,t,r){var i=cR.exec(t.slice(r,r+1));return i?r+i[0].length:-1}function wR(e,t,r){var i=Ia.exec(t.slice(r));return i?(e.Q=+i[0],r+i[0].length):-1}function RR(e,t,r){var i=Ia.exec(t.slice(r));return i?(e.s=+i[0],r+i[0].length):-1}function r4(e,t){return _i(e.getDate(),t,2)}function CR(e,t){return _i(e.getHours(),t,2)}function IR(e,t){return _i(e.getHours()%12||12,t,2)}function MR(e,t){return _i(1+Yf.count(Fc(e),e),t,3)}function I9(e,t){return _i(e.getMilliseconds(),t,3)}function NR(e,t){return I9(e,t)+"000"}function DR(e,t){return _i(e.getMonth()+1,t,2)}function OR(e,t){return _i(e.getMinutes(),t,2)}function LR(e,t){return _i(e.getSeconds(),t,2)}function BR(e){var t=e.getDay();return t===0?7:t}function UR(e,t){return _i(N6.count(Fc(e)-1,e),t,2)}function M9(e){var t=e.getDay();return t>=4||t===0?k0(e):k0.ceil(e)}function kR(e,t){return e=M9(e),_i(k0.count(Fc(e),e)+(Fc(e).getDay()===4),t,2)}function zR(e){return e.getDay()}function VR(e,t){return _i(Sf.count(Fc(e)-1,e),t,2)}function HR(e,t){return _i(e.getFullYear()%100,t,2)}function GR(e,t){return e=M9(e),_i(e.getFullYear()%100,t,2)}function jR(e,t){return _i(e.getFullYear()%1e4,t,4)}function WR(e,t){var r=e.getDay();return e=r>=4||r===0?k0(e):k0.ceil(e),_i(e.getFullYear()%1e4,t,4)}function XR(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+_i(t/60|0,"0",2)+_i(t%60,"0",2)}function o4(e,t){return _i(e.getUTCDate(),t,2)}function ZR(e,t){return _i(e.getUTCHours(),t,2)}function YR(e,t){return _i(e.getUTCHours()%12||12,t,2)}function $R(e,t){return _i(1+D6.count(g1(e),e),t,3)}function N9(e,t){return _i(e.getUTCMilliseconds(),t,3)}function qR(e,t){return N9(e,t)+"000"}function KR(e,t){return _i(e.getUTCMonth()+1,t,2)}function QR(e,t){return _i(e.getUTCMinutes(),t,2)}function JR(e,t){return _i(e.getUTCSeconds(),t,2)}function eC(e){var t=e.getUTCDay();return t===0?7:t}function tC(e,t){return _i(C9.count(g1(e)-1,e),t,2)}function D9(e){var t=e.getUTCDay();return t>=4||t===0?z0(e):z0.ceil(e)}function rC(e,t){return e=D9(e),_i(z0.count(g1(e),e)+(g1(e).getUTCDay()===4),t,2)}function oC(e){return e.getUTCDay()}function iC(e,t){return _i(wf.count(g1(e)-1,e),t,2)}function nC(e,t){return _i(e.getUTCFullYear()%100,t,2)}function aC(e,t){return e=D9(e),_i(e.getUTCFullYear()%100,t,2)}function sC(e,t){return _i(e.getUTCFullYear()%1e4,t,4)}function uC(e,t){var r=e.getUTCDay();return e=r>=4||r===0?z0(e):z0.ceil(e),_i(e.getUTCFullYear()%1e4,t,4)}function pC(){return"+0000"}function i4(){return"%"}function n4(e){return+e}function a4(e){return Math.floor(+e/1e3)}var y0,O9;lC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lC(e){return y0=lR(e),O9=y0.format,y0.parse,y0.utcFormat,y0.utcParse,y0}var Jd=1e3,ey=Jd*60,ty=ey*60,Ay=ty*24,cC=Ay*7,s4=Ay*30,qm=Ay*365;function dC(e){return new Date(e)}function yC(e){return e instanceof Date?+e:+new Date(+e)}function L9(e,t,r,i,s,u,n,y,m){var g=h9(ns,ns),x=g.invert,b=g.domain,F=m(".%L"),R=m(":%S"),I=m("%I:%M"),U=m("%I %p"),V=m("%a %d"),J=m("%b %d"),Q=m("%B"),te=m("%Y"),ne=[[n,1,Jd],[n,5,5*Jd],[n,15,15*Jd],[n,30,30*Jd],[u,1,ey],[u,5,5*ey],[u,15,15*ey],[u,30,30*ey],[s,1,ty],[s,3,3*ty],[s,6,6*ty],[s,12,12*ty],[i,1,Ay],[i,2,2*Ay],[r,1,cC],[t,1,s4],[t,3,3*s4],[e,1,qm]];function pe(Ee){return(n(Ee)<Ee?F:u(Ee)<Ee?R:s(Ee)<Ee?I:i(Ee)<Ee?U:t(Ee)<Ee?r(Ee)<Ee?V:J:e(Ee)<Ee?Q:te)(Ee)}function Oe(Ee,He,ft,Ge){if(Ee==null&&(Ee=10),typeof Ee=="number"){var Ae=Math.abs(ft-He)/Ee,Be=p9(function(ze){return ze[2]}).right(ne,Ae);Be===ne.length?(Ge=B2(He/qm,ft/qm,Ee),Ee=e):Be?(Be=ne[Ae/ne[Be-1][2]<ne[Be][2]/Ae?Be-1:Be],Ge=Be[1],Ee=Be[0]):(Ge=Math.max(B2(He,ft,Ee),1),Ee=y)}return Ge==null?Ee:Ee.every(Ge)}return g.invert=function(Ee){return new Date(x(Ee))},g.domain=function(Ee){return arguments.length?b(y9.call(Ee,yC)):b().map(dC)},g.ticks=function(Ee,He){var ft=b(),Ge=ft[0],Ae=ft[ft.length-1],Be=Ae<Ge,ze;return Be&&(ze=Ge,Ge=Ae,Ae=ze),ze=Oe(Ee,Ge,Ae,He),ze=ze?ze.range(Ge,Ae+1):[],Be?ze.reverse():ze},g.tickFormat=function(Ee,He){return He==null?pe:m(He)},g.nice=function(Ee,He){var ft=b();return(Ee=Oe(Ee,ft[0],ft[ft.length-1],He))?b(g9(ft,Ee)):g},g.copy=function(){return Zf(g,L9(e,t,r,i,s,u,n,y,m))},g}function hC(){return wc.apply(L9(Fc,R9,N6,Yf,w9,S9,T9,Ff,O9).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function fC(){var e=0,t=1,r,i,s,u,n=ns,y=!1,m;function g(x){return isNaN(x=+x)?m:n(s===0?.5:(x=(u(x)-r)*s,y?Math.max(0,Math.min(1,x)):x))}return g.domain=function(x){return arguments.length?(r=u(e=+x[0]),i=u(t=+x[1]),s=r===i?0:1/(i-r),g):[e,t]},g.clamp=function(x){return arguments.length?(y=!!x,g):y},g.interpolator=function(x){return arguments.length?(n=x,g):n},g.unknown=function(x){return arguments.length?(m=x,g):m},function(x){return u=x,r=x(e),i=x(t),s=r===i?0:1/(i-r),g}}function B9(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function U9(){var e=Oy(fC()(ns));return e.copy=function(){return B9(e,U9())},c9.apply(e,arguments)}function mC(){var e=0,t=.5,r=1,i,s,u,n,y,m=ns,g,x=!1,b;function F(R){return isNaN(R=+R)?b:(R=.5+((R=+g(R))-s)*(R<s?n:y),m(x?Math.max(0,Math.min(1,R)):R))}return F.domain=function(R){return arguments.length?(i=g(e=+R[0]),s=g(t=+R[1]),u=g(r=+R[2]),n=i===s?0:.5/(s-i),y=s===u?0:.5/(u-s),F):[e,t,r]},F.clamp=function(R){return arguments.length?(x=!!R,F):x},F.interpolator=function(R){return arguments.length?(m=R,F):m},F.unknown=function(R){return arguments.length?(b=R,F):b},function(R){return g=R,i=R(e),s=R(t),u=R(r),n=i===s?0:.5/(s-i),y=s===u?0:.5/(u-s),F}}function k9(){var e=Oy(mC()(ns));return e.copy=function(){return B9(e,k9())},c9.apply(e,arguments)}function z9(e){let t,r=[];function i(s){return s??t}return i.invert=i,i.domain=i.range=s=>s?(r=s,s):r,i.unknown=s=>s?(t=s,s):t,i.copy=()=>z9().unknown(t),i}const{isNil:Km,isString:_C,uniq:gC}=Qn,vC=/^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))(\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/,EC={[Ei.LINEAR]:_9,[Ei.POWER]:E9,[Ei.LOG]:v9,[Ei.IDENTITY]:z9,[Ei.SEQUENTIAL]:U9,[Ei.TIME]:hC,[Ei.QUANTILE]:x9,[Ei.QUANTIZE]:P9,[Ei.THRESHOLD]:b9,[Ei.CAT]:Pf,[Ei.DIVERGING]:k9};class xC{constructor(){H(this,"scaleOptions",{})}apply(t,{styleAttributeService:r}){var i=this;t.hooks.init.tapPromise("FeatureScalePlugin",mt(function*(){var s;t.log(Ea.ScaleInitStart,Ga.INIT),i.scaleOptions=t.getScaleOptions();const u=r.getLayerStyleAttributes(),n=(s=t.getSource())===null||s===void 0?void 0:s.data.dataArray;Array.isArray(n)&&n.length===0||(i.caculateScalesForAttributes(u||[],n),t.log(Ea.ScaleInitEnd,Ga.INIT))})),t.hooks.beforeRenderData.tapPromise("FeatureScalePlugin",function(){var s=mt(function*(u){if(!u)return u;t.log(Ea.ScaleInitStart,Ga.UPDATE),i.scaleOptions=t.getScaleOptions();const n=r.getLayerStyleAttributes(),y=t.getSource().data.dataArray;return Array.isArray(y)&&y.length===0||(i.caculateScalesForAttributes(n||[],y),t.log(Ea.ScaleInitEnd,Ga.UPDATE),t.layerModelNeedUpdate=!0),!0});return function(u){return s.apply(this,arguments)}}()),t.hooks.beforeRender.tap("FeatureScalePlugin",()=>{if(t.layerModelNeedUpdate)return;this.scaleOptions=t.getScaleOptions();const s=r.getLayerStyleAttributes(),u=t.getSource().data.dataArray;if(!(Array.isArray(u)&&u.length===0)&&s){const n=s.filter(y=>y.needRescale);n.length&&this.caculateScalesForAttributes(n,u)}})}isNumber(t){return!isNaN(parseFloat(t))&&isFinite(t)}caculateScalesForAttributes(t,r){t.forEach(i=>{if(i.scale){const s=i.scale,u=i.scale.field;s.names=this.parseFields(Km(u)?[]:u);const n=[];s.names.forEach(y=>{var m;n.push(this.createScale(y,i.name,(m=i.scale)===null||m===void 0?void 0:m.values,r))}),n.some(y=>y.type===d0.VARIABLE)?(s.type=d0.VARIABLE,n.forEach(y=>{if(!s.callback&&s.values!=="text"){var m;switch((m=y.option)===null||m===void 0?void 0:m.type){case Ei.LOG:case Ei.LINEAR:case Ei.POWER:if(s.values&&s.values.length>2){const x=y.scale.ticks(s.values.length);y.scale.domain(x)}s.values?y.scale.range(s.values):y.scale.range(y.option.domain);break;case Ei.QUANTILE:case Ei.QUANTIZE:case Ei.THRESHOLD:y.scale.range(s.values);break;case Ei.IDENTITY:break;case Ei.CAT:s.values?y.scale.range(s.values):y.scale.range(y.option.domain);break;case Ei.DIVERGING:case Ei.SEQUENTIAL:y.scale.interpolator(_w(s.values));break}}if(s.values==="text"){var g;y.scale.range((g=y.option)===null||g===void 0?void 0:g.domain)}})):(s.type=d0.CONSTANT,s.defaultValues=n.map((y,m)=>y.scale(s.names[m]))),s.scalers=n.map(y=>({field:y.field,func:y.scale,option:y.option})),i.needRescale=!1}})}parseFields(t){return Array.isArray(t)?t:_C(t)?t.split("*"):[t]}createScale(t,r,i,s){var u,n;const y=this.scaleOptions[r]&&((u=this.scaleOptions[r])===null||u===void 0?void 0:u.field)===t?this.scaleOptions[r]:this.scaleOptions[t],m={field:t,scale:void 0,type:d0.VARIABLE,option:y};if(!s||!s.length)return y&&y.type?m.scale=this.createDefaultScale(y):(m.scale=Pf([t]),m.type=d0.CONSTANT),m;const g=(n=s.find(x=>!Km(x[t])))===null||n===void 0?void 0:n[t];if(this.isNumber(t)||Km(g)&&!y)m.scale=Pf([t]),m.type=d0.CONSTANT;else{let x=y&&y.type||this.getDefaultType(g);i==="text"&&(x=Ei.CAT),i===void 0&&(x=Ei.IDENTITY);const b=this.createScaleConfig(x,t,y,s);m.scale=this.createDefaultScale(b),m.option=b}return m}getDefaultType(t){let r=Ei.LINEAR;return typeof t=="string"&&(r=vC.test(t)?Ei.TIME:Ei.CAT),r}createScaleConfig(t,r,i,s){const u=_t(_t({},i),{},{type:t});if(u!=null&&u.domain)return u;let n=[];if(t===Ei.QUANTILE){const y=new Map;s==null||s.forEach(m=>{y.set(m._id,m[r])}),n=Array.from(y.values())}else n=(s==null?void 0:s.map(y=>y[r]))||[];if(t===Ei.CAT||t===Ei.IDENTITY)u.domain=gC(n);else if(t===Ei.QUANTILE)u.domain=n;else if(t===Ei.DIVERGING){const y=O5(n),m=(i==null?void 0:i.neutral)!==void 0?i==null?void 0:i.neutral:(y[0]+y[1])/2;u.domain=[y[0],m,y[1]]}else u.domain=O5(n);return u}createDefaultScale({type:t,domain:r,unknown:i,clamp:s,nice:u}){const n=EC[t]();return r&&n.domain&&n.domain(r),i&&n.unknown(i),s!==void 0&&n.clamp&&n.clamp(s),u!==void 0&&n.nice&&n.nice(u),n}}class PC{apply(t){t.hooks.beforeRender.tap("LayerAnimateStylePlugin",()=>{t.animateStatus&&t.models.forEach(i=>{i.addUniforms(_t({},t.layerModel.getAnimateUniforms()))})})}}let bC=class{apply(t){t.hooks.afterInit.tap("LayerMaskPlugin",()=>{const{maskLayers:r,enableMask:i}=t.getLayerConfig();!t.tileLayer&&r&&r.length>0&&t.updateLayerConfig({mask:i})})}};class AC{build(t){return mt(function*(){t.prepareBuildModel(),yield t.buildModels()})()}initLayerModel(t){var r=this;return mt(function*(){yield r.build(t),t.styleNeedUpdate=!1})()}prepareLayerModel(t){var r=this;return mt(function*(){yield r.build(t),t.styleNeedUpdate=!1})()}apply(t){var r=this;t.hooks.init.tapPromise("LayerModelPlugin",mt(function*(){if(t.getSource().isTile){t.prepareBuildModel();return}t.log(Ea.BuildModelStart,Ga.INIT),yield r.initLayerModel(t),t.log(Ea.BuildModelEnd,Ga.INIT)})),t.hooks.beforeRenderData.tapPromise("LayerModelPlugin",function(){var i=mt(function*(s){return!s||t.getSource().isTile?!1:(t.log(Ea.BuildModelStart,Ga.UPDATE),yield r.prepareLayerModel(t),t.log(Ea.BuildModelEnd,Ga.UPDATE),!0)});return function(s){return i.apply(this,arguments)}}())}}class FC{apply(t){t.hooks.afterInit.tap("LayerStylePlugin",()=>{const{autoFit:r,fitBoundsOptions:i}=t.getLayerConfig();r&&t.fitBounds(i),t.styleNeedUpdate=!1})}}const TC=["type"],u4={directional:{lights:"u_DirectionalLights",num:"u_NumOfDirectionalLights"},spot:{lights:"u_SpotLights",num:"u_NumOfSpotLights"}},SC={type:"directional",direction:[1,10.5,12],ambient:[.2,.2,.2],diffuse:[.6,.6,.6],specular:[.1,.1,.1]},wC={direction:[0,0,0],ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0]},RC={position:[0,0,0],direction:[0,0,0],ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],constant:1,linear:0,quadratic:0,angle:14,exponent:40,blur:5};function CC(e){const t={u_DirectionalLights:new Array(3).fill(_t({},wC)),u_NumOfDirectionalLights:0,u_SpotLights:new Array(3).fill(_t({},RC)),u_NumOfSpotLights:0};return(!e||!e.length)&&(e=[SC]),e.forEach(r=>{let{type:i="directional"}=r,s=$p(r,TC);const u=u4[i].lights,n=u4[i].num,y=t[n];t[u][y]=_t(_t({},t[u][y]),s),t[n]++}),t}class IC{apply(t){t.hooks.beforeRender.tap("LightingPlugin",()=>{const{enableLighting:r}=t.getLayerConfig();r&&t.models.forEach(i=>i.addUniforms(_t({},CC())))})}}function V9(e){return e.map(t=>(typeof t=="string"&&(t=[t,{}]),t))}function H9(e,t,r,i){const s=e.multiPassRenderer;return s.add(i("render")),V9(t).forEach(u=>{const[n,y]=u;s.add(r(n),y)}),s.add(r("copy")),s}class MC{constructor(){H(this,"enabled",void 0)}apply(t,{rendererService:r,postProcessingPassFactory:i,normalPassFactory:s}){t.hooks.init.tapPromise("MultiPassRendererPlugin",()=>{const{enableMultiPassRenderer:u,passes:n=[]}=t.getLayerConfig();this.enabled=!!u&&t.getLayerConfig().enableMultiPassRenderer!==!1,this.enabled&&(t.multiPassRenderer=H9(t,n,i,s),t.multiPassRenderer.setRenderFlag(!0))}),t.hooks.beforeRender.tap("MultiPassRendererPlugin",()=>{if(this.enabled){const{width:u,height:n}=r.getViewportSize();t.multiPassRenderer.resize(u,n)}})}}const Ec={POSITION:0,POSITION_64LOW:1,COLOR:2,PICKING_COLOR:3,STROKE:4,OPACITY:5,OFFSETS:6,ROTATION:7,MAX:8};function NC(e){switch(e){case"rotation":return{name:"Rotation",type:br.Attribute,descriptor:{name:"a_Rotation",shaderLocation:Ec.ROTATION,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{rotation:r=0}=t;return Array.isArray(r)?[r[0]]:[r]}}};case"stroke":return{name:"stroke",type:br.Attribute,descriptor:{name:"a_Stroke",shaderLocation:Ec.STROKE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:t=>{const{stroke:r=[1,1,1,1]}=t;return r}}};case"opacity":return{name:"opacity",type:br.Attribute,descriptor:{name:"a_Opacity",shaderLocation:Ec.OPACITY,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{opacity:r=1}=t;return[r]}}};case"offsets":return{name:"offsets",type:br.Attribute,descriptor:{name:"a_Offsets",shaderLocation:Ec.OFFSETS,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{offsets:r}=t;return r}}};default:return}}const{isNumber:DC}=Qn,h0={ENCODE:1,HIGHLIGHT:2};class OC{constructor(){H(this,"pickingUniformMap",void 0)}pickOption2Array(){const t=[];return this.pickingUniformMap.forEach(r=>{DC(r)?t.push(r):t.push(...r)}),t}updatePickOption(t,r){Object.keys(t).forEach(n=>{this.pickingUniformMap.set(n,t[n])});const i=r.getLayerConfig().pickingBuffer||0,s=Number(r.getShaderPickStat());this.pickingUniformMap.set("u_PickingBuffer",i),this.pickingUniformMap.set("u_shaderPick",s),r.getPickingUniformBuffer().subData({offset:0,data:this.pickOption2Array()})}apply(t,{styleAttributeService:r}){this.pickingUniformMap=new Map([["u_HighlightColor",[1,0,0,1]],["u_SelectColor",[1,0,0,1]],["u_PickingColor",[0,0,0]],["u_PickingStage",0],["u_CurrentSelectedId",[0,0,0]],["u_PickingThreshold",10],["u_PickingBuffer",0],["u_shaderPick",0],["u_activeMix",0]]),t.hooks.init.tapPromise("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();r.registerStyleAttribute({name:"pickingColor",type:br.Attribute,descriptor:{name:"a_PickingColor",shaderLocation:Ec.PICKING_COLOR,buffer:{data:[],type:L.FLOAT},size:3,update:s=>{const{id:u}=s;return i?L0(u):[0,0,0]}}})}),t.hooks.beforePickingEncode.tap("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();i&&t.isVisible()&&(this.updatePickOption({u_PickingStage:h0.ENCODE},t),t.models.forEach(s=>s.addUniforms({u_PickingStage:h0.ENCODE})))}),t.hooks.afterPickingEncode.tap("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();i&&t.isVisible()&&(this.updatePickOption({u_PickingStage:h0.HIGHLIGHT},t),t.models.forEach(s=>s.addUniforms({u_PickingStage:h0.HIGHLIGHT})))}),t.hooks.beforeHighlight.tap("PixelPickingPlugin",i=>{const{highlightColor:s,activeMix:u=0}=t.getLayerConfig(),n=typeof s=="string"?Mi(s):s||[1,0,0,1];t.updateLayerConfig({pickedFeatureID:c1(new Uint8Array(i))});const y={u_PickingStage:h0.HIGHLIGHT,u_PickingColor:i,u_HighlightColor:n.map(m=>m*255),u_activeMix:u};this.updatePickOption(y,t),t.models.forEach(m=>m.addUniforms(y))}),t.hooks.beforeSelect.tap("PixelPickingPlugin",i=>{const{selectColor:s,selectMix:u=0}=t.getLayerConfig(),n=typeof s=="string"?Mi(s):s||[1,0,0,1];t.updateLayerConfig({pickedFeatureID:c1(new Uint8Array(i))});const y={u_PickingStage:h0.HIGHLIGHT,u_PickingColor:i,u_HighlightColor:n.map(m=>m*255),u_activeMix:u,u_CurrentSelectedId:i,u_SelectColor:n.map(m=>m*255)};this.updatePickOption(y,t),t.models.forEach(m=>m.addUniforms(y))})}}const LC=["mvt","geojsonvt","testTile"];function BC(e){const t=e.getSource();return LC.includes(t.parser.type)}class UC{apply(t,{styleAttributeService:r}){t.hooks.init.tapPromise("RegisterStyleAttributePlugin",()=>{BC(t)||this.registerBuiltinAttributes(r,t)})}registerBuiltinAttributes(t,r){if(r.type==="MaskLayer"){this.registerPositionAttribute(t);return}this.registerPositionAttribute(t),this.registerColorAttribute(t)}registerPositionAttribute(t){t.registerStyleAttribute({name:"position",type:br.Attribute,descriptor:{name:"a_Position",shaderLocation:Ec.POSITION,buffer:{data:[],type:L.FLOAT},size:3,update:(r,i,s)=>s.length===2?[s[0],s[1],0]:[s[0],s[1],s[2]]}})}registerColorAttribute(t){t.registerStyleAttribute({name:"color",type:br.Attribute,descriptor:{name:"a_Color",shaderLocation:Ec.COLOR,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:r=>{const{color:i}=r;return!i||!i.length?[1,1,1,1]:i}}})}}class kC{constructor(){H(this,"cameraService",void 0),H(this,"coordinateSystemService",void 0),H(this,"rendererService",void 0),H(this,"mapService",void 0),H(this,"layerService",void 0)}apply(t,{rendererService:r,mapService:i,layerService:s,coordinateSystemService:u,cameraService:n}){this.rendererService=r,this.mapService=i,this.layerService=s,this.coordinateSystemService=u,this.cameraService=n;let y;this.rendererService.uniformBuffers[0]||(y=this.rendererService.createBuffer({data:new Float32Array(16*4+4*7),isUBO:!0,label:"renderUniformBuffer"}),this.rendererService.uniformBuffers[0]=y),t.hooks.beforeRender.tap("ShaderUniformPlugin",()=>{const m=t.getLayerConfig().tileOrigin;this.coordinateSystemService.refresh(m);const{width:g,height:x}=this.rendererService.getViewportSize(),{data:b,uniforms:F}=this.generateUBO(g,x);this.layerService.alreadyInRendering&&this.rendererService.uniformBuffers[0]&&this.rendererService.uniformBuffers[0].subData({offset:0,data:b}),this.rendererService.queryVerdorInfo()==="WebGL1"&&t.models.forEach(I=>{I.addUniforms(_t(_t({},F),{},{u_PickingBuffer:t.getLayerConfig().pickingBuffer||0,u_shaderPick:Number(t.getShaderPickStat())}))})})}generateUBO(t,r){const i=this.cameraService.getProjectionMatrix(),s=this.cameraService.getViewMatrix(),u=this.cameraService.getViewProjectionMatrix(),n=this.cameraService.getModelMatrix(),y=this.coordinateSystemService.getViewportCenterProjection(),m=this.coordinateSystemService.getPixelsPerDegree(),g=this.cameraService.getZoom(),x=this.coordinateSystemService.getPixelsPerDegree2(),b=this.cameraService.getZoomScale(),F=this.coordinateSystemService.getPixelsPerMeter(),R=this.coordinateSystemService.getCoordinateSystem(),I=this.cameraService.getCameraPosition(),U=window.devicePixelRatio,V=this.coordinateSystemService.getViewportCenter(),J=[t,r],Q=this.cameraService.getFocalDistance();return{data:[...s,...i,...u,...n,...y,...m,g,...x,b,...F,R,...I,U,...V,...J,Q,0,0,0],uniforms:{[a1.ProjectionMatrix]:i,[a1.ViewMatrix]:s,[a1.ViewProjectionMatrix]:u,[a1.Zoom]:g,[a1.ZoomScale]:b,[a1.FocalDistance]:Q,[a1.CameraPosition]:I,[c0.CoordinateSystem]:R,[c0.ViewportCenter]:V,[c0.ViewportCenterProjection]:y,[c0.PixelsPerDegree]:m,[c0.PixelsPerDegree2]:x,[c0.PixelsPerMeter]:F,u_ViewportSize:J,u_ModelMatrix:n,u_DevicePixelRatio:U}}}}class zC{apply(t){t.hooks.beforeRender.tap("UpdateModelPlugin",()=>{t.layerModel&&t.layerModel.needUpdate().then(r=>{r&&t.renderLayers()})}),t.hooks.afterRender.tap("UpdateModelPlugin",()=>{t.layerModelNeedUpdate=!1})}}class VC{apply(t,{styleAttributeService:r}){t.hooks.init.tapPromise("UpdateStyleAttributePlugin",()=>{this.initStyleAttribute(t,{styleAttributeService:r})}),t.hooks.beforeRender.tap("UpdateStyleAttributePlugin",()=>{t.layerModelNeedUpdate||t.inited&&this.updateStyleAttribute(t,{styleAttributeService:r})})}updateStyleAttribute(t,{styleAttributeService:r}){const i=r.getLayerStyleAttributes()||[],s=r.getLayerStyleAttribute("filter");if(s&&s.needRegenerateVertices){t.layerModelNeedUpdate=!0,i.forEach(u=>u.needRegenerateVertices=!1);return}i.filter(u=>u.needRegenerateVertices).forEach(u=>{r.updateAttributeByFeatureRange(u.name,t.getEncodedData(),u.featureRange.startIndex,u.featureRange.endIndex,t),u.needRegenerateVertices=!1})}initStyleAttribute(t,{styleAttributeService:r}){(r.getLayerStyleAttributes()||[]).filter(s=>s.needRegenerateVertices).forEach(s=>{r.updateAttributeByFeatureRange(s.name,t.getEncodedData(),s.featureRange.startIndex,s.featureRange.endIndex),s.needRegenerateVertices=!1})}}function HC(){return[new lw,new UC,new xC,new pw,new FC,new bC,new VC,new zC,new MC,new kC,new PC,new IC,new OC,new AC]}const G9={[_c.additive]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE,srcAlpha:1,dstAlpha:1}},[_c.none]:{enable:!1},[_c.normal]:{enable:!0,func:{srcRGB:L.SRC_ALPHA,dstRGB:L.ONE_MINUS_SRC_ALPHA,srcAlpha:1,dstAlpha:1}},[_c.subtractive]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE,srcAlpha:L.ZERO,dstAlpha:L.ONE_MINUS_SRC_COLOR},equation:{rgb:L.FUNC_SUBTRACT,alpha:L.FUNC_SUBTRACT}},[_c.max]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE},equation:{rgb:L.MAX_EXT}},[_c.min]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE},equation:{rgb:L.MIN_EXT}}};class GC{constructor(t){H(this,"layer",void 0),this.layer=t}pickRender(t){const i=this.layer.getContainer().layerService,s=this.layer;if(s.tileLayer)return s.tileLayer.pickRender(t);s.hooks.beforePickingEncode.call(),i.renderTileLayerMask(s),s.renderModels({ispick:!0}),s.hooks.afterPickingEncode.call()}pick(t,r){var i=this;return mt(function*(){const u=i.layer.getContainer().pickingService;return t.type==="RasterLayer"?i.pickRasterLayer(t,r):(i.pickRender(r),u.pickFromPickingFBO(t,r))})()}pickRasterLayer(t,r,i){const s=this.layer.getContainer(),u=s.pickingService,n=s.mapService,y=this.layer.getSource().extent,m=ME(r.lngLat,y),g={x:r.x,y:r.y,type:r.type,lngLat:r.lngLat,target:r,rasterValue:null},x=i||t;if(m){const b=this.readRasterValue(t,y,n,r.x,r.y);return g.rasterValue=b,u.triggerHoverOnLayer(x,g),!0}else return g.type=r.type==="mousemove"?"mouseout":"un"+r.type,u.triggerHoverOnLayer(x,_t(_t({},g),{},{type:"unpick"})),u.triggerHoverOnLayer(x,g),!1}readRasterValue(t,r,i,s,u){const n=t.getSource().data.dataArray[0],[y=0,m=0,g=10,x=-10]=r,b=i.lngLatToContainer([y,m]),F=i.lngLatToContainer([g,x]),R=F.x-b.x,I=b.y-F.y,U=[(s-b.x)/R,(u-F.y)/I],V=n.width||1,J=n.height||1,Q=Math.floor(U[0]*V),te=Math.floor(U[1]*J),ne=Math.max(0,te-1)*V+Q;return n.data[ne]}selectFeature(t){const r=this.layer,[i,s,u]=t;r.hooks.beforeSelect.call([i,s,u])}highlightPickedFeature(t){const[r,i,s]=t;this.layer.hooks.beforeHighlight.call([r,i,s])}getFeatureById(t){return this.layer.getSource().getFeatureById(t)}}class jC{constructor(t){H(this,"layer",void 0),H(this,"rendererService",void 0),H(this,"colorTexture",void 0),H(this,"key",void 0),this.layer=t;const r=this.layer.getContainer();this.rendererService=r.rendererService}getColorTexture(t,r){const i=this.getTextureKey(t,r);return this.key===i?this.colorTexture:(this.createColorTexture(t,r),this.key=i,this.colorTexture)}createColorTexture(t,r){const{createTexture2D:i}=this.rendererService,s=this.getColorRampBar(t,r),u=i({data:new Uint8Array(s.data),width:s.width,height:s.height,flipY:!1,unorm:!0});return this.colorTexture=u,u}setColorTexture(t,r,i){this.key=this.getTextureKey(r,i),this.colorTexture=t}destroy(){var t;(t=this.colorTexture)===null||t===void 0||t.destroy()}getColorRampBar(t,r){switch(t.type){case"cat":return vE(t);case"quantize":return EE(t);case"custom":return xE(t,r);case"linear":return gE(t,r);default:return t8(t)}}getTextureKey(t,r){var i;return`${t.colors.join("_")}_${t==null||(i=t.positions)===null||i===void 0?void 0:i.join("_")}_${t.type}_${r==null?void 0:r.join("_")}`}}const WC=["passes"],XC=["moduleName","vertexShader","fragmentShader","defines","inject","triangulation","styleOption","pickingEnabled"],{isEqual:Qm,isFunction:p4,isNumber:l4,isObject:Va,isPlainObject:ZC,isUndefined:YC}=Qn;let c4=0;class A1 extends du.EventEmitter{get shaderModuleService(){return this.container.shaderModuleService}get cameraService(){return this.container.cameraService}get coordinateService(){return this.container.coordinateSystemService}get iconService(){return this.container.iconService}get fontService(){return this.container.fontService}get pickingService(){return this.container.pickingService}get rendererService(){return this.container.rendererService}get layerService(){return this.container.layerService}get debugService(){return this.container.debugService}get interactionService(){return this.container.interactionService}get mapService(){var t;return(t=this.container)===null||t===void 0?void 0:t.mapService}get normalPassFactory(){return this.container.normalPassFactory}constructor(t={}){super(),H(this,"id",`${c4++}`),H(this,"name",`${c4}`),H(this,"parent",void 0),H(this,"coordCenter",void 0),H(this,"type",void 0),H(this,"visible",!0),H(this,"zIndex",0),H(this,"minZoom",void 0),H(this,"maxZoom",void 0),H(this,"inited",!1),H(this,"layerModelNeedUpdate",!1),H(this,"pickedFeatureID",null),H(this,"selectedFeatureID",null),H(this,"styleNeedUpdate",!1),H(this,"rendering",void 0),H(this,"forceRender",!1),H(this,"clusterZoom",0),H(this,"layerType",void 0),H(this,"triangulation",void 0),H(this,"layerPickService",void 0),H(this,"textureService",void 0),H(this,"defaultSourceConfig",{data:[],options:{parser:{type:"json"}}}),H(this,"dataState",{dataSourceNeedUpdate:!1,dataMappingNeedUpdate:!1,filterNeedUpdate:!1,featureScaleNeedUpdate:!1,StyleAttrNeedUpdate:!1}),H(this,"hooks",{init:new WA,afterInit:new X_,beforeRender:new X_,beforeRenderData:new XA,afterRender:new Wp,beforePickingEncode:new Wp,afterPickingEncode:new Wp,beforeHighlight:new Wp(["pickedColor"]),afterHighlight:new Wp,beforeSelect:new Wp(["pickedColor"]),afterSelect:new Wp,beforeDestroy:new Wp,afterDestroy:new Wp}),H(this,"models",[]),H(this,"multiPassRenderer",void 0),H(this,"plugins",void 0),H(this,"startInit",!1),H(this,"sourceOption",void 0),H(this,"layerModel",void 0),H(this,"shapeOption",void 0),H(this,"tileLayer",void 0),H(this,"layerChildren",[]),H(this,"masks",[]),H(this,"configService",X8),H(this,"styleAttributeService",void 0),H(this,"layerSource",void 0),H(this,"postProcessingPassFactory",void 0),H(this,"animateOptions",{enable:!1}),H(this,"container",void 0),H(this,"encodedData",void 0),H(this,"currentPickId",null),H(this,"rawConfig",void 0),H(this,"needUpdateConfig",void 0),H(this,"encodeStyleAttribute",{}),H(this,"enableShaderEncodeStyles",[]),H(this,"enableDataEncodeStyles",[]),H(this,"pendingStyleAttributes",[]),H(this,"scaleOptions",{}),H(this,"animateStartTime",void 0),H(this,"animateStatus",!1),H(this,"isDestroyed",!1),H(this,"uniformBuffers",[]),H(this,"encodeDataLength",0),H(this,"sourceEvent",()=>{this.dataState.dataSourceNeedUpdate=!0;const r=this.getLayerConfig();r&&r.autoFit&&this.fitBounds(r.fitBoundsOptions),this.layerSource.getSourceCfg().autoRender&&setTimeout(()=>{this.reRender()},10)}),this.name=t.name||this.id,this.zIndex=t.zIndex||0,this.rawConfig=t,this.masks=t.maskLayers||[]}addMask(t){this.masks.push(t),this.updateLayerConfig({maskLayers:this.masks}),this.enableMask()}removeMask(t){const r=this.masks.indexOf(t);r>-1&&this.masks.splice(r,1),this.updateLayerConfig({maskLayers:this.masks})}disableMask(){this.updateLayerConfig({enableMask:!1})}enableMask(){this.updateLayerConfig({enableMask:!0})}addMaskLayer(t){this.masks.push(t)}removeMaskLayer(t){const r=this.masks.indexOf(t);r>-1&&this.masks.splice(r,1),t.destroy()}getAttribute(t){return this.styleAttributeService.getLayerStyleAttribute(t)}getLayerConfig(){return this.configService.getLayerConfig(this.id)}updateLayerConfig(t){if(Object.keys(t).map(r=>{r in this.rawConfig&&(this.rawConfig[r]=t[r])}),!this.startInit)this.needUpdateConfig=_t(_t({},this.needUpdateConfig),t);else{const r=this.container.id;this.configService.setLayerConfig(r,this.id,_t(_t(_t({},this.configService.getLayerConfig(this.id)),this.needUpdateConfig),t)),this.needUpdateConfig={}}}setContainer(t){this.container=t}getContainer(){return this.container}addPlugin(t){return this.plugins.push(t),this}init(){var t=this;return mt(function*(){const r=t.container.id;t.startInit=!0,t.configService.setLayerConfig(r,t.id,t.rawConfig),t.layerType=t.rawConfig.layerType;const{enableMultiPassRenderer:i,passes:s}=t.getLayerConfig();i&&s!==null&&s!==void 0&&s.length&&s.length>0&&t.mapService.on("mapAfterFrameChange",()=>{t.renderLayers()}),t.postProcessingPassFactory=t.container.postProcessingPassFactory,t.styleAttributeService=t.container.styleAttributeService,i&&(t.multiPassRenderer=t.container.multiPassRenderer,t.multiPassRenderer.setLayer(t)),t.pendingStyleAttributes.forEach(({attributeName:u,attributeField:n,attributeValues:y,updateOptions:m})=>{t.styleAttributeService.updateStyleAttribute(u,{scale:_t({field:n},t.splitValuesAndCallbackInAttribute(y,n?void 0:t.getLayerConfig()[u]))},m)}),t.pendingStyleAttributes=[],t.plugins=HC();for(const u of t.plugins)u.apply(t,t.container);t.layerPickService=new GC(t),t.textureService=new jC(t),t.log(Ea.LayerInitStart),yield t.hooks.init.promise(),t.log(Ea.LayerInitEnd),t.inited=!0,t.emit("inited",{target:t,type:"inited"}),t.emit("add",{target:t,type:"add"}),t.hooks.afterInit.call()})()}log(t,r="init"){var i;if(this.tileLayer||this.isTileLayer)return;const s=`${this.id}.${r}.${t}`,u={id:this.id,type:this.type};(i=this.debugService)===null||i===void 0||i.log(s,u)}updateModelData(t){t.attributes&&t.elements?this.models.map(r=>{r.updateAttributesAndElements(t.attributes,t.elements)}):console.warn("data error")}setLayerPickService(t){this.layerPickService=t}prepareBuildModel(){Object.keys(this.needUpdateConfig||{}).length!==0&&this.updateLayerConfig({});const{animateOption:t}=this.getLayerConfig();t!=null&&t.enable&&(this.layerService.startAnimate(),this.animateStatus=!0)}color(t,r,i){return this.updateStyleAttribute("color",t,r,i),this}texture(t,r,i){return this.updateStyleAttribute("texture",t,r,i),this}rotate(t,r,i){return this.updateStyleAttribute("rotate",t,r,i),this}size(t,r,i){return this.updateStyleAttribute("size",t,r,i),this}filter(t,r,i){const s=this.updateStyleAttribute("filter",t,r,i);return this.dataState.dataSourceNeedUpdate=s&&this.inited,this}shape(t,r,i){this.shapeOption={field:t,values:r};const s=this.updateStyleAttribute("shape",t,r,i);return this.dataState.dataSourceNeedUpdate=s&&this.inited,this}label(t,r,i){return this.pendingStyleAttributes.push({attributeName:"label",attributeField:t,attributeValues:r,updateOptions:i}),this}animate(t){let r={};return Va(t)?(r.enable=!0,r=_t(_t({},r),t)):r.enable=t,this.updateLayerConfig({animateOption:r}),this}source(t,r){return(t==null?void 0:t.type)==="source"?(this.setSource(t),this):(this.sourceOption={data:t,options:r},this.clusterZoom=0,this)}setData(t,r){return this.inited?(this.dataUpdatelog(),this.layerSource.setData(t,r)):this.on("inited",()=>{this.dataUpdatelog(),this.layerSource.setData(t,r)}),this}dataUpdatelog(){this.log(Ea.SourceInitStart,Ga.UPDATE),this.layerSource.once("update",()=>{this.log(Ea.SourceInitEnd,Ga.UPDATE)})}style(t){const{passes:r}=t,i=$p(t,WC);r&&V9(r).forEach(u=>{const n=this.multiPassRenderer.getPostProcessor().getPostProcessingPassByName(u[0]);n&&n.updateOptions(u[1])}),i.borderColor&&(i.stroke=i.borderColor),i.borderWidth&&(i.strokeWidth=i.borderWidth);const s=i;return Object.keys(i).forEach(u=>{const n=i[u];Array.isArray(n)&&n.length===2&&!l4(n[0])&&!l4(n[1])&&(s[u]={field:n[0],value:n[1]})}),this.encodeStyle(s),this.updateLayerConfig(s),this}encodeStyle(t){Object.keys(t).forEach(r=>{[...this.enableShaderEncodeStyles,...this.enableDataEncodeStyles].includes(r)&&ZC(t[r])&&(t[r].field||t[r].value)&&!Qm(this.encodeStyleAttribute[r],t[r])?(this.encodeStyleAttribute[r]=t[r],this.updateStyleAttribute(r,t[r].field,t[r].value),this.inited&&(this.dataState.dataMappingNeedUpdate=!0)):this.encodeStyleAttribute[r]&&(delete this.encodeStyleAttribute[r],this.dataState.dataSourceNeedUpdate=!0)})}scale(t,r){const i=_t({},this.scaleOptions);if(Va(t)?this.scaleOptions=_t(_t({},this.scaleOptions),t):this.scaleOptions[t]=r,this.styleAttributeService&&!Qm(i,this.scaleOptions)){const s=Va(t)?t:{[t]:r};this.styleAttributeService.updateScaleAttribute(s)}return this}renderLayers(){this.rendering=!0,this.layerService.reRender(),this.rendering=!1}prerender(){}render(t={}){return this.tileLayer?(this.tileLayer.render(),this):(this.layerService.beforeRenderData(this),this.encodeDataLength<=0&&!this.forceRender?this:(this.renderModels(t),this))}renderMultiPass(){var t=this;return mt(function*(){t.encodeDataLength<=0&&!t.forceRender||(t.multiPassRenderer&&t.multiPassRenderer.getRenderFlag()?yield t.multiPassRenderer.render():t.renderModels())})()}active(t){const r={};return r.enableHighlight=Va(t)?!0:t,Va(t)?(r.enableHighlight=!0,t.color&&(r.highlightColor=t.color),t.mix&&(r.activeMix=t.mix)):r.enableHighlight=!!t,this.updateLayerConfig(r),this}setActive(t,r){if(Va(t)){const{x:i=0,y:s=0}=t;this.updateLayerConfig({highlightColor:Va(r)?r.color:this.getLayerConfig().highlightColor,activeMix:Va(r)?r.mix:this.getLayerConfig().activeMix}),this.pick({x:i,y:s})}else this.updateLayerConfig({pickedFeatureID:t,highlightColor:Va(r)?r.color:this.getLayerConfig().highlightColor,activeMix:Va(r)?r.mix:this.getLayerConfig().activeMix}),this.hooks.beforeHighlight.call(L0(t)).then(()=>{setTimeout(()=>{this.reRender()},1)})}select(t){const r={};return r.enableSelect=Va(t)?!0:t,Va(t)?(r.enableSelect=!0,t.color&&(r.selectColor=t.color),t.mix&&(r.selectMix=t.mix)):r.enableSelect=!!t,this.updateLayerConfig(r),this}setSelect(t,r){if(Va(t)){const{x:i=0,y:s=0}=t;this.updateLayerConfig({selectColor:Va(r)?r.color:this.getLayerConfig().selectColor,selectMix:Va(r)?r.mix:this.getLayerConfig().selectMix}),this.pick({x:i,y:s})}else this.updateLayerConfig({pickedFeatureID:t,selectColor:Va(r)?r.color:this.getLayerConfig().selectColor,selectMix:Va(r)?r.mix:this.getLayerConfig().selectMix}),this.hooks.beforeSelect.call(L0(t)).then(()=>{setTimeout(()=>{this.reRender()},1)})}setBlend(t){return this.updateLayerConfig({blend:t}),this.reRender(),this}show(){return this.updateLayerConfig({visible:!0}),this.reRender(),this.emit("show"),this}hide(){return this.updateLayerConfig({visible:!1}),this.reRender(),this.emit("hide"),this}setIndex(t){return this.zIndex=t,this.layerService.updateLayerRenderList(),this.layerService.renderLayers(),this}setCurrentPickId(t){this.currentPickId=t}getCurrentPickId(){return this.currentPickId}setCurrentSelectedId(t){this.selectedFeatureID=t}getCurrentSelectedId(){return this.selectedFeatureID}isVisible(){const t=this.mapService.getZoom(),{visible:r,minZoom:i=-1/0,maxZoom:s=1/0}=this.getLayerConfig();return!!r&&t>=i&&t<s}setMultiPass(t,r){if(this.updateLayerConfig({enableMultiPassRenderer:t}),r&&this.updateLayerConfig({passes:r}),t){const{passes:i=[]}=this.getLayerConfig();this.multiPassRenderer=H9(this,i,this.postProcessingPassFactory,this.normalPassFactory),this.multiPassRenderer.setRenderFlag(!0);const{width:s,height:u}=this.rendererService.getViewportSize();this.multiPassRenderer.resize(s,u)}return this}setMinZoom(t){return this.updateLayerConfig({minZoom:t}),this}getMinZoom(){const{minZoom:t}=this.getLayerConfig();return t}getMaxZoom(){const{maxZoom:t}=this.getLayerConfig();return t}get(t){return this.getLayerConfig()[t]}setMaxZoom(t){return this.updateLayerConfig({maxZoom:t}),this}setAutoFit(t){return this.updateLayerConfig({autoFit:t}),this}fitBounds(t){if(!this.inited)return this.updateLayerConfig({autoFit:!0}),this;const i=this.getSource().extent;return i.some(u=>Math.abs(u)===1/0)?this:(this.mapService.fitBounds([[i[0],i[1]],[i[2],i[3]]],t),this)}destroy(t=!0){var r,i,s,u,n;if(this.isDestroyed)return;(r=this.layerModel)===null||r===void 0||r.uniformBuffers.forEach(m=>{m.destroy()}),this.layerChildren.map(m=>m.destroy(!1)),this.layerChildren=[];const{maskfence:y}=this.getLayerConfig();y&&(this.masks.map(m=>m.destroy(!1)),this.masks=[]),this.hooks.beforeDestroy.call(),this.layerSource.off("update",this.sourceEvent),(i=this.multiPassRenderer)===null||i===void 0||i.destroy(),this.textureService.destroy(),this.styleAttributeService.clearAllAttributes(),this.hooks.afterDestroy.call(),(s=this.layerModel)===null||s===void 0||s.clearModels(t),(u=this.tileLayer)===null||u===void 0||u.destroy(),this.models=[],(n=this.debugService)===null||n===void 0||n.removeLog(this.id),this.emit("remove",{target:this,type:"remove"}),this.emit("destroy",{target:this,type:"destroy"}),this.removeAllListeners(),this.isDestroyed=!0}clear(){this.styleAttributeService.clearAllAttributes()}clearModels(){var t;this.models.forEach(r=>r.destroy()),(t=this.layerModel)===null||t===void 0||t.clearModels(),this.models=[]}isDirty(){return!!(this.styleAttributeService.getLayerStyleAttributes()||[]).filter(t=>t.needRescale||t.needRemapping||t.needRegenerateVertices).length}setSource(t){if(this.layerSource&&this.layerSource.off("update",this.sourceEvent),this.layerSource=t,this.clusterZoom=0,this.inited&&this.layerSource.cluster){const r=this.mapService.getZoom();this.layerSource.updateClusterData(r)}this.layerSource.inited&&this.sourceEvent(),this.layerSource.on("update",({type:r})=>{if(this.coordCenter===void 0){const i=this.layerSource.center;this.coordCenter=i}if(r==="update"){if(this.tileLayer){this.tileLayer.reload();return}this.sourceEvent()}})}getSource(){return this.layerSource}getScaleOptions(){return this.scaleOptions}setEncodedData(t){this.encodedData=t,this.encodeDataLength=t.length}getEncodedData(){return this.encodedData}getScale(t){return this.styleAttributeService.getLayerAttributeScale(t)}getLegend(t){var r,i,s;const u=this.styleAttributeService.getLayerStyleAttribute(t);return{type:(i=((u==null||(r=u.scale)===null||r===void 0?void 0:r.scalers)||[])[0])===null||i===void 0||(i=i.option)===null||i===void 0?void 0:i.type,field:u==null||(s=u.scale)===null||s===void 0?void 0:s.field,items:this.getLegendItems(t)}}getLegendItems(t){const r=this.styleAttributeService.getLayerAttributeScale(t);return r?r.invertExtent?r.range().map(s=>({value:r.invertExtent(s),[t]:s})):r.ticks?r.ticks().map(s=>({value:s,[t]:r(s)})):r!=null&&r.domain?r.domain().filter(s=>!YC(s)).map(s=>({value:s,[t]:r(s)})):[]:[]}pick({x:t,y:r}){this.interactionService.triggerHover({x:t,y:r})}boxSelect(t,r){this.pickingService.boxPickLayer(this,t,r)}buildLayerModel(t){var r=this;return mt(function*(){const{moduleName:i,vertexShader:s,fragmentShader:u,defines:n,inject:y,triangulation:m,styleOption:g,pickingEnabled:x=!0}=t,b=$p(t,XC);r.shaderModuleService.registerModule(i,{vs:s,fs:u,defines:n,inject:y});const{vs:F,fs:R,uniforms:I}=r.shaderModuleService.getModule(i),{createModel:U}=r.rendererService;return new Promise(V=>{const{attributes:J,elements:Q,count:te}=r.styleAttributeService.createAttributesAndIndices(r.encodedData,m,g,r),ne=[...r.layerModel.uniformBuffers,...r.rendererService.uniformBuffers];x&&ne.push(r.getPickingUniformBuffer());const pe=_t({attributes:J,uniforms:I,fs:R,vs:F,elements:Q,blend:G9[_c.normal],uniformBuffers:ne,textures:r.layerModel.textures},b);te&&(pe.count=te);const Oe=U(pe);V(Oe)})})()}createAttributes(t){const{triangulation:r}=t,{attributes:i}=this.styleAttributeService.createAttributes(this.encodedData,r);return i}getTime(){return this.layerService.clock.getDelta()}setAnimateStartTime(){this.animateStartTime=this.layerService.clock.getElapsedTime()}stopAnimate(){this.animateStatus&&(this.layerService.stopAnimate(),this.animateStatus=!1,this.updateLayerConfig({animateOption:{enable:!1}}))}getLayerAnimateTime(){return this.layerService.clock.getElapsedTime()-this.animateStartTime}needPick(t){const{enableHighlight:r=!0,enableSelect:i=!0}=this.getLayerConfig();let s=this.eventNames().indexOf(t)!==-1||this.eventNames().indexOf("un"+t)!==-1;return(t==="click"||t==="dblclick")&&i&&(s=!0),t==="mousemove"&&(r||this.eventNames().indexOf("mouseenter")!==-1||this.eventNames().indexOf("unmousemove")!==-1||this.eventNames().indexOf("mouseout")!==-1)&&(s=!0),this.isVisible()&&s}buildModels(){return mt(function*(){throw new Error("Method not implemented.")})()}rebuildModels(){var t=this;return mt(function*(){yield t.buildModels()})()}renderMulPass(t){return mt(function*(){yield t.render()})()}renderModels(t={}){return this.encodeDataLength<=0&&!this.forceRender?(this.clearModels(),this):(this.hooks.beforeRender.call(),this.models.forEach(r=>{r.draw({uniforms:this.layerModel.getUninforms(),blend:this.layerModel.getBlend(),stencil:this.layerModel.getStencil(t),textures:this.layerModel.textures},(t==null?void 0:t.ispick)||!1)}),this.hooks.afterRender.call(),this)}updateStyleAttribute(t,r,i,s){const u=this.configService.getAttributeConfig(this.id)||{};return Qm(u[t],{field:r,values:i})?!1:(["color","size","texture","rotate","filter","label","shape"].indexOf(t)!==-1&&this.configService.setAttributeConfig(this.id,{[t]:{field:r,values:i}}),this.startInit?this.styleAttributeService.updateStyleAttribute(t,{scale:_t({field:r},this.splitValuesAndCallbackInAttribute(i,this.getLayerConfig()[r]))},s):this.pendingStyleAttributes.push({attributeName:t,attributeField:r,attributeValues:i,updateOptions:s}),!0)}getLayerAttributeConfig(){return this.configService.getAttributeConfig(this.id)}getShaderPickStat(){return this.layerService.getShaderPickStat()}setEarthTime(t){console.warn("empty fn")}processData(t){return t}getModelType(){throw new Error("Method not implemented.")}getDefaultConfig(){return{}}initLayerModels(){var t=this;return mt(function*(){t.models.forEach(i=>i.destroy()),t.models=[],t.uniformBuffers.forEach(i=>{i.destroy()}),t.uniformBuffers=[];const r=t.rendererService.createBuffer({data:new Float32Array(20).fill(0),isUBO:!0,label:"pickingUniforms"});t.uniformBuffers.push(r),t.models=yield t.layerModel.initModels()})()}getPickingUniformBuffer(){return this.uniformBuffers[0]}reRender(){this.inited&&this.layerService.reRender()}splitValuesAndCallbackInAttribute(t){return{values:p4(t)?void 0:t,callback:p4(t)?t:void 0}}}function $C(e,t){return{enable:e,mask:255,func:{cmp:L.EQUAL,ref:t?1:0,mask:1}}}function d4(e){return e.maskOperation===jf.OR?{enable:!0,mask:255,func:{cmp:L.ALWAYS,ref:1,mask:255},opFront:{fail:L.KEEP,zfail:L.REPLACE,zpass:L.REPLACE}}:{enable:!0,mask:255,func:{cmp:e.stencilType===p1.SINGLE||e.stencilIndex===0?L.ALWAYS:L.LESS,ref:e.stencilType===p1.SINGLE?1:e.stencilIndex===0?2:1,mask:255},opFront:{fail:L.KEEP,zfail:L.REPLACE,zpass:L.REPLACE}}}const qC={opacity:1,stroke:[1,0,0,1],offsets:[0,0],rotation:0,extrusionBase:0,strokeOpacity:1,thetaOffset:.314},Rh={opacity:"float",stroke:"vec4",offsets:"vec2",textOffset:"vec2",rotation:"float",extrusionBase:"float",strokeOpacity:"float",thetaOffset:"float"};var O6={exports:{}};O6.exports=$f;O6.exports.default=$f;function $f(e,t,r){r=r||2;var i=t&&t.length,s=i?t[0]*r:e.length,u=j9(e,0,s,r,!0),n=[];if(!u||u.next===u.prev)return n;var y,m,g,x,b,F,R;if(i&&(u=tI(e,t,u,r)),e.length>80*r){y=g=e[0],m=x=e[1];for(var I=r;I<s;I+=r)b=e[I],F=e[I+1],b<y&&(y=b),F<m&&(m=F),b>g&&(g=b),F>x&&(x=F);R=Math.max(g-y,x-m),R=R!==0?32767/R:0}return Fy(u,n,r,y,m,R,0),n}function j9(e,t,r,i,s){var u,n;if(s===V2(e,t,r,i)>0)for(u=t;u<r;u+=i)n=y4(u,e[u],e[u+1],n);else for(u=r-i;u>=t;u-=i)n=y4(u,e[u],e[u+1],n);return n&&qf(n,n.next)&&(Sy(n),n=n.next),n}function v1(e,t){if(!e)return e;t||(t=e);var r=e,i;do if(i=!1,!r.steiner&&(qf(r,r.next)||On(r.prev,r,r.next)===0)){if(Sy(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function Fy(e,t,r,i,s,u,n){if(e){!n&&u&&aI(e,i,s,u);for(var y=e,m,g;e.prev!==e.next;){if(m=e.prev,g=e.next,u?QC(e,i,s,u):KC(e)){t.push(m.i/r|0),t.push(e.i/r|0),t.push(g.i/r|0),Sy(e),e=g.next,y=g.next;continue}if(e=g,e===y){n?n===1?(e=JC(v1(e),t,r),Fy(e,t,r,i,s,u,2)):n===2&&eI(e,t,r,i,s,u):Fy(v1(e),t,r,i,s,u,1);break}}}}function KC(e){var t=e.prev,r=e,i=e.next;if(On(t,r,i)>=0)return!1;for(var s=t.x,u=r.x,n=i.x,y=t.y,m=r.y,g=i.y,x=s<u?s<n?s:n:u<n?u:n,b=y<m?y<g?y:g:m<g?m:g,F=s>u?s>n?s:n:u>n?u:n,R=y>m?y>g?y:g:m>g?m:g,I=i.next;I!==t;){if(I.x>=x&&I.x<=F&&I.y>=b&&I.y<=R&&x0(s,y,u,m,n,g,I.x,I.y)&&On(I.prev,I,I.next)>=0)return!1;I=I.next}return!0}function QC(e,t,r,i){var s=e.prev,u=e,n=e.next;if(On(s,u,n)>=0)return!1;for(var y=s.x,m=u.x,g=n.x,x=s.y,b=u.y,F=n.y,R=y<m?y<g?y:g:m<g?m:g,I=x<b?x<F?x:F:b<F?b:F,U=y>m?y>g?y:g:m>g?m:g,V=x>b?x>F?x:F:b>F?b:F,J=k2(R,I,t,r,i),Q=k2(U,V,t,r,i),te=e.prevZ,ne=e.nextZ;te&&te.z>=J&&ne&&ne.z<=Q;){if(te.x>=R&&te.x<=U&&te.y>=I&&te.y<=V&&te!==s&&te!==n&&x0(y,x,m,b,g,F,te.x,te.y)&&On(te.prev,te,te.next)>=0||(te=te.prevZ,ne.x>=R&&ne.x<=U&&ne.y>=I&&ne.y<=V&&ne!==s&&ne!==n&&x0(y,x,m,b,g,F,ne.x,ne.y)&&On(ne.prev,ne,ne.next)>=0))return!1;ne=ne.nextZ}for(;te&&te.z>=J;){if(te.x>=R&&te.x<=U&&te.y>=I&&te.y<=V&&te!==s&&te!==n&&x0(y,x,m,b,g,F,te.x,te.y)&&On(te.prev,te,te.next)>=0)return!1;te=te.prevZ}for(;ne&&ne.z<=Q;){if(ne.x>=R&&ne.x<=U&&ne.y>=I&&ne.y<=V&&ne!==s&&ne!==n&&x0(y,x,m,b,g,F,ne.x,ne.y)&&On(ne.prev,ne,ne.next)>=0)return!1;ne=ne.nextZ}return!0}function JC(e,t,r){var i=e;do{var s=i.prev,u=i.next.next;!qf(s,u)&&W9(s,i,i.next,u)&&Ty(s,u)&&Ty(u,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(u.i/r|0),Sy(i),Sy(i.next),i=e=u),i=i.next}while(i!==e);return v1(i)}function eI(e,t,r,i,s,u){var n=e;do{for(var y=n.next.next;y!==n.prev;){if(n.i!==y.i&&pI(n,y)){var m=X9(n,y);n=v1(n,n.next),m=v1(m,m.next),Fy(n,t,r,i,s,u,0),Fy(m,t,r,i,s,u,0);return}y=y.next}n=n.next}while(n!==e)}function tI(e,t,r,i){var s=[],u,n,y,m,g;for(u=0,n=t.length;u<n;u++)y=t[u]*i,m=u<n-1?t[u+1]*i:e.length,g=j9(e,y,m,i,!1),g===g.next&&(g.steiner=!0),s.push(uI(g));for(s.sort(rI),u=0;u<s.length;u++)r=oI(s[u],r);return r}function rI(e,t){return e.x-t.x}function oI(e,t){var r=iI(e,t);if(!r)return t;var i=X9(r,e);return v1(i,i.next),v1(r,r.next)}function iI(e,t){var r=t,i=e.x,s=e.y,u=-1/0,n;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var y=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(y<=i&&y>u&&(u=y,n=r.x<r.next.x?r:r.next,y===i))return n}r=r.next}while(r!==t);if(!n)return null;var m=n,g=n.x,x=n.y,b=1/0,F;r=n;do i>=r.x&&r.x>=g&&i!==r.x&&x0(s<x?i:u,s,g,x,s<x?u:i,s,r.x,r.y)&&(F=Math.abs(s-r.y)/(i-r.x),Ty(r,e)&&(F<b||F===b&&(r.x>n.x||r.x===n.x&&nI(n,r)))&&(n=r,b=F)),r=r.next;while(r!==m);return n}function nI(e,t){return On(e.prev,e,t.prev)<0&&On(t.next,e,e.next)<0}function aI(e,t,r,i){var s=e;do s.z===0&&(s.z=k2(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,sI(s)}function sI(e){var t,r,i,s,u,n,y,m,g=1;do{for(r=e,e=null,u=null,n=0;r;){for(n++,i=r,y=0,t=0;t<g&&(y++,i=i.nextZ,!!i);t++);for(m=g;y>0||m>0&&i;)y!==0&&(m===0||!i||r.z<=i.z)?(s=r,r=r.nextZ,y--):(s=i,i=i.nextZ,m--),u?u.nextZ=s:e=s,s.prevZ=u,u=s;r=i}u.nextZ=null,g*=2}while(n>1);return e}function k2(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function uI(e){var t=e,r=e;do(t.x<r.x||t.x===r.x&&t.y<r.y)&&(r=t),t=t.next;while(t!==e);return r}function x0(e,t,r,i,s,u,n,y){return(s-n)*(t-y)>=(e-n)*(u-y)&&(e-n)*(i-y)>=(r-n)*(t-y)&&(r-n)*(u-y)>=(s-n)*(i-y)}function pI(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!lI(e,t)&&(Ty(e,t)&&Ty(t,e)&&cI(e,t)&&(On(e.prev,e,t.prev)||On(e,t.prev,t))||qf(e,t)&&On(e.prev,e,e.next)>0&&On(t.prev,t,t.next)>0)}function On(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function qf(e,t){return e.x===t.x&&e.y===t.y}function W9(e,t,r,i){var s=Ih(On(e,t,r)),u=Ih(On(e,t,i)),n=Ih(On(r,i,e)),y=Ih(On(r,i,t));return!!(s!==u&&n!==y||s===0&&Ch(e,r,t)||u===0&&Ch(e,i,t)||n===0&&Ch(r,e,i)||y===0&&Ch(r,t,i))}function Ch(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function Ih(e){return e>0?1:e<0?-1:0}function lI(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&W9(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function Ty(e,t){return On(e.prev,e,e.next)<0?On(e,t,e.next)>=0&&On(e,e.prev,t)>=0:On(e,t,e.prev)<0||On(e,e.next,t)<0}function cI(e,t){var r=e,i=!1,s=(e.x+t.x)/2,u=(e.y+t.y)/2;do r.y>u!=r.next.y>u&&r.next.y!==r.y&&s<(r.next.x-r.x)*(u-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function X9(e,t){var r=new z2(e.i,e.x,e.y),i=new z2(t.i,t.x,t.y),s=e.next,u=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,u.next=i,i.prev=u,i}function y4(e,t,r,i){var s=new z2(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Sy(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function z2(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}$f.deviation=function(e,t,r,i){var s=t&&t.length,u=s?t[0]*r:e.length,n=Math.abs(V2(e,0,u,r));if(s)for(var y=0,m=t.length;y<m;y++){var g=t[y]*r,x=y<m-1?t[y+1]*r:e.length;n-=Math.abs(V2(e,g,x,r))}var b=0;for(y=0;y<i.length;y+=3){var F=i[y]*r,R=i[y+1]*r,I=i[y+2]*r;b+=Math.abs((e[F]-e[I])*(e[R+1]-e[F+1])-(e[F]-e[R])*(e[I+1]-e[F+1]))}return n===0&&b===0?0:Math.abs((b-n)/n)};function V2(e,t,r,i){for(var s=0,u=t,n=r-i;u<r;u+=i)s+=(e[n]-e[u])*(e[u+1]+e[n+1]),n=u;return s}$f.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},i=0,s=0;s<e.length;s++){for(var u=0;u<e[s].length;u++)for(var n=0;n<t;n++)r.vertices.push(e[s][u][n]);s>0&&(i+=e[s-1].length,r.holes.push(i))}return r};var dI=O6.exports;const Ml=_p(dI);function h4(e){return Math.max(Math.ceil(e/4)*4,4)}function Z9(e,t,r,i=!0){const s=r===3;if(i){e=e.slice();const n=[];for(let y=0;y<e.length;y+=r){n[0]=e[y],n[1]=e[y+1],s&&(n[2]=e[y+2]);const m=Wh(n,!0,{enable:!1,decimal:1});e[y]=m[0],e[y+1]=m[1],s&&(e[y+2]=m[2])}}return Ml(e,t,r)}const Y9="ATTRIBUTE_LOCATION_";class Pi{get attributeLocation(){return _t({},Ec)}constructor(t){H(this,"triangulation",void 0),H(this,"uniformBuffers",[]),H(this,"textures",[]),H(this,"createTexture2D",void 0),H(this,"preStyleAttribute",{}),H(this,"encodeStyleAttribute",{}),H(this,"layer",void 0),H(this,"dataTexture",void 0),H(this,"DATA_TEXTURE_WIDTH",void 0),H(this,"dataTextureTest",void 0),H(this,"configService",void 0),H(this,"shaderModuleService",void 0),H(this,"rendererService",void 0),H(this,"iconService",void 0),H(this,"fontService",void 0),H(this,"styleAttributeService",void 0),H(this,"mapService",void 0),H(this,"cameraService",void 0),H(this,"layerService",void 0),H(this,"pickingService",void 0),H(this,"attributeUnifoms",void 0),H(this,"commonUnifoms",void 0),this.layer=t,this.configService=t.getContainer().globalConfigService,this.rendererService=t.getContainer().rendererService,this.pickingService=t.getContainer().pickingService,this.shaderModuleService=t.getContainer().shaderModuleService,this.styleAttributeService=t.getContainer().styleAttributeService,this.mapService=t.getContainer().mapService,this.iconService=t.getContainer().iconService,this.fontService=t.getContainer().fontService,this.cameraService=t.getContainer().cameraService,this.layerService=t.getContainer().layerService,this.registerStyleAttribute(),this.registerBuiltinAttributes(),this.startModelAnimate();const{createTexture2D:r}=this.rendererService;this.createTexture2D=r}getBlend(){const{blend:t="normal"}=this.layer.getLayerConfig();return G9[_c[t]]}getStencil(t){const{mask:r=!1,maskInside:i=!0,enableMask:s,maskOperation:u=jf.AND}=this.layer.getLayerConfig();if(this.layer.type==="MaskLayer")return d4({stencilType:p1.SINGLE});if(t.isStencil)return d4(_t(_t({},t),{},{maskOperation:u}));const n=r||s&&this.layer.masks.length!==0||this.layer.tileMask!==void 0;return $C(n,i)}getDefaultStyle(){return{}}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());this.updateStyleUnifoms();const i=_t(_t({},r.uniformsOption),t.uniformsOption);return Object.keys(i).forEach(s=>{typeof i[s]=="boolean"&&(i[s]=i[s]?1:0)}),!this.rendererService.hasOwnProperty("device")&&this.textures&&this.textures.length===1&&(i.u_texture=this.textures[0]),i}getAnimateUniforms(){return{}}needUpdate(){return mt(function*(){return!1})()}buildModels(){return mt(function*(){throw new Error("Method not implemented.")})()}initModels(){return mt(function*(){throw new Error("Method not implemented.")})()}clearModels(t=!0){}getAttribute(){throw new Error("Method not implemented.")}prerender(){}render(t){throw new Error("Method not implemented.")}registerBuiltinAttributes(){throw new Error("Method not implemented.")}animateOption2Array(t){return[t.enable?0:1,t.duration||4,t.interval||.2,t.trailLength||.1]}startModelAnimate(){const{animateOption:t}=this.layer.getLayerConfig();t.enable&&this.layer.setAnimateStartTime()}getInject(){return yI(this.layer.enableShaderEncodeStyles,this.layer.encodeStyleAttribute)}getDefines(){const t=Object.keys(this.attributeLocation).reduce((r,i)=>{const s=Y9+i;return r[s]=this.attributeLocation[i],r},{});return _t({},t)}getStyleAttribute(){const t={};return this.layer.enableShaderEncodeStyles.forEach(r=>{if(!this.layer.encodeStyleAttribute[r]){const i=this.layer.getLayerConfig()[r];let s=typeof i>"u"?qC[r]:i;r==="stroke"&&(s=Mi(s)),t["u_"+r]=s}}),t}registerStyleAttribute(){Object.keys(this.layer.encodeStyleAttribute).forEach(t=>{const r=NC(t);r&&this.styleAttributeService.registerStyleAttribute(r)})}registerPosition64LowAttribute(t=!0){this.styleAttributeService.registerStyleAttribute({name:"position64Low",type:br.Attribute,descriptor:{name:"a_Position64Low",shaderLocation:this.attributeLocation.POSITION_64LOW,buffer:{data:[],type:L.FLOAT},size:2,update:(r,i,s)=>t?[ua(s[0]),ua(s[1])]:[0,0]}})}updateEncodeAttribute(t,r){this.encodeStyleAttribute[t]=r}initUniformsBuffer(){const t=this.getUniformsBufferInfo(this.getStyleAttribute()),r=this.getCommonUniformsInfo();t.uniformsLength!==0&&(this.attributeUnifoms=this.rendererService.createBuffer({data:new Float32Array(h4(t.uniformsLength)).fill(0),isUBO:!0,label:"layerModelAttributeUnifoms"}),this.uniformBuffers.push(this.attributeUnifoms)),r.uniformsLength!==0&&(this.commonUnifoms=this.rendererService.createBuffer({data:new Float32Array(h4(r.uniformsLength)).fill(0),isUBO:!0,label:"layerModelCommonUnifoms"}),this.uniformBuffers.push(this.commonUnifoms))}getUniformsBufferInfo(t){let r=0;const i=[];return Object.values(t).forEach(s=>{Array.isArray(s)?(i.push(...s),r+=s.length):typeof s=="number"?(i.push(s),r+=1):typeof s=="boolean"&&(i.push(Number(s)),r+=1)}),{uniformsOption:t,uniformsLength:r,uniformsArray:i}}getCommonUniformsInfo(){return{uniformsLength:0,uniformsArray:[],uniformsOption:{}}}updateStyleUnifoms(){var t,r;const{uniformsArray:i}=this.getUniformsBufferInfo(this.getStyleAttribute()),{uniformsArray:s}=this.getCommonUniformsInfo();(t=this.attributeUnifoms)===null||t===void 0||t.subData({offset:0,data:new Uint8Array(new Float32Array(i).buffer)}),(r=this.commonUnifoms)===null||r===void 0||r.subData({offset:0,data:new Uint8Array(new Float32Array(s).buffer)})}}function yI(e,t){const r=[];let i="";e.forEach(n=>{const y=n.replace(/([a-z])([A-Z])/g,"$1_$2").toUpperCase(),m=Y9+y;t[n]?i+=`#define USE_ATTRIBUTE_${y} 0.0
- `:r.push(` ${Rh[n]} u_${n};`),i+=`
- #ifdef USE_ATTRIBUTE_${y}
- layout(location = ${m}) in ${Rh[n]} a_${n.charAt(0).toUpperCase()+n.slice(1)};
- #endif
- `});const s=r.length?`
- layout(std140) uniform AttributeUniforms {
- ${r.join(`
- `)}
- };
- `:"";i+=s;let u="";return e.forEach(n=>{const y=n.replace(/([a-z])([A-Z])/g,"$1_$2").toUpperCase();u+=`
- #ifdef USE_ATTRIBUTE_${y}
- ${Rh[n]} ${n} = a_${n.charAt(0).toUpperCase()+n.slice(1)};
- #else
- ${Rh[n]} ${n} = u_${n};
- #endif
- `}),{"vs:#decl":i,"fs:#decl":s,"vs:#main-start":u}}let f4=function(e){return e.VERTICAL="vertical",e.HORIZONTAL="horizontal",e}({}),hI=function(e){return e.NORMAL="normal",e.REPLACE="replace",e}({}),L6=function(e){return e[e.pixel=0]="pixel",e[e.meter=1]="meter",e}({});const $9=100;function m4(e){return e/180*Math.acos(-1)}function q9(e){const t=m4(e[0])+Math.PI/2,r=m4(e[1]),i=$9+Math.random()*.4,s=i*Math.cos(r)*Math.cos(t),u=i*Math.cos(r)*Math.sin(t),n=i*Math.sin(r);return[u,n,s]}const _4=uu();uu();const Uu=uu(),Od=uu(),Mh=uu();function g4(e,t,r,i,s){gc(e,r,i),rf(e,e),t=u2(-e[1],e[0]);const u=u2(-r[1],r[0]);return[s/p2(t,u),t]}function Ld(e,t){return Tv(e,-t[1],t[0])}function Nh(e,t,r){return zg(e,t,r),rf(e,e),e}function v4(e,t){return e[0]===t[0]&&e[1]===t[1]}class fI{constructor(t={}){H(this,"complex",void 0),H(this,"join",void 0),H(this,"cap",void 0),H(this,"miterLimit",void 0),H(this,"thickness",void 0),H(this,"normal",void 0),H(this,"lastFlip",-1),H(this,"miter",u2(0,0)),H(this,"started",!1),H(this,"dash",!1),H(this,"totalDistance",0),H(this,"currentIndex",0),this.join=t.join||"miter",this.cap=t.cap||"butt",this.miterLimit=t.miterLimit||10,this.thickness=t.thickness||1,this.dash=t.dash||!1,this.complex={positions:[],indices:[],normals:[],startIndex:0,indexes:[]}}simpleExtrude(t){const r=this.complex;if(t.length<=1)return r;this.lastFlip=-1,this.started=!1,this.normal=null,this.totalDistance=0;const i=t.length;let s=r.startIndex;for(let u=1;u<i;u++){const n=t[u-1],y=t[u],m=u<t.length-1?t[u+1]:null,g=this.simpleSegment(r,s,n,y,m);s+=g}if(this.dash)for(let u=0;u<r.positions.length/6;u++)r.positions[u*6+5]=this.totalDistance;return r.startIndex=r.positions.length/6,r}extrude(t){const r=this.complex;if(t.length<=1)return r;this.lastFlip=-1,this.started=!1,this.normal=null,this.totalDistance=0;const i=t.length;let s=r.startIndex;for(let u=1;u<i;u++){const n=t[u-1],y=t[u],m=u<t.length-1?t[u+1]:null,g=this.segment(r,s,n,y,m);s+=g}if(this.dash)for(let u=0;u<r.positions.length/6;u++)r.positions[u*6+5]=this.totalDistance;return r.startIndex=r.positions.length/6,r}simpleSegment(t,r,i,s,u){let n=0;const y=t.indices,m=t.positions,g=t.normals,x=Gu([s[0],s[1]]),b=Gu([i[0],i[1]]);Nh(Uu,x,b);let F=0;if(this.dash&&(F=this.lineSegmentDistance(x,b),this.totalDistance+=F),this.normal||(this.normal=uu(),Ld(this.normal,Uu)),this.started||(this.started=!0,this.extrusions(m,g,i,this.normal,this.thickness,this.totalDistance-F)),y.push(r+0,r+1,r+2),!u)Ld(this.normal,Uu),this.extrusions(m,g,s,this.normal,this.thickness,this.totalDistance),y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),n+=2;else{const R=Gu([u[0],u[1]]);v4(x,R)&&gc(R,x,rf(R,R3(R,x,b))),Nh(Od,R,x);const[I,U]=g4(Mh,uu(),Uu,Od,this.thickness);let V=p2(Mh,this.normal)<0?-1:1;this.extrusions(m,g,s,U,I,this.totalDistance),y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),V=-1,Rm(this.normal,U),n+=2,this.lastFlip=V}return n}segment(t,r,i,s,u){let n=0;const y=t.indices,m=t.positions,g=t.normals,x=this.cap==="square",b=this.join==="bevel",F=Gu([s[0],s[1]]),R=Gu([i[0],i[1]]);Nh(Uu,F,R);let I=0;if(this.dash&&(I=this.lineSegmentDistance(F,R),this.totalDistance+=I),this.normal||(this.normal=uu(),Ld(this.normal,Uu)),!this.started)if(this.started=!0,x){const U=uu(),V=uu();gc(U,this.normal,Uu),gc(V,this.normal,Uu),g.push(V[0],V[1],0),g.push(U[0],U[1],0),m.push(i[0],i[1],i[2]|0,this.totalDistance-I,-this.thickness,i[2]|0),this.complex.indexes.push(this.currentIndex),m.push(i[0],i[1],i[2]|0,this.totalDistance-I,this.thickness,i[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++}else this.extrusions(m,g,i,this.normal,this.thickness,this.totalDistance-I);if(y.push(r+0,r+1,r+2),u){const U=Gu([u[0],u[1]]);v4(F,U)&&gc(U,F,rf(U,R3(U,F,R))),Nh(Od,U,F);const[V,J]=g4(Mh,uu(),Uu,Od,this.thickness);let Q=p2(Mh,this.normal)<0?-1:1,te=b;!te&&this.join==="miter"&&V>this.miterLimit&&(te=!0),te?(g.push(this.normal[0],this.normal[1],0),g.push(J[0],J[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,-this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++,y.push(...this.lastFlip!==-Q?[r,r+2,r+3]:[r+2,r+1,r+3]),y.push(r+2,r+3,r+4),Ld(_4,Od),Rm(this.normal,_4),g.push(this.normal[0],this.normal[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,-this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++,n+=3):(this.extrusions(m,g,s,J,V,this.totalDistance),y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),Q=-1,Rm(this.normal,J),n+=2),this.lastFlip=Q}else{if(Ld(this.normal,Uu),x){const U=uu(),V=uu();zg(V,Uu,this.normal),gc(U,Uu,this.normal),g.push(V[0],V[1],0),g.push(U[0],U[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness,s[2]|0),this.complex.indexes.push(this.currentIndex),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++}else this.extrusions(m,g,s,this.normal,this.thickness,this.totalDistance);y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),n+=2}return n}extrusions(t,r,i,s,u,n){r.push(s[0],s[1],0),r.push(s[0],s[1],0),t.push(i[0],i[1],i[2]|0,n,-u,i[2]|0),this.complex.indexes.push(this.currentIndex),t.push(i[0],i[1],i[2]|0,n,u,i[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++}lineSegmentDistance(t,r){const i=r[0]-t[0],s=r[1]-t[1];return Math.sqrt(i*i+s*s)}}let Bd=function(e){return e.CYLINDER="cylinder",e.SQUARECOLUMN="squareColumn",e.TRIANGLECOLUMN="triangleColumn",e.HEXAGONCOLUMN="hexagonColumn",e.PENTAGONCOLUMN="pentagonColumn",e}({}),Ud=function(e){return e.CIRCLE="circle",e.SQUARE="square",e.TRIANGLE="triangle",e.HEXAGON="hexagon",e.PENTAGON="pentagon",e}({});function Ly(e,t=0){const r=Math.PI*2/e,i=[];for(let u=0;u<e;u++)i.push(r*u+t*Math.PI/12);return i.map(u=>{const n=Math.sin(u+Math.PI/4),y=Math.cos(u+Math.PI/4);return[n,y,0]})}function H2(){return Ly(30)}function E4(){return Ly(4)}function x4(){return Ly(3)}function P4(){return Ly(6,1)}function b4(){return Ly(5)}const M0={[Ud.CIRCLE]:H2,[Ud.HEXAGON]:P4,[Ud.TRIANGLE]:x4,[Ud.SQUARE]:E4,[Ud.PENTAGON]:b4,[Bd.CYLINDER]:H2,[Bd.HEXAGONCOLUMN]:P4,[Bd.TRIANGLECOLUMN]:x4,[Bd.SQUARECOLUMN]:E4,[Bd.PENTAGONCOLUMN]:b4};function mI(e){const t=e[0][0],r=e[0][e[0].length-1];t[0]===r[0]&&t[1]===r[1]&&(e[0]=e[0].slice(0,e[0].length-1));const i=e[0].length,s=Ml.flatten(e),{vertices:u,dimensions:n}=s,y=[],m=[];for(let x=0;x<u.length/n;x++)n===2?y.push(u[x*2],u[x*2+1],1):y.push(u[x*3],u[x*3+1],1);const g=Ml(s.vertices,s.holes,s.dimensions);m.push(...g);for(let x=0;x<i;x++){const b=s.vertices.slice(x*n,(x+1)*n);let F=s.vertices.slice((x+1)*n,(x+2)*n);F.length===0&&(F=s.vertices.slice(0,n));const R=y.length/3;y.push(b[0],b[1],1,F[0],F[1],1,b[0],b[1],0,F[0],F[1],0),m.push(...[0,2,1,2,3,1].map(I=>I+R))}return{positions:y,index:m}}function _I(e){const t=Ml.flatten(e),r=Ml(t.vertices,t.holes,t.dimensions);return{positions:t.vertices,index:r}}function K9(e,t=!1){const r=e[0][0],i=e[0][e[0].length-1];r[0]===i[0]&&r[1]===i[1]&&(e[0]=e[0].slice(0,e[0].length-1));const s=e[0].length,u=Ml.flatten(e),{vertices:n,dimensions:y,holes:m}=u,g=[],x=[],b=[];for(let R=0;R<n.length/y;R++)g.push(n[R*y],n[R*y+1],1,-1,-1),b.push(0,0,1);const F=Z9(n,m,y,t);x.push(...F);for(let R=0;R<s;R++){const I=u.vertices.slice(R*y,(R+1)*y);let U=u.vertices.slice((R+1)*y,(R+2)*y);U.length===0&&(U=u.vertices.slice(0,y));const V=g.length/5;g.push(I[0],I[1],1,0,0,U[0],U[1],1,.1,0,I[0],I[1],0,0,.8,U[0],U[1],0,.1,.8);const J=gI([U[0],U[1],1],[I[0],I[1],0],[I[0],I[1],1],t);b.push(...J,...J,...J,...J),x.push(...[1,2,0,3,2,1].map(Q=>Q+V))}return{positions:g,index:x,normals:b}}function gI(e,t,r,i=!1){const s=Ph(),u=Ph(),n=Ph();i&&(e=Wh(e),t=Wh(t),r=Wh(r));const y=dp(...e),m=dp(...t),g=dp(...r);C3(s,g,m),C3(u,y,m),Sv(n,s,u);const x=Ph();return $d(x,n),x}const Dh={};function d1(e){const t=h1(e.coordinates);return{vertices:[...t,...t,...t,...t],indices:[0,1,2,2,3,0],size:t.length}}function A4(e){const t=h1(e.coordinates),r=q9(t);return{vertices:[...r,...r,...r,...r],indices:[0,1,2,2,3,0],size:r.length}}function B6(e){const{shape:t}=e,{positions:r,index:i,normals:s}=AI(t,!1);return{vertices:r,indices:i,normals:s,size:5}}function vI(e){const t=h1(e.coordinates);return{vertices:[...t],indices:[0],size:t.length}}function G2(e){const{coordinates:t}=e,r=new fI({dash:!0,join:"bevel"});let i=t;i[0]&&!Array.isArray(i[0][0])&&(i=[t]),i.forEach(u=>{r.extrude(u)});const s=r.complex;return{vertices:s.positions,indices:s.indices,normals:s.normals,indexes:s.indexes,size:6}}function EI(e){const{coordinates:t}=e,r=[];if(!Array.isArray(t[0]))return{vertices:[],indices:[],normals:[],size:6,count:0};const{results:i,totalDistance:s}=xI(t);return i.map(u=>{r.push(u[0],u[1],u[2],u[3],0,s)}),{vertices:r,indices:[],normals:[],size:6,count:i.length}}function F4(e,t){const r=t[0]-e[0],i=t[1]-e[1];return Math.sqrt(r*r+i*i)}function Jm(e,t){return e.length<3&&e.push(0),t!==void 0&&e.push(t),e}function xI(e){let t=e;Array.isArray(t)&&Array.isArray(t[0])&&Array.isArray(t[0][0])&&(t=e.flat());let r=0;if(t.length<2)return{results:t,totalDistance:0};{const i=[],s=Jm(t[0],r);i.push(s);for(let n=1;n<t.length-1;n++){const y=F4(Gu(t[n-1]),Gu(t[n]));r+=y;const m=Jm(t[n],r);i.push(m),i.push(m)}const u=F4(Gu(t[t.length-2]),Gu(t[t.length-1]));return r+=u,i.push(Jm(t[t.length-1],r)),{results:i,totalDistance:r}}}function By(e){const{coordinates:t}=e,r=Ml.flatten(t),{vertices:i,dimensions:s,holes:u}=r;return{indices:Z9(i,u,s),vertices:i,size:s}}function PI(e){const{indices:t,vertices:r,size:i}=By(e);return{indices:t,vertices:bI(r),size:i+4}}function bI(e){const t=[],{center:r,radius:i}=kE(e);for(let s=0;s<e.length;s+=2){const u=e[s],n=e[s+1];t.push(u,n,0,...r,i)}return t}function Q9(e){const t=e.coordinates,{positions:r,index:i,normals:s}=K9(t,!0);return{vertices:r,indices:i,normals:s,size:5}}function J9(e){const{shape:t}=e,{positions:r,index:i}=FI(t);return{vertices:r,indices:i,size:3}}function Kf(e){const t=e.coordinates;return{vertices:[...t[0],0,0,0,...t[1],0,1,0,...t[2],0,1,1,...t[3],0,0,1],indices:[0,1,2,0,2,3],size:5}}function U6(e,t){const{segmentNumber:r=30}=t,i=e.coordinates,s=[],u=[];for(let n=0;n<r;n++)s.push(n,1,n,i[0][0],i[0][1],i[1][0],i[1][1],n,-1,n,i[0][0],i[0][1],i[1][0],i[1][1]),n!==r-1&&u.push(...[0,1,2,1,3,2].map(y=>n*2+y));return{vertices:s,indices:u,size:7}}function T4(e){const t=e.coordinates;t.length===2&&t.push(0);const r=Oh(-1,1),i=Oh(1,1),s=Oh(-1,-1),u=Oh(1,-1);return{vertices:[...t,...r,...t,...s,...t,...u,...t,...i],indices:[0,1,2,3,0,2],size:5}}function AI(e,t=!1){if(Dh&&Dh[e])return Dh[e];const r=M0[e]?M0[e]():M0.cylinder(),i=K9([r],t);return Dh[e]=i,i}function FI(e){const t=["cylinder","triangleColumn","hexagonColumn","squareColumn"],r=M0[e]?M0[e]():M0.circle();return t.indexOf(e)===-1?_I([r]):mI([r])}function Oh(e,t){const r=(e+1)/2,i=(t+1)/2;return[r,i]}function e7(e,t){return{type:e.type,field:"value",items:e.positions.map((r,i)=>({[t]:i>=e.colors.length?null:e.colors[i],value:r}))}}const TI=`in vec4 v_color;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- outputColor = filterColor(outputColor);
- }
- `,SI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos;
- layout(std140) uniform commonUniforms {
- vec2 u_radius;
- float u_opacity;
- float u_coverage;
- float u_angle;
- };
- out vec4 v_color;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- void main() {
- v_color = a_Color;
- v_color.a *= u_opacity;
- mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));
- vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage;
- vec2 lnglat = unProjectFlat(a_Pos.xy + offset);
- vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));
- gl_Position = project_common_position_to_clipspace(project_pos);
- setPickingColor(a_PickingColor);
- }
- `;class wI extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,POS:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapGrid",vertexShader:SI,fragmentShader:TI,defines:t.getDefines(),triangulation:J9,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.POS,name:"a_Pos",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}const RI=`in vec4 v_color;
- layout(std140) uniform commonUniforms {
- vec2 u_radius;
- float u_opacity;
- float u_coverage;
- float u_angle;
- };
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- outputColor = filterColor(outputColor);
- }
- `,CI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(std140) uniform commonUniforms {
- vec2 u_radius;
- float u_opacity;
- float u_coverage;
- float u_angle;
- };
- out vec4 v_color;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));
- vec2 offset = vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage);
- vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // 实际的经纬度
- vec4 project_pos = project_position(vec4(lnglat, a_Position.z * a_Size, 1.0));
- float lightWeight = calc_lighting(project_pos);
- v_color = vec4(a_Color.rgb * lightWeight, a_Color.w);
- gl_Position = project_common_position_to_clipspace(project_pos);
- setPickingColor(a_PickingColor);
- }
- `;class II extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,POS:10,NORMAL:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapGrid3d",vertexShader:CI,fragmentShader:RI,defines:t.getDefines(),triangulation:B6,primitive:L.TRIANGLES,depth:{enable:!0}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.SIZE,name:"a_Size",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}function MI(e,t){const r=[],i=[],s=[],u=e+1,n=t+1,y=e/2,m=t/2;for(let g=0;g<n;g++){const x=g-m;for(let b=0;b<u;b++){const F=b-y;i.push(F/y,-x/m,0),s.push(b/e),s.push(1-g/t)}}for(let g=0;g<t;g++)for(let x=0;x<e;x++){const b=x+u*g,F=x+u*(g+1),R=x+1+u*(g+1),I=x+1+u*g;r.push(b,F,I),r.push(F,R,I)}return{vertices:i,indices:r,uvs:s}}const NI=`layout(std140) uniform commonUniforms {
- mat4 u_ViewProjectionMatrixUncentered;
- mat4 u_InverseViewProjectionMatrix;
- float u_opacity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- float u_common_uniforms_padding3;
- };
- uniform sampler2D u_texture;
- uniform sampler2D u_colorTexture;
- in vec2 v_texCoord;
- in float v_intensity;
- out vec4 outputColor;
- void main(){
-
- float intensity = texture(SAMPLER_2D(u_texture), v_texCoord).r;
- vec4 color = texture(SAMPLER_2D(u_colorTexture),vec2(intensity, 0));
- outputColor = color;
- // gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity;
- outputColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;
- }
- `,DI=`layout(location = 0) in vec3 a_Position;
- layout(location = 10) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- mat4 u_ViewProjectionMatrixUncentered;
- mat4 u_InverseViewProjectionMatrix;
- float u_opacity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- float u_common_uniforms_padding3;
- };
- uniform sampler2D u_texture;
- uniform sampler2D u_colorTexture;
- out vec2 v_texCoord;
- out float v_intensity;
- vec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) {
- float t2 = t * t;
- float one_minus_t = 1.0 - t;
- float one_minus_t2 = one_minus_t * one_minus_t;
- return P0 * one_minus_t2 * one_minus_t +
- P1 * 3.0 * t * one_minus_t2 +
- P2 * 3.0 * t2 * one_minus_t +
- P3 * t2 * t;
- }
- vec2 toBezier(float t, vec4 p) {
- return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0));
- }
- #pragma include "projection"
- #pragma include "project"
- void main() {
- v_texCoord = a_Uv;
- vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // 将原本 0 -> 1 的 uv 转换为 -1 -> 1 的标准坐标空间(NDC)
- vec4 p1 = vec4(pos, 0.0, 1.0); // x/y 平面上的点(z == 0)可以认为是三维上的点被投影到平面后的点
- vec4 p2 = vec4(pos, 1.0, 1.0); // 平行于x/y平面、z==1 的平面上的点
- vec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // 根据视图投影矩阵的逆矩阵平面上的反算出三维空间中的点(p1平面上的点)
- vec4 inverseP2 = u_InverseViewProjectionMatrix * p2;
- inverseP1 = inverseP1 / inverseP1.w; // 归一化操作(归一化后为世界坐标)
- inverseP2 = inverseP2 / inverseP2.w;
- float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ??
- vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1);
- vec4 b = vec4(0.5, 0.0, 1.0, 0.5);
- float fh;
- v_intensity = texture(SAMPLER_2D(u_texture), v_texCoord).r;
- fh = toBezier(v_intensity, b).y;
- gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.0), 1.0);
- }
- `,OI=`uniform sampler2D u_texture; // 热力强度图
- uniform sampler2D u_colorTexture; // 根据强度分布的色带
- layout(std140) uniform commonUniforms {
- float u_opacity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- float u_common_uniforms_padding3;
- };
- in vec2 v_texCoord;
- out vec4 outputColor;
- #pragma include "scene_uniforms"
- float getBlurIndusty() {
- float vW = 2.0/ u_ViewportSize.x;
- float vH = 2.0/ u_ViewportSize.y;
- vec2 vUv = v_texCoord;
- float i11 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;
- float i12 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;
- float i13 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;
- float i21 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y) ).r;
- float i22 = texture(SAMPLER_2D(u_texture), vec2( vUv.x , vUv.y) ).r;
- float i23 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y) ).r;
- float i31 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;
- float i32 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;
- float i33 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;
- return(
- i11 +
- i12 +
- i13 +
- i21 +
- i21 +
- i22 +
- i23 +
- i31 +
- i32 +
- i33
- )/9.0;
- }
- void main(){
- // float intensity = texture(u_texture, v_texCoord).r;
- float intensity = getBlurIndusty();
- vec4 color = texture(SAMPLER_2D(u_colorTexture), vec2(intensity, 0.0));
- outputColor = color;
- outputColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;
- }
- `,LI=`layout(location = 0) in vec3 a_Position;
- layout(location = 10) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- float u_opacity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- float u_common_uniforms_padding3;
- };
- #pragma include "scene_uniforms"
- out vec2 v_texCoord;
- void main() {
- v_texCoord = a_Uv;
- #ifdef VIEWPORT_ORIGIN_TL
- v_texCoord.y = 1.0 - v_texCoord.y;
- #endif
- gl_Position = vec4(a_Position.xy, 0, 1.0);
- }
- `,BI=`layout(std140) uniform commonUniforms {
- float u_radius;
- float u_intensity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- };
- in vec2 v_extrude;
- in float v_weight;
- out vec4 outputColor;
- #define GAUSS_COEF 0.3989422804014327
- void main(){
- float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);
- float val = v_weight * u_intensity * GAUSS_COEF * exp(d);
- outputColor = vec4(val, 1., 1., 1.);
- }
- `,UI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_DIR) in vec2 a_Dir;
- layout(std140) uniform commonUniforms {
- float u_radius;
- float u_intensity;
- float u_common_uniforms_padding1;
- float u_common_uniforms_padding2;
- };
- out vec2 v_extrude;
- out float v_weight;
- #define GAUSS_COEF (0.3989422804014327)
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- vec3 picking_color_placeholder = u_PickingColor;
- v_weight = a_Size;
- float ZERO = 1.0 / 255.0 / 16.0;
- float extrude_x = a_Dir.x * 2.0 - 1.0;
- float extrude_y = a_Dir.y * 2.0 - 1.0;
- vec2 extrude_dir = normalize(vec2(extrude_x, extrude_y));
- float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5;
- v_extrude = extrude_dir * S;
- vec2 offset = project_pixel(v_extrude * u_radius);
- vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));
- }
- `,{isEqual:kI}=Qn;class S4 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"colorTexture",void 0),H(this,"heatmapFramerBuffer",void 0),H(this,"heatmapTexture",void 0),H(this,"intensityModel",void 0),H(this,"colorModel",void 0),H(this,"shapeType",void 0),H(this,"preRampColors",void 0),H(this,"colorModelUniformBuffer",[]),H(this,"heat3DModelUniformBuffer",[])}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,UV:10,DIR:11})}prerender(){const{clear:t,useFramebuffer:r}=this.rendererService;r(this.heatmapFramerBuffer,()=>{t({color:[0,0,0,0],depth:1,stencil:0,framebuffer:this.heatmapFramerBuffer}),this.drawIntensityMode()})}render(t){const{rampColors:r}=this.layer.getLayerConfig();kI(this.preRampColors,r)||this.updateColorTexture(),this.shapeType==="heatmap"?this.drawHeatMap(t):this.draw3DHeatMap(t)}getUninforms(){throw new Error("Method not implemented.")}initModels(){var t=this;return mt(function*(){var r;const{createFramebuffer:i,getViewportSize:s,createTexture2D:u}=t.rendererService,n=t.styleAttributeService.getLayerStyleAttribute("shape"),y=(n==null||(r=n.scale)===null||r===void 0?void 0:r.field)||"heatmap";t.shapeType=y,t.intensityModel=yield t.buildHeatMapIntensity(),t.colorModel=y==="heatmap"?t.buildHeatmap():t.build3dHeatMap();const{width:m,height:g}=s();return t.heatmapTexture=u({width:Math.floor(m/4),height:Math.floor(g/4),wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.LINEAR,mag:L.LINEAR,usage:f1.RENDER_TARGET}),t.heatmapFramerBuffer=i({color:t.heatmapTexture,depth:!0,width:Math.floor(m/4),height:Math.floor(g/4)}),t.updateColorTexture(),[t.intensityModel,t.colorModel]})()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"dir",type:br.Attribute,descriptor:{name:"a_Dir",shaderLocation:this.attributeLocation.DIR,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return[r]}}})}buildHeatMapIntensity(){var t=this;return mt(function*(){return t.uniformBuffers=[t.rendererService.createBuffer({data:new Float32Array(4).fill(0),isUBO:!0})],t.layer.triangulation=T4,yield t.layer.buildLayerModel({moduleName:"heatmapIntensity",vertexShader:UI,fragmentShader:BI,triangulation:T4,defines:t.getDefines(),depth:{enable:!1},cull:{enable:!0,face:L.FRONT}})})()}buildHeatmap(){this.shaderModuleService.registerModule("heatmapColor",{vs:LI,fs:OI}),this.colorModelUniformBuffer=[this.rendererService.createBuffer({data:new Float32Array(4).fill(0),isUBO:!0})];const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("heatmapColor"),{createAttribute:s,createElements:u,createBuffer:n,createModel:y}=this.rendererService;return y({vs:t,fs:r,uniformBuffers:[...this.colorModelUniformBuffer,...this.rendererService.uniformBuffers],attributes:{a_Position:s({shaderLocation:this.attributeLocation.POSITION,buffer:n({data:[-1,1,0,1,1,0,-1,-1,0,1,-1,0],type:L.FLOAT}),size:3}),a_Uv:s({shaderLocation:this.attributeLocation.UV,buffer:n({data:[0,1,1,1,0,0,1,0],type:L.FLOAT}),size:2})},uniforms:_t({},i),depth:{enable:!1},elements:u({data:[0,2,1,2,3,1],type:L.UNSIGNED_INT,count:6})})}build3dHeatMap(){const{getViewportSize:t}=this.rendererService,{width:r,height:i}=t(),s=MI(r/4,i/4);this.shaderModuleService.registerModule("heatmap3dColor",{vs:DI,fs:NI}),this.heat3DModelUniformBuffer=[this.rendererService.createBuffer({data:new Float32Array(16*2+4).fill(0),isUBO:!0})];const{vs:u,fs:n,uniforms:y}=this.shaderModuleService.getModule("heatmap3dColor"),{createAttribute:m,createElements:g,createBuffer:x,createModel:b}=this.rendererService;return b({vs:u,fs:n,attributes:{a_Position:m({shaderLocation:this.attributeLocation.POSITION,buffer:x({data:s.vertices,type:L.FLOAT}),size:3}),a_Uv:m({shaderLocation:this.attributeLocation.UV,buffer:x({data:s.uvs,type:L.FLOAT}),size:2})},primitive:L.TRIANGLES,uniformBuffers:[...this.heat3DModelUniformBuffer,...this.rendererService.uniformBuffers],uniforms:_t({},y),depth:{enable:!0},blend:{enable:!0,func:{srcRGB:L.SRC_ALPHA,srcAlpha:1,dstRGB:L.ONE_MINUS_SRC_ALPHA,dstAlpha:1}},elements:g({data:s.indices,type:L.UNSIGNED_INT,count:s.indices.length})})}drawIntensityMode(){var t;const{intensity:r=10,radius:i=5}=this.layer.getLayerConfig(),s={u_radius:i,u_intensity:r};this.uniformBuffers[0].subData({offset:0,data:[i,r]}),this.layerService.beforeRenderData(this.layer),this.layer.hooks.beforeRender.call(),(t=this.intensityModel)===null||t===void 0||t.draw({uniforms:s,blend:{enable:!0,func:{srcRGB:L.ONE,srcAlpha:1,dstRGB:L.ONE,dstAlpha:1}},stencil:{enable:!1,mask:255,func:{cmp:514,ref:1,mask:255}}}),this.layer.hooks.afterRender.call()}drawHeatMap(t){var r;const{opacity:i=1}=this.layer.getLayerConfig(),s={u_opacity:i,u_colorTexture:this.colorTexture,u_texture:this.heatmapFramerBuffer},u=[this.heatmapTexture,this.colorTexture];this.colorModelUniformBuffer[0].subData({offset:0,data:[i]}),(r=this.colorModel)===null||r===void 0||r.draw({uniforms:s,textures:u,blend:this.getBlend(),stencil:this.getStencil(t)})}draw3DHeatMap(t){var r;const{opacity:i=1}=this.layer.getLayerConfig(),s=Vf();o6(s,this.cameraService.getViewProjectionMatrixUncentered());const u={u_opacity:i,u_colorTexture:this.colorTexture,u_texture:this.heatmapFramerBuffer,u_ViewProjectionMatrixUncentered:this.cameraService.getViewProjectionMatrixUncentered(),u_InverseViewProjectionMatrix:[...s]};this.heat3DModelUniformBuffer[0].subData({offset:0,data:[...u.u_ViewProjectionMatrixUncentered,...u.u_InverseViewProjectionMatrix,i]});const n=[this.heatmapTexture,this.colorTexture];(r=this.colorModel)===null||r===void 0||r.draw({uniforms:u,textures:n,blend:{enable:!0,func:{srcRGB:L.SRC_ALPHA,srcAlpha:1,dstRGB:L.ONE_MINUS_SRC_ALPHA,dstAlpha:1}},stencil:this.getStencil(t)})}updateColorTexture(){const{createTexture2D:t}=this.rendererService;this.texture&&this.texture.destroy();const{rampColors:r}=this.layer.getLayerConfig(),i=t8(r);this.colorTexture=t({data:i.data,usage:f1.SAMPLED,width:i.width,height:i.height,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.NEAREST,mag:L.NEAREST,flipY:!1,unorm:!0}),this.preRampColors=r}}const zI=`in vec4 v_color;
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- outputColor = filterColor(outputColor);
- }
- `,VI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos;
- layout(std140) uniform commonUniforms {
- vec2 u_radius;
- float u_opacity;
- float u_coverage;
- float u_angle;
- };
- out vec4 v_color;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- void main() {
- v_color = a_Color;
- v_color.a *= u_opacity;
- mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));
- vec2 offset = vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage);
- vec2 lnglat = unProjectFlat(a_Pos.xy + offset);
- vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class HI extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,POS:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapHexagon",vertexShader:VI,fragmentShader:zI,defines:t.getDefines(),triangulation:J9,depth:{enable:!1},primitive:L.TRIANGLES})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}const GI={heatmap:S4,heatmap3d:S4,grid:wI,grid3d:II,hexagon:HI};class jI extends A1{constructor(...t){super(...t),H(this,"type","HeatMapLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new GI[r](t),yield t.initLayerModels()})()}prerender(){this.getModelType()==="heatmap"&&this.layerModel&&this.layerModel.prerender()}renderModels(t={}){return this.getModelType()==="heatmap"?(this.layerModel&&this.layerModel.render(t),this):this.encodeDataLength<=0&&!this.forceRender?this:(this.hooks.beforeRender.call(),this.models.forEach(i=>i.draw({uniforms:this.layerModel.getUninforms(),blend:this.layerModel.getBlend(),stencil:this.layerModel.getStencil(t)})),this.hooks.afterRender.call(),this)}updateModelData(t){t.attributes&&t.elements?this.models[0].updateAttributesAndElements(t.attributes,t.elements):console.warn("data error")}getModelType(){var t;const r=this.styleAttributeService.getLayerStyleAttribute("shape"),{shape3d:i}=this.getLayerConfig(),u=this.getSource().data.type,n=(r==null||(t=r.scale)===null||t===void 0?void 0:t.field)||"heatmap";return n==="heatmap"||n==="heatmap3d"?"heatmap":u==="hexagon"?(i==null?void 0:i.indexOf(n))===-1?"hexagon":"grid3d":u==="grid"?(i==null?void 0:i.indexOf(n))===-1?"grid":"grid3d":"heatmap"}getLegend(t){if(this.getModelType()==="heatmap"){if(t!=="color")return{type:void 0,field:void 0,items:[]};const r=this.getLayerConfig().rampColors;return e7(r,t)}else return super.getLegend(t)}}const WI=`uniform sampler2D u_texture;
- layout(std140) uniform commonUniforms {
- float u_opacity:1.0;
- float u_brightness:1.0;
- float u_contrast:1.0;
- float u_saturation:1.0;
- float u_gamma:1.0;
- };
- in vec2 v_texCoord;
- out vec4 outputColor;
- vec3 setContrast(vec3 rgb, float contrast) {
- vec3 color = mix(vec3(0.5), rgb, contrast);
- color = clamp(color, 0.0, 1.0);
- return color;
- }
- vec3 setSaturation(vec3 rgb, float adjustment) {
- const vec3 grayVector = vec3(0.2125, 0.7154, 0.0721);
- vec3 intensity = vec3(dot(rgb, grayVector));
- vec3 color = mix(intensity, rgb, adjustment);
- color = clamp(color, 0.0, 1.0);
- return color;
- }
- void main() {
- vec4 color = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y));
- //brightness
- color.rgb = mix(vec3(0.0, 0.0, 0.0), color.rgb, u_brightness);
- //contrast
- color.rgb = setContrast(color.rgb, u_contrast);
- // saturation
- color.rgb = setSaturation(color.rgb, u_saturation);
- // gamma
- color.rgb = pow(color.rgb, vec3(u_gamma));
- outputColor = color;
- outputColor.a *= u_opacity;
- if(outputColor.a < 0.01)
- discard;
- }
- `,XI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- float u_opacity:1.0;
- float u_brightness:1.0;
- float u_contrast:1.0;
- float u_saturation:1.0;
- float u_gamma:1.0;
- };
- out vec2 v_texCoord;
- #pragma include "projection"
- void main() {
- v_texCoord = a_Uv;
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0));
- }
- `;let ZI=class extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getCommonUniformsInfo(){const{opacity:t,brightness:r,contrast:i,saturation:s,gamma:u}=this.layer.getLayerConfig(),n={u_opacity:Td(t,1),u_brightness:Td(r,1),u_contrast:Td(i,1),u_saturation:Td(s,1),u_gamma:Td(u,1)};return this.textures=[this.texture],this.getUniformsBufferInfo(n)}initModels(){var t=this;return mt(function*(){return yield t.loadTexture(),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}loadTexture(){var t=this;return mt(function*(){const{createTexture2D:r}=t.rendererService,s=yield t.layer.getSource().data.images;t.texture=r({data:s[0],width:s[0].width,height:s[0].height,mag:L.LINEAR,min:L.LINEAR})})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"rasterImage",vertexShader:XI,fragmentShader:WI,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,blend:{enable:!0},depth:{enable:!1},pickingEnabled:!1})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}};const YI={image:ZI};class $I extends A1{constructor(...t){super(...t),H(this,"type","ImageLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new YI[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{image:{}}[t]}getModelType(){return"image"}}const qI=`
- #define Animate 0.0
- #define LineTexture 1.0
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float segmentNumber;
- float u_lineDir: 1.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_blur : 0.9;
- float u_line_type: 0.0;
- float u_time;
- float u_linearColor: 0.0;
- };
- in vec4 v_color;
- in vec2 v_iconMapUV;
- in vec4 v_lineData;
- //dash
- in vec4 v_dash_array;
- in float v_distance_ratio;
- out vec4 outputColor;
- #pragma include "picking"
- void main() {
- if(u_dash_array!=vec4(0.0)){
- float dashLength = mod(v_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w);
- if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) {
- discard;
- };
- }
- float animateSpeed = 0.0; // 运动速度
- outputColor = v_color;
- if(u_animate.x == Animate && u_line_texture != LineTexture) {
- animateSpeed = u_time / u_animate.y;
- float alpha =1.0 - fract( mod(1.0- v_lineData.b, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y);
- alpha = (alpha + u_animate.w -1.0) / u_animate.w;
- // alpha = smoothstep(0., 1., alpha);
- alpha = clamp(alpha, 0.0, 1.0);
- outputColor.a *= alpha;
- }
- // 当存在贴图时在底色上贴上贴图
- if(u_line_texture == LineTexture) { // while load texture
- float arcRadio = smoothstep( 0.0, 1.0, (v_lineData.r / segmentNumber));
- // float arcRadio = smoothstep( 0.0, 1.0, d_distance_ratio);
- float count = v_lineData.g; // 贴图在弧线上重复的数量
- float time = 0.0;
- if(u_animate.x == Animate) {
- time = u_time / u_animate.y;
- }
- float redioCount = arcRadio * count;
- float u = fract(redioCount - time);
- float v = v_lineData.a; // 横向 v
- vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;
- vec4 pattern = texture(SAMPLER_2D(u_texture), uv);
- if(u_animate.x == Animate) {
- float currentPlane = floor(redioCount - time);
- float textureStep = floor(count * u_animate.z);
- float a = mod(currentPlane, textureStep);
- if(a < textureStep - 1.0) {
- pattern = vec4(0.0);
- }
- }
- if(u_textureBlend == 0.0) { // normal
- pattern.a = 0.0;
- outputColor = filterColor(outputColor + pattern);
- } else { // replace
- pattern.a *= v_color.a;
- if(outputColor.a <= 0.0) {
- pattern.a = 0.0;
- }
- outputColor = filterColor(pattern);
- }
-
- } else {
- outputColor = filterColor(outputColor);
- }
- }`,KI=`#define Animate (0.0)
- #define LineTexture (1.0)
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float segmentNumber;
- float u_lineDir: 1.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_blur : 0.9;
- float u_line_type: 0.0;
- float u_time;
- float u_linearColor: 0.0;
- };
- out vec4 v_color;
- out vec2 v_iconMapUV;
- out vec4 v_lineData;
- //dash
- out vec4 v_dash_array;
- out float v_distance_ratio;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- float bezier3(vec3 arr, float t) {
- float ut = 1.0 - t;
- return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t;
- }
- vec2 midPoint(vec2 source, vec2 target, float arcThetaOffset) {
- vec2 center = target - source;
- float r = length(center);
- float theta = atan(center.y, center.x);
- float thetaOffset = arcThetaOffset;
- float r2 = r / 2.0 / cos(thetaOffset);
- float theta2 = theta + thetaOffset;
- vec2 mid = vec2(r2 * cos(theta2) + source.x, r2 * sin(theta2) + source.y);
- if (u_lineDir == 1.0) {
- // 正向
- return mid;
- } else {
- // 逆向
- // (mid + vmin)/2 = (s + t)/2
- vec2 vmid = source + target - mid;
- return vmid;
- }
- // return mid;
- }
- float getSegmentRatio(float index) {
- // dash: index / (segmentNumber - 1.);
- // normal: smoothstep(0.0, 1.0, index / (segmentNumber - 1.));
- return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0));
- // return index / (segmentNumber - 1.);
- }
- vec2 interpolate(vec2 source, vec2 target, float t, float arcThetaOffset) {
- // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation
- vec2 mid = midPoint(source, target, arcThetaOffset);
- vec3 x = vec3(source.x, mid.x, target.x);
- vec3 y = vec3(source.y, mid.y, target.y);
- return vec2(bezier3(x, t), bezier3(y, t));
- }
- vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0;
- return offset;
- }
- vec2 getNormal(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- return dir_screenspace.xy * sign(offset_direction);
- }
- void main() {
- //vs中计算渐变色
- if (u_linearColor == 1.0) {
- float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置
- v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex / segmentNumber);
- } else {
- v_color = a_Color;
- }
- v_color.a = v_color.a * opacity;
- vec2 source_world = a_Instance.rg; // 起始点
- vec2 target_world = a_Instance.ba; // 终点
- float segmentIndex = a_Position.x;
- float segmentRatio = getSegmentRatio(segmentIndex);
- // 计算 dashArray 和 distanceRatio 输出到片元
- float total_Distance = pixelDistance(source_world, target_world) / 2.0 * PI;
- v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / total_Distance;
- v_distance_ratio = segmentIndex / segmentNumber;
- float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));
- float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir);
- float d_distance_ratio;
- if(u_animate.x == Animate) {
- d_distance_ratio = segmentIndex / segmentNumber;
- if(u_lineDir != 1.0) {
- d_distance_ratio = 1.0 - d_distance_ratio;
- }
- }
- v_lineData.b = d_distance_ratio;
- vec4 source = project_position(vec4(source_world, 0, 1.), a_Instance64Low.xy);
- vec4 target = project_position(vec4(target_world, 0, 1.), a_Instance64Low.zw);
- vec2 currPos = interpolate(source.xy, target.xy, segmentRatio, thetaOffset);
- vec2 nextPos = interpolate(source.xy, target.xy, nextSegmentRatio, thetaOffset);
- vec2 offset = project_pixel(
- getExtrusionOffset((nextPos.xy - currPos.xy) * indexDir, a_Position.y)
- );
- float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置
- v_lineData.r = d_segmentIndex;
- if(LineTexture == u_line_texture) { // 开启贴图模式
- float arcDistrance = length(source - target); // 起始点和终点的距离
- arcDistrance = project_pixel(arcDistrance);
- v_iconMapUV = a_iconMapUV;
- float pixelLen = project_pixel_texture(u_icon_step); // 贴图沿弧线方向的长度 - 随地图缩放改变
- float texCount = floor(arcDistrance / pixelLen); // 贴图在弧线上重复的数量
- v_lineData.g = texCount;
- float lineOffsetWidth = length(offset + offset * sign(a_Position.y)); // 线横向偏移的距离
- float linePixelSize = project_pixel(a_Size); // 定点位置偏移
- v_lineData.a = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值
- }
- gl_Position = project_common_position_to_clipspace(vec4(currPos.xy + offset, 0, 1.0));
- setPickingColor(a_PickingColor);
- }
- `,QI={solid:0,dash:1};class JI extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12,THETA_OFFSET:13})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],forward:n=!0,lineTexture:y=!1,iconStep:m=100,segmentNumber:g=30}=this.layer.getLayerConfig(),{animateOption:x}=this.layer.getLayerConfig();let b=u;s!=="dash"&&(b=[0,0]),b.length===2&&b.push(0,0);let F=0,R=[0,0,0,0],I=[0,0,0,0];if(t&&r&&(R=Mi(t),I=Mi(r),F=1),this.rendererService.getDirty()){var U;(U=this.texture)===null||U===void 0||U.bind()}const V={u_animate:this.animateOption2Array(x),u_dash_array:b,u_sourceColor:R,u_targetColor:I,u_textSize:[1024,this.iconService.canvasHeight||128],segmentNumber:g,u_lineDir:n?1:-1,u_icon_step:m,u_line_texture:y?1:0,u_textureBlend:i==="normal"?0:1,u_blur:.9,u_line_type:QI[s||"solid"],u_time:this.layer.getLayerAnimateTime()||0,u_linearColor:F};return this.getUniformsBufferInfo(V)}initModels(){var t=this;return mt(function*(){return t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}getShaders(){return{frag:qI,vert:KI,type:""}}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const{segmentNumber:r=30}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:"lineArc2d"+u,vertexShader:s,fragmentShader:i,defines:t.getDefines(),inject:t.getInject(),triangulation:U6,depth:{enable:!1},styleOption:{segmentNumber:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"thetaOffset",type:br.Attribute,descriptor:{name:"a_ThetaOffset",shaderLocation:this.attributeLocation.THETA_OFFSET,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{thetaOffset:r=1}=t;return[r]}}})}}const eM=`#define LineTypeSolid 0.0
- #define LineTypeDash 1.0
- #define Animate 0.0
- #define LineTexture 1.0
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array: [10.0, 5., 0, 0];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_globel;
- float u_globel_radius;
- float u_global_height: 10;
- float segmentNumber;
- float u_line_type: 0.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_time;
- float u_linearColor: 0.0;
- };
- in vec4 v_color;
- in vec4 v_dash_array;
- in float v_segmentIndex;
- in vec2 v_iconMapUV;
- in vec4 v_line_data;
- out vec4 outputColor;
- #pragma include "picking"
- void main() {
- float animateSpeed = 0.0; // 运动速度
- float d_distance_ratio = v_line_data.g; // 当前点位距离占线总长的比例
- outputColor = v_color;
- if(u_line_type == LineTypeDash) {
- float flag = 0.;
- float dashLength = mod(d_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w);
- if(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z)) {
- flag = 1.;
- }
- outputColor.a *=flag;
- }
- if(u_animate.x == Animate && u_line_texture != LineTexture) {
- animateSpeed = u_time / u_animate.y;
- float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y);
- alpha = (alpha + u_animate.w -1.0) / u_animate.w;
- // alpha = smoothstep(0., 1., alpha);
- alpha = clamp(alpha, 0.0, 1.0);
- outputColor.a *= alpha;
- // u_animate
- // x enable
- // y duration
- // z interval
- // w trailLength
- }
- if(u_line_texture == LineTexture && u_line_type != LineTypeDash) { // while load texture
- // float arcRadio = smoothstep( 0.0, 1.0, (v_segmentIndex / segmentNumber));
- float arcRadio = v_segmentIndex / (segmentNumber - 1.0);
- float count = v_line_data.b; // // 贴图在弧线上重复的数量
- float time = 0.0;
- if(u_animate.x == Animate) {
- time = u_time / u_animate.y;
- }
- float redioCount = arcRadio * count;
- float u = fract(redioCount - time);
- float v = v_line_data.a; // 线图层贴图部分的 v 坐标值
- vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;
- vec4 pattern = texture(SAMPLER_2D(u_texture), uv);
- if(u_animate.x == Animate) {
- float currentPlane = floor(redioCount - time);
- float textureStep = floor(count * u_animate.z);
- float a = mod(currentPlane, textureStep);
- if(a < textureStep - 1.0) {
- pattern = vec4(0.0);
- }
- }
- if(u_textureBlend == 0.0) { // normal
- pattern.a = 0.0;
- outputColor = filterColor(outputColor + pattern);
- } else { // replace
- pattern.a *= v_color.a;
- if(outputColor.a <= 0.0) {
- pattern.a = 0.0;
- discard;
- } else {
- outputColor = filterColor(pattern);
- }
- }
- } else {
- outputColor = filterColor(outputColor);
- }
- }
- `,tM=`#define LineTypeSolid 0.0
- #define LineTypeDash 1.0
- #define Animate 0.0
- #define LineTexture 1.0
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array: [10.0, 5., 0, 0];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_globel;
- float u_globel_radius;
- float u_global_height: 10;
- float segmentNumber;
- float u_line_type: 0.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_time;
- float u_linearColor: 0.0;
- };
- out vec4 v_color;
- out vec4 v_dash_array;
- out float v_segmentIndex;
- out vec2 v_iconMapUV;
- out vec4 v_line_data;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- float maps (float value, float start1, float stop1, float start2, float stop2) {
- return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1));
- }
- float getSegmentRatio(float index) {
- return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0));
- }
- float paraboloid(vec2 source, vec2 target, float ratio) {
- vec2 x = mix(source, target, ratio);
- vec2 center = mix(source, target, 0.5);
- float dSourceCenter = distance(source, center);
- float dXCenter = distance(x, center);
- return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter);
- }
- vec3 getPos(vec2 source, vec2 target, float segmentRatio) {
- float vertex_height = paraboloid(source, target, segmentRatio);
- return vec3(
- mix(source, target, segmentRatio),
- sqrt(max(0.0, vertex_height))
- );
- }
- vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0;
- return offset;
- }
- vec2 getNormal(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- return dir_screenspace.xy * sign(offset_direction);
- }
- float torad(float deg) {
- return (deg / 180.0) * acos(-1.0);
- }
- vec3 lglt2xyz(vec2 lnglat) {
- float pi = 3.1415926;
- // + Math.PI/2 是为了对齐坐标
- float lng = torad(lnglat.x) + pi / 2.0;
- float lat = torad(lnglat.y);
- // 手动增加一些偏移,减轻面的冲突
- float radius = u_globel_radius;
- float z = radius * cos(lat) * cos(lng);
- float x = radius * cos(lat) * sin(lng);
- float y = radius * sin(lat);
- return vec3(x, y, z);
- }
- void main() {
- //vs中计算渐变色
- if(u_linearColor==1.0){
- float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置
- v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex/segmentNumber);
- }
- else{
- v_color = a_Color;
- }
- v_color.a = v_color.a * opacity;
- vec2 source = project_position(vec4(a_Instance.rg, 0, 0), a_Instance64Low.xy).xy;
- vec2 target = project_position(vec4(a_Instance.ba, 0, 0), a_Instance64Low.zw).xy;
- float segmentIndex = a_Position.x;
- float segmentRatio = getSegmentRatio(segmentIndex);
- float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));
- float d_distance_ratio;
- if(u_line_type == LineTypeDash) {
- d_distance_ratio = segmentIndex / segmentNumber;
- float total_Distance = pixelDistance(source, target) / 2.0 * PI;
- v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / (total_Distance / segmentNumber * segmentIndex);
- }
- if(u_animate.x == Animate) {
- d_distance_ratio = segmentIndex / segmentNumber;
- }
- v_line_data.g = d_distance_ratio; // 当前点位距离占线总长的比例
- float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir);
- vec3 curr = getPos(source, target, segmentRatio);
- vec3 next = getPos(source, target, nextSegmentRatio);
- vec2 offset = getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y);
- // v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y);
- v_segmentIndex = a_Position.x;
- if(LineTexture == u_line_texture && u_line_type != LineTypeDash) { // 开启贴图模式
- float arcDistrance = length(source - target);
- float pixelLen = project_pixel_texture(u_icon_step);
- v_line_data.b = floor(arcDistrance/pixelLen); // 贴图在弧线上重复的数量
- vec2 projectOffset = project_pixel(offset);
- float lineOffsetWidth = length(projectOffset + projectOffset * sign(a_Position.y)); // 线横向偏移的距离
- float linePixelSize = project_pixel(a_Size); // 定点位置偏移,按地图等级缩放后的距离
- v_line_data.a = lineOffsetWidth/linePixelSize; // 线图层贴图部分的 v 坐标值
- v_iconMapUV = a_iconMapUV;
- }
- gl_Position = project_common_position_to_clipspace(vec4(curr.xy + project_pixel(offset), curr.z * thetaOffset, 1.0));
- // 地球模式
- if(u_globel > 0.0) {
- vec3 startLngLat = lglt2xyz(a_Instance.rg);
- vec3 endLngLat = lglt2xyz(a_Instance.ba);
- float globalRadius = length(startLngLat);
- vec3 lineDir = normalize(endLngLat - startLngLat);
- vec3 midPointDir = normalize((startLngLat + endLngLat)/2.0);
- // 线的偏移
- vec3 lnglatOffset = cross(lineDir, midPointDir) * a_Position.y;
- // 计算起始点和终止点的距离
- float lnglatLength = length(a_Instance.rg - a_Instance.ba)/50.0;
- // 计算飞线各个节点相应的高度
- float lineHeight = u_global_height * (-4.0*segmentRatio*segmentRatio + 4.0 * segmentRatio) * lnglatLength;
- // 地球点位
- vec3 globalPoint = normalize(mix(startLngLat, endLngLat, segmentRatio)) * (globalRadius + lineHeight) + lnglatOffset * a_Size;
- gl_Position = u_ViewProjectionMatrix * vec4(globalPoint, 1.0);
- }
- setPickingColor(a_PickingColor);
- }
- `,rM={solid:0,dash:1};class w4 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12,THETA_OFFSET:13})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],lineTexture:n=!1,iconStep:y=100,segmentNumber:m=30,globalArcHeight:g=10}=this.layer.getLayerConfig(),{animateOption:x}=this.layer.getLayerConfig();u.length===2&&u.push(0,0);let b=0,F=[0,0,0,0],R=[0,0,0,0];if(t&&r&&(F=Mi(t),R=Mi(r),b=1),this.rendererService.getDirty()){var I;(I=this.texture)===null||I===void 0||I.bind()}const U={u_animate:this.animateOption2Array(x),u_dash_array:u,u_sourceColor:F,u_targetColor:R,u_textSize:[1024,this.iconService.canvasHeight||128],u_globel:this.mapService.version==="GLOBEL"?1:0,u_globel_radius:$9,u_global_height:g,segmentNumber:m,u_line_type:rM[s]||0,u_icon_step:y,u_line_texture:n?1:0,u_textureBlend:i==="normal"?0:1,u_time:this.layer.getLayerAnimateTime()||0,u_linearColor:b};return this.getUniformsBufferInfo(U)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}getShaders(){return{frag:eM,vert:tM,type:""}}buildModels(){var t=this;return mt(function*(){const{segmentNumber:r=30}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:"lineArc3d"+u,vertexShader:s,fragmentShader:i,defines:t.getDefines(),inject:t.getInject(),triangulation:U6,styleOption:{segmentNumber:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"thetaOffset",type:br.Attribute,descriptor:{name:"a_ThetaOffset",shaderLocation:this.attributeLocation.THETA_OFFSET,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{thetaOffset:r=1}=t;return[r]}}})}}const R4={circle:2,triangle:2,diamond:4,rect:2,classic:3,halfTriangle:2,none:0},Xp=1/2;function oM(e,t){const{width:r=2,height:i=1}=t;return{vertices:[0,Xp*e,1*e*r,-(i+Xp)*e,1*e*r,(i-Xp)*e,0,Xp*e,1*e*r,-(i+Xp)*e,1*e*r,(i-Xp)*e],indices:[3,4,5],outLineIndices:[0,1,2],normals:[1*e,-2*e,1,-2*e,1.5*e,1,1*e,1.5*e,1,0,0,0,0,0,0,0,0,0],dimensions:2}}function iM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,1*e*r,1*i,1*e*r,-1*i,0,0,1*e*r,1*i,1*e*r,-1*i],outLineIndices:[0,1,2],indices:[3,4,5],normals:[0,-1.5*e,1,2,1*e,1,-2,1*e,1,0,0,0,0,0,0,0,0,0],dimensions:2}}function nM(e,t){const{width:r=2,height:i=2}=t;return{vertices:[0,i/2,e*r*1,i/2,e*r*1,-i/2,0,-i/2,0,i/2,e*r*1,i/2,e*r*1,-i/2,0,-i/2],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function aM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,1*r*e,.5*i,2*r*e,0,1*r*e,-.5*i,0,0,1*r*e,.5*i,2*r*e,0,1*r*e,-.5*i],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function sM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,2*e*r,1*i,1.5*e*r,0,2*e*r,-1*i,0,0,2*e*r,1*i,1.5*e*r,0,2*e*r,-1*i],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function uM(e,t){const{width:r=2,height:i=2}=t,s=H2(),u=Ml.flatten([s]),n=Ml(u.vertices,u.holes,u.dimensions),y=s.map(m=>[m[0]*r*e,m[1]*i]).flat();return{vertices:[...y,...y],dimensions:2,indices:n.map(m=>m+s.length),outLineIndices:n,normals:[...s.map(m=>[m[1]*i,m[0]*r*e,1]).flat(),...new Array(s.length*3).fill(0)]}}function pM(e,t=0,r){const i=typeof r.source=="object"?r.source.type:r.source,s=typeof r.target=="object"?r.target.type:r.target,{width:u=i?R4[i]:0}=typeof r.source=="object"?r.source:{},{width:n=s?R4[s]:0}=typeof r.target=="object"?r.target:{};return{vertices:[0,Xp,1*u,...e,1,Xp,-1*n,...e,1,-.5,-1*n,...e,0,-.5,1*u,...e,0,Xp,1*u,...e,1,Xp,-1*n,...e,1,-.5,-1*n,...e,0,-.5,1*u,...e],outLineIndices:[0,1,2,0,2,3].map(y=>y+t),indices:[4,5,6,4,6,7].map(y=>y+t),normals:[1,-1,1,1,1,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0],dimensions:2}}function C4(e,t){const r=typeof e=="object"?e.type:e,i=t==="source"?1:-1,s=typeof e=="object"?e:{};switch(r){case"circle":return uM(i,s);case"triangle":return iM(i,s);case"diamond":return aM(i,s);case"rect":return nM(i,s);case"classic":return sM(i,s);case"halfTriangle":return oM(i,s);default:return{vertices:[],indices:[],normals:[],dimensions:2,outLineIndices:[],outLineNormals:[]}}}function lM(e){const t=e.coordinates.flat(),r=1;return{vertices:[1,0,0,...t,1,2,-3,...t,1,1,-3,...t,0,1,0,...t,0,0,0,...t,1,0,0,...t,1,2,-3,...t,1,1,-3,...t,0,1,0,...t,0,0,0,...t],normals:[-1,2*r,1,2*r,-1,1,r,-1,1,r,-1,1,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],indices:[0,1,2,0,2,3,0,3,4,5,6,7,5,7,8,5,8,9],size:7}}function cM(e,t){return t?dM(e,t):lM(e)}function dM(e,t){const r=e.coordinates.flat(),{target:i="classic",source:s="circle"}=t,u=I4(C4(s,"source"),r,0,0),n=pM(r,u.vertices.length/7,t),y=I4(C4(i,"target"),r,1,u.vertices.length/7+n.vertices.length/7);return{vertices:[...u.vertices,...n.vertices,...y.vertices],indices:[...u.outLineIndices,...n.outLineIndices,...y.outLineIndices,...u.indices,...n.indices,...y.indices],normals:[...u.normals,...n.normals,...y.normals],size:7}}function I4(e,t,r=1,i=0){const s=[],{vertices:u,indices:n,dimensions:y,outLineIndices:m}=e;for(let g=0;g<u.length;g+=y)s.push(r,u[g+1],u[g],...t);return _t(_t({},e),{},{vertices:s,indices:n.map(g=>g+i),outLineIndices:m.map(g=>g+i)})}const yM=`// #extension GL_OES_standard_derivatives : enable
- in vec4 v_color;
- out vec4 outputColor;
- // line texture
- #pragma include "picking"
- void main() {
- outputColor = v_color;
- outputColor = filterColor(outputColor);
- }
- `,hM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(std140) uniform commonUniorm {
- float u_gap_width: 1.0;
- float u_stroke_width: 1.0;
- float u_stroke_opacity: 1.0;
- };
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- out vec4 v_color;
- vec2 project_pixel_offset(vec2 offsets) {
- vec2 data = project_pixel(offsets);
- return vec2(data.x, -data.y);
- }
- vec2 line_dir(vec2 target, vec2 source) {
- return normalize(ProjectFlat(target) - ProjectFlat(source));
- }
- void main() {
- // 透明度计算
- vec2 source_world = a_Instance.rg; // 起点
- vec2 target_world = a_Instance.ba; // 终点
- vec2 flowlineDir = line_dir(target_world, source_world);
- vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x);
- vec2 position = mix(source_world, target_world, a_Position.x);
- vec2 position64Low = mix(a_Instance64Low.rg, a_Instance64Low.ba, a_Position.x);
- float lengthCommon = length(
- project_position(vec4(target_world, 0, 1)) - project_position(vec4(source_world, 0, 1))
- );
- vec2 offsetDistances = a_Size.x * project_pixel_offset(vec2(a_Position.y, a_Position.z)); // Mapbox || 高德
- vec2 limitedOffsetDistances = clamp(
- offsetDistances,
- project_pixel(-lengthCommon * 0.2),
- project_pixel(lengthCommon * 0.2)
- );
- float startOffsetCommon = project_pixel(offsets[0]);
- float endOffsetCommon = project_pixel(offsets[1]);
- float endpointOffset = mix(
- clamp(startOffsetCommon, 0.0, lengthCommon * 0.2),
- -clamp(endOffsetCommon, 0.0, lengthCommon * 0.2),
- a_Position.x
- );
- vec2 normalsCommon = u_stroke_width * project_pixel_offset(vec2(a_Normal.x, a_Normal.y));
- float gapCommon = -1. * project_pixel(u_gap_width);
- vec3 offsetCommon = vec3(
- flowlineDir * (limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) -
- perpendicularDir * (limitedOffsetDistances[0] + gapCommon + normalsCommon.x),
- 0.0
- );
- vec4 project_pos = project_position(vec4(position.xy, 0, 1.0), position64Low);
- vec4 fillColor = vec4(a_Color.rgb, a_Color.a * opacity);
- v_color = mix(fillColor, vec4(u_stroke.xyz, u_stroke.w * fillColor.w * u_stroke_opacity), a_Normal.z);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offsetCommon.xy, 0., 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class fM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,NORMAL:12})}getCommonUniformsInfo(){const{gapWidth:t=2,strokeWidth:r=1,strokeOpacity:i=1}=this.layer.getLayerConfig(),s={u_gap_width:t,u_stroke_width:r,u_stroke_opacity:i};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return[yield t.layer.buildLayerModel({moduleName:"flow_line",vertexShader:hM,fragmentShader:yM,defines:t.getDefines(),inject:t.getInject(),triangulation:cM,styleOption:t.layer.getLayerConfig().symbol,primitive:L.TRIANGLES,depth:{enable:!1},pick:!1})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}})}}const mM=`#define LineTypeSolid 0.0
- #define LineTypeDash 1.0
- #define Animate 0.0
- #define LineTexture 1.0
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array: [10.0, 5., 0, 0];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float segmentNumber;
- float u_line_type: 0.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_time;
- float u_linearColor: 0;
- };
- in vec4 v_dash_array;
- in vec4 v_color;
- in vec2 v_iconMapUV;
- in vec4 v_line_data;
- in float v_distance_ratio;
- out vec4 outputColor;
- #pragma include "picking"
- #pragma include "project"
- #pragma include "projection"
- void main() {
- float animateSpeed = 0.0;
- float d_segmentIndex = v_line_data.g;
- // 设置弧线的底色
- if(u_linearColor == 1.0) { // 使用渐变颜色
- outputColor = mix(u_sourceColor, u_targetColor, d_segmentIndex/segmentNumber);
- outputColor.a *= v_color.a;
- } else { // 使用 color 方法传入的颜色
- outputColor = v_color;
- }
- // float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy));
- // float blur = smoothstep(1.0, u_blur, length(v_normal.xy));
- if(u_line_type == LineTypeDash) {
- float dashLength = mod(v_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w);
- if(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z)) {
- // 实线部分
- } else {
- // 虚线部分
- discard;
- };
- }
- // 设置弧线的动画模式
- if(u_animate.x == Animate) {
- animateSpeed = u_time / u_animate.y;
- float alpha =1.0 - fract( mod(1.0- v_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y);
- alpha = (alpha + u_animate.w -1.0) / u_animate.w;
- alpha = smoothstep(0., 1., alpha);
- outputColor.a *= alpha;
- }
- // 设置弧线的贴图
- if(LineTexture == u_line_texture && u_line_type != LineTypeDash) {
- float arcRadio = smoothstep( 0.0, 1.0, (d_segmentIndex / (segmentNumber - 1.0)));
- // float arcRadio = d_segmentIndex / (segmentNumber - 1.0);
- float count = v_line_data.b; // 贴图在弧线上重复的数量
- float u = fract(arcRadio * count - animateSpeed * count);
- // float u = fract(arcRadio * count - animateSpeed);
- if(u_animate.x == Animate) {
- u = outputColor.a/v_color.a;
- }
- float v = v_line_data.a; // 线图层贴图部分的 v 坐标值
- vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;
- vec4 pattern = texture(SAMPLER_2D(u_texture), uv);
- // 设置贴图和底色的叠加模式
- if(u_textureBlend == 0.0) { // normal
- pattern.a = 0.0;
- outputColor = filterColor(outputColor + pattern);
- } else { // replace
- pattern.a *= v_color.a;
- if(outputColor.a <= 0.0) {
- pattern.a = 0.0;
- }
- outputColor = filterColor(pattern);
- }
- } else {
- outputColor = filterColor(outputColor);
- }
- // gl_FragColor = filterColor(gl_FragColor);
- }
- `,_M=`#define LineTypeSolid (0.0)
- #define LineTypeDash (1.0)
- #define Animate (0.0)
- #define LineTexture (1.0)
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance;
- layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array: [10.0, 5., 0, 0];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float segmentNumber;
- float u_line_type: 0.0;
- float u_icon_step: 100;
- float u_line_texture: 0.0;
- float u_textureBlend;
- float u_time;
- float u_linearColor: 0;
- };
- out vec4 v_dash_array;
- out vec4 v_color;
- out vec2 v_iconMapUV;
- out vec4 v_line_data;
- out float v_distance_ratio;
- #pragma include "projection"
- #pragma include "project"
- #pragma include "picking"
- float maps(float value, float start1, float stop1, float start2, float stop2) {
- return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1));
- }
- float getSegmentRatio(float index) {
- return index / (segmentNumber - 1.0);
- }
- float paraboloid(vec2 source, vec2 target, float ratio) {
- vec2 x = mix(source, target, ratio);
- vec2 center = mix(source, target, 0.5);
- float dSourceCenter = distance(source, center);
- float dXCenter = distance(x, center);
- return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter);
- }
- vec3 getPos(vec2 source, vec2 target, float segmentRatio) {
- float vertex_height = paraboloid(source, target, segmentRatio);
- return vec3(mix(source, target, segmentRatio), sqrt(max(0.0, vertex_height)));
- }
- vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0;
- return offset;
- }
- vec2 getNormal(vec2 line_clipspace, float offset_direction) {
- // normalized direction of the line
- vec2 dir_screenspace = normalize(line_clipspace);
- // rotate by 90 degrees
- dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);
- return dir_screenspace.xy * sign(offset_direction);
- }
- float getAngularDist(vec2 source, vec2 target) {
- vec2 delta = source - target;
- vec2 sin_half_delta = sin(delta / 2.0);
- float a =
- sin_half_delta.y * sin_half_delta.y +
- cos(source.y) * cos(target.y) * sin_half_delta.x * sin_half_delta.x;
- return 2.0 * atan(sqrt(a), sqrt(1.0 - a));
- }
- vec2 midPoint(vec2 source, vec2 target) {
- vec2 center = target - source;
- float r = length(center);
- float theta = atan(center.y, center.x);
- float thetaOffset = 0.314;
- float r2 = r / 2.0 / cos(thetaOffset);
- float theta2 = theta + thetaOffset;
- vec2 mid = vec2(r2 * cos(theta2) + source.x, r2 * sin(theta2) + source.y);
- return mid;
- }
- float bezier3(vec3 arr, float t) {
- float ut = 1.0 - t;
- return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t;
- }
- vec2 interpolate(vec2 source, vec2 target, float angularDist, float t) {
- if (abs(angularDist - PI) < 0.001) {
- return (1.0 - t) * source + t * target;
- }
- float a = sin((1.0 - t) * angularDist) / sin(angularDist);
- float b = sin(t * angularDist) / sin(angularDist);
- vec2 sin_source = sin(source);
- vec2 cos_source = cos(source);
- vec2 sin_target = sin(target);
- vec2 cos_target = cos(target);
- float x = a * cos_source.y * cos_source.x + b * cos_target.y * cos_target.x;
- float y = a * cos_source.y * sin_source.x + b * cos_target.y * sin_target.x;
- float z = a * sin_source.y + b * sin_target.y;
- return vec2(atan(y, x), atan(z, sqrt(x * x + y * y)));
- }
- void main() {
- v_color = a_Color;
- v_color.a = v_color.a * opacity;
- vec2 source = radians(a_Instance.rg);
- vec2 target = radians(a_Instance.ba);
- float angularDist = getAngularDist(source, target);
- float segmentIndex = a_Position.x;
- float segmentRatio = getSegmentRatio(segmentIndex);
- float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));
- if (u_line_type == LineTypeDash) {
- v_distance_ratio = segmentIndex / segmentNumber;
- float total_Distance = pixelDistance(source, target) / 2.0 * PI;
- total_Distance = total_Distance * 16.0; // total_Distance*16.0 调整默认的效果
- v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / total_Distance;
- }
- if (u_animate.x == Animate) {
- v_distance_ratio = segmentIndex / segmentNumber;
- }
- float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir);
- v_distance_ratio = segmentIndex / segmentNumber;
- vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0), a_Instance64Low.xy);
- vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0), a_Instance64Low.zw);
- // v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y);
- vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y));
- // vec4 project_pos = project_position(vec4(curr.xy, 0, 1.0));
- // gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, curr.z, 1.0));
- v_line_data.g = a_Position.x; // 该顶点在弧线上的分段排序
- if (LineTexture == u_line_texture) {
- float d_arcDistrance = length(source - target);
- d_arcDistrance = project_pixel(d_arcDistrance);
- float d_pixelLen = project_pixel(u_icon_step) / 8.0;
- v_line_data.b = floor(d_arcDistrance / d_pixelLen); // 贴图在弧线上重复的数量
- float lineOffsetWidth = length(offset + offset * sign(a_Position.y)); // 线横向偏移的距离
- float linePixelSize = project_pixel(a_Size); // 定点位置偏移,按地图等级缩放后的距离
- v_line_data.a = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值
- v_iconMapUV = a_iconMapUV;
- }
- gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0));
- setPickingColor(a_PickingColor);
- }
- `,gM={solid:0,dash:1};class vM extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],lineTexture:n=!1,iconStep:y=100,segmentNumber:m=30}=this.layer.getLayerConfig(),{animateOption:g}=this.layer.getLayerConfig();if(u.length===2&&u.push(0,0),this.rendererService.getDirty()){var x;(x=this.texture)===null||x===void 0||x.bind()}let b=0,F=[0,0,0,0],R=[0,0,0,0];t&&r&&(F=Mi(t),R=Mi(r),b=1);let I=this.layer.getLayerAnimateTime();isNaN(I)&&(I=0);const U={u_animate:this.animateOption2Array(g),u_dash_array:u,u_sourceColor:F,u_targetColor:R,u_textSize:[1024,this.iconService.canvasHeight||128],segmentNumber:m,u_line_type:gM[s]||0,u_icon_step:y,u_line_texture:n?1:0,u_textureBlend:i==="normal"?0:1,u_time:I,u_linearColor:b};return this.getUniformsBufferInfo(U)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){const{segmentNumber:r=30}=t.layer.getLayerConfig();return[yield t.layer.buildLayerModel({moduleName:"lineGreatCircle",vertexShader:_M,fragmentShader:mM,triangulation:U6,styleOption:{segmentNumber:r},defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const EM=`// #extension GL_OES_standard_derivatives : enable
- #define Animate 0.0
- #define LineTexture 1.0
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array;
- vec4 u_blur;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_icon_step: 100;
- float u_heightfixed: 0.0;
- float u_vertexScale: 1.0;
- float u_raisingHeight: 0.0;
- float u_strokeWidth: 0.0;
- float u_textureBlend;
- float u_line_texture;
- float u_linearDir: 1.0;
- float u_linearColor: 0;
- float u_time;
- };
- in vec4 v_color;
- in vec4 v_stroke;
- // dash
- in vec4 v_dash_array;
- in float v_d_distance_ratio;
- in vec2 v_iconMapUV;
- in vec4 v_texture_data;
- out vec4 outputColor;
- #pragma include "picking"
- // [animate, duration, interval, trailLength],
- void main() {
- if(u_dash_array!=vec4(0.0)){
- float dashLength = mod(v_d_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w);
- if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) {
- // 虚线部分
- discard;
- };
- }
- float animateSpeed = 0.0; // 运动速度
- float d_distance_ratio = v_texture_data.r; // 当前点位距离占线总长的比例
- if(u_linearDir < 1.0) {
- d_distance_ratio = v_texture_data.a;
- }
- if(u_linearColor == 1.0) { // 使用渐变颜色
- outputColor = mix(u_sourceColor, u_targetColor, d_distance_ratio);
- outputColor.a *= v_color.a;
- } else { // 使用 color 方法传入的颜色
- outputColor = v_color;
- }
- // anti-alias
- // float blur = 1.0 - smoothstep(u_blur, 1., length(v_normal.xy));
- if(u_animate.x == Animate) {
- animateSpeed = u_time / u_animate.y;
- float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + animateSpeed);
- alpha = (alpha + u_animate.w -1.0) / u_animate.w;
- alpha = smoothstep(0., 1., alpha);
- outputColor.a *= alpha;
- }
- if(u_line_texture == LineTexture) { // while load texture
- float aDistance = v_texture_data.g; // 当前顶点的距离
- float d_texPixelLen = v_texture_data.b; // 贴图的像素长度,根据地图层级缩放
- float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed);
- float v = v_texture_data.a; // 线图层贴图部分的 v 坐标值
- // v = max(smoothstep(0.95, 1.0, v), v);
- vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;
- vec4 pattern = texture(SAMPLER_2D(u_texture), uv);
- if(u_textureBlend == 0.0) { // normal
- pattern.a = 0.0;
- outputColor += pattern;
- } else { // replace
- pattern.a *= v_color.a;
- if(outputColor.a <= 0.0) {
- pattern.a = 0.0;
- }
- outputColor = pattern;
- }
- }
- float v = v_texture_data.a;
- float strokeWidth = min(0.5, u_strokeWidth);
- // 绘制 border
- if(strokeWidth > 0.01) {
- float borderOuterWidth = strokeWidth / 2.0;
- if(v >= 1.0 - strokeWidth || v <= strokeWidth) {
- if(v > strokeWidth) { // 外侧
- float linear = smoothstep(0.0, 1.0, (v - (1.0 - strokeWidth))/strokeWidth);
- // float linear = step(0.0, (v - (1.0 - borderWidth))/borderWidth);
- outputColor.rgb = mix(outputColor.rgb, v_stroke.rgb, linear);
- } else if(v <= strokeWidth) {
- float linear = smoothstep(0.0, 1.0, v/strokeWidth);
- outputColor.rgb = mix(v_stroke.rgb, outputColor.rgb, linear);
- }
- }
- if(v < borderOuterWidth) {
- outputColor.a = mix(0.0, outputColor.a, v/borderOuterWidth);
- } else if(v > 1.0 - borderOuterWidth) {
- outputColor.a = mix(outputColor.a, 0.0, (v - (1.0 - borderOuterWidth))/borderOuterWidth);
- }
- }
- // blur
- float blurV = v_texture_data.a;
- if(blurV < 0.5) {
- outputColor.a *= mix(u_blur.r, u_blur.g, blurV/0.5);
- } else {
- outputColor.a *= mix(u_blur.g, u_blur.b, (blurV - 0.5)/0.5);
- }
-
- outputColor = filterColor(outputColor);
- }
- `,xM=`#define Animate (0.0)
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size;
- layout(location = ATTRIBUTE_LOCATION_DISTANCE_INDEX) in vec3 a_DistanceAndIndexAndMiter;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec4 a_Normal_Total_Distance;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_dash_array;
- vec4 u_blur;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_icon_step: 100;
- float u_heightfixed: 0.0;
- float u_vertexScale: 1.0;
- float u_raisingHeight: 0.0;
- float u_strokeWidth: 0.0;
- float u_textureBlend;
- float u_line_texture;
- float u_linearDir: 1.0;
- float u_linearColor: 0;
- float u_time;
- };
- out vec4 v_color;
- out vec4 v_stroke;
- //dash
- out vec4 v_dash_array;
- out float v_d_distance_ratio;
- // texV 线图层 - 贴图部分的 v 坐标(线的宽度方向)
- out vec2 v_iconMapUV;
- out vec4 v_texture_data;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- vec2 a_DistanceAndIndex = a_DistanceAndIndexAndMiter.xy;
- float a_Miter = a_DistanceAndIndexAndMiter.z;
- vec3 a_Normal = a_Normal_Total_Distance.xyz;
- float a_Total_Distance = a_Normal_Total_Distance.w;
- //dash输出
- v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_Total_Distance;
- v_d_distance_ratio = a_DistanceAndIndex.x / a_Total_Distance;
- // cal style mapping - 数据纹理映射部分的计算
- float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放
- v_iconMapUV = a_iconMapUV;
- d_texPixelLen = project_float_pixel(u_icon_step);
- v_color = a_Color;
- v_color.a *= opacity;
- v_stroke = stroke;
- vec3 size = a_Miter * setPickingSize(a_Size.x) * a_Normal;
- vec2 offset = project_pixel(size.xy);
- float lineDistance = a_DistanceAndIndex.x;
- float currentLinePointRatio = lineDistance / a_Total_Distance;
- float lineOffsetWidth = length(offset + offset * sign(a_Miter)); // 线横向偏移的距离(向两侧偏移的和)
- float linePixelSize = project_pixel(a_Size.x) * 2.0; // 定点位置偏移,按地图等级缩放后的距离 单侧 * 2
- float texV = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值
- v_texture_data = vec4(currentLinePointRatio, lineDistance, d_texPixelLen, texV);
- // 设置数据集的参数
- vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low);
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, a_Size.y, 1.0));
- float h = float(a_Position.z) * u_vertexScale; // 线顶点的高度 - 兼容不存在第三个数值的情况 vertex height
- float lineHeight = a_Size.y; // size 第二个参数代表的高度 [linewidth, lineheight]
- // 兼容 mapbox 在线高度上的效果表现基本一致
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // mapbox
- // 保持高度相对不变
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- h *= mapboxZoomScale;
- h += u_raisingHeight * mapboxZoomScale;
- if (u_heightfixed > 0.0) {
- lineHeight *= mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(
- vec4(project_pos.xy + offset, lineHeight + h, 1.0)
- );
- setPickingColor(a_PickingColor);
- }
- `;class t7 extends Pi{constructor(...t){super(...t),H(this,"textureEventFlag",!1),H(this,"texture",this.createTexture2D({data:new Uint8Array([0,0,0,0]),width:1,height:1})),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.textures.length===0&&(this.textures=[this.texture]),this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128})})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,DISTANCE_INDEX:10,NORMAL:11,UV:12})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5,0,0],lineTexture:n=!1,iconStep:y=100,vertexHeightScale:m=20,strokeWidth:g=0,raisingHeight:x=0,heightfixed:b=!1,linearDir:F=f4.VERTICAL,blur:R=[1,1,1,0]}=this.layer.getLayerConfig();let I=u;if(s!=="dash"&&(I=[0,0,0,0]),I.length===2&&I.push(0,0),this.rendererService.getDirty()&&this.texture){var U;(U=this.texture)===null||U===void 0||U.bind()}const{animateOption:V}=this.layer.getLayerConfig();let J=0,Q=[0,0,0,0],te=[0,0,0,0];t&&r&&(Q=Mi(t),te=Mi(r),J=1);const ne={u_animate:this.animateOption2Array(V),u_dash_array:I,u_blur:R,u_sourceColor:Q,u_targetColor:te,u_textSize:[1024,this.iconService.canvasHeight||128],u_icon_step:y,u_heightfixed:Number(b),u_vertexScale:m,u_raisingHeight:Number(x),u_strokeWidth:g,u_textureBlend:i===hI.NORMAL?0:1,u_line_texture:n?1:0,u_linearDir:F===f4.VERTICAL?1:0,u_linearColor:J,u_time:this.layer.getLayerAnimateTime()||0};return this.getUniformsBufferInfo(ne)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.textureEventFlag||(t.textureEventFlag=!0,t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture)),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){const{depth:r=!1}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return t.layer.triangulation=G2,[yield t.layer.buildLayerModel({moduleName:"line"+u,vertexShader:s,fragmentShader:i,triangulation:G2,defines:t.getDefines(),inject:t.getInject(),depth:{enable:r}})]})()}getShaders(){return{frag:EM,vert:xM,type:""}}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"distanceAndIndex",type:br.Attribute,descriptor:{name:"a_DistanceAndIndexAndMiter",shaderLocation:this.attributeLocation.DISTANCE_INDEX,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u,n)=>n===void 0?[i[3],10,i[4]]:[i[3],n,i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal_total_distance",type:br.Attribute,descriptor:{name:"a_Normal_Total_Distance",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i,s,u)=>[...u,i[5]]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const PM=`
- layout(std140) uniform commonUniorm {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec4 u_dash_array;
- float u_vertexScale: 1.0;
- float u_linearColor: 0;
- };
- in float v_distanceScale;
- in vec4 v_color;
- //dash
- in vec4 v_dash_array;
- out vec4 outputColor;
- void main() {
- if(u_dash_array!=vec4(0.0)){
- float dashLength = mod(v_distanceScale, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w);
- if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) {
- // 虚线部分
- discard;
- };
- }
- if(u_linearColor==1.0){
- outputColor = mix(u_sourceColor, u_targetColor, v_distanceScale);
- outputColor.a *= v_color.a; // 全局透明度
- }
- else{
- outputColor = v_color;
- }
- }
- `,bM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec4 a_SizeDistanceAndTotalDistance;
- layout(std140) uniform commonUniorm {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec4 u_dash_array;
- float u_vertexScale: 1.0;
- float u_linearColor: 0;
- };
- #pragma include "projection"
- #pragma include "picking"
- out vec4 v_color;
- out float v_distanceScale;
- out vec4 v_dash_array;
- void main() {
- //dash输出
- v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_SizeDistanceAndTotalDistance.a;
- v_color = a_Color;
- v_distanceScale = a_SizeDistanceAndTotalDistance.b / a_SizeDistanceAndTotalDistance.a;
- v_color.a = v_color.a * opacity;
- vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low);
- float h = float(a_Position.z) * u_vertexScale; // 线顶点的高度 - 兼容不存在第三个数值的情况
- float lineHeight = a_SizeDistanceAndTotalDistance.y;
- // 兼容 mapbox 在线高度上的效果表现基本一致
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // 保持高度相对不变
- h *= 2.0 / pow(2.0, 20.0 - u_Zoom);
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, lineHeight + h, 1.0));
- gl_PointSize = 10.0;
- }
- `;class AM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,lineType:i="solid",dashArray:s=[10,5,0,0],vertexHeightScale:u=20}=this.layer.getLayerConfig();let n=s;i!=="dash"&&(n=[0,0,0,0]),n.length===2&&n.push(0,0);let y=0,m=[0,0,0,0],g=[0,0,0,0];t&&r&&(m=Mi(t),g=Mi(r),y=1);const x={u_sourceColor:m,u_targetColor:g,u_dash_array:n,u_vertexScale:u,u_linearColor:y};return this.getUniformsBufferInfo(x)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}getShaders(){return{frag:PM,vert:bM,type:"lineSimpleNormal"}}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const{frag:r,vert:i,type:s}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,triangulation:EI,defines:t.getDefines(),inject:t.getInject(),primitive:L.LINES,depth:{enable:!1},pick:!1})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"sizeDistanceAndTotalDistance",type:br.Attribute,descriptor:{name:"a_SizeDistanceAndTotalDistance",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>{const{size:s=1}=t,u=Array.isArray(s)?[s[0],s[1]]:[s,0];return[u[0],u[1],i[3],i[5]]}}})}}const FM=`#define Animate 0.0
- #define LineTexture 1.0
- // line texture
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_icon_step: 100;
- float u_heightfixed;
- float u_linearColor: 0;
- float u_line_texture;
- float u_textureBlend;
- float u_iconStepCount;
- float u_time;
- };
- in vec2 v_iconMapUV;
- in vec4 v_color;
- in float v_blur;
- in vec4 v_dataset;
- out vec4 outputColor;
- #pragma include "picking"
- void main() {
- float animateSpeed = 0.0; // 运动速度
- float d_distance_ratio = v_dataset.r; // 当前点位距离占线总长的比例
- float v = v_dataset.a;
- if(u_linearColor == 1.0) { // 使用渐变颜色
- outputColor = mix(u_sourceColor, u_targetColor, v);
- } else { // 使用 color 方法传入的颜色
- outputColor = v_color;
- }
- outputColor.a *= v_color.a; // 全局透明度
- if(u_animate.x == Animate) {
- animateSpeed = u_time / u_animate.y;
- float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + animateSpeed);
- alpha = (alpha + u_animate.w -1.0) / u_animate.w;
- alpha = smoothstep(0., 1., alpha);
- outputColor.a *= alpha;
- }
- if(u_line_texture == LineTexture) { // while load texture
- float aDistance = v_dataset.g; // 当前顶点的距离
- float d_texPixelLen = v_dataset.b; // 贴图的像素长度,根据地图层级缩放
- float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed);
- float v = v_dataset.a; // 线图层贴图部分的 v 坐标值
- // 计算纹理间隔 start
- float flag = 0.0;
- if(u > 1.0/u_iconStepCount) {
- flag = 1.0;
- }
- u = fract(u*u_iconStepCount);
- // 计算纹理间隔 end
- vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;
- vec4 pattern = texture(SAMPLER_2D(u_texture), uv);
- // Tip: 判断纹理间隔
- if(flag > 0.0) {
- pattern = vec4(0.0);
- }
- if(u_textureBlend == 0.0) { // normal
- pattern.a = 0.0;
- outputColor = filterColor(outputColor + pattern);
- } else { // replace
- pattern.a *= v_color.a;
- if(outputColor.a <= 0.0) {
- pattern.a = 0.0;
- }
- outputColor = filterColor(pattern);
- }
- }
- // blur - AA
- if(v < v_blur) {
- outputColor.a = mix(0.0, outputColor.a, v/v_blur);
- } else if(v > 1.0 - v_blur) {
- outputColor.a = mix(outputColor.a, 0.0, (v - (1.0 - v_blur))/v_blur);
- }
- outputColor = filterColor(outputColor);
- }
- `,TM=`#define Animate 0.0
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV;
- layout(location = ATTRIBUTE_LOCATION_DISTANCE_MITER_TOTAL) in vec3 a_Distance_Total_Miter;
- layout(std140) uniform commonUniorm {
- vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
- vec4 u_sourceColor;
- vec4 u_targetColor;
- vec2 u_textSize;
- float u_icon_step: 100;
- float u_heightfixed;
- float u_linearColor: 0;
- float u_line_texture;
- float u_textureBlend;
- float u_iconStepCount;
- float u_time;
- };
- // texV 线图层 - 贴图部分的 v 坐标(线的宽度方向)
- out vec2 v_iconMapUV;
- out vec4 v_color;
- out float v_blur;
- out vec4 v_dataset;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- float a_Distance = a_Distance_Total_Miter.x;
- float a_Miter = a_Distance_Total_Miter.y;
- float a_Total_Distance = a_Distance_Total_Miter.z;
- float d_distance_ratio; // 当前点位距离占线总长的比例
- float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放
- v_iconMapUV = a_iconMapUV;
- if (u_heightfixed < 1.0) {
- // 高度随 zoom 调整
- d_texPixelLen = project_pixel(u_icon_step);
- } else {
- d_texPixelLen = u_icon_step;
- }
- if (u_animate.x == Animate || u_linearColor == 1.0) {
- d_distance_ratio = a_Distance / a_Total_Distance;
- }
- float miter = (a_Miter + 1.0) / 2.0;
- // 设置数据集的参数
- v_dataset[0] = d_distance_ratio; // 当前点位距离占线总长的比例
- v_dataset[1] = a_Distance; // 当前顶点的距离
- v_dataset[2] = d_texPixelLen; // 贴图的像素长度,根据地图层级缩放
- v_dataset[3] = miter; // 线图层贴图部分的 v 坐标值 0 - 1
- vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low);
- float originSize = a_Size.x; // 固定高度
- if (u_heightfixed < 1.0) {
- originSize = project_float_meter(a_Size.x); // 高度随 zoom 调整
- }
- float wallHeight = originSize * miter;
- float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0));
- v_blur = min(project_float_pixel(2.0) / originSize, 0.05);
- v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity);
- // 兼容 mapbox 在线高度上的效果表现基本一致
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- // mapbox
- // 保持高度相对不变
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- if (u_heightfixed > 0.0) {
- wallHeight *= mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, wallHeight, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class SM extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:12,UV:13,DISTANCE_MITER_TOTAL:15})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",heightfixed:s=!1,lineTexture:u=!1,iconStep:n=100,iconStepCount:y=1}=this.layer.getLayerConfig(),{animateOption:m}=this.layer.getLayerConfig();if(this.rendererService.getDirty()){var g;(g=this.texture)===null||g===void 0||g.bind()}let x=0,b=[0,0,0,0],F=[0,0,0,0];t&&r&&(b=Mi(t),F=Mi(r),x=1);const R={u_animate:this.animateOption2Array(m),u_sourceColor:b,u_targetColor:F,u_textSize:[1024,this.iconService.canvasHeight||128],u_icon_step:n,u_heightfixed:Number(s),u_linearColor:x,u_line_texture:u?1:0,u_textureBlend:i==="normal"?0:1,u_iconStepCount:y,u_time:this.layer.getLayerAnimateTime()||0};return this.getUniformsBufferInfo(R)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){return[yield t.layer.buildLayerModel({moduleName:"lineWall",vertexShader:TM,fragmentShader:FM,triangulation:G2,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},blend:t.getBlend()})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"distanceAndTotalAndMiter",type:br.Attribute,descriptor:{name:"a_Distance_Total_Miter",shaderLocation:this.attributeLocation.DISTANCE_MITER_TOTAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i)=>[i[3],i[4],i[5]]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const wM={arc:JI,arc3d:w4,greatcircle:vM,wall:SM,line:t7,simple:AM,flowline:fM,earthArc3d:w4};class r7 extends A1{constructor(...t){super(...t),H(this,"type","LineLayer"),H(this,"enableShaderEncodeStyles",["stroke","offsets","opacity","thetaOffset"]),H(this,"arrowInsertCount",0),H(this,"defaultSourceConfig",{data:[{lng1:100,lat1:30,lng2:130,lat2:30}],options:{parser:{type:"json",x:"lng1",y:"lat1",x1:"lng2",y1:"lat2"}}})}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new wM[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{line:{},linearline:{},simple:{},wall:{},arc3d:{blend:"additive"},arc:{blend:"additive"},greatcircle:{blend:"additive"},tileLine:{},earthArc3d:{},flowline:{},arrow:{}}[t]}getModelType(){var t;if(this.layerType)return this.layerType;const r=this.styleAttributeService.getLayerStyleAttribute("shape");return(r==null||(t=r.scale)===null||t===void 0?void 0:t.field)||"line"}processData(t){if(this.getModelType()!=="simple")return t;const r=[];return t.map(i=>{if(Array.isArray(i.coordinates)&&Array.isArray(i.coordinates[0])&&Array.isArray(i.coordinates[0][0])){const s=_t({},i);i.coordinates.map(u=>{r.push(_t(_t({},s),{},{coordinates:u}))})}else r.push(i)}),r}}const RM=`
- layout(std140) uniform commonUniorm {
- vec4 u_stroke_color;
- float u_additive;
- float u_stroke_opacity;
- float u_stroke_width;
- };
- in vec4 v_color;
- in float v_blur;
- in float v_innerRadius;
- out vec4 outputColor;
- #pragma include "picking"
- void main() {
- vec2 center = vec2(0.5);
- // Tip: 片元到中心点的距离 0 - 1
- float fragmengTocenter = distance(center, gl_PointCoord) * 2.0;
- // Tip: 片元的剪切成圆形
- float circleClipOpacity = 1.0 - smoothstep(v_blur, 1.0, fragmengTocenter);
- if(v_innerRadius < 0.99) {
- // 当存在 stroke 且 stroke > 0.01
- float blurWidth = (1.0 - v_blur)/2.0;
- vec4 stroke = vec4(u_stroke_color.rgb, u_stroke_opacity);
- if(fragmengTocenter > v_innerRadius + blurWidth) {
- outputColor = stroke;
- } else if(fragmengTocenter > v_innerRadius - blurWidth){
- float mixR = (fragmengTocenter - (v_innerRadius - blurWidth)) / (blurWidth * 2.0);
- outputColor = mix(v_color, stroke, mixR);
- } else {
- outputColor = v_color;
- }
- } else {
- // 当不存在 stroke 或 stroke <= 0.01
- outputColor = v_color;
- }
- outputColor = filterColor(outputColor);
-
- if(u_additive > 0.0) {
- outputColor *= circleClipOpacity;
- } else {
- outputColor.a *= circleClipOpacity;
- }
- }
- `,CM=`
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(std140) uniform commonUniorm {
- vec4 u_stroke_color;
- float u_additive;
- float u_stroke_opacity;
- float u_stroke_width;
- };
- out vec4 v_color;
- out float v_blur;
- out float v_innerRadius;
- #pragma include "projection"
- #pragma include "picking"
- #pragma include "project"
- void main() {
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- v_blur = 1.0 - max(2.0 / a_Size, 0.05);
- v_innerRadius = max((a_Size - u_stroke_width) / a_Size, 0.0);
- vec2 offset = project_pixel(u_offsets);
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w));
- gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;
- setPickingColor(a_PickingColor);
- }
- `;function M4(e){const t=e.coordinates;return{vertices:[...t],indices:[0],size:t.length}}class IM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getDefaultStyle(){return{blend:"additive"}}getCommonUniformsInfo(){const{blend:t,strokeOpacity:r=1,strokeWidth:i=0,stroke:s="#fff"}=this.layer.getLayerConfig(),u={u_stroke_color:Mi(s),u_additive:t==="additive"?1:0,u_stroke_opacity:r,u_stroke_width:i};return this.getUniformsBufferInfo(u)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=M4,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointSimple",vertexShader:CM,fragmentShader:RM,defines:t.getDefines(),inject:t.getInject(),triangulation:M4,depth:{enable:!1},primitive:L.POINTS})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const MM=`precision highp float;
- in vec4 v_color;
- #pragma include "picking"
- layout(std140) uniform commonUniform {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor: 0;
- float u_heightfixed: 0.0; // 默认不固定
- float u_globel;
- float u_r;
- float u_pickLight: 0.0;
- float u_opacitylinear: 0.0;
- float u_opacitylinear_dir: 1.0;
- float u_lightEnable: 1.0;
- };
- in float v_lightWeight;
- in float v_barLinearZ;
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- // 开启透明度渐变
- if(u_opacitylinear > 0.0) {
- outputColor.a *= u_opacitylinear_dir > 0.0 ? (1.0 - v_barLinearZ): v_barLinearZ;
- }
- // picking
- if(u_pickLight > 0.0) {
- outputColor = filterColorAlpha(outputColor, v_lightWeight);
- } else {
- outputColor = filterColor(outputColor);
- }
- }
- `,NM=`precision highp float;
- #define pi 3.1415926535
- #define ambientRatio 0.5
- #define diffuseRatio 0.3
- #define specularRatio 0.2
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size;
- layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(std140) uniform commonUniform {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor: 0;
- float u_heightfixed: 0.0; // 默认不固定
- float u_globel;
- float u_r;
- float u_pickLight: 0.0;
- float u_opacitylinear: 0.0;
- float u_opacitylinear_dir: 1.0;
- float u_lightEnable: 1.0;
- };
- out vec4 v_color;
- out float v_lightWeight;
- out float v_barLinearZ;
- // 用于将在顶点着色器中计算好的样式值传递给片元
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- float getYRadian(float x, float z) {
- if(x > 0.0 && z > 0.0) {
- return atan(x/z);
- } else if(x > 0.0 && z <= 0.0){
- return atan(-z/x) + pi/2.0;
- } else if(x <= 0.0 && z <= 0.0) {
- return pi + atan(x/z); //atan(x/z) +
- } else {
- return atan(z/-x) + pi*3.0/2.0;
- }
- }
- float getXRadian(float y, float r) {
- return atan(y/r);
- }
- void main() {
- // cal style mapping - 数据纹理映射部分的计算
- vec3 size = a_Size * a_Position;
- // a_Position.z 是在构建网格的时候传入的标准值 0 - 1,在插值器插值可以获取 0~1 线性渐变的值
- v_barLinearZ = a_Position.z;
- vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移
- if(u_heightfixed < 1.0) { // 圆柱体不固定高度
- //
- } else {// 圆柱体固定高度 ( 处理 mapbox )
- if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- offset *= 4.0/pow(2.0, 21.0 - u_Zoom);
- }
- }
- vec4 project_pos = project_position(vec4(a_Pos.xy, 0., 1.0));
- // u_r 控制圆柱的生长
- vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0);
- // 圆柱光照效果
- float lightWeight = 1.0;
- if(u_lightEnable > 0.0) { // 取消三元表达式,增强健壮性
- lightWeight = calc_lighting(pos);
- }
- v_lightWeight = lightWeight;
- // 设置圆柱的底色
- if(u_linearColor == 1.0) { // 使用渐变颜色
- v_color = mix(u_sourceColor, u_targetColor, v_barLinearZ);
- v_color.rgb *= lightWeight;
- } else { // 使用 color 方法传入的颜色
- v_color = a_Color;
- }
- v_color.a *= u_opacity;
- // 在地球模式下,将原本垂直于 xy 平面的圆柱调整姿态到适应圆的角度
- //旋转矩阵mx,创建绕x轴旋转矩阵
- float r = sqrt(a_Pos.z*a_Pos.z + a_Pos.x*a_Pos.x);
- float xRadian = getXRadian(a_Pos.y, r);
- float xcos = cos(xRadian);//求解旋转角度余弦值
- float xsin = sin(xRadian);//求解旋转角度正弦值
- mat4 mx = mat4(
- 1,0,0,0,
- 0,xcos,-xsin,0,
- 0,xsin,xcos,0,
- 0,0,0,1);
- //旋转矩阵my,创建绕y轴旋转矩阵
- float yRadian = getYRadian(a_Pos.x, a_Pos.z);
- float ycos = cos(yRadian);//求解旋转角度余弦值
- float ysin = sin(yRadian);//求解旋转角度正弦值
- mat4 my = mat4(
- ycos,0,-ysin,0,
- 0,1,0,0,
- ysin,0,ycos,0,
- 0,0,0,1);
- gl_Position = u_ViewProjectionMatrix * vec4(( my * mx * vec4(a_Position * a_Size, 1.0)).xyz + a_Pos, 1.0);
- setPickingColor(a_PickingColor);
- }
- `,{isNumber:DM}=Qn;let OM=class extends Pi{constructor(...t){super(...t),H(this,"raiseCount",0),H(this,"raiseRepeat",0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,POS:10,NORMAL:11})}getCommonUniformsInfo(){const{animateOption:t={enable:!1,speed:.01,repeat:!1},opacity:r=1,sourceColor:i,targetColor:s,pickLight:u=!1,heightfixed:n=!0,opacityLinear:y={enable:!1,dir:"up"},lightEnable:m=!0}=this.layer.getLayerConfig();let g=0,x=[0,0,0,0],b=[0,0,0,0];if(i&&s&&(x=Mi(i),b=Mi(s),g=1),this.raiseCount<1&&this.raiseRepeat>0&&t.enable){const{speed:I=.01}=t;this.raiseCount+=I,this.raiseCount>=1&&(this.raiseRepeat>1?(this.raiseCount=0,this.raiseRepeat--):this.raiseCount=1)}const F={u_sourceColor:x,u_targetColor:b,u_linearColor:g,u_pickLight:Number(u),u_heightfixed:Number(n),u_r:t.enable&&this.raiseRepeat>0?this.raiseCount:1,u_opacity:DM(r)?r:1,u_opacitylinear:Number(y.enable),u_opacitylinear_dir:y.dir==="up"?1:0,u_lightEnable:Number(m)};return this.getUniformsBufferInfo(F)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{animateOption:{repeat:r=1}}=t.layer.getLayerConfig();return t.raiseRepeat=r,[yield t.layer.buildLayerModel({moduleName:"pointEarthExtrude",vertexShader:NM,fragmentShader:MM,triangulation:B6,depth:{enable:!0},defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT},blend:t.getBlend()})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const{size:r}=t;if(r){let i=[];return Array.isArray(r)&&(i=r.length===2?[r[0],r[0],r[1]]:r),Array.isArray(r)||(i=[r,r,r]),i}else return[2,2,2]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=h1(t.coordinates);return q9([r[0],r[1]])}}})}};const LM=`in vec4 v_data;
- in vec4 v_color;
- in float v_radius;
- layout(std140) uniform commonUniform {
- float u_additive;
- float u_stroke_opacity : 1;
- float u_stroke_width : 2;
- float u_blur : 0.0;
- };
- #pragma include "sdf_2d"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- int shape = int(floor(v_data.w + 0.5));
- vec4 strokeColor = u_stroke == vec4(0.0) ? v_color : u_stroke;
- lowp float antialiasblur = v_data.z;
- float r = v_radius / (v_radius + u_stroke_width);
- float outer_df;
- float inner_df;
- // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'
- if (shape == 0) {
- outer_df = sdCircle(v_data.xy, 1.0);
- inner_df = sdCircle(v_data.xy, r);
- } else if (shape == 1) {
- outer_df = sdEquilateralTriangle(1.1 * v_data.xy);
- inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);
- } else if (shape == 2) {
- outer_df = sdBox(v_data.xy, vec2(1.));
- inner_df = sdBox(v_data.xy, vec2(r));
- } else if (shape == 3) {
- outer_df = sdPentagon(v_data.xy, 0.8);
- inner_df = sdPentagon(v_data.xy, r * 0.8);
- } else if (shape == 4) {
- outer_df = sdHexagon(v_data.xy, 0.8);
- inner_df = sdHexagon(v_data.xy, r * 0.8);
- } else if (shape == 5) {
- outer_df = sdOctogon(v_data.xy, 1.0);
- inner_df = sdOctogon(v_data.xy, r);
- } else if (shape == 6) {
- outer_df = sdHexagram(v_data.xy, 0.52);
- inner_df = sdHexagram(v_data.xy, r * 0.52);
- } else if (shape == 7) {
- outer_df = sdRhombus(v_data.xy, vec2(1.0));
- inner_df = sdRhombus(v_data.xy, vec2(r));
- } else if (shape == 8) {
- outer_df = sdVesica(v_data.xy, 1.1, 0.8);
- inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);
- }
- if(outer_df > antialiasblur + 0.018) discard;
- float opacity_t = smoothstep(0.0, antialiasblur, outer_df);
- float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep(
- antialiasblur,
- 0.0,
- inner_df
- );
- if(u_stroke_width < 0.01) {
- outputColor = vec4(v_color.rgb, v_color.a * u_opacity);
- } else {
- outputColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), strokeColor * u_stroke_opacity, color_t);
- }
- if(u_additive > 0.0) {
- outputColor *= opacity_t;
- outputColor = filterColorAlpha(outputColor, outputColor.a);
- } else {
- outputColor.a *= opacity_t;
- outputColor = filterColor(outputColor);
- }
- }
- `,BM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape;
- layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude;
- layout(std140) uniform commonUniform {
- float u_additive;
- float u_stroke_opacity : 1;
- float u_stroke_width : 2;
- float u_blur : 0.0;
- };
- out vec4 v_data;
- out vec4 v_color;
- out float v_radius;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- vec3 extrude = a_Extrude;
- float shape_type = a_Shape;
- /*
- * setPickingSize 设置拾取大小
- */
- float newSize = setPickingSize(a_Size);
- // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;
- // unpack color(vec2)
- v_color = a_Color;
- // radius(16-bit)
- v_radius = newSize;
- // anti-alias
- // float antialiased_blur = -max(u_blur, antialiasblur);
- float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur);
- // TODP: /abs(extrude.x) 是为了兼容地球模式
- v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);
- gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1 + vec3(u_offsets,0.0), 1.0);
- setPickingColor(a_PickingColor);
- }
- `;let UM=class extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,SHAPE:10,EXTRUDE:11})}getCommonUniformsInfo(){const{strokeOpacity:t=1,strokeWidth:r=0,blend:i,blur:s=0}=this.layer.getLayerConfig();this.layer.getLayerConfig();const u={u_additive:i==="additive"?1:0,u_stroke_opacity:t,u_stroke_width:r,u_blur:s};return this.getUniformsBufferInfo(u)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=A4,[yield t.layer.buildLayerModel({moduleName:"pointEarthFill",vertexShader:BM,fragmentShader:LM,triangulation:A4,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!0},blend:t.getBlend()})]})()}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const[u,n,y]=i,m=dp(0,0,1),g=dp(u,0,y),x=u>=0?I3(m,g):Math.PI*2-I3(m,g),b=Math.PI*2-Math.asin(n/100),F=Vf();Vg(F,F,x),i6(F,F,b);const R=dp(1,1,0);bh(R,R,F),$d(R,R);const I=dp(-1,1,0);bh(I,I,F),$d(I,I);const U=dp(-1,-1,0);bh(U,U,F),$d(U,U);const V=dp(1,-1,0);bh(V,V,F),$d(V,V);const J=[...R,...I,...U,...V],Q=s%4*3;return[J[Q],J[Q+1],J[Q+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"shape",type:br.Attribute,descriptor:{name:"a_Shape",shaderLocation:this.attributeLocation.SHAPE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{shape:r=2}=t;return[this.layer.getLayerConfig().shape2d.indexOf(r)]}}})}};const kM=`
- in vec4 v_color;
- in float v_lightWeight;
- out vec4 outputColor;
- layout(std140) uniform commonUniforms {
- float u_pickLight;
- float u_heightfixed;
- float u_r;
- float u_linearColor;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_opacitylinear;
- float u_opacitylinear_dir;
- float u_lightEnable;
- };
- #pragma include "scene_uniforms"
- #pragma include "picking"
- void main() {
- outputColor = v_color;
- // 开启透明度渐变
- // picking
- if(u_pickLight > 0.0) {
- outputColor = filterColorAlpha(outputColor, v_lightWeight);
- } else {
- outputColor = filterColor(outputColor);
- }
- }
- `,zM=`#define pi (3.1415926535)
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size;
- layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec4 a_Extrude;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(std140) uniform commonUniforms {
- float u_pickLight;
- float u_heightfixed;
- float u_r;
- float u_linearColor;
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_opacitylinear;
- float u_opacitylinear_dir;
- float u_lightEnable;
- };
- out vec4 v_color;
- out float v_lightWeight;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- float getYRadian(float x, float z) {
- if (x > 0.0 && z > 0.0) {
- return atan(x / z);
- } else if (x > 0.0 && z <= 0.0) {
- return atan(-z / x) + pi / 2.0;
- } else if (x <= 0.0 && z <= 0.0) {
- return pi + atan(x / z); //atan(x/z) +
- } else {
- return atan(z / -x) + pi * 3.0 / 2.0;
- }
- }
- float getXRadian(float y, float r) {
- return atan(y / r);
- }
- void main() {
- vec3 size = a_Size * a_Position;
- vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移
- if (u_heightfixed < 1.0) {
- // 圆柱体不固定高度
- } else {
- // 圆柱体固定高度 ( 处理 mapbox )
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- offset *= 4.0 / pow(2.0, 21.0 - u_Zoom);
- }
- }
- vec2 positions = a_Extrude.xy;
- vec2 positions64Low = a_Extrude.zw;
- vec4 project_pos = project_position(vec4(positions, 0.0, 1.0), positions64Low);
- // u_r 控制圆柱的生长
- vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0);
- // // 圆柱光照效果
- float lightWeight = 1.0;
- if (u_lightEnable > 0.0) {
- // 取消三元表达式,增强健壮性
- lightWeight = calc_lighting(pos);
- }
- v_lightWeight = lightWeight;
- v_color = a_Color;
- // 设置圆柱的底色
- if (u_linearColor == 1.0) {
- // 使用渐变颜色
- v_color = mix(u_sourceColor, u_targetColor, a_Position.z);
- v_color.a = v_color.a * opacity;
- } else {
- v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity);
- }
- if (u_opacitylinear > 0.0) {
- v_color.a *= u_opacitylinear_dir > 0.0 ? 1.0 - a_Position.z : a_Position.z;
- }
- gl_Position = project_common_position_to_clipspace(pos);
- setPickingColor(a_PickingColor);
- }
- `;let o7=class extends Pi{constructor(...t){super(...t),H(this,"raiseCount",0),H(this,"raiseRepeat",0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10,NORMAL:11})}getCommonUniformsInfo(){const{animateOption:t={enable:!1,speed:.01,repeat:!1},sourceColor:r,targetColor:i,pickLight:s=!1,heightfixed:u=!1,opacityLinear:n={enable:!1,dir:"up"},lightEnable:y=!0}=this.layer.getLayerConfig();let m=0,g=[0,0,0,0],x=[0,0,0,0];if(r&&i&&(g=Mi(r),x=Mi(i),m=1),this.raiseCount<1&&this.raiseRepeat>0&&t.enable){const{speed:R=.01}=t;this.raiseCount+=R,this.raiseCount>=1&&(this.raiseRepeat>1?(this.raiseCount=0,this.raiseRepeat--):this.raiseCount=1)}const b={u_pickLight:Number(s),u_heightfixed:Number(u),u_r:t.enable&&this.raiseRepeat>0?this.raiseCount:1,u_linearColor:m,u_sourceColor:g,u_targetColor:x,u_opacitylinear:Number(n.enable),u_opacitylinear_dir:n.dir==="up"?1:0,u_lightEnable:Number(y)};return this.getUniformsBufferInfo(b)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{depth:r=!0,animateOption:{repeat:i=1}}=t.layer.getLayerConfig();return t.raiseRepeat=i,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointExtrude",vertexShader:zM,fragmentShader:kM,triangulation:B6,defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT},depth:{enable:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const{size:r}=t;if(r){let i=[];return Array.isArray(r)&&(i=r.length===2?[r[0],r[0],r[1]]:r),Array.isArray(r)||(i=[r,r,r]),i}else return[2,2,2]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:t=>{const r=h1(t.coordinates);return[r[0],r[1],ua(r[0]),ua(r[1])]}}})}};const VM=`
- layout(std140) uniform commonUniforms {
- vec3 u_blur_height_fixed;
- float u_stroke_width;
- float u_additive;
- float u_stroke_opacity;
- float u_size_unit;
- float u_time;
- vec4 u_animate;
- };
- in vec4 v_color;
- in vec4 v_stroke;
- in vec4 v_data;
- in float v_radius;
- #pragma include "scene_uniforms"
- #pragma include "sdf_2d"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- int shape = int(floor(v_data.w + 0.5));
- lowp float antialiasblur = v_data.z;
- float r = v_radius / (v_radius + u_stroke_width);
- float outer_df;
- float inner_df;
- // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'
- if (shape == 0) {
- outer_df = sdCircle(v_data.xy, 1.0);
- inner_df = sdCircle(v_data.xy, r);
- } else if (shape == 1) {
- outer_df = sdEquilateralTriangle(1.1 * v_data.xy);
- inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);
- } else if (shape == 2) {
- outer_df = sdBox(v_data.xy, vec2(1.));
- inner_df = sdBox(v_data.xy, vec2(r));
- } else if (shape == 3) {
- outer_df = sdPentagon(v_data.xy, 0.8);
- inner_df = sdPentagon(v_data.xy, r * 0.8);
- } else if (shape == 4) {
- outer_df = sdHexagon(v_data.xy, 0.8);
- inner_df = sdHexagon(v_data.xy, r * 0.8);
- } else if (shape == 5) {
- outer_df = sdOctogon(v_data.xy, 1.0);
- inner_df = sdOctogon(v_data.xy, r);
- } else if (shape == 6) {
- outer_df = sdHexagram(v_data.xy, 0.52);
- inner_df = sdHexagram(v_data.xy, r * 0.52);
- } else if (shape == 7) {
- outer_df = sdRhombus(v_data.xy, vec2(1.0));
- inner_df = sdRhombus(v_data.xy, vec2(r));
- } else if (shape == 8) {
- outer_df = sdVesica(v_data.xy, 1.1, 0.8);
- inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);
- }
- float opacity_t = smoothstep(0.0, antialiasblur, outer_df);
- float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep(
- antialiasblur,
- 0.0,
- inner_df
- );
- float PI = 3.14159;
- float N_RINGS = 3.0;
- float FREQ = 1.0;
- if(u_stroke_width < 0.01) {
- outputColor = v_color;
- } else {
- outputColor = mix(v_color, v_stroke * u_stroke_opacity, color_t);
- }
- float intensity = 1.0;
- if(u_time!=-1.0){
- //wave相关逻辑
- float d = length(v_data.xy);
- if(d > 0.5) {
- discard;
- }
- intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_animate.z - u_animate.y * u_time)), 0.0, 1.0);
- }
- if(u_additive > 0.0) {
- outputColor *= opacity_t;
- outputColor *= intensity;//wave
- outputColor = filterColorAlpha(outputColor, outputColor.a);
- } else {
- outputColor.a *= opacity_t;
- outputColor.a *= intensity;//wave
- outputColor = filterColor(outputColor);
- }
- // 作为 mask 模板时需要丢弃透明的像素
- if(outputColor.a < 0.01) {
- discard;
- }
- }
- `,HM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape;
- layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude;
- layout(std140) uniform commonUniforms {
- vec3 u_blur_height_fixed;
- float u_stroke_width;
- float u_additive;
- float u_stroke_opacity;
- float u_size_unit;
- float u_time;
- vec4 u_animate;
- };
- out vec4 v_color;
- out vec4 v_stroke;
- out vec4 v_data;
- out float v_radius;
- #pragma include "projection"
- #pragma include "picking"
- #pragma include "rotation_2d"
- void main() {
- // 透明度计算
- v_stroke = stroke;
- vec3 extrude = a_Extrude;
- float shape_type = a_Shape;
- /*
- * setPickingSize 设置拾取大小
- * u_meter2coord 在等面积大小的时候设置单位
- */
- float newSize = setPickingSize(a_Size);
- // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;
- // unpack color(vec2)
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- if(u_size_unit == 1.0) {
- newSize = newSize * u_PixelsPerMeter.z;
- }
- v_radius = newSize;
- // anti-alias
- // float antialiased_blur = -max(u_blur, antialiasblur);
- float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur_height_fixed.x);
- vec2 offset = (extrude.xy * (newSize + u_stroke_width) + u_offsets);
- offset = project_pixel(offset);
- offset = rotate_matrix(offset,rotation);
- // TODP: /abs(extrude.x) 是为了兼容地球模式
- v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);
- vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low);
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));
- float raisingHeight = u_blur_height_fixed.y;
- if(u_blur_height_fixed.z < 1.0) { // false
- raisingHeight = project_pixel(u_blur_height_fixed.y);
- } else {
- if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
- raisingHeight = u_blur_height_fixed.y * mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;let i7=class extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,SHAPE:10,EXTRUDE:11})}getCommonUniformsInfo(){const{strokeOpacity:t=1,strokeWidth:r=0,blend:i,blur:s=0,raisingHeight:u=0,heightfixed:n=!1,unit:y="pixel"}=this.layer.getLayerConfig();let m=this.getAnimateUniforms().u_time;isNaN(m)&&(m=-1);const g={u_blur_height_fixed:[s,Number(u),Number(n)],u_stroke_width:r,u_additive:i==="additive"?1:0,u_stroke_opacity:t,u_size_unit:L6[y],u_time:m,u_animate:this.getAnimateUniforms().u_animate};return this.getUniformsBufferInfo(g)}getAnimateUniforms(){const{animateOption:t={enable:!1}}=this.layer.getLayerConfig();return{u_animate:this.animateOption2Array(t),u_time:this.layer.getLayerAnimateTime()}}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.layer.triangulation=d1,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:d1,depth:{enable:!1}})]})()}getShaders(){return{frag:VM,vert:HM,type:"pointFill"}}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){const t=this.layer.getLayerConfig().shape2d;this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(r,i,s,u)=>{const n=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],y=u%4*3;return[n[y],n[y+1],n[y+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:r=>{const{size:i=5}=r;return Array.isArray(i)?[i[0]]:[i]}}}),this.styleAttributeService.registerStyleAttribute({name:"shape",type:br.Attribute,descriptor:{name:"a_Shape",shaderLocation:this.attributeLocation.SHAPE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:r=>{const{shape:i=2}=r;return[t.indexOf(i)]}}})}};const GM=`in vec2 v_uv;// 本身的 uv 坐标
- in vec2 v_Iconuv;
- in float v_opacity;
- out vec4 outputColor;
- uniform sampler2D u_texture;
- layout(std140) uniform commonUniform {
- vec2 u_textSize;
- float u_heightfixed: 0.0;
- float u_raisingHeight: 0.0;
- float u_size_unit;
- };
- #pragma include "scene_uniforms"
- #pragma include "sdf_2d"
- #pragma include "picking"
- void main() {
- vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.;
- outputColor = texture(SAMPLER_2D(u_texture), pos);
- outputColor.a *= v_opacity;
- outputColor = filterColor(outputColor);
- }
- `,jM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniform {
- vec2 u_textSize;
- float u_heightfixed;
- float u_raisingHeight;
- float u_size_unit;
- };
- out vec2 v_uv;
- out vec2 v_Iconuv;
- out float v_opacity;
- #pragma include "projection"
- #pragma include "picking"
- #pragma include "rotation_2d"
- void main() {
- vec3 extrude = a_Extrude;
- v_uv = (a_Extrude.xy + 1.0) / 2.0;
- v_uv.y = 1.0 - v_uv.y;
- v_Iconuv = a_Uv;
- v_opacity = opacity;
- float newSize = a_Size;
- if (u_size_unit == 1.0) {
- newSize = newSize * u_PixelsPerMeter.z;
- }
- // vec2 offset = (u_RotateMatrix * extrude.xy * (a_Size) + textrueOffsets);
- vec2 offset = extrude.xy * newSize + offsets;
- offset = rotate_matrix(offset, rotation);
- offset = project_pixel(offset);
- vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class WM extends Pi{constructor(...t){super(...t),H(this,"meter2coord",1),H(this,"texture",void 0),H(this,"isMeter",!1),H(this,"radian",0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas(),mag:"linear",min:"linear mipmap nearest",mipmap:!0}),this.layerService.throttleRenderLayers();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.LINEAR,min:L.LINEAR_MIPMAP_LINEAR,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128,mipmap:!0}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10,UV:11})}getCommonUniformsInfo(){const{raisingHeight:t=0,heightfixed:r=!1,unit:i="pixel"}=this.layer.getLayerConfig();if(this.rendererService.getDirty()){var s;(s=this.texture)===null||s===void 0||s.bind()}const u={u_textSize:[1024,this.iconService.canvasHeight||128],u_heightfixed:Number(r),u_raisingHeight:Number(t),u_size_unit:L6[i]};return this.getUniformsBufferInfo(u)}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.iconService.on("imageUpdate",t.updateTexture),t.updateTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointFillImage",vertexShader:jM,fragmentShader:GM,triangulation:d1,depth:{enable:!1},defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT}})]})()}clearModels(){var t;this.iconService.off("imageUpdate",this.updateTexture),(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{shape:i}=t,{x:s,y:u}=r[i]||{x:-64,y:-64};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const u=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],n=s%4*3;return[u[n],u[n+1],u[n+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const XM=`layout(std140) uniform commonUniforms {
- vec2 u_textSize;
- float u_raisingHeight;
- float u_heightfixed;
- };
- uniform sampler2D u_texture;
- in vec4 v_color;
- in vec2 v_uv;
- in float v_opacity;
- #pragma include "picking"
- out vec4 outputColor;
- void main(){
- vec2 pos = v_uv / u_textSize + gl_PointCoord / u_textSize * 64.;
- vec4 textureColor;
- // Y = 0.299R + 0.587G + 0.114B // 亮度提取
-
- textureColor = texture(SAMPLER_2D(u_texture), pos);
- // Tip: 去除边缘部分 mipmap 导致的混合变暗
- float fragmengTocenter = distance(vec2(0.5), gl_PointCoord);
- if(fragmengTocenter >= 0.5) {
- float luma = 0.299 * textureColor.r + 0.587 * textureColor.g + 0.114 * textureColor.b;
- textureColor.a *= luma;
- }
-
- if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){
- outputColor= textureColor;
- }else {
- outputColor= step(0.01, textureColor.z) * v_color;
- }
- outputColor.a *= v_opacity;
- if (outputColor.a < 0.01) {
- discard;
- }
- outputColor = filterColor(outputColor);
- }
- `,ZM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- vec2 u_textSize;
- float u_raisingHeight;
- float u_heightfixed;
- };
- out vec4 v_color;
- out vec2 v_uv;
- out float v_opacity;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- // cal style mapping - 数据纹理映射部分的计算
- v_color = a_Color;
- v_opacity = opacity;
- v_uv = a_Uv;
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- vec2 offset = project_pixel(offsets);
- float raisingHeight = u_raisingHeight;
- if (u_heightfixed < 1.0) {
- // false
- raisingHeight = project_pixel(u_raisingHeight);
- } else {
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- raisingHeight = u_raisingHeight * mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));
- gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;
- setPickingColor(a_PickingColor);
- }
- `;class n7 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas(),mag:"linear",min:"linear mipmap nearest",mipmap:!0}),setTimeout(()=>{this.layerService.throttleRenderLayers()});return}this.texture=r({data:this.iconService.getCanvas(),mag:L.LINEAR,min:L.LINEAR_MIPMAP_LINEAR,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128,mipmap:!0})})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,UV:10})}getUninforms(){if(this.rendererService.getDirty()){var t;(t=this.texture)===null||t===void 0||t.bind()}const r=this.getCommonUniformsInfo(),i=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},r.uniformsOption),i.uniformsOption)}getCommonUniformsInfo(){const{raisingHeight:t=0,heightfixed:r=!1}=this.layer.getLayerConfig(),i={u_textSize:[1024,this.iconService.canvasHeight||128],u_raisingHeight:Number(t),u_heightfixed:Number(r),u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.iconService.on("imageUpdate",t.updateTexture),t.updateTexture(),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointImage",vertexShader:ZM,fragmentShader:XM,triangulation:vI,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},primitive:L.POINTS})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{shape:i}=t,{x:s,y:u}=r[i]||{x:-64,y:-64};return[s,u]}}})}}const YM=`in vec4 v_color;
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- }`,$M=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(std140) uniform u_Common {
- float u_size_scale;
- };
- out vec4 v_color;
- #pragma include "projection"
- #pragma include "project"
- void main() {
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(project_pos);
- gl_PointSize = a_Size * u_size_scale * 2.0 * u_DevicePixelRatio;
- }
- `;function N4(e){const t=e.coordinates;return{vertices:[...t],indices:[0],size:t.length}}class a7 extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getDefaultStyle(){return{blend:"additive"}}getCommonUniformsInfo(){const t={u_size_scale:.5};return this.getUniformsBufferInfo(t)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=N4,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointNormal",vertexShader:$M,fragmentShader:YM,triangulation:N4,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},primitive:L.POINTS,pick:!1})]})()}clearModels(){}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const qM=`
- layout(std140) uniform commonUniorm{
- float u_additive;
- float u_size_unit;
- float u_speed: 1.0;
- float u_time;
- };
- in vec4 v_data;
- in vec4 v_color;
- in float v_radius;
- in vec2 v_extrude;
- #pragma include "sdf_2d"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- lowp float antialiasblur = v_data.z;
- float r = v_radius / (v_radius);
- float outer_df = sdCircle(v_data.xy, 1.0);
- float inner_df = sdCircle(v_data.xy, r);
- float opacity_t = smoothstep(0.0, antialiasblur, outer_df);
- outputColor = vec4(v_color.rgb, v_color.a);
- if(u_additive > 0.0) {
- outputColor *= opacity_t;
- } else {
- outputColor.a *= opacity_t;
- }
- if(outputColor.a > 0.0) {
- outputColor = filterColor(outputColor);
- }
- vec2 extrude = v_extrude;
- vec2 dir = normalize(extrude);
- vec2 baseDir = vec2(1.0, 0.0);
- float pi = 3.14159265359;
- float flag = sign(dir.y);
- float rades = dot(dir, baseDir);
- float radar_v = (flag - 1.0) * -0.5 * acos(rades)/pi;
- // simple AA
- if(radar_v > 0.99) {
- radar_v = 1.0 - (radar_v - 0.99)/0.01;
- }
- outputColor.a *= radar_v;
- }
- `,KM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude;
- layout(std140) uniform commonUniorm {
- float u_additive;
- float u_size_unit;
- float u_speed: 1.0;
- float u_time;
- };
- out vec4 v_data;
- out vec4 v_color;
- out float v_radius;
- out vec2 v_extrude;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- float newSize = setPickingSize(a_Size);
- float time = u_time * u_speed;
- mat2 rotateMatrix = mat2(
- cos(time), sin(time),
- -sin(time), cos(time)
- );
- v_extrude = rotateMatrix * a_Extrude.xy;
- v_color = a_Color;
- v_color.a *= opacity;
- float blur = 0.0;
- float antialiasblur = -max(2.0 / u_DevicePixelRatio / a_Size, blur);
- if(u_size_unit == 1.) {
- newSize = newSize * u_PixelsPerMeter.z;
- }
- v_radius = newSize;
- vec2 offset = (a_Extrude.xy * (newSize));
- offset = project_pixel(offset);
- v_data = vec4(a_Extrude.x, a_Extrude.y, antialiasblur, -1.0);
- vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class QM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10})}getCommonUniformsInfo(){const{blend:t,speed:r=1,unit:i="pixel"}=this.layer.getLayerConfig(),s={u_additive:t==="additive"?1:0,u_size_unit:L6[i],u_speed:r,u_time:this.layer.getLayerAnimateTime()};return this.getUniformsBufferInfo(s)}getAnimateUniforms(){return{}}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointRadar",vertexShader:KM,fragmentShader:qM,triangulation:d1,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}})]})()}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const u=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],n=s%4*3;return[u[n],u[n+1],u[n+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.SIZE,name:"a_Size",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}class JM{constructor(t,r,i){H(this,"boxCells",[]),H(this,"xCellCount",void 0),H(this,"yCellCount",void 0),H(this,"boxKeys",void 0),H(this,"bboxes",void 0),H(this,"width",void 0),H(this,"height",void 0),H(this,"xScale",void 0),H(this,"yScale",void 0),H(this,"boxUid",void 0);const s=this.boxCells;this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(r/i);for(let u=0;u<this.xCellCount*this.yCellCount;u++)s.push([]);this.boxKeys=[],this.bboxes=[],this.width=t,this.height=r,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/r,this.boxUid=0}insert(t,r,i,s,u){this.forEachCell(r,i,s,u,this.insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(r),this.bboxes.push(i),this.bboxes.push(s),this.bboxes.push(u)}query(t,r,i,s,u){return this.queryHitTest(t,r,i,s,!1,u)}hitTest(t,r,i,s,u){return this.queryHitTest(t,r,i,s,!0,u)}insertBoxCell(t,r,i,s,u,n){this.boxCells[u].push(n)}queryHitTest(t,r,i,s,u,n){if(i<0||t>this.width||s<0||r>this.height)return u?!1:[];const y=[];if(t<=0&&r<=0&&this.width<=i&&this.height<=s){if(u)return!0;for(let g=0;g<this.boxKeys.length;g++)y.push({key:this.boxKeys[g],x1:this.bboxes[g*4],y1:this.bboxes[g*4+1],x2:this.bboxes[g*4+2],y2:this.bboxes[g*4+3]});return n?y.filter(n):y}const m={hitTest:u,seenUids:{box:{},circle:{}}};return this.forEachCell(t,r,i,s,this.queryCell,y,m,n),u?y.length>0:y}queryCell(t,r,i,s,u,n,y,m){const g=y.seenUids,x=this.boxCells[u];if(x!==null){const b=this.bboxes;for(const F of x)if(!g.box[F]){g.box[F]=!0;const R=F*4;if(t<=b[R+2]&&r<=b[R+3]&&i>=b[R+0]&&s>=b[R+1]&&(!m||m(this.boxKeys[F]))){if(y.hitTest)return n.push(!0),!0;n.push({key:this.boxKeys[F],x1:b[R],y1:b[R+1],x2:b[R+2],y2:b[R+3]})}}}return!1}forEachCell(t,r,i,s,u,n,y,m){const g=this.convertToXCellCoord(t),x=this.convertToYCellCoord(r),b=this.convertToXCellCoord(i),F=this.convertToYCellCoord(s);for(let R=g;R<=b;R++)for(let I=x;I<=F;I++){const U=this.xCellCount*I+R;if(u.call(this,t,r,i,s,U,n,y,m))return}}convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}}class eN{constructor(t,r){H(this,"width",void 0),H(this,"height",void 0),H(this,"grid",void 0),H(this,"viewportPadding",100),H(this,"screenRightBoundary",void 0),H(this,"screenBottomBoundary",void 0),H(this,"gridRightBoundary",void 0),H(this,"gridBottomBoundary",void 0),this.width=t,this.height=r,this.viewportPadding=Math.max(t,r),this.grid=new JM(t+this.viewportPadding,r+this.viewportPadding,25),this.screenRightBoundary=t+this.viewportPadding,this.screenBottomBoundary=r+this.viewportPadding,this.gridRightBoundary=t+2*this.viewportPadding,this.gridBottomBoundary=r+2*this.viewportPadding}placeCollisionBox(t){const r=t.x1+t.anchorPointX+this.viewportPadding,i=t.y1+t.anchorPointY+this.viewportPadding,s=t.x2+t.anchorPointX+this.viewportPadding,u=t.y2+t.anchorPointY+this.viewportPadding;return!this.isInsideGrid(r,i,s,u)||this.grid.hitTest(r,i,s,u)?{box:[]}:{box:[r,i,s,u]}}insertCollisionBox(t,r){const i={featureIndex:r};this.grid.insert(i,t[0],t[1],t[2],t[3])}project(t,r,i){const s=kv(r,i,0,1),u=Gg(),n=Lv(...t);return n6(u,s,n),{x:(u[0]/u[3]+1)/2*this.width+this.viewportPadding,y:(-u[1]/u[3]+1)/2*this.height+this.viewportPadding}}isInsideGrid(t,r,i,s){return i>=0&&t<this.gridRightBoundary&&s>=0&&r<this.gridBottomBoundary}}function s7(e){let t=.5,r=.5;switch(e){case"right":case"top-right":case"bottom-right":t=1;break;case"left":case"top-left":case"bottom-left":t=0;break;default:t=.5}switch(e){case"bottom":case"bottom-right":case"bottom-left":r=1;break;case"top":case"top-right":case"top-left":r=0;break;default:r=.5}return{horizontalAlign:t,verticalAlign:r}}function u7(e,t,r,i,s,u,n){const y=(t-r)*s,m=(-i*n+.5)*u;for(const g of e)g.x+=y,g.y+=m}function tN(e,t,r,i,s,u,n){let m=0,g=-8,x=0;const b=e.positionedGlyphs,F=0,R=b.length;r.forEach(J=>{if(J.split("").forEach(Q=>{const te=t[Q];te&&(b.push({glyph:Q,x:m,y:g+0,vertical:!1,scale:1,metrics:te}),m+=te.advance+n)}),b.length!==R){const Q=m-n;x=Math.max(Q,x),b.length-1}m=0,g-=i+5});const{horizontalAlign:I,verticalAlign:U}=s7(s);u7(b,F,I,U,x,i,r.length);const V=g- -8;e.top+=-U*V,e.bottom=e.top-V,e.left+=-I*x,e.right=e.left+x}function rN(e,t,r,i,s,u,n){let m=0,g=-8,x=0;const b=e.positionedGlyphs,F=0,R=b.length;r.forEach(J=>{const Q=t[J];if(Q&&(b.push({glyph:J,x:Q.advance/2,y:g+0,vertical:!1,scale:1,metrics:Q}),m+=Q.advance+n),b.length!==R){const ne=m-n;x=Math.max(ne,x),b.length-1}m=0,g-=i+5});const{horizontalAlign:I,verticalAlign:U}=s7(s);u7(b,F,I,U,x,i,r.length);const V=g- -8;e.top+=-U*V,e.bottom=e.top-V,e.left+=-I*x,e.right=e.left+x}function oN(e,t,r,i,s,u,n=[0,0],y){const m=e.split(`
- `),g=[],x={positionedGlyphs:g,top:n[1],bottom:n[1],left:n[0],right:n[0],lineCount:m.length,text:e};return y?rN(x,t,m,r,i,s,u):tN(x,t,m,r,i,s,u),g.length?x:!1}function iN(e,t=[0,0],r){const{positionedGlyphs:i=[]}=e,s=[];for(const u of i){const n=u.metrics,y=4,m=n.advance*u.scale/2,g=[0,0],x=[u.x+m+t[0],u.y+t[1]],b=(0-y)*u.scale-m+x[0],F=(0-y)*u.scale+x[1],R=b+n.width*u.scale,I=F+n.height*u.scale,U={x:b,y:F},V={x:R,y:F},J={x:b,y:I},Q={x:R,y:I};s.push({tl:U,tr:V,bl:J,br:Q,tex:n,glyphOffset:g})}return s}const D4=`#define SDF_PX 8.0
- #define EDGE_GAMMA 0.105
- #define FONT_SIZE 48.0
- uniform sampler2D u_sdf_map;
- layout(std140) uniform commonUniforms {
- vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];
- vec2 u_sdf_map_size;
- float u_raisingHeight: 0.0;
- float u_stroke_width : 2;
- float u_gamma_scale : 0.5;
- float u_halo_blur : 0.5;
- };
- in vec2 v_uv;
- in float v_gamma_scale;
- in vec4 v_color;
- in vec4 v_stroke_color;
- in float v_fontScale;
- out vec4 outputColor;
- #pragma include "picking"
- void main() {
- // get style data mapping
- // get sdf from atlas
- float dist = texture(SAMPLER_2D(u_sdf_map), v_uv).a;
- lowp float buff = (6.0 - u_stroke_width / v_fontScale) / SDF_PX;
- highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (v_fontScale * u_gamma_scale) / 1.0;
- highp float gamma_scaled = gamma * v_gamma_scale;
- highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);
- outputColor = mix(v_color, v_stroke_color, smoothstep(0., 0.5, 1.- dist));
- outputColor.a *= alpha;
- // 作为 mask 模板时需要丢弃透明的像素
- if (outputColor.a < 0.01) {
- discard;
- }
- outputColor = filterColor(outputColor);
- }
- `,O4=`#define SDF_PX 8.0
- #define EDGE_GAMMA 0.105
- #define FONT_SIZE 24.0
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_TEXT_OFFSETS) in vec2 a_textOffsets;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_tex;
- layout(std140) uniform commonUniforms {
- vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];
- vec2 u_sdf_map_size;
- float u_raisingHeight: 0.0;
- float u_stroke_width : 2;
- float u_gamma_scale : 0.5;
- float u_halo_blur : 0.5;
- };
- out vec2 v_uv;
- out float v_gamma_scale;
- out vec4 v_color;
- out vec4 v_stroke_color;
- out float v_fontScale;
- #pragma include "projection"
- #pragma include "picking"
- #pragma include "rotation_2d"
- void main() {
- // cal style mapping - 数据纹理映射部分的计算
- v_uv = a_tex / u_sdf_map_size;
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- v_stroke_color = vec4(u_stroke_color.xyz, u_stroke_color.w * opacity);
- // 文本缩放比例
- float fontScale = a_Size / FONT_SIZE;
- v_fontScale = fontScale;
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- // vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- vec2 offset = rotate_matrix(a_textOffsets,rotation);
- // gl_Position = vec4(projected_position.xy / projected_position.w + rotation_matrix * a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);
- float raiseHeight = u_raisingHeight;
- if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
- raiseHeight = u_raisingHeight * mapboxZoomScale;
- }
- vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz + vec3(0.0, 0.0, raiseHeight), 1.0));
- gl_Position = vec4(
- projected_position.xy / projected_position.w + offset * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);
- v_gamma_scale = gl_Position.w;
- setPickingColor(a_PickingColor);
- }
- `,{isEqual:kd}=Qn;function L4(e){const t=this,r=e.id,i=[],s=[];if(!t.glyphInfoMap||!t.glyphInfoMap[r])return{vertices:[],indices:[],size:7};const u=t.glyphInfoMap[r].centroid,n=u.length===2?[u[0],u[1],0]:u;return t.glyphInfoMap[r].glyphQuads.forEach((y,m)=>{i.push(...n,y.tex.x,y.tex.y+y.tex.height,y.tl.x,y.tl.y,...n,y.tex.x+y.tex.width,y.tex.y+y.tex.height,y.tr.x,y.tr.y,...n,y.tex.x+y.tex.width,y.tex.y,y.br.x,y.br.y,...n,y.tex.x,y.tex.y,y.bl.x,y.bl.y),s.push(0+m*4,1+m*4,2+m*4,2+m*4,3+m*4,0+m*4)}),{vertices:i,indices:s,size:7}}class p7 extends Pi{constructor(...t){var r;super(...t),r=this,H(this,"glyphInfo",void 0),H(this,"glyphInfoMap",{}),H(this,"rawEncodeData",void 0),H(this,"texture",void 0),H(this,"currentZoom",-1),H(this,"extent",void 0),H(this,"textureHeight",0),H(this,"textCount",0),H(this,"preTextStyle",{}),H(this,"mapping",mt(function*(){r.initGlyph(),r.updateTexture(),yield r.reBuildModel()}))}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,TEXT_OFFSETS:10,UV:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t(_t({},t.uniformsOption),r.uniformsOption),{u_sdf_map:this.textures[0]})}getCommonUniformsInfo(){const{stroke:t="#fff",strokeWidth:r=0,halo:i=.5,gamma:s=2,raisingHeight:u=0}=this.layer.getLayerConfig(),n=this.getFontServiceMapping(),y=this.getFontServiceCanvas();n&&Object.keys(n).length!==this.textCount&&y&&(this.updateTexture(),this.textCount=Object.keys(n).length),this.preTextStyle=this.getTextStyle();const m={u_stroke_color:Mi(t),u_sdf_map_size:[(y==null?void 0:y.width)||1,(y==null?void 0:y.height)||1],u_raisingHeight:Number(u),u_stroke_width:r,u_gamma_scale:s,u_halo_blur:i};return this.getUniformsBufferInfo(m)}initModels(){var t=this;return mt(function*(){return t.bindEvent(),t.extent=t.textExtent(),t.rawEncodeData=t.layer.getEncodedData(),t.preTextStyle=t.getTextStyle(),t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{textAllowOverlap:r=!1}=t.layer.getLayerConfig();return t.initGlyph(),t.updateTexture(),r||t.filterGlyphs(),[yield t.layer.buildLayerModel({moduleName:"pointText",vertexShader:O4,fragmentShader:D4,defines:t.getDefines(),inject:t.getInject(),triangulation:L4.bind(t),depth:{enable:!1}})]})()}needUpdate(){var t=this;return mt(function*(){const{textAllowOverlap:r=!1,textAnchor:i="center",textOffset:s,padding:u,fontFamily:n,fontWeight:y}=t.getTextStyle();if(!kd(u,t.preTextStyle.padding)||!kd(s,t.preTextStyle.textOffset)||!kd(i,t.preTextStyle.textAnchor)||!kd(n,t.preTextStyle.fontFamily)||!kd(y,t.preTextStyle.fontWeight))return yield t.mapping(),!0;if(r)return!1;const m=t.mapService.getZoom(),g=t.mapService.getBounds(),x=s8(t.extent,g);return Math.abs(t.currentZoom-m)>.5||!x||r!==t.preTextStyle.textAllowOverlap?(yield t.reBuildModel(),!0):!1})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.layer.off("remapping",this.mapping)}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"textOffsets",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.TEXT_OFFSETS,name:"a_textOffsets",buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"textUv",type:br.Attribute,descriptor:{name:"a_tex",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=12}=t;return Array.isArray(r)?[r[0]]:[r]}}})}bindEvent(){this.layer.isTileLayer||this.layer.on("remapping",this.mapping)}textExtent(){const t=this.mapService.getBounds();return m6(t,.5)}initTextFont(){const{fontWeight:t,fontFamily:r}=this.getTextStyle(),i=this.rawEncodeData,s=[];i.forEach(u=>{let{shape:n=""}=u;n=n.toString();for(const y of n)s.indexOf(y)===-1&&s.push(y)}),this.fontService.setFontOptions({characterSet:s,fontWeight:t,fontFamily:r,iconfont:!1})}initIconFontTex(){const{fontWeight:t,fontFamily:r}=this.getTextStyle(),i=this.rawEncodeData,s=[];i.forEach(u=>{let{shape:n=""}=u;n=`${n}`,s.indexOf(n)===-1&&s.push(n)}),this.fontService.setFontOptions({characterSet:s,fontWeight:t,fontFamily:r,iconfont:!0})}getTextStyle(){const{fontWeight:t="400",fontFamily:r="sans-serif",textAllowOverlap:i=!1,padding:s=[0,0],textAnchor:u="center",textOffset:n=[0,0],opacity:y=1,strokeOpacity:m=1,strokeWidth:g=0,stroke:x="#000"}=this.layer.getLayerConfig();return{fontWeight:t,fontFamily:r,textAllowOverlap:i,padding:s,textAnchor:u,textOffset:n,opacity:y,strokeOpacity:m,strokeWidth:g,stroke:x}}generateGlyphLayout(t){const r=this.getFontServiceMapping(),{spacing:i=2,textAnchor:s="center",textOffset:u}=this.layer.getLayerConfig(),n=this.rawEncodeData;this.glyphInfo=n.map(y=>{const{shape:m="",id:g,size:x=1}=y,b=y.textOffset?y.textOffset:u||[0,0],F=y.textAnchor?y.textAnchor:s||"center",R=oN(m.toString(),r,x,F,"left",i,b,t),I=iN(R,b);return y.shaping=R,y.glyphQuads=I,y.centroid=h1(y.coordinates),this.glyphInfoMap[g]={shaping:R,glyphQuads:I,centroid:h1(y.coordinates)},y})}getFontServiceMapping(){const{fontWeight:t="400",fontFamily:r="sans-serif"}=this.layer.getLayerConfig();return this.fontService.getMappingByKey(`${r}_${t}`)}getFontServiceCanvas(){const{fontWeight:t="400",fontFamily:r="sans-serif"}=this.layer.getLayerConfig();return this.fontService.getCanvasByKey(`${r}_${t}`)}filterGlyphs(){const{padding:t=[0,0],textAllowOverlap:r=!1}=this.layer.getLayerConfig();if(r)return;this.glyphInfoMap={},this.currentZoom=this.mapService.getZoom(),this.extent=this.textExtent();const{width:i,height:s}=this.rendererService.getViewportSize(),u=new eN(i,s);this.glyphInfo.filter(y=>{const{shaping:m,id:g=0}=y,x=y.centroid,F=y.size/16,R=this.mapService.lngLatToContainer(x),{box:I}=u.placeCollisionBox({x1:m.left*F-t[0],x2:m.right*F+t[0],y1:m.top*F-t[1],y2:m.bottom*F+t[1],anchorPointX:R.x,anchorPointY:R.y});return I&&I.length?(u.insertCollisionBox(I,g),!0):!1}).forEach(y=>{this.glyphInfoMap[y.id]=y})}initGlyph(){const{iconfont:t=!1}=this.layer.getLayerConfig();t?this.initIconFontTex():this.initTextFont(),this.generateGlyphLayout(t)}updateTexture(){const{createTexture2D:t}=this.rendererService,r=this.getFontServiceCanvas();this.textureHeight=r.height,this.texture&&this.texture.destroy(),this.texture=t({data:r,mag:L.LINEAR,min:L.LINEAR,width:r.width,height:r.height}),this.textures=[this.texture]}reBuildModel(){var t=this;return mt(function*(){t.filterGlyphs();const r=yield t.layer.buildLayerModel({moduleName:"pointText",vertexShader:O4,fragmentShader:D4,triangulation:L4.bind(t),defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}});t.layer.models=[r]})()}}const nN={fillImage:WM,fill:i7,radar:QM,image:n7,normal:a7,simplePoint:IM,extrude:o7,text:p7,earthFill:UM,earthExtrude:OM};class wy extends A1{constructor(...t){super(...t),H(this,"type","PointLayer"),H(this,"enableShaderEncodeStyles",["stroke","offsets","opacity","rotation"]),H(this,"enableDataEncodeStyles",["textOffset","textAnchor"]),H(this,"defaultSourceConfig",{data:[],options:{parser:{type:"json",x:"lng",y:"lat"}}})}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel&&t.layerModel.clearModels(),t.layerModel=new nN[r](t),yield t.initLayerModels()})()}rebuildModels(){var t=this;return mt(function*(){yield t.buildModels()})()}getModelTypeWillEmptyData(){if(this.shapeOption){const{field:t,values:r}=this.shapeOption,{shape2d:i}=this.getLayerConfig(),s=this.iconService.getIconMap();if(t&&(i==null?void 0:i.indexOf(t))!==-1)return"fill";if(r==="text")return"text";if(r&&r instanceof Array){for(const u of r)if(typeof u=="string"&&s.hasOwnProperty(u))return"image"}}return"normal"}getDefaultConfig(){const t=this.getModelType();return{fillImage:{},normal:{blend:"additive"},radar:{},simplePoint:{},fill:{blend:"normal"},extrude:{},image:{},text:{blend:"normal"},tile:{},tileText:{},earthFill:{},earthExtrude:{}}[t]}getModelType(){const t=this.getEncodedData(),{shape2d:r,shape3d:i,billboard:s=!0}=this.getLayerConfig(),u=this.iconService.getIconMap(),n=t.find(y=>y.hasOwnProperty("shape"));if(n){const y=n.shape;return y==="dot"?"normal":y==="simple"?"simplePoint":y==="radar"?"radar":this.layerType==="fillImage"||s===!1?"fillImage":(r==null?void 0:r.indexOf(y))!==-1?this.mapService.version==="GLOBEL"?"earthFill":"fill":(i==null?void 0:i.indexOf(y))!==-1?this.mapService.version==="GLOBEL"?"earthExtrude":"extrude":u.hasOwnProperty(y)?"image":"text"}else return this.getModelTypeWillEmptyData()}}function aN(e){return j2.apply(this,arguments)}function j2(){return j2=mt(function*(e){if(window.createImageBitmap){const t=yield fetch(e);return yield createImageBitmap(yield t.blob())}else{const t=new window.Image;return new Promise(r=>{t.onload=()=>r(t),t.src=e,t.crossOrigin="Anonymous"})}}),j2.apply(this,arguments)}const sN=`layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- in vec4 v_Color;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- // top face
- if(u_topsurface < 1.0) {
- discard;
- }
- outputColor = v_Color;
-
- outputColor = filterColor(outputColor);
- }
- `,uN=`
- layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- in vec4 v_Color;
- in vec3 v_uvs;
- in vec2 v_texture_data;
- out vec4 outputColor;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- void main() {
- float isSide = v_texture_data.x;
- float sidey = v_uvs[2];
- float lightWeight = v_texture_data.y;
- // Tip: 部分机型 GPU 计算精度兼容
- if(isSide < 0.999) {
- // side face
- if(u_sidesurface < 1.0) {
- discard;
- }
-
- if( u_linearColor == 1.0) {
- // side use linear
- vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
- linearColor.rgb *= lightWeight;
- outputColor = linearColor;
- } else {
- // side notuse linear
- outputColor = v_Color;
- }
- } else {
- // top face
- if(u_topsurface < 1.0) {
- discard;
- }
- outputColor = v_Color;
- }
- outputColor = filterColorAlpha(outputColor, lightWeight);
- }
- `,pN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs;
- layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- out vec4 v_Color;
- out vec3 v_uvs;
- out vec2 v_texture_data;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- v_uvs = a_uvs;
- // cal style mapping - 数据纹理映射部分的计算
- vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
- vec4 project_pos = project_position(pos, a_Position64Low);
- if (u_heightfixed > 0.0) {
- // 判断几何体是否固定高度
- project_pos.z = a_Position.z * a_Size;
- project_pos.z += u_raisingHeight;
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- project_pos.z *= mapboxZoomScale;
- project_pos.z += u_raisingHeight * mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- float lightWeight = calc_lighting(project_pos);
- v_texture_data = vec2(a_Position.z, lightWeight);
- v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity);
- setPickingColor(a_PickingColor);
- }
- `,lN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs;
- layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- out vec4 v_Color;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- float isSide = a_Position.z;
- float topU = a_uvs[0];
- float topV = 1.0 - a_uvs[1];
- float sidey = a_uvs[2];
- vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
- vec4 project_pos = project_position(pos, a_Position64Low);
- float lightWeight = calc_lighting(project_pos);
- if (u_heightfixed > 0.0) {
- // 判断几何体是否固定高度
- project_pos.z = a_Position.z * a_Size;
- project_pos.z += u_raisingHeight;
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- project_pos.z *= mapboxZoomScale;
- project_pos.z += u_raisingHeight * mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- // Tip: 部分机型 GPU 计算精度兼容
- if (isSide < 0.999) {
- // side face
- // if(u_sidesurface < 1.0) {
- // discard;
- // }
- if (u_linearColor == 1.0) {
- vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
- linearColor.rgb *= lightWeight;
- v_Color = linearColor;
- } else {
- v_Color = a_Color;
- }
- } else {
- v_Color = a_Color;
- }
- v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity);
- setPickingColor(a_PickingColor);
- }
- `,cN=`uniform sampler2D u_texture;
- layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- in vec4 v_Color;
- in vec3 v_uvs;
- in vec2 v_texture_data;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- float opacity = u_opacity;
- float isSide = v_texture_data.x;
- float lightWeight = v_texture_data.y;
- float topU = v_uvs[0];
- float topV = 1.0 - v_uvs[1];
- float sidey = v_uvs[2];
- outputColor = texture(SAMPLER_2D(u_texture), vec2(topU, topV));
- // Tip: 部分机型 GPU 计算精度兼容
- if (isSide < 0.999) {// 是否是边缘
- // side face
- if (u_sidesurface < 1.0) {
- discard;
- }
- if (u_linearColor == 1.0) {
- vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
- linearColor.rgb *= lightWeight;
- outputColor = linearColor;
- } else {
- outputColor = v_Color;
- }
- } else {
- // top face
- if (u_topsurface < 1.0) {
- discard;
- }
- }
-
- outputColor.a *= opacity;
- outputColor = filterColor(outputColor);
- }
- `,dN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs;
- layout(std140) uniform commonUniforms {
- vec4 u_sourceColor;
- vec4 u_targetColor;
- float u_linearColor;
- float u_topsurface;
- float u_sidesurface;
- float u_heightfixed; // 默认不固定
- float u_raisingHeight;
- };
- out vec4 v_Color;
- out vec3 v_uvs;
- out vec2 v_texture_data;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
- vec4 project_pos = project_position(pos, a_Position64Low);
- float lightWeight = calc_lighting(project_pos);
- v_uvs = a_uvs;
- v_Color = a_Color;
- v_Color.a *= opacity;
- v_texture_data = vec2(a_Position.z, lightWeight);
- if (u_heightfixed > 0.0) {
- // 判断几何体是否固定高度
- project_pos.z = a_Position.z * a_Size;
- project_pos.z += u_raisingHeight;
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- project_pos.z *= mapboxZoomScale;
- project_pos.z += u_raisingHeight * mapboxZoomScale;
- }
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class yN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:10,UV:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{mapTexture:t,heightfixed:r=!1,raisingHeight:i=0,topsurface:s=!0,sidesurface:u=!0,sourceColor:n,targetColor:y}=this.layer.getLayerConfig();let m=0,g=[1,1,1,1],x=[1,1,1,1];n&&y&&(g=Mi(n),x=Mi(y),m=1);const b={u_sourceColor:g,u_targetColor:x,u_linearColor:m,u_topsurface:Number(s),u_sidesurface:Number(u),u_heightfixed:Number(r),u_raisingHeight:Number(i)};return t&&this.texture&&(b.u_texture=this.texture,this.textures=[this.texture]),this.getUniformsBufferInfo(b)}initModels(){var t=this;return mt(function*(){return yield t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,depth:{enable:!0},defines:t.getDefines(),inject:t.getInject(),triangulation:Q9})]})()}getShaders(){const{pickLight:t,mapTexture:r}=this.layer.getLayerConfig();return r?{frag:cN,vert:dN,type:"polygonExtrudeTexture"}:t?{frag:uN,vert:pN,type:"polygonExtrudePickLight"}:{frag:sN,vert:lN,type:"polygonExtrude"}}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.textures=[]}registerBuiltinAttributes(){const t=this.layer.getSource().extent,r=t[2]-t[0],i=t[3]-t[1];this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uvs",type:br.Attribute,descriptor:{name:"a_uvs",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(s,u,n)=>{const y=n[0],m=n[1];return[(y-t[0])/r,(m-t[1])/i,n[4]]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(s,u,n,y,m)=>m}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:s=>{const{size:u=10}=s;return Array.isArray(u)?[u[0]]:[u]}}})}loadTexture(){var t=this;return mt(function*(){const{mapTexture:r}=t.layer.getLayerConfig(),{createTexture2D:i}=t.rendererService;if(t.texture=i({height:1,width:1}),r){const s=yield aN(r);t.texture=i({data:s,width:s.width,height:s.height,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.LINEAR,mag:L.LINEAR})}})()}}const hN=`
- in vec4 v_Color;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- outputColor = v_Color;
- outputColor = filterColor(outputColor);
- }
- `,fN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size;
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
- out vec4 v_Color;
- #pragma include "projection"
- #pragma include "light"
- #pragma include "picking"
- void main() {
- vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size + (1.0 - a_Position.z) * extrusionBase, 1.0);
- vec4 project_pos = project_position(pos, a_Position64Low);
- float lightWeight = calc_lighting(project_pos);
- v_Color = a_Color;
- v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class mN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:10,EXTRUSION_BASE:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const t={};return this.getUniformsBufferInfo(t)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:Q9,depth:{enable:!0}})]})()}getShaders(){return{frag:hN,vert:fN,type:"polygonExtrude"}}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=10}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"extrusionBase",type:br.Attribute,descriptor:{name:"a_ExtrusionBase",shaderLocation:this.attributeLocation.EXTRUSION_BASE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{extrusionBase:r=0}=t;return[r]}}})}}const _N=`in vec4 v_color;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- out vec4 outputColor;
- void main() {
- outputColor = v_color;
- outputColor = filterColor(outputColor);
- }
- `,gN=`
- layout(std140) uniform commonUniforms {
- float u_raisingHeight;
- float u_opacitylinear;
- float u_dir;
- };
- in vec4 v_color;
- in vec3 v_linear;
- in vec2 v_pos;
- out vec4 outputColor;
- #pragma include "scene_uniforms"
- #pragma include "picking"
- void main() {
- outputColor = v_color;
- if (u_opacitylinear > 0.0) {
- outputColor.a *= u_dir == 1.0 ? 1.0 - length(v_pos - v_linear.xy)/v_linear.z : length(v_pos - v_linear.xy)/v_linear.z;
- }
- outputColor = filterColor(outputColor);
- }
- `,vN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_LINEAR) in vec3 a_linear;
- layout(std140) uniform commonUniforms {
- float u_raisingHeight;
- float u_opacitylinear;
- float u_dir;
- };
- out vec4 v_color;
- out vec3 v_linear;
- out vec2 v_pos;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- if (u_opacitylinear > 0.0) {
- v_linear = a_linear;
- v_pos = a_Position.xy;
- }
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- project_pos.z += u_raisingHeight;
- if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
- float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
- project_pos.z *= mapboxZoomScale;
- project_pos.z += u_raisingHeight * mapboxZoomScale;
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- setPickingColor(a_PickingColor);
- }
- `,EN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(std140) uniform commonUniforms {
- float u_raisingHeight;
- };
- out vec4 v_color;
- #pragma include "projection"
- #pragma include "picking"
- void main() {
- // cal style mapping - 数据纹理映射部分的计算
- v_color = vec4(a_Color.xyz, a_Color.w * opacity);
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- project_pos.z += u_raisingHeight;
- if (
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
- u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET
- ) {
- float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom);
- project_pos.z *= mapboxZoomScale;
- project_pos.z += u_raisingHeight * mapboxZoomScale;
- }
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- setPickingColor(a_PickingColor);
- }
- `;class xN extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,LINEAR:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{raisingHeight:t=0,opacityLinear:r={enable:!1,dir:"in"}}=this.layer.getLayerConfig(),i={u_raisingHeight:Number(t),u_opacitylinear:Number(r.enable),u_dir:r.dir==="in"?1:0};return this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,triangulation:s,type:u}=t.getModelParams();return t.initUniformsBuffer(),t.layer.triangulation=s,[yield t.layer.buildLayerModel({moduleName:u,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:s,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute();const{opacityLinear:t={enable:!1,dir:"in"}}=this.layer.getLayerConfig();t.enable&&this.styleAttributeService.registerStyleAttribute({name:"linear",type:br.Attribute,descriptor:{name:"a_linear",shaderLocation:this.attributeLocation.LINEAR,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(r,i,s)=>[s[3],s[4],s[5]]}})}getModelParams(){const{opacityLinear:t={enable:!1}}=this.layer.getLayerConfig();return t.enable?{frag:gN,vert:vN,type:"polygonLinear",triangulation:PI}:{frag:_N,vert:EN,type:"polygonFill",triangulation:By}}}const PN=`
- layout(std140) uniform commonUniforms {
- vec4 u_watercolor;
- vec4 u_watercolor2;
- float u_time;
- };
- in vec2 v_uv;
- in float v_opacity;
- out vec4 outputColor;
- float coast2water_fadedepth = 0.10;
- float large_waveheight = .750; // change to adjust the "heavy" waves
- float large_wavesize = 3.4; // factor to adjust the large wave size
- float small_waveheight = 0.6; // change to adjust the small random waves
- float small_wavesize = 0.5; // factor to ajust the small wave size
- float water_softlight_fact = 15.; // range [1..200] (should be << smaller than glossy-fact)
- float water_glossylight_fact= 120.; // range [1..200]
- float particle_amount = 70.;
- vec3 water_specularcolor = vec3(1.3, 1.3, 0.9); // specular Color (RGB) of the water-highlights
- #define light vec3(-0., sin(u_time*0.5)*.5 + .35, 2.8) // position of the sun
- uniform sampler2D u_texture1;
- uniform sampler2D u_texture2;
- uniform sampler2D u_texture3;
-
- float hash( float n ) {
- return fract(sin(n)*43758.5453123);
- }
- // 2d noise function
- float noise1( in vec2 x ) {
- vec2 p = floor(x);
- vec2 f = smoothstep(0.0, 1.0, fract(x));
- float n = p.x + p.y*57.0;
- return mix(mix( hash(n+ 0.0), hash(n+ 1.0),f.x),
- mix( hash(n+ 57.0), hash(n+ 58.0),f.x),f.y);
- }
- float noise(vec2 p) {
- return texture(SAMPLER_2D(u_texture2),p*vec2(1./256.)).x;
- }
- vec4 highness(vec2 p) {
- vec4 t = texture(SAMPLER_2D(u_texture1),fract(p));
- float clipped = -2.0-smoothstep(3.,10.,t.a)*6.9-smoothstep(10.,100.,t.a)*89.9-smoothstep(0.,10000.,t.a)*10000.0;
- return clamp(t, 0.0,3.0)+clamp(t/3.0-1.0, 0.0,1.0)+clamp(t/16.0-1.0, 0.0,1.0);
- }
- float height_map( vec2 p ) {
- vec4 height=highness(p);
- /*
- height = -0.5+
- 0.5*smoothstep(-100.,0.,-height)+
- 2.75*smoothstep(0.,2.,height)+
- 1.75*smoothstep(2.,4.,height)+
- 2.75*smoothstep(4.,16.,height)+
- 1.5*smoothstep(16.,1000.,height);
- */
- mat2 m = mat2( 0.9563*1.4, -0.2924*1.4, 0.2924*1.4, 0.9563*1.4 );
- //p = p*6.;
- float f = 0.6000*noise1( p ); p = m*p*1.1*6.;
- f += 0.2500*noise( p ); p = m*p*1.32;
- f += 0.1666*noise( p ); p = m*p*1.11;
- f += 0.0834*noise( p ); p = m*p*1.12;
- f += 0.0634*noise( p ); p = m*p*1.13;
- f += 0.0444*noise( p ); p = m*p*1.14;
- f += 0.0274*noise( p ); p = m*p*1.15;
- f += 0.0134*noise( p ); p = m*p*1.16;
- f += 0.0104*noise( p ); p = m*p*1.17;
- f += 0.0084*noise( p );
- f = .25*f+dot(height,vec4(-.03125,-.125,.25,.25))*.5;
- const float FLAT_LEVEL = 0.92525;
- //f = f*0.25+height*0.75;
- if (f<FLAT_LEVEL)
- f = f;
- else
- f = pow((f-FLAT_LEVEL)/(1.-FLAT_LEVEL), 2.)*(1.-FLAT_LEVEL)*2.0+FLAT_LEVEL; // makes a smooth coast-increase
- return clamp(f, 0., 10.);
- }
- vec3 plasma_quintic( float x ) {
- x = clamp( x, 0.0, 1.0);
- vec4 x1 = vec4( 1.0, x, x * x, x * x * x ); // 1 x x2 x3
- vec4 x2 = x1 * x1.w * x; // x4 x5 x6 x7
- return vec3(
- dot( x1.xyzw, vec4( +0.063861086, +1.992659096, -1.023901152, -0.490832805 ) ) + dot( x2.xy, vec2( +1.308442123, -0.914547012 ) ),
- dot( x1.xyzw, vec4( +0.049718590, -0.791144343, +2.892305078, +0.811726816 ) ) + dot( x2.xy, vec2( -4.686502417, +2.717794514 ) ),
- dot( x1.xyzw, vec4( +0.513275779, +1.580255060, -5.164414457, +4.559573646 ) ) + dot( x2.xy, vec2( -1.916810682, +0.570638854 ) ) );
- }
- vec4 color(vec2 p){
- vec4 c1 = vec4(1.7,1.6,.9,1);
- vec4 c2 = vec4(.2,.94,.1,1);
- vec4 c3 = vec4(.3,.2,.0,1);
- vec4 c4 = vec4(.99,.99,1.6,1);
- vec4 v = highness(p);
- float los = smoothstep(0.1,1.1,v.b);
- float his = smoothstep(3.5,6.5,v.b);
- float ces = smoothstep(1.,5.,v.a);
- vec4 lo = mix(c1,c2,los);
- vec4 hi = mix(c3,c4,his);
- vec4 ce = mix(lo,hi,ces);
- return vec4(plasma_quintic(ces),1).ragb;
- }
- vec3 terrain_map( vec2 p )
- {
- return color(p).rgb*0.75+0.25*vec3(0.7, .55, .4)+texture(SAMPLER_2D(u_texture3), fract(p*5.)).rgb*.5; // test-terrain is simply 'sandstone'
- }
- const mat2 m = mat2( 0.72, -1.60, 1.60, 0.72 );
- float water_map( vec2 p, float height ) {
- vec2 p2 = p*large_wavesize;
- vec2 shift1 = 0.001*vec2( u_time*160.0*2.0, u_time*120.0*2.0 );
- vec2 shift2 = 0.001*vec2( u_time*190.0*2.0, -u_time*130.0*2.0 );
- // coarse crossing 'ocean' waves...
- float f = 0.6000*noise( p );
- f += 0.2500*noise( p*m );
- f += 0.1666*noise( p*m*m );
- float wave = sin(p2.x*0.622+p2.y*0.622+shift2.x*4.269)*large_waveheight*f*height*height ;
- p *= small_wavesize;
- f = 0.;
- float amp = 1.0, s = .5;
- for (int i=0; i<9; i++)
- { p = m*p*.947; f -= amp*abs(sin((noise( p+shift1*s )-.5)*2.)); amp = amp*.59; s*=-1.329; }
-
- return wave+f*small_waveheight;
- }
- float nautic(vec2 p) {
- p *= 18.;
- float f = 0.;
- float amp = 1.0, s = .5;
- for (int i=0; i<3; i++)
- { p = m*p*1.2; f += amp*abs(smoothstep(0., 1., noise( p+u_time*s ))-.5); amp = amp*.5; s*=-1.227; }
- return pow(1.-f, 5.);
- }
- float particles(vec2 p) {
- p *= 200.;
- float f = 0.;
- float amp = 1.0, s = 1.5;
- for (int i=0; i<3; i++)
- { p = m*p*1.2; f += amp*noise( p+u_time*s ); amp = amp*.5; s*=-1.227; }
- return pow(f*.35, 7.)*particle_amount;
- }
- float test_shadow( vec2 xy, float height) {
- vec3 r0 = vec3(xy, height);
- vec3 rd = normalize( light - r0 );
-
- float hit = 1.0;
- float t = 0.001;
- for (int j=1; j<25; j++)
- {
- vec3 p = r0 + t*rd;
- float h = height_map( p.xy );
- float height_diff = p.z - h;
- if (height_diff<0.0)
- {
- return 0.0;
- }
- t += 0.01+height_diff*.02;
- hit = min(hit, 2.*height_diff/t); // soft shaddow
- }
- return hit;
- }
- vec3 CalcTerrain(vec2 uv, float height) {
- vec3 col = terrain_map( uv );
- vec2 iResolution = vec2(512.);
- float h1 = height_map(uv-vec2(0., 0.5)/ iResolution.xy);
- float h2 = height_map(uv+vec2(0., 0.5)/ iResolution.xy);
- float h3 = height_map(uv-vec2(0.5, 0.)/ iResolution.xy);
- float h4 = height_map(uv+vec2(0.5, 0.)/ iResolution.xy);
- vec3 norm = normalize(vec3(h3-h4, h1-h2, 1.));
- vec3 r0 = vec3(uv, height);
- vec3 rd = normalize( light - r0 );
- float grad = dot(norm, rd);
- col *= grad+pow(grad, 8.);
- float terrainshade = test_shadow( uv, height );
- col = mix(col*.25, col, terrainshade);
- return col;
- }
- void main() {
- vec3 watercolor = u_watercolor.rgb;
- vec3 watercolor2 = u_watercolor2.rgb;
- vec2 uv = v_uv;
- float WATER_LEVEL = 0.84; // Water level (range: 0.0 - 2.0)
- float deepwater_fadedepth = 0.4 + coast2water_fadedepth;
- float height = height_map( uv );
- vec3 col;
- float waveheight = clamp(WATER_LEVEL*3.-1.5, 0., 1.);
- float level = WATER_LEVEL + .2*water_map(uv*15. + vec2(u_time*.1), waveheight);
- if (height > level)
- {
- col = CalcTerrain(uv, height);
- }
- if (height <= level)
- {
- vec2 dif = vec2(.0, .01);
- vec2 pos = uv*15. + vec2(u_time*.01);
- float h1 = water_map(pos-dif,waveheight);
- float h2 = water_map(pos+dif,waveheight);
- float h3 = water_map(pos-dif.yx,waveheight);
- float h4 = water_map(pos+dif.yx,waveheight);
- vec3 normwater = normalize(vec3(h3-h4, h1-h2, .125)); // norm-vector of the 'bumpy' water-plane
- uv += normwater.xy*.002*(level-height);
-
- col = CalcTerrain(uv, height);
- float coastfade = clamp((level-height)/coast2water_fadedepth, 0., 1.);
- float coastfade2= clamp((level-height)/deepwater_fadedepth, 0., 1.);
- float intensity = col.r*.2126+col.g*.7152+col.b*.0722;
- watercolor = mix(watercolor*intensity, watercolor2, smoothstep(0., 1., coastfade2));
- vec3 r0 = vec3(uv, WATER_LEVEL);
- vec3 rd = normalize( light - r0 ); // ray-direction to the light from water-position
- float grad = dot(normwater, rd); // dot-product of norm-vector and light-direction
- float specular = pow(grad, water_softlight_fact); // used for soft highlights
- float specular2= pow(grad, water_glossylight_fact); // used for glossy highlights
- float gradpos = dot(vec3(0., 0., 1.), rd);
- float specular1= smoothstep(0., 1., pow(gradpos, 5.)); // used for diffusity (some darker corona around light's specular reflections...)
- float watershade = test_shadow( uv, level );
- watercolor *= 2.2+watershade;
- watercolor += (.2+.8*watershade) * ((grad-1.0)*.5+specular) * .25;
- watercolor /= (1.+specular1*1.25);
- watercolor += watershade*specular2*water_specularcolor;
- watercolor += watershade*coastfade*(1.-coastfade2)*(vec3(.5, .6, .7)*nautic(uv)+vec3(1., 1., 1.)*particles(uv));
-
- col = mix(col, watercolor, coastfade);
- }
-
- outputColor = vec4(col, v_opacity);
- }
- `,bN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv;
- layout(std140) uniform commonUniforms {
- vec4 u_watercolor;
- vec4 u_watercolor2;
- float u_time;
- };
- out vec2 v_uv;
- out float v_opacity;
- #pragma include "projection"
- void main() {
- v_uv = a_uv;
- v_opacity = opacity;
- vec4 project_pos = project_position(vec4(a_Position, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- }
- `;class AN extends Pi{constructor(...t){super(...t),H(this,"texture1",void 0),H(this,"texture2",void 0),H(this,"texture3",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{watercolor:t="#6D99A8",watercolor2:r="#0F121C"}=this.layer.getLayerConfig(),i={u_watercolor:Mi(t),u_watercolor2:Mi(r),u_time:this.layer.getLayerAnimateTime(),u_texture1:this.texture1,u_texture2:this.texture2,u_texture3:this.texture3};return this.textures=[this.texture1,this.texture2,this.texture3],this.getUniformsBufferInfo(i)}getAnimateUniforms(){return{u_time:this.layer.getLayerAnimateTime()}}initModels(){var t=this;return mt(function*(){return t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"polygonOcean",vertexShader:bN,fragmentShader:PN,defines:t.getDefines(),inject:t.getInject(),triangulation:By,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}clearModels(){var t,r,i;(t=this.texture1)===null||t===void 0||t.destroy(),(r=this.texture2)===null||r===void 0||r.destroy(),(i=this.texture3)===null||i===void 0||i.destroy()}registerBuiltinAttributes(){const t=this.layer.getSource().extent,[r,i,s,u]=t,n=s-r,y=u-i;this.styleAttributeService.registerStyleAttribute({name:"oceanUv",type:br.Attribute,descriptor:{name:"a_uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(m,g,x)=>{const[b,F]=x;return[(b-r)/n,(F-i)/y]}}})}loadTexture(){const{createTexture2D:t}=this.rendererService,r={height:0,width:0};this.texture1=t(r),this.texture2=t(r),this.texture3=t(r),i(u=>{this.texture1=s(u[0]),this.texture2=s(u[1]),this.texture3=s(u[2]),this.layerService.reRender()});function i(u){let n=0;const y=[];["https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ","https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*MJ22QbpuCzIAAAAAAAAAAAAAARQnAQ","https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*-z2HSIVDsHIAAAAAAAAAAAAAARQnAQ"].map(g=>{const x=new Image;x.crossOrigin="",x.src=g,y.push(x),x.onload=()=>{n++,n===3&&u(y)}})}function s(u){return t({data:u,width:u.width,height:u.height,wrapS:L.MIRRORED_REPEAT,wrapT:L.MIRRORED_REPEAT,min:L.LINEAR,mag:L.LINEAR})}}}const FN=`uniform sampler2D u_texture;
- layout(std140) uniform commonUniforms {
- float u_speed;
- float u_time;
- };
- out vec4 outputColor;
- in vec4 v_Color;
- in vec2 v_uv;
- float rand(vec2 n) { return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453); }
- float water(vec3 p) {
- float t = u_time * u_speed;
- p.z += t * 2.; p.x += t * 2.;
- vec3 c1 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz;
- p.z += t * 3.; p.x += t * 0.52;
- vec3 c2 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz;
- p.z += t * 4.; p.x += t * 0.8;
- vec3 c3 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz;
- c1 += c2 - c3;
- float z = (c1.x + c1.y + c1.z) / 3.;
- return p.y + z / 4.;
- }
- float map(vec3 p) {
- float d = 100.0;
- d = water(p);
- return d;
- }
- float intersect(vec3 ro, vec3 rd) {
- float d = 0.0;
- for (int i = 0; i <= 100; i++) {
- float h = map(ro + rd * d);
- if (h < 0.1) return d;
- d += h;
- }
- return 0.0;
- }
- vec3 norm(vec3 p) {
- float eps = .1;
- return normalize(vec3(
- map(p + vec3(eps, 0, 0)) - map(p + vec3(-eps, 0, 0)),
- map(p + vec3(0, eps, 0)) - map(p + vec3(0, -eps, 0)),
- map(p + vec3(0, 0, eps)) - map(p + vec3(0, 0, -eps))
- ));
- }
- float calSpc() {
- vec3 l1 = normalize(vec3(1, 1, 1));
- vec3 ro = vec3(-3, 20, -8);
- vec3 rc = vec3(0, 0, 0);
- vec3 ww = normalize(rc - ro);
- vec3 uu = normalize(cross(vec3(0,1,0), ww));
- vec3 vv = normalize(cross(rc - ro, uu));
- vec3 rd = normalize(uu * v_uv.x + vv * v_uv.y + ww);
- float d = intersect(ro, rd);
- vec3 p = ro + rd * d;
- vec3 n = norm(p);
- float spc = pow(max(0.0, dot(reflect(l1, n), rd)), 30.0);
- return spc;
- }
- void main() {
- outputColor = v_Color;
- float spc = calSpc();
- outputColor += spc * 0.4;
- }
- `,TN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv;
- layout(std140) uniform commonUniforms {
- float u_speed;
- float u_time;
- };
- out vec4 v_Color;
- out vec2 v_uv;
- #pragma include "projection"
- void main() {
- v_uv = a_uv;
- v_Color = a_Color;
- v_Color.a *= opacity;
- vec4 project_pos = project_position(vec4(a_Position, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- }
- `;class SN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{speed:t=.5}=this.layer.getLayerConfig(),r={u_speed:t,u_time:this.layer.getLayerAnimateTime(),u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(r)}getAnimateUniforms(){return{u_time:this.layer.getLayerAnimateTime()}}initModels(){var t=this;return mt(function*(){return t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"polygonWater",vertexShader:TN,fragmentShader:FN,triangulation:By,defines:t.getDefines(),inject:t.getInject(),primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1,diagnosticDerivativeUniformityEnabled:!1})]})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){const t=this.layer.getSource().extent,[r,i,s,u]=t,n=s-r,y=u-i;this.styleAttributeService.registerStyleAttribute({name:"waterUv",type:br.Attribute,descriptor:{name:"a_uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(m,g,x)=>{const[b,F]=x;return[(b-r)/n,(F-i)/y]}}})}loadTexture(){const{waterTexture:t}=this.layer.getLayerConfig(),{createTexture2D:r}=this.rendererService;this.texture=r({height:1,width:1});const i=new Image;i.crossOrigin="",t?(console.warn("L7 recommend:https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ"),i.src=t):i.src="https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ",i.onload=()=>{this.texture=r({data:i,width:i.width,height:i.height,wrapS:L.MIRRORED_REPEAT,wrapT:L.MIRRORED_REPEAT,min:L.LINEAR,mag:L.LINEAR}),this.layerService.reRender()}}}const wN={fill:xN,line:t7,extrude:yN,text:p7,point_fill:i7,point_image:n7,point_normal:a7,point_extrude:o7,water:SN,ocean:AN,extrusion:mN};class l7 extends A1{constructor(...t){super(...t),H(this,"type","PolygonLayer"),H(this,"enableShaderEncodeStyles",["opacity","extrusionBase","rotation","offsets","stroke"])}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new wN[r](t),yield t.initLayerModels()})()}getModelType(){var t;const r=this.styleAttributeService.getLayerStyleAttribute("shape"),i=r==null||(t=r.scale)===null||t===void 0?void 0:t.field;return i==="fill"||!i?"fill":i==="extrude"?"extrude":i==="extrusion"?"extrusion":i==="water"?"water":i==="ocean"?"ocean":i==="line"?"line":this.getPointModelType()}getPointModelType(){const t=this.getEncodedData(),{shape2d:r,shape3d:i}=this.getLayerConfig(),s=this.iconService.getIconMap(),u=t.find(n=>n.hasOwnProperty("shape"));if(u){const n=u.shape;return n==="dot"?"point_normal":(r==null?void 0:r.indexOf(n))!==-1?"point_fill":(i==null?void 0:i.indexOf(n))!==-1?"point_extrude":s.hasOwnProperty(n)?"point_image":"text"}else return"fill"}}const RN=`layout(std140) uniform commonUniforms {
- vec2 u_domain;
- float u_opacity;
- float u_noDataValue;
- float u_clampLow;
- float u_clampHigh;
- };
- uniform sampler2D u_rasterTexture;
- uniform sampler2D u_colorTexture;
- in vec2 v_texCoord;
- bool isnan_emu(float x) { return (x > 0.0 || x < 0.0) ? x != x : x != 0.0; }
- out vec4 outputColor;
- void main() {
- // Can use any component here since u_rasterTexture is under luminance format.
- float value = texture(SAMPLER_2D(u_rasterTexture), vec2(v_texCoord.x, v_texCoord.y)).r;
- if (value == u_noDataValue || isnan_emu(value)) {
- discard;
- } else if ((u_clampLow < 0.5 && value < u_domain[0]) || (u_clampHigh < 0.5 && value > u_domain[1])) {
- discard;
- } else {
- float normalisedValue =(value - u_domain[0]) / (u_domain[1] - u_domain[0]);
- vec4 color = texture(SAMPLER_2D(u_colorTexture), vec2(normalisedValue, 0));
-
- outputColor = color;
- outputColor.a = outputColor.a * u_opacity ;
- if (outputColor.a < 0.01)
- discard;
- }
- }
- `,CN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- vec2 u_domain;
- float u_opacity;
- float u_noDataValue;
- float u_clampLow;
- float u_clampHigh;
- };
- out vec2 v_texCoord;
- #pragma include "projection"
- void main() {
- v_texCoord = a_Uv;
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0));
- }
- `;let B4=class extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"colorTexture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,clampLow:r=!0,clampHigh:i=!0,noDataValue:s=-9999999,domain:u,rampColors:n}=this.layer.getLayerConfig(),y=u||h6(n);this.colorTexture=this.layer.textureService.getColorTexture(n,y);const m={u_domain:y,u_opacity:t||1,u_noDataValue:s,u_clampLow:r?1:0,u_clampHigh:(typeof i<"u"?i:r)?1:0,u_rasterTexture:this.texture,u_colorTexture:this.colorTexture};return this.textures=[this.texture,this.colorTexture],this.getUniformsBufferInfo(m)}getRasterData(t){return mt(function*(){if(Array.isArray(t.data))return{data:t.data,width:t.width,height:t.height};{const{rasterData:r,width:i,height:s}=yield t.data;return{data:Array.from(r),width:i,height:s}}})()}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i,queryVerdorInfo:s}=t.rendererService,u=r.data.dataArray[0],{data:n,width:y,height:m}=yield t.getRasterData(u);return t.texture=i({data:new Float32Array(n),width:y,height:m,format:s()==="WebGL1"?L.LUMINANCE:L.RED,type:L.FLOAT,alignment:1}),[yield t.layer.buildLayerModel({moduleName:"rasterImageData",vertexShader:CN,fragmentShader:RN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1})]})()}clearModels(){var t,r;(t=this.texture)===null||t===void 0||t.destroy(),(r=this.colorTexture)===null||r===void 0||r.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.UV,name:"a_Uv",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}};const IN=["data"],MN=["rasterData"],NN=`uniform sampler2D u_texture;
- layout(std140) uniform commonUniforms {
- vec2 u_rminmax;
- vec2 u_gminmax;
- vec2 u_bminmax;
- float u_opacity;
- float u_noDataValue;
- };
- in vec2 v_texCoord;
- out vec4 outputColor;
- void main() {
- vec3 rgb = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y)).rgb;
- if(rgb == vec3(u_noDataValue)) {
- outputColor = vec4(0.0, 0, 0, 0.0);
- } else {
- outputColor = vec4(rgb.r / (u_rminmax.y -u_rminmax.x), rgb.g /(u_gminmax.y -u_gminmax.x), rgb.b/ (u_bminmax.y - u_bminmax.x), u_opacity);
- }
- if(outputColor.a < 0.01)
- discard;
-
- }`,DN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- vec2 u_rminmax;
- vec2 u_gminmax;
- vec2 u_bminmax;
- float u_opacity;
- float u_noDataValue;
- };
- out vec2 v_texCoord;
- #pragma include "projection"
- void main() {
- v_texCoord = a_Uv;
- vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low);
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0));
- }
- `;class ON extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"dataOption",{})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,noDataValue:r=0}=this.layer.getLayerConfig(),{rMinMax:i=[0,255],gMinMax:s=[0,255],bMinMax:u=[0,255]}=this.dataOption,n={u_rminmax:i,u_gminmax:s,u_bminmax:u,u_opacity:t||1,u_noDataValue:r,u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(n)}getRasterData(t){var r=this;return mt(function*(){if(Array.isArray(t.data)){const{data:n}=t,y=$p(t,IN);return r.dataOption=y,_t({data:n},y)}const i=yield t.data,{rasterData:s}=i,u=$p(i,MN);return r.dataOption=u,Array.isArray(s)?_t({data:s},u):_t({data:Array.from(s)},u)})()}initModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i}=t.rendererService,s=r.data.dataArray[0],{data:u,width:n,height:y}=yield t.getRasterData(s);return t.texture=i({data:new Float32Array(u),width:n,height:y,format:L.RGB,type:L.FLOAT}),[yield t.layer.buildLayerModel({moduleName:"rasterImageDataRGBA",vertexShader:DN,fragmentShader:NN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1})]})()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}}const LN=`uniform sampler2D u_texture;
- uniform sampler2D u_colorTexture;
- layout(std140) uniform commonUniforms {
- vec4 u_unpack;
- vec2 u_domain;
- float u_opacity;
- float u_noDataValue;
- float u_clampLow;
- float u_clampHigh;
- };
- in vec2 v_texCoord;
- out vec4 outputColor;
- float getElevation(vec2 coord, float bias) {
- // Convert encoded elevation value to meters
- vec4 data = texture(SAMPLER_2D(u_texture), coord,bias) * 255.0;
- data.a = -1.0;
- return dot(data, u_unpack);
- }
- vec4 getColor(float value) {
- float normalisedValue =(value- u_domain[0]) / (u_domain[1] - u_domain[0]);
- vec2 coord = vec2(normalisedValue, 0);
- return texture(SAMPLER_2D(u_colorTexture), coord);
- }
- void main() {
- float value = getElevation(v_texCoord,0.0);
- if (value == u_noDataValue) {
- outputColor = vec4(0.0, 0, 0, 0.0);
- } else if ((u_clampLow < 0.5 && value < u_domain[0]) || (u_clampHigh < 0.5 && value > u_domain[1])) {
- outputColor = vec4(0.0, 0, 0, 0.0);
- } else {
-
- outputColor = getColor(value);
- outputColor.a = outputColor.a * u_opacity ;
- if(outputColor.a < 0.01)
- discard;
- }
- }
- `,BN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
- layout(std140) uniform commonUniforms {
- vec4 u_unpack;
- vec2 u_domain;
- float u_opacity;
- float u_noDataValue;
- float u_clampLow;
- float u_clampHigh;
- };
- out vec2 v_texCoord;
- #pragma include "projection"
- void main() {
- v_texCoord = a_Uv;
- vec4 project_pos = project_position(vec4(a_Position, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0));
- }
- `;class UN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getCommonUniformsInfo(){const{opacity:t,clampLow:r=!0,clampHigh:i=!0,noDataValue:s=-9999999,domain:u,rampColors:n,colorTexture:y,rScaler:m=6553.6,gScaler:g=25.6,bScaler:x=.1,offset:b=1e4}=this.layer.getLayerConfig(),F=u||h6(n);let R=y;y?this.layer.textureService.setColorTexture(y,n,F):R=this.layer.textureService.getColorTexture(n,F);const I={u_unpack:[m,g,x,b],u_domain:F,u_opacity:t||1,u_noDataValue:s,u_clampLow:r,u_clampHigh:typeof i<"u"?i:r,u_texture:this.texture,u_colorTexture:R};return this.textures=[this.texture,R],this.getUniformsBufferInfo(I)}initModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i}=t.rendererService,s=yield r.data.images;return t.texture=i({data:s[0],width:s[0].width,height:s[0].height,min:L.LINEAR,mag:L.LINEAR}),[yield t.layer.buildLayerModel({moduleName:"RasterTileDataImage",vertexShader:BN,fragmentShader:LN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}}const kN={raster:B4,rasterRgb:ON,raster3d:B4,rasterTerrainRgb:UN};class k6 extends A1{constructor(...t){super(...t),H(this,"type","RasterLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new kN[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{raster:{},rasterRgb:{},raster3d:{},rasterTerrainRgb:{}}[t]}getModelType(){switch(this.layerSource.getParserType()){case"raster":return"raster";case"rasterRgb":return"rasterRgb";case"rgb":return"rasterRgb";case"image":return"rasterTerrainRgb";default:return"raster"}}getLegend(t){if(t!=="color")return{type:void 0,field:void 0,items:[]};const r=this.getLayerConfig().rampColors;return e7(r,t)}}class zN{constructor({rendererService:t,layerService:r,parent:i}){H(this,"tileResource",new Map),H(this,"rendererService",void 0),H(this,"layerService",void 0),H(this,"parent",void 0),H(this,"layerTiles",[]),this.rendererService=t,this.layerService=r,this.parent=i}get tiles(){return this.layerTiles}hasTile(t){return this.layerTiles.some(r=>r.key===t)}addTile(t){this.layerTiles.push(t)}getTile(t){return this.layerTiles.find(r=>r.key===t)}getVisibleTileBylngLat(t){return this.layerTiles.find(r=>r.isLoaded&&r.visible&&r.lnglatInBounds(t))}removeTile(t){const r=this.layerTiles.findIndex(s=>s.key===t),i=this.layerTiles.splice(r,1);i[0]&&i[0].destroy()}updateTileVisible(t){const r=this.getTile(t.key);if(t.isVisible)if(t.parent){const i=this.isChildrenLoaded(t.parent);r==null||r.updateVisible(i)}else r==null||r.updateVisible(!0);else if(t.parent){const i=this.isChildrenLoaded(t.parent);r==null||r.updateVisible(!i)}else r==null||r.updateVisible(!1)}isParentLoaded(t){const r=t.parent;if(!r)return!0;const i=this.getTile(r==null?void 0:r.key);return!!(i!=null&&i.isLoaded)}isChildrenLoaded(t){const r=t==null?void 0:t.children;return r.length===0?!0:r.every(i=>{const s=this.getTile(i==null?void 0:i.key);return s?(s==null?void 0:s.isLoaded)===!0:!0})}render(){var t=this;return mt(function*(){const i=t.getRenderLayers().map(function(){var s=mt(function*(u){yield t.layerService.renderTileLayer(u)});return function(u){return s.apply(this,arguments)}}());yield Promise.all(i)})()}getRenderLayers(){const t=this.layerTiles.filter(i=>i.visible&&i.isLoaded),r=[];return t.map(i=>r.push(...i.getLayers())),r}getLayers(){const t=this.layerTiles.filter(i=>i.isLoaded),r=[];return t.map(i=>r.push(...i.getLayers())),r}getTiles(){return this.layerTiles}destroy(){this.layerTiles.forEach(t=>t.destroy()),this.tileResource.clear()}}/**
- * splaytree v3.1.2
- * Fast Splay tree for Node and browser
- *
- * @author Alexander Milevski <info@w8r.name>
- * @license MIT
- * @preserve
- *//*! *****************************************************************************
- Copyright (c) Microsoft Corporation. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of the
- License at http://www.apache.org/licenses/LICENSE-2.0
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- MERCHANTABLITY OR NON-INFRINGEMENT.
- See the Apache Version 2.0 License for specific language governing permissions
- and limitations under the License.
- ***************************************************************************** */function VN(e,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},i,s,u,n;return n={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(n[Symbol.iterator]=function(){return this}),n;function y(g){return function(x){return m([g,x])}}function m(g){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,s&&(u=g[0]&2?s.return:g[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,g[1])).done)return u;switch(s=0,u&&(g=[g[0]&2,u.value]),g[0]){case 0:case 1:u=g;break;case 4:return r.label++,{value:g[1],done:!1};case 5:r.label++,s=g[1],g=[0];continue;case 7:g=r.ops.pop(),r.trys.pop();continue;default:if(u=r.trys,!(u=u.length>0&&u[u.length-1])&&(g[0]===6||g[0]===2)){r=0;continue}if(g[0]===3&&(!u||g[1]>u[0]&&g[1]<u[3])){r.label=g[1];break}if(g[0]===6&&r.label<u[1]){r.label=u[1],u=g;break}if(u&&r.label<u[2]){r.label=u[2],r.ops.push(g);break}u[2]&&r.ops.pop(),r.trys.pop();continue}g=t.call(e,r)}catch(x){g=[6,x],s=0}finally{i=u=0}if(g[0]&5)throw g[1];return{value:g[0]?g[1]:void 0,done:!0}}}var Tc=function(){function e(t,r){this.next=null,this.key=t,this.data=r,this.left=null,this.right=null}return e}();function HN(e,t){return e>t?1:e<t?-1:0}function vc(e,t,r){for(var i=new Tc(null,null),s=i,u=i;;){var n=r(e,t.key);if(n<0){if(t.left===null)break;if(r(e,t.left.key)<0){var y=t.left;if(t.left=y.right,y.right=t,t=y,t.left===null)break}u.left=t,u=t,t=t.left}else if(n>0){if(t.right===null)break;if(r(e,t.right.key)>0){var y=t.right;if(t.right=y.left,y.left=t,t=y,t.right===null)break}s.right=t,s=t,t=t.right}else break}return s.right=t.left,u.left=t.right,t.left=i.right,t.right=i.left,t}function e2(e,t,r,i){var s=new Tc(e,t);if(r===null)return s.left=s.right=null,s;r=vc(e,r,i);var u=i(e,r.key);return u<0?(s.left=r.left,s.right=r,r.left=null):u>=0&&(s.right=r.right,s.left=r,r.right=null),s}function U4(e,t,r){var i=null,s=null;if(t){t=vc(e,t,r);var u=r(t.key,e);u===0?(i=t.left,s=t.right):u<0?(s=t.right,t.right=null,i=t):(i=t.left,t.left=null,s=t)}return{left:i,right:s}}function GN(e,t,r){return t===null?e:(e===null||(t=vc(e.key,t,r),t.left=e),t)}function W2(e,t,r,i,s){if(e){i(""+t+(r?"└── ":"├── ")+s(e)+`
- `);var u=t+(r?" ":"│ ");e.left&&W2(e.left,u,!1,i,s),e.right&&W2(e.right,u,!0,i,s)}}var z6=function(){function e(t){t===void 0&&(t=HN),this._root=null,this._size=0,this._comparator=t}return e.prototype.insert=function(t,r){return this._size++,this._root=e2(t,r,this._root,this._comparator)},e.prototype.add=function(t,r){var i=new Tc(t,r);this._root===null&&(i.left=i.right=null,this._size++,this._root=i);var s=this._comparator,u=vc(t,this._root,s),n=s(t,u.key);return n===0?this._root=u:(n<0?(i.left=u.left,i.right=u,u.left=null):n>0&&(i.right=u.right,i.left=u,u.right=null),this._size++,this._root=i),this._root},e.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},e.prototype._remove=function(t,r,i){var s;if(r===null)return null;r=vc(t,r,i);var u=i(t,r.key);return u===0?(r.left===null?s=r.right:(s=vc(t,r.left,i),s.right=r.right),this._size--,s):r},e.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=vc(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},e.prototype.findStatic=function(t){for(var r=this._root,i=this._comparator;r;){var s=i(t,r.key);if(s===0)return r;s<0?r=r.left:r=r.right}return null},e.prototype.find=function(t){return this._root&&(this._root=vc(t,this._root,this._comparator),this._comparator(t,this._root.key)!==0)?null:this._root},e.prototype.contains=function(t){for(var r=this._root,i=this._comparator;r;){var s=i(t,r.key);if(s===0)return!0;s<0?r=r.left:r=r.right}return!1},e.prototype.forEach=function(t,r){for(var i=this._root,s=[],u=!1;!u;)i!==null?(s.push(i),i=i.left):s.length!==0?(i=s.pop(),t.call(r,i),i=i.right):u=!0;return this},e.prototype.range=function(t,r,i,s){for(var u=[],n=this._comparator,y=this._root,m;u.length!==0||y;)if(y)u.push(y),y=y.left;else{if(y=u.pop(),m=n(y.key,r),m>0)break;if(n(y.key,t)>=0&&i.call(s,y))return this;y=y.right}return this},e.prototype.keys=function(){var t=[];return this.forEach(function(r){var i=r.key;return t.push(i)}),t},e.prototype.values=function(){var t=[];return this.forEach(function(r){var i=r.data;return t.push(i)}),t},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.left;)t=t.left;return t},e.prototype.maxNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.right;)t=t.right;return t},e.prototype.at=function(t){for(var r=this._root,i=!1,s=0,u=[];!i;)if(r)u.push(r),r=r.left;else if(u.length>0){if(r=u.pop(),s===t)return r;s++,r=r.right}else i=!0;return null},e.prototype.next=function(t){var r=this._root,i=null;if(t.right){for(i=t.right;i.left;)i=i.left;return i}for(var s=this._comparator;r;){var u=s(t.key,r.key);if(u===0)break;u<0?(i=r,r=r.left):r=r.right}return i},e.prototype.prev=function(t){var r=this._root,i=null;if(t.left!==null){for(i=t.left;i.right;)i=i.right;return i}for(var s=this._comparator;r;){var u=s(t.key,r.key);if(u===0)break;u<0?r=r.left:(i=r,r=r.right)}return i},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return WN(this._root)},e.prototype.load=function(t,r,i){r===void 0&&(r=[]),i===void 0&&(i=!1);var s=t.length,u=this._comparator;if(i&&Y2(t,r,0,s-1,u),this._root===null)this._root=X2(t,r,0,s),this._size=s;else{var n=XN(this.toList(),jN(t,r),u);s=this._size+s,this._root=Z2({head:n},0,s)}return this},e.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),e.prototype.toString=function(t){t===void 0&&(t=function(i){return String(i.key)});var r=[];return W2(this._root,"",!0,function(i){return r.push(i)},t),r.join("")},e.prototype.update=function(t,r,i){var s=this._comparator,u=U4(t,this._root,s),n=u.left,y=u.right;s(t,r)<0?y=e2(r,i,y,s):n=e2(r,i,n,s),this._root=GN(n,y,s)},e.prototype.split=function(t){return U4(t,this._root,this._comparator)},e.prototype[Symbol.iterator]=function(){var t,r,i;return VN(this,function(s){switch(s.label){case 0:t=this._root,r=[],i=!1,s.label=1;case 1:return i?[3,6]:t===null?[3,2]:(r.push(t),t=t.left,[3,5]);case 2:return r.length===0?[3,4]:(t=r.pop(),[4,t]);case 3:return s.sent(),t=t.right,[3,5];case 4:i=!0,s.label=5;case 5:return[3,1];case 6:return[2]}})},e}();function X2(e,t,r,i){var s=i-r;if(s>0){var u=r+Math.floor(s/2),n=e[u],y=t[u],m=new Tc(n,y);return m.left=X2(e,t,r,u),m.right=X2(e,t,u+1,i),m}return null}function jN(e,t){for(var r=new Tc(null,null),i=r,s=0;s<e.length;s++)i=i.next=new Tc(e[s],t[s]);return i.next=null,r.next}function WN(e){for(var t=e,r=[],i=!1,s=new Tc(null,null),u=s;!i;)t?(r.push(t),t=t.left):r.length>0?(t=u=u.next=r.pop(),t=t.right):i=!0;return u.next=null,s.next}function Z2(e,t,r){var i=r-t;if(i>0){var s=t+Math.floor(i/2),u=Z2(e,t,s),n=e.head;return n.left=u,e.head=e.head.next,n.right=Z2(e,s+1,r),n}return null}function XN(e,t,r){for(var i=new Tc(null,null),s=i,u=e,n=t;u!==null&&n!==null;)r(u.key,n.key)<0?(s.next=u,u=u.next):(s.next=n,n=n.next),s=s.next;return u!==null?s.next=u:n!==null&&(s.next=n),i.next}function Y2(e,t,r,i,s){if(!(r>=i)){for(var u=e[r+i>>1],n=r-1,y=i+1;;){do n++;while(s(e[n],u)<0);do y--;while(s(e[y],u)>0);if(n>=y)break;var m=e[n];e[n]=e[y],e[y]=m,m=t[n],t[n]=t[y],t[y]=m}Y2(e,t,r,y,s),Y2(e,t,y+1,i,s)}}const Il=11102230246251565e-32,os=134217729,ZN=(3+8*Il)*Il;function t2(e,t,r,i,s){let u,n,y,m,g=t[0],x=i[0],b=0,F=0;x>g==x>-g?(u=g,g=t[++b]):(u=x,x=i[++F]);let R=0;if(b<e&&F<r)for(x>g==x>-g?(n=g+u,y=u-(n-g),g=t[++b]):(n=x+u,y=u-(n-x),x=i[++F]),u=n,y!==0&&(s[R++]=y);b<e&&F<r;)x>g==x>-g?(n=u+g,m=n-u,y=u-(n-m)+(g-m),g=t[++b]):(n=u+x,m=n-u,y=u-(n-m)+(x-m),x=i[++F]),u=n,y!==0&&(s[R++]=y);for(;b<e;)n=u+g,m=n-u,y=u-(n-m)+(g-m),g=t[++b],u=n,y!==0&&(s[R++]=y);for(;F<r;)n=u+x,m=n-u,y=u-(n-m)+(x-m),x=i[++F],u=n,y!==0&&(s[R++]=y);return(u!==0||R===0)&&(s[R++]=u),R}function YN(e,t){let r=t[0];for(let i=1;i<e;i++)r+=t[i];return r}function Uy(e){return new Float64Array(e)}const $N=(3+16*Il)*Il,qN=(2+12*Il)*Il,KN=(9+64*Il)*Il*Il,f0=Uy(4),k4=Uy(8),z4=Uy(12),V4=Uy(16),fs=Uy(4);function QN(e,t,r,i,s,u,n){let y,m,g,x,b,F,R,I,U,V,J,Q,te,ne,pe,Oe,Ee,He;const ft=e-s,Ge=r-s,Ae=t-u,Be=i-u;ne=ft*Be,F=os*ft,R=F-(F-ft),I=ft-R,F=os*Be,U=F-(F-Be),V=Be-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=Ae*Ge,F=os*Ae,R=F-(F-Ae),I=Ae-R,F=os*Ge,U=F-(F-Ge),V=Ge-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,f0[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,f0[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,f0[2]=Q-(He-b)+(J-b),f0[3]=He;let ze=YN(4,f0),st=qN*n;if(ze>=st||-ze>=st||(b=e-ft,y=e-(ft+b)+(b-s),b=r-Ge,g=r-(Ge+b)+(b-s),b=t-Ae,m=t-(Ae+b)+(b-u),b=i-Be,x=i-(Be+b)+(b-u),y===0&&m===0&&g===0&&x===0)||(st=KN*n+ZN*Math.abs(ze),ze+=ft*x+Be*y-(Ae*g+Ge*m),ze>=st||-ze>=st))return ze;ne=y*Be,F=os*y,R=F-(F-y),I=y-R,F=os*Be,U=F-(F-Be),V=Be-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=m*Ge,F=os*m,R=F-(F-m),I=m-R,F=os*Ge,U=F-(F-Ge),V=Ge-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const Vt=t2(4,f0,4,fs,k4);ne=ft*x,F=os*ft,R=F-(F-ft),I=ft-R,F=os*x,U=F-(F-x),V=x-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=Ae*g,F=os*Ae,R=F-(F-Ae),I=Ae-R,F=os*g,U=F-(F-g),V=g-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const ir=t2(Vt,k4,4,fs,z4);ne=y*x,F=os*y,R=F-(F-y),I=y-R,F=os*x,U=F-(F-x),V=x-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=m*g,F=os*m,R=F-(F-m),I=m-R,F=os*g,U=F-(F-g),V=g-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const Fr=t2(ir,z4,4,fs,V4);return V4[Fr-1]}function JN(e,t,r,i,s,u){const n=(t-u)*(r-s),y=(e-s)*(i-u),m=n-y,g=Math.abs(n+y);return Math.abs(m)>=$N*g?m:-QN(e,t,r,i,s,u,g)}var c7={};const zd=(e,t)=>e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y,$2=(e,t)=>{if(t.ur.x<e.ll.x||e.ur.x<t.ll.x||t.ur.y<e.ll.y||e.ur.y<t.ll.y)return null;const r=e.ll.x<t.ll.x?t.ll.x:e.ll.x,i=e.ur.x<t.ur.x?e.ur.x:t.ur.x,s=e.ll.y<t.ll.y?t.ll.y:e.ll.y,u=e.ur.y<t.ur.y?e.ur.y:t.ur.y;return{ll:{x:r,y:s},ur:{x:i,y:u}}};let xc=Number.EPSILON;xc===void 0&&(xc=Math.pow(2,-52));const eD=xc*xc,H4=(e,t)=>{if(-xc<e&&e<xc&&-xc<t&&t<xc)return 0;const r=e-t;return r*r<eD*e*t?0:e<t?-1:1};class tD{constructor(){this.reset()}reset(){this.xRounder=new G4,this.yRounder=new G4}round(t,r){return{x:this.xRounder.round(t),y:this.yRounder.round(r)}}}class G4{constructor(){this.tree=new z6,this.round(0)}round(t){const r=this.tree.add(t),i=this.tree.prev(r);if(i!==null&&H4(r.key,i.key)===0)return this.tree.remove(t),i.key;const s=this.tree.next(r);return s!==null&&H4(r.key,s.key)===0?(this.tree.remove(t),s.key):t}}const Ry=new tD,qh=(e,t)=>e.x*t.y-e.y*t.x,d7=(e,t)=>e.x*t.x+e.y*t.y,j4=(e,t,r)=>{const i=JN(e.x,e.y,t.x,t.y,r.x,r.y);return i>0?-1:i<0?1:0},Rf=e=>Math.sqrt(d7(e,e)),rD=(e,t,r)=>{const i={x:t.x-e.x,y:t.y-e.y},s={x:r.x-e.x,y:r.y-e.y};return qh(s,i)/Rf(s)/Rf(i)},oD=(e,t,r)=>{const i={x:t.x-e.x,y:t.y-e.y},s={x:r.x-e.x,y:r.y-e.y};return d7(s,i)/Rf(s)/Rf(i)},W4=(e,t,r)=>t.y===0?null:{x:e.x+t.x/t.y*(r-e.y),y:r},X4=(e,t,r)=>t.x===0?null:{x:r,y:e.y+t.y/t.x*(r-e.x)},iD=(e,t,r,i)=>{if(t.x===0)return X4(r,i,e.x);if(i.x===0)return X4(e,t,r.x);if(t.y===0)return W4(r,i,e.y);if(i.y===0)return W4(e,t,r.y);const s=qh(t,i);if(s==0)return null;const u={x:r.x-e.x,y:r.y-e.y},n=qh(u,t)/s,y=qh(u,i)/s,m=e.x+y*t.x,g=r.x+n*i.x,x=e.y+y*t.y,b=r.y+n*i.y,F=(m+g)/2,R=(x+b)/2;return{x:F,y:R}};class Hu{static compare(t,r){const i=Hu.comparePoints(t.point,r.point);return i!==0?i:(t.point!==r.point&&t.link(r),t.isLeft!==r.isLeft?t.isLeft?1:-1:bc.compare(t.segment,r.segment))}static comparePoints(t,r){return t.x<r.x?-1:t.x>r.x?1:t.y<r.y?-1:t.y>r.y?1:0}constructor(t,r){t.events===void 0?t.events=[this]:t.events.push(this),this.point=t,this.isLeft=r}link(t){if(t.point===this.point)throw new Error("Tried to link already linked events");const r=t.point.events;for(let i=0,s=r.length;i<s;i++){const u=r[i];this.point.events.push(u),u.point=this.point}this.checkForConsuming()}checkForConsuming(){const t=this.point.events.length;for(let r=0;r<t;r++){const i=this.point.events[r];if(i.segment.consumedBy===void 0)for(let s=r+1;s<t;s++){const u=this.point.events[s];u.consumedBy===void 0&&i.otherSE.point.events===u.otherSE.point.events&&i.segment.consume(u.segment)}}}getAvailableLinkedEvents(){const t=[];for(let r=0,i=this.point.events.length;r<i;r++){const s=this.point.events[r];s!==this&&!s.segment.ringOut&&s.segment.isInResult()&&t.push(s)}return t}getLeftmostComparator(t){const r=new Map,i=s=>{const u=s.otherSE;r.set(s,{sine:rD(this.point,t.point,u.point),cosine:oD(this.point,t.point,u.point)})};return(s,u)=>{r.has(s)||i(s),r.has(u)||i(u);const{sine:n,cosine:y}=r.get(s),{sine:m,cosine:g}=r.get(u);return n>=0&&m>=0?y<g?1:y>g?-1:0:n<0&&m<0?y<g?-1:y>g?1:0:m<n?-1:m>n?1:0}}}let nD=0;class bc{static compare(t,r){const i=t.leftSE.point.x,s=r.leftSE.point.x,u=t.rightSE.point.x,n=r.rightSE.point.x;if(n<i)return 1;if(u<s)return-1;const y=t.leftSE.point.y,m=r.leftSE.point.y,g=t.rightSE.point.y,x=r.rightSE.point.y;if(i<s){if(m<y&&m<g)return 1;if(m>y&&m>g)return-1;const b=t.comparePoint(r.leftSE.point);if(b<0)return 1;if(b>0)return-1;const F=r.comparePoint(t.rightSE.point);return F!==0?F:-1}if(i>s){if(y<m&&y<x)return-1;if(y>m&&y>x)return 1;const b=r.comparePoint(t.leftSE.point);if(b!==0)return b;const F=t.comparePoint(r.rightSE.point);return F<0?1:F>0?-1:1}if(y<m)return-1;if(y>m)return 1;if(u<n){const b=r.comparePoint(t.rightSE.point);if(b!==0)return b}if(u>n){const b=t.comparePoint(r.rightSE.point);if(b<0)return 1;if(b>0)return-1}if(u!==n){const b=g-y,F=u-i,R=x-m,I=n-s;if(b>F&&R<I)return 1;if(b<F&&R>I)return-1}return u>n?1:u<n||g<x?-1:g>x?1:t.id<r.id?-1:t.id>r.id?1:0}constructor(t,r,i,s){this.id=++nD,this.leftSE=t,t.segment=this,t.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=t,this.rings=i,this.windings=s}static fromRing(t,r,i){let s,u,n;const y=Hu.comparePoints(t,r);if(y<0)s=t,u=r,n=1;else if(y>0)s=r,u=t,n=-1;else throw new Error(`Tried to create degenerate segment at [${t.x}, ${t.y}]`);const m=new Hu(s,!0),g=new Hu(u,!1);return new bc(m,g,[i],[n])}replaceRightSE(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const t=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:t<r?t:r},ur:{x:this.rightSE.point.x,y:t>r?t:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}comparePoint(t){if(this.isAnEndpoint(t))return 0;const r=this.leftSE.point,i=this.rightSE.point,s=this.vector();if(r.x===i.x)return t.x===r.x?0:t.x<r.x?1:-1;const u=(t.y-r.y)/s.y,n=r.x+u*s.x;if(t.x===n)return 0;const y=(t.x-r.x)/s.x,m=r.y+y*s.y;return t.y===m?0:t.y<m?-1:1}getIntersection(t){const r=this.bbox(),i=t.bbox(),s=$2(r,i);if(s===null)return null;const u=this.leftSE.point,n=this.rightSE.point,y=t.leftSE.point,m=t.rightSE.point,g=zd(r,y)&&this.comparePoint(y)===0,x=zd(i,u)&&t.comparePoint(u)===0,b=zd(r,m)&&this.comparePoint(m)===0,F=zd(i,n)&&t.comparePoint(n)===0;if(x&&g)return F&&!b?n:!F&&b?m:null;if(x)return b&&u.x===m.x&&u.y===m.y?null:u;if(g)return F&&n.x===y.x&&n.y===y.y?null:y;if(F&&b)return null;if(F)return n;if(b)return m;const R=iD(u,this.vector(),y,t.vector());return R===null||!zd(s,R)?null:Ry.round(R.x,R.y)}split(t){const r=[],i=t.events!==void 0,s=new Hu(t,!0),u=new Hu(t,!1),n=this.rightSE;this.replaceRightSE(u),r.push(u),r.push(s);const y=new bc(s,n,this.rings.slice(),this.windings.slice());return Hu.comparePoints(y.leftSE.point,y.rightSE.point)>0&&y.swapEvents(),Hu.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(s.checkForConsuming(),u.checkForConsuming()),r}swapEvents(){const t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,i=this.windings.length;r<i;r++)this.windings[r]*=-1}consume(t){let r=this,i=t;for(;r.consumedBy;)r=r.consumedBy;for(;i.consumedBy;)i=i.consumedBy;const s=bc.compare(r,i);if(s!==0){if(s>0){const u=r;r=i,i=u}if(r.prev===i){const u=r;r=i,i=u}for(let u=0,n=i.rings.length;u<n;u++){const y=i.rings[u],m=i.windings[u],g=r.rings.indexOf(y);g===-1?(r.rings.push(y),r.windings.push(m)):r.windings[g]+=m}i.rings=null,i.windings=null,i.consumedBy=r,i.leftSE.consumedBy=r.leftSE,i.rightSE.consumedBy=r.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const t=this.prev.consumedBy||this.prev;this._beforeState=t.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const t=this.beforeState();this._afterState={rings:t.rings.slice(0),windings:t.windings.slice(0),multiPolys:[]};const r=this._afterState.rings,i=this._afterState.windings,s=this._afterState.multiPolys;for(let y=0,m=this.rings.length;y<m;y++){const g=this.rings[y],x=this.windings[y],b=r.indexOf(g);b===-1?(r.push(g),i.push(x)):i[b]+=x}const u=[],n=[];for(let y=0,m=r.length;y<m;y++){if(i[y]===0)continue;const g=r[y],x=g.poly;if(n.indexOf(x)===-1)if(g.isExterior)u.push(x);else{n.indexOf(x)===-1&&n.push(x);const b=u.indexOf(g.poly);b!==-1&&u.splice(b,1)}}for(let y=0,m=u.length;y<m;y++){const g=u[y].multiPoly;s.indexOf(g)===-1&&s.push(g)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const t=this.beforeState().multiPolys,r=this.afterState().multiPolys;switch(yp.type){case"union":{const i=t.length===0,s=r.length===0;this._isInResult=i!==s;break}case"intersection":{let i,s;t.length<r.length?(i=t.length,s=r.length):(i=r.length,s=t.length),this._isInResult=s===yp.numMultiPolys&&i<s;break}case"xor":{const i=Math.abs(t.length-r.length);this._isInResult=i%2===1;break}case"difference":{const i=s=>s.length===1&&s[0].isSubject;this._isInResult=i(t)!==i(r);break}default:throw new Error(`Unrecognized operation type found ${yp.type}`)}return this._isInResult}}class Z4{constructor(t,r,i){if(!Array.isArray(t)||t.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=i,this.segments=[],typeof t[0][0]!="number"||typeof t[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const s=Ry.round(t[0][0],t[0][1]);this.bbox={ll:{x:s.x,y:s.y},ur:{x:s.x,y:s.y}};let u=s;for(let n=1,y=t.length;n<y;n++){if(typeof t[n][0]!="number"||typeof t[n][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let m=Ry.round(t[n][0],t[n][1]);m.x===u.x&&m.y===u.y||(this.segments.push(bc.fromRing(u,m,this)),m.x<this.bbox.ll.x&&(this.bbox.ll.x=m.x),m.y<this.bbox.ll.y&&(this.bbox.ll.y=m.y),m.x>this.bbox.ur.x&&(this.bbox.ur.x=m.x),m.y>this.bbox.ur.y&&(this.bbox.ur.y=m.y),u=m)}(s.x!==u.x||s.y!==u.y)&&this.segments.push(bc.fromRing(u,s,this))}getSweepEvents(){const t=[];for(let r=0,i=this.segments.length;r<i;r++){const s=this.segments[r];t.push(s.leftSE),t.push(s.rightSE)}return t}}class aD{constructor(t,r){if(!Array.isArray(t))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Z4(t[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let i=1,s=t.length;i<s;i++){const u=new Z4(t[i],this,!1);u.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=u.bbox.ll.x),u.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=u.bbox.ll.y),u.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=u.bbox.ur.x),u.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=u.bbox.ur.y),this.interiorRings.push(u)}this.multiPoly=r}getSweepEvents(){const t=this.exteriorRing.getSweepEvents();for(let r=0,i=this.interiorRings.length;r<i;r++){const s=this.interiorRings[r].getSweepEvents();for(let u=0,n=s.length;u<n;u++)t.push(s[u])}return t}}class Y4{constructor(t,r){if(!Array.isArray(t))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof t[0][0][0]=="number"&&(t=[t])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let i=0,s=t.length;i<s;i++){const u=new aD(t[i],this);u.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=u.bbox.ll.x),u.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=u.bbox.ll.y),u.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=u.bbox.ur.x),u.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=u.bbox.ur.y),this.polys.push(u)}this.isSubject=r}getSweepEvents(){const t=[];for(let r=0,i=this.polys.length;r<i;r++){const s=this.polys[r].getSweepEvents();for(let u=0,n=s.length;u<n;u++)t.push(s[u])}return t}}class Cf{static factory(t){const r=[];for(let i=0,s=t.length;i<s;i++){const u=t[i];if(!u.isInResult()||u.ringOut)continue;let n=null,y=u.leftSE,m=u.rightSE;const g=[y],x=y.point,b=[];for(;n=y,y=m,g.push(y),y.point!==x;)for(;;){const F=y.getAvailableLinkedEvents();if(F.length===0){const U=g[0].point,V=g[g.length-1].point;throw new Error(`Unable to complete output ring starting at [${U.x}, ${U.y}]. Last matching segment found ends at [${V.x}, ${V.y}].`)}if(F.length===1){m=F[0].otherSE;break}let R=null;for(let U=0,V=b.length;U<V;U++)if(b[U].point===y.point){R=U;break}if(R!==null){const U=b.splice(R)[0],V=g.splice(U.index);V.unshift(V[0].otherSE),r.push(new Cf(V.reverse()));continue}b.push({index:g.length,point:y.point});const I=y.getLeftmostComparator(n);m=F.sort(I)[0].otherSE;break}r.push(new Cf(g))}return r}constructor(t){this.events=t;for(let r=0,i=t.length;r<i;r++)t[r].segment.ringOut=this;this.poly=null}getGeom(){let t=this.events[0].point;const r=[t];for(let g=1,x=this.events.length-1;g<x;g++){const b=this.events[g].point,F=this.events[g+1].point;j4(b,t,F)!==0&&(r.push(b),t=b)}if(r.length===1)return null;const i=r[0],s=r[1];j4(i,t,s)===0&&r.shift(),r.push(r[0]);const u=this.isExteriorRing()?1:-1,n=this.isExteriorRing()?0:r.length-1,y=this.isExteriorRing()?r.length:-1,m=[];for(let g=n;g!=y;g+=u)m.push([r[g].x,r[g].y]);return m}isExteriorRing(){if(this._isExteriorRing===void 0){const t=this.enclosingRing();this._isExteriorRing=t?!t.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let t=this.events[0];for(let s=1,u=this.events.length;s<u;s++){const n=this.events[s];Hu.compare(t,n)>0&&(t=n)}let r=t.segment.prevInResult(),i=r?r.prevInResult():null;for(;;){if(!r)return null;if(!i)return r.ringOut;if(i.ringOut!==r.ringOut)return i.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=i.prevInResult(),i=r?r.prevInResult():null}}}class $4{constructor(t){this.exteriorRing=t,t.poly=this,this.interiorRings=[]}addInterior(t){this.interiorRings.push(t),t.poly=this}getGeom(){const t=[this.exteriorRing.getGeom()];if(t[0]===null)return null;for(let r=0,i=this.interiorRings.length;r<i;r++){const s=this.interiorRings[r].getGeom();s!==null&&t.push(s)}return t}}class sD{constructor(t){this.rings=t,this.polys=this._composePolys(t)}getGeom(){const t=[];for(let r=0,i=this.polys.length;r<i;r++){const s=this.polys[r].getGeom();s!==null&&t.push(s)}return t}_composePolys(t){const r=[];for(let i=0,s=t.length;i<s;i++){const u=t[i];if(!u.poly)if(u.isExteriorRing())r.push(new $4(u));else{const n=u.enclosingRing();n.poly||r.push(new $4(n)),n.poly.addInterior(u)}}return r}}class uD{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bc.compare;this.queue=t,this.tree=new z6(r),this.segments=[]}process(t){const r=t.segment,i=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(r),i;const s=t.isLeft?this.tree.add(r):this.tree.find(r);if(!s)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let u=s,n=s,y,m;for(;y===void 0;)u=this.tree.prev(u),u===null?y=null:u.key.consumedBy===void 0&&(y=u.key);for(;m===void 0;)n=this.tree.next(n),n===null?m=null:n.key.consumedBy===void 0&&(m=n.key);if(t.isLeft){let g=null;if(y){const b=y.getIntersection(r);if(b!==null&&(r.isAnEndpoint(b)||(g=b),!y.isAnEndpoint(b))){const F=this._splitSafely(y,b);for(let R=0,I=F.length;R<I;R++)i.push(F[R])}}let x=null;if(m){const b=m.getIntersection(r);if(b!==null&&(r.isAnEndpoint(b)||(x=b),!m.isAnEndpoint(b))){const F=this._splitSafely(m,b);for(let R=0,I=F.length;R<I;R++)i.push(F[R])}}if(g!==null||x!==null){let b=null;g===null?b=x:x===null?b=g:b=Hu.comparePoints(g,x)<=0?g:x,this.queue.remove(r.rightSE),i.push(r.rightSE);const F=r.split(b);for(let R=0,I=F.length;R<I;R++)i.push(F[R])}i.length>0?(this.tree.remove(r),i.push(t)):(this.segments.push(r),r.prev=y)}else{if(y&&m){const g=y.getIntersection(m);if(g!==null){if(!y.isAnEndpoint(g)){const x=this._splitSafely(y,g);for(let b=0,F=x.length;b<F;b++)i.push(x[b])}if(!m.isAnEndpoint(g)){const x=this._splitSafely(m,g);for(let b=0,F=x.length;b<F;b++)i.push(x[b])}}}this.tree.remove(r)}return i}_splitSafely(t,r){this.tree.remove(t);const i=t.rightSE;this.queue.remove(i);const s=t.split(r);return s.push(i),t.consumedBy===void 0&&this.tree.add(t),s}}const q4=typeof process<"u"&&c7.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,pD=typeof process<"u"&&c7.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;class lD{run(t,r,i){yp.type=t,Ry.reset();const s=[new Y4(r,!0)];for(let b=0,F=i.length;b<F;b++)s.push(new Y4(i[b],!1));if(yp.numMultiPolys=s.length,yp.type==="difference"){const b=s[0];let F=1;for(;F<s.length;)$2(s[F].bbox,b.bbox)!==null?F++:s.splice(F,1)}if(yp.type==="intersection")for(let b=0,F=s.length;b<F;b++){const R=s[b];for(let I=b+1,U=s.length;I<U;I++)if($2(R.bbox,s[I].bbox)===null)return[]}const u=new z6(Hu.compare);for(let b=0,F=s.length;b<F;b++){const R=s[b].getSweepEvents();for(let I=0,U=R.length;I<U;I++)if(u.insert(R[I]),u.size>q4)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const n=new uD(u);let y=u.size,m=u.pop();for(;m;){const b=m.key;if(u.size===y){const R=b.segment;throw new Error(`Unable to pop() ${b.isLeft?"left":"right"} SweepEvent [${b.point.x}, ${b.point.y}] from segment #${R.id} [${R.leftSE.point.x}, ${R.leftSE.point.y}] -> [${R.rightSE.point.x}, ${R.rightSE.point.y}] from queue.`)}if(u.size>q4)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(n.segments.length>pD)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const F=n.process(b);for(let R=0,I=F.length;R<I;R++){const U=F[R];U.consumedBy===void 0&&u.insert(U)}y=u.size,m=u.pop()}Ry.reset();const g=Cf.factory(n.segments);return new sD(g).getGeom()}}const yp=new lD,cD=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return yp.run("union",e,r)},dD=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return yp.run("intersection",e,r)},yD=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return yp.run("xor",e,r)},hD=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return yp.run("difference",e,r)};var fD={union:cD,intersection:dD,xor:yD,difference:hD};function mD(e,t,r){r===void 0&&(r={});var i=L3(e),s=L3(t),u=fD.union(i.coordinates,s.coordinates);return u.length===0?null:u.length===1?a6(u[0],r.properties):qv(u,r.properties)}class _D{getCombineFeature(t){let r=null;const i=t[0];return t.map(s=>{const u=a6(s.coordinates);r===null?r=u:r=mD(r,u)}),i&&(r.properties=_t({},i)),r}}const Vd="select",Hd="active";class gD{constructor({layerService:t,tileLayerService:r,parent:i}){H(this,"layerService",void 0),H(this,"tileLayerService",void 0),H(this,"tileSourceService",void 0),H(this,"parent",void 0),H(this,"tilePickID",new Map),this.layerService=t,this.tileLayerService=r,this.parent=i,this.tileSourceService=new _D}pickRender(t){const r=this.tileLayerService.getVisibleTileBylngLat(t.lngLat);if(r){const i=r.getMainLayer();i==null||i.layerPickService.pickRender(t)}}pick(t,r){var i=this;return mt(function*(){const u=i.parent.getContainer().pickingService;if(t.type==="RasterLayer"){const n=i.tileLayerService.getVisibleTileBylngLat(r.lngLat);if(n&&n.getMainLayer()!==void 0){const y=n.getMainLayer();return y.layerPickService.pickRasterLayer(y,r,i.parent)}return!1}return i.pickRender(r),u.pickFromPickingFBO(t,r)})()}selectFeature(t){const[r,i,s]=t,u=this.color2PickId(r,i,s);this.tilePickID.set(Vd,u),this.updateHighLight(r,i,s,Vd)}highlightPickedFeature(t){const[r,i,s]=t,u=this.color2PickId(r,i,s);this.tilePickID.set(Hd,u),this.updateHighLight(r,i,s,Hd)}updateHighLight(t,r,i,s){this.tileLayerService.tiles.map(u=>{const n=u.getMainLayer();switch(s){case Vd:n==null||n.hooks.beforeSelect.call([t,r,i]);break;case Hd:n==null||n.hooks.beforeHighlight.call([t,r,i]);break}})}setPickState(){const t=this.tilePickID.get(Vd),r=this.tilePickID.get(Hd);if(t){const[i,s,u]=this.pickId2Color(t);this.updateHighLight(i,s,u,Vd);return}if(r){const[i,s,u]=this.pickId2Color(r);this.updateHighLight(i,s,u,Hd);return}}color2PickId(t,r,i){return c1(new Uint8Array([t,r,i]))}pickId2Color(t){return L0(t)}getFeatureById(t){const r=this.tileLayerService.getTiles().filter(s=>s.visible),i=[];return r.forEach(s=>{i.push(...s.getFeatureById(t))}),i}pickRasterLayer(){return!1}}function vD(e){return e==="PolygonLayer"?l7:e==="LineLayer"?r7:wy}function ED(e){return["PolygonLayer","LineLayer"].indexOf(e)!==-1}class F1 extends du.EventEmitter{constructor(t,r){super(),H(this,"x",void 0),H(this,"y",void 0),H(this,"z",void 0),H(this,"key",void 0),H(this,"parent",void 0),H(this,"sourceTile",void 0),H(this,"visible",!0),H(this,"layers",[]),H(this,"isLoaded",!1),H(this,"tileMaskLayers",[]),H(this,"tileMask",void 0),this.parent=r,this.sourceTile=t,this.x=t.x,this.y=t.y,this.z=t.z,this.key=`${this.x}_${this.y}_${this.z}`}getLayers(){return this.layers}styleUpdate(...t){}lnglatInBounds(t){const[r,i,s,u]=this.sourceTile.bounds,{lng:n,lat:y}=t;return n>=r&&n<=s&&y>=i&&y<=u}getLayerOptions(){var t;const r=this.parent.getLayerConfig();return _t(_t({},r),{},{textAllowOverlap:!0,autoFit:!1,maskLayers:this.getMaskLayer(),tileMask:ED(this.parent.type),mask:r.mask||((t=r.maskLayers)===null||t===void 0?void 0:t.length)!==0&&r.enableMask})}getMaskLayer(){const{maskLayers:t}=this.parent.getLayerConfig(),r=[];return t==null||t.forEach(i=>{if(!i.tileLayer)return r.push(i),i;const u=i.tileLayer.getTile(this.sourceTile.key),n=u==null?void 0:u.getLayers()[0];n&&r.push(n)}),r}addTileMask(){var t=this;return mt(function*(){const r=new l7({name:"mask",visible:!0,enablePicking:!1}).source({type:"FeatureCollection",features:[t.sourceTile.bboxPolygon]},{parser:{type:"geojson",featureId:"id"}}).shape("fill").color("#0f0").style({opacity:.5}),i=ly(t.parent.container);r.setContainer(i),yield r.init(),t.tileMask=r;const s=t.getMainLayer();return s!==void 0&&(s.tileMask=r),r})()}addMask(t,r){var i=this;return mt(function*(){const s=ly(i.parent.container);r.setContainer(s),yield r.init(),t.addMask(r),i.tileMaskLayers.push(r)})()}addLayer(t){var r=this;return mt(function*(){t.isTileLayer=!0;const i=ly(r.parent.container);t.setContainer(i),r.layers.push(t),yield t.init()})()}updateVisible(t){this.visible=t,this.updateOptions("visible",t)}updateOptions(t,r){this.layers.forEach(i=>{i.updateLayerConfig({[t]:r})})}getMainLayer(){return this.layers[0]}getFeatures(t){return[]}getFeatureById(t){return[]}destroy(){var t;(t=this.tileMask)===null||t===void 0||t.destroy(),this.layers.forEach(r=>r.destroy())}}class xD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.getSourceOption(),i=r.data.features[0].properties,s=new r7().source(r.data,r.options).size(1).shape("line").color("red"),u=new wy({minZoom:t.z-1,maxZoom:t.z+1,textAllowOverlap:!0}).source([i],{parser:{type:"json",x:"x",y:"y"}}).size(20).color("red").shape(t.key).style({stroke:"#fff",strokeWidth:2});yield t.addLayer(s),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:{type:"FeatureCollection",features:this.sourceTile.data.layers.testTile.features},options:{parser:{type:"geojson"},transforms:t.transforms}}}}class PD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new $I(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:this.sourceTile.data,options:{parser:{type:"image",extent:this.sourceTile.bounds},transforms:t.transforms}}}}const bD=`layout(std140) uniform commonUniorm {
- vec4 u_color;
- float u_opacity;
- };
- out vec4 outputColor;
- void main() {
- outputColor = u_color;
- outputColor.a *= u_opacity;
- }
- `,AD=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
- layout(std140) uniform commonUniorm {
- vec4 u_color;
- float u_opacity;
- };
- #pragma include "projection"
- void main() {
- vec4 project_pos = project_position(vec4(a_Position, 1.0));
- gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
- }
- `;class FD extends Pi{getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,color:r="#000"}=this.layer.getLayerConfig(),i={u_color:Mi(r),u_opacity:t||1};return this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"mask",vertexShader:AD,fragmentShader:bD,defines:t.getDefines(),triangulation:By,depth:{enable:!1},pick:!1})]})()}clearModels(t=!0){t&&this.layerService.clear()}registerBuiltinAttributes(){return""}}const TD={fill:FD};class y7 extends A1{constructor(...t){super(...t),H(this,"type","MaskLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new TD[r](t),yield t.initLayerModels()})()}getModelType(){return"fill"}}class SD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new y7(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getFeatures(t){return t?this.sourceTile.data.getTileData(t):[]}getSourceOption(){const t=this.parent.getSource(),{sourceLayer:r,featureId:i}=this.parent.getLayerConfig();return{data:{type:"FeatureCollection",features:this.getFeatures(r)},options:{parser:{type:"geojson",featureId:i},transforms:t.transforms}}}}const wD=["rasterData"];let RD=class extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new k6(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource(),r=this.sourceTile.data.data,{rasterData:i}=r,s=$p(r,wD);return{data:i,options:{parser:_t({type:"rasterRgb",extent:this.sourceTile.bounds},s),transforms:t.transforms}}}};class CD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new k6(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:this.sourceTile.data,options:{parser:{type:"image",extent:this.sourceTile.bounds},transforms:t.transforms}}}}const ID=["rasterData"],MD={positions:[0,1],colors:["#000","#fff"]};class ND extends F1{constructor(...t){super(...t),H(this,"colorTexture",void 0)}initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),{rampColors:u,domain:n}=t.getLayerOptions();t.colorTexture=t.parent.textureService.getColorTexture(u,n);const y=new k6(_t(_t({},i),{},{colorTexture:t.colorTexture})).source(s.data,s.options);r&&Object.keys(r).forEach(m=>{var g,x;const b=m;y[b]((g=r[b])===null||g===void 0?void 0:g.field,(x=r[b])===null||x===void 0?void 0:x.values)}),yield t.addLayer(y),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource(),r=this.sourceTile.data.data,{rasterData:i}=r,s=$p(r,ID);return{data:i,options:{parser:_t({type:"raster",extent:this.sourceTile.bounds},s),transforms:t.transforms}}}styleUpdate(...t){const{rampColors:r=MD,domain:i}=t;this.colorTexture=this.parent.textureService.getColorTexture(r,i||h6(r)),this.layers.forEach(s=>s.style({colorTexture:this.colorTexture}))}destroy(){this.layers.forEach(t=>t.destroy())}}class Lh extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=vD(t.parent.type),u=t.getSourceOption();if(!u){t.isLoaded=!0,t.emit("loaded");return}const n=new s(_t({},i)).source(u.data,u.options);Object.keys(r).forEach(y=>{var m,g;const x=y;n[x]((m=r[x])===null||m===void 0?void 0:m.field,(g=r[x])===null||g===void 0?void 0:g.values)}),yield t.addLayer(n),i.tileMask&&(yield t.addTileMask()),t.setLayerMinMaxZoom(n),t.isLoaded=!0,t.emit("loaded")})()}getSourceOption(){const t=this.parent.getSource(),{sourceLayer:r="defaultLayer",featureId:i="id"}=this.parent.getLayerConfig();return{data:{type:"FeatureCollection",features:this.getFeatures(r)},options:{parser:{type:"geojson",featureId:i},transforms:t.transforms}}}setLayerMinMaxZoom(t){t.getModelType()==="text"&&t.updateLayerConfig({maxZoom:this.z+1,minZoom:this.z-1})}getFeatures(t){return this.sourceTile.data.getTileData(t)}getFeatureById(t){const r=this.getMainLayer();return r?r.getSource().data.dataArray.filter(s=>s._id===t):[]}}function DD(e){switch(e.type){case"PolygonLayer":return Lh;case"LineLayer":return Lh;case"PointLayer":return Lh;case"TileDebugLayer":return xD;case"MaskLayer":return SD;case"RasterLayer":const{dataType:r}=e.getSource().parser;switch(r){case Ha.RGB:case Ha.CUSTOMRGB:return RD;case Ha.ARRAYBUFFER:case Ha.CUSTOMARRAYBUFFER:return ND;case Ha.TERRAINRGB:case Ha.CUSTOMTERRAINRGB:return CD;default:return PD}default:return Lh}}const OD=["shape","color","size","style","animate","filter","rotate","scale","setBlend","setSelect","setActive","disableMask","enableMask","addMask","removeMask"],{debounce:LD}=Qn;class BD{constructor(t){H(this,"parent",void 0),H(this,"tileLayerService",void 0),H(this,"mapService",void 0),H(this,"layerService",void 0),H(this,"rendererService",void 0),H(this,"pickingService",void 0),H(this,"tilePickService",void 0),H(this,"tilesetManager",void 0),H(this,"initedTileset",!1),H(this,"lastViewStates",void 0),H(this,"mapchange",()=>{var i;if(this.parent.isVisible()===!1)return;const{latLonBounds:s,zoom:u}=this.getCurrentView();this.lastViewStates&&this.lastViewStates.zoom===u&&this.lastViewStates.latLonBounds.toString()===s.toString()||(this.lastViewStates={zoom:u,latLonBounds:s},(i=this.tilesetManager)===null||i===void 0||i.throttleUpdate(u,s))}),H(this,"viewchange",LD(this.mapchange,24)),this.parent=t;const r=this.parent.getContainer();this.rendererService=r.rendererService,this.layerService=r.layerService,this.mapService=r.mapService,this.pickingService=r.pickingService,this.tileLayerService=new zN({rendererService:this.rendererService,layerService:this.layerService,parent:t}),this.tilePickService=new gD({tileLayerService:this.tileLayerService,layerService:this.layerService,parent:t}),this.parent.setLayerPickService(this.tilePickService),this.proxy(t),this.initTileSetManager()}initTileSetManager(){var t;const r=this.parent.getSource();if(this.tilesetManager=r.tileset,this.initedTileset||(this.bindTilesetEvent(),this.initedTileset=!0),this.parent.isVisible()===!1)return;const{latLonBounds:i,zoom:s}=this.getCurrentView();(t=this.tilesetManager)===null||t===void 0||t.update(s,i)}getCurrentView(){const t=this.mapService.getBounds(),r=[t[0][0],t[0][1],t[1][0],t[1][1]],i=this.mapService.getZoom();return{latLonBounds:r,zoom:i}}bindTilesetEvent(){this.tilesetManager.on("tile-loaded",t=>{}),this.tilesetManager.on("tile-unload",t=>{this.tileUnLoad(t)}),this.tilesetManager.on("tile-error",(t,r)=>{this.tileError(t)}),this.tilesetManager.on("tile-update",()=>{this.tileUpdate()}),this.mapService.on("zoomend",this.mapchange),this.mapService.on("moveend",this.viewchange)}render(){this.tileLayerService.render()}getLayers(){return this.tileLayerService.getLayers()}getTiles(){return this.tileLayerService.getTiles()}getTile(t){return this.tileLayerService.getTile(t)}tileLoaded(t){}tileError(t){console.warn("error:",t)}destroy(){var t;this.mapService.off("zoomend",this.mapchange),this.mapService.off("moveend",this.viewchange),(t=this.tilesetManager)===null||t===void 0||t.destroy(),this.tileLayerService.destroy()}reload(){var t;this.tilesetManager.clear();const{latLonBounds:r,zoom:i}=this.getCurrentView();(t=this.tilesetManager)===null||t===void 0||t.update(i,r)}tileUnLoad(t){this.tileLayerService.removeTile(t.key)}tileUpdate(){var t=this;return mt(function*(){if(!t.tilesetManager)return;const r=t.parent.getMinZoom(),i=t.parent.getMaxZoom(),s=t.tilesetManager.tiles.filter(u=>u.isLoaded).filter(u=>u.isVisibleChange).filter(u=>u.data).filter(u=>u.z>=r&&u.z<i);yield Promise.all(s.map(function(){var u=mt(function*(n){if(t.tileLayerService.hasTile(n.key))t.tileLayerService.updateTileVisible(n),t.tilePickService.setPickState(),t.layerService.reRender();else{const y=DD(t.parent),m=new y(n,t.parent);yield m.initTileLayer(),t.tilePickService.setPickState(),m.getLayers().length!==0&&(t.tileLayerService.addTile(m),t.tileLayerService.updateTileVisible(n),t.layerService.reRender())}});return function(n){return u.apply(this,arguments)}}())),t.tilesetManager.isLoaded&&t.parent.emit("tiles-loaded",t.tilesetManager.currentTiles)})()}setPickState(t){}pickRender(t){this.tilePickService.pickRender(t)}selectFeature(t){this.tilePickService.selectFeature(t)}highlightPickedFeature(t){this.tilePickService.highlightPickedFeature(t)}proxy(t){OD.forEach(r=>{const i=t[r].bind(t);t[r]=(...s)=>(i(...s),this.getLayers().map(u=>{u[r](...s)}),r==="style"&&this.getTiles().forEach(u=>u.styleUpdate(...s)),t)})}}function UD(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}UD(`.l7-marker-container {
- position: absolute;
- width: 100%;
- height: 100%;
- overflow: hidden;
- }
- .l7-marker {
- position: absolute !important;
- top: 0;
- left: 0;
- z-index: 5;
- cursor: pointer;
- }
- .l7-marker-cluster {
- width: 40px;
- height: 40px;
- background-color: rgba(181, 226, 140, 0.6);
- background-clip: padding-box;
- border-radius: 20px;
- }
- .l7-marker-cluster div {
- width: 30px;
- height: 30px;
- margin-top: 5px;
- margin-left: 5px;
- font:
- 12px 'Helvetica Neue',
- Arial,
- Helvetica,
- sans-serif;
- text-align: center;
- background-color: rgba(110, 204, 57, 0.6);
- border-radius: 15px;
- }
- .l7-marker-cluster span {
- line-height: 30px;
- }
- .l7-touch .l7-control-attribution,
- .l7-touch .l7-control-layers,
- .l7-touch .l7-bar {
- box-shadow: none;
- }
- .l7-touch .l7-control-layers,
- .l7-touch .l7-bar {
- background-clip: padding-box;
- border: 2px solid rgba(0, 0, 0, 0.2);
- }
- .mapboxgl-ctrl-logo,
- .amap-logo {
- display: none !important;
- }
- .l7-select-box {
- border: 3px dashed gray;
- border-radius: 2px;
- position: absolute;
- z-index: 999;
- box-sizing: border-box;
- }
- .l7-control-container {
- font:
- 12px/1.5 'Helvetica Neue',
- Arial,
- Helvetica,
- sans-serif;
- }
- .l7-control-container .l7-control {
- position: relative;
- z-index: 999;
- float: left;
- clear: both;
- color: #595959;
- font-size: 12px;
- pointer-events: visiblePainted;
- /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
- .l7-control-container .l7-control.l7-control--hide {
- display: none;
- }
- .l7-control-container .l7-top {
- top: 0;
- display: flex;
- position: absolute;
- z-index: 999;
- pointer-events: none;
- }
- .l7-control-container .l7-top .l7-control:not(.l7-control--hide) {
- margin-top: 8px;
- }
- .l7-control-container .l7-right {
- right: 0;
- display: flex;
- position: absolute;
- z-index: 999;
- pointer-events: none;
- }
- .l7-control-container .l7-right .l7-control:not(.l7-control--hide) {
- margin-right: 8px;
- }
- .l7-control-container .l7-bottom {
- bottom: 0;
- display: flex;
- position: absolute;
- z-index: 999;
- pointer-events: none;
- }
- .l7-control-container .l7-bottom .l7-control:not(.l7-control--hide) {
- margin-bottom: 8px;
- }
- .l7-control-container .l7-left {
- left: 0;
- display: flex;
- position: absolute;
- z-index: 999;
- pointer-events: none;
- }
- .l7-control-container .l7-left .l7-control:not(.l7-control--hide) {
- margin-left: 8px;
- }
- .l7-control-container .l7-center {
- position: absolute;
- display: flex;
- justify-content: center;
- }
- .l7-control-container .l7-center.l7-top,
- .l7-control-container .l7-center.l7-bottom {
- width: 100%;
- }
- .l7-control-container .l7-center.l7-left,
- .l7-control-container .l7-center.l7-right {
- height: 100%;
- }
- .l7-control-container .l7-center .l7-control {
- margin-right: 8px;
- margin-bottom: 8px;
- }
- .l7-control-container .l7-row {
- flex-direction: row;
- }
- .l7-control-container .l7-row.l7-top {
- align-items: flex-start;
- }
- .l7-control-container .l7-row.l7-bottom {
- align-items: flex-end;
- }
- .l7-control-container .l7-column {
- flex-direction: column;
- }
- .l7-control-container .l7-column.l7-left {
- align-items: flex-start;
- }
- .l7-control-container .l7-column.l7-right {
- align-items: flex-end;
- }
- .l7-button-control {
- min-width: 28px;
- height: 28px;
- background-color: #fff;
- border-width: 0;
- border-radius: 2px;
- outline: 0;
- cursor: pointer;
- transition: all 0.2s;
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 0 6px;
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
- line-height: 16px;
- }
- .l7-button-control .l7-iconfont {
- fill: #595959;
- color: #595959;
- width: 16px;
- height: 16px;
- }
- .l7-button-control.l7-button-control--row {
- padding: 0 16px 0 13px;
- }
- .l7-button-control.l7-button-control--row * + .l7-button-control__text {
- margin-left: 8px;
- }
- .l7-button-control.l7-button-control--column {
- height: 44px;
- flex-direction: column;
- }
- .l7-button-control.l7-button-control--column .l7-iconfont {
- margin-top: 3px;
- }
- .l7-button-control.l7-button-control--column .l7-button-control__text {
- margin-top: 3px;
- font-size: 10px;
- -webkit-transform: scale(0.83333);
- transform: scale(0.83333);
- }
- .l7-button-control:not(:disabled):hover {
- background-color: #f3f3f3;
- }
- .l7-button-control:not(:disabled):active {
- background-color: #f3f3f3;
- }
- .l7-button-control:disabled {
- background-color: #fafafa;
- color: #bdbdbd;
- cursor: not-allowed;
- }
- .l7-button-control:disabled .l7-iconfont {
- fill: #bdbdbd;
- color: #bdbdbd;
- }
- .l7-button-control:disabled:hover {
- background-color: #fafafa;
- }
- .l7-button-control:disabled:active {
- background-color: #fafafa;
- }
- .l7-popper {
- position: absolute;
- display: flex;
- justify-content: center;
- align-items: center;
- z-index: 5;
- color: #595959;
- }
- .l7-popper.l7-popper-hide {
- display: none;
- }
- .l7-popper .l7-popper-content {
- min-height: 28px;
- background: #fff;
- border-radius: 2px;
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
- }
- .l7-popper .l7-popper-arrow {
- width: 0;
- height: 0;
- border-width: 4px;
- border-style: solid;
- border-top-color: transparent;
- border-bottom-color: transparent;
- border-left-color: transparent;
- border-right-color: transparent;
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
- }
- .l7-popper.l7-popper-left {
- flex-direction: row;
- }
- .l7-popper.l7-popper-left .l7-popper-arrow {
- border-left-color: #fff;
- margin: 10px 0;
- }
- .l7-popper.l7-popper-right {
- flex-direction: row-reverse;
- }
- .l7-popper.l7-popper-right .l7-popper-arrow {
- border-right-color: #fff;
- margin: 10px 0;
- }
- .l7-popper.l7-popper-top {
- flex-direction: column;
- }
- .l7-popper.l7-popper-top .l7-popper-arrow {
- border-top-color: #fff;
- margin: 0 10px;
- }
- .l7-popper.l7-popper-bottom {
- flex-direction: column-reverse;
- }
- .l7-popper.l7-popper-bottom .l7-popper-arrow {
- border-bottom-color: #fff;
- margin: 0 10px;
- }
- .l7-popper.l7-popper-start {
- align-items: flex-start;
- }
- .l7-popper.l7-popper-end {
- align-items: flex-end;
- }
- .l7-select-control--normal {
- padding: 4px 0;
- }
- .l7-select-control--normal .l7-select-control-item {
- display: flex;
- align-items: center;
- height: 24px;
- padding: 0 16px;
- font-size: 12px;
- line-height: 24px;
- }
- .l7-select-control--normal .l7-select-control-item > * + * {
- margin-left: 6px;
- }
- .l7-select-control--normal .l7-select-control-item input[type='checkbox'] {
- width: 14px;
- height: 14px;
- }
- .l7-select-control--normal .l7-select-control-item:hover {
- background-color: #f3f3f3;
- }
- .l7-select-control--image {
- display: flex;
- flex-wrap: wrap;
- align-items: flex-start;
- box-sizing: content-box;
- max-width: 460px;
- max-height: 400px;
- margin: 12px 0 0 12px;
- overflow-x: hidden;
- overflow-y: auto;
- }
- .l7-select-control--image .l7-select-control-item {
- position: relative;
- display: flex;
- flex: 0 0 calc((100% - (12px + 9px) * 2) / 3);
- flex-direction: column;
- justify-content: center;
- box-sizing: content-box;
- margin-right: 12px;
- margin-bottom: 12px;
- overflow: hidden;
- font-size: 12px;
- border: 1px solid #fff;
- border-radius: 2px;
- }
- .l7-select-control--image .l7-select-control-item img {
- width: 100%;
- height: 80px;
- }
- .l7-select-control--image .l7-select-control-item input[type='checkbox'] {
- position: absolute;
- top: 0;
- right: 0;
- }
- .l7-select-control--image .l7-select-control-item .l7-select-control-item-row {
- display: flex;
- align-items: center;
- justify-content: center;
- line-height: 26px;
- }
- .l7-select-control--image .l7-select-control-item .l7-select-control-item-row > * + * {
- margin-left: 8px;
- }
- .l7-select-control--image .l7-select-control-item.l7-select-control-item-active {
- border-color: #0370fe;
- }
- .l7-select-control-item {
- cursor: pointer;
- }
- .l7-select-control-item input[type='checkbox'] {
- margin: 0;
- cursor: pointer;
- }
- .l7-select-control--multiple .l7-select-control-item:hover {
- background-color: transparent;
- }
- .l7-control-logo {
- width: 89px;
- height: 16px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- }
- .l7-control-logo img {
- height: 100%;
- width: 100%;
- }
- .l7-control-logo .l7-control-logo-link {
- display: block;
- cursor: pointer;
- }
- .l7-control-logo .l7-control-logo-link img {
- cursor: pointer;
- }
- .l7-control-mouse-location {
- background-color: #fff;
- border-radius: 2px;
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
- padding: 2px 4px;
- min-width: 130px;
- }
- .l7-control-zoom {
- overflow: hidden;
- border-radius: 2px;
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
- }
- .l7-control-zoom .l7-button-control {
- font-size: 16px;
- border-bottom: 1px solid #f0f0f0;
- border-radius: 0;
- box-shadow: 0 0 0;
- }
- .l7-control-zoom .l7-button-control .l7-iconfont {
- width: 14px;
- height: 14px;
- }
- .l7-control-zoom .l7-button-control:last-child {
- border-bottom: 0;
- }
- .l7-control-zoom .l7-control-zoom__number {
- color: #595959;
- padding: 0;
- }
- .l7-control-zoom .l7-control-zoom__number:hover {
- background-color: #fff;
- }
- .l7-control-scale {
- display: flex;
- flex-direction: column;
- }
- .l7-control-scale .l7-control-scale-line {
- box-sizing: border-box;
- padding: 2px 5px 1px;
- overflow: hidden;
- color: #595959;
- font-size: 10px;
- line-height: 1.1;
- white-space: nowrap;
- background: #fff;
- border: 2px solid #000;
- border-top: 0;
- transition: width 0.1s;
- }
- .l7-control-scale .l7-control-scale-line + .l7-control-scale .l7-control-scale-line {
- margin-top: -2px;
- border-top: 2px solid #777;
- border-bottom: none;
- }
- .l7-right .l7-control-scale {
- display: flex;
- align-items: flex-end;
- }
- .l7-right .l7-control-scale .l7-control-scale-line {
- text-align: right;
- }
- .l7-popup {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 5;
- display: flex;
- will-change: transform;
- pointer-events: none;
- }
- .l7-popup.l7-popup-hide {
- display: none;
- }
- .l7-popup .l7-popup-content {
- position: relative;
- padding: 16px;
- font-size: 14px;
- background: #fff;
- border-radius: 3px;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
- }
- .l7-popup .l7-popup-content .l7-popup-content__title {
- margin-bottom: 8px;
- font-weight: bold;
- }
- .l7-popup .l7-popup-content .l7-popup-close-button,
- .l7-popup .l7-popup-content .l7-popup-content__title,
- .l7-popup .l7-popup-content .l7-popup-content__panel {
- white-space: normal;
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
- pointer-events: initial;
- }
- .l7-popup .l7-popup-content .l7-popup-close-button {
- position: absolute;
- top: 0;
- right: 0;
- width: 18px;
- height: 18px;
- padding: 0;
- font-size: 14px;
- line-height: 18px;
- text-align: center;
- background-color: transparent;
- border: 0;
- border-radius: 0 3px 0 0;
- cursor: pointer;
- }
- .l7-popup .l7-popup-tip {
- position: relative;
- z-index: 1;
- width: 0;
- height: 0;
- border: 10px solid transparent;
- }
- .l7-popup.l7-popup-anchor-bottom,
- .l7-popup.l7-popup-anchor-bottom-left,
- .l7-popup.l7-popup-anchor-bottom-right {
- flex-direction: column-reverse;
- }
- .l7-popup.l7-popup-anchor-bottom .l7-popup-tip,
- .l7-popup.l7-popup-anchor-bottom-left .l7-popup-tip,
- .l7-popup.l7-popup-anchor-bottom-right .l7-popup-tip {
- bottom: 1px;
- }
- .l7-popup.l7-popup-anchor-top,
- .l7-popup.l7-popup-anchor-top-left,
- .l7-popup.l7-popup-anchor-top-right {
- flex-direction: column;
- }
- .l7-popup.l7-popup-anchor-top .l7-popup-tip,
- .l7-popup.l7-popup-anchor-top-left .l7-popup-tip,
- .l7-popup.l7-popup-anchor-top-right .l7-popup-tip {
- top: 1px;
- }
- .l7-popup.l7-popup-anchor-left {
- flex-direction: row;
- }
- .l7-popup.l7-popup-anchor-right {
- flex-direction: row-reverse;
- }
- .l7-popup-anchor-top .l7-popup-tip {
- position: relative;
- align-self: center;
- border-top: none;
- border-bottom-color: #fff;
- }
- .l7-popup-anchor-top-left .l7-popup-tip {
- align-self: flex-start;
- border-top: none;
- border-bottom-color: #fff;
- border-left: none;
- }
- .l7-popup-anchor-top-right .l7-popup-tip {
- align-self: flex-end;
- border-top: none;
- border-right: none;
- border-bottom-color: #fff;
- }
- .l7-popup-anchor-bottom .l7-popup-tip {
- align-self: center;
- border-top-color: #fff;
- border-bottom: none;
- }
- .l7-popup-anchor-bottom-left .l7-popup-tip {
- align-self: flex-start;
- border-top-color: #fff;
- border-bottom: none;
- border-left: none;
- }
- .l7-popup-anchor-bottom-right .l7-popup-tip {
- align-self: flex-end;
- border-top-color: #fff;
- border-right: none;
- border-bottom: none;
- }
- .l7-popup-anchor-left .l7-popup-tip {
- align-self: center;
- border-right-color: #fff;
- border-left: none;
- }
- .l7-popup-anchor-right .l7-popup-tip {
- right: 1px;
- align-self: center;
- border-right: none;
- border-left-color: #fff;
- }
- .l7-popup-anchor-top-left .l7-popup-content {
- border-top-left-radius: 0;
- }
- .l7-popup-anchor-top-right .l7-popup-content {
- border-top-right-radius: 0;
- }
- .l7-popup-anchor-bottom-left .l7-popup-content {
- border-bottom-left-radius: 0;
- }
- .l7-popup-anchor-bottom-right .l7-popup-content {
- border-bottom-right-radius: 0;
- }
- .l7-popup-track-pointer {
- display: none;
- }
- .l7-popup-track-pointer * {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
- }
- .l7-map:hover .l7-popup-track-pointer {
- display: flex;
- }
- .l7-map:active .l7-popup-track-pointer {
- display: none;
- }
- .l7-layer-popup__row {
- font-size: 12px;
- }
- .l7-layer-popup__row + .l7-layer-popup__row {
- margin-top: 4px;
- }
- .l7-control-swipe {
- position: absolute;
- top: 50%;
- left: 50%;
- z-index: 6;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- touch-action: none;
- }
- .l7-control-swipe_hide {
- display: none;
- }
- .l7-control-swipe:before {
- position: absolute;
- top: -5000px;
- bottom: -5000px;
- left: 50%;
- z-index: -1;
- width: 4px;
- background: #fff;
- -webkit-transform: translate(-2px, 0);
- transform: translate(-2px, 0);
- content: '';
- }
- .l7-control-swipe.horizontal:before {
- top: 50%;
- right: -5000px;
- bottom: auto;
- left: -5000px;
- width: auto;
- height: 4px;
- }
- .l7-control-swipe__button {
- display: block;
- width: 28px;
- height: 28px;
- margin: 0;
- padding: 0;
- color: #595959;
- font-weight: bold;
- font-size: inherit;
- text-align: center;
- text-decoration: none;
- background-color: #fff;
- border: none;
- border-radius: 2px;
- outline: none;
- }
- .l7-control-swipe,
- .l7-control-swipe__button {
- cursor: ew-resize;
- }
- .l7-control-swipe.horizontal,
- .l7-control-swipe.horizontal button {
- cursor: ns-resize;
- }
- .l7-control-swipe:after,
- .l7-control-swipe__button:before,
- .l7-control-swipe__button:after {
- position: absolute;
- top: 25%;
- bottom: 25%;
- left: 50%;
- width: 2px;
- background: currentColor;
- -webkit-transform: translate(-1px, 0);
- transform: translate(-1px, 0);
- content: '';
- }
- .l7-control-swipe__button:after {
- -webkit-transform: translateX(4px);
- transform: translateX(4px);
- }
- .l7-control-swipe__button:before {
- -webkit-transform: translateX(-6px);
- transform: translateX(-6px);
- }
- `);class kD{constructor(t){H(this,"configService",void 0),H(this,"config",void 0),this.config=t}setContainer(t,r){this.configService=t.globalConfigService,t.mapConfig=_t(_t({},this.config),{},{id:r}),t.mapService=new(this.getServiceConstructor())(t)}getServiceConstructor(){throw new Error("Method not implemented.")}}class zD{constructor(t){H(this,"size",1e4),this.size=t||1e4}setSize(t){this.size=t}getSize(){return[this.size,this.size]}mercatorXfromLng(t){return(180+t)/360*this.size}mercatorYfromLat(t){return(1-(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360)*this.size}lngFromMercatorX(t){return t/this.size*360-180}latFromMercatorY(t){const r=180-(1-t/this.size)*360;return 360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90}project(t){const r=this.mercatorXfromLng(t[0]),i=this.mercatorYfromLat(t[1]);return[r,i]}unproject(t){const r=this.lngFromMercatorX(t[0]),i=this.latFromMercatorY(t[1]);return[r,i]}}function h7(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function VD(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,bv(i.key),i)}}function f7(e,t,r){return t&&VD(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ry(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function HD(e,t){if(t&&(Av(t)=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ry(e)}function q2(e){return q2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},q2(e)}function K2(e,t){return K2=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},K2(e,t)}function GD(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&K2(e,t)}function jD(e){if(Array.isArray(e))return e}function WD(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,s,u,n,y=[],m=!0,g=!1;try{if(u=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;m=!1}else for(;!(m=(i=u.call(r)).done)&&(y.push(i.value),y.length!==t);m=!0);}catch(x){g=!0,s=x}finally{try{if(!m&&r.return!=null&&(n=r.return(),Object(n)!==n))return}finally{if(g)throw s}}return y}}function K4(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function XD(e,t){if(e){if(typeof e=="string")return K4(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K4(e,t):void 0}}function ZD(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ju(e,t){return jD(e)||WD(e,t)||XD(e,t)||ZD()}function cy(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Kh(e,t){var r=n6([],t,e);return zv(r,r,1/r[3]),r}function E1(e,t){if(!e)throw new Error(t||"viewport-mercator-project: assertion failed.")}var hp=Math.PI,m7=hp/4,Ac=hp/180,Q4=180/hp,V6=512,J4=4003e4,YD=1.5;function _7(e){return Math.pow(2,e)}function r2(e,t){var r=ju(e,2),i=r[0],s=r[1];E1(Number.isFinite(i)&&Number.isFinite(t)),E1(Number.isFinite(s)&&s>=-90&&s<=90,"invalid latitude"),t*=V6;var u=i*Ac,n=s*Ac,y=t*(u+hp)/(2*hp),m=t*(hp-Math.log(Math.tan(m7+n*.5)))/(2*hp);return[y,m]}function eg(e,t){var r=ju(e,2),i=r[0],s=r[1];t*=V6;var u=i/t*(2*hp)-hp,n=2*(Math.atan(Math.exp(hp-s/t*(2*hp)))-m7);return[u*Q4,n*Q4]}function $D(e){var t=e.latitude,r=e.longitude,i=e.zoom,s=e.scale,u=e.highPrecision,n=u===void 0?!1:u;s=s!==void 0?s:_7(i),E1(Number.isFinite(t)&&Number.isFinite(r)&&Number.isFinite(s));var y={},m=V6*s,g=Math.cos(t*Ac),x=m/360,b=x/g,F=m/J4/g;if(y.pixelsPerMeter=[F,-F,F],y.metersPerPixel=[1/F,-1/F,1/F],y.pixelsPerDegree=[x,-b,F],y.degreesPerPixel=[1/x,-1/b,1/F],n){var R=Ac*Math.tan(t*Ac)/g,I=x*R/2,U=m/J4*R,V=U/b*F;y.pixelsPerDegree2=[0,-I,U],y.pixelsPerMeter2=[V,0,V]}return y}function qD(e){var t=e.height,r=e.pitch,i=e.bearing,s=e.altitude,u=e.center,n=u===void 0?null:u,y=cy();return of(y,y,[0,0,-s]),nf(y,y,[1,1,1/t]),i6(y,y,-r*Ac),Hg(y,y,i*Ac),nf(y,y,[1,-1,1]),n&&of(y,y,wv([],n)),y}function KD(e){var t=e.width,r=e.height,i=e.altitude,s=i===void 0?YD:i,u=e.pitch,n=u===void 0?0:u,y=e.nearZMultiplier,m=y===void 0?1:y,g=e.farZMultiplier,x=g===void 0?1:g,b=n*Ac,F=Math.atan(.5/s),R=Math.sin(F)*s/Math.sin(Math.PI/2-b-F),I=Math.cos(Math.PI/2-b)*R+s;return{fov:2*Math.atan(r/2/s),aspect:t/r,focalDistance:s,near:m,far:I*x}}function QD(e){var t=e.width,r=e.height,i=e.pitch,s=e.altitude,u=e.nearZMultiplier,n=e.farZMultiplier,y=KD({width:t,height:r,altitude:s,pitch:i,nearZMultiplier:u,farZMultiplier:n}),m=y.fov,g=y.aspect,x=y.near,b=y.far,F=Uv([],m,g,x,b);return F}function JD(e,t){var r=ju(e,3),i=r[0],s=r[1],u=r[2],n=u===void 0?0:u;return E1(Number.isFinite(i)&&Number.isFinite(s)&&Number.isFinite(n)),Kh(t,[i,s,n,1])}function g7(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=ju(e,3),s=i[0],u=i[1],n=i[2];if(E1(Number.isFinite(s)&&Number.isFinite(u),"invalid pixel coordinate"),Number.isFinite(n)){var y=Kh(t,[s,u,n,1]);return y}var m=Kh(t,[s,u,0,1]),g=Kh(t,[s,u,1,1]),x=m[2],b=g[2],F=x===b?0:((r||0)-x)/(b-x);return Rv([],m,g,F)}var tg=cy(),eO=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width,i=t.height,s=t.viewMatrix,u=s===void 0?tg:s,n=t.projectionMatrix,y=n===void 0?tg:n;h7(this,e),this.width=r||1,this.height=i||1,this.scale=1,this.pixelsPerMeter=1,this.viewMatrix=u,this.projectionMatrix=y;var m=cy();S0(m,m,this.projectionMatrix),S0(m,m,this.viewMatrix),this.viewProjectionMatrix=m;var g=cy();nf(g,g,[this.width/2,-this.height/2,1]),of(g,g,[1,-1,0]),S0(g,g,this.viewProjectionMatrix);var x=o6(cy(),g);if(!x)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=g,this.pixelUnprojectionMatrix=x,this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}return f7(e,[{key:"equals",value:function(r){return r instanceof e?r.width===this.width&&r.height===this.height&&M3(r.projectionMatrix,this.projectionMatrix)&&M3(r.viewMatrix,this.viewMatrix):!1}},{key:"project",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=i.topLeft,u=s===void 0?!0:s,n=this.projectPosition(r),y=JD(n,this.pixelProjectionMatrix),m=ju(y,2),g=m[0],x=m[1],b=u?x:this.height-x;return r.length===2?[g,b]:[g,b,y[2]]}},{key:"unproject",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=i.topLeft,u=s===void 0?!0:s,n=i.targetZ,y=ju(r,3),m=y[0],g=y[1],x=y[2],b=u?g:this.height-g,F=n&&n*this.pixelsPerMeter,R=g7([m,b,x],this.pixelUnprojectionMatrix,F),I=this.unprojectPosition(R),U=ju(I,3),V=U[0],J=U[1],Q=U[2];return Number.isFinite(x)?[V,J,Q]:Number.isFinite(n)?[V,J,n]:[V,J]}},{key:"projectPosition",value:function(r){var i=this.projectFlat(r),s=ju(i,2),u=s[0],n=s[1],y=(r[2]||0)*this.pixelsPerMeter;return[u,n,y]}},{key:"unprojectPosition",value:function(r){var i=this.unprojectFlat(r),s=ju(i,2),u=s[0],n=s[1],y=(r[2]||0)/this.pixelsPerMeter;return[u,n,y]}},{key:"projectFlat",value:function(r){return arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale,r}},{key:"unprojectFlat",value:function(r){return arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale,r}}]),e}();function tO(e){var t=e.width,r=e.height,i=e.bounds,s=e.minExtent,u=s===void 0?0:s,n=e.maxZoom,y=n===void 0?24:n,m=e.padding,g=m===void 0?0:m,x=e.offset,b=x===void 0?[0,0]:x,F=ju(i,2),R=ju(F[0],2),I=R[0],U=R[1],V=ju(F[1],2),J=V[0],Q=V[1];if(Number.isFinite(g)){var te=g;g={top:te,bottom:te,left:te,right:te}}else E1(Number.isFinite(g.top)&&Number.isFinite(g.bottom)&&Number.isFinite(g.left)&&Number.isFinite(g.right));var ne=new Q2({width:t,height:r,longitude:0,latitude:0,zoom:0}),pe=ne.project([I,Q]),Oe=ne.project([J,U]),Ee=[Math.max(Math.abs(Oe[0]-pe[0]),u),Math.max(Math.abs(Oe[1]-pe[1]),u)],He=[t-g.left-g.right-Math.abs(b[0])*2,r-g.top-g.bottom-Math.abs(b[1])*2];E1(He[0]>0&&He[1]>0);var ft=He[0]/Ee[0],Ge=He[1]/Ee[1],Ae=(g.right-g.left)/2/ft,Be=(g.bottom-g.top)/2/Ge,ze=[(Oe[0]+pe[0])/2+Ae,(Oe[1]+pe[1])/2+Be],st=ne.unproject(ze),Vt=ne.zoom+Math.log2(Math.abs(Math.min(ft,Ge)));return{longitude:st[0],latitude:st[1],zoom:Math.min(Vt,y)}}var Q2=function(e){GD(t,e);function t(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=i.width,u=i.height,n=i.latitude,y=n===void 0?0:n,m=i.longitude,g=m===void 0?0:m,x=i.zoom,b=x===void 0?0:x,F=i.pitch,R=F===void 0?0:F,I=i.bearing,U=I===void 0?0:I,V=i.altitude,J=V===void 0?1.5:V,Q=i.nearZMultiplier,te=i.farZMultiplier;h7(this,t),s=s||1,u=u||1;var ne=_7(b);J=Math.max(.75,J);var pe=r2([g,y],ne);pe[2]=0;var Oe=QD({width:s,height:u,pitch:R,altitude:J,nearZMultiplier:Q||1/u,farZMultiplier:te||1.01}),Ee=qD({height:u,center:pe,pitch:R,bearing:U,altitude:J});return r=HD(this,q2(t).call(this,{width:s,height:u,viewMatrix:Ee,projectionMatrix:Oe})),r.latitude=y,r.longitude=g,r.zoom=b,r.pitch=R,r.bearing=U,r.altitude=J,r.scale=ne,r.center=pe,r.pixelsPerMeter=$D(ry(ry(r))).pixelsPerMeter[2],Object.freeze(ry(ry(r))),r}return f7(t,[{key:"projectFlat",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale;return r2(i,s)}},{key:"unprojectFlat",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale;return eg(i,s)}},{key:"getMapCenterByLngLatPosition",value:function(i){var s=i.lngLat,u=i.pos,n=g7(u,this.pixelUnprojectionMatrix),y=r2(s,this.scale),m=gc([],y,Cv([],n)),g=gc([],this.center,m);return eg(g,this.scale)}},{key:"getLocationAtPoint",value:function(i){var s=i.lngLat,u=i.pos;return this.getMapCenterByLngLatPosition({lngLat:s,pos:u})}},{key:"fitBounds",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=this.width,n=this.height,y=tO(Object.assign({width:u,height:n,bounds:i},s)),m=y.longitude,g=y.latitude,x=y.zoom;return new t({width:u,height:n,longitude:m,latitude:g,zoom:x})}}]),t}(eO);class rO{constructor(){H(this,"viewport",new Q2)}syncWithMapCamera(t){const{center:r,zoom:i,pitch:s,bearing:u,viewportHeight:n,viewportWidth:y}=t,m={width:this.viewport.width,height:this.viewport.height,longitude:this.viewport.center[0],latitude:this.viewport.center[1],zoom:this.viewport.zoom,pitch:this.viewport.pitch,bearing:this.viewport.bearing};this.viewport=new Q2(_t(_t({},m),{},{width:y,height:n,longitude:r&&r[0],latitude:r&&r[1],zoom:i,pitch:s,bearing:u}))}getZoom(){return this.viewport.zoom}getZoomScale(){return Math.pow(2,this.getZoom())}getCenter(){return[this.viewport.longitude,this.viewport.latitude]}getProjectionMatrix(){return this.viewport.projectionMatrix}getModelMatrix(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}getViewMatrix(){return this.viewport.viewMatrix}getViewMatrixUncentered(){return this.viewport.viewMatrixUncentered}getViewProjectionMatrix(){return this.viewport.viewProjectionMatrix}getViewProjectionMatrixUncentered(){return this.viewport.viewProjectionMatrix}getFocalDistance(){return 1}projectFlat(t,r){return this.viewport.projectFlat(t,r)}}const oO={light:"mapbox://styles/zcxduo/ck2ypyb1r3q9o1co1766dex29",dark:"mapbox://styles/zcxduo/ck241p6413s0b1cpayzldv7x7",normal:"mapbox://styles/mapbox/streets-v11",blank:{version:8,sources:{},layers:[{id:"background",type:"background",layout:{visibility:"none"}}]}},rg={mapmove:"move",camerachange:"move",zoomchange:"zoom",dragging:"drag"},iO=12;class nO{constructor(t){H(this,"version","DEFAUlTMAP"),H(this,"map",void 0),H(this,"simpleMapCoord",new zD),H(this,"bgColor","rgba(0.0, 0.0, 0.0, 0.0)"),H(this,"config",void 0),H(this,"configService",void 0),H(this,"coordinateSystemService",void 0),H(this,"eventEmitter",void 0),H(this,"markerContainer",void 0),H(this,"cameraChangedCallback",void 0),H(this,"$mapContainer",void 0),H(this,"handleCameraChanged",r=>{const{lat:i,lng:s}=this.map.getCenter();this.emit("mapchange"),this.viewport.syncWithMapCamera({bearing:this.map.getBearing(),center:[s,i],viewportHeight:this.map.transform.height,pitch:this.map.getPitch(),viewportWidth:this.map.transform.width,zoom:this.map.getZoom(),cameraHeight:0}),this.updateCoordinateSystemService(),this.cameraChangedCallback(this.viewport)}),this.config=t.mapConfig,this.configService=t.globalConfigService,this.coordinateSystemService=t.coordinateSystemService,this.eventEmitter=new du.EventEmitter}setBgColor(t){this.bgColor=t}addMarkerContainer(){const t=this.map.getCanvasContainer();this.markerContainer=lu("div","l7-marker-container",t),this.markerContainer.setAttribute("tabindex","-1")}getMarkerContainer(){return this.markerContainer}getOverlayContainer(){}getCanvasOverlays(){}on(t,r){Ub.indexOf(t)!==-1?this.eventEmitter.on(t,r):this.map.on(rg[t]||t,r)}off(t,r){this.map.off(rg[t]||t,r),this.eventEmitter.off(t,r)}getContainer(){return this.map.getContainer()}getMapCanvasContainer(){return this.map.getCanvasContainer()}getSize(){if(this.version==="SIMPLE")return this.simpleMapCoord.getSize();const t=this.map.transform;return[t.width,t.height]}getType(){return"default"}getZoom(){return this.map.getZoom()}setZoom(t){return this.map.setZoom(t)}getCenter(){return this.map.getCenter()}setCenter(t){this.map.setCenter(t)}getPitch(){return this.map.getPitch()}getRotation(){return this.map.getBearing()}getBounds(){return this.map.getBounds().toArray()}getMinZoom(){return this.map.getMinZoom()}getMaxZoom(){return this.map.getMaxZoom()}setRotation(t){this.map.setBearing(t)}zoomIn(t,r){this.map.zoomIn(t,r)}zoomOut(t,r){this.map.zoomOut(t,r)}setPitch(t){return this.map.setPitch(t)}panTo(t){this.map.panTo(t)}panBy(t=0,r=0){this.map.panBy([t,r])}fitBounds(t,r){this.map.fitBounds(t,r)}setMaxZoom(t){this.map.setMaxZoom(t)}setMinZoom(t){this.map.setMinZoom(t)}setMapStatus(t){t.doubleClickZoom===!0&&this.map.doubleClickZoom.enable(),t.doubleClickZoom===!1&&this.map.doubleClickZoom.disable(),t.dragEnable===!1&&this.map.dragPan.disable(),t.dragEnable===!0&&this.map.dragPan.enable(),t.rotateEnable===!1&&this.map.dragRotate.disable(),t.dragEnable===!0&&this.map.dragRotate.enable(),t.keyboardEnable===!1&&this.map.keyboard.disable(),t.keyboardEnable===!0&&this.map.keyboard.enable(),t.zoomEnable===!1&&this.map.scrollZoom.disable(),t.zoomEnable===!0&&this.map.scrollZoom.enable()}setZoomAndCenter(t,r){this.map.flyTo({zoom:t,center:r})}setMapStyle(t){var r;(r=this.map)===null||r===void 0||r.setStyle(this.getMapStyleValue(t))}meterToCoord(t,r){return 1}pixelToLngLat(t){return this.map.unproject(t)}lngLatToPixel(t){return this.map.project(t)}containerToLngLat(t){return this.map.unproject(t)}lngLatToContainer(t){return this.map.project(t)}getMapStyle(){try{var t;const r=(t=this.map.getStyle().sprite)!==null&&t!==void 0?t:"";return/^mapbox:\/\/sprites\/zcxduo\/\w+\/\w+$/.test(r)?r==null?void 0:r.replace(/\/\w+$/,"").replace(/sprites/,"styles"):r}catch{return""}}getMapStyleConfig(){return oO}getMapStyleValue(t){var r;return(r=this.getMapStyleConfig()[t])!==null&&r!==void 0?r:t}destroy(){this.eventEmitter.removeAllListeners(),this.map&&(this.map.remove(),this.$mapContainer=null)}emit(t,...r){this.eventEmitter.emit(t,...r)}once(t,...r){this.eventEmitter.once(t,...r)}getMapContainer(){return this.$mapContainer}exportMap(t){var r;const i=(r=this.map)===null||r===void 0?void 0:r.getCanvas();return t==="jpg"?i==null?void 0:i.toDataURL("image/jpeg"):i==null?void 0:i.toDataURL("image/png")}onCameraChanged(t){this.cameraChangedCallback=t}creatMapContainer(t){let r=t;return typeof t=="string"&&(r=document.getElementById(t)),r}updateView(t){this.emit("mapchange"),this.viewport.syncWithMapCamera({bearing:t.bearing,center:t.center,viewportHeight:t.viewportHeight,pitch:t.pitch,viewportWidth:t.viewportWidth,zoom:t.zoom,cameraHeight:0}),this.updateCoordinateSystemService(),this.cameraChangedCallback(this.viewport)}updateCoordinateSystemService(){const{offsetCoordinate:t=!0}=this.config;this.viewport.getZoom()>iO&&t?this.coordinateSystemService.setCoordinateSystem(df.LNGLAT_OFFSET):this.coordinateSystemService.setCoordinateSystem(df.LNGLAT)}}var v7={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){var r,i,s;function u(n,y){if(!r)r=y;else if(!i)i=y;else{var m="var sharedChunk = {}; ("+r+")(sharedChunk); ("+i+")(sharedChunk);",g={};r(g),s=y(g),typeof window<"u"&&(s.workerUrl=window.URL.createObjectURL(new Blob([m],{type:"text/javascript"})))}}return u(["exports"],function(n){function y(o,a){return o(a={exports:{}},a.exports),a.exports}var m=g;function g(o,a,p,h){this.cx=3*o,this.bx=3*(p-o)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(h-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=o,this.p1y=h,this.p2x=p,this.p2y=h}g.prototype.sampleCurveX=function(o){return((this.ax*o+this.bx)*o+this.cx)*o},g.prototype.sampleCurveY=function(o){return((this.ay*o+this.by)*o+this.cy)*o},g.prototype.sampleCurveDerivativeX=function(o){return(3*this.ax*o+2*this.bx)*o+this.cx},g.prototype.solveCurveX=function(o,a){var p,h,_,v,P;for(a===void 0&&(a=1e-6),_=o,P=0;P<8;P++){if(v=this.sampleCurveX(_)-o,Math.abs(v)<a)return _;var S=this.sampleCurveDerivativeX(_);if(Math.abs(S)<1e-6)break;_-=v/S}if((_=o)<(p=0))return p;if(_>(h=1))return h;for(;p<h;){if(v=this.sampleCurveX(_),Math.abs(v-o)<a)return _;o>v?p=_:h=_,_=.5*(h-p)+p}return _},g.prototype.solve=function(o,a){return this.sampleCurveY(this.solveCurveX(o,a))};var x=b;function b(o,a){this.x=o,this.y=a}b.prototype={clone:function(){return new b(this.x,this.y)},add:function(o){return this.clone()._add(o)},sub:function(o){return this.clone()._sub(o)},multByPoint:function(o){return this.clone()._multByPoint(o)},divByPoint:function(o){return this.clone()._divByPoint(o)},mult:function(o){return this.clone()._mult(o)},div:function(o){return this.clone()._div(o)},rotate:function(o){return this.clone()._rotate(o)},rotateAround:function(o,a){return this.clone()._rotateAround(o,a)},matMult:function(o){return this.clone()._matMult(o)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(o){return this.x===o.x&&this.y===o.y},dist:function(o){return Math.sqrt(this.distSqr(o))},distSqr:function(o){var a=o.x-this.x,p=o.y-this.y;return a*a+p*p},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(o){return Math.atan2(this.y-o.y,this.x-o.x)},angleWith:function(o){return this.angleWithSep(o.x,o.y)},angleWithSep:function(o,a){return Math.atan2(this.x*a-this.y*o,this.x*o+this.y*a)},_matMult:function(o){var a=o[2]*this.x+o[3]*this.y;return this.x=o[0]*this.x+o[1]*this.y,this.y=a,this},_add:function(o){return this.x+=o.x,this.y+=o.y,this},_sub:function(o){return this.x-=o.x,this.y-=o.y,this},_mult:function(o){return this.x*=o,this.y*=o,this},_div:function(o){return this.x/=o,this.y/=o,this},_multByPoint:function(o){return this.x*=o.x,this.y*=o.y,this},_divByPoint:function(o){return this.x/=o.x,this.y/=o.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var o=this.y;return this.y=this.x,this.x=-o,this},_rotate:function(o){var a=Math.cos(o),p=Math.sin(o),h=p*this.x+a*this.y;return this.x=a*this.x-p*this.y,this.y=h,this},_rotateAround:function(o,a){var p=Math.cos(o),h=Math.sin(o),_=a.y+h*(this.x-a.x)+p*(this.y-a.y);return this.x=a.x+p*(this.x-a.x)-h*(this.y-a.y),this.y=_,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},b.convert=function(o){return o instanceof b?o:Array.isArray(o)?new b(o[0],o[1]):o};var F=typeof self<"u"?self:{},R=Math.pow(2,53)-1;function I(o,a,p,h){var _=new m(o,a,p,h);return function(v){return _.solve(v)}}var U=I(.25,.1,.25,1);function V(o,a,p){return Math.min(p,Math.max(a,o))}function J(o,a,p){var h=p-a,_=((o-a)%h+h)%h+a;return _===a?p:_}function Q(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];for(var h=0,_=a;h<_.length;h+=1){var v=_[h];for(var P in v)o[P]=v[P]}return o}var te=1;function ne(){return te++}function pe(){return function o(a){return a?(a^16*Math.random()>>a/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,o)}()}function Oe(o){return!!o&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o)}function Ee(o,a){o.forEach(function(p){a[p]&&(a[p]=a[p].bind(a))})}function He(o,a){return o.indexOf(a,o.length-a.length)!==-1}function ft(o,a,p){var h={};for(var _ in o)h[_]=a.call(p||this,o[_],_,o);return h}function Ge(o,a,p){var h={};for(var _ in o)a.call(p||this,o[_],_,o)&&(h[_]=o[_]);return h}function Ae(o){return Array.isArray(o)?o.map(Ae):typeof o=="object"&&o?ft(o,Ae):o}var Be={};function ze(o){Be[o]||(typeof console<"u"&&console.warn(o),Be[o]=!0)}function st(o,a,p){return(p.y-o.y)*(a.x-o.x)>(a.y-o.y)*(p.x-o.x)}function Vt(o){for(var a=0,p=0,h=o.length,_=h-1,v=void 0,P=void 0;p<h;_=p++)a+=((P=o[_]).x-(v=o[p]).x)*(v.y+P.y);return a}function ir(){return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope}function Fr(o){var a={};if(o.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,function(h,_,v,P){var S=v||P;return a[_]=!S||S.toLowerCase(),""}),a["max-age"]){var p=parseInt(a["max-age"],10);isNaN(p)?delete a["max-age"]:a["max-age"]=p}return a}var Yr=null;function mr(o){if(Yr==null){var a=o.navigator?o.navigator.userAgent:null;Yr=!!o.safari||!(!a||!(/\b(iPad|iPhone|iPod)\b/.test(a)||a.match("Safari")&&!a.match("Chrome")))}return Yr}function Er(o){try{var a=F[o];return a.setItem("_mapbox_test_",1),a.removeItem("_mapbox_test_"),!0}catch{return!1}}var qr,Jr,_o,So,oo=F.performance&&F.performance.now?F.performance.now.bind(F.performance):Date.now.bind(Date),Wi=F.requestAnimationFrame||F.mozRequestAnimationFrame||F.webkitRequestAnimationFrame||F.msRequestAnimationFrame,bo=F.cancelAnimationFrame||F.mozCancelAnimationFrame||F.webkitCancelAnimationFrame||F.msCancelAnimationFrame,Ni={now:oo,frame:function(o){var a=Wi(o);return{cancel:function(){return bo(a)}}},getImageData:function(o,a){a===void 0&&(a=0);var p=F.document.createElement("canvas"),h=p.getContext("2d");if(!h)throw new Error("failed to create canvas 2d context");return p.width=o.width,p.height=o.height,h.drawImage(o,0,0,o.width,o.height),h.getImageData(-a,-a,o.width+2*a,o.height+2*a)},resolveURL:function(o){return qr||(qr=F.document.createElement("a")),qr.href=o,qr.href},hardwareConcurrency:F.navigator&&F.navigator.hardwareConcurrency||4,get devicePixelRatio(){return F.devicePixelRatio},get prefersReducedMotion(){return!!F.matchMedia&&(Jr==null&&(Jr=F.matchMedia("(prefers-reduced-motion: reduce)")),Jr.matches)}},$e={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},Yt={supported:!1,testSupport:function(o){!Sr&&So&&(Ft?xr(o):_o=o)}},Sr=!1,Ft=!1;function xr(o){var a=o.createTexture();o.bindTexture(o.TEXTURE_2D,a);try{if(o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,So),o.isContextLost())return;Yt.supported=!0}catch{}o.deleteTexture(a),Sr=!0}F.document&&((So=F.document.createElement("img")).onload=function(){_o&&xr(_o),_o=null,Ft=!0},So.onerror=function(){Sr=!0,_o=null},So.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var io="01",go=function(o,a){this._transformRequestFn=o,this._customAccessToken=a,this._createSkuToken()};function to(o){return o.indexOf("mapbox:")===0}go.prototype._createSkuToken=function(){var o=function(){for(var a="",p=0;p<10;p++)a+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",io,a].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=o.token,this._skuTokenExpiresAt=o.tokenExpiresAt},go.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},go.prototype.transformRequest=function(o,a){return this._transformRequestFn&&this._transformRequestFn(o,a)||{url:o}},go.prototype.normalizeStyleURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/styles/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeGlyphsURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/fonts/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeSourceURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/v4/"+p.authority+".json",p.params.push("secure"),this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeSpriteURL=function(o,a,p,h){var _=Qo(o);return to(o)?(_.path="/styles/v1"+_.path+"/sprite"+a+p,this._makeAPIURL(_,this._customAccessToken||h)):(_.path+=""+a+p,ti(_))},go.prototype.normalizeTileURL=function(o,a){if(this._isSkuTokenExpired()&&this._createSkuToken(),o&&!to(o))return o;var p=Qo(o);p.path=p.path.replace(/(\.(png|jpg)\d*)(?=$)/,(Ni.devicePixelRatio>=2||a===512?"@2x":"")+(Yt.supported?".webp":"$1")),p.path=p.path.replace(/^.+\/v4\//,"/"),p.path="/v4"+p.path;var h=this._customAccessToken||function(_){for(var v=0,P=_;v<P.length;v+=1){var S=P[v].match(/^access_token=(.*)$/);if(S)return S[1]}return null}(p.params)||$e.ACCESS_TOKEN;return $e.REQUIRE_ACCESS_TOKEN&&h&&this._skuToken&&p.params.push("sku="+this._skuToken),this._makeAPIURL(p,h)},go.prototype.canonicalizeTileURL=function(o,a){var p=Qo(o);if(!p.path.match(/(^\/v4\/)/)||!p.path.match(/\.[\w]+$/))return o;var h="mapbox://tiles/";h+=p.path.replace("/v4/","");var _=p.params;return a&&(_=_.filter(function(v){return!v.match(/^access_token=/)})),_.length&&(h+="?"+_.join("&")),h},go.prototype.canonicalizeTileset=function(o,a){for(var p=!!a&&to(a),h=[],_=0,v=o.tiles||[];_<v.length;_+=1){var P=v[_];Ao(P)?h.push(this.canonicalizeTileURL(P,p)):h.push(P)}return h},go.prototype._makeAPIURL=function(o,a){var p="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",h=Qo($e.API_URL);if(o.protocol=h.protocol,o.authority=h.authority,o.protocol==="http"){var _=o.params.indexOf("secure");_>=0&&o.params.splice(_,1)}if(h.path!=="/"&&(o.path=""+h.path+o.path),!$e.REQUIRE_ACCESS_TOKEN)return ti(o);if(!(a=a||$e.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+p);if(a[0]==="s")throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+p);return o.params=o.params.filter(function(v){return v.indexOf("access_token")===-1}),o.params.push("access_token="+a),ti(o)};var Kr=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function Ao(o){return Kr.test(o)}var $i=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Qo(o){var a=o.match($i);if(!a)throw new Error("Unable to parse URL object");return{protocol:a[1],authority:a[2],path:a[3]||"/",params:a[4]?a[4].split("&"):[]}}function ti(o){var a=o.params.length?"?"+o.params.join("&"):"";return o.protocol+"://"+o.authority+o.path+a}function Pn(o){if(!o)return null;var a=o.split(".");if(!a||a.length!==3)return null;try{return JSON.parse(decodeURIComponent(F.atob(a[1]).split("").map(function(p){return"%"+("00"+p.charCodeAt(0).toString(16)).slice(-2)}).join("")))}catch{return null}}var se=function(o){this.type=o,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null};se.prototype.getStorageKey=function(o){var a,p=Pn($e.ACCESS_TOKEN);return a=p&&p.u?F.btoa(encodeURIComponent(p.u).replace(/%([0-9A-F]{2})/g,function(h,_){return String.fromCharCode(+("0x"+_))})):$e.ACCESS_TOKEN||"",o?"mapbox.eventData."+o+":"+a:"mapbox.eventData:"+a},se.prototype.fetchEventData=function(){var o=Er("localStorage"),a=this.getStorageKey(),p=this.getStorageKey("uuid");if(o)try{var h=F.localStorage.getItem(a);h&&(this.eventData=JSON.parse(h));var _=F.localStorage.getItem(p);_&&(this.anonId=_)}catch{ze("Unable to read from LocalStorage")}},se.prototype.saveEventData=function(){var o=Er("localStorage"),a=this.getStorageKey(),p=this.getStorageKey("uuid");if(o)try{F.localStorage.setItem(p,this.anonId),Object.keys(this.eventData).length>=1&&F.localStorage.setItem(a,JSON.stringify(this.eventData))}catch{ze("Unable to write to LocalStorage")}},se.prototype.processRequests=function(o){},se.prototype.postEvent=function(o,a,p,h){var _=this;if($e.EVENTS_URL){var v=Qo($e.EVENTS_URL);v.params.push("access_token="+(h||$e.ACCESS_TOKEN||""));var P={event:this.type,created:new Date(o).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.13.3",skuId:io,userId:this.anonId},S=a?Q(P,a):P,C={url:ti(v),headers:{"Content-Type":"text/plain"},body:JSON.stringify([S])};this.pendingRequest=Go(C,function(M){_.pendingRequest=null,p(M),_.saveEventData(),_.processRequests(h)})}},se.prototype.queueRequest=function(o,a){this.queue.push(o),this.processRequests(a)};var bn,ja,An=function(o){function a(){o.call(this,"map.load"),this.success={},this.skuToken=""}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.postMapLoadEvent=function(p,h,_,v){this.skuToken=_;var P=!(!v&&!$e.ACCESS_TOKEN),S=Array.isArray(p)&&p.some(function(C){return to(C)||Ao(C)});$e.EVENTS_URL&&P&&S&&this.queueRequest({id:h,timestamp:Date.now()},v)},a.prototype.processRequests=function(p){var h=this;if(!this.pendingRequest&&this.queue.length!==0){var _=this.queue.shift(),v=_.id,P=_.timestamp;v&&this.success[v]||(this.anonId||this.fetchEventData(),Oe(this.anonId)||(this.anonId=pe()),this.postEvent(P,{skuToken:this.skuToken},function(S){S||v&&(h.success[v]=!0)},p))}},a}(se),ss=new(function(o){function a(p){o.call(this,"appUserTurnstile"),this._customAccessToken=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.postTurnstileEvent=function(p,h){$e.EVENTS_URL&&$e.ACCESS_TOKEN&&Array.isArray(p)&&p.some(function(_){return to(_)||Ao(_)})&&this.queueRequest(Date.now(),h)},a.prototype.processRequests=function(p){var h=this;if(!this.pendingRequest&&this.queue.length!==0){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var _=Pn($e.ACCESS_TOKEN),v=_?_.u:$e.ACCESS_TOKEN,P=v!==this.eventData.tokenU;Oe(this.anonId)||(this.anonId=pe(),P=!0);var S=this.queue.shift();if(this.eventData.lastSuccess){var C=new Date(this.eventData.lastSuccess),M=new Date(S),O=(S-this.eventData.lastSuccess)/864e5;P=P||O>=1||O<-1||C.getDate()!==M.getDate()}else P=!0;if(!P)return this.processRequests();this.postEvent(S,{"enabled.telemetry":!1},function(B){B||(h.eventData.lastSuccess=S,h.eventData.tokenU=v)},p)}},a}(se)),si=ss.postTurnstileEvent.bind(ss),Fn=new An,pa=Fn.postMapLoadEvent.bind(Fn),Tn=500,vs=50;function zi(){F.caches&&!bn&&(bn=F.caches.open("mapbox-tiles"))}function us(o){var a=o.indexOf("?");return a<0?o:o.slice(0,a)}var xa,Hs=1/0;function Zu(){return xa==null&&(xa=F.OffscreenCanvas&&new F.OffscreenCanvas(1,1).getContext("2d")&&typeof F.createImageBitmap=="function"),xa}var Gs={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(Gs);var vp=function(o){function a(p,h,_){h===401&&Ao(_)&&(p+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),o.call(this,p),this.status=h,this.url=_,this.name=this.constructor.name,this.message=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},a}(Error),js=ir()?function(){return self.worker&&self.worker.referrer}:function(){return(F.location.protocol==="blob:"?F.parent:F).location.href},Ma,Na,Es=function(o,a){if(!(/^file:/.test(p=o.url)||/^file:/.test(js())&&!/^\w+:/.test(p))){if(F.fetch&&F.Request&&F.AbortController&&F.Request.prototype.hasOwnProperty("signal"))return function(h,_){var v,P=new F.AbortController,S=new F.Request(h.url,{method:h.method||"GET",body:h.body,credentials:h.credentials,headers:h.headers,referrer:js(),signal:P.signal}),C=!1,M=!1,O=(v=S.url).indexOf("sku=")>0&&Ao(v);h.type==="json"&&S.headers.set("Accept","application/json");var B=function(Y,ce,he){if(!M){if(Y&&Y.message!=="SecurityError"&&ze(Y),ce&&he)return j(ce);var Re=Date.now();F.fetch(S).then(function(be){if(be.ok){var Ve=O?be.clone():null;return j(be,Ve,Re)}return _(new vp(be.statusText,be.status,h.url))}).catch(function(be){be.code!==20&&_(new Error(be.message))})}},j=function(Y,ce,he){(h.type==="arrayBuffer"?Y.arrayBuffer():h.type==="json"?Y.json():Y.text()).then(function(Re){M||(ce&&he&&function(be,Ve,Ze){if(zi(),bn){var it={status:Ve.status,statusText:Ve.statusText,headers:new F.Headers};Ve.headers.forEach(function(Et,kt){return it.headers.set(kt,Et)});var ut=Fr(Ve.headers.get("Cache-Control")||"");ut["no-store"]||(ut["max-age"]&&it.headers.set("Expires",new Date(Ze+1e3*ut["max-age"]).toUTCString()),new Date(it.headers.get("Expires")).getTime()-Ze<42e4||function(Et,kt){if(ja===void 0)try{new Response(new ReadableStream),ja=!0}catch{ja=!1}ja?kt(Et.body):Et.blob().then(kt)}(Ve,function(Et){var kt=new F.Response(Et,it);zi(),bn&&bn.then(function(qt){return qt.put(us(be.url),kt)}).catch(function(qt){return ze(qt.message)})}))}}(S,ce,he),C=!0,_(null,Re,Y.headers.get("Cache-Control"),Y.headers.get("Expires")))}).catch(function(Re){M||_(new Error(Re.message))})};return O?function(Y,ce){if(zi(),!bn)return ce(null);var he=us(Y.url);bn.then(function(Re){Re.match(he).then(function(be){var Ve=function(Ze){if(!Ze)return!1;var it=new Date(Ze.headers.get("Expires")||0),ut=Fr(Ze.headers.get("Cache-Control")||"");return it>Date.now()&&!ut["no-cache"]}(be);Re.delete(he),Ve&&Re.put(he,be.clone()),ce(null,be,Ve)}).catch(ce)}).catch(ce)}(S,B):B(null,null),{cancel:function(){M=!0,C||P.abort()}}}(o,a);if(ir()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",o,a,void 0,!0)}var p;return function(h,_){var v=new F.XMLHttpRequest;for(var P in v.open(h.method||"GET",h.url,!0),h.type==="arrayBuffer"&&(v.responseType="arraybuffer"),h.headers)v.setRequestHeader(P,h.headers[P]);return h.type==="json"&&(v.responseType="text",v.setRequestHeader("Accept","application/json")),v.withCredentials=h.credentials==="include",v.onerror=function(){_(new Error(v.statusText))},v.onload=function(){if((v.status>=200&&v.status<300||v.status===0)&&v.response!==null){var S=v.response;if(h.type==="json")try{S=JSON.parse(v.response)}catch(C){return _(C)}_(null,S,v.getResponseHeader("Cache-Control"),v.getResponseHeader("Expires"))}else _(new vp(v.statusText,v.status,h.url))},v.send(h.body),{cancel:function(){return v.abort()}}}(o,a)},Yu=function(o,a){return Es(Q(o,{type:"arrayBuffer"}),a)},Go=function(o,a){return Es(Q(o,{method:"POST"}),a)},k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";Ma=[],Na=0;var G=function(o,a){if(Yt.supported&&(o.headers||(o.headers={}),o.headers.accept="image/webp,*/*"),Na>=$e.MAX_PARALLEL_IMAGE_REQUESTS){var p={requestParameters:o,callback:a,cancelled:!1,cancel:function(){this.cancelled=!0}};return Ma.push(p),p}Na++;var h=!1,_=function(){if(!h)for(h=!0,Na--;Ma.length&&Na<$e.MAX_PARALLEL_IMAGE_REQUESTS;){var P=Ma.shift();P.cancelled||(P.cancel=G(P.requestParameters,P.callback).cancel)}},v=Yu(o,function(P,S,C,M){_(),P?a(P):S&&(Zu()?function(O,B){var j=new F.Blob([new Uint8Array(O)],{type:"image/png"});F.createImageBitmap(j).then(function(Y){B(null,Y)}).catch(function(Y){B(new Error("Could not load image because of "+Y.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))})}(S,a):function(O,B,j,Y){var ce=new F.Image,he=F.URL;ce.onload=function(){B(null,ce),he.revokeObjectURL(ce.src),ce.onload=null,F.requestAnimationFrame(function(){ce.src=k})},ce.onerror=function(){return B(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var Re=new F.Blob([new Uint8Array(O)],{type:"image/png"});ce.cacheControl=j,ce.expires=Y,ce.src=O.byteLength?he.createObjectURL(Re):k}(S,a,C,M))});return{cancel:function(){v.cancel(),_()}}};function W(o,a,p){p[o]&&p[o].indexOf(a)!==-1||(p[o]=p[o]||[],p[o].push(a))}function oe(o,a,p){if(p&&p[o]){var h=p[o].indexOf(a);h!==-1&&p[o].splice(h,1)}}var ye=function(o,a){a===void 0&&(a={}),Q(this,a),this.type=o},Ie=function(o){function a(p,h){h===void 0&&(h={}),o.call(this,"error",Q({error:p},h))}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(ye),Le=function(){};Le.prototype.on=function(o,a){return this._listeners=this._listeners||{},W(o,a,this._listeners),this},Le.prototype.off=function(o,a){return oe(o,a,this._listeners),oe(o,a,this._oneTimeListeners),this},Le.prototype.once=function(o,a){return this._oneTimeListeners=this._oneTimeListeners||{},W(o,a,this._oneTimeListeners),this},Le.prototype.fire=function(o,a){typeof o=="string"&&(o=new ye(o,a||{}));var p=o.type;if(this.listens(p)){o.target=this;for(var h=0,_=this._listeners&&this._listeners[p]?this._listeners[p].slice():[];h<_.length;h+=1)_[h].call(this,o);for(var v=0,P=this._oneTimeListeners&&this._oneTimeListeners[p]?this._oneTimeListeners[p].slice():[];v<P.length;v+=1){var S=P[v];oe(p,S,this._oneTimeListeners),S.call(this,o)}var C=this._eventedParent;C&&(Q(o,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),C.fire(o))}else o instanceof Ie&&console.error(o.error);return this},Le.prototype.listens=function(o){return this._listeners&&this._listeners[o]&&this._listeners[o].length>0||this._oneTimeListeners&&this._oneTimeListeners[o]&&this._oneTimeListeners[o].length>0||this._eventedParent&&this._eventedParent.listens(o)},Le.prototype.setEventedParent=function(o,a){return this._eventedParent=o,this._eventedParentData=a,this};var q={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},ge=function(o,a,p,h){this.message=(o?o+": ":"")+p,h&&(this.identifier=h),a!=null&&a.__line__&&(this.line=a.__line__)};function We(o){var a=o.value;return a?[new ge(o.key,a,"constants have been deprecated as of v8")]:[]}function ht(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];for(var h=0,_=a;h<_.length;h+=1){var v=_[h];for(var P in v)o[P]=v[P]}return o}function Nt(o){return o instanceof Number||o instanceof String||o instanceof Boolean?o.valueOf():o}function lt(o){if(Array.isArray(o))return o.map(lt);if(o instanceof Object&&!(o instanceof Number||o instanceof String||o instanceof Boolean)){var a={};for(var p in o)a[p]=lt(o[p]);return a}return Nt(o)}var wt=function(o){function a(p,h){o.call(this,h),this.message=h,this.key=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(Error),_r=function(o,a){a===void 0&&(a=[]),this.parent=o,this.bindings={};for(var p=0,h=a;p<h.length;p+=1){var _=h[p];this.bindings[_[0]]=_[1]}};_r.prototype.concat=function(o){return new _r(this,o)},_r.prototype.get=function(o){if(this.bindings[o])return this.bindings[o];if(this.parent)return this.parent.get(o);throw new Error(o+" not found in scope.")},_r.prototype.has=function(o){return!!this.bindings[o]||!!this.parent&&this.parent.has(o)};var yr={kind:"null"},dt={kind:"number"},or={kind:"string"},Wt={kind:"boolean"},Zt={kind:"color"},no={kind:"object"},er={kind:"value"},Fo={kind:"collator"},Jo={kind:"formatted"},vo={kind:"resolvedImage"};function Mo(o,a){return{kind:"array",itemType:o,N:a}}function ao(o){if(o.kind==="array"){var a=ao(o.itemType);return typeof o.N=="number"?"array<"+a+", "+o.N+">":o.itemType.kind==="value"?"array":"array<"+a+">"}return o.kind}var Vi=[yr,dt,or,Wt,Zt,Jo,no,Mo(er),vo];function wo(o,a){if(a.kind==="error")return null;if(o.kind==="array"){if(a.kind==="array"&&(a.N===0&&a.itemType.kind==="value"||!wo(o.itemType,a.itemType))&&(typeof o.N!="number"||o.N===a.N))return null}else{if(o.kind===a.kind)return null;if(o.kind==="value"){for(var p=0,h=Vi;p<h.length;p+=1)if(!wo(h[p],a))return null}}return"Expected "+ao(o)+" but found "+ao(a)+" instead."}function ei(o,a){return a.some(function(p){return p.kind===o.kind})}function ko(o,a){return a.some(function(p){return p==="null"?o===null:p==="array"?Array.isArray(o):p==="object"?o&&!Array.isArray(o)&&typeof o=="object":p===typeof o})}var so=y(function(o,a){var p={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function h(S){return(S=Math.round(S))<0?0:S>255?255:S}function _(S){return h(S[S.length-1]==="%"?parseFloat(S)/100*255:parseInt(S))}function v(S){return(C=S[S.length-1]==="%"?parseFloat(S)/100:parseFloat(S))<0?0:C>1?1:C;var C}function P(S,C,M){return M<0?M+=1:M>1&&(M-=1),6*M<1?S+(C-S)*M*6:2*M<1?C:3*M<2?S+(C-S)*(2/3-M)*6:S}try{a.parseCSSColor=function(S){var C,M=S.replace(/ /g,"").toLowerCase();if(M in p)return p[M].slice();if(M[0]==="#")return M.length===4?(C=parseInt(M.substr(1),16))>=0&&C<=4095?[(3840&C)>>4|(3840&C)>>8,240&C|(240&C)>>4,15&C|(15&C)<<4,1]:null:M.length===7&&(C=parseInt(M.substr(1),16))>=0&&C<=16777215?[(16711680&C)>>16,(65280&C)>>8,255&C,1]:null;var O=M.indexOf("("),B=M.indexOf(")");if(O!==-1&&B+1===M.length){var j=M.substr(0,O),Y=M.substr(O+1,B-(O+1)).split(","),ce=1;switch(j){case"rgba":if(Y.length!==4)return null;ce=v(Y.pop());case"rgb":return Y.length!==3?null:[_(Y[0]),_(Y[1]),_(Y[2]),ce];case"hsla":if(Y.length!==4)return null;ce=v(Y.pop());case"hsl":if(Y.length!==3)return null;var he=(parseFloat(Y[0])%360+360)%360/360,Re=v(Y[1]),be=v(Y[2]),Ve=be<=.5?be*(Re+1):be+Re-be*Re,Ze=2*be-Ve;return[h(255*P(Ze,Ve,he+1/3)),h(255*P(Ze,Ve,he)),h(255*P(Ze,Ve,he-1/3)),ce];default:return null}}return null}}catch{}}).parseCSSColor,Eo=function(o,a,p,h){h===void 0&&(h=1),this.r=o,this.g=a,this.b=p,this.a=h};Eo.parse=function(o){if(o){if(o instanceof Eo)return o;if(typeof o=="string"){var a=so(o);if(a)return new Eo(a[0]/255*a[3],a[1]/255*a[3],a[2]/255*a[3],a[3])}}},Eo.prototype.toString=function(){var o=this.toArray(),a=o[1],p=o[2],h=o[3];return"rgba("+Math.round(o[0])+","+Math.round(a)+","+Math.round(p)+","+h+")"},Eo.prototype.toArray=function(){var o=this.a;return o===0?[0,0,0,0]:[255*this.r/o,255*this.g/o,255*this.b/o,o]},Eo.black=new Eo(0,0,0,1),Eo.white=new Eo(1,1,1,1),Eo.transparent=new Eo(0,0,0,0),Eo.red=new Eo(1,0,0,1);var Ln=function(o,a,p){this.sensitivity=o?a?"variant":"case":a?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};Ln.prototype.compare=function(o,a){return this.collator.compare(o,a)},Ln.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var yu=function(o,a,p,h,_){this.text=o,this.image=a,this.scale=p,this.fontStack=h,this.textColor=_},Di=function(o){this.sections=o};Di.fromString=function(o){return new Di([new yu(o,null,null,null,null)])},Di.prototype.isEmpty=function(){return this.sections.length===0||!this.sections.some(function(o){return o.text.length!==0||o.image&&o.image.name.length!==0})},Di.factory=function(o){return o instanceof Di?o:Di.fromString(o)},Di.prototype.toString=function(){return this.sections.length===0?"":this.sections.map(function(o){return o.text}).join("")},Di.prototype.serialize=function(){for(var o=["format"],a=0,p=this.sections;a<p.length;a+=1){var h=p[a];if(h.image)o.push(["image",h.image.name]);else{o.push(h.text);var _={};h.fontStack&&(_["text-font"]=["literal",h.fontStack.split(",")]),h.scale&&(_["font-scale"]=h.scale),h.textColor&&(_["text-color"]=["rgba"].concat(h.textColor.toArray())),o.push(_)}}return o};var gi=function(o){this.name=o.name,this.available=o.available};function hu(o,a,p,h){return typeof o=="number"&&o>=0&&o<=255&&typeof a=="number"&&a>=0&&a<=255&&typeof p=="number"&&p>=0&&p<=255?h===void 0||typeof h=="number"&&h>=0&&h<=1?null:"Invalid rgba value ["+[o,a,p,h].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+(typeof h=="number"?[o,a,p,h]:[o,a,p]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function Wa(o){if(o===null||typeof o=="string"||typeof o=="boolean"||typeof o=="number"||o instanceof Eo||o instanceof Ln||o instanceof Di||o instanceof gi)return!0;if(Array.isArray(o)){for(var a=0,p=o;a<p.length;a+=1)if(!Wa(p[a]))return!1;return!0}if(typeof o=="object"){for(var h in o)if(!Wa(o[h]))return!1;return!0}return!1}function hi(o){if(o===null)return yr;if(typeof o=="string")return or;if(typeof o=="boolean")return Wt;if(typeof o=="number")return dt;if(o instanceof Eo)return Zt;if(o instanceof Ln)return Fo;if(o instanceof Di)return Jo;if(o instanceof gi)return vo;if(Array.isArray(o)){for(var a,p=o.length,h=0,_=o;h<_.length;h+=1){var v=hi(_[h]);if(a){if(a===v)continue;a=er;break}a=v}return Mo(a||er,p)}return no}function Ws(o){var a=typeof o;return o===null?"":a==="string"||a==="number"||a==="boolean"?String(o):o instanceof Eo||o instanceof Di||o instanceof gi?o.toString():JSON.stringify(o)}gi.prototype.toString=function(){return this.name},gi.fromString=function(o){return o?new gi({name:o,available:!1}):null},gi.prototype.serialize=function(){return["image",this.name]};var ln=function(o,a){this.type=o,this.value=a};ln.parse=function(o,a){if(o.length!==2)return a.error("'literal' expression requires exactly one argument, but found "+(o.length-1)+" instead.");if(!Wa(o[1]))return a.error("invalid value");var p=o[1],h=hi(p),_=a.expectedType;return h.kind!=="array"||h.N!==0||!_||_.kind!=="array"||typeof _.N=="number"&&_.N!==0||(h=_),new ln(h,p)},ln.prototype.evaluate=function(){return this.value},ln.prototype.eachChild=function(){},ln.prototype.outputDefined=function(){return!0},ln.prototype.serialize=function(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof Eo?["rgba"].concat(this.value.toArray()):this.value instanceof Di?this.value.serialize():this.value};var fi=function(o){this.name="ExpressionEvaluationError",this.message=o};fi.prototype.toJSON=function(){return this.message};var Hi={string:or,number:dt,boolean:Wt,object:no},ui=function(o,a){this.type=o,this.args=a};ui.parse=function(o,a){if(o.length<2)return a.error("Expected at least one argument.");var p,h=1,_=o[0];if(_==="array"){var v,P;if(o.length>2){var S=o[1];if(typeof S!="string"||!(S in Hi)||S==="object")return a.error('The item type argument of "array" must be one of string, number, boolean',1);v=Hi[S],h++}else v=er;if(o.length>3){if(o[2]!==null&&(typeof o[2]!="number"||o[2]<0||o[2]!==Math.floor(o[2])))return a.error('The length argument to "array" must be a positive integer literal',2);P=o[2],h++}p=Mo(v,P)}else p=Hi[_];for(var C=[];h<o.length;h++){var M=a.parse(o[h],h,er);if(!M)return null;C.push(M)}return new ui(p,C)},ui.prototype.evaluate=function(o){for(var a=0;a<this.args.length;a++){var p=this.args[a].evaluate(o);if(!wo(this.type,hi(p)))return p;if(a===this.args.length-1)throw new fi("Expected value to be of type "+ao(this.type)+", but found "+ao(hi(p))+" instead.")}return null},ui.prototype.eachChild=function(o){this.args.forEach(o)},ui.prototype.outputDefined=function(){return this.args.every(function(o){return o.outputDefined()})},ui.prototype.serialize=function(){var o=this.type,a=[o.kind];if(o.kind==="array"){var p=o.itemType;if(p.kind==="string"||p.kind==="number"||p.kind==="boolean"){a.push(p.kind);var h=o.N;(typeof h=="number"||this.args.length>1)&&a.push(h)}}return a.concat(this.args.map(function(_){return _.serialize()}))};var Jn=function(o){this.type=Jo,this.sections=o};Jn.parse=function(o,a){if(o.length<2)return a.error("Expected at least one argument.");var p=o[1];if(!Array.isArray(p)&&typeof p=="object")return a.error("First argument must be an image or text section.");for(var h=[],_=!1,v=1;v<=o.length-1;++v){var P=o[v];if(_&&typeof P=="object"&&!Array.isArray(P)){_=!1;var S=null;if(P["font-scale"]&&!(S=a.parse(P["font-scale"],1,dt)))return null;var C=null;if(P["text-font"]&&!(C=a.parse(P["text-font"],1,Mo(or))))return null;var M=null;if(P["text-color"]&&!(M=a.parse(P["text-color"],1,Zt)))return null;var O=h[h.length-1];O.scale=S,O.font=C,O.textColor=M}else{var B=a.parse(o[v],1,er);if(!B)return null;var j=B.type.kind;if(j!=="string"&&j!=="value"&&j!=="null"&&j!=="resolvedImage")return a.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");_=!0,h.push({content:B,scale:null,font:null,textColor:null})}}return new Jn(h)},Jn.prototype.evaluate=function(o){return new Di(this.sections.map(function(a){var p=a.content.evaluate(o);return hi(p)===vo?new yu("",p,null,null,null):new yu(Ws(p),null,a.scale?a.scale.evaluate(o):null,a.font?a.font.evaluate(o).join(","):null,a.textColor?a.textColor.evaluate(o):null)}))},Jn.prototype.eachChild=function(o){for(var a=0,p=this.sections;a<p.length;a+=1){var h=p[a];o(h.content),h.scale&&o(h.scale),h.font&&o(h.font),h.textColor&&o(h.textColor)}},Jn.prototype.outputDefined=function(){return!1},Jn.prototype.serialize=function(){for(var o=["format"],a=0,p=this.sections;a<p.length;a+=1){var h=p[a];o.push(h.content.serialize());var _={};h.scale&&(_["font-scale"]=h.scale.serialize()),h.font&&(_["text-font"]=h.font.serialize()),h.textColor&&(_["text-color"]=h.textColor.serialize()),o.push(_)}return o};var jn=function(o){this.type=vo,this.input=o};jn.parse=function(o,a){if(o.length!==2)return a.error("Expected two arguments.");var p=a.parse(o[1],1,or);return p?new jn(p):a.error("No image name provided.")},jn.prototype.evaluate=function(o){var a=this.input.evaluate(o),p=gi.fromString(a);return p&&o.availableImages&&(p.available=o.availableImages.indexOf(a)>-1),p},jn.prototype.eachChild=function(o){o(this.input)},jn.prototype.outputDefined=function(){return!1},jn.prototype.serialize=function(){return["image",this.input.serialize()]};var Kp={"to-boolean":Wt,"to-color":Zt,"to-number":dt,"to-string":or},Pa=function(o,a){this.type=o,this.args=a};Pa.parse=function(o,a){if(o.length<2)return a.error("Expected at least one argument.");var p=o[0];if((p==="to-boolean"||p==="to-string")&&o.length!==2)return a.error("Expected one argument.");for(var h=Kp[p],_=[],v=1;v<o.length;v++){var P=a.parse(o[v],v,er);if(!P)return null;_.push(P)}return new Pa(h,_)},Pa.prototype.evaluate=function(o){if(this.type.kind==="boolean")return!!this.args[0].evaluate(o);if(this.type.kind==="color"){for(var a,p,h=0,_=this.args;h<_.length;h+=1){if(p=null,(a=_[h].evaluate(o))instanceof Eo)return a;if(typeof a=="string"){var v=o.parseColor(a);if(v)return v}else if(Array.isArray(a)&&!(p=a.length<3||a.length>4?"Invalid rbga value "+JSON.stringify(a)+": expected an array containing either three or four numeric values.":hu(a[0],a[1],a[2],a[3])))return new Eo(a[0]/255,a[1]/255,a[2]/255,a[3])}throw new fi(p||"Could not parse color from value '"+(typeof a=="string"?a:String(JSON.stringify(a)))+"'")}if(this.type.kind==="number"){for(var P=null,S=0,C=this.args;S<C.length;S+=1){if((P=C[S].evaluate(o))===null)return 0;var M=Number(P);if(!isNaN(M))return M}throw new fi("Could not convert "+JSON.stringify(P)+" to number.")}return this.type.kind==="formatted"?Di.fromString(Ws(this.args[0].evaluate(o))):this.type.kind==="resolvedImage"?gi.fromString(Ws(this.args[0].evaluate(o))):Ws(this.args[0].evaluate(o))},Pa.prototype.eachChild=function(o){this.args.forEach(o)},Pa.prototype.outputDefined=function(){return this.args.every(function(o){return o.outputDefined()})},Pa.prototype.serialize=function(){if(this.type.kind==="formatted")return new Jn([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new jn(this.args[0]).serialize();var o=["to-"+this.type.kind];return this.eachChild(function(a){o.push(a.serialize())}),o};var Rc=["Unknown","Point","LineString","Polygon"],X=function(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null};X.prototype.id=function(){return this.feature&&"id"in this.feature?this.feature.id:null},X.prototype.geometryType=function(){return this.feature?typeof this.feature.type=="number"?Rc[this.feature.type]:this.feature.type:null},X.prototype.geometry=function(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null},X.prototype.canonicalID=function(){return this.canonical},X.prototype.properties=function(){return this.feature&&this.feature.properties||{}},X.prototype.parseColor=function(o){var a=this._parseColorCache[o];return a||(a=this._parseColorCache[o]=Eo.parse(o)),a};var re=function(o,a,p,h){this.name=o,this.type=a,this._evaluate=p,this.args=h};re.prototype.evaluate=function(o){return this._evaluate(o,this.args)},re.prototype.eachChild=function(o){this.args.forEach(o)},re.prototype.outputDefined=function(){return!1},re.prototype.serialize=function(){return[this.name].concat(this.args.map(function(o){return o.serialize()}))},re.parse=function(o,a){var p,h=o[0],_=re.definitions[h];if(!_)return a.error('Unknown expression "'+h+'". If you wanted a literal array, use ["literal", [...]].',0);for(var v=Array.isArray(_)?_[0]:_.type,P=Array.isArray(_)?[[_[1],_[2]]]:_.overloads,S=P.filter(function(Br){var dr=Br[0];return!Array.isArray(dr)||dr.length===o.length-1}),C=null,M=0,O=S;M<O.length;M+=1){var B=O[M],j=B[0],Y=B[1];C=new Xs(a.registry,a.path,null,a.scope);for(var ce=[],he=!1,Re=1;Re<o.length;Re++){var be=o[Re],Ve=Array.isArray(j)?j[Re-1]:j.type,Ze=C.parse(be,1+ce.length,Ve);if(!Ze){he=!0;break}ce.push(Ze)}if(!he)if(Array.isArray(j)&&j.length!==ce.length)C.error("Expected "+j.length+" arguments, but found "+ce.length+" instead.");else{for(var it=0;it<ce.length;it++){var ut=Array.isArray(j)?j[it]:j.type,Et=ce[it];C.concat(it+1).checkSubtype(ut,Et.type)}if(C.errors.length===0)return new re(h,v,Y,ce)}}if(S.length===1)(p=a.errors).push.apply(p,C.errors);else{for(var kt=(S.length?S:P).map(function(Br){var dr;return dr=Br[0],Array.isArray(dr)?"("+dr.map(ao).join(", ")+")":"("+ao(dr.type)+"...)"}).join(" | "),qt=[],Ir=1;Ir<o.length;Ir++){var pr=a.parse(o[Ir],1+qt.length);if(!pr)return null;qt.push(ao(pr.type))}a.error("Expected arguments of type "+kt+", but found ("+qt.join(", ")+") instead.")}return null},re.register=function(o,a){for(var p in re.definitions=a,a)o[p]=re};var we=function(o,a,p){this.type=Fo,this.locale=p,this.caseSensitive=o,this.diacriticSensitive=a};function rt(o,a){o[0]=Math.min(o[0],a[0]),o[1]=Math.min(o[1],a[1]),o[2]=Math.max(o[2],a[0]),o[3]=Math.max(o[3],a[1])}function zt(o,a){return!(o[0]<=a[0]||o[2]>=a[2]||o[1]<=a[1]||o[3]>=a[3])}function wr(o,a){var p=(180+o[0])/360,h=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+o[1]*Math.PI/360)))/360,_=Math.pow(2,a.z);return[Math.round(p*_*8192),Math.round(h*_*8192)]}function Oo(o,a,p){return a[1]>o[1]!=p[1]>o[1]&&o[0]<(p[0]-a[0])*(o[1]-a[1])/(p[1]-a[1])+a[0]}function Xi(o,a){for(var p,h,_,v,P,S,C,M=!1,O=0,B=a.length;O<B;O++)for(var j=a[O],Y=0,ce=j.length;Y<ce-1;Y++){if((v=(p=o)[0]-(h=j[Y])[0])*(C=p[1]-(_=j[Y+1])[1])-(S=p[0]-_[0])*(P=p[1]-h[1])==0&&v*S<=0&&P*C<=0)return!1;Oo(o,j[Y],j[Y+1])&&(M=!M)}return M}function Sn(o,a){for(var p=0;p<a.length;p++)if(Xi(o,a[p]))return!0;return!1}function cn(o,a,p,h){var _=h[0]-p[0],v=h[1]-p[1],P=(o[0]-p[0])*v-_*(o[1]-p[1]),S=(a[0]-p[0])*v-_*(a[1]-p[1]);return P>0&&S<0||P<0&&S>0}function Xa(o,a,p){for(var h=0,_=p;h<_.length;h+=1)for(var v=_[h],P=0;P<v.length-1;++P)if((B=[(O=v[P+1])[0]-(M=v[P])[0],O[1]-M[1]])[0]*(j=[(C=a)[0]-(S=o)[0],C[1]-S[1]])[1]-B[1]*j[0]!=0&&cn(S,C,M,O)&&cn(M,O,S,C))return!0;var S,C,M,O,B,j;return!1}function T1(o,a){for(var p=0;p<o.length;++p)if(!Xi(o[p],a))return!1;for(var h=0;h<o.length-1;++h)if(Xa(o[h],o[h+1],a))return!1;return!0}function S1(o,a){for(var p=0;p<a.length;p++)if(T1(o,a[p]))return!0;return!1}function Ep(o,a,p){for(var h=[],_=0;_<o.length;_++){for(var v=[],P=0;P<o[_].length;P++){var S=wr(o[_][P],p);rt(a,S),v.push(S)}h.push(v)}return h}function Cc(o,a,p){for(var h=[],_=0;_<o.length;_++){var v=Ep(o[_],a,p);h.push(v)}return h}function Qp(o,a,p,h){if(o[0]<p[0]||o[0]>p[2]){var _=.5*h,v=o[0]-p[0]>_?-h:p[0]-o[0]>_?h:0;v===0&&(v=o[0]-p[2]>_?-h:p[2]-o[0]>_?h:0),o[0]+=v}rt(a,o)}function w1(o,a,p,h){for(var _=8192*Math.pow(2,h.z),v=[8192*h.x,8192*h.y],P=[],S=0,C=o;S<C.length;S+=1)for(var M=0,O=C[S];M<O.length;M+=1){var B=O[M],j=[B.x+v[0],B.y+v[1]];Qp(j,a,p,_),P.push(j)}return P}function Dl(o,a,p,h){for(var _,v=8192*Math.pow(2,h.z),P=[8192*h.x,8192*h.y],S=[],C=0,M=o;C<M.length;C+=1){for(var O=[],B=0,j=M[C];B<j.length;B+=1){var Y=j[B],ce=[Y.x+P[0],Y.y+P[1]];rt(a,ce),O.push(ce)}S.push(O)}if(a[2]-a[0]<=v/2){(_=a)[0]=_[1]=1/0,_[2]=_[3]=-1/0;for(var he=0,Re=S;he<Re.length;he+=1)for(var be=0,Ve=Re[he];be<Ve.length;be+=1)Qp(Ve[be],a,p,v)}return S}we.parse=function(o,a){if(o.length!==2)return a.error("Expected one argument.");var p=o[1];if(typeof p!="object"||Array.isArray(p))return a.error("Collator options argument must be an object.");var h=a.parse(p["case-sensitive"]!==void 0&&p["case-sensitive"],1,Wt);if(!h)return null;var _=a.parse(p["diacritic-sensitive"]!==void 0&&p["diacritic-sensitive"],1,Wt);if(!_)return null;var v=null;return p.locale&&!(v=a.parse(p.locale,1,or))?null:new we(h,_,v)},we.prototype.evaluate=function(o){return new Ln(this.caseSensitive.evaluate(o),this.diacriticSensitive.evaluate(o),this.locale?this.locale.evaluate(o):null)},we.prototype.eachChild=function(o){o(this.caseSensitive),o(this.diacriticSensitive),this.locale&&o(this.locale)},we.prototype.outputDefined=function(){return!1},we.prototype.serialize=function(){var o={};return o["case-sensitive"]=this.caseSensitive.serialize(),o["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(o.locale=this.locale.serialize()),["collator",o]};var Bn=function(o,a){this.type=Wt,this.geojson=o,this.geometries=a};function fu(o){if(o instanceof re&&(o.name==="get"&&o.args.length===1||o.name==="feature-state"||o.name==="has"&&o.args.length===1||o.name==="properties"||o.name==="geometry-type"||o.name==="id"||/^filter-/.test(o.name))||o instanceof Bn)return!1;var a=!0;return o.eachChild(function(p){a&&!fu(p)&&(a=!1)}),a}function mu(o){if(o instanceof re&&o.name==="feature-state")return!1;var a=!0;return o.eachChild(function(p){a&&!mu(p)&&(a=!1)}),a}function xs(o,a){if(o instanceof re&&a.indexOf(o.name)>=0)return!1;var p=!0;return o.eachChild(function(h){p&&!xs(h,a)&&(p=!1)}),p}Bn.parse=function(o,a){if(o.length!==2)return a.error("'within' expression requires exactly one argument, but found "+(o.length-1)+" instead.");if(Wa(o[1])){var p=o[1];if(p.type==="FeatureCollection")for(var h=0;h<p.features.length;++h){var _=p.features[h].geometry.type;if(_==="Polygon"||_==="MultiPolygon")return new Bn(p,p.features[h].geometry)}else if(p.type==="Feature"){var v=p.geometry.type;if(v==="Polygon"||v==="MultiPolygon")return new Bn(p,p.geometry)}else if(p.type==="Polygon"||p.type==="MultiPolygon")return new Bn(p,p)}return a.error("'within' expression requires valid geojson object that contains polygon geometry type.")},Bn.prototype.evaluate=function(o){if(o.geometry()!=null&&o.canonicalID()!=null){if(o.geometryType()==="Point")return function(a,p){var h=[1/0,1/0,-1/0,-1/0],_=[1/0,1/0,-1/0,-1/0],v=a.canonicalID();if(p.type==="Polygon"){var P=Ep(p.coordinates,_,v),S=w1(a.geometry(),h,_,v);if(!zt(h,_))return!1;for(var C=0,M=S;C<M.length;C+=1)if(!Xi(M[C],P))return!1}if(p.type==="MultiPolygon"){var O=Cc(p.coordinates,_,v),B=w1(a.geometry(),h,_,v);if(!zt(h,_))return!1;for(var j=0,Y=B;j<Y.length;j+=1)if(!Sn(Y[j],O))return!1}return!0}(o,this.geometries);if(o.geometryType()==="LineString")return function(a,p){var h=[1/0,1/0,-1/0,-1/0],_=[1/0,1/0,-1/0,-1/0],v=a.canonicalID();if(p.type==="Polygon"){var P=Ep(p.coordinates,_,v),S=Dl(a.geometry(),h,_,v);if(!zt(h,_))return!1;for(var C=0,M=S;C<M.length;C+=1)if(!T1(M[C],P))return!1}if(p.type==="MultiPolygon"){var O=Cc(p.coordinates,_,v),B=Dl(a.geometry(),h,_,v);if(!zt(h,_))return!1;for(var j=0,Y=B;j<Y.length;j+=1)if(!S1(Y[j],O))return!1}return!0}(o,this.geometries)}return!1},Bn.prototype.eachChild=function(){},Bn.prototype.outputDefined=function(){return!0},Bn.prototype.serialize=function(){return["within",this.geojson]};var Ps=function(o,a){this.type=a.type,this.name=o,this.boundExpression=a};Ps.parse=function(o,a){if(o.length!==2||typeof o[1]!="string")return a.error("'var' expression requires exactly one string literal argument.");var p=o[1];return a.scope.has(p)?new Ps(p,a.scope.get(p)):a.error('Unknown variable "'+p+'". Make sure "'+p+'" has been bound in an enclosing "let" expression before using it.',1)},Ps.prototype.evaluate=function(o){return this.boundExpression.evaluate(o)},Ps.prototype.eachChild=function(){},Ps.prototype.outputDefined=function(){return!1},Ps.prototype.serialize=function(){return["var",this.name]};var Xs=function(o,a,p,h,_){a===void 0&&(a=[]),h===void 0&&(h=new _r),_===void 0&&(_=[]),this.registry=o,this.path=a,this.key=a.map(function(v){return"["+v+"]"}).join(""),this.scope=h,this.errors=_,this.expectedType=p};function Jp(o,a){for(var p,h=o.length-1,_=0,v=h,P=0;_<=v;)if((p=o[P=Math.floor((_+v)/2)])<=a){if(P===h||a<o[P+1])return P;_=P+1}else{if(!(p>a))throw new fi("Input is not a number.");v=P-1}return 0}Xs.prototype.parse=function(o,a,p,h,_){return _===void 0&&(_={}),a?this.concat(a,p,h)._parse(o,_):this._parse(o,_)},Xs.prototype._parse=function(o,a){function p(M,O,B){return B==="assert"?new ui(O,[M]):B==="coerce"?new Pa(O,[M]):M}if(o!==null&&typeof o!="string"&&typeof o!="boolean"&&typeof o!="number"||(o=["literal",o]),Array.isArray(o)){if(o.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var h=o[0];if(typeof h!="string")return this.error("Expression name must be a string, but found "+typeof h+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var _=this.registry[h];if(_){var v=_.parse(o,this);if(!v)return null;if(this.expectedType){var P=this.expectedType,S=v.type;if(P.kind!=="string"&&P.kind!=="number"&&P.kind!=="boolean"&&P.kind!=="object"&&P.kind!=="array"||S.kind!=="value")if(P.kind!=="color"&&P.kind!=="formatted"&&P.kind!=="resolvedImage"||S.kind!=="value"&&S.kind!=="string"){if(this.checkSubtype(P,S))return null}else v=p(v,P,a.typeAnnotation||"coerce");else v=p(v,P,a.typeAnnotation||"assert")}if(!(v instanceof ln)&&v.type.kind!=="resolvedImage"&&function M(O){if(O instanceof Ps)return M(O.boundExpression);if(O instanceof re&&O.name==="error"||O instanceof we||O instanceof Bn)return!1;var B=O instanceof Pa||O instanceof ui,j=!0;return O.eachChild(function(Y){j=B?j&&M(Y):j&&Y instanceof ln}),!!j&&fu(O)&&xs(O,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(v)){var C=new X;try{v=new ln(v.type,v.evaluate(C))}catch(M){return this.error(M.message),null}}return v}return this.error('Unknown expression "'+h+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(o===void 0?"'undefined' value invalid. Use null instead.":typeof o=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof o+" instead.")},Xs.prototype.concat=function(o,a,p){var h=typeof o=="number"?this.path.concat(o):this.path,_=p?this.scope.concat(p):this.scope;return new Xs(this.registry,h,a||null,_,this.errors)},Xs.prototype.error=function(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];var h=""+this.key+a.map(function(_){return"["+_+"]"}).join("");this.errors.push(new wt(h,o))},Xs.prototype.checkSubtype=function(o,a){var p=wo(o,a);return p&&this.error(p),p};var ba=function(o,a,p){this.type=o,this.input=a,this.labels=[],this.outputs=[];for(var h=0,_=p;h<_.length;h+=1){var v=_[h],P=v[1];this.labels.push(v[0]),this.outputs.push(P)}};function Oi(o,a,p){return o*(1-p)+a*p}ba.parse=function(o,a){if(o.length-1<4)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if((o.length-1)%2!=0)return a.error("Expected an even number of arguments.");var p=a.parse(o[1],1,dt);if(!p)return null;var h=[],_=null;a.expectedType&&a.expectedType.kind!=="value"&&(_=a.expectedType);for(var v=1;v<o.length;v+=2){var P=v===1?-1/0:o[v],S=o[v+1],C=v,M=v+1;if(typeof P!="number")return a.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',C);if(h.length&&h[h.length-1][0]>=P)return a.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',C);var O=a.parse(S,M,_);if(!O)return null;_=_||O.type,h.push([P,O])}return new ba(_,p,h)},ba.prototype.evaluate=function(o){var a=this.labels,p=this.outputs;if(a.length===1)return p[0].evaluate(o);var h=this.input.evaluate(o);if(h<=a[0])return p[0].evaluate(o);var _=a.length;return h>=a[_-1]?p[_-1].evaluate(o):p[Jp(a,h)].evaluate(o)},ba.prototype.eachChild=function(o){o(this.input);for(var a=0,p=this.outputs;a<p.length;a+=1)o(p[a])},ba.prototype.outputDefined=function(){return this.outputs.every(function(o){return o.outputDefined()})},ba.prototype.serialize=function(){for(var o=["step",this.input.serialize()],a=0;a<this.labels.length;a++)a>0&&o.push(this.labels[a]),o.push(this.outputs[a].serialize());return o};var _u=Object.freeze({__proto__:null,number:Oi,color:function(o,a,p){return new Eo(Oi(o.r,a.r,p),Oi(o.g,a.g,p),Oi(o.b,a.b,p),Oi(o.a,a.a,p))},array:function(o,a,p){return o.map(function(h,_){return Oi(h,a[_],p)})}}),Zs=6/29*3*(6/29),Ol=Math.PI/180,R1=180/Math.PI;function Ll(o){return o>.008856451679035631?Math.pow(o,1/3):o/Zs+4/29}function Ic(o){return o>6/29?o*o*o:Zs*(o-4/29)}function Mc(o){return 255*(o<=.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055)}function Nc(o){return(o/=255)<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4)}function C1(o){var a=Nc(o.r),p=Nc(o.g),h=Nc(o.b),_=Ll((.4124564*a+.3575761*p+.1804375*h)/.95047),v=Ll((.2126729*a+.7151522*p+.072175*h)/1);return{l:116*v-16,a:500*(_-v),b:200*(v-Ll((.0193339*a+.119192*p+.9503041*h)/1.08883)),alpha:o.a}}function I1(o){var a=(o.l+16)/116,p=isNaN(o.a)?a:a+o.a/500,h=isNaN(o.b)?a:a-o.b/200;return a=1*Ic(a),p=.95047*Ic(p),h=1.08883*Ic(h),new Eo(Mc(3.2404542*p-1.5371385*a-.4985314*h),Mc(-.969266*p+1.8760108*a+.041556*h),Mc(.0556434*p-.2040259*a+1.0572252*h),o.alpha)}function $0(o,a,p){var h=a-o;return o+p*(h>180||h<-180?h-360*Math.round(h/360):h)}var el={forward:C1,reverse:I1,interpolate:function(o,a,p){return{l:Oi(o.l,a.l,p),a:Oi(o.a,a.a,p),b:Oi(o.b,a.b,p),alpha:Oi(o.alpha,a.alpha,p)}}},bs={forward:function(o){var a=C1(o),p=a.l,h=a.a,_=a.b,v=Math.atan2(_,h)*R1;return{h:v<0?v+360:v,c:Math.sqrt(h*h+_*_),l:p,alpha:o.a}},reverse:function(o){var a=o.h*Ol,p=o.c;return I1({l:o.l,a:Math.cos(a)*p,b:Math.sin(a)*p,alpha:o.alpha})},interpolate:function(o,a,p){return{h:$0(o.h,a.h,p),c:Oi(o.c,a.c,p),l:Oi(o.l,a.l,p),alpha:Oi(o.alpha,a.alpha,p)}}},M1=Object.freeze({__proto__:null,lab:el,hcl:bs}),Un=function(o,a,p,h,_){this.type=o,this.operator=a,this.interpolation=p,this.input=h,this.labels=[],this.outputs=[];for(var v=0,P=_;v<P.length;v+=1){var S=P[v],C=S[1];this.labels.push(S[0]),this.outputs.push(C)}};function $u(o,a,p,h){var _=h-p,v=o-p;return _===0?0:a===1?v/_:(Math.pow(a,v)-1)/(Math.pow(a,_)-1)}Un.interpolationFactor=function(o,a,p,h){var _=0;if(o.name==="exponential")_=$u(a,o.base,p,h);else if(o.name==="linear")_=$u(a,1,p,h);else if(o.name==="cubic-bezier"){var v=o.controlPoints;_=new m(v[0],v[1],v[2],v[3]).solve($u(a,1,p,h))}return _},Un.parse=function(o,a){var p=o[0],h=o[1],_=o[2],v=o.slice(3);if(!Array.isArray(h)||h.length===0)return a.error("Expected an interpolation type expression.",1);if(h[0]==="linear")h={name:"linear"};else if(h[0]==="exponential"){var P=h[1];if(typeof P!="number")return a.error("Exponential interpolation requires a numeric base.",1,1);h={name:"exponential",base:P}}else{if(h[0]!=="cubic-bezier")return a.error("Unknown interpolation type "+String(h[0]),1,0);var S=h.slice(1);if(S.length!==4||S.some(function(Re){return typeof Re!="number"||Re<0||Re>1}))return a.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);h={name:"cubic-bezier",controlPoints:S}}if(o.length-1<4)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if((o.length-1)%2!=0)return a.error("Expected an even number of arguments.");if(!(_=a.parse(_,2,dt)))return null;var C=[],M=null;p==="interpolate-hcl"||p==="interpolate-lab"?M=Zt:a.expectedType&&a.expectedType.kind!=="value"&&(M=a.expectedType);for(var O=0;O<v.length;O+=2){var B=v[O],j=v[O+1],Y=O+3,ce=O+4;if(typeof B!="number")return a.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',Y);if(C.length&&C[C.length-1][0]>=B)return a.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',Y);var he=a.parse(j,ce,M);if(!he)return null;M=M||he.type,C.push([B,he])}return M.kind==="number"||M.kind==="color"||M.kind==="array"&&M.itemType.kind==="number"&&typeof M.N=="number"?new Un(M,p,h,_,C):a.error("Type "+ao(M)+" is not interpolatable.")},Un.prototype.evaluate=function(o){var a=this.labels,p=this.outputs;if(a.length===1)return p[0].evaluate(o);var h=this.input.evaluate(o);if(h<=a[0])return p[0].evaluate(o);var _=a.length;if(h>=a[_-1])return p[_-1].evaluate(o);var v=Jp(a,h),P=Un.interpolationFactor(this.interpolation,h,a[v],a[v+1]),S=p[v].evaluate(o),C=p[v+1].evaluate(o);return this.operator==="interpolate"?_u[this.type.kind.toLowerCase()](S,C,P):this.operator==="interpolate-hcl"?bs.reverse(bs.interpolate(bs.forward(S),bs.forward(C),P)):el.reverse(el.interpolate(el.forward(S),el.forward(C),P))},Un.prototype.eachChild=function(o){o(this.input);for(var a=0,p=this.outputs;a<p.length;a+=1)o(p[a])},Un.prototype.outputDefined=function(){return this.outputs.every(function(o){return o.outputDefined()})},Un.prototype.serialize=function(){var o;o=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);for(var a=[this.operator,o,this.input.serialize()],p=0;p<this.labels.length;p++)a.push(this.labels[p],this.outputs[p].serialize());return a};var gu=function(o,a){this.type=o,this.args=a};gu.parse=function(o,a){if(o.length<2)return a.error("Expectected at least one argument.");var p=null,h=a.expectedType;h&&h.kind!=="value"&&(p=h);for(var _=[],v=0,P=o.slice(1);v<P.length;v+=1){var S=a.parse(P[v],1+_.length,p,void 0,{typeAnnotation:"omit"});if(!S)return null;p=p||S.type,_.push(S)}var C=h&&_.some(function(M){return wo(h,M.type)});return new gu(C?er:p,_)},gu.prototype.evaluate=function(o){for(var a,p=null,h=0,_=0,v=this.args;_<v.length&&(h++,(p=v[_].evaluate(o))&&p instanceof gi&&!p.available&&(a||(a=p.name),p=null,h===this.args.length&&(p=a)),p===null);_+=1);return p},gu.prototype.eachChild=function(o){this.args.forEach(o)},gu.prototype.outputDefined=function(){return this.args.every(function(o){return o.outputDefined()})},gu.prototype.serialize=function(){var o=["coalesce"];return this.eachChild(function(a){o.push(a.serialize())}),o};var Da=function(o,a){this.type=a.type,this.bindings=[].concat(o),this.result=a};Da.prototype.evaluate=function(o){return this.result.evaluate(o)},Da.prototype.eachChild=function(o){for(var a=0,p=this.bindings;a<p.length;a+=1)o(p[a][1]);o(this.result)},Da.parse=function(o,a){if(o.length<4)return a.error("Expected at least 3 arguments, but found "+(o.length-1)+" instead.");for(var p=[],h=1;h<o.length-1;h+=2){var _=o[h];if(typeof _!="string")return a.error("Expected string, but found "+typeof _+" instead.",h);if(/[^a-zA-Z0-9_]/.test(_))return a.error("Variable names must contain only alphanumeric characters or '_'.",h);var v=a.parse(o[h+1],h+1);if(!v)return null;p.push([_,v])}var P=a.parse(o[o.length-1],o.length-1,a.expectedType,p);return P?new Da(p,P):null},Da.prototype.outputDefined=function(){return this.result.outputDefined()},Da.prototype.serialize=function(){for(var o=["let"],a=0,p=this.bindings;a<p.length;a+=1){var h=p[a];o.push(h[0],h[1].serialize())}return o.push(this.result.serialize()),o};var vu=function(o,a,p){this.type=o,this.index=a,this.input=p};vu.parse=function(o,a){if(o.length!==3)return a.error("Expected 2 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,dt),h=a.parse(o[2],2,Mo(a.expectedType||er));return p&&h?new vu(h.type.itemType,p,h):null},vu.prototype.evaluate=function(o){var a=this.index.evaluate(o),p=this.input.evaluate(o);if(a<0)throw new fi("Array index out of bounds: "+a+" < 0.");if(a>=p.length)throw new fi("Array index out of bounds: "+a+" > "+(p.length-1)+".");if(a!==Math.floor(a))throw new fi("Array index must be an integer, but found "+a+" instead.");return p[a]},vu.prototype.eachChild=function(o){o(this.index),o(this.input)},vu.prototype.outputDefined=function(){return!1},vu.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var Za=function(o,a){this.type=Wt,this.needle=o,this.haystack=a};Za.parse=function(o,a){if(o.length!==3)return a.error("Expected 2 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,er);return p&&h?ei(p.type,[Wt,or,dt,yr,er])?new Za(p,h):a.error("Expected first argument to be of type boolean, string, number or null, but found "+ao(p.type)+" instead"):null},Za.prototype.evaluate=function(o){var a=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!p)return!1;if(!ko(a,["boolean","string","number","null"]))throw new fi("Expected first argument to be of type boolean, string, number or null, but found "+ao(hi(a))+" instead.");if(!ko(p,["string","array"]))throw new fi("Expected second argument to be of type array or string, but found "+ao(hi(p))+" instead.");return p.indexOf(a)>=0},Za.prototype.eachChild=function(o){o(this.needle),o(this.haystack)},Za.prototype.outputDefined=function(){return!0},Za.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ys=function(o,a,p){this.type=dt,this.needle=o,this.haystack=a,this.fromIndex=p};Ys.parse=function(o,a){if(o.length<=2||o.length>=5)return a.error("Expected 3 or 4 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,er);if(!p||!h)return null;if(!ei(p.type,[Wt,or,dt,yr,er]))return a.error("Expected first argument to be of type boolean, string, number or null, but found "+ao(p.type)+" instead");if(o.length===4){var _=a.parse(o[3],3,dt);return _?new Ys(p,h,_):null}return new Ys(p,h)},Ys.prototype.evaluate=function(o){var a=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!ko(a,["boolean","string","number","null"]))throw new fi("Expected first argument to be of type boolean, string, number or null, but found "+ao(hi(a))+" instead.");if(!ko(p,["string","array"]))throw new fi("Expected second argument to be of type array or string, but found "+ao(hi(p))+" instead.");if(this.fromIndex){var h=this.fromIndex.evaluate(o);return p.indexOf(a,h)}return p.indexOf(a)},Ys.prototype.eachChild=function(o){o(this.needle),o(this.haystack),this.fromIndex&&o(this.fromIndex)},Ys.prototype.outputDefined=function(){return!1},Ys.prototype.serialize=function(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var o=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),o]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Oa=function(o,a,p,h,_,v){this.inputType=o,this.type=a,this.input=p,this.cases=h,this.outputs=_,this.otherwise=v};Oa.parse=function(o,a){if(o.length<5)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if(o.length%2!=1)return a.error("Expected an even number of arguments.");var p,h;a.expectedType&&a.expectedType.kind!=="value"&&(h=a.expectedType);for(var _={},v=[],P=2;P<o.length-1;P+=2){var S=o[P],C=o[P+1];Array.isArray(S)||(S=[S]);var M=a.concat(P);if(S.length===0)return M.error("Expected at least one branch label.");for(var O=0,B=S;O<B.length;O+=1){var j=B[O];if(typeof j!="number"&&typeof j!="string")return M.error("Branch labels must be numbers or strings.");if(typeof j=="number"&&Math.abs(j)>Number.MAX_SAFE_INTEGER)return M.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if(typeof j=="number"&&Math.floor(j)!==j)return M.error("Numeric branch labels must be integer values.");if(p){if(M.checkSubtype(p,hi(j)))return null}else p=hi(j);if(_[String(j)]!==void 0)return M.error("Branch labels must be unique.");_[String(j)]=v.length}var Y=a.parse(C,P,h);if(!Y)return null;h=h||Y.type,v.push(Y)}var ce=a.parse(o[1],1,er);if(!ce)return null;var he=a.parse(o[o.length-1],o.length-1,h);return he?ce.type.kind!=="value"&&a.concat(1).checkSubtype(p,ce.type)?null:new Oa(p,h,ce,_,v,he):null},Oa.prototype.evaluate=function(o){var a=this.input.evaluate(o);return(hi(a)===this.inputType&&this.outputs[this.cases[a]]||this.otherwise).evaluate(o)},Oa.prototype.eachChild=function(o){o(this.input),this.outputs.forEach(o),o(this.otherwise)},Oa.prototype.outputDefined=function(){return this.outputs.every(function(o){return o.outputDefined()})&&this.otherwise.outputDefined()},Oa.prototype.serialize=function(){for(var o=this,a=["match",this.input.serialize()],p=[],h={},_=0,v=Object.keys(this.cases).sort();_<v.length;_+=1){var P=v[_];(B=h[this.cases[P]])===void 0?(h[this.cases[P]]=p.length,p.push([this.cases[P],[P]])):p[B][1].push(P)}for(var S=function(Y){return o.inputType.kind==="number"?Number(Y):Y},C=0,M=p;C<M.length;C+=1){var O=M[C],B=O[0],j=O[1];a.push(j.length===1?S(j[0]):j.map(S)),a.push(this.outputs[outputIndex$1].serialize())}return a.push(this.otherwise.serialize()),a};var $s=function(o,a,p){this.type=o,this.branches=a,this.otherwise=p};$s.parse=function(o,a){if(o.length<4)return a.error("Expected at least 3 arguments, but found only "+(o.length-1)+".");if(o.length%2!=0)return a.error("Expected an odd number of arguments.");var p;a.expectedType&&a.expectedType.kind!=="value"&&(p=a.expectedType);for(var h=[],_=1;_<o.length-1;_+=2){var v=a.parse(o[_],_,Wt);if(!v)return null;var P=a.parse(o[_+1],_+1,p);if(!P)return null;h.push([v,P]),p=p||P.type}var S=a.parse(o[o.length-1],o.length-1,p);return S?new $s(p,h,S):null},$s.prototype.evaluate=function(o){for(var a=0,p=this.branches;a<p.length;a+=1){var h=p[a],_=h[1];if(h[0].evaluate(o))return _.evaluate(o)}return this.otherwise.evaluate(o)},$s.prototype.eachChild=function(o){for(var a=0,p=this.branches;a<p.length;a+=1){var h=p[a],_=h[1];o(h[0]),o(_)}o(this.otherwise)},$s.prototype.outputDefined=function(){return this.branches.every(function(o){return o[1].outputDefined()})&&this.otherwise.outputDefined()},$s.prototype.serialize=function(){var o=["case"];return this.eachChild(function(a){o.push(a.serialize())}),o};var Eu=function(o,a,p,h){this.type=o,this.input=a,this.beginIndex=p,this.endIndex=h};function N1(o,a){return o==="=="||o==="!="?a.kind==="boolean"||a.kind==="string"||a.kind==="number"||a.kind==="null"||a.kind==="value":a.kind==="string"||a.kind==="number"||a.kind==="value"}function D1(o,a,p,h){return h.compare(a,p)===0}function ri(o,a,p){var h=o!=="=="&&o!=="!=";return function(){function _(v,P,S){this.type=Wt,this.lhs=v,this.rhs=P,this.collator=S,this.hasUntypedArgument=v.type.kind==="value"||P.type.kind==="value"}return _.parse=function(v,P){if(v.length!==3&&v.length!==4)return P.error("Expected two or three arguments.");var S=v[0],C=P.parse(v[1],1,er);if(!C)return null;if(!N1(S,C.type))return P.concat(1).error('"'+S+`" comparisons are not supported for type '`+ao(C.type)+"'.");var M=P.parse(v[2],2,er);if(!M)return null;if(!N1(S,M.type))return P.concat(2).error('"'+S+`" comparisons are not supported for type '`+ao(M.type)+"'.");if(C.type.kind!==M.type.kind&&C.type.kind!=="value"&&M.type.kind!=="value")return P.error("Cannot compare types '"+ao(C.type)+"' and '"+ao(M.type)+"'.");h&&(C.type.kind==="value"&&M.type.kind!=="value"?C=new ui(M.type,[C]):C.type.kind!=="value"&&M.type.kind==="value"&&(M=new ui(C.type,[M])));var O=null;if(v.length===4){if(C.type.kind!=="string"&&M.type.kind!=="string"&&C.type.kind!=="value"&&M.type.kind!=="value")return P.error("Cannot use collator to compare non-string types.");if(!(O=P.parse(v[3],3,Fo)))return null}return new _(C,M,O)},_.prototype.evaluate=function(v){var P=this.lhs.evaluate(v),S=this.rhs.evaluate(v);if(h&&this.hasUntypedArgument){var C=hi(P),M=hi(S);if(C.kind!==M.kind||C.kind!=="string"&&C.kind!=="number")throw new fi('Expected arguments for "'+o+'" to be (string, string) or (number, number), but found ('+C.kind+", "+M.kind+") instead.")}if(this.collator&&!h&&this.hasUntypedArgument){var O=hi(P),B=hi(S);if(O.kind!=="string"||B.kind!=="string")return a(v,P,S)}return this.collator?p(v,P,S,this.collator.evaluate(v)):a(v,P,S)},_.prototype.eachChild=function(v){v(this.lhs),v(this.rhs),this.collator&&v(this.collator)},_.prototype.outputDefined=function(){return!0},_.prototype.serialize=function(){var v=[o];return this.eachChild(function(P){v.push(P.serialize())}),v},_}()}Eu.parse=function(o,a){if(o.length<=2||o.length>=5)return a.error("Expected 3 or 4 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,dt);if(!p||!h)return null;if(!ei(p.type,[Mo(er),or,er]))return a.error("Expected first argument to be of type array or string, but found "+ao(p.type)+" instead");if(o.length===4){var _=a.parse(o[3],3,dt);return _?new Eu(p.type,p,h,_):null}return new Eu(p.type,p,h)},Eu.prototype.evaluate=function(o){var a=this.input.evaluate(o),p=this.beginIndex.evaluate(o);if(!ko(a,["string","array"]))throw new fi("Expected first argument to be of type array or string, but found "+ao(hi(a))+" instead.");if(this.endIndex){var h=this.endIndex.evaluate(o);return a.slice(p,h)}return a.slice(p)},Eu.prototype.eachChild=function(o){o(this.input),o(this.beginIndex),this.endIndex&&o(this.endIndex)},Eu.prototype.outputDefined=function(){return!1},Eu.prototype.serialize=function(){if(this.endIndex!=null&&this.endIndex!==void 0){var o=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),o]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var q0=ri("==",function(o,a,p){return a===p},D1),Bl=ri("!=",function(o,a,p){return a!==p},function(o,a,p,h){return!D1(0,a,p,h)}),Dc=ri("<",function(o,a,p){return a<p},function(o,a,p,h){return h.compare(a,p)<0}),Li=ri(">",function(o,a,p){return a>p},function(o,a,p,h){return h.compare(a,p)>0}),Oc=ri("<=",function(o,a,p){return a<=p},function(o,a,p,h){return h.compare(a,p)<=0}),O1=ri(">=",function(o,a,p){return a>=p},function(o,a,p,h){return h.compare(a,p)>=0}),la=function(o,a,p,h,_){this.type=or,this.number=o,this.locale=a,this.currency=p,this.minFractionDigits=h,this.maxFractionDigits=_};la.parse=function(o,a){if(o.length!==3)return a.error("Expected two arguments.");var p=a.parse(o[1],1,dt);if(!p)return null;var h=o[2];if(typeof h!="object"||Array.isArray(h))return a.error("NumberFormat options argument must be an object.");var _=null;if(h.locale&&!(_=a.parse(h.locale,1,or)))return null;var v=null;if(h.currency&&!(v=a.parse(h.currency,1,or)))return null;var P=null;if(h["min-fraction-digits"]&&!(P=a.parse(h["min-fraction-digits"],1,dt)))return null;var S=null;return h["max-fraction-digits"]&&!(S=a.parse(h["max-fraction-digits"],1,dt))?null:new la(p,_,v,P,S)},la.prototype.evaluate=function(o){return new Intl.NumberFormat(this.locale?this.locale.evaluate(o):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(o):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(o):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(o):void 0}).format(this.number.evaluate(o))},la.prototype.eachChild=function(o){o(this.number),this.locale&&o(this.locale),this.currency&&o(this.currency),this.minFractionDigits&&o(this.minFractionDigits),this.maxFractionDigits&&o(this.maxFractionDigits)},la.prototype.outputDefined=function(){return!1},la.prototype.serialize=function(){var o={};return this.locale&&(o.locale=this.locale.serialize()),this.currency&&(o.currency=this.currency.serialize()),this.minFractionDigits&&(o["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(o["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),o]};var qs=function(o){this.type=dt,this.input=o};qs.parse=function(o,a){if(o.length!==2)return a.error("Expected 1 argument, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?a.error("Expected argument of type string or array, but found "+ao(p.type)+" instead."):new qs(p):null},qs.prototype.evaluate=function(o){var a=this.input.evaluate(o);if(typeof a=="string"||Array.isArray(a))return a.length;throw new fi("Expected value to be of type string or array, but found "+ao(hi(a))+" instead.")},qs.prototype.eachChild=function(o){o(this.input)},qs.prototype.outputDefined=function(){return!1},qs.prototype.serialize=function(){var o=["length"];return this.eachChild(function(a){o.push(a.serialize())}),o};var As={"==":q0,"!=":Bl,">":Li,"<":Dc,">=":O1,"<=":Oc,array:ui,at:vu,boolean:ui,case:$s,coalesce:gu,collator:we,format:Jn,image:jn,in:Za,"index-of":Ys,interpolate:Un,"interpolate-hcl":Un,"interpolate-lab":Un,length:qs,let:Da,literal:ln,match:Oa,number:ui,"number-format":la,object:ui,slice:Eu,step:ba,string:ui,"to-boolean":Pa,"to-color":Pa,"to-number":Pa,"to-string":Pa,var:Ps,within:Bn};function xu(o,a){var p=a[0],h=a[1],_=a[2],v=a[3];p=p.evaluate(o),h=h.evaluate(o),_=_.evaluate(o);var P=v?v.evaluate(o):1,S=hu(p,h,_,P);if(S)throw new fi(S);return new Eo(p/255*P,h/255*P,_/255*P,P)}function Ul(o,a){return o in a}function xp(o,a){var p=a[o];return p===void 0?null:p}function ps(o){return{type:o}}function tl(o){return{result:"success",value:o}}function Pu(o){return{result:"error",value:o}}function Ks(o){return o["property-type"]==="data-driven"||o["property-type"]==="cross-faded-data-driven"}function Lc(o){return!!o.expression&&o.expression.parameters.indexOf("zoom")>-1}function rl(o){return!!o.expression&&o.expression.interpolated}function li(o){return o instanceof Number?"number":o instanceof String?"string":o instanceof Boolean?"boolean":Array.isArray(o)?"array":o===null?"null":typeof o}function kl(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function K0(o){return o}function bu(o,a,p){return o!==void 0?o:a!==void 0?a:p!==void 0?p:void 0}function ol(o,a,p,h,_){return bu(typeof p===_?h[p]:void 0,o.default,a.default)}function Bc(o,a,p){if(li(p)!=="number")return bu(o.default,a.default);var h=o.stops.length;if(h===1||p<=o.stops[0][0])return o.stops[0][1];if(p>=o.stops[h-1][0])return o.stops[h-1][1];var _=Jp(o.stops.map(function(v){return v[0]}),p);return o.stops[_][1]}function zl(o,a,p){var h=o.base!==void 0?o.base:1;if(li(p)!=="number")return bu(o.default,a.default);var _=o.stops.length;if(_===1||p<=o.stops[0][0])return o.stops[0][1];if(p>=o.stops[_-1][0])return o.stops[_-1][1];var v=Jp(o.stops.map(function(B){return B[0]}),p),P=function(B,j,Y,ce){var he=ce-Y,Re=B-Y;return he===0?0:j===1?Re/he:(Math.pow(j,Re)-1)/(Math.pow(j,he)-1)}(p,h,o.stops[v][0],o.stops[v+1][0]),S=o.stops[v][1],C=o.stops[v+1][1],M=_u[a.type]||K0;if(o.colorSpace&&o.colorSpace!=="rgb"){var O=M1[o.colorSpace];M=function(B,j){return O.reverse(O.interpolate(O.forward(B),O.forward(j),P))}}return typeof S.evaluate=="function"?{evaluate:function(){for(var B=[],j=arguments.length;j--;)B[j]=arguments[j];var Y=S.evaluate.apply(void 0,B),ce=C.evaluate.apply(void 0,B);if(Y!==void 0&&ce!==void 0)return M(Y,ce,P)}}:M(S,C,P)}function Qs(o,a,p){return a.type==="color"?p=Eo.parse(p):a.type==="formatted"?p=Di.fromString(p.toString()):a.type==="resolvedImage"?p=gi.fromString(p.toString()):li(p)===a.type||a.type==="enum"&&a.values[p]||(p=void 0),bu(p,o.default,a.default)}re.register(As,{error:[{kind:"error"},[or],function(o,a){throw new fi(a[0].evaluate(o))}],typeof:[or,[er],function(o,a){return ao(hi(a[0].evaluate(o)))}],"to-rgba":[Mo(dt,4),[Zt],function(o,a){return a[0].evaluate(o).toArray()}],rgb:[Zt,[dt,dt,dt],xu],rgba:[Zt,[dt,dt,dt,dt],xu],has:{type:Wt,overloads:[[[or],function(o,a){return Ul(a[0].evaluate(o),o.properties())}],[[or,no],function(o,a){var p=a[1];return Ul(a[0].evaluate(o),p.evaluate(o))}]]},get:{type:er,overloads:[[[or],function(o,a){return xp(a[0].evaluate(o),o.properties())}],[[or,no],function(o,a){var p=a[1];return xp(a[0].evaluate(o),p.evaluate(o))}]]},"feature-state":[er,[or],function(o,a){return xp(a[0].evaluate(o),o.featureState||{})}],properties:[no,[],function(o){return o.properties()}],"geometry-type":[or,[],function(o){return o.geometryType()}],id:[er,[],function(o){return o.id()}],zoom:[dt,[],function(o){return o.globals.zoom}],"heatmap-density":[dt,[],function(o){return o.globals.heatmapDensity||0}],"line-progress":[dt,[],function(o){return o.globals.lineProgress||0}],accumulated:[er,[],function(o){return o.globals.accumulated===void 0?null:o.globals.accumulated}],"+":[dt,ps(dt),function(o,a){for(var p=0,h=0,_=a;h<_.length;h+=1)p+=_[h].evaluate(o);return p}],"*":[dt,ps(dt),function(o,a){for(var p=1,h=0,_=a;h<_.length;h+=1)p*=_[h].evaluate(o);return p}],"-":{type:dt,overloads:[[[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)-p.evaluate(o)}],[[dt],function(o,a){return-a[0].evaluate(o)}]]},"/":[dt,[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)/p.evaluate(o)}],"%":[dt,[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)%p.evaluate(o)}],ln2:[dt,[],function(){return Math.LN2}],pi:[dt,[],function(){return Math.PI}],e:[dt,[],function(){return Math.E}],"^":[dt,[dt,dt],function(o,a){var p=a[1];return Math.pow(a[0].evaluate(o),p.evaluate(o))}],sqrt:[dt,[dt],function(o,a){return Math.sqrt(a[0].evaluate(o))}],log10:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))/Math.LN10}],ln:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))}],log2:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))/Math.LN2}],sin:[dt,[dt],function(o,a){return Math.sin(a[0].evaluate(o))}],cos:[dt,[dt],function(o,a){return Math.cos(a[0].evaluate(o))}],tan:[dt,[dt],function(o,a){return Math.tan(a[0].evaluate(o))}],asin:[dt,[dt],function(o,a){return Math.asin(a[0].evaluate(o))}],acos:[dt,[dt],function(o,a){return Math.acos(a[0].evaluate(o))}],atan:[dt,[dt],function(o,a){return Math.atan(a[0].evaluate(o))}],min:[dt,ps(dt),function(o,a){return Math.min.apply(Math,a.map(function(p){return p.evaluate(o)}))}],max:[dt,ps(dt),function(o,a){return Math.max.apply(Math,a.map(function(p){return p.evaluate(o)}))}],abs:[dt,[dt],function(o,a){return Math.abs(a[0].evaluate(o))}],round:[dt,[dt],function(o,a){var p=a[0].evaluate(o);return p<0?-Math.round(-p):Math.round(p)}],floor:[dt,[dt],function(o,a){return Math.floor(a[0].evaluate(o))}],ceil:[dt,[dt],function(o,a){return Math.ceil(a[0].evaluate(o))}],"filter-==":[Wt,[or,er],function(o,a){var p=a[0],h=a[1];return o.properties()[p.value]===h.value}],"filter-id-==":[Wt,[er],function(o,a){var p=a[0];return o.id()===p.value}],"filter-type-==":[Wt,[or],function(o,a){var p=a[0];return o.geometryType()===p.value}],"filter-<":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_<v}],"filter-id-<":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h<_}],"filter->":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_>v}],"filter-id->":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h>_}],"filter-<=":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_<=v}],"filter-id-<=":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h<=_}],"filter->=":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_>=v}],"filter-id->=":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h>=_}],"filter-has":[Wt,[er],function(o,a){return a[0].value in o.properties()}],"filter-has-id":[Wt,[],function(o){return o.id()!==null&&o.id()!==void 0}],"filter-type-in":[Wt,[Mo(or)],function(o,a){return a[0].value.indexOf(o.geometryType())>=0}],"filter-id-in":[Wt,[Mo(er)],function(o,a){return a[0].value.indexOf(o.id())>=0}],"filter-in-small":[Wt,[or,Mo(er)],function(o,a){var p=a[0];return a[1].value.indexOf(o.properties()[p.value])>=0}],"filter-in-large":[Wt,[or,Mo(er)],function(o,a){var p=a[0],h=a[1];return function(_,v,P,S){for(;P<=S;){var C=P+S>>1;if(v[C]===_)return!0;v[C]>_?S=C-1:P=C+1}return!1}(o.properties()[p.value],h.value,0,h.value.length-1)}],all:{type:Wt,overloads:[[[Wt,Wt],function(o,a){var p=a[1];return a[0].evaluate(o)&&p.evaluate(o)}],[ps(Wt),function(o,a){for(var p=0,h=a;p<h.length;p+=1)if(!h[p].evaluate(o))return!1;return!0}]]},any:{type:Wt,overloads:[[[Wt,Wt],function(o,a){var p=a[1];return a[0].evaluate(o)||p.evaluate(o)}],[ps(Wt),function(o,a){for(var p=0,h=a;p<h.length;p+=1)if(h[p].evaluate(o))return!0;return!1}]]},"!":[Wt,[Wt],function(o,a){return!a[0].evaluate(o)}],"is-supported-script":[Wt,[or],function(o,a){var p=o.globals&&o.globals.isSupportedScript;return!p||p(a[0].evaluate(o))}],upcase:[or,[or],function(o,a){return a[0].evaluate(o).toUpperCase()}],downcase:[or,[or],function(o,a){return a[0].evaluate(o).toLowerCase()}],concat:[or,ps(er),function(o,a){return a.map(function(p){return Ws(p.evaluate(o))}).join("")}],"resolved-locale":[or,[Fo],function(o,a){return a[0].evaluate(o).resolvedLocale()}]});var Au=function(o,a){this.expression=o,this._warningHistory={},this._evaluator=new X,this._defaultValue=a?function(p){return p.type==="color"&&kl(p.default)?new Eo(0,0,0,0):p.type==="color"?Eo.parse(p.default)||null:p.default===void 0?null:p.default}(a):null,this._enumValues=a&&a.type==="enum"?a.values:null};function qu(o){return Array.isArray(o)&&o.length>0&&typeof o[0]=="string"&&o[0]in As}function Pp(o,a){var p=new Xs(As,[],a?function(_){var v={color:Zt,string:or,number:dt,enum:or,boolean:Wt,formatted:Jo,resolvedImage:vo};return _.type==="array"?Mo(v[_.value]||er,_.length):v[_.type]}(a):void 0),h=p.parse(o,void 0,void 0,void 0,a&&a.type==="string"?{typeAnnotation:"coerce"}:void 0);return h?tl(new Au(h,a)):Pu(p.errors)}Au.prototype.evaluateWithoutErrorHandling=function(o,a,p,h,_,v){return this._evaluator.globals=o,this._evaluator.feature=a,this._evaluator.featureState=p,this._evaluator.canonical=h,this._evaluator.availableImages=_||null,this._evaluator.formattedSection=v,this.expression.evaluate(this._evaluator)},Au.prototype.evaluate=function(o,a,p,h,_,v){this._evaluator.globals=o,this._evaluator.feature=a||null,this._evaluator.featureState=p||null,this._evaluator.canonical=h,this._evaluator.availableImages=_||null,this._evaluator.formattedSection=v||null;try{var P=this.expression.evaluate(this._evaluator);if(P==null||typeof P=="number"&&P!=P)return this._defaultValue;if(this._enumValues&&!(P in this._enumValues))throw new fi("Expected value to be one of "+Object.keys(this._enumValues).map(function(S){return JSON.stringify(S)}).join(", ")+", but found "+JSON.stringify(P)+" instead.");return P}catch(S){return this._warningHistory[S.message]||(this._warningHistory[S.message]=!0,typeof console<"u"&&console.warn(S.message)),this._defaultValue}};var Ku=function(o,a){this.kind=o,this._styleExpression=a,this.isStateDependent=o!=="constant"&&!mu(a.expression)};Ku.prototype.evaluateWithoutErrorHandling=function(o,a,p,h,_,v){return this._styleExpression.evaluateWithoutErrorHandling(o,a,p,h,_,v)},Ku.prototype.evaluate=function(o,a,p,h,_,v){return this._styleExpression.evaluate(o,a,p,h,_,v)};var Qu=function(o,a,p,h){this.kind=o,this.zoomStops=p,this._styleExpression=a,this.isStateDependent=o!=="camera"&&!mu(a.expression),this.interpolationType=h};function Uc(o,a){if((o=Pp(o,a)).result==="error")return o;var p=o.value.expression,h=fu(p);if(!h&&!Ks(a))return Pu([new wt("","data expressions not supported")]);var _=xs(p,["zoom"]);if(!_&&!Lc(a))return Pu([new wt("","zoom expressions not supported")]);var v=function P(S){var C=null;if(S instanceof Da)C=P(S.result);else if(S instanceof gu)for(var M=0,O=S.args;M<O.length&&!(C=P(O[M]));M+=1);else(S instanceof ba||S instanceof Un)&&S.input instanceof re&&S.input.name==="zoom"&&(C=S);return C instanceof wt||S.eachChild(function(B){var j=P(B);j instanceof wt?C=j:!C&&j?C=new wt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):C&&j&&C!==j&&(C=new wt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),C}(p);return v||_?v instanceof wt?Pu([v]):v instanceof Un&&!rl(a)?Pu([new wt("",'"interpolate" expressions cannot be used with this property')]):tl(v?new Qu(h?"camera":"composite",o.value,v.labels,v instanceof Un?v.interpolation:void 0):new Ku(h?"constant":"source",o.value)):Pu([new wt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}Qu.prototype.evaluateWithoutErrorHandling=function(o,a,p,h,_,v){return this._styleExpression.evaluateWithoutErrorHandling(o,a,p,h,_,v)},Qu.prototype.evaluate=function(o,a,p,h,_,v){return this._styleExpression.evaluate(o,a,p,h,_,v)},Qu.prototype.interpolationFactor=function(o,a,p){return this.interpolationType?Un.interpolationFactor(this.interpolationType,o,a,p):0};var Ju=function(o,a){this._parameters=o,this._specification=a,ht(this,function p(h,_){var v,P,S,C=_.type==="color",M=h.stops&&typeof h.stops[0][0]=="object",O=M||!(M||h.property!==void 0),B=h.type||(rl(_)?"exponential":"interval");if(C&&((h=ht({},h)).stops&&(h.stops=h.stops.map(function(pr){return[pr[0],Eo.parse(pr[1])]})),h.default=Eo.parse(h.default?h.default:_.default)),h.colorSpace&&h.colorSpace!=="rgb"&&!M1[h.colorSpace])throw new Error("Unknown color space: "+h.colorSpace);if(B==="exponential")v=zl;else if(B==="interval")v=Bc;else if(B==="categorical"){v=ol,P=Object.create(null);for(var j=0,Y=h.stops;j<Y.length;j+=1){var ce=Y[j];P[ce[0]]=ce[1]}S=typeof h.stops[0][0]}else{if(B!=="identity")throw new Error('Unknown function type "'+B+'"');v=Qs}if(M){for(var he={},Re=[],be=0;be<h.stops.length;be++){var Ve=h.stops[be],Ze=Ve[0].zoom;he[Ze]===void 0&&(he[Ze]={zoom:Ze,type:h.type,property:h.property,default:h.default,stops:[]},Re.push(Ze)),he[Ze].stops.push([Ve[0].value,Ve[1]])}for(var it=[],ut=0,Et=Re;ut<Et.length;ut+=1){var kt=Et[ut];it.push([he[kt].zoom,p(he[kt],_)])}var qt={name:"linear"};return{kind:"composite",interpolationType:qt,interpolationFactor:Un.interpolationFactor.bind(void 0,qt),zoomStops:it.map(function(pr){return pr[0]}),evaluate:function(pr,Br){var dr=pr.zoom;return zl({stops:it,base:h.base},_,dr).evaluate(dr,Br)}}}if(O){var Ir=B==="exponential"?{name:"exponential",base:h.base!==void 0?h.base:1}:null;return{kind:"camera",interpolationType:Ir,interpolationFactor:Un.interpolationFactor.bind(void 0,Ir),zoomStops:h.stops.map(function(pr){return pr[0]}),evaluate:function(pr){return v(h,_,pr.zoom,P,S)}}}return{kind:"source",evaluate:function(pr,Br){var dr=Br&&Br.properties?Br.properties[h.property]:void 0;return dr===void 0?bu(h.default,_.default):v(h,_,dr,P,S)}}}(this._parameters,this._specification))};function Ya(o){var a=o.key,p=o.value,h=o.valueSpec||{},_=o.objectElementValidators||{},v=o.style,P=o.styleSpec,S=[],C=li(p);if(C!=="object")return[new ge(a,p,"object expected, "+C+" found")];for(var M in p){var O=M.split(".")[0],B=h[O]||h["*"],j=void 0;if(_[O])j=_[O];else if(h[O])j=No;else if(_["*"])j=_["*"];else{if(!h["*"]){S.push(new ge(a,p[M],'unknown property "'+M+'"'));continue}j=No}S=S.concat(j({key:(a&&a+".")+M,value:p[M],valueSpec:B,style:v,styleSpec:P,object:p,objectKey:M},p))}for(var Y in h)_[Y]||h[Y].required&&h[Y].default===void 0&&p[Y]===void 0&&S.push(new ge(a,p,'missing required property "'+Y+'"'));return S}function kc(o){var a=o.value,p=o.valueSpec,h=o.style,_=o.styleSpec,v=o.key,P=o.arrayElementValidator||No;if(li(a)!=="array")return[new ge(v,a,"array expected, "+li(a)+" found")];if(p.length&&a.length!==p.length)return[new ge(v,a,"array length "+p.length+" expected, length "+a.length+" found")];if(p["min-length"]&&a.length<p["min-length"])return[new ge(v,a,"array length at least "+p["min-length"]+" expected, length "+a.length+" found")];var S={type:p.value,values:p.values};_.$version<7&&(S.function=p.function),li(p.value)==="object"&&(S=p.value);for(var C=[],M=0;M<a.length;M++)C=C.concat(P({array:a,arrayIndex:M,value:a[M],valueSpec:S,style:h,styleSpec:_,key:v+"["+M+"]"}));return C}function zc(o){var a=o.key,p=o.value,h=o.valueSpec,_=li(p);return _==="number"&&p!=p&&(_="NaN"),_!=="number"?[new ge(a,p,"number expected, "+_+" found")]:"minimum"in h&&p<h.minimum?[new ge(a,p,p+" is less than the minimum value "+h.minimum)]:"maximum"in h&&p>h.maximum?[new ge(a,p,p+" is greater than the maximum value "+h.maximum)]:[]}function Vc(o){var a,p,h,_=o.valueSpec,v=Nt(o.value.type),P={},S=v!=="categorical"&&o.value.property===void 0,C=!S,M=li(o.value.stops)==="array"&&li(o.value.stops[0])==="array"&&li(o.value.stops[0][0])==="object",O=Ya({key:o.key,value:o.value,valueSpec:o.styleSpec.function,style:o.style,styleSpec:o.styleSpec,objectElementValidators:{stops:function(Y){if(v==="identity")return[new ge(Y.key,Y.value,'identity function may not have a "stops" property')];var ce=[],he=Y.value;return ce=ce.concat(kc({key:Y.key,value:he,valueSpec:Y.valueSpec,style:Y.style,styleSpec:Y.styleSpec,arrayElementValidator:B})),li(he)==="array"&&he.length===0&&ce.push(new ge(Y.key,he,"array must have at least one stop")),ce},default:function(Y){return No({key:Y.key,value:Y.value,valueSpec:_,style:Y.style,styleSpec:Y.styleSpec})}}});return v==="identity"&&S&&O.push(new ge(o.key,o.value,'missing required property "property"')),v==="identity"||o.value.stops||O.push(new ge(o.key,o.value,'missing required property "stops"')),v==="exponential"&&o.valueSpec.expression&&!rl(o.valueSpec)&&O.push(new ge(o.key,o.value,"exponential functions not supported")),o.styleSpec.$version>=8&&(C&&!Ks(o.valueSpec)?O.push(new ge(o.key,o.value,"property functions not supported")):S&&!Lc(o.valueSpec)&&O.push(new ge(o.key,o.value,"zoom functions not supported"))),v!=="categorical"&&!M||o.value.property!==void 0||O.push(new ge(o.key,o.value,'"property" property is required')),O;function B(Y){var ce=[],he=Y.value,Re=Y.key;if(li(he)!=="array")return[new ge(Re,he,"array expected, "+li(he)+" found")];if(he.length!==2)return[new ge(Re,he,"array length 2 expected, length "+he.length+" found")];if(M){if(li(he[0])!=="object")return[new ge(Re,he,"object expected, "+li(he[0])+" found")];if(he[0].zoom===void 0)return[new ge(Re,he,"object stop key must have zoom")];if(he[0].value===void 0)return[new ge(Re,he,"object stop key must have value")];if(h&&h>Nt(he[0].zoom))return[new ge(Re,he[0].zoom,"stop zoom values must appear in ascending order")];Nt(he[0].zoom)!==h&&(h=Nt(he[0].zoom),p=void 0,P={}),ce=ce.concat(Ya({key:Re+"[0]",value:he[0],valueSpec:{zoom:{}},style:Y.style,styleSpec:Y.styleSpec,objectElementValidators:{zoom:zc,value:j}}))}else ce=ce.concat(j({key:Re+"[0]",value:he[0],style:Y.style,styleSpec:Y.styleSpec},he));return qu(lt(he[1]))?ce.concat([new ge(Re+"[1]",he[1],"expressions are not allowed in function stops.")]):ce.concat(No({key:Re+"[1]",value:he[1],valueSpec:_,style:Y.style,styleSpec:Y.styleSpec}))}function j(Y,ce){var he=li(Y.value),Re=Nt(Y.value),be=Y.value!==null?Y.value:ce;if(a){if(he!==a)return[new ge(Y.key,be,he+" stop domain type must match previous stop domain type "+a)]}else a=he;if(he!=="number"&&he!=="string"&&he!=="boolean")return[new ge(Y.key,be,"stop domain value must be a number, string, or boolean")];if(he!=="number"&&v!=="categorical"){var Ve="number expected, "+he+" found";return Ks(_)&&v===void 0&&(Ve+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ge(Y.key,be,Ve)]}return v!=="categorical"||he!=="number"||isFinite(Re)&&Math.floor(Re)===Re?v!=="categorical"&&he==="number"&&p!==void 0&&Re<p?[new ge(Y.key,be,"stop domain values must appear in ascending order")]:(p=Re,v==="categorical"&&Re in P?[new ge(Y.key,be,"stop domain values must be unique")]:(P[Re]=!0,[])):[new ge(Y.key,be,"integer expected, found "+Re)]}}function Fu(o){var a=(o.expressionContext==="property"?Uc:Pp)(lt(o.value),o.valueSpec);if(a.result==="error")return a.value.map(function(h){return new ge(""+o.key+h.key,o.value,h.message)});var p=a.value.expression||a.value._styleExpression.expression;if(o.expressionContext==="property"&&o.propertyKey==="text-font"&&!p.outputDefined())return[new ge(o.key,o.value,'Invalid data expression for "'+o.propertyKey+'". Output values must be contained as literals within the expression.')];if(o.expressionContext==="property"&&o.propertyType==="layout"&&!mu(p))return[new ge(o.key,o.value,'"feature-state" data expressions are not supported with layout properties.')];if(o.expressionContext==="filter"&&!mu(p))return[new ge(o.key,o.value,'"feature-state" data expressions are not supported with filters.')];if(o.expressionContext&&o.expressionContext.indexOf("cluster")===0){if(!xs(p,["zoom","feature-state"]))return[new ge(o.key,o.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(o.expressionContext==="cluster-initial"&&!fu(p))return[new ge(o.key,o.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Fs(o){var a=o.key,p=o.value,h=o.valueSpec,_=[];return Array.isArray(h.values)?h.values.indexOf(Nt(p))===-1&&_.push(new ge(a,p,"expected one of ["+h.values.join(", ")+"], "+JSON.stringify(p)+" found")):Object.keys(h.values).indexOf(Nt(p))===-1&&_.push(new ge(a,p,"expected one of ["+Object.keys(h.values).join(", ")+"], "+JSON.stringify(p)+" found")),_}function bp(o){if(o===!0||o===!1)return!0;if(!Array.isArray(o)||o.length===0)return!1;switch(o[0]){case"has":return o.length>=2&&o[1]!=="$id"&&o[1]!=="$type";case"in":return o.length>=3&&(typeof o[1]!="string"||Array.isArray(o[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return o.length!==3||Array.isArray(o[1])||Array.isArray(o[2]);case"any":case"all":for(var a=0,p=o.slice(1);a<p.length;a+=1){var h=p[a];if(!bp(h)&&typeof h!="boolean")return!1}return!0;default:return!0}}Ju.deserialize=function(o){return new Ju(o._parameters,o._specification)},Ju.serialize=function(o){return{_parameters:o._parameters,_specification:o._specification}};var il={type:"boolean",default:!1};function Tu(o){if(o==null)return{filter:function(){return!0},needGeometry:!1};bp(o)||(o=Vl(o));var a=Pp(o,il);if(a.result==="error")throw new Error(a.value.map(function(p){return p.key+": "+p.message}).join(", "));return{filter:function(p,h,_){return a.value.evaluate(p,h,{},_)},needGeometry:function p(h){if(!Array.isArray(h))return!1;if(h[0]==="within")return!0;for(var _=1;_<h.length;_++)if(p(h[_]))return!0;return!1}(o)}}function Q0(o,a){return o<a?-1:o>a?1:0}function Vl(o){if(!o)return!0;var a,p=o[0];return o.length<=1?p!=="any":p==="=="?Hc(o[1],o[2],"=="):p==="!="?Gl(Hc(o[1],o[2],"==")):p==="<"||p===">"||p==="<="||p===">="?Hc(o[1],o[2],p):p==="any"?(a=o.slice(1),["any"].concat(a.map(Vl))):p==="all"?["all"].concat(o.slice(1).map(Vl)):p==="none"?["all"].concat(o.slice(1).map(Vl).map(Gl)):p==="in"?Hl(o[1],o.slice(2)):p==="!in"?Gl(Hl(o[1],o.slice(2))):p==="has"?L1(o[1]):p==="!has"?Gl(L1(o[1])):p!=="within"||o}function Hc(o,a,p){switch(o){case"$type":return["filter-type-"+p,a];case"$id":return["filter-id-"+p,a];default:return["filter-"+p,o,a]}}function Hl(o,a){if(a.length===0)return!1;switch(o){case"$type":return["filter-type-in",["literal",a]];case"$id":return["filter-id-in",["literal",a]];default:return a.length>200&&!a.some(function(p){return typeof p!=typeof a[0]})?["filter-in-large",o,["literal",a.sort(Q0)]]:["filter-in-small",o,["literal",a]]}}function L1(o){switch(o){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",o]}}function Gl(o){return["!",o]}function Gc(o){return bp(lt(o.value))?Fu(ht({},o,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function a(p){var h=p.value,_=p.key;if(li(h)!=="array")return[new ge(_,h,"array expected, "+li(h)+" found")];var v,P=p.styleSpec,S=[];if(h.length<1)return[new ge(_,h,"filter array must have at least 1 element")];switch(S=S.concat(Fs({key:_+"[0]",value:h[0],valueSpec:P.filter_operator,style:p.style,styleSpec:p.styleSpec})),Nt(h[0])){case"<":case"<=":case">":case">=":h.length>=2&&Nt(h[1])==="$type"&&S.push(new ge(_,h,'"$type" cannot be use with operator "'+h[0]+'"'));case"==":case"!=":h.length!==3&&S.push(new ge(_,h,'filter array for operator "'+h[0]+'" must have 3 elements'));case"in":case"!in":h.length>=2&&(v=li(h[1]))!=="string"&&S.push(new ge(_+"[1]",h[1],"string expected, "+v+" found"));for(var C=2;C<h.length;C++)v=li(h[C]),Nt(h[1])==="$type"?S=S.concat(Fs({key:_+"["+C+"]",value:h[C],valueSpec:P.geometry_type,style:p.style,styleSpec:p.styleSpec})):v!=="string"&&v!=="number"&&v!=="boolean"&&S.push(new ge(_+"["+C+"]",h[C],"string, number, or boolean expected, "+v+" found"));break;case"any":case"all":case"none":for(var M=1;M<h.length;M++)S=S.concat(a({key:_+"["+M+"]",value:h[M],style:p.style,styleSpec:p.styleSpec}));break;case"has":case"!has":v=li(h[1]),h.length!==2?S.push(new ge(_,h,'filter array for "'+h[0]+'" operator must have 2 elements')):v!=="string"&&S.push(new ge(_+"[1]",h[1],"string expected, "+v+" found"));break;case"within":v=li(h[1]),h.length!==2?S.push(new ge(_,h,'filter array for "'+h[0]+'" operator must have 2 elements')):v!=="object"&&S.push(new ge(_+"[1]",h[1],"object expected, "+v+" found"))}return S}(o)}function nl(o,a){var p=o.key,h=o.style,_=o.styleSpec,v=o.value,P=o.objectKey,S=_[a+"_"+o.layerType];if(!S)return[];var C=P.match(/^(.*)-transition$/);if(a==="paint"&&C&&S[C[1]]&&S[C[1]].transition)return No({key:p,value:v,valueSpec:_.transition,style:h,styleSpec:_});var M,O=o.valueSpec||S[P];if(!O)return[new ge(p,v,'unknown property "'+P+'"')];if(li(v)==="string"&&Ks(O)&&!O.tokens&&(M=/^{([^}]+)}$/.exec(v)))return[new ge(p,v,'"'+P+'" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": '+JSON.stringify(M[1])+" }`.")];var B=[];return o.layerType==="symbol"&&(P==="text-field"&&h&&!h.glyphs&&B.push(new ge(p,v,'use of "text-field" requires a style "glyphs" property')),P==="text-font"&&kl(lt(v))&&Nt(v.type)==="identity"&&B.push(new ge(p,v,'"text-font" does not support identity functions'))),B.concat(No({key:o.key,value:v,valueSpec:O,style:h,styleSpec:_,expressionContext:"property",propertyType:a,propertyKey:P}))}function jc(o){return nl(o,"paint")}function ep(o){return nl(o,"layout")}function Wc(o){var a=[],p=o.value,h=o.key,_=o.style,v=o.styleSpec;p.type||p.ref||a.push(new ge(h,p,'either "type" or "ref" is required'));var P,S=Nt(p.type),C=Nt(p.ref);if(p.id)for(var M=Nt(p.id),O=0;O<o.arrayIndex;O++){var B=_.layers[O];Nt(B.id)===M&&a.push(new ge(h,p.id,'duplicate layer id "'+p.id+'", previously used at line '+B.id.__line__))}if("ref"in p)["type","source","source-layer","filter","layout"].forEach(function(ce){ce in p&&a.push(new ge(h,p[ce],'"'+ce+'" is prohibited for ref layers'))}),_.layers.forEach(function(ce){Nt(ce.id)===C&&(P=ce)}),P?P.ref?a.push(new ge(h,p.ref,"ref cannot reference another ref layer")):S=Nt(P.type):a.push(new ge(h,p.ref,'ref layer "'+C+'" not found'));else if(S!=="background")if(p.source){var j=_.sources&&_.sources[p.source],Y=j&&Nt(j.type);j?Y==="vector"&&S==="raster"?a.push(new ge(h,p.source,'layer "'+p.id+'" requires a raster source')):Y==="raster"&&S!=="raster"?a.push(new ge(h,p.source,'layer "'+p.id+'" requires a vector source')):Y!=="vector"||p["source-layer"]?Y==="raster-dem"&&S!=="hillshade"?a.push(new ge(h,p.source,"raster-dem source can only be used with layer type 'hillshade'.")):S!=="line"||!p.paint||!p.paint["line-gradient"]||Y==="geojson"&&j.lineMetrics||a.push(new ge(h,p,'layer "'+p.id+'" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):a.push(new ge(h,p,'layer "'+p.id+'" must specify a "source-layer"')):a.push(new ge(h,p.source,'source "'+p.source+'" not found'))}else a.push(new ge(h,p,'missing required property "source"'));return a=a.concat(Ya({key:h,value:p,valueSpec:v.layer,style:o.style,styleSpec:o.styleSpec,objectElementValidators:{"*":function(){return[]},type:function(){return No({key:h+".type",value:p.type,valueSpec:v.layer.type,style:o.style,styleSpec:o.styleSpec,object:p,objectKey:"type"})},filter:Gc,layout:function(ce){return Ya({layer:p,key:ce.key,value:ce.value,style:ce.style,styleSpec:ce.styleSpec,objectElementValidators:{"*":function(he){return ep(ht({layerType:S},he))}}})},paint:function(ce){return Ya({layer:p,key:ce.key,value:ce.value,style:ce.style,styleSpec:ce.styleSpec,objectElementValidators:{"*":function(he){return jc(ht({layerType:S},he))}}})}}}))}function Su(o){var a=o.value,p=o.key,h=li(a);return h!=="string"?[new ge(p,a,"string expected, "+h+" found")]:[]}var ci={promoteId:function(o){var a=o.key,p=o.value;if(li(p)==="string")return Su({key:a,value:p});var h=[];for(var _ in p)h.push.apply(h,Su({key:a+"."+_,value:p[_]}));return h}};function jl(o){var a=o.value,p=o.key,h=o.styleSpec,_=o.style;if(!a.type)return[new ge(p,a,'"type" is required')];var v,P=Nt(a.type);switch(P){case"vector":case"raster":case"raster-dem":return Ya({key:p,value:a,valueSpec:h["source_"+P.replace("-","_")],style:o.style,styleSpec:h,objectElementValidators:ci});case"geojson":if(v=Ya({key:p,value:a,valueSpec:h.source_geojson,style:_,styleSpec:h,objectElementValidators:ci}),a.cluster)for(var S in a.clusterProperties){var C=a.clusterProperties[S],M=C[0],O=typeof M=="string"?[M,["accumulated"],["get",S]]:M;v.push.apply(v,Fu({key:p+"."+S+".map",value:C[1],expressionContext:"cluster-map"})),v.push.apply(v,Fu({key:p+"."+S+".reduce",value:O,expressionContext:"cluster-reduce"}))}return v;case"video":return Ya({key:p,value:a,valueSpec:h.source_video,style:_,styleSpec:h});case"image":return Ya({key:p,value:a,valueSpec:h.source_image,style:_,styleSpec:h});case"canvas":return[new ge(p,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Fs({key:p+".type",value:a.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function Ts(o){var a=o.value,p=o.styleSpec,h=p.light,_=o.style,v=[],P=li(a);if(a===void 0)return v;if(P!=="object")return v.concat([new ge("light",a,"object expected, "+P+" found")]);for(var S in a){var C=S.match(/^(.*)-transition$/);v=v.concat(C&&h[C[1]]&&h[C[1]].transition?No({key:S,value:a[S],valueSpec:p.transition,style:_,styleSpec:p}):h[S]?No({key:S,value:a[S],valueSpec:h[S],style:_,styleSpec:p}):[new ge(S,a[S],'unknown property "'+S+'"')])}return v}var wu={"*":function(){return[]},array:kc,boolean:function(o){var a=o.value,p=o.key,h=li(a);return h!=="boolean"?[new ge(p,a,"boolean expected, "+h+" found")]:[]},number:zc,color:function(o){var a=o.key,p=o.value,h=li(p);return h!=="string"?[new ge(a,p,"color expected, "+h+" found")]:so(p)===null?[new ge(a,p,'color expected, "'+p+'" found')]:[]},constants:We,enum:Fs,filter:Gc,function:Vc,layer:Wc,object:Ya,source:jl,light:Ts,string:Su,formatted:function(o){return Su(o).length===0?[]:Fu(o)},resolvedImage:function(o){return Su(o).length===0?[]:Fu(o)}};function No(o){var a=o.value,p=o.valueSpec,h=o.styleSpec;return p.expression&&kl(Nt(a))?Vc(o):p.expression&&qu(lt(a))?Fu(o):p.type&&wu[p.type]?wu[p.type](o):Ya(ht({},o,{valueSpec:p.type?h[p.type]:p}))}function di(o){var a=o.value,p=o.key,h=Su(o);return h.length||(a.indexOf("{fontstack}")===-1&&h.push(new ge(p,a,'"glyphs" url must include a "{fontstack}" token')),a.indexOf("{range}")===-1&&h.push(new ge(p,a,'"glyphs" url must include a "{range}" token'))),h}function La(o,a){a===void 0&&(a=q);var p=[];return p=p.concat(No({key:"",value:o,valueSpec:a.$root,styleSpec:a,style:o,objectElementValidators:{glyphs:di,"*":function(){return[]}}})),o.constants&&(p=p.concat(We({key:"constants",value:o.constants}))),al(p)}function al(o){return[].concat(o).sort(function(a,p){return a.line-p.line})}function Ap(o){return function(){for(var a=[],p=arguments.length;p--;)a[p]=arguments[p];return al(o.apply(this,a))}}La.source=Ap(jl),La.light=Ap(Ts),La.layer=Ap(Wc),La.filter=Ap(Gc),La.paintProperty=Ap(jc),La.layoutProperty=Ap(ep);var sl=La,B1=sl.light,Wl=sl.paintProperty,ul=sl.layoutProperty;function Ru(o,a){var p=!1;if(a&&a.length)for(var h=0,_=a;h<_.length;h+=1)o.fire(new Ie(new Error(_[h].message))),p=!0;return p}var dn=bi;function bi(o,a,p){var h=this.cells=[];if(o instanceof ArrayBuffer){this.arrayBuffer=o;var _=new Int32Array(this.arrayBuffer);o=_[0],this.d=(a=_[1])+2*(p=_[2]);for(var v=0;v<this.d*this.d;v++){var P=_[3+v],S=_[3+v+1];h.push(P===S?null:_.subarray(P,S))}var C=_[3+h.length+1];this.keys=_.subarray(_[3+h.length],C),this.bboxes=_.subarray(C),this.insert=this._insertReadonly}else{this.d=a+2*p;for(var M=0;M<this.d*this.d;M++)h.push([]);this.keys=[],this.bboxes=[]}this.n=a,this.extent=o,this.padding=p,this.scale=a/o,this.uid=0;var O=p/a*o;this.min=-O,this.max=o+O}bi.prototype.insert=function(o,a,p,h,_){this._forEachCell(a,p,h,_,this._insertCell,this.uid++),this.keys.push(o),this.bboxes.push(a),this.bboxes.push(p),this.bboxes.push(h),this.bboxes.push(_)},bi.prototype._insertReadonly=function(){throw"Cannot insert into a GridIndex created from an ArrayBuffer."},bi.prototype._insertCell=function(o,a,p,h,_,v){this.cells[_].push(v)},bi.prototype.query=function(o,a,p,h,_){var v=this.min,P=this.max;if(o<=v&&a<=v&&P<=p&&P<=h&&!_)return Array.prototype.slice.call(this.keys);var S=[];return this._forEachCell(o,a,p,h,this._queryCell,S,{},_),S},bi.prototype._queryCell=function(o,a,p,h,_,v,P,S){var C=this.cells[_];if(C!==null)for(var M=this.keys,O=this.bboxes,B=0;B<C.length;B++){var j=C[B];if(P[j]===void 0){var Y=4*j;(S?S(O[Y+0],O[Y+1],O[Y+2],O[Y+3]):o<=O[Y+2]&&a<=O[Y+3]&&p>=O[Y+0]&&h>=O[Y+1])?(P[j]=!0,v.push(M[j])):P[j]=!1}}},bi.prototype._forEachCell=function(o,a,p,h,_,v,P,S){for(var C=this._convertToCellCoord(o),M=this._convertToCellCoord(a),O=this._convertToCellCoord(p),B=this._convertToCellCoord(h),j=C;j<=O;j++)for(var Y=M;Y<=B;Y++){var ce=this.d*Y+j;if((!S||S(this._convertFromCellCoord(j),this._convertFromCellCoord(Y),this._convertFromCellCoord(j+1),this._convertFromCellCoord(Y+1)))&&_.call(this,o,a,p,h,ce,v,P,S))return}},bi.prototype._convertFromCellCoord=function(o){return(o-this.padding)/this.scale},bi.prototype._convertToCellCoord=function(o){return Math.max(0,Math.min(this.d-1,Math.floor(o*this.scale)+this.padding))},bi.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var o=this.cells,a=3+this.cells.length+1+1,p=0,h=0;h<this.cells.length;h++)p+=this.cells[h].length;var _=new Int32Array(a+p+this.keys.length+this.bboxes.length);_[0]=this.extent,_[1]=this.n,_[2]=this.padding;for(var v=a,P=0;P<o.length;P++){var S=o[P];_[3+P]=v,_.set(S,v),v+=S.length}return _[3+o.length]=v,_.set(this.keys,v),_[3+o.length+1]=v+=this.keys.length,_.set(this.bboxes,v),v+=this.bboxes.length,_.buffer};var Fp=F.ImageData,Xc=F.ImageBitmap,Gi={};function hr(o,a,p){p===void 0&&(p={}),Object.defineProperty(a,"_classRegistryKey",{value:o,writeable:!1}),Gi[o]={klass:a,omit:p.omit||[],shallow:p.shallow||[]}}for(var ca in hr("Object",Object),dn.serialize=function(o,a){var p=o.toArrayBuffer();return a&&a.push(p),{buffer:p}},dn.deserialize=function(o){return new dn(o.buffer)},hr("Grid",dn),hr("Color",Eo),hr("Error",Error),hr("ResolvedImage",gi),hr("StylePropertyFunction",Ju),hr("StyleExpression",Au,{omit:["_evaluator"]}),hr("ZoomDependentExpression",Qu),hr("ZoomConstantExpression",Ku),hr("CompoundExpression",re,{omit:["_evaluate"]}),As)As[ca]._classRegistryKey||hr("Expression_"+ca,As[ca]);function pl(o){return o&&typeof ArrayBuffer<"u"&&(o instanceof ArrayBuffer||o.constructor&&o.constructor.name==="ArrayBuffer")}function Tp(o){return Xc&&o instanceof Xc}function ea(o,a){if(o==null||typeof o=="boolean"||typeof o=="number"||typeof o=="string"||o instanceof Boolean||o instanceof Number||o instanceof String||o instanceof Date||o instanceof RegExp)return o;if(pl(o)||Tp(o))return a&&a.push(o),o;if(ArrayBuffer.isView(o)){var p=o;return a&&a.push(p.buffer),p}if(o instanceof Fp)return a&&a.push(o.data.buffer),o;if(Array.isArray(o)){for(var h=[],_=0,v=o;_<v.length;_+=1)h.push(ea(v[_],a));return h}if(typeof o=="object"){var P=o.constructor,S=P._classRegistryKey;if(!S)throw new Error("can't serialize object of unregistered class");var C=P.serialize?P.serialize(o,a):{};if(!P.serialize){for(var M in o)if(o.hasOwnProperty(M)&&!(Gi[S].omit.indexOf(M)>=0)){var O=o[M];C[M]=Gi[S].shallow.indexOf(M)>=0?O:ea(O,a)}o instanceof Error&&(C.message=o.message)}if(C.$name)throw new Error("$name property is reserved for worker serialization logic.");return S!=="Object"&&(C.$name=S),C}throw new Error("can't serialize object of type "+typeof o)}function oi(o){if(o==null||typeof o=="boolean"||typeof o=="number"||typeof o=="string"||o instanceof Boolean||o instanceof Number||o instanceof String||o instanceof Date||o instanceof RegExp||pl(o)||Tp(o)||ArrayBuffer.isView(o)||o instanceof Fp)return o;if(Array.isArray(o))return o.map(oi);if(typeof o=="object"){var a=o.$name||"Object",p=Gi[a].klass;if(!p)throw new Error("can't deserialize unregistered class "+a);if(p.deserialize)return p.deserialize(o);for(var h=Object.create(p.prototype),_=0,v=Object.keys(o);_<v.length;_+=1){var P=v[_];if(P!=="$name"){var S=o[P];h[P]=Gi[a].shallow.indexOf(P)>=0?S:oi(S)}}return h}throw new Error("can't deserialize object of type "+typeof o)}var Xl=function(){this.first=!0};Xl.prototype.update=function(o,a){var p=Math.floor(o);return this.first?(this.first=!1,this.lastIntegerZoom=p,this.lastIntegerZoomTime=0,this.lastZoom=o,this.lastFloorZoom=p,!0):(this.lastFloorZoom>p?(this.lastIntegerZoom=p+1,this.lastIntegerZoomTime=a):this.lastFloorZoom<p&&(this.lastIntegerZoom=p,this.lastIntegerZoomTime=a),o!==this.lastZoom&&(this.lastZoom=o,this.lastFloorZoom=p,!0))};var Kt={"Latin-1 Supplement":function(o){return o>=128&&o<=255},Arabic:function(o){return o>=1536&&o<=1791},"Arabic Supplement":function(o){return o>=1872&&o<=1919},"Arabic Extended-A":function(o){return o>=2208&&o<=2303},"Hangul Jamo":function(o){return o>=4352&&o<=4607},"Unified Canadian Aboriginal Syllabics":function(o){return o>=5120&&o<=5759},Khmer:function(o){return o>=6016&&o<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(o){return o>=6320&&o<=6399},"General Punctuation":function(o){return o>=8192&&o<=8303},"Letterlike Symbols":function(o){return o>=8448&&o<=8527},"Number Forms":function(o){return o>=8528&&o<=8591},"Miscellaneous Technical":function(o){return o>=8960&&o<=9215},"Control Pictures":function(o){return o>=9216&&o<=9279},"Optical Character Recognition":function(o){return o>=9280&&o<=9311},"Enclosed Alphanumerics":function(o){return o>=9312&&o<=9471},"Geometric Shapes":function(o){return o>=9632&&o<=9727},"Miscellaneous Symbols":function(o){return o>=9728&&o<=9983},"Miscellaneous Symbols and Arrows":function(o){return o>=11008&&o<=11263},"CJK Radicals Supplement":function(o){return o>=11904&&o<=12031},"Kangxi Radicals":function(o){return o>=12032&&o<=12255},"Ideographic Description Characters":function(o){return o>=12272&&o<=12287},"CJK Symbols and Punctuation":function(o){return o>=12288&&o<=12351},Hiragana:function(o){return o>=12352&&o<=12447},Katakana:function(o){return o>=12448&&o<=12543},Bopomofo:function(o){return o>=12544&&o<=12591},"Hangul Compatibility Jamo":function(o){return o>=12592&&o<=12687},Kanbun:function(o){return o>=12688&&o<=12703},"Bopomofo Extended":function(o){return o>=12704&&o<=12735},"CJK Strokes":function(o){return o>=12736&&o<=12783},"Katakana Phonetic Extensions":function(o){return o>=12784&&o<=12799},"Enclosed CJK Letters and Months":function(o){return o>=12800&&o<=13055},"CJK Compatibility":function(o){return o>=13056&&o<=13311},"CJK Unified Ideographs Extension A":function(o){return o>=13312&&o<=19903},"Yijing Hexagram Symbols":function(o){return o>=19904&&o<=19967},"CJK Unified Ideographs":function(o){return o>=19968&&o<=40959},"Yi Syllables":function(o){return o>=40960&&o<=42127},"Yi Radicals":function(o){return o>=42128&&o<=42191},"Hangul Jamo Extended-A":function(o){return o>=43360&&o<=43391},"Hangul Syllables":function(o){return o>=44032&&o<=55215},"Hangul Jamo Extended-B":function(o){return o>=55216&&o<=55295},"Private Use Area":function(o){return o>=57344&&o<=63743},"CJK Compatibility Ideographs":function(o){return o>=63744&&o<=64255},"Arabic Presentation Forms-A":function(o){return o>=64336&&o<=65023},"Vertical Forms":function(o){return o>=65040&&o<=65055},"CJK Compatibility Forms":function(o){return o>=65072&&o<=65103},"Small Form Variants":function(o){return o>=65104&&o<=65135},"Arabic Presentation Forms-B":function(o){return o>=65136&&o<=65279},"Halfwidth and Fullwidth Forms":function(o){return o>=65280&&o<=65519}};function Js(o){for(var a=0,p=o;a<p.length;a+=1)if(ll(p[a].charCodeAt(0)))return!0;return!1}function ll(o){return!(o!==746&&o!==747&&(o<4352||!(Kt["Bopomofo Extended"](o)||Kt.Bopomofo(o)||Kt["CJK Compatibility Forms"](o)&&!(o>=65097&&o<=65103)||Kt["CJK Compatibility Ideographs"](o)||Kt["CJK Compatibility"](o)||Kt["CJK Radicals Supplement"](o)||Kt["CJK Strokes"](o)||!(!Kt["CJK Symbols and Punctuation"](o)||o>=12296&&o<=12305||o>=12308&&o<=12319||o===12336)||Kt["CJK Unified Ideographs Extension A"](o)||Kt["CJK Unified Ideographs"](o)||Kt["Enclosed CJK Letters and Months"](o)||Kt["Hangul Compatibility Jamo"](o)||Kt["Hangul Jamo Extended-A"](o)||Kt["Hangul Jamo Extended-B"](o)||Kt["Hangul Jamo"](o)||Kt["Hangul Syllables"](o)||Kt.Hiragana(o)||Kt["Ideographic Description Characters"](o)||Kt.Kanbun(o)||Kt["Kangxi Radicals"](o)||Kt["Katakana Phonetic Extensions"](o)||Kt.Katakana(o)&&o!==12540||!(!Kt["Halfwidth and Fullwidth Forms"](o)||o===65288||o===65289||o===65293||o>=65306&&o<=65310||o===65339||o===65341||o===65343||o>=65371&&o<=65503||o===65507||o>=65512&&o<=65519)||!(!Kt["Small Form Variants"](o)||o>=65112&&o<=65118||o>=65123&&o<=65126)||Kt["Unified Canadian Aboriginal Syllabics"](o)||Kt["Unified Canadian Aboriginal Syllabics Extended"](o)||Kt["Vertical Forms"](o)||Kt["Yijing Hexagram Symbols"](o)||Kt["Yi Syllables"](o)||Kt["Yi Radicals"](o))))}function Zl(o){return!(ll(o)||function(a){return!!(Kt["Latin-1 Supplement"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Kt["General Punctuation"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Kt["Letterlike Symbols"](a)||Kt["Number Forms"](a)||Kt["Miscellaneous Technical"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Kt["Control Pictures"](a)&&a!==9251||Kt["Optical Character Recognition"](a)||Kt["Enclosed Alphanumerics"](a)||Kt["Geometric Shapes"](a)||Kt["Miscellaneous Symbols"](a)&&!(a>=9754&&a<=9759)||Kt["Miscellaneous Symbols and Arrows"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Kt["CJK Symbols and Punctuation"](a)||Kt.Katakana(a)||Kt["Private Use Area"](a)||Kt["CJK Compatibility Forms"](a)||Kt["Small Form Variants"](a)||Kt["Halfwidth and Fullwidth Forms"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(o))}function $a(o){return o>=1424&&o<=2303||Kt["Arabic Presentation Forms-A"](o)||Kt["Arabic Presentation Forms-B"](o)}function Aa(o,a){return!(!a&&$a(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||Kt.Khmer(o))}function Yl(o){for(var a=0,p=o;a<p.length;a+=1)if($a(p[a].charCodeAt(0)))return!0;return!1}var $l=null,ta="unavailable",Ss=null,U1=function(o){o&&typeof o=="string"&&o.indexOf("NetworkError")>-1&&(ta="error"),$l&&$l(o)};function Sp(){ql.fire(new ye("pluginStateChange",{pluginStatus:ta,pluginURL:Ss}))}var ql=new Le,Zc=function(){return ta},Fa=function(){if(ta!=="deferred"||!Ss)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ta="loading",Sp(),Ss&&Yu({url:Ss},function(o){o?U1(o):(ta="loaded",Sp())})},Ba={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return ta==="loaded"||Ba.applyArabicShaping!=null},isLoading:function(){return ta==="loading"},setState:function(o){ta=o.pluginStatus,Ss=o.pluginURL},isParsed:function(){return Ba.applyArabicShaping!=null&&Ba.processBidirectionalText!=null&&Ba.processStyledBidirectionalText!=null},getPluginURL:function(){return Ss}},po=function(o,a){this.zoom=o,a?(this.now=a.now,this.fadeDuration=a.fadeDuration,this.zoomHistory=a.zoomHistory,this.transition=a.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Xl,this.transition={})};po.prototype.isSupportedScript=function(o){return function(a,p){for(var h=0,_=a;h<_.length;h+=1)if(!Aa(_[h].charCodeAt(0),p))return!1;return!0}(o,Ba.isLoaded())},po.prototype.crossFadingFactor=function(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},po.prototype.getCrossfadeParameters=function(){var o=this.zoom,a=o-Math.floor(o),p=this.crossFadingFactor();return o>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:a+(1-a)*p}:{fromScale:.5,toScale:1,t:1-(1-p)*a}};var Ua=function(o,a){this.property=o,this.value=a,this.expression=function(p,h){if(kl(p))return new Ju(p,h);if(qu(p)){var _=Uc(p,h);if(_.result==="error")throw new Error(_.value.map(function(P){return P.key+": "+P.message}).join(", "));return _.value}var v=p;return typeof p=="string"&&h.type==="color"&&(v=Eo.parse(p)),{kind:"constant",evaluate:function(){return v}}}(a===void 0?o.specification.default:a,o.specification)};Ua.prototype.isDataDriven=function(){return this.expression.kind==="source"||this.expression.kind==="composite"},Ua.prototype.possiblyEvaluate=function(o,a,p){return this.property.possiblyEvaluate(this,o,a,p)};var ka=function(o){this.property=o,this.value=new Ua(o,void 0)};ka.prototype.transitioned=function(o,a){return new Cu(this.property,this.value,a,Q({},o.transition,this.transition),o.now)},ka.prototype.untransitioned=function(){return new Cu(this.property,this.value,null,{},0)};var wn=function(o){this._properties=o,this._values=Object.create(o.defaultTransitionablePropertyValues)};wn.prototype.getValue=function(o){return Ae(this._values[o].value.value)},wn.prototype.setValue=function(o,a){this._values.hasOwnProperty(o)||(this._values[o]=new ka(this._values[o].property)),this._values[o].value=new Ua(this._values[o].property,a===null?void 0:Ae(a))},wn.prototype.getTransition=function(o){return Ae(this._values[o].transition)},wn.prototype.setTransition=function(o,a){this._values.hasOwnProperty(o)||(this._values[o]=new ka(this._values[o].property)),this._values[o].transition=Ae(a)||void 0},wn.prototype.serialize=function(){for(var o={},a=0,p=Object.keys(this._values);a<p.length;a+=1){var h=p[a],_=this.getValue(h);_!==void 0&&(o[h]=_);var v=this.getTransition(h);v!==void 0&&(o[h+"-transition"]=v)}return o},wn.prototype.transitioned=function(o,a){for(var p=new eu(this._properties),h=0,_=Object.keys(this._values);h<_.length;h+=1){var v=_[h];p._values[v]=this._values[v].transitioned(o,a._values[v])}return p},wn.prototype.untransitioned=function(){for(var o=new eu(this._properties),a=0,p=Object.keys(this._values);a<p.length;a+=1){var h=p[a];o._values[h]=this._values[h].untransitioned()}return o};var Cu=function(o,a,p,h,_){this.property=o,this.value=a,this.begin=_+h.delay||0,this.end=this.begin+h.duration||0,o.specification.transition&&(h.delay||h.duration)&&(this.prior=p)};Cu.prototype.possiblyEvaluate=function(o,a,p){var h=o.now||0,_=this.value.possiblyEvaluate(o,a,p),v=this.prior;if(v){if(h>this.end)return this.prior=null,_;if(this.value.isDataDriven())return this.prior=null,_;if(h<this.begin)return v.possiblyEvaluate(o,a,p);var P=(h-this.begin)/(this.end-this.begin);return this.property.interpolate(v.possiblyEvaluate(o,a,p),_,function(S){if(S<=0)return 0;if(S>=1)return 1;var C=S*S,M=C*S;return 4*(S<.5?M:3*(S-C)+M-.75)}(P))}return _};var eu=function(o){this._properties=o,this._values=Object.create(o.defaultTransitioningPropertyValues)};eu.prototype.possiblyEvaluate=function(o,a,p){for(var h=new wp(this._properties),_=0,v=Object.keys(this._values);_<v.length;_+=1){var P=v[_];h._values[P]=this._values[P].possiblyEvaluate(o,a,p)}return h},eu.prototype.hasTransition=function(){for(var o=0,a=Object.keys(this._values);o<a.length;o+=1)if(this._values[a[o]].prior)return!0;return!1};var qa=function(o){this._properties=o,this._values=Object.create(o.defaultPropertyValues)};qa.prototype.getValue=function(o){return Ae(this._values[o].value)},qa.prototype.setValue=function(o,a){this._values[o]=new Ua(this._values[o].property,a===null?void 0:Ae(a))},qa.prototype.serialize=function(){for(var o={},a=0,p=Object.keys(this._values);a<p.length;a+=1){var h=p[a],_=this.getValue(h);_!==void 0&&(o[h]=_)}return o},qa.prototype.possiblyEvaluate=function(o,a,p){for(var h=new wp(this._properties),_=0,v=Object.keys(this._values);_<v.length;_+=1){var P=v[_];h._values[P]=this._values[P].possiblyEvaluate(o,a,p)}return h};var Wn=function(o,a,p){this.property=o,this.value=a,this.parameters=p};Wn.prototype.isConstant=function(){return this.value.kind==="constant"},Wn.prototype.constantOr=function(o){return this.value.kind==="constant"?this.value.value:o},Wn.prototype.evaluate=function(o,a,p,h){return this.property.evaluate(this.value,this.parameters,o,a,p,h)};var wp=function(o){this._properties=o,this._values=Object.create(o.defaultPossiblyEvaluatedValues)};wp.prototype.get=function(o){return this._values[o]};var Rr=function(o){this.specification=o};Rr.prototype.possiblyEvaluate=function(o,a){return o.expression.evaluate(a)},Rr.prototype.interpolate=function(o,a,p){var h=_u[this.specification.type];return h?h(o,a,p):o};var gr=function(o,a){this.specification=o,this.overrides=a};gr.prototype.possiblyEvaluate=function(o,a,p,h){return new Wn(this,o.expression.kind==="constant"||o.expression.kind==="camera"?{kind:"constant",value:o.expression.evaluate(a,null,{},p,h)}:o.expression,a)},gr.prototype.interpolate=function(o,a,p){if(o.value.kind!=="constant"||a.value.kind!=="constant")return o;if(o.value.value===void 0||a.value.value===void 0)return new Wn(this,{kind:"constant",value:void 0},o.parameters);var h=_u[this.specification.type];return h?new Wn(this,{kind:"constant",value:h(o.value.value,a.value.value,p)},o.parameters):o},gr.prototype.evaluate=function(o,a,p,h,_,v){return o.kind==="constant"?o.value:o.evaluate(a,p,h,_,v)};var Ta=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.possiblyEvaluate=function(p,h,_,v){if(p.value===void 0)return new Wn(this,{kind:"constant",value:void 0},h);if(p.expression.kind==="constant"){var P=p.expression.evaluate(h,null,{},_,v),S=p.property.specification.type==="resolvedImage"&&typeof P!="string"?P.name:P,C=this._calculate(S,S,S,h);return new Wn(this,{kind:"constant",value:C},h)}if(p.expression.kind==="camera"){var M=this._calculate(p.expression.evaluate({zoom:h.zoom-1}),p.expression.evaluate({zoom:h.zoom}),p.expression.evaluate({zoom:h.zoom+1}),h);return new Wn(this,{kind:"constant",value:M},h)}return new Wn(this,p.expression,h)},a.prototype.evaluate=function(p,h,_,v,P,S){if(p.kind==="source"){var C=p.evaluate(h,_,v,P,S);return this._calculate(C,C,C,h)}return p.kind==="composite"?this._calculate(p.evaluate({zoom:Math.floor(h.zoom)-1},_,v),p.evaluate({zoom:Math.floor(h.zoom)},_,v),p.evaluate({zoom:Math.floor(h.zoom)+1},_,v),h):p.value},a.prototype._calculate=function(p,h,_,v){return v.zoom>v.zoomHistory.lastIntegerZoom?{from:p,to:h}:{from:_,to:h}},a.prototype.interpolate=function(p){return p},a}(gr),Xn=function(o){this.specification=o};Xn.prototype.possiblyEvaluate=function(o,a,p,h){if(o.value!==void 0){if(o.expression.kind==="constant"){var _=o.expression.evaluate(a,null,{},p,h);return this._calculate(_,_,_,a)}return this._calculate(o.expression.evaluate(new po(Math.floor(a.zoom-1),a)),o.expression.evaluate(new po(Math.floor(a.zoom),a)),o.expression.evaluate(new po(Math.floor(a.zoom+1),a)),a)}},Xn.prototype._calculate=function(o,a,p,h){return h.zoom>h.zoomHistory.lastIntegerZoom?{from:o,to:a}:{from:p,to:a}},Xn.prototype.interpolate=function(o){return o};var ls=function(o){this.specification=o};ls.prototype.possiblyEvaluate=function(o,a,p,h){return!!o.expression.evaluate(a,null,{},p,h)},ls.prototype.interpolate=function(){return!1};var Ai=function(o){for(var a in this.properties=o,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],o){var p=o[a];p.specification.overridable&&this.overridableProperties.push(a);var h=this.defaultPropertyValues[a]=new Ua(p,void 0),_=this.defaultTransitionablePropertyValues[a]=new ka(p);this.defaultTransitioningPropertyValues[a]=_.untransitioned(),this.defaultPossiblyEvaluatedValues[a]=h.possiblyEvaluate({})}};hr("DataDrivenProperty",gr),hr("DataConstantProperty",Rr),hr("CrossFadedDataDrivenProperty",Ta),hr("CrossFadedProperty",Xn),hr("ColorRampProperty",ls);var Ka=function(o){function a(p,h){if(o.call(this),this.id=p.id,this.type=p.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},p.type!=="custom"&&(this.metadata=(p=p).metadata,this.minzoom=p.minzoom,this.maxzoom=p.maxzoom,p.type!=="background"&&(this.source=p.source,this.sourceLayer=p["source-layer"],this.filter=p.filter),h.layout&&(this._unevaluatedLayout=new qa(h.layout)),h.paint)){for(var _ in this._transitionablePaint=new wn(h.paint),p.paint)this.setPaintProperty(_,p.paint[_],{validate:!1});for(var v in p.layout)this.setLayoutProperty(v,p.layout[v],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new wp(h.paint)}}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},a.prototype.getLayoutProperty=function(p){return p==="visibility"?this.visibility:this._unevaluatedLayout.getValue(p)},a.prototype.setLayoutProperty=function(p,h,_){_===void 0&&(_={}),h!=null&&this._validate(ul,"layers."+this.id+".layout."+p,p,h,_)||(p!=="visibility"?this._unevaluatedLayout.setValue(p,h):this.visibility=h)},a.prototype.getPaintProperty=function(p){return He(p,"-transition")?this._transitionablePaint.getTransition(p.slice(0,-11)):this._transitionablePaint.getValue(p)},a.prototype.setPaintProperty=function(p,h,_){if(_===void 0&&(_={}),h!=null&&this._validate(Wl,"layers."+this.id+".paint."+p,p,h,_))return!1;if(He(p,"-transition"))return this._transitionablePaint.setTransition(p.slice(0,-11),h||void 0),!1;var v=this._transitionablePaint._values[p],P=v.property.specification["property-type"]==="cross-faded-data-driven",S=v.value.isDataDriven(),C=v.value;this._transitionablePaint.setValue(p,h),this._handleSpecialPaintPropertyUpdate(p);var M=this._transitionablePaint._values[p].value;return M.isDataDriven()||S||P||this._handleOverridablePaintPropertyUpdate(p,C,M)},a.prototype._handleSpecialPaintPropertyUpdate=function(p){},a.prototype._handleOverridablePaintPropertyUpdate=function(p,h,_){return!1},a.prototype.isHidden=function(p){return!!(this.minzoom&&p<this.minzoom)||!!(this.maxzoom&&p>=this.maxzoom)||this.visibility==="none"},a.prototype.updateTransitions=function(p){this._transitioningPaint=this._transitionablePaint.transitioned(p,this._transitioningPaint)},a.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},a.prototype.recalculate=function(p,h){p.getCrossfadeParameters&&(this._crossfadeParameters=p.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(p,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(p,void 0,h)},a.prototype.serialize=function(){var p={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(p.layout=p.layout||{},p.layout.visibility=this.visibility),Ge(p,function(h,_){return!(h===void 0||_==="layout"&&!Object.keys(h).length||_==="paint"&&!Object.keys(h).length)})},a.prototype._validate=function(p,h,_,v,P){return P===void 0&&(P={}),(!P||P.validate!==!1)&&Ru(this,p.call(sl,{key:h,layerType:this.type,objectKey:_,value:v,styleSpec:q,style:{glyphs:!0,sprite:!0}}))},a.prototype.is3D=function(){return!1},a.prototype.isTileClipped=function(){return!1},a.prototype.hasOffscreenPass=function(){return!1},a.prototype.resize=function(){},a.prototype.isStateDependent=function(){for(var p in this.paint._values){var h=this.paint.get(p);if(h instanceof Wn&&Ks(h.property.specification)&&(h.value.kind==="source"||h.value.kind==="composite")&&h.value.isStateDependent)return!0}return!1},a}(Le),tu={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},tp=function(o,a){this._structArray=o,this._pos1=a*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Xo=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function yn(o,a){a===void 0&&(a=1);var p=0,h=0;return{members:o.map(function(_){var v=tu[_.type].BYTES_PER_ELEMENT,P=p=Yc(p,Math.max(a,v)),S=_.components||1;return h=Math.max(h,v),p+=v*S,{name:_.name,type:_.type,components:S,offset:P}}),size:Yc(p,Math.max(h,a)),alignment:a}}function Yc(o,a){return Math.ceil(o/a)*a}Xo.serialize=function(o,a){return o._trim(),a&&(o.isTransferred=!0,a.push(o.arrayBuffer)),{length:o.length,arrayBuffer:o.arrayBuffer}},Xo.deserialize=function(o){var a=Object.create(this.prototype);return a.arrayBuffer=o.arrayBuffer,a.length=o.length,a.capacity=o.arrayBuffer.byteLength/a.bytesPerElement,a._refreshViews(),a},Xo.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Xo.prototype.clear=function(){this.length=0},Xo.prototype.resize=function(o){this.reserve(o),this.length=o},Xo.prototype.reserve=function(o){if(o>this.capacity){this.capacity=Math.max(o,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var a=this.uint8;this._refreshViews(),a&&this.uint8.set(a)}},Xo.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Iu=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.int16[v+0]=h,this.int16[v+1]=_,p},a}(Xo);Iu.prototype.bytesPerElement=4,hr("StructArrayLayout2i4",Iu);var Kl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=4*p;return this.int16[S+0]=h,this.int16[S+1]=_,this.int16[S+2]=v,this.int16[S+3]=P,p},a}(Xo);Kl.prototype.bytesPerElement=8,hr("StructArrayLayout4i8",Kl);var ru=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=6*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.int16[M+2]=v,this.int16[M+3]=P,this.int16[M+4]=S,this.int16[M+5]=C,p},a}(Xo);ru.prototype.bytesPerElement=12,hr("StructArrayLayout2i4i12",ru);var Sa=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=4*p,O=8*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.uint8[O+4]=v,this.uint8[O+5]=P,this.uint8[O+6]=S,this.uint8[O+7]=C,p},a}(Xo);Sa.prototype.bytesPerElement=8,hr("StructArrayLayout2i4ub8",Sa);var Rp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.float32[v+0]=h,this.float32[v+1]=_,p},a}(Xo);Rp.prototype.bytesPerElement=8,hr("StructArrayLayout2f8",Rp);var ws=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B){var j=this.length;return this.resize(j+1),this.emplace(j,p,h,_,v,P,S,C,M,O,B)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j){var Y=10*p;return this.uint16[Y+0]=h,this.uint16[Y+1]=_,this.uint16[Y+2]=v,this.uint16[Y+3]=P,this.uint16[Y+4]=S,this.uint16[Y+5]=C,this.uint16[Y+6]=M,this.uint16[Y+7]=O,this.uint16[Y+8]=B,this.uint16[Y+9]=j,p},a}(Xo);ws.prototype.bytesPerElement=20,hr("StructArrayLayout10ui20",ws);var Ql=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y){var ce=this.length;return this.resize(ce+1),this.emplace(ce,p,h,_,v,P,S,C,M,O,B,j,Y)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce){var he=12*p;return this.int16[he+0]=h,this.int16[he+1]=_,this.int16[he+2]=v,this.int16[he+3]=P,this.uint16[he+4]=S,this.uint16[he+5]=C,this.uint16[he+6]=M,this.uint16[he+7]=O,this.int16[he+8]=B,this.int16[he+9]=j,this.int16[he+10]=Y,this.int16[he+11]=ce,p},a}(Xo);Ql.prototype.bytesPerElement=24,hr("StructArrayLayout4i4ui4i24",Ql);var Cp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.float32[P+0]=h,this.float32[P+1]=_,this.float32[P+2]=v,p},a}(Xo);Cp.prototype.bytesPerElement=12,hr("StructArrayLayout3f12",Cp);var cl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.uint32[1*p+0]=h,p},a}(Xo);cl.prototype.bytesPerElement=4,hr("StructArrayLayout1ul4",cl);var Jl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O){var B=this.length;return this.resize(B+1),this.emplace(B,p,h,_,v,P,S,C,M,O)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B){var j=10*p,Y=5*p;return this.int16[j+0]=h,this.int16[j+1]=_,this.int16[j+2]=v,this.int16[j+3]=P,this.int16[j+4]=S,this.int16[j+5]=C,this.uint32[Y+3]=M,this.uint16[j+8]=O,this.uint16[j+9]=B,p},a}(Xo);Jl.prototype.bytesPerElement=20,hr("StructArrayLayout6i1ul2ui20",Jl);var rp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=6*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.int16[M+2]=v,this.int16[M+3]=P,this.int16[M+4]=S,this.int16[M+5]=C,p},a}(Xo);rp.prototype.bytesPerElement=12,hr("StructArrayLayout2i2i2i12",rp);var op=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P){var S=this.length;return this.resize(S+1),this.emplace(S,p,h,_,v,P)},a.prototype.emplace=function(p,h,_,v,P,S){var C=4*p,M=8*p;return this.float32[C+0]=h,this.float32[C+1]=_,this.float32[C+2]=v,this.int16[M+6]=P,this.int16[M+7]=S,p},a}(Xo);op.prototype.bytesPerElement=16,hr("StructArrayLayout2f1f2i16",op);var $c=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=12*p,C=3*p;return this.uint8[S+0]=h,this.uint8[S+1]=_,this.float32[C+1]=v,this.float32[C+2]=P,p},a}(Xo);$c.prototype.bytesPerElement=12,hr("StructArrayLayout2ub2f12",$c);var Rs=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.uint16[P+0]=h,this.uint16[P+1]=_,this.uint16[P+2]=v,p},a}(Xo);Rs.prototype.bytesPerElement=6,hr("StructArrayLayout3ui6",Rs);var cs=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve){var Ze=this.length;return this.resize(Ze+1),this.emplace(Ze,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze){var it=24*p,ut=12*p,Et=48*p;return this.int16[it+0]=h,this.int16[it+1]=_,this.uint16[it+2]=v,this.uint16[it+3]=P,this.uint32[ut+2]=S,this.uint32[ut+3]=C,this.uint32[ut+4]=M,this.uint16[it+10]=O,this.uint16[it+11]=B,this.uint16[it+12]=j,this.float32[ut+7]=Y,this.float32[ut+8]=ce,this.uint8[Et+36]=he,this.uint8[Et+37]=Re,this.uint8[Et+38]=be,this.uint32[ut+10]=Ve,this.int16[it+22]=Ze,p},a}(Xo);cs.prototype.bytesPerElement=48,hr("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",cs);var ec=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po){var Zr=this.length;return this.resize(Zr+1),this.emplace(Zr,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po,Zr){var Pr=34*p,Co=17*p;return this.int16[Pr+0]=h,this.int16[Pr+1]=_,this.int16[Pr+2]=v,this.int16[Pr+3]=P,this.int16[Pr+4]=S,this.int16[Pr+5]=C,this.int16[Pr+6]=M,this.int16[Pr+7]=O,this.uint16[Pr+8]=B,this.uint16[Pr+9]=j,this.uint16[Pr+10]=Y,this.uint16[Pr+11]=ce,this.uint16[Pr+12]=he,this.uint16[Pr+13]=Re,this.uint16[Pr+14]=be,this.uint16[Pr+15]=Ve,this.uint16[Pr+16]=Ze,this.uint16[Pr+17]=it,this.uint16[Pr+18]=ut,this.uint16[Pr+19]=Et,this.uint16[Pr+20]=kt,this.uint16[Pr+21]=qt,this.uint16[Pr+22]=Ir,this.uint32[Co+12]=pr,this.float32[Co+13]=Br,this.float32[Co+14]=dr,this.float32[Co+15]=Po,this.float32[Co+16]=Zr,p},a}(Xo);ec.prototype.bytesPerElement=68,hr("StructArrayLayout8i15ui1ul4f68",ec);var Mu=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.float32[1*p+0]=h,p},a}(Xo);Mu.prototype.bytesPerElement=4,hr("StructArrayLayout1f4",Mu);var Qa=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.int16[P+0]=h,this.int16[P+1]=_,this.int16[P+2]=v,p},a}(Xo);Qa.prototype.bytesPerElement=6,hr("StructArrayLayout3i6",Qa);var qc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=4*p;return this.uint32[2*p+0]=h,this.uint16[P+2]=_,this.uint16[P+3]=v,p},a}(Xo);qc.prototype.bytesPerElement=8,hr("StructArrayLayout1ul2ui8",qc);var dl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.uint16[v+0]=h,this.uint16[v+1]=_,p},a}(Xo);dl.prototype.bytesPerElement=4,hr("StructArrayLayout2ui4",dl);var tc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.uint16[1*p+0]=h,p},a}(Xo);tc.prototype.bytesPerElement=2,hr("StructArrayLayout1ui2",tc);var rc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=4*p;return this.float32[S+0]=h,this.float32[S+1]=_,this.float32[S+2]=v,this.float32[S+3]=P,p},a}(Xo);rc.prototype.bytesPerElement=16,hr("StructArrayLayout4f16",rc);var l=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return p.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},p.x1.get=function(){return this._structArray.int16[this._pos2+2]},p.y1.get=function(){return this._structArray.int16[this._pos2+3]},p.x2.get=function(){return this._structArray.int16[this._pos2+4]},p.y2.get=function(){return this._structArray.int16[this._pos2+5]},p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},p.anchorPoint.get=function(){return new x(this.anchorPointX,this.anchorPointY)},Object.defineProperties(a.prototype,p),a}(tp);l.prototype.size=20;var d=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new l(this,p)},a}(Jl);hr("CollisionBoxArray",d);var c=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},p.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},p.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},p.segment.get=function(){return this._structArray.uint16[this._pos2+10]},p.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},p.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},p.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},p.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},p.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},p.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},p.placedOrientation.set=function(h){this._structArray.uint8[this._pos1+37]=h},p.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},p.hidden.set=function(h){this._structArray.uint8[this._pos1+38]=h},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},p.crossTileID.set=function(h){this._structArray.uint32[this._pos4+10]=h},p.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(a.prototype,p),a}(tp);c.prototype.size=48;var f=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new c(this,p)},a}(cs);hr("PlacedSymbolArray",f);var E=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},p.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},p.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},p.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},p.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},p.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},p.key.get=function(){return this._structArray.uint16[this._pos2+8]},p.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},p.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},p.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},p.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},p.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},p.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},p.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},p.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},p.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},p.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},p.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},p.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},p.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},p.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},p.crossTileID.set=function(h){this._structArray.uint32[this._pos4+12]=h},p.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},p.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},p.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},p.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(a.prototype,p),a}(tp);E.prototype.size=68;var A=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new E(this,p)},a}(ec);hr("SymbolInstanceArray",A);var T=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getoffsetX=function(p){return this.float32[1*p+0]},a}(Mu);hr("GlyphOffsetArray",T);var w=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getx=function(p){return this.int16[3*p+0]},a.prototype.gety=function(p){return this.int16[3*p+1]},a.prototype.gettileUnitDistanceFromAnchor=function(p){return this.int16[3*p+2]},a}(Qa);hr("SymbolLineVertexArray",w);var D=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(a.prototype,p),a}(tp);D.prototype.size=8;var z=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new D(this,p)},a}(qc);hr("FeatureIndexArray",z);var $=yn([{name:"a_pos",components:2,type:"Int16"}],4).members,K=function(o){o===void 0&&(o=[]),this.segments=o};function ee(o,a){return 256*(o=V(Math.floor(o),0,255))+V(Math.floor(a),0,255)}K.prototype.prepareSegment=function(o,a,p,h){var _=this.segments[this.segments.length-1];return o>K.MAX_VERTEX_ARRAY_LENGTH&&ze("Max vertices per segment is "+K.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+o),(!_||_.vertexLength+o>K.MAX_VERTEX_ARRAY_LENGTH||_.sortKey!==h)&&(_={vertexOffset:a.length,primitiveOffset:p.length,vertexLength:0,primitiveLength:0},h!==void 0&&(_.sortKey=h),this.segments.push(_)),_},K.prototype.get=function(){return this.segments},K.prototype.destroy=function(){for(var o=0,a=this.segments;o<a.length;o+=1){var p=a[o];for(var h in p.vaos)p.vaos[h].destroy()}},K.simpleSegment=function(o,a,p,h){return new K([{vertexOffset:o,primitiveOffset:a,vertexLength:p,primitiveLength:h,vaos:{},sortKey:0}])},K.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,hr("SegmentVector",K);var _e=yn([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]),de=y(function(o){o.exports=function(a,p){var h,_,v,P,S,C,M,O;for(_=a.length-(h=3&a.length),v=p,S=3432918353,C=461845907,O=0;O<_;)M=255&a.charCodeAt(O)|(255&a.charCodeAt(++O))<<8|(255&a.charCodeAt(++O))<<16|(255&a.charCodeAt(++O))<<24,++O,v=27492+(65535&(P=5*(65535&(v=(v^=M=(65535&(M=(M=(65535&M)*S+(((M>>>16)*S&65535)<<16)&4294967295)<<15|M>>>17))*C+(((M>>>16)*C&65535)<<16)&4294967295)<<13|v>>>19))+((5*(v>>>16)&65535)<<16)&4294967295))+((58964+(P>>>16)&65535)<<16);switch(M=0,h){case 3:M^=(255&a.charCodeAt(O+2))<<16;case 2:M^=(255&a.charCodeAt(O+1))<<8;case 1:v^=M=(65535&(M=(M=(65535&(M^=255&a.charCodeAt(O)))*S+(((M>>>16)*S&65535)<<16)&4294967295)<<15|M>>>17))*C+(((M>>>16)*C&65535)<<16)&4294967295}return v^=a.length,v=2246822507*(65535&(v^=v>>>16))+((2246822507*(v>>>16)&65535)<<16)&4294967295,v=3266489909*(65535&(v^=v>>>13))+((3266489909*(v>>>16)&65535)<<16)&4294967295,(v^=v>>>16)>>>0}}),Te=y(function(o){o.exports=function(a,p){for(var h,_=a.length,v=p^_,P=0;_>=4;)h=1540483477*(65535&(h=255&a.charCodeAt(P)|(255&a.charCodeAt(++P))<<8|(255&a.charCodeAt(++P))<<16|(255&a.charCodeAt(++P))<<24))+((1540483477*(h>>>16)&65535)<<16),v=1540483477*(65535&v)+((1540483477*(v>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),_-=4,++P;switch(_){case 3:v^=(255&a.charCodeAt(P+2))<<16;case 2:v^=(255&a.charCodeAt(P+1))<<8;case 1:v=1540483477*(65535&(v^=255&a.charCodeAt(P)))+((1540483477*(v>>>16)&65535)<<16)}return v=1540483477*(65535&(v^=v>>>13))+((1540483477*(v>>>16)&65535)<<16),(v^=v>>>15)>>>0}}),le=de,Fe=Te;le.murmur3=de,le.murmur2=Fe;var De=function(){this.ids=[],this.positions=[],this.indexed=!1};De.prototype.add=function(o,a,p,h){this.ids.push(at(o)),this.positions.push(a,p,h)},De.prototype.getPositions=function(o){for(var a=at(o),p=0,h=this.ids.length-1;p<h;){var _=p+h>>1;this.ids[_]>=a?h=_:p=_+1}for(var v=[];this.ids[p]===a;)v.push({index:this.positions[3*p],start:this.positions[3*p+1],end:this.positions[3*p+2]}),p++;return v},De.serialize=function(o,a){var p=new Float64Array(o.ids),h=new Uint32Array(o.positions);return function _(v,P,S,C){for(;S<C;){for(var M=v[S+C>>1],O=S-1,B=C+1;;){do O++;while(v[O]<M);do B--;while(v[B]>M);if(O>=B)break;Je(v,O,B),Je(P,3*O,3*B),Je(P,3*O+1,3*B+1),Je(P,3*O+2,3*B+2)}B-S<C-B?(_(v,P,S,B),S=B+1):(_(v,P,B+1,C),C=B)}}(p,h,0,p.length-1),a&&a.push(p.buffer,h.buffer),{ids:p,positions:h}},De.deserialize=function(o){var a=new De;return a.ids=o.ids,a.positions=o.positions,a.indexed=!0,a};var Xe=Math.pow(2,53)-1;function at(o){var a=+o;return!isNaN(a)&&a<=Xe?a:le(String(o))}function Je(o,a,p){var h=o[a];o[a]=o[p],o[p]=h}hr("FeaturePositionMap",De);var ct=function(o,a){this.gl=o.gl,this.location=a},Pt=function(o){function a(p,h){o.call(this,p,h),this.current=0}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){this.current!==p&&(this.current=p,this.gl.uniform1i(this.location,p))},a}(ct),Ht=function(o){function a(p,h){o.call(this,p,h),this.current=0}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){this.current!==p&&(this.current=p,this.gl.uniform1f(this.location,p))},a}(ct),Bt=function(o){function a(p,h){o.call(this,p,h),this.current=[0,0]}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]||(this.current=p,this.gl.uniform2f(this.location,p[0],p[1]))},a}(ct),nr=function(o){function a(p,h){o.call(this,p,h),this.current=[0,0,0]}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]&&p[2]===this.current[2]||(this.current=p,this.gl.uniform3f(this.location,p[0],p[1],p[2]))},a}(ct),Cr=function(o){function a(p,h){o.call(this,p,h),this.current=[0,0,0,0]}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]&&p[2]===this.current[2]&&p[3]===this.current[3]||(this.current=p,this.gl.uniform4f(this.location,p[0],p[1],p[2],p[3]))},a}(ct),Dr=function(o){function a(p,h){o.call(this,p,h),this.current=Eo.transparent}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){p.r===this.current.r&&p.g===this.current.g&&p.b===this.current.b&&p.a===this.current.a||(this.current=p,this.gl.uniform4f(this.location,p.r,p.g,p.b,p.a))},a}(ct),Nr=new Float32Array(16),Lo=function(o){function a(p,h){o.call(this,p,h),this.current=Nr}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.set=function(p){if(p[12]!==this.current[12]||p[0]!==this.current[0])return this.current=p,void this.gl.uniformMatrix4fv(this.location,!1,p);for(var h=1;h<16;h++)if(p[h]!==this.current[h]){this.current=p,this.gl.uniformMatrix4fv(this.location,!1,p);break}},a}(ct);function cr(o){return[ee(255*o.r,255*o.g),ee(255*o.b,255*o.a)]}var $r=function(o,a,p){this.value=o,this.uniformNames=a.map(function(h){return"u_"+h}),this.type=p};$r.prototype.setUniform=function(o,a,p){o.set(p.constantOr(this.value))},$r.prototype.getBinding=function(o,a,p){return this.type==="color"?new Dr(o,a):new Ht(o,a)};var lo=function(o,a){this.uniformNames=a.map(function(p){return"u_"+p}),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1};lo.prototype.setConstantPatternPositions=function(o,a){this.pixelRatioFrom=a.pixelRatio,this.pixelRatioTo=o.pixelRatio,this.patternFrom=a.tlbr,this.patternTo=o.tlbr},lo.prototype.setUniform=function(o,a,p,h){var _=h==="u_pattern_to"?this.patternTo:h==="u_pattern_from"?this.patternFrom:h==="u_pixel_ratio_to"?this.pixelRatioTo:h==="u_pixel_ratio_from"?this.pixelRatioFrom:null;_&&o.set(_)},lo.prototype.getBinding=function(o,a,p){return p.substr(0,9)==="u_pattern"?new Cr(o,a):new Ht(o,a)};var Xr=function(o,a,p,h){this.expression=o,this.type=p,this.maxValue=0,this.paintVertexAttributes=a.map(function(_){return{name:"a_"+_,type:"Float32",components:p==="color"?2:1,offset:0}}),this.paintVertexArray=new h};Xr.prototype.populatePaintArray=function(o,a,p,h,_){var v=this.paintVertexArray.length,P=this.expression.evaluate(new po(0),a,{},h,[],_);this.paintVertexArray.resize(o),this._setPaintValue(v,o,P)},Xr.prototype.updatePaintArray=function(o,a,p,h){var _=this.expression.evaluate({zoom:0},p,h);this._setPaintValue(o,a,_)},Xr.prototype._setPaintValue=function(o,a,p){if(this.type==="color")for(var h=cr(p),_=o;_<a;_++)this.paintVertexArray.emplace(_,h[0],h[1]);else{for(var v=o;v<a;v++)this.paintVertexArray.emplace(v,p);this.maxValue=Math.max(this.maxValue,Math.abs(p))}},Xr.prototype.upload=function(o){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=o.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Xr.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()};var Gr=function(o,a,p,h,_,v){this.expression=o,this.uniformNames=a.map(function(P){return"u_"+P+"_t"}),this.type=p,this.useIntegerZoom=h,this.zoom=_,this.maxValue=0,this.paintVertexAttributes=a.map(function(P){return{name:"a_"+P,type:"Float32",components:p==="color"?4:2,offset:0}}),this.paintVertexArray=new v};Gr.prototype.populatePaintArray=function(o,a,p,h,_){var v=this.expression.evaluate(new po(this.zoom),a,{},h,[],_),P=this.expression.evaluate(new po(this.zoom+1),a,{},h,[],_),S=this.paintVertexArray.length;this.paintVertexArray.resize(o),this._setPaintValue(S,o,v,P)},Gr.prototype.updatePaintArray=function(o,a,p,h){var _=this.expression.evaluate({zoom:this.zoom},p,h),v=this.expression.evaluate({zoom:this.zoom+1},p,h);this._setPaintValue(o,a,_,v)},Gr.prototype._setPaintValue=function(o,a,p,h){if(this.type==="color")for(var _=cr(p),v=cr(h),P=o;P<a;P++)this.paintVertexArray.emplace(P,_[0],_[1],v[0],v[1]);else{for(var S=o;S<a;S++)this.paintVertexArray.emplace(S,p,h);this.maxValue=Math.max(this.maxValue,Math.abs(p),Math.abs(h))}},Gr.prototype.upload=function(o){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=o.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Gr.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Gr.prototype.setUniform=function(o,a){var p=this.useIntegerZoom?Math.floor(a.zoom):a.zoom,h=V(this.expression.interpolationFactor(p,this.zoom,this.zoom+1),0,1);o.set(h)},Gr.prototype.getBinding=function(o,a,p){return new Ht(o,a)};var uo=function(o,a,p,h,_,v){this.expression=o,this.type=a,this.useIntegerZoom=p,this.zoom=h,this.layerId=v,this.zoomInPaintVertexArray=new _,this.zoomOutPaintVertexArray=new _};uo.prototype.populatePaintArray=function(o,a,p){var h=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(o),this.zoomOutPaintVertexArray.resize(o),this._setPaintValues(h,o,a.patterns&&a.patterns[this.layerId],p)},uo.prototype.updatePaintArray=function(o,a,p,h,_){this._setPaintValues(o,a,p.patterns&&p.patterns[this.layerId],_)},uo.prototype._setPaintValues=function(o,a,p,h){if(h&&p){var _=h[p.min],v=h[p.mid],P=h[p.max];if(_&&v&&P)for(var S=o;S<a;S++)this.zoomInPaintVertexArray.emplace(S,v.tl[0],v.tl[1],v.br[0],v.br[1],_.tl[0],_.tl[1],_.br[0],_.br[1],v.pixelRatio,_.pixelRatio),this.zoomOutPaintVertexArray.emplace(S,v.tl[0],v.tl[1],v.br[0],v.br[1],P.tl[0],P.tl[1],P.br[0],P.br[1],v.pixelRatio,P.pixelRatio)}},uo.prototype.upload=function(o){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=o.createVertexBuffer(this.zoomInPaintVertexArray,_e.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=o.createVertexBuffer(this.zoomOutPaintVertexArray,_e.members,this.expression.isStateDependent))},uo.prototype.destroy=function(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()};var jr=function(o,a,p){this.binders={},this._buffers=[];var h=[];for(var _ in o.paint._values)if(p(_)){var v=o.paint.get(_);if(v instanceof Wn&&Ks(v.property.specification)){var P=qi(_,o.type),S=v.value,C=v.property.specification.type,M=v.property.useIntegerZoom,O=v.property.specification["property-type"],B=O==="cross-faded"||O==="cross-faded-data-driven";if(S.kind==="constant")this.binders[_]=B?new lo(S.value,P):new $r(S.value,P,C),h.push("/u_"+_);else if(S.kind==="source"||B){var j=Si(_,C,"source");this.binders[_]=B?new uo(S,C,M,a,j,o.id):new Xr(S,P,C,j),h.push("/a_"+_)}else{var Y=Si(_,C,"composite");this.binders[_]=new Gr(S,P,C,M,a,Y),h.push("/z_"+_)}}}this.cacheKey=h.sort().join("")};jr.prototype.getMaxValue=function(o){var a=this.binders[o];return a instanceof Xr||a instanceof Gr?a.maxValue:0},jr.prototype.populatePaintArrays=function(o,a,p,h,_){for(var v in this.binders){var P=this.binders[v];(P instanceof Xr||P instanceof Gr||P instanceof uo)&&P.populatePaintArray(o,a,p,h,_)}},jr.prototype.setConstantPatternPositions=function(o,a){for(var p in this.binders){var h=this.binders[p];h instanceof lo&&h.setConstantPatternPositions(o,a)}},jr.prototype.updatePaintArrays=function(o,a,p,h,_){var v=!1;for(var P in o)for(var S=0,C=a.getPositions(P);S<C.length;S+=1){var M=C[S],O=p.feature(M.index);for(var B in this.binders){var j=this.binders[B];if((j instanceof Xr||j instanceof Gr||j instanceof uo)&&j.expression.isStateDependent===!0){var Y=h.paint.get(B);j.expression=Y.value,j.updatePaintArray(M.start,M.end,O,o[P],_),v=!0}}}return v},jr.prototype.defines=function(){var o=[];for(var a in this.binders){var p=this.binders[a];(p instanceof $r||p instanceof lo)&&o.push.apply(o,p.uniformNames.map(function(h){return"#define HAS_UNIFORM_"+h}))}return o},jr.prototype.getBinderAttributes=function(){var o=[];for(var a in this.binders){var p=this.binders[a];if(p instanceof Xr||p instanceof Gr)for(var h=0;h<p.paintVertexAttributes.length;h++)o.push(p.paintVertexAttributes[h].name);else if(p instanceof uo)for(var _=0;_<_e.members.length;_++)o.push(_e.members[_].name)}return o},jr.prototype.getBinderUniforms=function(){var o=[];for(var a in this.binders){var p=this.binders[a];if(p instanceof $r||p instanceof lo||p instanceof Gr)for(var h=0,_=p.uniformNames;h<_.length;h+=1)o.push(_[h])}return o},jr.prototype.getPaintVertexBuffers=function(){return this._buffers},jr.prototype.getUniforms=function(o,a){var p=[];for(var h in this.binders){var _=this.binders[h];if(_ instanceof $r||_ instanceof lo||_ instanceof Gr)for(var v=0,P=_.uniformNames;v<P.length;v+=1){var S=P[v];if(a[S]){var C=_.getBinding(o,a[S],S);p.push({name:S,property:h,binding:C})}}}return p},jr.prototype.setUniforms=function(o,a,p,h){for(var _=0,v=a;_<v.length;_+=1){var P=v[_],S=P.name,C=P.property;this.binders[C].setUniform(P.binding,h,p.get(C),S)}},jr.prototype.updatePaintBuffers=function(o){for(var a in this._buffers=[],this.binders){var p=this.binders[a];if(o&&p instanceof uo){var h=o.fromScale===2?p.zoomInPaintVertexBuffer:p.zoomOutPaintVertexBuffer;h&&this._buffers.push(h)}else(p instanceof Xr||p instanceof Gr)&&p.paintVertexBuffer&&this._buffers.push(p.paintVertexBuffer)}},jr.prototype.upload=function(o){for(var a in this.binders){var p=this.binders[a];(p instanceof Xr||p instanceof Gr||p instanceof uo)&&p.upload(o)}this.updatePaintBuffers()},jr.prototype.destroy=function(){for(var o in this.binders){var a=this.binders[o];(a instanceof Xr||a instanceof Gr||a instanceof uo)&&a.destroy()}};var zr=function(o,a,p){p===void 0&&(p=function(){return!0}),this.programConfigurations={};for(var h=0,_=o;h<_.length;h+=1){var v=_[h];this.programConfigurations[v.id]=new jr(v,a,p)}this.needsUpload=!1,this._featureMap=new De,this._bufferOffset=0};function qi(o,a){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[o]||[o.replace(a+"-","").replace(/-/g,"_")]}function Si(o,a,p){var h={color:{source:Rp,composite:rc},number:{source:Mu,composite:Rp}},_=function(v){return{"line-pattern":{source:ws,composite:ws},"fill-pattern":{source:ws,composite:ws},"fill-extrusion-pattern":{source:ws,composite:ws}}[v]}(o);return _&&_[p]||h[a][p]}zr.prototype.populatePaintArrays=function(o,a,p,h,_,v){for(var P in this.programConfigurations)this.programConfigurations[P].populatePaintArrays(o,a,h,_,v);a.id!==void 0&&this._featureMap.add(a.id,p,this._bufferOffset,o),this._bufferOffset=o,this.needsUpload=!0},zr.prototype.updatePaintArrays=function(o,a,p,h){for(var _=0,v=p;_<v.length;_+=1){var P=v[_];this.needsUpload=this.programConfigurations[P.id].updatePaintArrays(o,this._featureMap,a,P,h)||this.needsUpload}},zr.prototype.get=function(o){return this.programConfigurations[o]},zr.prototype.upload=function(o){if(this.needsUpload){for(var a in this.programConfigurations)this.programConfigurations[a].upload(o);this.needsUpload=!1}},zr.prototype.destroy=function(){for(var o in this.programConfigurations)this.programConfigurations[o].destroy()},hr("ConstantBinder",$r),hr("CrossFadedConstantBinder",lo),hr("SourceExpressionBinder",Xr),hr("CrossFadedCompositeBinder",uo),hr("CompositeExpressionBinder",Gr),hr("ProgramConfiguration",jr,{omit:["_buffers"]}),hr("ProgramConfigurationSet",zr);var Rn=Math.pow(2,14)-1,hn=-Rn-1;function Fi(o){for(var a=8192/o.extent,p=o.loadGeometry(),h=0;h<p.length;h++)for(var _=p[h],v=0;v<_.length;v++){var P=_[v],S=Math.round(P.x*a),C=Math.round(P.y*a);P.x=V(S,hn,Rn),P.y=V(C,hn,Rn),(S<P.x||S>P.x+1||C<P.y||C>P.y+1)&&ze("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return p}function wi(o,a){return{type:o.type,id:o.id,properties:o.properties,geometry:a?Fi(o):[]}}function ra(o,a,p,h,_){o.emplaceBack(2*a+(h+1)/2,2*p+(_+1)/2)}var Zn=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new Iu,this.indexArray=new Rs,this.segments=new K,this.programConfigurations=new zr(o.layers,o.zoom),this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};function Cs(o,a){for(var p=0;p<o.length;p++)if(ds(a,o[p]))return!0;for(var h=0;h<a.length;h++)if(ds(o,a[h]))return!0;return!!Ip(o,a)}function oa(o,a,p){return!!ds(o,a)||!!Is(a,o,p)}function Ja(o,a){if(o.length===1)return ou(a,o[0]);for(var p=0;p<a.length;p++)for(var h=a[p],_=0;_<h.length;_++)if(ds(o,h[_]))return!0;for(var v=0;v<o.length;v++)if(ou(a,o[v]))return!0;for(var P=0;P<a.length;P++)if(Ip(o,a[P]))return!0;return!1}function wa(o,a,p){if(o.length>1){if(Ip(o,a))return!0;for(var h=0;h<a.length;h++)if(Is(a[h],o,p))return!0}for(var _=0;_<o.length;_++)if(Is(o[_],a,p))return!0;return!1}function Ip(o,a){if(o.length===0||a.length===0)return!1;for(var p=0;p<o.length-1;p++)for(var h=o[p],_=o[p+1],v=0;v<a.length-1;v++)if(ip(h,_,a[v],a[v+1]))return!0;return!1}function ip(o,a,p,h){return st(o,p,h)!==st(a,p,h)&&st(o,a,p)!==st(o,a,h)}function Is(o,a,p){var h=p*p;if(a.length===1)return o.distSqr(a[0])<h;for(var _=1;_<a.length;_++)if(Nu(o,a[_-1],a[_])<h)return!0;return!1}function Nu(o,a,p){var h=a.distSqr(p);if(h===0)return o.distSqr(a);var _=((o.x-a.x)*(p.x-a.x)+(o.y-a.y)*(p.y-a.y))/h;return o.distSqr(_<0?a:_>1?p:p.sub(a)._mult(_)._add(a))}function ou(o,a){for(var p,h,_,v=!1,P=0;P<o.length;P++)for(var S=0,C=(p=o[P]).length-1;S<p.length;C=S++)(h=p[S]).y>a.y!=(_=p[C]).y>a.y&&a.x<(_.x-h.x)*(a.y-h.y)/(_.y-h.y)+h.x&&(v=!v);return v}function ds(o,a){for(var p=!1,h=0,_=o.length-1;h<o.length;_=h++){var v=o[h],P=o[_];v.y>a.y!=P.y>a.y&&a.x<(P.x-v.x)*(a.y-v.y)/(P.y-v.y)+v.x&&(p=!p)}return p}function Du(o,a,p){var h=p[0],_=p[2];if(o.x<h.x&&a.x<h.x||o.x>_.x&&a.x>_.x||o.y<h.y&&a.y<h.y||o.y>_.y&&a.y>_.y)return!1;var v=st(o,a,p[0]);return v!==st(o,a,p[1])||v!==st(o,a,p[2])||v!==st(o,a,p[3])}function kn(o,a,p){var h=a.paint.get(o).value;return h.kind==="constant"?h.value:p.programConfigurations.get(a.id).getMaxValue(o)}function Bi(o){return Math.sqrt(o[0]*o[0]+o[1]*o[1])}function da(o,a,p,h,_){if(!a[0]&&!a[1])return o;var v=x.convert(a)._mult(_);p==="viewport"&&v._rotate(-h);for(var P=[],S=0;S<o.length;S++)P.push(o[S].sub(v));return P}Zn.prototype.populate=function(o,a,p){var h=this.layers[0],_=[],v=null;h.type==="circle"&&(v=h.layout.get("circle-sort-key"));for(var P=0,S=o;P<S.length;P+=1){var C=S[P],M=C.feature,O=C.id,B=C.index,j=C.sourceLayerIndex,Y=this.layers[0]._featureFilter.needGeometry,ce=wi(M,Y);if(this.layers[0]._featureFilter.filter(new po(this.zoom),ce,p)){var he=v?v.evaluate(ce,{},p):void 0,Re={id:O,properties:M.properties,type:M.type,sourceLayerIndex:j,index:B,geometry:Y?ce.geometry:Fi(M),patterns:{},sortKey:he};_.push(Re)}}v&&_.sort(function(qt,Ir){return qt.sortKey-Ir.sortKey});for(var be=0,Ve=_;be<Ve.length;be+=1){var Ze=Ve[be],it=Ze.geometry,ut=Ze.index,Et=Ze.sourceLayerIndex,kt=o[ut].feature;this.addFeature(Ze,it,ut,p),a.featureIndex.insert(kt,it,ut,Et,this.index)}},Zn.prototype.update=function(o,a,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,a,this.stateDependentLayers,p)},Zn.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},Zn.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Zn.prototype.upload=function(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,$),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0},Zn.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Zn.prototype.addFeature=function(o,a,p,h){for(var _=0,v=a;_<v.length;_+=1)for(var P=0,S=v[_];P<S.length;P+=1){var C=S[P],M=C.x,O=C.y;if(!(M<0||M>=8192||O<0||O>=8192)){var B=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,o.sortKey),j=B.vertexLength;ra(this.layoutVertexArray,M,O,-1,-1),ra(this.layoutVertexArray,M,O,1,-1),ra(this.layoutVertexArray,M,O,1,1),ra(this.layoutVertexArray,M,O,-1,1),this.indexArray.emplaceBack(j,j+1,j+2),this.indexArray.emplaceBack(j,j+3,j+2),B.vertexLength+=4,B.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,{},h)},hr("CircleBucket",Zn,{omit:["layers"]});var es=new Ai({"circle-sort-key":new gr(q.layout_circle["circle-sort-key"])}),ys={paint:new Ai({"circle-radius":new gr(q.paint_circle["circle-radius"]),"circle-color":new gr(q.paint_circle["circle-color"]),"circle-blur":new gr(q.paint_circle["circle-blur"]),"circle-opacity":new gr(q.paint_circle["circle-opacity"]),"circle-translate":new Rr(q.paint_circle["circle-translate"]),"circle-translate-anchor":new Rr(q.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new Rr(q.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new Rr(q.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new gr(q.paint_circle["circle-stroke-width"]),"circle-stroke-color":new gr(q.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new gr(q.paint_circle["circle-stroke-opacity"])}),layout:es},Io=typeof Float32Array<"u"?Float32Array:Array;function Cn(o){return 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}function Ki(o,a,p){var h=a[0],_=a[1],v=a[2],P=a[3],S=a[4],C=a[5],M=a[6],O=a[7],B=a[8],j=a[9],Y=a[10],ce=a[11],he=a[12],Re=a[13],be=a[14],Ve=a[15],Ze=p[0],it=p[1],ut=p[2],Et=p[3];return o[0]=Ze*h+it*S+ut*B+Et*he,o[1]=Ze*_+it*C+ut*j+Et*Re,o[2]=Ze*v+it*M+ut*Y+Et*be,o[3]=Ze*P+it*O+ut*ce+Et*Ve,o[4]=(Ze=p[4])*h+(it=p[5])*S+(ut=p[6])*B+(Et=p[7])*he,o[5]=Ze*_+it*C+ut*j+Et*Re,o[6]=Ze*v+it*M+ut*Y+Et*be,o[7]=Ze*P+it*O+ut*ce+Et*Ve,o[8]=(Ze=p[8])*h+(it=p[9])*S+(ut=p[10])*B+(Et=p[11])*he,o[9]=Ze*_+it*C+ut*j+Et*Re,o[10]=Ze*v+it*M+ut*Y+Et*be,o[11]=Ze*P+it*O+ut*ce+Et*Ve,o[12]=(Ze=p[12])*h+(it=p[13])*S+(ut=p[14])*B+(Et=p[15])*he,o[13]=Ze*_+it*C+ut*j+Et*Re,o[14]=Ze*v+it*M+ut*Y+Et*be,o[15]=Ze*P+it*O+ut*ce+Et*Ve,o}Math.hypot||(Math.hypot=function(){for(var o=arguments,a=0,p=arguments.length;p--;)a+=o[p]*o[p];return Math.sqrt(a)});var Ms,oc=Ki;function Ou(o,a,p){var h=a[0],_=a[1],v=a[2],P=a[3];return o[0]=p[0]*h+p[4]*_+p[8]*v+p[12]*P,o[1]=p[1]*h+p[5]*_+p[9]*v+p[13]*P,o[2]=p[2]*h+p[6]*_+p[10]*v+p[14]*P,o[3]=p[3]*h+p[7]*_+p[11]*v+p[15]*P,o}Ms=new Io(3),Io!=Float32Array&&(Ms[0]=0,Ms[1]=0,Ms[2]=0),function(){var o=new Io(4);Io!=Float32Array&&(o[0]=0,o[1]=0,o[2]=0,o[3]=0)}();var Kc=(function(){var o=new Io(2);Io!=Float32Array&&(o[0]=0,o[1]=0)}(),function(o){function a(p){o.call(this,p,ys)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.createBucket=function(p){return new Zn(p)},a.prototype.queryRadius=function(p){var h=p;return kn("circle-radius",this,h)+kn("circle-stroke-width",this,h)+Bi(this.paint.get("circle-translate"))},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C,M){for(var O=da(p,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),S.angle,C),B=this.paint.get("circle-radius").evaluate(h,_)+this.paint.get("circle-stroke-width").evaluate(h,_),j=this.paint.get("circle-pitch-alignment")==="map",Y=j?O:function(kt,qt){return kt.map(function(Ir){return np(Ir,qt)})}(O,M),ce=j?B*C:B,he=0,Re=v;he<Re.length;he+=1)for(var be=0,Ve=Re[he];be<Ve.length;be+=1){var Ze=Ve[be],it=j?Ze:np(Ze,M),ut=ce,Et=Ou([],[Ze.x,Ze.y,0,1],M);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ut*=Et[3]/S.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ut*=S.cameraToCenterDistance/Et[3]),oa(Y,it,ut))return!0}return!1},a}(Ka));function np(o,a){var p=Ou([],[o.x,o.y,0,1],a);return new x(p[0]/p[3],p[1]/p[3])}var ap=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(Zn);function hs(o,a,p,h){var _=a.width,v=a.height;if(h){if(h instanceof Uint8ClampedArray)h=new Uint8Array(h.buffer);else if(h.length!==_*v*p)throw new RangeError("mismatched image size")}else h=new Uint8Array(_*v*p);return o.width=_,o.height=v,o.data=h,o}function ic(o,a,p){var h=a.width,_=a.height;if(h!==o.width||_!==o.height){var v=hs({},{width:h,height:_},p);J0(o,v,{x:0,y:0},{x:0,y:0},{width:Math.min(o.width,h),height:Math.min(o.height,_)},p),o.width=h,o.height=_,o.data=v.data}}function J0(o,a,p,h,_,v){if(_.width===0||_.height===0)return a;if(_.width>o.width||_.height>o.height||p.x>o.width-_.width||p.y>o.height-_.height)throw new RangeError("out of range source coordinates for image copy");if(_.width>a.width||_.height>a.height||h.x>a.width-_.width||h.y>a.height-_.height)throw new RangeError("out of range destination coordinates for image copy");for(var P=o.data,S=a.data,C=0;C<_.height;C++)for(var M=((p.y+C)*o.width+p.x)*v,O=((h.y+C)*a.width+h.x)*v,B=0;B<_.width*v;B++)S[O+B]=P[M+B];return a}hr("HeatmapBucket",ap,{omit:["layers"]});var Mp=function(o,a){hs(this,o,1,a)};Mp.prototype.resize=function(o){ic(this,o,1)},Mp.prototype.clone=function(){return new Mp({width:this.width,height:this.height},new Uint8Array(this.data))},Mp.copy=function(o,a,p,h,_){J0(o,a,p,h,_,1)};var ya=function(o,a){hs(this,o,4,a)};ya.prototype.resize=function(o){ic(this,o,4)},ya.prototype.replace=function(o,a){a?this.data.set(o):this.data=o instanceof Uint8ClampedArray?new Uint8Array(o.buffer):o},ya.prototype.clone=function(){return new ya({width:this.width,height:this.height},new Uint8Array(this.data))},ya.copy=function(o,a,p,h,_){J0(o,a,p,h,_,4)},hr("AlphaImage",Mp),hr("RGBAImage",ya);var zy={paint:new Ai({"heatmap-radius":new gr(q.paint_heatmap["heatmap-radius"]),"heatmap-weight":new gr(q.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Rr(q.paint_heatmap["heatmap-intensity"]),"heatmap-color":new ls(q.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Rr(q.paint_heatmap["heatmap-opacity"])})};function Vy(o){var a={},p=o.resolution||256,h=o.clips?o.clips.length:1,_=o.image||new ya({width:p,height:h}),v=function(ce,he,Re){a[o.evaluationKey]=Re;var be=o.expression.evaluate(a);_.data[ce+he+0]=Math.floor(255*be.r/be.a),_.data[ce+he+1]=Math.floor(255*be.g/be.a),_.data[ce+he+2]=Math.floor(255*be.b/be.a),_.data[ce+he+3]=Math.floor(255*be.a)};if(o.clips)for(var P=0,S=0;P<h;++P,S+=4*p)for(var C=0,M=0;C<p;C++,M+=4){var O=C/(p-1),B=o.clips[P];v(S,M,B.start*(1-O)+B.end*O)}else for(var j=0,Y=0;j<p;j++,Y+=4)v(0,Y,j/(p-1));return _}var nc=function(o){function a(p){o.call(this,p,zy),this._updateColorRamp()}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.createBucket=function(p){return new ap(p)},a.prototype._handleSpecialPaintPropertyUpdate=function(p){p==="heatmap-color"&&this._updateColorRamp()},a.prototype._updateColorRamp=function(){this.colorRamp=Vy({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null},a.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},a.prototype.queryRadius=function(){return 0},a.prototype.queryIntersectsFeature=function(){return!1},a.prototype.hasOffscreenPass=function(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"},a}(Ka),Jf={paint:new Ai({"hillshade-illumination-direction":new Rr(q.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-anchor":new Rr(q.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new Rr(q.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new Rr(q.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new Rr(q.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new Rr(q.paint_hillshade["hillshade-accent-color"])})},em=function(o){function a(p){o.call(this,p,Jf)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.hasOffscreenPass=function(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"},a}(Ka),tm=yn([{name:"a_pos",components:2,type:"Int16"}],4).members,k1=z1,rm=z1;function z1(o,a,p){p=p||2;var h,_,v,P,S,C,M,O=a&&a.length,B=O?a[0]*p:o.length,j=Hy(o,0,B,p,!0),Y=[];if(!j||j.next===j.prev)return Y;if(O&&(j=function(he,Re,be,Ve){var Ze,it,ut,Et=[];for(Ze=0,it=Re.length;Ze<it;Ze++)(ut=Hy(he,Re[Ze]*Ve,Ze<it-1?Re[Ze+1]*Ve:he.length,Ve,!1))===ut.next&&(ut.steiner=!0),Et.push(H1(ut));for(Et.sort(sm),Ze=0;Ze<Et.length;Ze++)ed(Et[Ze],be),be=Np(be,be.next);return be}(o,a,j,p)),o.length>80*p){h=v=o[0],_=P=o[1];for(var ce=p;ce<B;ce+=p)(S=o[ce])<h&&(h=S),(C=o[ce+1])<_&&(_=C),S>v&&(v=S),C>P&&(P=C);M=(M=Math.max(v-h,P-_))!==0?1/M:0}return Qc(j,Y,p,h,_,M),Y}function Hy(o,a,p,h,_){var v,P;if(_===_l(o,a,p,h)>0)for(v=a;v<p;v+=h)P=uc(v,o[v],o[v+1],P);else for(v=p-h;v>=a;v-=h)P=uc(v,o[v],o[v+1],P);return P&&yl(P,P.next)&&(sp(P),P=P.next),P}function Np(o,a){if(!o)return o;a||(a=o);var p,h=o;do if(p=!1,h.steiner||!yl(h,h.next)&&Ui(h.prev,h,h.next)!==0)h=h.next;else{if(sp(h),(h=a=h.prev)===h.next)break;p=!0}while(p||h!==a);return a}function Qc(o,a,p,h,_,v,P){if(o){!P&&v&&function(O,B,j,Y){var ce=O;do ce.z===null&&(ce.z=ac(ce.x,ce.y,B,j,Y)),ce.prevZ=ce.prev,ce.nextZ=ce.next,ce=ce.next;while(ce!==O);ce.prevZ.nextZ=null,ce.prevZ=null,function(he){var Re,be,Ve,Ze,it,ut,Et,kt,qt=1;do{for(be=he,he=null,it=null,ut=0;be;){for(ut++,Ve=be,Et=0,Re=0;Re<qt&&(Et++,Ve=Ve.nextZ);Re++);for(kt=qt;Et>0||kt>0&&Ve;)Et!==0&&(kt===0||!Ve||be.z<=Ve.z)?(Ze=be,be=be.nextZ,Et--):(Ze=Ve,Ve=Ve.nextZ,kt--),it?it.nextZ=Ze:he=Ze,Ze.prevZ=it,it=Ze;be=Ve}it.nextZ=null,qt*=2}while(ut>1)}(ce)}(o,h,_,v);for(var S,C,M=o;o.prev!==o.next;)if(S=o.prev,C=o.next,v?im(o,h,_,v):om(o))a.push(S.i/p),a.push(o.i/p),a.push(C.i/p),sp(o),o=C.next,M=C.next;else if((o=C)===M){P?P===1?Qc(o=nm(Np(o),a,p),a,p,h,_,v,2):P===2&&am(o,a,p,h,_,v):Qc(Np(o),a,p,h,_,v,1);break}}}function om(o){var a=o.prev,p=o,h=o.next;if(Ui(a,p,h)>=0)return!1;for(var _=o.next.next;_!==o.prev;){if(Dp(a.x,a.y,p.x,p.y,h.x,h.y,_.x,_.y)&&Ui(_.prev,_,_.next)>=0)return!1;_=_.next}return!0}function im(o,a,p,h){var _=o.prev,v=o,P=o.next;if(Ui(_,v,P)>=0)return!1;for(var S=_.x>v.x?_.x>P.x?_.x:P.x:v.x>P.x?v.x:P.x,C=_.y>v.y?_.y>P.y?_.y:P.y:v.y>P.y?v.y:P.y,M=ac(_.x<v.x?_.x<P.x?_.x:P.x:v.x<P.x?v.x:P.x,_.y<v.y?_.y<P.y?_.y:P.y:v.y<P.y?v.y:P.y,a,p,h),O=ac(S,C,a,p,h),B=o.prevZ,j=o.nextZ;B&&B.z>=M&&j&&j.z<=O;){if(B!==o.prev&&B!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,B.x,B.y)&&Ui(B.prev,B,B.next)>=0||(B=B.prevZ,j!==o.prev&&j!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,j.x,j.y)&&Ui(j.prev,j,j.next)>=0))return!1;j=j.nextZ}for(;B&&B.z>=M;){if(B!==o.prev&&B!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,B.x,B.y)&&Ui(B.prev,B,B.next)>=0)return!1;B=B.prevZ}for(;j&&j.z<=O;){if(j!==o.prev&&j!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,j.x,j.y)&&Ui(j.prev,j,j.next)>=0)return!1;j=j.nextZ}return!0}function nm(o,a,p){var h=o;do{var _=h.prev,v=h.next.next;!yl(_,v)&&j1(_,h,h.next,v)&&Op(_,v)&&Op(v,_)&&(a.push(_.i/p),a.push(h.i/p),a.push(v.i/p),sp(h),sp(h.next),h=o=v),h=h.next}while(h!==o);return Np(h)}function am(o,a,p,h,_,v){var P=o;do{for(var S=P.next.next;S!==P.prev;){if(P.i!==S.i&&G1(P,S)){var C=sc(P,S);return P=Np(P,P.next),C=Np(C,C.next),Qc(P,a,p,h,_,v),void Qc(C,a,p,h,_,v)}S=S.next}P=P.next}while(P!==o)}function sm(o,a){return o.x-a.x}function ed(o,a){if(a=function(h,_){var v,P=_,S=h.x,C=h.y,M=-1/0;do{if(C<=P.y&&C>=P.next.y&&P.next.y!==P.y){var O=P.x+(C-P.y)*(P.next.x-P.x)/(P.next.y-P.y);if(O<=S&&O>M){if(M=O,O===S){if(C===P.y)return P;if(C===P.next.y)return P.next}v=P.x<P.next.x?P:P.next}}P=P.next}while(P!==_);if(!v)return null;if(S===M)return v;var B,j=v,Y=v.x,ce=v.y,he=1/0;P=v;do S>=P.x&&P.x>=Y&&S!==P.x&&Dp(C<ce?S:M,C,Y,ce,C<ce?M:S,C,P.x,P.y)&&(B=Math.abs(C-P.y)/(S-P.x),Op(P,h)&&(B<he||B===he&&(P.x>v.x||P.x===v.x&&V1(v,P)))&&(v=P,he=B)),P=P.next;while(P!==j);return v}(o,a)){var p=sc(a,o);Np(a,a.next),Np(p,p.next)}}function V1(o,a){return Ui(o.prev,o,a.prev)<0&&Ui(a.next,o,o.next)<0}function ac(o,a,p,h,_){return(o=1431655765&((o=858993459&((o=252645135&((o=16711935&((o=32767*(o-p)*_)|o<<8))|o<<4))|o<<2))|o<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=32767*(a-h)*_)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function H1(o){var a=o,p=o;do(a.x<p.x||a.x===p.x&&a.y<p.y)&&(p=a),a=a.next;while(a!==o);return p}function Dp(o,a,p,h,_,v,P,S){return(_-P)*(a-S)-(o-P)*(v-S)>=0&&(o-P)*(h-S)-(p-P)*(a-S)>=0&&(p-P)*(v-S)-(_-P)*(h-S)>=0}function G1(o,a){return o.next.i!==a.i&&o.prev.i!==a.i&&!function(p,h){var _=p;do{if(_.i!==p.i&&_.next.i!==p.i&&_.i!==h.i&&_.next.i!==h.i&&j1(_,_.next,p,h))return!0;_=_.next}while(_!==p);return!1}(o,a)&&(Op(o,a)&&Op(a,o)&&function(p,h){var _=p,v=!1,P=(p.x+h.x)/2,S=(p.y+h.y)/2;do _.y>S!=_.next.y>S&&_.next.y!==_.y&&P<(_.next.x-_.x)*(S-_.y)/(_.next.y-_.y)+_.x&&(v=!v),_=_.next;while(_!==p);return v}(o,a)&&(Ui(o.prev,o,a.prev)||Ui(o,a.prev,a))||yl(o,a)&&Ui(o.prev,o,o.next)>0&&Ui(a.prev,a,a.next)>0)}function Ui(o,a,p){return(a.y-o.y)*(p.x-a.x)-(a.x-o.x)*(p.y-a.y)}function yl(o,a){return o.x===a.x&&o.y===a.y}function j1(o,a,p,h){var _=fl(Ui(o,a,p)),v=fl(Ui(o,a,h)),P=fl(Ui(p,h,o)),S=fl(Ui(p,h,a));return _!==v&&P!==S||!(_!==0||!hl(o,p,a))||!(v!==0||!hl(o,h,a))||!(P!==0||!hl(p,o,h))||!(S!==0||!hl(p,a,h))}function hl(o,a,p){return a.x<=Math.max(o.x,p.x)&&a.x>=Math.min(o.x,p.x)&&a.y<=Math.max(o.y,p.y)&&a.y>=Math.min(o.y,p.y)}function fl(o){return o>0?1:o<0?-1:0}function Op(o,a){return Ui(o.prev,o,o.next)<0?Ui(o,a,o.next)>=0&&Ui(o,o.prev,a)>=0:Ui(o,a,o.prev)<0||Ui(o,o.next,a)<0}function sc(o,a){var p=new ml(o.i,o.x,o.y),h=new ml(a.i,a.x,a.y),_=o.next,v=a.prev;return o.next=a,a.prev=o,p.next=_,_.prev=p,h.next=p,p.prev=h,v.next=h,h.prev=v,h}function uc(o,a,p,h){var _=new ml(o,a,p);return h?(_.next=h.next,_.prev=h,h.next.prev=_,h.next=_):(_.prev=_,_.next=_),_}function sp(o){o.next.prev=o.prev,o.prev.next=o.next,o.prevZ&&(o.prevZ.nextZ=o.nextZ),o.nextZ&&(o.nextZ.prevZ=o.prevZ)}function ml(o,a,p){this.i=o,this.x=a,this.y=p,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function _l(o,a,p,h){for(var _=0,v=a,P=p-h;v<p;v+=h)_+=(o[P]-o[v])*(o[v+1]+o[P+1]),P=v;return _}function Gy(o,a,p,h,_){(function v(P,S,C,M,O){for(;M>C;){if(M-C>600){var B=M-C+1,j=S-C+1,Y=Math.log(B),ce=.5*Math.exp(2*Y/3),he=.5*Math.sqrt(Y*ce*(B-ce)/B)*(j-B/2<0?-1:1);v(P,S,Math.max(C,Math.floor(S-j*ce/B+he)),Math.min(M,Math.floor(S+(B-j)*ce/B+he)),O)}var Re=P[S],be=C,Ve=M;for(up(P,C,S),O(P[M],Re)>0&&up(P,C,M);be<Ve;){for(up(P,be,Ve),be++,Ve--;O(P[be],Re)<0;)be++;for(;O(P[Ve],Re)>0;)Ve--}O(P[C],Re)===0?up(P,C,Ve):up(P,++Ve,M),Ve<=S&&(C=Ve+1),S<=Ve&&(M=Ve-1)}})(o,a,p,h||o.length-1,_||gl)}function up(o,a,p){var h=o[a];o[a]=o[p],o[p]=h}function gl(o,a){return o<a?-1:o>a?1:0}function W1(o,a){var p=o.length;if(p<=1)return[o];for(var h,_,v=[],P=0;P<p;P++){var S=Vt(o[P]);S!==0&&(o[P].area=Math.abs(S),_===void 0&&(_=S<0),_===S<0?(h&&v.push(h),h=[o[P]]):h.push(o[P]))}if(h&&v.push(h),a>1)for(var C=0;C<v.length;C++)v[C].length<=a||(Gy(v[C],a,1,v[C].length-1,td),v[C]=v[C].slice(0,a));return v}function td(o,a){return a.area-o.area}function rd(o,a,p){for(var h=p.patternDependencies,_=!1,v=0,P=a;v<P.length;v+=1){var S=P[v].paint.get(o+"-pattern");S.isConstant()||(_=!0);var C=S.constantOr(null);C&&(_=!0,h[C.to]=!0,h[C.from]=!0)}return _}function od(o,a,p,h,_){for(var v=_.patternDependencies,P=0,S=a;P<S.length;P+=1){var C=S[P],M=C.paint.get(o+"-pattern").value;if(M.kind!=="constant"){var O=M.evaluate({zoom:h-1},p,{},_.availableImages),B=M.evaluate({zoom:h},p,{},_.availableImages),j=M.evaluate({zoom:h+1},p,{},_.availableImages);B=B&&B.name?B.name:B,j=j&&j.name?j.name:j,v[O=O&&O.name?O.name:O]=!0,v[B]=!0,v[j]=!0,p.patterns[C.id]={min:O,mid:B,max:j}}}return p}z1.deviation=function(o,a,p,h){var _=a&&a.length,v=Math.abs(_l(o,0,_?a[0]*p:o.length,p));if(_)for(var P=0,S=a.length;P<S;P++)v-=Math.abs(_l(o,a[P]*p,P<S-1?a[P+1]*p:o.length,p));var C=0;for(P=0;P<h.length;P+=3){var M=h[P]*p,O=h[P+1]*p,B=h[P+2]*p;C+=Math.abs((o[M]-o[B])*(o[O+1]-o[M+1])-(o[M]-o[O])*(o[B+1]-o[M+1]))}return v===0&&C===0?0:Math.abs((C-v)/v)},z1.flatten=function(o){for(var a=o[0][0].length,p={vertices:[],holes:[],dimensions:a},h=0,_=0;_<o.length;_++){for(var v=0;v<o[_].length;v++)for(var P=0;P<a;P++)p.vertices.push(o[_][v][P]);_>0&&p.holes.push(h+=o[_-1].length)}return p},k1.default=rm;var iu=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Iu,this.indexArray=new Rs,this.indexArray2=new dl,this.programConfigurations=new zr(o.layers,o.zoom),this.segments=new K,this.segments2=new K,this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};iu.prototype.populate=function(o,a,p){this.hasPattern=rd("fill",this.layers,a);for(var h=this.layers[0].layout.get("fill-sort-key"),_=[],v=0,P=o;v<P.length;v+=1){var S=P[v],C=S.feature,M=S.id,O=S.index,B=S.sourceLayerIndex,j=this.layers[0]._featureFilter.needGeometry,Y=wi(C,j);if(this.layers[0]._featureFilter.filter(new po(this.zoom),Y,p)){var ce=h?h.evaluate(Y,{},p,a.availableImages):void 0,he={id:M,properties:C.properties,type:C.type,sourceLayerIndex:B,index:O,geometry:j?Y.geometry:Fi(C),patterns:{},sortKey:ce};_.push(he)}}h&&_.sort(function(kt,qt){return kt.sortKey-qt.sortKey});for(var Re=0,be=_;Re<be.length;Re+=1){var Ve=be[Re],Ze=Ve.geometry,it=Ve.index,ut=Ve.sourceLayerIndex;if(this.hasPattern){var Et=od("fill",this.layers,Ve,this.zoom,a);this.patternFeatures.push(Et)}else this.addFeature(Ve,Ze,it,p,{});a.featureIndex.insert(o[it].feature,Ze,it,ut,this.index)}},iu.prototype.update=function(o,a,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,a,this.stateDependentLayers,p)},iu.prototype.addFeatures=function(o,a,p){for(var h=0,_=this.patternFeatures;h<_.length;h+=1){var v=_[h];this.addFeature(v,v.geometry,v.index,a,p)}},iu.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},iu.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},iu.prototype.upload=function(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,tm),this.indexBuffer=o.createIndexBuffer(this.indexArray),this.indexBuffer2=o.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(o),this.uploaded=!0},iu.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},iu.prototype.addFeature=function(o,a,p,h,_){for(var v=0,P=W1(a,500);v<P.length;v+=1){for(var S=P[v],C=0,M=0,O=S;M<O.length;M+=1)C+=O[M].length;for(var B=this.segments.prepareSegment(C,this.layoutVertexArray,this.indexArray),j=B.vertexLength,Y=[],ce=[],he=0,Re=S;he<Re.length;he+=1){var be=Re[he];if(be.length!==0){be!==S[0]&&ce.push(Y.length/2);var Ve=this.segments2.prepareSegment(be.length,this.layoutVertexArray,this.indexArray2),Ze=Ve.vertexLength;this.layoutVertexArray.emplaceBack(be[0].x,be[0].y),this.indexArray2.emplaceBack(Ze+be.length-1,Ze),Y.push(be[0].x),Y.push(be[0].y);for(var it=1;it<be.length;it++)this.layoutVertexArray.emplaceBack(be[it].x,be[it].y),this.indexArray2.emplaceBack(Ze+it-1,Ze+it),Y.push(be[it].x),Y.push(be[it].y);Ve.vertexLength+=be.length,Ve.primitiveLength+=be.length}}for(var ut=k1(Y,ce),Et=0;Et<ut.length;Et+=3)this.indexArray.emplaceBack(j+ut[Et],j+ut[Et+1],j+ut[Et+2]);B.vertexLength+=C,B.primitiveLength+=ut.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,_,h)},hr("FillBucket",iu,{omit:["layers","patternFeatures"]});var Lp=new Ai({"fill-sort-key":new gr(q.layout_fill["fill-sort-key"])}),jy={paint:new Ai({"fill-antialias":new Rr(q.paint_fill["fill-antialias"]),"fill-opacity":new gr(q.paint_fill["fill-opacity"]),"fill-color":new gr(q.paint_fill["fill-color"]),"fill-outline-color":new gr(q.paint_fill["fill-outline-color"]),"fill-translate":new Rr(q.paint_fill["fill-translate"]),"fill-translate-anchor":new Rr(q.paint_fill["fill-translate-anchor"]),"fill-pattern":new Ta(q.paint_fill["fill-pattern"])}),layout:Lp},Wy=function(o){function a(p){o.call(this,p,jy)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.recalculate=function(p,h){o.prototype.recalculate.call(this,p,h);var _=this.paint._values["fill-outline-color"];_.value.kind==="constant"&&_.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])},a.prototype.createBucket=function(p){return new iu(p)},a.prototype.queryRadius=function(){return Bi(this.paint.get("fill-translate"))},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C){return Ja(da(p,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),S.angle,C),v)},a.prototype.isTileClipped=function(){return!0},a}(Ka),Xy=yn([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4).members,Zy=vl;function vl(o,a,p,h,_){this.properties={},this.extent=p,this.type=0,this._pbf=o,this._geometry=-1,this._keys=h,this._values=_,o.readFields(um,this,a)}function um(o,a,p){o==1?a.id=p.readVarint():o==2?function(h,_){for(var v=h.readVarint()+h.pos;h.pos<v;){var P=_._keys[h.readVarint()],S=_._values[h.readVarint()];_.properties[P]=S}}(p,a):o==3?a.type=p.readVarint():o==4&&(a._geometry=p.pos)}function Lu(o){for(var a,p,h=0,_=0,v=o.length,P=v-1;_<v;P=_++)h+=((p=o[P]).x-(a=o[_]).x)*(a.y+p.y);return h}vl.types=["Unknown","Point","LineString","Polygon"],vl.prototype.loadGeometry=function(){var o=this._pbf;o.pos=this._geometry;for(var a,p=o.readVarint()+o.pos,h=1,_=0,v=0,P=0,S=[];o.pos<p;){if(_<=0){var C=o.readVarint();h=7&C,_=C>>3}if(_--,h===1||h===2)v+=o.readSVarint(),P+=o.readSVarint(),h===1&&(a&&S.push(a),a=[]),a.push(new x(v,P));else{if(h!==7)throw new Error("unknown command "+h);a&&a.push(a[0].clone())}}return a&&S.push(a),S},vl.prototype.bbox=function(){var o=this._pbf;o.pos=this._geometry;for(var a=o.readVarint()+o.pos,p=1,h=0,_=0,v=0,P=1/0,S=-1/0,C=1/0,M=-1/0;o.pos<a;){if(h<=0){var O=o.readVarint();p=7&O,h=O>>3}if(h--,p===1||p===2)(_+=o.readSVarint())<P&&(P=_),_>S&&(S=_),(v+=o.readSVarint())<C&&(C=v),v>M&&(M=v);else if(p!==7)throw new Error("unknown command "+p)}return[P,C,S,M]},vl.prototype.toGeoJSON=function(o,a,p){var h,_,v=this.extent*Math.pow(2,p),P=this.extent*o,S=this.extent*a,C=this.loadGeometry(),M=vl.types[this.type];function O(Y){for(var ce=0;ce<Y.length;ce++){var he=Y[ce];Y[ce]=[360*(he.x+P)/v-180,360/Math.PI*Math.atan(Math.exp((180-360*(he.y+S)/v)*Math.PI/180))-90]}}switch(this.type){case 1:var B=[];for(h=0;h<C.length;h++)B[h]=C[h][0];O(C=B);break;case 2:for(h=0;h<C.length;h++)O(C[h]);break;case 3:for(C=function(Y){var ce=Y.length;if(ce<=1)return[Y];for(var he,Re,be=[],Ve=0;Ve<ce;Ve++){var Ze=Lu(Y[Ve]);Ze!==0&&(Re===void 0&&(Re=Ze<0),Re===Ze<0?(he&&be.push(he),he=[Y[Ve]]):he.push(Y[Ve]))}return he&&be.push(he),be}(C),h=0;h<C.length;h++)for(_=0;_<C[h].length;_++)O(C[h][_])}C.length===1?C=C[0]:M="Multi"+M;var j={type:"Feature",geometry:{type:M,coordinates:C},properties:this.properties};return"id"in this&&(j.id=this.id),j};var id=El;function El(o,a){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=o,this._keys=[],this._values=[],this._features=[],o.readFields(Bp,this,a),this.length=this._features.length}function Bp(o,a,p){o===15?a.version=p.readVarint():o===1?a.name=p.readString():o===5?a.extent=p.readVarint():o===2?a._features.push(p.pos):o===3?a._keys.push(p.readString()):o===4&&a._values.push(function(h){for(var _=null,v=h.readVarint()+h.pos;h.pos<v;){var P=h.readVarint()>>3;_=P===1?h.readString():P===2?h.readFloat():P===3?h.readDouble():P===4?h.readVarint64():P===5?h.readVarint():P===6?h.readSVarint():P===7?h.readBoolean():null}return _}(p))}function Yy(o,a,p){if(o===3){var h=new id(p,p.readVarint()+p.pos);h.length&&(a[h.name]=h)}}El.prototype.feature=function(o){if(o<0||o>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[o];var a=this._pbf.readVarint()+this._pbf.pos;return new Zy(this._pbf,a,this.extent,this._keys,this._values)};var Up={VectorTile:function(o,a){this.layers=o.readFields(Yy,{},a)},VectorTileFeature:Zy,VectorTileLayer:id},X1=Up.VectorTileFeature.types,Z1=Math.pow(2,13);function ha(o,a,p,h,_,v,P,S){o.emplaceBack(a,p,2*Math.floor(h*Z1)+P,_*Z1*2,v*Z1*2,Math.round(S))}var ia=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new ru,this.indexArray=new Rs,this.programConfigurations=new zr(o.layers,o.zoom),this.segments=new K,this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};function fn(o,a){return o.x===a.x&&(o.x<0||o.x>8192)||o.y===a.y&&(o.y<0||o.y>8192)}ia.prototype.populate=function(o,a,p){this.features=[],this.hasPattern=rd("fill-extrusion",this.layers,a);for(var h=0,_=o;h<_.length;h+=1){var v=_[h],P=v.feature,S=v.id,C=v.index,M=v.sourceLayerIndex,O=this.layers[0]._featureFilter.needGeometry,B=wi(P,O);if(this.layers[0]._featureFilter.filter(new po(this.zoom),B,p)){var j={id:S,sourceLayerIndex:M,index:C,geometry:O?B.geometry:Fi(P),properties:P.properties,type:P.type,patterns:{}};this.hasPattern?this.features.push(od("fill-extrusion",this.layers,j,this.zoom,a)):this.addFeature(j,j.geometry,C,p,{}),a.featureIndex.insert(P,j.geometry,C,M,this.index,!0)}}},ia.prototype.addFeatures=function(o,a,p){for(var h=0,_=this.features;h<_.length;h+=1){var v=_[h];this.addFeature(v,v.geometry,v.index,a,p)}},ia.prototype.update=function(o,a,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,a,this.stateDependentLayers,p)},ia.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},ia.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},ia.prototype.upload=function(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,Xy),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0},ia.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ia.prototype.addFeature=function(o,a,p,h,_){for(var v=0,P=W1(a,500);v<P.length;v+=1){for(var S=P[v],C=0,M=0,O=S;M<O.length;M+=1)C+=O[M].length;for(var B=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),j=0,Y=S;j<Y.length;j+=1){var ce=Y[j];if(ce.length!==0&&!((Co=ce).every(function(co){return co.x<0})||Co.every(function(co){return co.x>8192})||Co.every(function(co){return co.y<0})||Co.every(function(co){return co.y>8192})))for(var he=0,Re=0;Re<ce.length;Re++){var be=ce[Re];if(Re>=1){var Ve=ce[Re-1];if(!fn(be,Ve)){B.vertexLength+4>K.MAX_VERTEX_ARRAY_LENGTH&&(B=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var Ze=be.sub(Ve)._perp()._unit(),it=Ve.dist(be);he+it>32768&&(he=0),ha(this.layoutVertexArray,be.x,be.y,Ze.x,Ze.y,0,0,he),ha(this.layoutVertexArray,be.x,be.y,Ze.x,Ze.y,0,1,he),ha(this.layoutVertexArray,Ve.x,Ve.y,Ze.x,Ze.y,0,0,he+=it),ha(this.layoutVertexArray,Ve.x,Ve.y,Ze.x,Ze.y,0,1,he);var ut=B.vertexLength;this.indexArray.emplaceBack(ut,ut+2,ut+1),this.indexArray.emplaceBack(ut+1,ut+2,ut+3),B.vertexLength+=4,B.primitiveLength+=2}}}}if(B.vertexLength+C>K.MAX_VERTEX_ARRAY_LENGTH&&(B=this.segments.prepareSegment(C,this.layoutVertexArray,this.indexArray)),X1[o.type]==="Polygon"){for(var Et=[],kt=[],qt=B.vertexLength,Ir=0,pr=S;Ir<pr.length;Ir+=1){var Br=pr[Ir];if(Br.length!==0){Br!==S[0]&&kt.push(Et.length/2);for(var dr=0;dr<Br.length;dr++){var Po=Br[dr];ha(this.layoutVertexArray,Po.x,Po.y,0,0,1,1,0),Et.push(Po.x),Et.push(Po.y)}}}for(var Zr=k1(Et,kt),Pr=0;Pr<Zr.length;Pr+=3)this.indexArray.emplaceBack(qt+Zr[Pr],qt+Zr[Pr+2],qt+Zr[Pr+1]);B.primitiveLength+=Zr.length/3,B.vertexLength+=C}}var Co;this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,_,h)},hr("FillExtrusionBucket",ia,{omit:["layers","features"]});var ts={paint:new Ai({"fill-extrusion-opacity":new Rr(q["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new gr(q["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Rr(q["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Rr(q["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Ta(q["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new gr(q["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new gr(q["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Rr(q["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})},$y=function(o){function a(p){o.call(this,p,ts)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.createBucket=function(p){return new ia(p)},a.prototype.queryRadius=function(){return Bi(this.paint.get("fill-extrusion-translate"))},a.prototype.is3D=function(){return!0},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C,M){var O=da(p,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),S.angle,C),B=this.paint.get("fill-extrusion-height").evaluate(h,_),j=this.paint.get("fill-extrusion-base").evaluate(h,_),Y=function(he,Re,be,Ve){for(var Ze=[],it=0,ut=he;it<ut.length;it+=1){var Et=ut[it],kt=[Et.x,Et.y,0,1];Ou(kt,kt,Re),Ze.push(new x(kt[0]/kt[3],kt[1]/kt[3]))}return Ze}(O,M),ce=function(he,Re,be,Ve){for(var Ze=[],it=[],ut=Ve[8]*Re,Et=Ve[9]*Re,kt=Ve[10]*Re,qt=Ve[11]*Re,Ir=Ve[8]*be,pr=Ve[9]*be,Br=Ve[10]*be,dr=Ve[11]*be,Po=0,Zr=he;Po<Zr.length;Po+=1){for(var Pr=[],Co=[],co=0,Vo=Zr[Po];co<Vo.length;co+=1){var Ur=Vo[co],$o=Ur.x,Ci=Ur.y,Zi=Ve[0]*$o+Ve[4]*Ci+Ve[12],ji=Ve[1]*$o+Ve[5]*Ci+Ve[13],Ii=Ve[2]*$o+Ve[6]*Ci+Ve[14],Yi=Ve[3]*$o+Ve[7]*Ci+Ve[15],Vn=Ii+kt,Hn=Yi+qt,Ra=Zi+Ir,qn=ji+pr,Ca=Ii+Br,tn=Yi+dr,Kn=new x((Zi+ut)/Hn,(ji+Et)/Hn);Kn.z=Vn/Hn,Pr.push(Kn);var Do=new x(Ra/tn,qn/tn);Do.z=Ca/tn,Co.push(Do)}Ze.push(Pr),it.push(Co)}return[Ze,it]}(v,j,B,M);return function(he,Re,be){var Ve=1/0;Ja(be,Re)&&(Ve=qy(be,Re[0]));for(var Ze=0;Ze<Re.length;Ze++)for(var it=Re[Ze],ut=he[Ze],Et=0;Et<it.length-1;Et++){var kt=it[Et],qt=[kt,it[Et+1],ut[Et+1],ut[Et],kt];Cs(be,qt)&&(Ve=Math.min(Ve,qy(be,qt)))}return Ve!==1/0&&Ve}(ce[0],ce[1],Y)},a}(Ka);function Jc(o,a){return o.x*a.x+o.y*a.y}function qy(o,a){if(o.length===1){for(var p,h=0,_=a[h++];!p||_.equals(p);)if(!(p=a[h++]))return 1/0;for(;h<a.length;h++){var v=a[h],P=o[0],S=p.sub(_),C=v.sub(_),M=P.sub(_),O=Jc(S,S),B=Jc(S,C),j=Jc(C,C),Y=Jc(M,S),ce=Jc(M,C),he=O*j-B*B,Re=(j*Y-B*ce)/he,be=(O*ce-B*Y)/he,Ve=_.z*(1-Re-be)+p.z*Re+v.z*be;if(isFinite(Ve))return Ve}return 1/0}for(var Ze=1/0,it=0,ut=a;it<ut.length;it+=1)Ze=Math.min(Ze,ut[it].z);return Ze}var pm=yn([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4).members,lm=yn([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]).members,Ky=Up.VectorTileFeature.types,cm=Math.cos(Math.PI/180*37.5),Qy=Math.pow(2,14)/.5,fa=function(o){var a=this;this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(p){return p.id}),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(function(p){a.gradients[p.id]={}}),this.layoutVertexArray=new Sa,this.layoutVertexArray2=new Rp,this.indexArray=new Rs,this.programConfigurations=new zr(o.layers,o.zoom),this.segments=new K,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(function(p){return p.isStateDependent()}).map(function(p){return p.id})};fa.prototype.populate=function(o,a,p){this.hasPattern=rd("line",this.layers,a);for(var h=this.layers[0].layout.get("line-sort-key"),_=[],v=0,P=o;v<P.length;v+=1){var S=P[v],C=S.feature,M=S.id,O=S.index,B=S.sourceLayerIndex,j=this.layers[0]._featureFilter.needGeometry,Y=wi(C,j);if(this.layers[0]._featureFilter.filter(new po(this.zoom),Y,p)){var ce=h?h.evaluate(Y,{},p):void 0,he={id:M,properties:C.properties,type:C.type,sourceLayerIndex:B,index:O,geometry:j?Y.geometry:Fi(C),patterns:{},sortKey:ce};_.push(he)}}h&&_.sort(function(kt,qt){return kt.sortKey-qt.sortKey});for(var Re=0,be=_;Re<be.length;Re+=1){var Ve=be[Re],Ze=Ve.geometry,it=Ve.index,ut=Ve.sourceLayerIndex;if(this.hasPattern){var Et=od("line",this.layers,Ve,this.zoom,a);this.patternFeatures.push(Et)}else this.addFeature(Ve,Ze,it,p,{});a.featureIndex.insert(o[it].feature,Ze,it,ut,this.index)}},fa.prototype.update=function(o,a,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,a,this.stateDependentLayers,p)},fa.prototype.addFeatures=function(o,a,p){for(var h=0,_=this.patternFeatures;h<_.length;h+=1){var v=_[h];this.addFeature(v,v.geometry,v.index,a,p)}},fa.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},fa.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},fa.prototype.upload=function(o){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=o.createVertexBuffer(this.layoutVertexArray2,lm)),this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,pm),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0},fa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},fa.prototype.lineFeatureClips=function(o){if(o.properties&&o.properties.hasOwnProperty("mapbox_clip_start")&&o.properties.hasOwnProperty("mapbox_clip_end"))return{start:+o.properties.mapbox_clip_start,end:+o.properties.mapbox_clip_end}},fa.prototype.addFeature=function(o,a,p,h,_){var v=this.layers[0].layout,P=v.get("line-join").evaluate(o,{}),S=v.get("line-cap"),C=v.get("line-miter-limit"),M=v.get("line-round-limit");this.lineClips=this.lineFeatureClips(o);for(var O=0,B=a;O<B.length;O+=1)this.addLine(B[O],o,P,S,C,M);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,_,h)},fa.prototype.addLine=function(o,a,p,h,_,v){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(var P=0;P<o.length-1;P++)this.totalDistance+=o[P].dist(o[P+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}for(var S=Ky[a.type]==="Polygon",C=o.length;C>=2&&o[C-1].equals(o[C-2]);)C--;for(var M=0;M<C-1&&o[M].equals(o[M+1]);)M++;if(!(C<(S?3:2))){p==="bevel"&&(_=1.05);var O,B=this.overscaling<=16?122880/(512*this.overscaling):0,j=this.segments.prepareSegment(10*C,this.layoutVertexArray,this.indexArray),Y=void 0,ce=void 0,he=void 0,Re=void 0;this.e1=this.e2=-1,S&&(Re=o[M].sub(O=o[C-2])._unit()._perp());for(var be=M;be<C;be++)if(!(ce=be===C-1?S?o[M+1]:void 0:o[be+1])||!o[be].equals(ce)){Re&&(he=Re),O&&(Y=O),O=o[be],Re=ce?ce.sub(O)._unit()._perp():he;var Ve=(he=he||Re).add(Re);Ve.x===0&&Ve.y===0||Ve._unit();var Ze=he.x*Re.x+he.y*Re.y,it=Ve.x*Re.x+Ve.y*Re.y,ut=it!==0?1/it:1/0,Et=2*Math.sqrt(2-2*it),kt=it<cm&&Y&&ce,qt=he.x*Re.y-he.y*Re.x>0;if(kt&&be>M){var Ir=O.dist(Y);if(Ir>2*B){var pr=O.sub(O.sub(Y)._mult(B/Ir)._round());this.updateDistance(Y,pr),this.addCurrentVertex(pr,he,0,0,j),Y=pr}}var Br=Y&&ce,dr=Br?p:S?"butt":h;if(Br&&dr==="round"&&(ut<v?dr="miter":ut<=2&&(dr="fakeround")),dr==="miter"&&ut>_&&(dr="bevel"),dr==="bevel"&&(ut>2&&(dr="flipbevel"),ut<_&&(dr="miter")),Y&&this.updateDistance(Y,O),dr==="miter")Ve._mult(ut),this.addCurrentVertex(O,Ve,0,0,j);else if(dr==="flipbevel"){if(ut>100)Ve=Re.mult(-1);else{var Po=ut*he.add(Re).mag()/he.sub(Re).mag();Ve._perp()._mult(Po*(qt?-1:1))}this.addCurrentVertex(O,Ve,0,0,j),this.addCurrentVertex(O,Ve.mult(-1),0,0,j)}else if(dr==="bevel"||dr==="fakeround"){var Zr=-Math.sqrt(ut*ut-1),Pr=qt?Zr:0,Co=qt?0:Zr;if(Y&&this.addCurrentVertex(O,he,Pr,Co,j),dr==="fakeround")for(var co=Math.round(180*Et/Math.PI/20),Vo=1;Vo<co;Vo++){var Ur=Vo/co;if(Ur!==.5){var $o=Ur-.5;Ur+=Ur*$o*(Ur-1)*((1.0904+Ze*(Ze*(3.55645-1.43519*Ze)-3.2452))*$o*$o+(.848013+Ze*(.215638*Ze-1.06021)))}var Ci=Re.sub(he)._mult(Ur)._add(he)._unit()._mult(qt?-1:1);this.addHalfVertex(O,Ci.x,Ci.y,!1,qt,0,j)}ce&&this.addCurrentVertex(O,Re,-Pr,-Co,j)}else if(dr==="butt")this.addCurrentVertex(O,Ve,0,0,j);else if(dr==="square"){var Zi=Y?1:-1;this.addCurrentVertex(O,Ve,Zi,Zi,j)}else dr==="round"&&(Y&&(this.addCurrentVertex(O,he,0,0,j),this.addCurrentVertex(O,he,1,1,j,!0)),ce&&(this.addCurrentVertex(O,Re,-1,-1,j,!0),this.addCurrentVertex(O,Re,0,0,j)));if(kt&&be<C-1){var ji=O.dist(ce);if(ji>2*B){var Ii=O.add(ce.sub(O)._mult(B/ji)._round());this.updateDistance(O,Ii),this.addCurrentVertex(Ii,Re,0,0,j),O=Ii}}}}},fa.prototype.addCurrentVertex=function(o,a,p,h,_,v){v===void 0&&(v=!1);var P=a.y*h-a.x,S=-a.y-a.x*h;this.addHalfVertex(o,a.x+a.y*p,a.y-a.x*p,v,!1,p,_),this.addHalfVertex(o,P,S,v,!0,-h,_),this.distance>Qy/2&&this.totalDistance===0&&(this.distance=0,this.addCurrentVertex(o,a,p,h,_,v))},fa.prototype.addHalfVertex=function(o,a,p,h,_,v,P){var S=.5*(this.lineClips?this.scaledDistance*(Qy-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((o.x<<1)+(h?1:0),(o.y<<1)+(_?1:0),Math.round(63*a)+128,Math.round(63*p)+128,1+(v===0?0:v<0?-1:1)|(63&S)<<2,S>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);var C=P.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,C),P.primitiveLength++),_?this.e2=C:this.e1=C},fa.prototype.updateScaledDistance=function(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance},fa.prototype.updateDistance=function(o,a){this.distance+=o.dist(a),this.updateScaledDistance()},hr("LineBucket",fa,{omit:["layers","patternFeatures"]});var dm=new Ai({"line-cap":new Rr(q.layout_line["line-cap"]),"line-join":new gr(q.layout_line["line-join"]),"line-miter-limit":new Rr(q.layout_line["line-miter-limit"]),"line-round-limit":new Rr(q.layout_line["line-round-limit"]),"line-sort-key":new gr(q.layout_line["line-sort-key"])}),Jy={paint:new Ai({"line-opacity":new gr(q.paint_line["line-opacity"]),"line-color":new gr(q.paint_line["line-color"]),"line-translate":new Rr(q.paint_line["line-translate"]),"line-translate-anchor":new Rr(q.paint_line["line-translate-anchor"]),"line-width":new gr(q.paint_line["line-width"]),"line-gap-width":new gr(q.paint_line["line-gap-width"]),"line-offset":new gr(q.paint_line["line-offset"]),"line-blur":new gr(q.paint_line["line-blur"]),"line-dasharray":new Xn(q.paint_line["line-dasharray"]),"line-pattern":new Ta(q.paint_line["line-pattern"]),"line-gradient":new ls(q.paint_line["line-gradient"])}),layout:dm},nd=new(function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.possiblyEvaluate=function(p,h){return h=new po(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),o.prototype.possiblyEvaluate.call(this,p,h)},a.prototype.evaluate=function(p,h,_,v){return h=Q({},h,{zoom:Math.floor(h.zoom)}),o.prototype.evaluate.call(this,p,h,_,v)},a}(gr))(Jy.paint.properties["line-width"].specification);nd.useIntegerZoom=!0;var eh=function(o){function a(p){o.call(this,p,Jy),this.gradientVersion=0}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._handleSpecialPaintPropertyUpdate=function(p){p==="line-gradient"&&(this.stepInterpolant=this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof ba,this.gradientVersion=(this.gradientVersion+1)%R)},a.prototype.gradientExpression=function(){return this._transitionablePaint._values["line-gradient"].value.expression},a.prototype.recalculate=function(p,h){o.prototype.recalculate.call(this,p,h),this.paint._values["line-floorwidth"]=nd.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,p)},a.prototype.createBucket=function(p){return new fa(p)},a.prototype.queryRadius=function(p){var h=p,_=ad(kn("line-width",this,h),kn("line-gap-width",this,h)),v=kn("line-offset",this,h);return _/2+Math.abs(v)+Bi(this.paint.get("line-translate"))},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C){var M=da(p,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),S.angle,C),O=C/2*ad(this.paint.get("line-width").evaluate(h,_),this.paint.get("line-gap-width").evaluate(h,_)),B=this.paint.get("line-offset").evaluate(h,_);return B&&(v=function(j,Y){for(var ce=[],he=new x(0,0),Re=0;Re<j.length;Re++){for(var be=j[Re],Ve=[],Ze=0;Ze<be.length;Ze++){var it=be[Ze],ut=be[Ze+1],Et=Ze===0?he:it.sub(be[Ze-1])._unit()._perp(),kt=Ze===be.length-1?he:ut.sub(it)._unit()._perp(),qt=Et._add(kt)._unit();qt._mult(1/(qt.x*kt.x+qt.y*kt.y)),Ve.push(qt._mult(Y)._add(it))}ce.push(Ve)}return ce}(v,B*C)),function(j,Y,ce){for(var he=0;he<Y.length;he++){var Re=Y[he];if(j.length>=3){for(var be=0;be<Re.length;be++)if(ds(j,Re[be]))return!0}if(wa(j,Re,ce))return!0}return!1}(M,v,O)},a.prototype.isTileClipped=function(){return!0},a}(Ka);function ad(o,a){return a>0?a+2*o:o}var ym=yn([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),hm=yn([{name:"a_projected_pos",components:3,type:"Float32"}],4),th=(yn([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),yn([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),rh=(yn([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),yn([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),N=yn([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function ie(o,a,p){return o.sections.forEach(function(h){h.text=function(_,v,P){var S=v.layout.get("text-transform").evaluate(P,{});return S==="uppercase"?_=_.toLocaleUpperCase():S==="lowercase"&&(_=_.toLocaleLowerCase()),Ba.applyArabicShaping&&(_=Ba.applyArabicShaping(_)),_}(h.text,a,p)}),o}yn([{name:"triangle",components:3,type:"Uint16"}]),yn([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),yn([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),yn([{type:"Float32",name:"offsetX"}]),yn([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var xe={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},et=function(o,a,p,h,_){var v,P,S=8*_-h-1,C=(1<<S)-1,M=C>>1,O=-7,B=_-1,j=-1,Y=o[a+B];for(B+=j,v=Y&(1<<-O)-1,Y>>=-O,O+=S;O>0;v=256*v+o[a+B],B+=j,O-=8);for(P=v&(1<<-O)-1,v>>=-O,O+=h;O>0;P=256*P+o[a+B],B+=j,O-=8);if(v===0)v=1-M;else{if(v===C)return P?NaN:1/0*(Y?-1:1);P+=Math.pow(2,h),v-=M}return(Y?-1:1)*P*Math.pow(2,v-h)},gt=function(o,a,p,h,_,v){var P,S,C,M=8*v-_-1,O=(1<<M)-1,B=O>>1,j=_===23?Math.pow(2,-24)-Math.pow(2,-77):0,Y=0,ce=1,he=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(S=isNaN(a)?1:0,P=O):(P=Math.floor(Math.log(a)/Math.LN2),a*(C=Math.pow(2,-P))<1&&(P--,C*=2),(a+=P+B>=1?j/C:j*Math.pow(2,1-B))*C>=2&&(P++,C/=2),P+B>=O?(S=0,P=O):P+B>=1?(S=(a*C-1)*Math.pow(2,_),P+=B):(S=a*Math.pow(2,B-1)*Math.pow(2,_),P=0));_>=8;o[p+Y]=255&S,Y+=ce,S/=256,_-=8);for(P=P<<_|S,M+=_;M>0;o[p+Y]=255&P,Y+=ce,P/=256,M-=8);o[p+Y-ce]|=128*he},tt=Ye;function Ye(o){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(o)?o:new Uint8Array(o||0),this.pos=0,this.type=0,this.length=this.buf.length}Ye.Varint=0,Ye.Fixed64=1,Ye.Bytes=2,Ye.Fixed32=5;var Ot=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Rt(o){return o.type===Ye.Bytes?o.readVarint()+o.pos:o.pos+1}function Xt(o,a,p){return p?4294967296*a+(o>>>0):4294967296*(a>>>0)+(o>>>0)}function Ut(o,a,p){var h=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));p.realloc(h);for(var _=p.pos-1;_>=o;_--)p.buf[_+h]=p.buf[_]}function Gt(o,a){for(var p=0;p<o.length;p++)a.writeVarint(o[p])}function $t(o,a){for(var p=0;p<o.length;p++)a.writeSVarint(o[p])}function Ct(o,a){for(var p=0;p<o.length;p++)a.writeFloat(o[p])}function jt(o,a){for(var p=0;p<o.length;p++)a.writeDouble(o[p])}function je(o,a){for(var p=0;p<o.length;p++)a.writeBoolean(o[p])}function pt(o,a){for(var p=0;p<o.length;p++)a.writeFixed32(o[p])}function Lt(o,a){for(var p=0;p<o.length;p++)a.writeSFixed32(o[p])}function tr(o,a){for(var p=0;p<o.length;p++)a.writeFixed64(o[p])}function At(o,a){for(var p=0;p<o.length;p++)a.writeSFixed64(o[p])}function ar(o,a){return(o[a]|o[a+1]<<8|o[a+2]<<16)+16777216*o[a+3]}function Mt(o,a,p){o[p]=a,o[p+1]=a>>>8,o[p+2]=a>>>16,o[p+3]=a>>>24}function rr(o,a){return(o[a]|o[a+1]<<8|o[a+2]<<16)+(o[a+3]<<24)}function Tt(o,a,p){o===1&&p.readMessage(Qt,a)}function Qt(o,a,p){if(o===3){var h=p.readMessage(Or,{}),_=h.width,v=h.height,P=h.left,S=h.top,C=h.advance;a.push({id:h.id,bitmap:new Mp({width:_+6,height:v+6},h.bitmap),metrics:{width:_,height:v,left:P,top:S,advance:C}})}}function Or(o,a,p){o===1?a.id=p.readVarint():o===2?a.bitmap=p.readBytes():o===3?a.width=p.readVarint():o===4?a.height=p.readVarint():o===5?a.left=p.readSVarint():o===6?a.top=p.readSVarint():o===7&&(a.advance=p.readVarint())}function ro(o){for(var a=0,p=0,h=0,_=o;h<_.length;h+=1){var v=_[h];a+=v.w*v.h,p=Math.max(p,v.w)}o.sort(function(he,Re){return Re.h-he.h});for(var P=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),p),h:1/0}],S=0,C=0,M=0,O=o;M<O.length;M+=1)for(var B=O[M],j=P.length-1;j>=0;j--){var Y=P[j];if(!(B.w>Y.w||B.h>Y.h)){if(B.x=Y.x,B.y=Y.y,C=Math.max(C,B.y+B.h),S=Math.max(S,B.x+B.w),B.w===Y.w&&B.h===Y.h){var ce=P.pop();j<P.length&&(P[j]=ce)}else B.h===Y.h?(Y.x+=B.w,Y.w-=B.w):B.w===Y.w?(Y.y+=B.h,Y.h-=B.h):(P.push({x:Y.x+B.w,y:Y.y,w:Y.w-B.w,h:B.h}),Y.y+=B.h,Y.h-=B.h);break}}return{w:S,h:C,fill:a/(S*C)||0}}Ye.prototype={destroy:function(){this.buf=null},readFields:function(o,a,p){for(p=p||this.length;this.pos<p;){var h=this.readVarint(),_=h>>3,v=this.pos;this.type=7&h,o(_,a,this),this.pos===v&&this.skip(h)}return a},readMessage:function(o,a){return this.readFields(o,a,this.readVarint()+this.pos)},readFixed32:function(){var o=ar(this.buf,this.pos);return this.pos+=4,o},readSFixed32:function(){var o=rr(this.buf,this.pos);return this.pos+=4,o},readFixed64:function(){var o=ar(this.buf,this.pos)+4294967296*ar(this.buf,this.pos+4);return this.pos+=8,o},readSFixed64:function(){var o=ar(this.buf,this.pos)+4294967296*rr(this.buf,this.pos+4);return this.pos+=8,o},readFloat:function(){var o=et(this.buf,this.pos,!0,23,4);return this.pos+=4,o},readDouble:function(){var o=et(this.buf,this.pos,!0,52,8);return this.pos+=8,o},readVarint:function(o){var a,p,h=this.buf;return a=127&(p=h[this.pos++]),p<128?a:(a|=(127&(p=h[this.pos++]))<<7,p<128?a:(a|=(127&(p=h[this.pos++]))<<14,p<128?a:(a|=(127&(p=h[this.pos++]))<<21,p<128?a:function(_,v,P){var S,C,M=P.buf;if(S=(112&(C=M[P.pos++]))>>4,C<128||(S|=(127&(C=M[P.pos++]))<<3,C<128)||(S|=(127&(C=M[P.pos++]))<<10,C<128)||(S|=(127&(C=M[P.pos++]))<<17,C<128)||(S|=(127&(C=M[P.pos++]))<<24,C<128)||(S|=(1&(C=M[P.pos++]))<<31,C<128))return Xt(_,S,v);throw new Error("Expected varint not more than 10 bytes")}(a|=(15&(p=h[this.pos]))<<28,o,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var o=this.readVarint();return o%2==1?(o+1)/-2:o/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var o=this.readVarint()+this.pos,a=this.pos;return this.pos=o,o-a>=12&&Ot?function(p,h,_){return Ot.decode(p.subarray(h,_))}(this.buf,a,o):function(p,h,_){for(var v="",P=h;P<_;){var S,C,M,O=p[P],B=null,j=O>239?4:O>223?3:O>191?2:1;if(P+j>_)break;j===1?O<128&&(B=O):j===2?(192&(S=p[P+1]))==128&&(B=(31&O)<<6|63&S)<=127&&(B=null):j===3?(C=p[P+2],(192&(S=p[P+1]))==128&&(192&C)==128&&((B=(15&O)<<12|(63&S)<<6|63&C)<=2047||B>=55296&&B<=57343)&&(B=null)):j===4&&(C=p[P+2],M=p[P+3],(192&(S=p[P+1]))==128&&(192&C)==128&&(192&M)==128&&((B=(15&O)<<18|(63&S)<<12|(63&C)<<6|63&M)<=65535||B>=1114112)&&(B=null)),B===null?(B=65533,j=1):B>65535&&(B-=65536,v+=String.fromCharCode(B>>>10&1023|55296),B=56320|1023&B),v+=String.fromCharCode(B),P+=j}return v}(this.buf,a,o)},readBytes:function(){var o=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,o);return this.pos=o,a},readPackedVarint:function(o,a){if(this.type!==Ye.Bytes)return o.push(this.readVarint(a));var p=Rt(this);for(o=o||[];this.pos<p;)o.push(this.readVarint(a));return o},readPackedSVarint:function(o){if(this.type!==Ye.Bytes)return o.push(this.readSVarint());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readSVarint());return o},readPackedBoolean:function(o){if(this.type!==Ye.Bytes)return o.push(this.readBoolean());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readBoolean());return o},readPackedFloat:function(o){if(this.type!==Ye.Bytes)return o.push(this.readFloat());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readFloat());return o},readPackedDouble:function(o){if(this.type!==Ye.Bytes)return o.push(this.readDouble());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readDouble());return o},readPackedFixed32:function(o){if(this.type!==Ye.Bytes)return o.push(this.readFixed32());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readFixed32());return o},readPackedSFixed32:function(o){if(this.type!==Ye.Bytes)return o.push(this.readSFixed32());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readSFixed32());return o},readPackedFixed64:function(o){if(this.type!==Ye.Bytes)return o.push(this.readFixed64());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readFixed64());return o},readPackedSFixed64:function(o){if(this.type!==Ye.Bytes)return o.push(this.readSFixed64());var a=Rt(this);for(o=o||[];this.pos<a;)o.push(this.readSFixed64());return o},skip:function(o){var a=7&o;if(a===Ye.Varint)for(;this.buf[this.pos++]>127;);else if(a===Ye.Bytes)this.pos=this.readVarint()+this.pos;else if(a===Ye.Fixed32)this.pos+=4;else{if(a!==Ye.Fixed64)throw new Error("Unimplemented type: "+a);this.pos+=8}},writeTag:function(o,a){this.writeVarint(o<<3|a)},realloc:function(o){for(var a=this.length||16;a<this.pos+o;)a*=2;if(a!==this.length){var p=new Uint8Array(a);p.set(this.buf),this.buf=p,this.length=a}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(o){this.realloc(4),Mt(this.buf,o,this.pos),this.pos+=4},writeSFixed32:function(o){this.realloc(4),Mt(this.buf,o,this.pos),this.pos+=4},writeFixed64:function(o){this.realloc(8),Mt(this.buf,-1&o,this.pos),Mt(this.buf,Math.floor(o*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(o){this.realloc(8),Mt(this.buf,-1&o,this.pos),Mt(this.buf,Math.floor(o*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(o){(o=+o||0)>268435455||o<0?function(a,p){var h,_;if(a>=0?(h=a%4294967296|0,_=a/4294967296|0):(_=~(-a/4294967296),4294967295^(h=~(-a%4294967296))?h=h+1|0:(h=0,_=_+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");p.realloc(10),function(v,P,S){S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,S.buf[S.pos]=127&(v>>>=7)}(h,0,p),function(v,P){var S=(7&v)<<4;P.buf[P.pos++]|=S|((v>>>=3)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v)))))}(_,p)}(o,this):(this.realloc(4),this.buf[this.pos++]=127&o|(o>127?128:0),o<=127||(this.buf[this.pos++]=127&(o>>>=7)|(o>127?128:0),o<=127||(this.buf[this.pos++]=127&(o>>>=7)|(o>127?128:0),o<=127||(this.buf[this.pos++]=o>>>7&127))))},writeSVarint:function(o){this.writeVarint(o<0?2*-o-1:2*o)},writeBoolean:function(o){this.writeVarint(!!o)},writeString:function(o){o=String(o),this.realloc(4*o.length),this.pos++;var a=this.pos;this.pos=function(h,_,v){for(var P,S,C=0;C<_.length;C++){if((P=_.charCodeAt(C))>55295&&P<57344){if(!S){P>56319||C+1===_.length?(h[v++]=239,h[v++]=191,h[v++]=189):S=P;continue}if(P<56320){h[v++]=239,h[v++]=191,h[v++]=189,S=P;continue}P=S-55296<<10|P-56320|65536,S=null}else S&&(h[v++]=239,h[v++]=191,h[v++]=189,S=null);P<128?h[v++]=P:(P<2048?h[v++]=P>>6|192:(P<65536?h[v++]=P>>12|224:(h[v++]=P>>18|240,h[v++]=P>>12&63|128),h[v++]=P>>6&63|128),h[v++]=63&P|128)}return v}(this.buf,o,this.pos);var p=this.pos-a;p>=128&&Ut(a,p,this),this.pos=a-1,this.writeVarint(p),this.pos+=p},writeFloat:function(o){this.realloc(4),gt(this.buf,o,this.pos,!0,23,4),this.pos+=4},writeDouble:function(o){this.realloc(8),gt(this.buf,o,this.pos,!0,52,8),this.pos+=8},writeBytes:function(o){var a=o.length;this.writeVarint(a),this.realloc(a);for(var p=0;p<a;p++)this.buf[this.pos++]=o[p]},writeRawMessage:function(o,a){this.pos++;var p=this.pos;o(a,this);var h=this.pos-p;h>=128&&Ut(p,h,this),this.pos=p-1,this.writeVarint(h),this.pos+=h},writeMessage:function(o,a,p){this.writeTag(o,Ye.Bytes),this.writeRawMessage(a,p)},writePackedVarint:function(o,a){a.length&&this.writeMessage(o,Gt,a)},writePackedSVarint:function(o,a){a.length&&this.writeMessage(o,$t,a)},writePackedBoolean:function(o,a){a.length&&this.writeMessage(o,je,a)},writePackedFloat:function(o,a){a.length&&this.writeMessage(o,Ct,a)},writePackedDouble:function(o,a){a.length&&this.writeMessage(o,jt,a)},writePackedFixed32:function(o,a){a.length&&this.writeMessage(o,pt,a)},writePackedSFixed32:function(o,a){a.length&&this.writeMessage(o,Lt,a)},writePackedFixed64:function(o,a){a.length&&this.writeMessage(o,tr,a)},writePackedSFixed64:function(o,a){a.length&&this.writeMessage(o,At,a)},writeBytesField:function(o,a){this.writeTag(o,Ye.Bytes),this.writeBytes(a)},writeFixed32Field:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeSFixed64(a)},writeVarintField:function(o,a){this.writeTag(o,Ye.Varint),this.writeVarint(a)},writeSVarintField:function(o,a){this.writeTag(o,Ye.Varint),this.writeSVarint(a)},writeStringField:function(o,a){this.writeTag(o,Ye.Bytes),this.writeString(a)},writeFloatField:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeFloat(a)},writeDoubleField:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeDouble(a)},writeBooleanField:function(o,a){this.writeVarintField(o,!!a)}};var Jt=function(o,a){var p=a.pixelRatio,h=a.version,_=a.stretchX,v=a.stretchY,P=a.content;this.paddedRect=o,this.pixelRatio=p,this.stretchX=_,this.stretchY=v,this.content=P,this.version=h},Dt={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};Dt.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},Dt.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},Dt.tlbr.get=function(){return this.tl.concat(this.br)},Dt.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Jt.prototype,Dt);var vt=function(o,a){var p={},h={};this.haveRenderCallbacks=[];var _=[];this.addImages(o,p,_),this.addImages(a,h,_);var v=ro(_),P=new ya({width:v.w||1,height:v.h||1});for(var S in o){var C=o[S],M=p[S].paddedRect;ya.copy(C.data,P,{x:0,y:0},{x:M.x+1,y:M.y+1},C.data)}for(var O in a){var B=a[O],j=h[O].paddedRect,Y=j.x+1,ce=j.y+1,he=B.data.width,Re=B.data.height;ya.copy(B.data,P,{x:0,y:0},{x:Y,y:ce},B.data),ya.copy(B.data,P,{x:0,y:Re-1},{x:Y,y:ce-1},{width:he,height:1}),ya.copy(B.data,P,{x:0,y:0},{x:Y,y:ce+Re},{width:he,height:1}),ya.copy(B.data,P,{x:he-1,y:0},{x:Y-1,y:ce},{width:1,height:Re}),ya.copy(B.data,P,{x:0,y:0},{x:Y+he,y:ce},{width:1,height:Re})}this.image=P,this.iconPositions=p,this.patternPositions=h};vt.prototype.addImages=function(o,a,p){for(var h in o){var _=o[h],v={x:0,y:0,w:_.data.width+2,h:_.data.height+2};p.push(v),a[h]=new Jt(v,_),_.hasRenderCallback&&this.haveRenderCallbacks.push(h)}},vt.prototype.patchUpdatedImages=function(o,a){for(var p in o.dispatchRenderCallbacks(this.haveRenderCallbacks),o.updatedImages)this.patchUpdatedImage(this.iconPositions[p],o.getImage(p),a),this.patchUpdatedImage(this.patternPositions[p],o.getImage(p),a)},vt.prototype.patchUpdatedImage=function(o,a,p){if(o&&a&&o.version!==a.version){o.version=a.version;var h=o.tl;p.update(a.data,void 0,{x:h[0],y:h[1]})}},hr("ImagePosition",Jt),hr("ImageAtlas",vt);var Lr={horizontal:1,vertical:2,horizontalOnly:3},xo=function(){this.scale=1,this.fontStack="",this.imageName=null};xo.forText=function(o,a){var p=new xo;return p.scale=o||1,p.fontStack=a,p},xo.forImage=function(o){var a=new xo;return a.imageName=o,a};var sr=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function ho(o,a,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he){var Re,be=sr.fromFeature(o,_);B===Lr.vertical&&be.verticalizePunctuation();var Ve=Ba.processBidirectionalText,Ze=Ba.processStyledBidirectionalText;if(Ve&&be.sections.length===1){Re=[];for(var it=0,ut=Ve(be.toString(),Ji(be,M,v,a,h,Y,ce));it<ut.length;it+=1){var Et=ut[it],kt=new sr;kt.text=Et,kt.sections=be.sections;for(var qt=0;qt<Et.length;qt++)kt.sectionIndex.push(0);Re.push(kt)}}else if(Ze){Re=[];for(var Ir=0,pr=Ze(be.text,be.sectionIndex,Ji(be,M,v,a,h,Y,ce));Ir<pr.length;Ir+=1){var Br=pr[Ir],dr=new sr;dr.text=Br[0],dr.sectionIndex=Br[1],dr.sections=be.sections,Re.push(dr)}}else Re=function(Pr,Co){for(var co=[],Vo=Pr.text,Ur=0,$o=0,Ci=Co;$o<Ci.length;$o+=1){var Zi=Ci[$o];co.push(Pr.substring(Ur,Zi)),Ur=Zi}return Ur<Vo.length&&co.push(Pr.substring(Ur,Vo.length)),co}(be,Ji(be,M,v,a,h,Y,ce));var Po=[],Zr={positionedLines:Po,text:be.toString(),top:O[1],bottom:O[1],left:O[0],right:O[0],writingMode:B,iconsInText:!1,verticalizable:!1};return function(Pr,Co,co,Vo,Ur,$o,Ci,Zi,ji,Ii,Yi,Vn){for(var Hn=0,Ra=-17,qn=0,Ca=0,tn=Zi==="right"?1:Zi==="left"?0:.5,Kn=0,Do=0,yi=Ur;Do<yi.length;Do+=1){var ni=yi[Do];ni.trim();var Wo=ni.getMaxScale(),za=24*(Wo-1),ma={positionedGlyphs:[],lineOffset:0};Pr.positionedLines[Kn]=ma;var Ti=ma.positionedGlyphs,En=0;if(ni.length()){for(var _a=0;_a<ni.length();_a++){var qo=ni.getSection(_a),kp=ni.getSectionIndex(_a),Ds=ni.getCharCode(_a),zp=0,rn=null,Vp=null,Bu=null,q1=24,o1=!(ji===Lr.horizontal||!Yi&&!ll(Ds)||Yi&&(eo[Ds]||(Al=Ds,Kt.Arabic(Al)||Kt["Arabic Supplement"](Al)||Kt["Arabic Extended-A"](Al)||Kt["Arabic Presentation Forms-A"](Al)||Kt["Arabic Presentation Forms-B"](Al))));if(qo.imageName){var K1=Vo[qo.imageName];if(!K1)continue;Bu=qo.imageName,Pr.iconsInText=Pr.iconsInText||!0,Vp=K1.paddedRect;var bl=K1.displaySize;qo.scale=24*qo.scale/Vn,zp=za+(24-bl[1]*qo.scale),q1=(rn={width:bl[0],height:bl[1],left:1,top:-3,advance:o1?bl[1]:bl[0]}).advance;var Q1=o1?bl[0]*qo.scale-24*Wo:bl[1]*qo.scale-24*Wo;Q1>0&&Q1>En&&(En=Q1)}else{var sh=co[qo.fontStack],J1=sh&&sh[Ds];if(J1&&J1.rect)Vp=J1.rect,rn=J1.metrics;else{var ld=Co[qo.fontStack],uh=ld&&ld[Ds];if(!uh)continue;rn=uh.metrics}zp=24*(Wo-qo.scale)}o1?(Pr.verticalizable=!0,Ti.push({glyph:Ds,imageName:Bu,x:Hn,y:Ra+zp,vertical:o1,scale:qo.scale,fontStack:qo.fontStack,sectionIndex:kp,metrics:rn,rect:Vp}),Hn+=q1*qo.scale+Ii):(Ti.push({glyph:Ds,imageName:Bu,x:Hn,y:Ra+zp,vertical:o1,scale:qo.scale,fontStack:qo.fontStack,sectionIndex:kp,metrics:rn,rect:Vp}),Hn+=rn.advance*qo.scale+Ii)}Ti.length!==0&&(qn=Math.max(Hn-Ii,qn),mn(Ti,0,Ti.length-1,tn,En)),Hn=0;var ph=$o*Wo+En;ma.lineOffset=Math.max(En,za),Ra+=ph,Ca=Math.max(ph,Ca),++Kn}else Ra+=$o,++Kn}var Al,cd=Ra- -17,e0=mi(Ci),lc=e0.horizontalAlign,t0=e0.verticalAlign;(function(lh,ch,dd,yd,dh,hd,fd,md,yh){var r0,hh=(ch-dd)*dh;r0=hd!==fd?-md*yd- -17:(-yd*yh+.5)*fd;for(var o0=0,_d=lh;o0<_d.length;o0+=1)for(var i1=0,gd=_d[o0].positionedGlyphs;i1<gd.length;i1+=1){var i0=gd[i1];i0.x+=hh,i0.y+=r0}})(Pr.positionedLines,tn,lc,t0,qn,Ca,$o,cd,Ur.length),Pr.top+=-t0*cd,Pr.bottom=Pr.top+cd,Pr.left+=-lc*qn,Pr.right=Pr.left+qn}(Zr,a,p,h,Re,P,S,C,B,M,j,he),!function(Pr){for(var Co=0,co=Pr;Co<co.length;Co+=1)if(co[Co].positionedGlyphs.length!==0)return!1;return!0}(Po)&&Zr}sr.fromFeature=function(o,a){for(var p=new sr,h=0;h<o.sections.length;h++){var _=o.sections[h];_.image?p.addImageSection(_):p.addTextSection(_,a)}return p},sr.prototype.length=function(){return this.text.length},sr.prototype.getSection=function(o){return this.sections[this.sectionIndex[o]]},sr.prototype.getSectionIndex=function(o){return this.sectionIndex[o]},sr.prototype.getCharCode=function(o){return this.text.charCodeAt(o)},sr.prototype.verticalizePunctuation=function(){this.text=function(o){for(var a="",p=0;p<o.length;p++){var h=o.charCodeAt(p+1)||null,_=o.charCodeAt(p-1)||null;a+=h&&Zl(h)&&!xe[o[p+1]]||_&&Zl(_)&&!xe[o[p-1]]||!xe[o[p]]?o[p]:xe[o[p]]}return a}(this.text)},sr.prototype.trim=function(){for(var o=0,a=0;a<this.text.length&&eo[this.text.charCodeAt(a)];a++)o++;for(var p=this.text.length,h=this.text.length-1;h>=0&&h>=o&&eo[this.text.charCodeAt(h)];h--)p--;this.text=this.text.substring(o,p),this.sectionIndex=this.sectionIndex.slice(o,p)},sr.prototype.substring=function(o,a){var p=new sr;return p.text=this.text.substring(o,a),p.sectionIndex=this.sectionIndex.slice(o,a),p.sections=this.sections,p},sr.prototype.toString=function(){return this.text},sr.prototype.getMaxScale=function(){var o=this;return this.sectionIndex.reduce(function(a,p){return Math.max(a,o.sections[p].scale)},0)},sr.prototype.addTextSection=function(o,a){this.text+=o.text,this.sections.push(xo.forText(o.scale,o.fontStack||a));for(var p=this.sections.length-1,h=0;h<o.text.length;++h)this.sectionIndex.push(p)},sr.prototype.addImageSection=function(o){var a=o.image?o.image.name:"";if(a.length!==0){var p=this.getNextImageSectionCharCode();p?(this.text+=String.fromCharCode(p),this.sections.push(xo.forImage(a)),this.sectionIndex.push(this.sections.length-1)):ze("Reached maximum number of images 6401")}else ze("Can't add FormattedSection with an empty image.")},sr.prototype.getNextImageSectionCharCode=function(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var eo={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Wr={};function jo(o,a,p,h,_,v){if(a.imageName){var P=h[a.imageName];return P?P.displaySize[0]*a.scale*24/v+_:0}var S=p[a.fontStack],C=S&&S[o];return C?C.metrics.advance*a.scale+_:0}function Qi(o,a,p,h){var _=Math.pow(o-a,2);return h?o<a?_/2:2*_:_+Math.abs(p)*p}function zn(o,a,p){var h=0;return o===10&&(h-=1e4),p&&(h+=150),o!==40&&o!==65288||(h+=50),a!==41&&a!==65289||(h+=50),h}function Ro(o,a,p,h,_,v){for(var P=null,S=Qi(a,p,_,v),C=0,M=h;C<M.length;C+=1){var O=M[C],B=Qi(a-O.x,p,_,v)+O.badness;B<=S&&(P=O,S=B)}return{index:o,x:a,priorBreak:P,badness:S}}function Ji(o,a,p,h,_,v,P){if(v!=="point")return[];if(!o)return[];for(var S,C=[],M=function(Re,be,Ve,Ze,it,ut){for(var Et=0,kt=0;kt<Re.length();kt++){var qt=Re.getSection(kt);Et+=jo(Re.getCharCode(kt),qt,Ze,it,be,ut)}return Et/Math.max(1,Math.ceil(Et/Ve))}(o,a,p,h,_,P),O=o.text.indexOf("")>=0,B=0,j=0;j<o.length();j++){var Y=o.getSection(j),ce=o.getCharCode(j);if(eo[ce]||(B+=jo(ce,Y,h,_,a,P)),j<o.length()-1){var he=!((S=ce)<11904||!(Kt["Bopomofo Extended"](S)||Kt.Bopomofo(S)||Kt["CJK Compatibility Forms"](S)||Kt["CJK Compatibility Ideographs"](S)||Kt["CJK Compatibility"](S)||Kt["CJK Radicals Supplement"](S)||Kt["CJK Strokes"](S)||Kt["CJK Symbols and Punctuation"](S)||Kt["CJK Unified Ideographs Extension A"](S)||Kt["CJK Unified Ideographs"](S)||Kt["Enclosed CJK Letters and Months"](S)||Kt["Halfwidth and Fullwidth Forms"](S)||Kt.Hiragana(S)||Kt["Ideographic Description Characters"](S)||Kt["Kangxi Radicals"](S)||Kt["Katakana Phonetic Extensions"](S)||Kt.Katakana(S)||Kt["Vertical Forms"](S)||Kt["Yi Radicals"](S)||Kt["Yi Syllables"](S)));(Wr[ce]||he||Y.imageName)&&C.push(Ro(j+1,B,M,C,zn(ce,o.getCharCode(j+1),he&&O),!1))}}return function Re(be){return be?Re(be.priorBreak).concat(be.index):[]}(Ro(o.length(),B,M,C,0,!0))}function mi(o){var a=.5,p=.5;switch(o){case"right":case"top-right":case"bottom-right":a=1;break;case"left":case"top-left":case"bottom-left":a=0}switch(o){case"bottom":case"bottom-right":case"bottom-left":p=1;break;case"top":case"top-right":case"top-left":p=0}return{horizontalAlign:a,verticalAlign:p}}function mn(o,a,p,h,_){if(h||_)for(var v=o[p],P=(o[p].x+v.metrics.advance*v.scale)*h,S=a;S<=p;S++)o[S].x-=P,o[S].y+=_}function _n(o,a,p,h,_,v){var P,S=o.image;if(S.content){var C=S.content,M=S.pixelRatio||1;P=[C[0]/M,C[1]/M,S.displaySize[0]-C[2]/M,S.displaySize[1]-C[3]/M]}var O,B,j,Y,ce=a.left*v,he=a.right*v;p==="width"||p==="both"?(Y=_[0]+ce-h[3],B=_[0]+he+h[1]):B=(Y=_[0]+(ce+he-S.displaySize[0])/2)+S.displaySize[0];var Re=a.top*v,be=a.bottom*v;return p==="height"||p==="both"?(O=_[1]+Re-h[0],j=_[1]+be+h[2]):j=(O=_[1]+(Re+be-S.displaySize[1])/2)+S.displaySize[1],{image:S,top:O,right:B,bottom:j,left:Y,collisionPadding:P}}Wr[10]=!0,Wr[32]=!0,Wr[38]=!0,Wr[40]=!0,Wr[41]=!0,Wr[43]=!0,Wr[45]=!0,Wr[47]=!0,Wr[173]=!0,Wr[183]=!0,Wr[8203]=!0,Wr[8208]=!0,Wr[8211]=!0,Wr[8231]=!0;var ki=function(o){function a(p,h,_,v){o.call(this,p,h),this.angle=_,v!==void 0&&(this.segment=v)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.clone=function(){return new a(this.x,this.y,this.angle,this.segment)},a}(x);function In(o,a){var p=a.expression;if(p.kind==="constant")return{kind:"constant",layoutSize:p.evaluate(new po(o+1))};if(p.kind==="source")return{kind:"source"};for(var h=p.zoomStops,_=p.interpolationType,v=0;v<h.length&&h[v]<=o;)v++;for(var P=v=Math.max(0,v-1);P<h.length&&h[P]<o+1;)P++;P=Math.min(h.length-1,P);var S=h[v],C=h[P];return p.kind==="composite"?{kind:"composite",minZoom:S,maxZoom:C,interpolationType:_}:{kind:"camera",minZoom:S,maxZoom:C,minSize:p.evaluate(new po(S)),maxSize:p.evaluate(new po(C)),interpolationType:_}}function na(o,a,p){var h=a.uSize,_=p.lowerSize;return o.kind==="source"?_/128:o.kind==="composite"?Oi(_/128,p.upperSize/128,a.uSizeT):h}function gn(o,a){var p=0,h=0;if(o.kind==="constant")h=o.layoutSize;else if(o.kind!=="source"){var _=o.interpolationType,v=_?V(Un.interpolationFactor(_,a,o.minZoom,o.maxZoom),0,1):0;o.kind==="camera"?h=Oi(o.minSize,o.maxSize,v):p=v}return{uSizeT:p,uSize:h}}hr("Anchor",ki);var yo=Object.freeze({__proto__:null,getSizeData:In,evaluateSizeForFeature:na,evaluateSizeForZoom:gn,SIZE_PACK_FACTOR:128});function Yn(o,a,p,h,_){if(a.segment===void 0)return!0;for(var v=a,P=a.segment+1,S=0;S>-p/2;){if(--P<0)return!1;S-=o[P].dist(v),v=o[P]}S+=o[P].dist(o[P+1]),P++;for(var C=[],M=0;S<p/2;){var O=o[P],B=o[P+1];if(!B)return!1;var j=o[P-1].angleTo(O)-O.angleTo(B);for(j=Math.abs((j+3*Math.PI)%(2*Math.PI)-Math.PI),C.push({distance:S,angleDelta:j}),M+=j;S-C[0].distance>h;)M-=C.shift().angleDelta;if(M>_)return!1;P++,S+=O.dist(B)}return!0}function Zo(o){for(var a=0,p=0;p<o.length-1;p++)a+=o[p].dist(o[p+1]);return a}function Vr(o,a,p){return o?.6*a*p:0}function To(o,a){return Math.max(o?o.right-o.left:0,a?a.right-a.left:0)}function zo(o,a,p,h,_,v){for(var P=Vr(p,_,v),S=To(p,h)*v,C=0,M=Zo(o)/2,O=0;O<o.length-1;O++){var B=o[O],j=o[O+1],Y=B.dist(j);if(C+Y>M){var ce=(M-C)/Y,he=Oi(B.x,j.x,ce),Re=Oi(B.y,j.y,ce),be=new ki(he,Re,j.angleTo(B),O);return be._round(),!P||Yn(o,be,S,P,a)?be:void 0}C+=Y}}function en(o,a,p,h,_,v,P,S,C){var M=Vr(h,v,P),O=To(h,_),B=O*P,j=o[0].x===0||o[0].x===C||o[0].y===0||o[0].y===C;return a-B<a/4&&(a=B+a/4),function Y(ce,he,Re,be,Ve,Ze,it,ut,Et){for(var kt=Ze/2,qt=Zo(ce),Ir=0,pr=he-Re,Br=[],dr=0;dr<ce.length-1;dr++){for(var Po=ce[dr],Zr=ce[dr+1],Pr=Po.dist(Zr),Co=Zr.angleTo(Po);pr+Re<Ir+Pr;){var co=((pr+=Re)-Ir)/Pr,Vo=Oi(Po.x,Zr.x,co),Ur=Oi(Po.y,Zr.y,co);if(Vo>=0&&Vo<Et&&Ur>=0&&Ur<Et&&pr-kt>=0&&pr+kt<=qt){var $o=new ki(Vo,Ur,Co,dr);$o._round(),be&&!Yn(ce,$o,Ze,be,Ve)||Br.push($o)}}Ir+=Pr}return ut||Br.length||it||(Br=Y(ce,Ir/2,Re,be,Ve,Ze,it,!0,Et)),Br}(o,j?a/2*S%a:(O/2+2*v)*P*S%a,a,M,p,B,j,!1,C)}function nu(o,a,p,h,_){for(var v=[],P=0;P<o.length;P++)for(var S=o[P],C=void 0,M=0;M<S.length-1;M++){var O=S[M],B=S[M+1];O.x<a&&B.x<a||(O.x<a?O=new x(a,O.y+(a-O.x)/(B.x-O.x)*(B.y-O.y))._round():B.x<a&&(B=new x(a,O.y+(a-O.x)/(B.x-O.x)*(B.y-O.y))._round()),O.y<p&&B.y<p||(O.y<p?O=new x(O.x+(p-O.y)/(B.y-O.y)*(B.x-O.x),p)._round():B.y<p&&(B=new x(O.x+(p-O.y)/(B.y-O.y)*(B.x-O.x),p)._round()),O.x>=h&&B.x>=h||(O.x>=h?O=new x(h,O.y+(h-O.x)/(B.x-O.x)*(B.y-O.y))._round():B.x>=h&&(B=new x(h,O.y+(h-O.x)/(B.x-O.x)*(B.y-O.y))._round()),O.y>=_&&B.y>=_||(O.y>=_?O=new x(O.x+(_-O.y)/(B.y-O.y)*(B.x-O.x),_)._round():B.y>=_&&(B=new x(O.x+(_-O.y)/(B.y-O.y)*(B.x-O.x),_)._round()),C&&O.equals(C[C.length-1])||v.push(C=[O]),C.push(B)))))}return v}function fe(o,a,p,h){var _=[],v=o.image,P=v.pixelRatio,S=v.paddedRect.w-2,C=v.paddedRect.h-2,M=o.right-o.left,O=o.bottom-o.top,B=v.stretchX||[[0,S]],j=v.stretchY||[[0,C]],Y=function(Vo,Ur){return Vo+Ur[1]-Ur[0]},ce=B.reduce(Y,0),he=j.reduce(Y,0),Re=S-ce,be=C-he,Ve=0,Ze=ce,it=0,ut=he,Et=0,kt=Re,qt=0,Ir=be;if(v.content&&h){var pr=v.content;Ve=ot(B,0,pr[0]),it=ot(j,0,pr[1]),Ze=ot(B,pr[0],pr[2]),ut=ot(j,pr[1],pr[3]),Et=pr[0]-Ve,qt=pr[1]-it,kt=pr[2]-pr[0]-Ze,Ir=pr[3]-pr[1]-ut}var Br=function(Vo,Ur,$o,Ci){var Zi=ur(Vo.stretch-Ve,Ze,M,o.left),ji=fo(Vo.fixed-Et,kt,Vo.stretch,ce),Ii=ur(Ur.stretch-it,ut,O,o.top),Yi=fo(Ur.fixed-qt,Ir,Ur.stretch,he),Vn=ur($o.stretch-Ve,Ze,M,o.left),Hn=fo($o.fixed-Et,kt,$o.stretch,ce),Ra=ur(Ci.stretch-it,ut,O,o.top),qn=fo(Ci.fixed-qt,Ir,Ci.stretch,he),Ca=new x(Zi,Ii),tn=new x(Vn,Ii),Kn=new x(Vn,Ra),Do=new x(Zi,Ra),yi=new x(ji/P,Yi/P),ni=new x(Hn/P,qn/P),Wo=a*Math.PI/180;if(Wo){var za=Math.sin(Wo),ma=Math.cos(Wo),Ti=[ma,-za,za,ma];Ca._matMult(Ti),tn._matMult(Ti),Do._matMult(Ti),Kn._matMult(Ti)}var En=Vo.stretch+Vo.fixed,_a=Ur.stretch+Ur.fixed;return{tl:Ca,tr:tn,bl:Do,br:Kn,tex:{x:v.paddedRect.x+1+En,y:v.paddedRect.y+1+_a,w:$o.stretch+$o.fixed-En,h:Ci.stretch+Ci.fixed-_a},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:yi,pixelOffsetBR:ni,minFontScaleX:kt/P/M,minFontScaleY:Ir/P/O,isSDF:p}};if(h&&(v.stretchX||v.stretchY))for(var dr=Ke(B,Re,ce),Po=Ke(j,be,he),Zr=0;Zr<dr.length-1;Zr++)for(var Pr=dr[Zr],Co=dr[Zr+1],co=0;co<Po.length-1;co++)_.push(Br(Pr,Po[co],Co,Po[co+1]));else _.push(Br({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:S+1},{fixed:0,stretch:C+1}));return _}function ot(o,a,p){for(var h=0,_=0,v=o;_<v.length;_+=1){var P=v[_];h+=Math.max(a,Math.min(p,P[1]))-Math.max(a,Math.min(p,P[0]))}return h}function Ke(o,a,p){for(var h=[{fixed:-1,stretch:0}],_=0,v=o;_<v.length;_+=1){var P=v[_],S=P[0],C=P[1],M=h[h.length-1];h.push({fixed:S-M.stretch,stretch:M.stretch}),h.push({fixed:S-M.stretch,stretch:M.stretch+(C-S)})}return h.push({fixed:a+1,stretch:p}),h}function ur(o,a,p,h){return o/a*p+h}function fo(o,a,p,h){return o-a*p/h}var ii=function(o,a,p,h,_,v,P,S,C,M){if(this.boxStartIndex=o.length,C){var O=v.top,B=v.bottom,j=v.collisionPadding;j&&(O-=j[1],B+=j[3]);var Y=B-O;Y>0&&(Y=Math.max(10,Y),this.circleDiameter=Y)}else{var ce=v.top*P-S,he=v.bottom*P+S,Re=v.left*P-S,be=v.right*P+S,Ve=v.collisionPadding;if(Ve&&(Re-=Ve[0]*P,ce-=Ve[1]*P,be+=Ve[2]*P,he+=Ve[3]*P),M){var Ze=new x(Re,ce),it=new x(be,ce),ut=new x(Re,he),Et=new x(be,he),kt=M*Math.PI/180;Ze._rotate(kt),it._rotate(kt),ut._rotate(kt),Et._rotate(kt),Re=Math.min(Ze.x,it.x,ut.x,Et.x),be=Math.max(Ze.x,it.x,ut.x,Et.x),ce=Math.min(Ze.y,it.y,ut.y,Et.y),he=Math.max(Ze.y,it.y,ut.y,Et.y)}o.emplaceBack(a.x,a.y,Re,ce,be,he,p,h,_)}this.boxEndIndex=o.length},Z=function(o,a){if(o===void 0&&(o=[]),a===void 0&&(a=ue),this.data=o,this.length=this.data.length,this.compare=a,this.length>0)for(var p=(this.length>>1)-1;p>=0;p--)this._down(p)};function ue(o,a){return o<a?-1:o>a?1:0}function Pe(o,a,p){p===void 0&&(p=!1);for(var h=1/0,_=1/0,v=-1/0,P=-1/0,S=o[0],C=0;C<S.length;C++){var M=S[C];(!C||M.x<h)&&(h=M.x),(!C||M.y<_)&&(_=M.y),(!C||M.x>v)&&(v=M.x),(!C||M.y>P)&&(P=M.y)}var O=Math.min(v-h,P-_),B=O/2,j=new Z([],Qe);if(O===0)return new x(h,_);for(var Y=h;Y<v;Y+=O)for(var ce=_;ce<P;ce+=O)j.push(new qe(Y+B,ce+B,B,o));for(var he=function(Ve){for(var Ze=0,it=0,ut=0,Et=Ve[0],kt=0,qt=Et.length,Ir=qt-1;kt<qt;Ir=kt++){var pr=Et[kt],Br=Et[Ir],dr=pr.x*Br.y-Br.x*pr.y;it+=(pr.x+Br.x)*dr,ut+=(pr.y+Br.y)*dr,Ze+=3*dr}return new qe(it/Ze,ut/Ze,0,Ve)}(o),Re=j.length;j.length;){var be=j.pop();(be.d>he.d||!he.d)&&(he=be,p&&console.log("found best %d after %d probes",Math.round(1e4*be.d)/1e4,Re)),be.max-he.d<=a||(j.push(new qe(be.p.x-(B=be.h/2),be.p.y-B,B,o)),j.push(new qe(be.p.x+B,be.p.y-B,B,o)),j.push(new qe(be.p.x-B,be.p.y+B,B,o)),j.push(new qe(be.p.x+B,be.p.y+B,B,o)),Re+=4)}return p&&(console.log("num probes: "+Re),console.log("best distance: "+he.d)),he.p}function Qe(o,a){return a.max-o.max}function qe(o,a,p,h){this.p=new x(o,a),this.h=p,this.d=function(_,v){for(var P=!1,S=1/0,C=0;C<v.length;C++)for(var M=v[C],O=0,B=M.length,j=B-1;O<B;j=O++){var Y=M[O],ce=M[j];Y.y>_.y!=ce.y>_.y&&_.x<(ce.x-Y.x)*(_.y-Y.y)/(ce.y-Y.y)+Y.x&&(P=!P),S=Math.min(S,Nu(_,Y,ce))}return(P?1:-1)*Math.sqrt(S)}(this.p,h),this.max=this.d+this.h*Math.SQRT2}Z.prototype.push=function(o){this.data.push(o),this.length++,this._up(this.length-1)},Z.prototype.pop=function(){if(this.length!==0){var o=this.data[0],a=this.data.pop();return this.length--,this.length>0&&(this.data[0]=a,this._down(0)),o}},Z.prototype.peek=function(){return this.data[0]},Z.prototype._up=function(o){for(var a=this.data,p=this.compare,h=a[o];o>0;){var _=o-1>>1,v=a[_];if(p(h,v)>=0)break;a[o]=v,o=_}a[o]=h},Z.prototype._down=function(o){for(var a=this.data,p=this.compare,h=this.length>>1,_=a[o];o<h;){var v=1+(o<<1),P=a[v],S=v+1;if(S<this.length&&p(a[S],P)<0&&(v=S,P=a[S]),p(P,_)>=0)break;a[o]=P,o=v}a[o]=_};var Se=Number.POSITIVE_INFINITY;function Ne(o,a){return a[1]!==Se?function(p,h,_){var v=0,P=0;switch(h=Math.abs(h),_=Math.abs(_),p){case"top-right":case"top-left":case"top":P=_-7;break;case"bottom-right":case"bottom-left":case"bottom":P=7-_}switch(p){case"top-right":case"bottom-right":case"right":v=-h;break;case"top-left":case"bottom-left":case"left":v=h}return[v,P]}(o,a[0],a[1]):function(p,h){var _=0,v=0;h<0&&(h=0);var P=h/Math.sqrt(2);switch(p){case"top-right":case"top-left":v=P-7;break;case"bottom-right":case"bottom-left":v=7-P;break;case"bottom":v=7-h;break;case"top":v=h-7}switch(p){case"top-right":case"bottom-right":_=-P;break;case"top-left":case"bottom-left":_=P;break;case"left":_=h;break;case"right":_=-h}return[_,v]}(o,a[0])}function Ue(o){switch(o){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function me(o,a,p,h,_,v,P,S,C,M,O,B,j,Y,ce){var he=function(it,ut,Et,kt,qt,Ir,pr,Br){for(var dr=kt.layout.get("text-rotate").evaluate(Ir,{})*Math.PI/180,Po=[],Zr=0,Pr=ut.positionedLines;Zr<Pr.length;Zr+=1)for(var Co=Pr[Zr],co=0,Vo=Co.positionedGlyphs;co<Vo.length;co+=1){var Ur=Vo[co];if(Ur.rect){var $o=Ur.rect||{},Ci=4,Zi=!0,ji=1,Ii=0,Yi=(qt||Br)&&Ur.vertical,Vn=Ur.metrics.advance*Ur.scale/2;if(Br&&ut.verticalizable&&(Ii=Co.lineOffset/2-(Ur.imageName?-(24-Ur.metrics.width*Ur.scale)/2:24*(Ur.scale-1))),Ur.imageName){var Hn=pr[Ur.imageName];Zi=Hn.sdf,Ci=1/(ji=Hn.pixelRatio)}var Ra=qt?[Ur.x+Vn,Ur.y]:[0,0],qn=qt?[0,0]:[Ur.x+Vn+Et[0],Ur.y+Et[1]-Ii],Ca=[0,0];Yi&&(Ca=qn,qn=[0,0]);var tn=(Ur.metrics.left-Ci)*Ur.scale-Vn+qn[0],Kn=(-Ur.metrics.top-Ci)*Ur.scale+qn[1],Do=tn+$o.w*Ur.scale/ji,yi=Kn+$o.h*Ur.scale/ji,ni=new x(tn,Kn),Wo=new x(Do,Kn),za=new x(tn,yi),ma=new x(Do,yi);if(Yi){var Ti=new x(-Vn,Vn- -17),En=-Math.PI/2,_a=12-Vn,qo=new x(22-_a,-(Ur.imageName?_a:0)),kp=new(Function.prototype.bind.apply(x,[null].concat(Ca)));ni._rotateAround(En,Ti)._add(qo)._add(kp),Wo._rotateAround(En,Ti)._add(qo)._add(kp),za._rotateAround(En,Ti)._add(qo)._add(kp),ma._rotateAround(En,Ti)._add(qo)._add(kp)}if(dr){var Ds=Math.sin(dr),zp=Math.cos(dr),rn=[zp,-Ds,Ds,zp];ni._matMult(rn),Wo._matMult(rn),za._matMult(rn),ma._matMult(rn)}var Vp=new x(0,0),Bu=new x(0,0);Po.push({tl:ni,tr:Wo,bl:za,br:ma,tex:$o,writingMode:ut.writingMode,glyphOffset:Ra,sectionIndex:Ur.sectionIndex,isSDF:Zi,pixelOffsetTL:Vp,pixelOffsetBR:Bu,minFontScaleX:0,minFontScaleY:0})}}return Po}(0,p,S,_,v,P,h,o.allowVerticalPlacement),Re=o.textSizeData,be=null;Re.kind==="source"?(be=[128*_.layout.get("text-size").evaluate(P,{})])[0]>32640&&ze(o.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):Re.kind==="composite"&&((be=[128*Y.compositeTextSizes[0].evaluate(P,{},ce),128*Y.compositeTextSizes[1].evaluate(P,{},ce)])[0]>32640||be[1]>32640)&&ze(o.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),o.addSymbols(o.text,he,be,S,v,P,M,a,C.lineStartIndex,C.lineLength,j,ce);for(var Ve=0,Ze=O;Ve<Ze.length;Ve+=1)B[Ze[Ve]]=o.text.placedSymbolArray.length-1;return 4*he.length}function Ce(o){for(var a in o)return o[a];return null}function ae(o,a,p,h){var _=o.compareText;if(a in _){for(var v=_[a],P=v.length-1;P>=0;P--)if(h.dist(v[P])<p)return!0}else _[a]=[];return _[a].push(h),!1}var Me=Up.VectorTileFeature.types,nt=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function yt(o,a,p,h,_,v,P,S,C,M,O,B,j){var Y=S?Math.min(32640,Math.round(S[0])):0,ce=S?Math.min(32640,Math.round(S[1])):0;o.emplaceBack(a,p,Math.round(32*h),Math.round(32*_),v,P,(Y<<1)+(C?1:0),ce,16*M,16*O,256*B,256*j)}function St(o,a,p){o.emplaceBack(a.x,a.y,p),o.emplaceBack(a.x,a.y,p),o.emplaceBack(a.x,a.y,p),o.emplaceBack(a.x,a.y,p)}function xt(o){for(var a=0,p=o.sections;a<p.length;a+=1)if(Yl(p[a].text))return!0;return!1}var It=function(o){this.layoutVertexArray=new Ql,this.indexArray=new Rs,this.programConfigurations=o,this.segments=new K,this.dynamicLayoutVertexArray=new Cp,this.opacityVertexArray=new cl,this.placedSymbolArray=new f};It.prototype.isEmpty=function(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0},It.prototype.upload=function(o,a,p,h){this.isEmpty()||(p&&(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,ym.members),this.indexBuffer=o.createIndexBuffer(this.indexArray,a),this.dynamicLayoutVertexBuffer=o.createVertexBuffer(this.dynamicLayoutVertexArray,hm.members,!0),this.opacityVertexBuffer=o.createVertexBuffer(this.opacityVertexArray,nt,!0),this.opacityVertexBuffer.itemSize=1),(p||h)&&this.programConfigurations.upload(o))},It.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},hr("SymbolBuffers",It);var Tr=function(o,a,p){this.layoutVertexArray=new o,this.layoutAttributes=a,this.indexArray=new p,this.segments=new K,this.collisionVertexArray=new $c};Tr.prototype.upload=function(o){this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=o.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=o.createVertexBuffer(this.collisionVertexArray,th.members,!0)},Tr.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},hr("CollisionBuffers",Tr);var fr=function(o){this.collisionBoxArray=o.collisionBoxArray,this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(v){return v.id}),this.index=o.index,this.pixelRatio=o.pixelRatio,this.sourceLayerIndex=o.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Cn([]),this.placementViewportMatrix=Cn([]);var a=this.layers[0]._unevaluatedLayout._values;this.textSizeData=In(this.zoom,a["text-size"]),this.iconSizeData=In(this.zoom,a["icon-size"]);var p=this.layers[0].layout,h=p.get("symbol-sort-key"),_=p.get("symbol-z-order");this.canOverlap=p.get("text-allow-overlap")||p.get("icon-allow-overlap")||p.get("text-ignore-placement")||p.get("icon-ignore-placement"),this.sortFeaturesByKey=_!=="viewport-y"&&h.constantOr(1)!==void 0,this.sortFeaturesByY=(_==="viewport-y"||_==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,p.get("symbol-placement")==="point"&&(this.writingModes=p.get("text-writing-mode").map(function(v){return Lr[v]})),this.stateDependentLayerIds=this.layers.filter(function(v){return v.isStateDependent()}).map(function(v){return v.id}),this.sourceID=o.sourceID};fr.prototype.createArrays=function(){this.text=new It(new zr(this.layers,this.zoom,function(o){return/^text/.test(o)})),this.icon=new It(new zr(this.layers,this.zoom,function(o){return/^icon/.test(o)})),this.glyphOffsetArray=new T,this.lineVertexArray=new w,this.symbolInstances=new A},fr.prototype.calculateGlyphDependencies=function(o,a,p,h,_){for(var v=0;v<o.length;v++)if(a[o.charCodeAt(v)]=!0,(p||h)&&_){var P=xe[o.charAt(v)];P&&(a[P.charCodeAt(0)]=!0)}},fr.prototype.populate=function(o,a,p){var h=this.layers[0],_=h.layout,v=_.get("text-font"),P=_.get("text-field"),S=_.get("icon-image"),C=(P.value.kind!=="constant"||P.value.value instanceof Di&&!P.value.value.isEmpty()||P.value.value.toString().length>0)&&(v.value.kind!=="constant"||v.value.value.length>0),M=S.value.kind!=="constant"||!!S.value.value||Object.keys(S.parameters).length>0,O=_.get("symbol-sort-key");if(this.features=[],C||M){for(var B=a.iconDependencies,j=a.glyphDependencies,Y=a.availableImages,ce=new po(this.zoom),he=0,Re=o;he<Re.length;he+=1){var be=Re[he],Ve=be.feature,Ze=be.id,it=be.index,ut=be.sourceLayerIndex,Et=h._featureFilter.needGeometry,kt=wi(Ve,Et);if(h._featureFilter.filter(ce,kt,p)){Et||(kt.geometry=Fi(Ve));var qt=void 0;if(C){var Ir=h.getValueAndResolveTokens("text-field",kt,p,Y),pr=Di.factory(Ir);xt(pr)&&(this.hasRTLText=!0),(!this.hasRTLText||Zc()==="unavailable"||this.hasRTLText&&Ba.isParsed())&&(qt=ie(pr,h,kt))}var Br=void 0;if(M){var dr=h.getValueAndResolveTokens("icon-image",kt,p,Y);Br=dr instanceof gi?dr:gi.fromString(dr)}if(qt||Br){var Po=this.sortFeaturesByKey?O.evaluate(kt,{},p):void 0;if(this.features.push({id:Ze,text:qt,icon:Br,index:it,sourceLayerIndex:ut,geometry:kt.geometry,properties:Ve.properties,type:Me[Ve.type],sortKey:Po}),Br&&(B[Br.name]=!0),qt){var Zr=v.evaluate(kt,{},p).join(","),Pr=_.get("text-rotation-alignment")==="map"&&_.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(Lr.vertical)>=0;for(var Co=0,co=qt.sections;Co<co.length;Co+=1){var Vo=co[Co];if(Vo.image)B[Vo.image.name]=!0;else{var Ur=Js(qt.toString()),$o=Vo.fontStack||Zr,Ci=j[$o]=j[$o]||{};this.calculateGlyphDependencies(Vo.text,Ci,Pr,this.allowVerticalPlacement,Ur)}}}}}}_.get("symbol-placement")==="line"&&(this.features=function(Zi){var ji={},Ii={},Yi=[],Vn=0;function Hn(Ti){Yi.push(Zi[Ti]),Vn++}function Ra(Ti,En,_a){var qo=Ii[Ti];return delete Ii[Ti],Ii[En]=qo,Yi[qo].geometry[0].pop(),Yi[qo].geometry[0]=Yi[qo].geometry[0].concat(_a[0]),qo}function qn(Ti,En,_a){var qo=ji[En];return delete ji[En],ji[Ti]=qo,Yi[qo].geometry[0].shift(),Yi[qo].geometry[0]=_a[0].concat(Yi[qo].geometry[0]),qo}function Ca(Ti,En,_a){var qo=_a?En[0][En[0].length-1]:En[0][0];return Ti+":"+qo.x+":"+qo.y}for(var tn=0;tn<Zi.length;tn++){var Kn=Zi[tn],Do=Kn.geometry,yi=Kn.text?Kn.text.toString():null;if(yi){var ni=Ca(yi,Do),Wo=Ca(yi,Do,!0);if(ni in Ii&&Wo in ji&&Ii[ni]!==ji[Wo]){var za=qn(ni,Wo,Do),ma=Ra(ni,Wo,Yi[za].geometry);delete ji[ni],delete Ii[Wo],Ii[Ca(yi,Yi[ma].geometry,!0)]=ma,Yi[za].geometry=null}else ni in Ii?Ra(ni,Wo,Do):Wo in ji?qn(ni,Wo,Do):(Hn(tn),ji[ni]=Vn-1,Ii[Wo]=Vn-1)}else Hn(tn)}return Yi.filter(function(Ti){return Ti.geometry})}(this.features)),this.sortFeaturesByKey&&this.features.sort(function(Zi,ji){return Zi.sortKey-ji.sortKey})}},fr.prototype.update=function(o,a,p){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(o,a,this.layers,p),this.icon.programConfigurations.updatePaintArrays(o,a,this.layers,p))},fr.prototype.isEmpty=function(){return this.symbolInstances.length===0&&!this.hasRTLText},fr.prototype.uploadPending=function(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload},fr.prototype.upload=function(o){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(o),this.iconCollisionBox.upload(o)),this.text.upload(o,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(o,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0},fr.prototype.destroyDebugData=function(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()},fr.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()},fr.prototype.addToLineVertexArray=function(o,a){var p=this.lineVertexArray.length;if(o.segment!==void 0){for(var h=o.dist(a[o.segment+1]),_=o.dist(a[o.segment]),v={},P=o.segment+1;P<a.length;P++)v[P]={x:a[P].x,y:a[P].y,tileUnitDistanceFromAnchor:h},P<a.length-1&&(h+=a[P+1].dist(a[P]));for(var S=o.segment||0;S>=0;S--)v[S]={x:a[S].x,y:a[S].y,tileUnitDistanceFromAnchor:_},S>0&&(_+=a[S-1].dist(a[S]));for(var C=0;C<a.length;C++){var M=v[C];this.lineVertexArray.emplaceBack(M.x,M.y,M.tileUnitDistanceFromAnchor)}}return{lineStartIndex:p,lineLength:this.lineVertexArray.length-p}},fr.prototype.addSymbols=function(o,a,p,h,_,v,P,S,C,M,O,B){for(var j=o.indexArray,Y=o.layoutVertexArray,ce=o.segments.prepareSegment(4*a.length,Y,j,this.canOverlap?v.sortKey:void 0),he=this.glyphOffsetArray.length,Re=ce.vertexLength,be=this.allowVerticalPlacement&&P===Lr.vertical?Math.PI/2:0,Ve=v.text&&v.text.sections,Ze=0;Ze<a.length;Ze++){var it=a[Ze],ut=it.tl,Et=it.tr,kt=it.bl,qt=it.br,Ir=it.tex,pr=it.pixelOffsetTL,Br=it.pixelOffsetBR,dr=it.minFontScaleX,Po=it.minFontScaleY,Zr=it.glyphOffset,Pr=it.isSDF,Co=it.sectionIndex,co=ce.vertexLength,Vo=Zr[1];yt(Y,S.x,S.y,ut.x,Vo+ut.y,Ir.x,Ir.y,p,Pr,pr.x,pr.y,dr,Po),yt(Y,S.x,S.y,Et.x,Vo+Et.y,Ir.x+Ir.w,Ir.y,p,Pr,Br.x,pr.y,dr,Po),yt(Y,S.x,S.y,kt.x,Vo+kt.y,Ir.x,Ir.y+Ir.h,p,Pr,pr.x,Br.y,dr,Po),yt(Y,S.x,S.y,qt.x,Vo+qt.y,Ir.x+Ir.w,Ir.y+Ir.h,p,Pr,Br.x,Br.y,dr,Po),St(o.dynamicLayoutVertexArray,S,be),j.emplaceBack(co,co+1,co+2),j.emplaceBack(co+1,co+2,co+3),ce.vertexLength+=4,ce.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(Zr[0]),Ze!==a.length-1&&Co===a[Ze+1].sectionIndex||o.programConfigurations.populatePaintArrays(Y.length,v,v.index,{},B,Ve&&Ve[Co])}o.placedSymbolArray.emplaceBack(S.x,S.y,he,this.glyphOffsetArray.length-he,Re,C,M,S.segment,p?p[0]:0,p?p[1]:0,h[0],h[1],P,0,!1,0,O)},fr.prototype._addCollisionDebugVertex=function(o,a,p,h,_,v){return a.emplaceBack(0,0),o.emplaceBack(p.x,p.y,h,_,Math.round(v.x),Math.round(v.y))},fr.prototype.addCollisionDebugVertices=function(o,a,p,h,_,v,P){var S=_.segments.prepareSegment(4,_.layoutVertexArray,_.indexArray),C=S.vertexLength,M=_.layoutVertexArray,O=_.collisionVertexArray,B=P.anchorX,j=P.anchorY;this._addCollisionDebugVertex(M,O,v,B,j,new x(o,a)),this._addCollisionDebugVertex(M,O,v,B,j,new x(p,a)),this._addCollisionDebugVertex(M,O,v,B,j,new x(p,h)),this._addCollisionDebugVertex(M,O,v,B,j,new x(o,h)),S.vertexLength+=4;var Y=_.indexArray;Y.emplaceBack(C,C+1),Y.emplaceBack(C+1,C+2),Y.emplaceBack(C+2,C+3),Y.emplaceBack(C+3,C),S.primitiveLength+=4},fr.prototype.addDebugCollisionBoxes=function(o,a,p,h){for(var _=o;_<a;_++){var v=this.collisionBoxArray.get(_);this.addCollisionDebugVertices(v.x1,v.y1,v.x2,v.y2,h?this.textCollisionBox:this.iconCollisionBox,v.anchorPoint,p)}},fr.prototype.generateCollisionDebugBuffers=function(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Tr(rp,rh.members,dl),this.iconCollisionBox=new Tr(rp,rh.members,dl);for(var o=0;o<this.symbolInstances.length;o++){var a=this.symbolInstances.get(o);this.addDebugCollisionBoxes(a.textBoxStartIndex,a.textBoxEndIndex,a,!0),this.addDebugCollisionBoxes(a.verticalTextBoxStartIndex,a.verticalTextBoxEndIndex,a,!0),this.addDebugCollisionBoxes(a.iconBoxStartIndex,a.iconBoxEndIndex,a,!1),this.addDebugCollisionBoxes(a.verticalIconBoxStartIndex,a.verticalIconBoxEndIndex,a,!1)}},fr.prototype._deserializeCollisionBoxesForSymbol=function(o,a,p,h,_,v,P,S,C){for(var M={},O=a;O<p;O++){var B=o.get(O);M.textBox={x1:B.x1,y1:B.y1,x2:B.x2,y2:B.y2,anchorPointX:B.anchorPointX,anchorPointY:B.anchorPointY},M.textFeatureIndex=B.featureIndex;break}for(var j=h;j<_;j++){var Y=o.get(j);M.verticalTextBox={x1:Y.x1,y1:Y.y1,x2:Y.x2,y2:Y.y2,anchorPointX:Y.anchorPointX,anchorPointY:Y.anchorPointY},M.verticalTextFeatureIndex=Y.featureIndex;break}for(var ce=v;ce<P;ce++){var he=o.get(ce);M.iconBox={x1:he.x1,y1:he.y1,x2:he.x2,y2:he.y2,anchorPointX:he.anchorPointX,anchorPointY:he.anchorPointY},M.iconFeatureIndex=he.featureIndex;break}for(var Re=S;Re<C;Re++){var be=o.get(Re);M.verticalIconBox={x1:be.x1,y1:be.y1,x2:be.x2,y2:be.y2,anchorPointX:be.anchorPointX,anchorPointY:be.anchorPointY},M.verticalIconFeatureIndex=be.featureIndex;break}return M},fr.prototype.deserializeCollisionBoxes=function(o){this.collisionArrays=[];for(var a=0;a<this.symbolInstances.length;a++){var p=this.symbolInstances.get(a);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(o,p.textBoxStartIndex,p.textBoxEndIndex,p.verticalTextBoxStartIndex,p.verticalTextBoxEndIndex,p.iconBoxStartIndex,p.iconBoxEndIndex,p.verticalIconBoxStartIndex,p.verticalIconBoxEndIndex))}},fr.prototype.hasTextData=function(){return this.text.segments.get().length>0},fr.prototype.hasIconData=function(){return this.icon.segments.get().length>0},fr.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},fr.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},fr.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},fr.prototype.addIndicesForPlacedSymbol=function(o,a){for(var p=o.placedSymbolArray.get(a),h=p.vertexStartIndex+4*p.numGlyphs,_=p.vertexStartIndex;_<h;_+=4)o.indexArray.emplaceBack(_,_+1,_+2),o.indexArray.emplaceBack(_+1,_+2,_+3)},fr.prototype.getSortedSymbolIndexes=function(o){if(this.sortedAngle===o&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;for(var a=Math.sin(o),p=Math.cos(o),h=[],_=[],v=[],P=0;P<this.symbolInstances.length;++P){v.push(P);var S=this.symbolInstances.get(P);h.push(0|Math.round(a*S.anchorX+p*S.anchorY)),_.push(S.featureIndex)}return v.sort(function(C,M){return h[C]-h[M]||_[M]-_[C]}),v},fr.prototype.addToSortKeyRanges=function(o,a){var p=this.sortKeyRanges[this.sortKeyRanges.length-1];p&&p.sortKey===a?p.symbolInstanceEnd=o+1:this.sortKeyRanges.push({sortKey:a,symbolInstanceStart:o,symbolInstanceEnd:o+1})},fr.prototype.sortFeatures=function(o){var a=this;if(this.sortFeaturesByY&&this.sortedAngle!==o&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(o),this.sortedAngle=o,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var p=0,h=this.symbolInstanceIndexes;p<h.length;p+=1){var _=this.symbolInstances.get(h[p]);this.featureSortOrder.push(_.featureIndex),[_.rightJustifiedTextSymbolIndex,_.centerJustifiedTextSymbolIndex,_.leftJustifiedTextSymbolIndex].forEach(function(v,P,S){v>=0&&S.indexOf(v)===P&&a.addIndicesForPlacedSymbol(a.text,v)}),_.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,_.verticalPlacedTextSymbolIndex),_.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,_.placedIconSymbolIndex),_.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,_.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},hr("SymbolBucket",fr,{omit:["layers","collisionBoxArray","features","compareText"]}),fr.MAX_GLYPHS=65535,fr.addDynamicAttributes=St;var vr=new Ai({"symbol-placement":new Rr(q.layout_symbol["symbol-placement"]),"symbol-spacing":new Rr(q.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Rr(q.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new gr(q.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Rr(q.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Rr(q.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Rr(q.layout_symbol["icon-ignore-placement"]),"icon-optional":new Rr(q.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Rr(q.layout_symbol["icon-rotation-alignment"]),"icon-size":new gr(q.layout_symbol["icon-size"]),"icon-text-fit":new Rr(q.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Rr(q.layout_symbol["icon-text-fit-padding"]),"icon-image":new gr(q.layout_symbol["icon-image"]),"icon-rotate":new gr(q.layout_symbol["icon-rotate"]),"icon-padding":new Rr(q.layout_symbol["icon-padding"]),"icon-keep-upright":new Rr(q.layout_symbol["icon-keep-upright"]),"icon-offset":new gr(q.layout_symbol["icon-offset"]),"icon-anchor":new gr(q.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Rr(q.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Rr(q.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Rr(q.layout_symbol["text-rotation-alignment"]),"text-field":new gr(q.layout_symbol["text-field"]),"text-font":new gr(q.layout_symbol["text-font"]),"text-size":new gr(q.layout_symbol["text-size"]),"text-max-width":new gr(q.layout_symbol["text-max-width"]),"text-line-height":new Rr(q.layout_symbol["text-line-height"]),"text-letter-spacing":new gr(q.layout_symbol["text-letter-spacing"]),"text-justify":new gr(q.layout_symbol["text-justify"]),"text-radial-offset":new gr(q.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Rr(q.layout_symbol["text-variable-anchor"]),"text-anchor":new gr(q.layout_symbol["text-anchor"]),"text-max-angle":new Rr(q.layout_symbol["text-max-angle"]),"text-writing-mode":new Rr(q.layout_symbol["text-writing-mode"]),"text-rotate":new gr(q.layout_symbol["text-rotate"]),"text-padding":new Rr(q.layout_symbol["text-padding"]),"text-keep-upright":new Rr(q.layout_symbol["text-keep-upright"]),"text-transform":new gr(q.layout_symbol["text-transform"]),"text-offset":new gr(q.layout_symbol["text-offset"]),"text-allow-overlap":new Rr(q.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Rr(q.layout_symbol["text-ignore-placement"]),"text-optional":new Rr(q.layout_symbol["text-optional"])}),Hr={paint:new Ai({"icon-opacity":new gr(q.paint_symbol["icon-opacity"]),"icon-color":new gr(q.paint_symbol["icon-color"]),"icon-halo-color":new gr(q.paint_symbol["icon-halo-color"]),"icon-halo-width":new gr(q.paint_symbol["icon-halo-width"]),"icon-halo-blur":new gr(q.paint_symbol["icon-halo-blur"]),"icon-translate":new Rr(q.paint_symbol["icon-translate"]),"icon-translate-anchor":new Rr(q.paint_symbol["icon-translate-anchor"]),"text-opacity":new gr(q.paint_symbol["text-opacity"]),"text-color":new gr(q.paint_symbol["text-color"],{runtimeType:Zt,getOverride:function(o){return o.textColor},hasOverride:function(o){return!!o.textColor}}),"text-halo-color":new gr(q.paint_symbol["text-halo-color"]),"text-halo-width":new gr(q.paint_symbol["text-halo-width"]),"text-halo-blur":new gr(q.paint_symbol["text-halo-blur"]),"text-translate":new Rr(q.paint_symbol["text-translate"]),"text-translate-anchor":new Rr(q.paint_symbol["text-translate-anchor"])}),layout:vr},Qr=function(o){this.type=o.property.overrides?o.property.overrides.runtimeType:yr,this.defaultValue=o};Qr.prototype.evaluate=function(o){if(o.formattedSection){var a=this.defaultValue.property.overrides;if(a&&a.hasOverride(o.formattedSection))return a.getOverride(o.formattedSection)}return o.feature&&o.featureState?this.defaultValue.evaluate(o.feature,o.featureState):this.defaultValue.property.specification.default},Qr.prototype.eachChild=function(o){this.defaultValue.isConstant()||o(this.defaultValue.value._styleExpression.expression)},Qr.prototype.outputDefined=function(){return!1},Qr.prototype.serialize=function(){return null},hr("FormatSectionOverride",Qr,{omit:["defaultValue"]});var Yo=function(o){function a(p){o.call(this,p,Hr)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.recalculate=function(p,h){if(o.prototype.recalculate.call(this,p,h),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){var _=this.layout.get("text-writing-mode");if(_){for(var v=[],P=0,S=_;P<S.length;P+=1){var C=S[P];v.indexOf(C)<0&&v.push(C)}this.layout._values["text-writing-mode"]=v}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()},a.prototype.getValueAndResolveTokens=function(p,h,_,v){var P=this.layout.get(p).evaluate(h,{},_,v),S=this._unevaluatedLayout._values[p];return S.isDataDriven()||qu(S.value)||!P?P:function(C,M){return M.replace(/{([^{}]+)}/g,function(O,B){return B in C?String(C[B]):""})}(h.properties,P)},a.prototype.createBucket=function(p){return new fr(p)},a.prototype.queryRadius=function(){return 0},a.prototype.queryIntersectsFeature=function(){return!1},a.prototype._setPaintOverrides=function(){for(var p=0,h=Hr.paint.overridableProperties;p<h.length;p+=1){var _=h[p];if(a.hasPaintOverride(this.layout,_)){var v,P=this.paint.get(_),S=new Qr(P),C=new Au(S,P.property.specification);v=P.value.kind==="constant"||P.value.kind==="source"?new Ku("source",C):new Qu("composite",C,P.value.zoomStops,P.value._interpolationType),this.paint._values[_]=new Wn(P.property,v,P.parameters)}}},a.prototype._handleOverridablePaintPropertyUpdate=function(p,h,_){return!(!this.layout||h.isDataDriven()||_.isDataDriven())&&a.hasPaintOverride(this.layout,p)},a.hasPaintOverride=function(p,h){var _=p.get("text-field"),v=Hr.paint.properties[h],P=!1,S=function(O){for(var B=0,j=O;B<j.length;B+=1)if(v.overrides&&v.overrides.hasOverride(j[B]))return void(P=!0)};if(_.value.kind==="constant"&&_.value.value instanceof Di)S(_.value.value.sections);else if(_.value.kind==="source"){var C=function(O){P||(O instanceof ln&&hi(O.value)===Jo?S(O.value.sections):O instanceof Jn?S(O.sections):O.eachChild(C))},M=_.value;M._styleExpression&&C(M._styleExpression.expression)}return P},a}(Ka),vn={paint:new Ai({"background-color":new Rr(q.paint_background["background-color"]),"background-pattern":new Xn(q.paint_background["background-pattern"]),"background-opacity":new Rr(q.paint_background["background-opacity"])})},au=function(o){function a(p){o.call(this,p,vn)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(Ka),sd={paint:new Ai({"raster-opacity":new Rr(q.paint_raster["raster-opacity"]),"raster-hue-rotate":new Rr(q.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Rr(q.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Rr(q.paint_raster["raster-brightness-max"]),"raster-saturation":new Rr(q.paint_raster["raster-saturation"]),"raster-contrast":new Rr(q.paint_raster["raster-contrast"]),"raster-resampling":new Rr(q.paint_raster["raster-resampling"]),"raster-fade-duration":new Rr(q.paint_raster["raster-fade-duration"])})},Ns=function(o){function a(p){o.call(this,p,sd)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(Ka),oh=function(o){function a(p){o.call(this,p,{}),this.implementation=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.is3D=function(){return this.implementation.renderingMode==="3d"},a.prototype.hasOffscreenPass=function(){return this.implementation.prerender!==void 0},a.prototype.recalculate=function(){},a.prototype.updateTransitions=function(){},a.prototype.hasTransition=function(){},a.prototype.serialize=function(){},a.prototype.onAdd=function(p){this.implementation.onAdd&&this.implementation.onAdd(p,p.painter.context.gl)},a.prototype.onRemove=function(p){this.implementation.onRemove&&this.implementation.onRemove(p,p.painter.context.gl)},a}(Ka),pp={circle:Kc,heatmap:nc,hillshade:em,fill:Wy,"fill-extrusion":$y,line:eh,symbol:Yo,background:au,raster:Ns},ud=F.HTMLImageElement,X6=F.HTMLCanvasElement,Z6=F.HTMLVideoElement,Y6=F.ImageData,ih=F.ImageBitmap,e1=function(o,a,p,h){this.context=o,this.format=p,this.texture=o.gl.createTexture(),this.update(a,h)};e1.prototype.update=function(o,a,p){var h=o.width,_=o.height,v=!(this.size&&this.size[0]===h&&this.size[1]===_||p),P=this.context,S=P.gl;if(this.useMipmap=!!(a&&a.useMipmap),S.bindTexture(S.TEXTURE_2D,this.texture),P.pixelStoreUnpackFlipY.set(!1),P.pixelStoreUnpack.set(1),P.pixelStoreUnpackPremultiplyAlpha.set(this.format===S.RGBA&&(!a||a.premultiply!==!1)),v)this.size=[h,_],o instanceof ud||o instanceof X6||o instanceof Z6||o instanceof Y6||ih&&o instanceof ih?S.texImage2D(S.TEXTURE_2D,0,this.format,this.format,S.UNSIGNED_BYTE,o):S.texImage2D(S.TEXTURE_2D,0,this.format,h,_,0,this.format,S.UNSIGNED_BYTE,o.data);else{var C=p||{x:0,y:0},M=C.x,O=C.y;o instanceof ud||o instanceof X6||o instanceof Z6||o instanceof Y6||ih&&o instanceof ih?S.texSubImage2D(S.TEXTURE_2D,0,M,O,S.RGBA,S.UNSIGNED_BYTE,o):S.texSubImage2D(S.TEXTURE_2D,0,M,O,h,_,S.RGBA,S.UNSIGNED_BYTE,o.data)}this.useMipmap&&this.isSizePowerOfTwo()&&S.generateMipmap(S.TEXTURE_2D)},e1.prototype.bind=function(o,a,p){var h=this.context.gl;h.bindTexture(h.TEXTURE_2D,this.texture),p!==h.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(p=h.LINEAR),o!==this.filter&&(h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,o),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,p||o),this.filter=o),a!==this.wrap&&(h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,a),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,a),this.wrap=a)},e1.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},e1.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null};var fm=function(o){var a=this;this._callback=o,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=function(){a._triggered=!1,a._callback()})};fm.prototype.trigger=function(){var o=this;this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(function(){o._triggered=!1,o._callback()},0))},fm.prototype.remove=function(){delete this._channel,this._callback=function(){}};var Y1=function(o,a,p){this.target=o,this.parent=a,this.mapId=p,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},Ee(["receive","process"],this),this.invoker=new fm(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=ir()?o:F};function $6(o,a,p){var h=2*Math.PI*6378137/256/Math.pow(2,p);return[o*h-2*Math.PI*6378137/2,a*h-2*Math.PI*6378137/2]}Y1.prototype.send=function(o,a,p,h,_){var v=this;_===void 0&&(_=!1);var P=Math.round(1e18*Math.random()).toString(36).substring(0,10);p&&(this.callbacks[P]=p);var S=mr(this.globalScope)?void 0:[];return this.target.postMessage({id:P,type:o,hasCallback:!!p,targetMapId:h,mustQueue:_,sourceMapId:this.mapId,data:ea(a,S)},S),{cancel:function(){p&&delete v.callbacks[P],v.target.postMessage({id:P,type:"<cancel>",targetMapId:h,sourceMapId:v.mapId})}}},Y1.prototype.receive=function(o){var a=o.data,p=a.id;if(p&&(!a.targetMapId||this.mapId===a.targetMapId))if(a.type==="<cancel>"){delete this.tasks[p];var h=this.cancelCallbacks[p];delete this.cancelCallbacks[p],h&&h()}else ir()||a.mustQueue?(this.tasks[p]=a,this.taskQueue.push(p),this.invoker.trigger()):this.processTask(p,a)},Y1.prototype.process=function(){if(this.taskQueue.length){var o=this.taskQueue.shift(),a=this.tasks[o];delete this.tasks[o],this.taskQueue.length&&this.invoker.trigger(),a&&this.processTask(o,a)}},Y1.prototype.processTask=function(o,a){var p=this;if(a.type==="<response>"){var h=this.callbacks[o];delete this.callbacks[o],h&&(a.error?h(oi(a.error)):h(null,oi(a.data)))}else{var _=!1,v=mr(this.globalScope)?void 0:[],P=a.hasCallback?function(O,B){_=!0,delete p.cancelCallbacks[o],p.target.postMessage({id:o,type:"<response>",sourceMapId:p.mapId,error:O?ea(O):null,data:ea(B,v)},v)}:function(O){_=!0},S=null,C=oi(a.data);if(this.parent[a.type])S=this.parent[a.type](a.sourceMapId,C,P);else if(this.parent.getWorkerSource){var M=a.type.split(".");S=this.parent.getWorkerSource(a.sourceMapId,M[0],C.source)[M[1]](C,P)}else P(new Error("Could not find function "+a.type));!_&&S&&S.cancel&&(this.cancelCallbacks[o]=S.cancel)}},Y1.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Mn=function(o,a){o&&(a?this.setSouthWest(o).setNorthEast(a):o.length===4?this.setSouthWest([o[0],o[1]]).setNorthEast([o[2],o[3]]):this.setSouthWest(o[0]).setNorthEast(o[1]))};Mn.prototype.setNorthEast=function(o){return this._ne=o instanceof Ri?new Ri(o.lng,o.lat):Ri.convert(o),this},Mn.prototype.setSouthWest=function(o){return this._sw=o instanceof Ri?new Ri(o.lng,o.lat):Ri.convert(o),this},Mn.prototype.extend=function(o){var a,p,h=this._sw,_=this._ne;if(o instanceof Ri)a=o,p=o;else{if(!(o instanceof Mn))return Array.isArray(o)?o.length===4||o.every(Array.isArray)?this.extend(Mn.convert(o)):this.extend(Ri.convert(o)):this;if(p=o._ne,!(a=o._sw)||!p)return this}return h||_?(h.lng=Math.min(a.lng,h.lng),h.lat=Math.min(a.lat,h.lat),_.lng=Math.max(p.lng,_.lng),_.lat=Math.max(p.lat,_.lat)):(this._sw=new Ri(a.lng,a.lat),this._ne=new Ri(p.lng,p.lat)),this},Mn.prototype.getCenter=function(){return new Ri((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Mn.prototype.getSouthWest=function(){return this._sw},Mn.prototype.getNorthEast=function(){return this._ne},Mn.prototype.getNorthWest=function(){return new Ri(this.getWest(),this.getNorth())},Mn.prototype.getSouthEast=function(){return new Ri(this.getEast(),this.getSouth())},Mn.prototype.getWest=function(){return this._sw.lng},Mn.prototype.getSouth=function(){return this._sw.lat},Mn.prototype.getEast=function(){return this._ne.lng},Mn.prototype.getNorth=function(){return this._ne.lat},Mn.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Mn.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Mn.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Mn.prototype.contains=function(o){var a=Ri.convert(o),p=a.lng,h=a.lat,_=this._sw.lng<=p&&p<=this._ne.lng;return this._sw.lng>this._ne.lng&&(_=this._sw.lng>=p&&p>=this._ne.lng),this._sw.lat<=h&&h<=this._ne.lat&&_},Mn.convert=function(o){return!o||o instanceof Mn?o:new Mn(o)};var Ri=function(o,a){if(isNaN(o)||isNaN(a))throw new Error("Invalid LngLat object: ("+o+", "+a+")");if(this.lng=+o,this.lat=+a,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Ri.prototype.wrap=function(){return new Ri(J(this.lng,-180,180),this.lat)},Ri.prototype.toArray=function(){return[this.lng,this.lat]},Ri.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Ri.prototype.distanceTo=function(o){var a=Math.PI/180,p=this.lat*a,h=o.lat*a,_=Math.sin(p)*Math.sin(h)+Math.cos(p)*Math.cos(h)*Math.cos((o.lng-this.lng)*a);return 63710088e-1*Math.acos(Math.min(_,1))},Ri.prototype.toBounds=function(o){o===void 0&&(o=0);var a=360*o/40075017,p=a/Math.cos(Math.PI/180*this.lat);return new Mn(new Ri(this.lng-p,this.lat-a),new Ri(this.lng+p,this.lat+a))},Ri.convert=function(o){if(o instanceof Ri)return o;if(Array.isArray(o)&&(o.length===2||o.length===3))return new Ri(Number(o[0]),Number(o[1]));if(!Array.isArray(o)&&typeof o=="object"&&o!==null)return new Ri(Number("lng"in o?o.lng:o.lon),Number(o.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")};var q6=2*Math.PI*63710088e-1;function K6(o){return q6*Math.cos(o*Math.PI/180)}function Q6(o){return(180+o)/360}function J6(o){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+o*Math.PI/360)))/360}function e3(o,a){return o/K6(a)}function mm(o){return 360/Math.PI*Math.atan(Math.exp((180-360*o)*Math.PI/180))-90}var t1=function(o,a,p){p===void 0&&(p=0),this.x=+o,this.y=+a,this.z=+p};t1.fromLngLat=function(o,a){a===void 0&&(a=0);var p=Ri.convert(o);return new t1(Q6(p.lng),J6(p.lat),e3(a,p.lat))},t1.prototype.toLngLat=function(){return new Ri(360*this.x-180,mm(this.y))},t1.prototype.toAltitude=function(){return this.z*K6(mm(this.y))},t1.prototype.meterInMercatorCoordinateUnits=function(){return 1/q6*(o=mm(this.y),1/Math.cos(o*Math.PI/180));var o};var r1=function(o,a,p){this.z=o,this.x=a,this.y=p,this.key=pd(0,o,o,a,p)};r1.prototype.equals=function(o){return this.z===o.z&&this.x===o.x&&this.y===o.y},r1.prototype.url=function(o,a){var p,h,_,v,P,S=(h=this.y,_=this.z,v=$6(256*(p=this.x),256*(h=Math.pow(2,_)-h-1),_),P=$6(256*(p+1),256*(h+1),_),v[0]+","+v[1]+","+P[0]+","+P[1]),C=function(M,O,B){for(var j,Y="",ce=M;ce>0;ce--)Y+=(O&(j=1<<ce-1)?1:0)+(B&j?2:0);return Y}(this.z,this.x,this.y);return o[(this.x+this.y)%o.length].replace("{prefix}",(this.x%16).toString(16)+(this.y%16).toString(16)).replace("{z}",String(this.z)).replace("{x}",String(this.x)).replace("{y}",String(a==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",C).replace("{bbox-epsg-3857}",S)},r1.prototype.getTilePoint=function(o){var a=Math.pow(2,this.z);return new x(8192*(o.x*a-this.x),8192*(o.y*a-this.y))},r1.prototype.toString=function(){return this.z+"/"+this.x+"/"+this.y};var t3=function(o,a){this.wrap=o,this.canonical=a,this.key=pd(o,a.z,a.z,a.x,a.y)},Nn=function(o,a,p,h,_){this.overscaledZ=o,this.wrap=a,this.canonical=new r1(p,+h,+_),this.key=pd(a,o,p,h,_)};function pd(o,a,p,h,_){(o*=2)<0&&(o=-1*o-1);var v=1<<p;return(v*v*o+v*_+h).toString(36)+p.toString(36)+a.toString(36)}Nn.prototype.equals=function(o){return this.overscaledZ===o.overscaledZ&&this.wrap===o.wrap&&this.canonical.equals(o.canonical)},Nn.prototype.scaledTo=function(o){var a=this.canonical.z-o;return o>this.canonical.z?new Nn(o,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Nn(o,this.wrap,o,this.canonical.x>>a,this.canonical.y>>a)},Nn.prototype.calculateScaledKey=function(o,a){var p=this.canonical.z-o;return o>this.canonical.z?pd(this.wrap*+a,o,this.canonical.z,this.canonical.x,this.canonical.y):pd(this.wrap*+a,o,o,this.canonical.x>>p,this.canonical.y>>p)},Nn.prototype.isChildOf=function(o){if(o.wrap!==this.wrap)return!1;var a=this.canonical.z-o.canonical.z;return o.overscaledZ===0||o.overscaledZ<this.overscaledZ&&o.canonical.x===this.canonical.x>>a&&o.canonical.y===this.canonical.y>>a},Nn.prototype.children=function(o){if(this.overscaledZ>=o)return[new Nn(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var a=this.canonical.z+1,p=2*this.canonical.x,h=2*this.canonical.y;return[new Nn(a,this.wrap,a,p,h),new Nn(a,this.wrap,a,p+1,h),new Nn(a,this.wrap,a,p,h+1),new Nn(a,this.wrap,a,p+1,h+1)]},Nn.prototype.isLessThan=function(o){return this.wrap<o.wrap||!(this.wrap>o.wrap)&&(this.overscaledZ<o.overscaledZ||!(this.overscaledZ>o.overscaledZ)&&(this.canonical.x<o.canonical.x||!(this.canonical.x>o.canonical.x)&&this.canonical.y<o.canonical.y))},Nn.prototype.wrapped=function(){return new Nn(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},Nn.prototype.unwrapTo=function(o){return new Nn(this.overscaledZ,o,this.canonical.z,this.canonical.x,this.canonical.y)},Nn.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},Nn.prototype.toUnwrapped=function(){return new t3(this.wrap,this.canonical)},Nn.prototype.toString=function(){return this.overscaledZ+"/"+this.canonical.x+"/"+this.canonical.y},Nn.prototype.getTilePoint=function(o){return this.canonical.getTilePoint(new t1(o.x-this.wrap,o.y))},hr("CanonicalTileID",r1),hr("OverscaledTileID",Nn,{omit:["posMatrix"]});var xl=function(o,a,p){if(this.uid=o,a.height!==a.width)throw new RangeError("DEM tiles must be square");if(p&&p!=="mapbox"&&p!=="terrarium")return ze('"'+p+'" is not a valid encoding type. Valid types include "mapbox" and "terrarium".');this.stride=a.height;var h=this.dim=a.height-2;this.data=new Uint32Array(a.data.buffer),this.encoding=p||"mapbox";for(var _=0;_<h;_++)this.data[this._idx(-1,_)]=this.data[this._idx(0,_)],this.data[this._idx(h,_)]=this.data[this._idx(h-1,_)],this.data[this._idx(_,-1)]=this.data[this._idx(_,0)],this.data[this._idx(_,h)]=this.data[this._idx(_,h-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(h,-1)]=this.data[this._idx(h-1,0)],this.data[this._idx(-1,h)]=this.data[this._idx(0,h-1)],this.data[this._idx(h,h)]=this.data[this._idx(h-1,h-1)]};xl.prototype.get=function(o,a){var p=new Uint8Array(this.data.buffer),h=4*this._idx(o,a);return(this.encoding==="terrarium"?this._unpackTerrarium:this._unpackMapbox)(p[h],p[h+1],p[h+2])},xl.prototype.getUnpackVector=function(){return this.encoding==="terrarium"?[256,1,1/256,32768]:[6553.6,25.6,.1,1e4]},xl.prototype._idx=function(o,a){if(o<-1||o>=this.dim+1||a<-1||a>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(a+1)*this.stride+(o+1)},xl.prototype._unpackMapbox=function(o,a,p){return(256*o*256+256*a+p)/10-1e4},xl.prototype._unpackTerrarium=function(o,a,p){return 256*o+a+p/256-32768},xl.prototype.getPixels=function(){return new ya({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},xl.prototype.backfillBorder=function(o,a,p){if(this.dim!==o.dim)throw new Error("dem dimension mismatch");var h=a*this.dim,_=a*this.dim+this.dim,v=p*this.dim,P=p*this.dim+this.dim;switch(a){case-1:h=_-1;break;case 1:_=h+1}switch(p){case-1:v=P-1;break;case 1:P=v+1}for(var S=-a*this.dim,C=-p*this.dim,M=v;M<P;M++)for(var O=h;O<_;O++)this.data[this._idx(O,M)]=o.data[this._idx(O+S,M+C)]},hr("DEMData",xl);var nh=function(o){this._stringToNumber={},this._numberToString=[];for(var a=0;a<o.length;a++){var p=o[a];this._stringToNumber[p]=a,this._numberToString[a]=p}};nh.prototype.encode=function(o){return this._stringToNumber[o]},nh.prototype.decode=function(o){return this._numberToString[o]};var ah=function(o,a,p,h,_){this.type="Feature",this._vectorTileFeature=o,o._z=a,o._x=p,o._y=h,this.properties=o.properties,this.id=_},_m={geometry:{configurable:!0}};_m.geometry.get=function(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},_m.geometry.set=function(o){this._geometry=o},ah.prototype.toJSON=function(){var o={geometry:this.geometry};for(var a in this)a!=="_geometry"&&a!=="_vectorTileFeature"&&(o[a]=this[a]);return o},Object.defineProperties(ah.prototype,_m);var $1=function(){this.state={},this.stateChanges={},this.deletedStates={}};$1.prototype.updateState=function(o,a,p){var h=String(a);if(this.stateChanges[o]=this.stateChanges[o]||{},this.stateChanges[o][h]=this.stateChanges[o][h]||{},Q(this.stateChanges[o][h],p),this.deletedStates[o]===null)for(var _ in this.deletedStates[o]={},this.state[o])_!==h&&(this.deletedStates[o][_]=null);else if(this.deletedStates[o]&&this.deletedStates[o][h]===null)for(var v in this.deletedStates[o][h]={},this.state[o][h])p[v]||(this.deletedStates[o][h][v]=null);else for(var P in p)this.deletedStates[o]&&this.deletedStates[o][h]&&this.deletedStates[o][h][P]===null&&delete this.deletedStates[o][h][P]},$1.prototype.removeFeatureState=function(o,a,p){if(this.deletedStates[o]!==null){var h=String(a);if(this.deletedStates[o]=this.deletedStates[o]||{},p&&a!==void 0)this.deletedStates[o][h]!==null&&(this.deletedStates[o][h]=this.deletedStates[o][h]||{},this.deletedStates[o][h][p]=null);else if(a!==void 0)if(this.stateChanges[o]&&this.stateChanges[o][h])for(p in this.deletedStates[o][h]={},this.stateChanges[o][h])this.deletedStates[o][h][p]=null;else this.deletedStates[o][h]=null;else this.deletedStates[o]=null}},$1.prototype.getState=function(o,a){var p=String(a),h=Q({},(this.state[o]||{})[p],(this.stateChanges[o]||{})[p]);if(this.deletedStates[o]===null)return{};if(this.deletedStates[o]){var _=this.deletedStates[o][a];if(_===null)return{};for(var v in _)delete h[v]}return h},$1.prototype.initializeTileState=function(o,a){o.setFeatureState(this.state,a)},$1.prototype.coalesceChanges=function(o,a){var p={};for(var h in this.stateChanges){this.state[h]=this.state[h]||{};var _={};for(var v in this.stateChanges[h])this.state[h][v]||(this.state[h][v]={}),Q(this.state[h][v],this.stateChanges[h][v]),_[v]=this.state[h][v];p[h]=_}for(var P in this.deletedStates){this.state[P]=this.state[P]||{};var S={};if(this.deletedStates[P]===null)for(var C in this.state[P])S[C]={},this.state[P][C]={};else for(var M in this.deletedStates[P]){if(this.deletedStates[P][M]===null)this.state[P][M]={};else for(var O=0,B=Object.keys(this.deletedStates[P][M]);O<B.length;O+=1)delete this.state[P][M][B[O]];S[M]=this.state[P][M]}p[P]=p[P]||{},Q(p[P],S)}if(this.stateChanges={},this.deletedStates={},Object.keys(p).length!==0)for(var j in o)o[j].setFeatureState(p,a)};var Pl=function(o,a){this.tileID=o,this.x=o.canonical.x,this.y=o.canonical.y,this.z=o.canonical.z,this.grid=new dn(8192,16,0),this.grid3D=new dn(8192,16,0),this.featureIndexArray=new z,this.promoteId=a};function r3(o,a,p,h,_){return ft(o,function(v,P){var S=a instanceof wp?a.get(P):null;return S&&S.evaluate?S.evaluate(p,h,_):S})}function o3(o){for(var a=1/0,p=1/0,h=-1/0,_=-1/0,v=0,P=o;v<P.length;v+=1){var S=P[v];a=Math.min(a,S.x),p=Math.min(p,S.y),h=Math.max(h,S.x),_=Math.max(_,S.y)}return{minX:a,minY:p,maxX:h,maxY:_}}function H7(o,a){return a-o}Pl.prototype.insert=function(o,a,p,h,_,v){var P=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(p,h,_);for(var S=v?this.grid3D:this.grid,C=0;C<a.length;C++){for(var M=a[C],O=[1/0,1/0,-1/0,-1/0],B=0;B<M.length;B++){var j=M[B];O[0]=Math.min(O[0],j.x),O[1]=Math.min(O[1],j.y),O[2]=Math.max(O[2],j.x),O[3]=Math.max(O[3],j.y)}O[0]<8192&&O[1]<8192&&O[2]>=0&&O[3]>=0&&S.insert(P,O[0],O[1],O[2],O[3])}},Pl.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Up.VectorTile(new tt(this.rawTileData)).layers,this.sourceLayerCoder=new nh(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Pl.prototype.query=function(o,a,p,h){var _=this;this.loadVTLayers();for(var v=o.params||{},P=8192/o.tileSize/o.scale,S=Tu(v.filter),C=o.queryGeometry,M=o.queryPadding*P,O=o3(C),B=this.grid.query(O.minX-M,O.minY-M,O.maxX+M,O.maxY+M),j=o3(o.cameraQueryGeometry),Y=this.grid3D.query(j.minX-M,j.minY-M,j.maxX+M,j.maxY+M,function(it,ut,Et,kt){return function(qt,Ir,pr,Br,dr){for(var Po=0,Zr=qt;Po<Zr.length;Po+=1){var Pr=Zr[Po];if(Ir<=Pr.x&&pr<=Pr.y&&Br>=Pr.x&&dr>=Pr.y)return!0}var Co=[new x(Ir,pr),new x(Ir,dr),new x(Br,dr),new x(Br,pr)];if(qt.length>2){for(var co=0,Vo=Co;co<Vo.length;co+=1)if(ds(qt,Vo[co]))return!0}for(var Ur=0;Ur<qt.length-1;Ur++)if(Du(qt[Ur],qt[Ur+1],Co))return!0;return!1}(o.cameraQueryGeometry,it-M,ut-M,Et+M,kt+M)}),ce=0,he=Y;ce<he.length;ce+=1)B.push(he[ce]);B.sort(H7);for(var Re,be={},Ve=function(it){var ut=B[it];if(ut!==Re){Re=ut;var Et=_.featureIndexArray.get(ut),kt=null;_.loadMatchingFeature(be,Et.bucketIndex,Et.sourceLayerIndex,Et.featureIndex,S,v.layers,v.availableImages,a,p,h,function(qt,Ir,pr){return kt||(kt=Fi(qt)),Ir.queryIntersectsFeature(C,qt,pr,kt,_.z,o.transform,P,o.pixelPosMatrix)})}},Ze=0;Ze<B.length;Ze++)Ve(Ze);return be},Pl.prototype.loadMatchingFeature=function(o,a,p,h,_,v,P,S,C,M,O){var B=this.bucketLayerIDs[a];if(!v||function(qt,Ir){for(var pr=0;pr<qt.length;pr++)if(Ir.indexOf(qt[pr])>=0)return!0;return!1}(v,B)){var j=this.sourceLayerCoder.decode(p),Y=this.vtLayers[j].feature(h);if(_.needGeometry){var ce=wi(Y,!0);if(!_.filter(new po(this.tileID.overscaledZ),ce,this.tileID.canonical))return}else if(!_.filter(new po(this.tileID.overscaledZ),Y))return;for(var he=this.getId(Y,j),Re=0;Re<B.length;Re++){var be=B[Re];if(!(v&&v.indexOf(be)<0)){var Ve=S[be];if(Ve){var Ze={};he!==void 0&&M&&(Ze=M.getState(Ve.sourceLayer||"_geojsonTileLayer",he));var it=Q({},C[be]);it.paint=r3(it.paint,Ve.paint,Y,Ze,P),it.layout=r3(it.layout,Ve.layout,Y,Ze,P);var ut=!O||O(Y,Ve,Ze);if(ut){var Et=new ah(Y,this.z,this.x,this.y,he);Et.layer=it;var kt=o[be];kt===void 0&&(kt=o[be]=[]),kt.push({featureIndex:h,feature:Et,intersectionZ:ut})}}}}}},Pl.prototype.lookupSymbolFeatures=function(o,a,p,h,_,v,P,S){var C={};this.loadVTLayers();for(var M=Tu(_),O=0,B=o;O<B.length;O+=1)this.loadMatchingFeature(C,p,h,B[O],M,v,P,S,a);return C},Pl.prototype.hasLayer=function(o){for(var a=0,p=this.bucketLayerIDs;a<p.length;a+=1)for(var h=0,_=p[a];h<_.length;h+=1)if(o===_[h])return!0;return!1},Pl.prototype.getId=function(o,a){var p=o.id;return this.promoteId&&typeof(p=o.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[a]])=="boolean"&&(p=Number(p)),p},hr("FeatureIndex",Pl,{omit:["rawTileData","sourceLayerCoder"]});var $n=function(o,a){this.tileID=o,this.uid=ne(),this.uses=0,this.tileSize=a,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.expiredRequestCount=0,this.state="loading"};$n.prototype.registerFadeDuration=function(o){var a=o+this.timeAdded;a<Ni.now()||this.fadeEndTime&&a<this.fadeEndTime||(this.fadeEndTime=a)},$n.prototype.wasRequested=function(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"},$n.prototype.loadVectorData=function(o,a,p){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",o){for(var h in o.featureIndex&&(this.latestFeatureIndex=o.featureIndex,o.rawTileData?(this.latestRawTileData=o.rawTileData,this.latestFeatureIndex.rawTileData=o.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=o.collisionBoxArray,this.buckets=function(M,O){var B={};if(!O)return B;for(var j=function(){var he=ce[Y],Re=he.layerIds.map(function(Ze){return O.getLayer(Ze)}).filter(Boolean);if(Re.length!==0){he.layers=Re,he.stateDependentLayerIds&&(he.stateDependentLayers=he.stateDependentLayerIds.map(function(Ze){return Re.filter(function(it){return it.id===Ze})[0]}));for(var be=0,Ve=Re;be<Ve.length;be+=1)B[Ve[be].id]=he}},Y=0,ce=M;Y<ce.length;Y+=1)j();return B}(o.buckets,a.style),this.hasSymbolBuckets=!1,this.buckets){var _=this.buckets[h];if(_ instanceof fr){if(this.hasSymbolBuckets=!0,!p)break;_.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(var v in this.buckets){var P=this.buckets[v];if(P instanceof fr&&P.hasRTLText){this.hasRTLText=!0,Ba.isLoading()||Ba.isLoaded()||Zc()!=="deferred"||Fa();break}}for(var S in this.queryPadding=0,this.buckets){var C=this.buckets[S];this.queryPadding=Math.max(this.queryPadding,a.style.getLayer(S).queryRadius(C))}o.imageAtlas&&(this.imageAtlas=o.imageAtlas),o.glyphAtlasImage&&(this.glyphAtlasImage=o.glyphAtlasImage)}else this.collisionBoxArray=new d},$n.prototype.unloadVectorData=function(){for(var o in this.buckets)this.buckets[o].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"},$n.prototype.getBucket=function(o){return this.buckets[o.id]},$n.prototype.upload=function(o){for(var a in this.buckets){var p=this.buckets[a];p.uploadPending()&&p.upload(o)}var h=o.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new e1(o,this.imageAtlas.image,h.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new e1(o,this.glyphAtlasImage,h.ALPHA),this.glyphAtlasImage=null)},$n.prototype.prepare=function(o){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(o,this.imageAtlasTexture)},$n.prototype.queryRenderedFeatures=function(o,a,p,h,_,v,P,S,C,M){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:h,cameraQueryGeometry:_,scale:v,tileSize:this.tileSize,pixelPosMatrix:M,transform:S,params:P,queryPadding:this.queryPadding*C},o,a,p):{}},$n.prototype.querySourceFeatures=function(o,a){var p=this.latestFeatureIndex;if(p&&p.rawTileData){var h=p.loadVTLayers(),_=a?a.sourceLayer:"",v=h._geojsonTileLayer||h[_];if(v)for(var P=Tu(a&&a.filter),S=this.tileID.canonical,C=S.z,M=S.x,O=S.y,B={z:C,x:M,y:O},j=0;j<v.length;j++){var Y=v.feature(j);if(P.needGeometry){var ce=wi(Y,!0);if(!P.filter(new po(this.tileID.overscaledZ),ce,this.tileID.canonical))continue}else if(!P.filter(new po(this.tileID.overscaledZ),Y))continue;var he=p.getId(Y,_),Re=new ah(Y,C,M,O,he);Re.tile=B,o.push(Re)}}},$n.prototype.hasData=function(){return this.state==="loaded"||this.state==="reloading"||this.state==="expired"},$n.prototype.patternsLoaded=function(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length},$n.prototype.setExpiryData=function(o){var a=this.expirationTime;if(o.cacheControl){var p=Fr(o.cacheControl);p["max-age"]&&(this.expirationTime=Date.now()+1e3*p["max-age"])}else o.expires&&(this.expirationTime=new Date(o.expires).getTime());if(this.expirationTime){var h=Date.now(),_=!1;if(this.expirationTime>h)_=!1;else if(a)if(this.expirationTime<a)_=!0;else{var v=this.expirationTime-a;v?this.expirationTime=h+Math.max(v,3e4):_=!0}else _=!0;_?(this.expiredRequestCount++,this.state="expired"):this.expiredRequestCount=0}},$n.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),Math.pow(2,31)-1)},$n.prototype.setFeatureState=function(o,a){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData&&Object.keys(o).length!==0){var p=this.latestFeatureIndex.loadVTLayers();for(var h in this.buckets)if(a.style.hasLayer(h)){var _=this.buckets[h],v=_.layers[0].sourceLayer||"_geojsonTileLayer",P=p[v],S=o[v];if(P&&S&&Object.keys(S).length!==0){_.update(S,P,this.imageAtlas&&this.imageAtlas.patternPositions||{});var C=a&&a.style&&a.style.getLayer(h);C&&(this.queryPadding=Math.max(this.queryPadding,C.queryRadius(_)))}}}},$n.prototype.holdingForFade=function(){return this.symbolFadeHoldUntil!==void 0},$n.prototype.symbolFadeFinished=function(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<Ni.now()},$n.prototype.clearFadeHold=function(){this.symbolFadeHoldUntil=void 0},$n.prototype.setHoldDuration=function(o){this.symbolFadeHoldUntil=Ni.now()+o},$n.prototype.setDependencies=function(o,a){for(var p={},h=0,_=a;h<_.length;h+=1)p[_[h]]=!0;this.dependencies[o]=p},$n.prototype.hasDependency=function(o,a){for(var p=0,h=o;p<h.length;p+=1){var _=this.dependencies[h[p]];if(_){for(var v=0,P=a;v<P.length;v+=1)if(_[P[v]])return!0}}return!1};var pc=F.performance,i3=function(o){this._marks={start:[o.url,"start"].join("#"),end:[o.url,"end"].join("#"),measure:o.url.toString()},pc.mark(this._marks.start)};i3.prototype.finish=function(){pc.mark(this._marks.end);var o=pc.getEntriesByName(this._marks.measure);return o.length===0&&(pc.measure(this._marks.measure,this._marks.start,this._marks.end),o=pc.getEntriesByName(this._marks.measure),pc.clearMarks(this._marks.start),pc.clearMarks(this._marks.end),pc.clearMeasures(this._marks.measure)),o},n.Actor=Y1,n.AlphaImage=Mp,n.CanonicalTileID=r1,n.CollisionBoxArray=d,n.Color=Eo,n.DEMData=xl,n.DataConstantProperty=Rr,n.DictionaryCoder=nh,n.EXTENT=8192,n.ErrorEvent=Ie,n.EvaluationParameters=po,n.Event=ye,n.Evented=Le,n.FeatureIndex=Pl,n.FillBucket=iu,n.FillExtrusionBucket=ia,n.ImageAtlas=vt,n.ImagePosition=Jt,n.LineBucket=fa,n.LngLat=Ri,n.LngLatBounds=Mn,n.MercatorCoordinate=t1,n.ONE_EM=24,n.OverscaledTileID=Nn,n.Point=x,n.Point$1=x,n.Properties=Ai,n.Protobuf=tt,n.RGBAImage=ya,n.RequestManager=go,n.RequestPerformance=i3,n.ResourceType=Gs,n.SegmentVector=K,n.SourceFeatureState=$1,n.StructArrayLayout1ui2=tc,n.StructArrayLayout2f1f2i16=op,n.StructArrayLayout2i4=Iu,n.StructArrayLayout3ui6=Rs,n.StructArrayLayout4i8=Kl,n.SymbolBucket=fr,n.Texture=e1,n.Tile=$n,n.Transitionable=wn,n.Uniform1f=Ht,n.Uniform1i=Pt,n.Uniform2f=Bt,n.Uniform3f=nr,n.Uniform4f=Cr,n.UniformColor=Dr,n.UniformMatrix4f=Lo,n.UnwrappedTileID=t3,n.ValidationError=ge,n.WritingMode=Lr,n.ZoomHistory=Xl,n.add=function(o,a,p){return o[0]=a[0]+p[0],o[1]=a[1]+p[1],o[2]=a[2]+p[2],o},n.addDynamicAttributes=St,n.asyncAll=function(o,a,p){if(!o.length)return p(null,[]);var h=o.length,_=new Array(o.length),v=null;o.forEach(function(P,S){a(P,function(C,M){C&&(v=C),_[S]=M,--h==0&&p(v,_)})})},n.bezier=I,n.bindAll=Ee,n.browser=Ni,n.cacheEntryPossiblyAdded=function(o){++Hs>vs&&(o.getActor().send("enforceCacheSizeLimit",Tn),Hs=0)},n.clamp=V,n.clearTileCache=function(o){var a=F.caches.delete("mapbox-tiles");o&&a.catch(o).then(function(){return o()})},n.clipLine=nu,n.clone=function(o){var a=new Io(16);return a[0]=o[0],a[1]=o[1],a[2]=o[2],a[3]=o[3],a[4]=o[4],a[5]=o[5],a[6]=o[6],a[7]=o[7],a[8]=o[8],a[9]=o[9],a[10]=o[10],a[11]=o[11],a[12]=o[12],a[13]=o[13],a[14]=o[14],a[15]=o[15],a},n.clone$1=Ae,n.clone$2=function(o){var a=new Io(3);return a[0]=o[0],a[1]=o[1],a[2]=o[2],a},n.collisionCircleLayout=N,n.config=$e,n.create=function(){var o=new Io(16);return Io!=Float32Array&&(o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[11]=0,o[12]=0,o[13]=0,o[14]=0),o[0]=1,o[5]=1,o[10]=1,o[15]=1,o},n.create$1=function(){var o=new Io(9);return Io!=Float32Array&&(o[1]=0,o[2]=0,o[3]=0,o[5]=0,o[6]=0,o[7]=0),o[0]=1,o[4]=1,o[8]=1,o},n.create$2=function(){var o=new Io(4);return Io!=Float32Array&&(o[1]=0,o[2]=0),o[0]=1,o[3]=1,o},n.createCommonjsModule=y,n.createExpression=Pp,n.createLayout=yn,n.createStyleLayer=function(o){return o.type==="custom"?new oh(o):new pp[o.type](o)},n.cross=function(o,a,p){var h=a[0],_=a[1],v=a[2],P=p[0],S=p[1],C=p[2];return o[0]=_*C-v*S,o[1]=v*P-h*C,o[2]=h*S-_*P,o},n.deepEqual=function o(a,p){if(Array.isArray(a)){if(!Array.isArray(p)||a.length!==p.length)return!1;for(var h=0;h<a.length;h++)if(!o(a[h],p[h]))return!1;return!0}if(typeof a=="object"&&a!==null&&p!==null){if(typeof p!="object"||Object.keys(a).length!==Object.keys(p).length)return!1;for(var _ in a)if(!o(a[_],p[_]))return!1;return!0}return a===p},n.dot=function(o,a){return o[0]*a[0]+o[1]*a[1]+o[2]*a[2]},n.dot$1=function(o,a){return o[0]*a[0]+o[1]*a[1]+o[2]*a[2]+o[3]*a[3]},n.ease=U,n.emitValidationErrors=Ru,n.endsWith=He,n.enforceCacheSizeLimit=function(o){zi(),bn&&bn.then(function(a){a.keys().then(function(p){for(var h=0;h<p.length-o;h++)a.delete(p[h])})})},n.evaluateSizeForFeature=na,n.evaluateSizeForZoom=gn,n.evaluateVariableOffset=Ne,n.evented=ql,n.extend=Q,n.featureFilter=Tu,n.filterObject=Ge,n.fromRotation=function(o,a){var p=Math.sin(a),h=Math.cos(a);return o[0]=h,o[1]=p,o[2]=0,o[3]=-p,o[4]=h,o[5]=0,o[6]=0,o[7]=0,o[8]=1,o},n.getAnchorAlignment=mi,n.getAnchorJustification=Ue,n.getArrayBuffer=Yu,n.getImage=G,n.getJSON=function(o,a){return Es(Q(o,{type:"json"}),a)},n.getRTLTextPluginStatus=Zc,n.getReferrer=js,n.getVideo=function(o,a){var p,h,_=F.document.createElement("video");_.muted=!0,_.onloadstart=function(){a(null,_)};for(var v=0;v<o.length;v++){var P=F.document.createElement("source");p=o[v],h=void 0,(h=F.document.createElement("a")).href=p,(h.protocol!==F.document.location.protocol||h.host!==F.document.location.host)&&(_.crossOrigin="Anonymous"),P.src=o[v],_.appendChild(P)}return{cancel:function(){}}},n.identity=Cn,n.invert=function(o,a){var p=a[0],h=a[1],_=a[2],v=a[3],P=a[4],S=a[5],C=a[6],M=a[7],O=a[8],B=a[9],j=a[10],Y=a[11],ce=a[12],he=a[13],Re=a[14],be=a[15],Ve=p*S-h*P,Ze=p*C-_*P,it=p*M-v*P,ut=h*C-_*S,Et=h*M-v*S,kt=_*M-v*C,qt=O*he-B*ce,Ir=O*Re-j*ce,pr=O*be-Y*ce,Br=B*Re-j*he,dr=B*be-Y*he,Po=j*be-Y*Re,Zr=Ve*Po-Ze*dr+it*Br+ut*pr-Et*Ir+kt*qt;return Zr?(o[0]=(S*Po-C*dr+M*Br)*(Zr=1/Zr),o[1]=(_*dr-h*Po-v*Br)*Zr,o[2]=(he*kt-Re*Et+be*ut)*Zr,o[3]=(j*Et-B*kt-Y*ut)*Zr,o[4]=(C*pr-P*Po-M*Ir)*Zr,o[5]=(p*Po-_*pr+v*Ir)*Zr,o[6]=(Re*it-ce*kt-be*Ze)*Zr,o[7]=(O*kt-j*it+Y*Ze)*Zr,o[8]=(P*dr-S*pr+M*qt)*Zr,o[9]=(h*pr-p*dr-v*qt)*Zr,o[10]=(ce*Et-he*it+be*Ve)*Zr,o[11]=(B*it-O*Et-Y*Ve)*Zr,o[12]=(S*Ir-P*Br-C*qt)*Zr,o[13]=(p*Br-h*Ir+_*qt)*Zr,o[14]=(he*Ze-ce*ut-Re*Ve)*Zr,o[15]=(O*ut-B*Ze+j*Ve)*Zr,o):null},n.isChar=Kt,n.isMapboxURL=to,n.keysDifference=function(o,a){var p=[];for(var h in o)h in a||p.push(h);return p},n.makeRequest=Es,n.mapObject=ft,n.mercatorXfromLng=Q6,n.mercatorYfromLat=J6,n.mercatorZfromAltitude=e3,n.mul=oc,n.multiply=Ki,n.mvt=Up,n.nextPowerOfTwo=function(o){return o<=1?1:Math.pow(2,Math.ceil(Math.log(o)/Math.LN2))},n.normalize=function(o,a){var p=a[0],h=a[1],_=a[2],v=p*p+h*h+_*_;return v>0&&(v=1/Math.sqrt(v)),o[0]=a[0]*v,o[1]=a[1]*v,o[2]=a[2]*v,o},n.number=Oi,n.offscreenCanvasSupported=Zu,n.ortho=function(o,a,p,h,_,v,P){var S=1/(a-p),C=1/(h-_),M=1/(v-P);return o[0]=-2*S,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=-2*C,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=2*M,o[11]=0,o[12]=(a+p)*S,o[13]=(_+h)*C,o[14]=(P+v)*M,o[15]=1,o},n.parseGlyphPBF=function(o){return new tt(o).readFields(Tt,[])},n.pbf=tt,n.performSymbolLayout=function(o,a,p,h,_,v,P){o.createArrays(),o.tilePixelRatio=8192/(512*o.overscaling),o.compareText={},o.iconsNeedLinear=!1;var S=o.layers[0].layout,C=o.layers[0]._unevaluatedLayout._values,M={};if(o.textSizeData.kind==="composite"){var O=o.textSizeData,B=O.maxZoom;M.compositeTextSizes=[C["text-size"].possiblyEvaluate(new po(O.minZoom),P),C["text-size"].possiblyEvaluate(new po(B),P)]}if(o.iconSizeData.kind==="composite"){var j=o.iconSizeData,Y=j.maxZoom;M.compositeIconSizes=[C["icon-size"].possiblyEvaluate(new po(j.minZoom),P),C["icon-size"].possiblyEvaluate(new po(Y),P)]}M.layoutTextSize=C["text-size"].possiblyEvaluate(new po(o.zoom+1),P),M.layoutIconSize=C["icon-size"].possiblyEvaluate(new po(o.zoom+1),P),M.textMaxSize=C["text-size"].possiblyEvaluate(new po(18));for(var ce=24*S.get("text-line-height"),he=S.get("text-rotation-alignment")==="map"&&S.get("symbol-placement")!=="point",Re=S.get("text-keep-upright"),be=S.get("text-size"),Ve=function(){var ut=it[Ze],Et=S.get("text-font").evaluate(ut,{},P).join(","),kt=be.evaluate(ut,{},P),qt=M.layoutTextSize.evaluate(ut,{},P),Ir=M.layoutIconSize.evaluate(ut,{},P),pr={horizontal:{},vertical:void 0},Br=ut.text,dr=[0,0];if(Br){var Po=Br.toString(),Zr=24*S.get("text-letter-spacing").evaluate(ut,{},P),Pr=function(Do){for(var yi=0,ni=Do;yi<ni.length;yi+=1)if(Wo=ni[yi].charCodeAt(0),Kt.Arabic(Wo)||Kt["Arabic Supplement"](Wo)||Kt["Arabic Extended-A"](Wo)||Kt["Arabic Presentation Forms-A"](Wo)||Kt["Arabic Presentation Forms-B"](Wo))return!1;var Wo;return!0}(Po)?Zr:0,Co=S.get("text-anchor").evaluate(ut,{},P),co=S.get("text-variable-anchor");if(!co){var Vo=S.get("text-radial-offset").evaluate(ut,{},P);dr=Vo?Ne(Co,[24*Vo,Se]):S.get("text-offset").evaluate(ut,{},P).map(function(Do){return 24*Do})}var Ur=he?"center":S.get("text-justify").evaluate(ut,{},P),$o=S.get("symbol-placement"),Ci=$o==="point"?24*S.get("text-max-width").evaluate(ut,{},P):0,Zi=function(){o.allowVerticalPlacement&&Js(Po)&&(pr.vertical=ho(Br,a,p,_,Et,Ci,ce,Co,"left",Pr,dr,Lr.vertical,!0,$o,qt,kt))};if(!he&&co){for(var ji=Ur==="auto"?co.map(function(Do){return Ue(Do)}):[Ur],Ii=!1,Yi=0;Yi<ji.length;Yi++){var Vn=ji[Yi];if(!pr.horizontal[Vn])if(Ii)pr.horizontal[Vn]=pr.horizontal[0];else{var Hn=ho(Br,a,p,_,Et,Ci,ce,"center",Vn,Pr,dr,Lr.horizontal,!1,$o,qt,kt);Hn&&(pr.horizontal[Vn]=Hn,Ii=Hn.positionedLines.length===1)}}Zi()}else{Ur==="auto"&&(Ur=Ue(Co));var Ra=ho(Br,a,p,_,Et,Ci,ce,Co,Ur,Pr,dr,Lr.horizontal,!1,$o,qt,kt);Ra&&(pr.horizontal[Ur]=Ra),Zi(),Js(Po)&&he&&Re&&(pr.vertical=ho(Br,a,p,_,Et,Ci,ce,Co,Ur,Pr,dr,Lr.vertical,!1,$o,qt,kt))}}var qn=void 0,Ca=!1;if(ut.icon&&ut.icon.name){var tn=h[ut.icon.name];tn&&(qn=function(Do,yi,ni){var Wo=mi(ni),za=yi[0]-Do.displaySize[0]*Wo.horizontalAlign,ma=yi[1]-Do.displaySize[1]*Wo.verticalAlign;return{image:Do,top:ma,bottom:ma+Do.displaySize[1],left:za,right:za+Do.displaySize[0]}}(_[ut.icon.name],S.get("icon-offset").evaluate(ut,{},P),S.get("icon-anchor").evaluate(ut,{},P)),Ca=tn.sdf,o.sdfIcons===void 0?o.sdfIcons=tn.sdf:o.sdfIcons!==tn.sdf&&ze("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(tn.pixelRatio!==o.pixelRatio||S.get("icon-rotate").constantOr(1)!==0)&&(o.iconsNeedLinear=!0))}var Kn=Ce(pr.horizontal)||pr.vertical;o.iconsInText=!!Kn&&Kn.iconsInText,(Kn||qn)&&function(Do,yi,ni,Wo,za,ma,Ti,En,_a,qo,kp){var Ds=ma.textMaxSize.evaluate(yi,{});Ds===void 0&&(Ds=Ti);var zp,rn=Do.layers[0].layout,Vp=rn.get("icon-offset").evaluate(yi,{},kp),Bu=Ce(ni.horizontal),q1=Ti/24,o1=Do.tilePixelRatio*q1,K1=Do.tilePixelRatio*Ds/24,bl=Do.tilePixelRatio*En,Q1=Do.tilePixelRatio*rn.get("symbol-spacing"),sh=rn.get("text-padding")*Do.tilePixelRatio,J1=rn.get("icon-padding")*Do.tilePixelRatio,ld=rn.get("text-max-angle")/180*Math.PI,uh=rn.get("text-rotation-alignment")==="map"&&rn.get("symbol-placement")!=="point",ph=rn.get("icon-rotation-alignment")==="map"&&rn.get("symbol-placement")!=="point",Al=rn.get("symbol-placement"),cd=Q1/2,e0=rn.get("icon-text-fit");Wo&&e0!=="none"&&(Do.allowVerticalPlacement&&ni.vertical&&(zp=_n(Wo,ni.vertical,e0,rn.get("icon-text-fit-padding"),Vp,q1)),Bu&&(Wo=_n(Wo,Bu,e0,rn.get("icon-text-fit-padding"),Vp,q1)));var lc=function(G7,vd){vd.x<0||vd.x>=8192||vd.y<0||vd.y>=8192||function(on,lp,j7,cc,xm,s3,fh,Hp,mh,Ed,_h,gh,Pm,u3,xd,p3,l3,c3,d3,y3,Os,vh,h3,Gp,W7){var f3,n1,n0,a0,s0,u0=on.addToLineVertexArray(lp,j7),m3=0,_3=0,g3=0,v3=0,bm=-1,Am=-1,Fl={},E3=le(""),Fm=0,Tm=0;if(Hp._unevaluatedLayout.getValue("text-radial-offset")===void 0?(Fm=(f3=Hp.layout.get("text-offset").evaluate(Os,{},Gp).map(function(bd){return 24*bd}))[0],Tm=f3[1]):(Fm=24*Hp.layout.get("text-radial-offset").evaluate(Os,{},Gp),Tm=Se),on.allowVerticalPlacement&&cc.vertical){var x3=Hp.layout.get("text-rotate").evaluate(Os,{},Gp)+90;a0=new ii(mh,lp,Ed,_h,gh,cc.vertical,Pm,u3,xd,x3),fh&&(s0=new ii(mh,lp,Ed,_h,gh,fh,l3,c3,xd,x3))}if(xm){var Sm=Hp.layout.get("icon-rotate").evaluate(Os,{}),P3=Hp.layout.get("icon-text-fit")!=="none",b3=fe(xm,Sm,h3,P3),wm=fh?fe(fh,Sm,h3,P3):void 0;n0=new ii(mh,lp,Ed,_h,gh,xm,l3,c3,!1,Sm),m3=4*b3.length;var A3=on.iconSizeData,Pd=null;A3.kind==="source"?(Pd=[128*Hp.layout.get("icon-size").evaluate(Os,{})])[0]>32640&&ze(on.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):A3.kind==="composite"&&((Pd=[128*vh.compositeIconSizes[0].evaluate(Os,{},Gp),128*vh.compositeIconSizes[1].evaluate(Os,{},Gp)])[0]>32640||Pd[1]>32640)&&ze(on.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),on.addSymbols(on.icon,b3,Pd,y3,d3,Os,!1,lp,u0.lineStartIndex,u0.lineLength,-1,Gp),bm=on.icon.placedSymbolArray.length-1,wm&&(_3=4*wm.length,on.addSymbols(on.icon,wm,Pd,y3,d3,Os,Lr.vertical,lp,u0.lineStartIndex,u0.lineLength,-1,Gp),Am=on.icon.placedSymbolArray.length-1)}for(var F3 in cc.horizontal){var Eh=cc.horizontal[F3];if(!n1){E3=le(Eh.text);var X7=Hp.layout.get("text-rotate").evaluate(Os,{},Gp);n1=new ii(mh,lp,Ed,_h,gh,Eh,Pm,u3,xd,X7)}var T3=Eh.positionedLines.length===1;if(g3+=me(on,lp,Eh,s3,Hp,xd,Os,p3,u0,cc.vertical?Lr.horizontal:Lr.horizontalOnly,T3?Object.keys(cc.horizontal):[F3],Fl,bm,vh,Gp),T3)break}cc.vertical&&(v3+=me(on,lp,cc.vertical,s3,Hp,xd,Os,p3,u0,Lr.vertical,["vertical"],Fl,Am,vh,Gp));var Z7=n1?n1.boxStartIndex:on.collisionBoxArray.length,Y7=n1?n1.boxEndIndex:on.collisionBoxArray.length,$7=a0?a0.boxStartIndex:on.collisionBoxArray.length,q7=a0?a0.boxEndIndex:on.collisionBoxArray.length,K7=n0?n0.boxStartIndex:on.collisionBoxArray.length,Q7=n0?n0.boxEndIndex:on.collisionBoxArray.length,J7=s0?s0.boxStartIndex:on.collisionBoxArray.length,ev=s0?s0.boxEndIndex:on.collisionBoxArray.length,jp=-1,xh=function(bd,w3){return bd&&bd.circleDiameter?Math.max(bd.circleDiameter,w3):w3};jp=xh(n1,jp),jp=xh(a0,jp),jp=xh(n0,jp);var S3=(jp=xh(s0,jp))>-1?1:0;S3&&(jp*=W7/24),on.glyphOffsetArray.length>=fr.MAX_GLYPHS&&ze("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Os.sortKey!==void 0&&on.addToSortKeyRanges(on.symbolInstances.length,Os.sortKey),on.symbolInstances.emplaceBack(lp.x,lp.y,Fl.right>=0?Fl.right:-1,Fl.center>=0?Fl.center:-1,Fl.left>=0?Fl.left:-1,Fl.vertical||-1,bm,Am,E3,Z7,Y7,$7,q7,K7,Q7,J7,ev,Ed,g3,v3,m3,_3,S3,0,Pm,Fm,Tm,jp)}(Do,vd,G7,ni,Wo,za,zp,Do.layers[0],Do.collisionBoxArray,yi.index,yi.sourceLayerIndex,Do.index,o1,sh,uh,_a,bl,J1,ph,Vp,yi,ma,qo,kp,Ti)};if(Al==="line")for(var t0=0,lh=nu(yi.geometry,0,0,8192,8192);t0<lh.length;t0+=1)for(var ch=lh[t0],dd=0,yd=en(ch,Q1,ld,ni.vertical||Bu,Wo,24,K1,Do.overscaling,8192);dd<yd.length;dd+=1){var dh=yd[dd];Bu&&ae(Do,Bu.text,cd,dh)||lc(ch,dh)}else if(Al==="line-center")for(var hd=0,fd=yi.geometry;hd<fd.length;hd+=1){var md=fd[hd];if(md.length>1){var yh=zo(md,ld,ni.vertical||Bu,Wo,24,K1);yh&&lc(md,yh)}}else if(yi.type==="Polygon")for(var r0=0,hh=W1(yi.geometry,0);r0<hh.length;r0+=1){var o0=hh[r0],_d=Pe(o0,16);lc(o0[0],new ki(_d.x,_d.y,0))}else if(yi.type==="LineString")for(var i1=0,gd=yi.geometry;i1<gd.length;i1+=1){var i0=gd[i1];lc(i0,new ki(i0[0].x,i0[0].y,0))}else if(yi.type==="Point")for(var gm=0,n3=yi.geometry;gm<n3.length;gm+=1)for(var vm=0,a3=n3[gm];vm<a3.length;vm+=1){var Em=a3[vm];lc([Em],new ki(Em.x,Em.y,0))}}(o,ut,pr,qn,h,M,qt,Ir,dr,Ca,P)},Ze=0,it=o.features;Ze<it.length;Ze+=1)Ve();v&&o.generateCollisionDebugBuffers()},n.perspective=function(o,a,p,h,_){var v,P=1/Math.tan(a/2);return o[0]=P/p,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=P,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[11]=-1,o[12]=0,o[13]=0,o[15]=0,_!=null&&_!==1/0?(o[10]=(_+h)*(v=1/(h-_)),o[14]=2*_*h*v):(o[10]=-1,o[14]=-2*h),o},n.pick=function(o,a){for(var p={},h=0;h<a.length;h++){var _=a[h];_ in o&&(p[_]=o[_])}return p},n.plugin=Ba,n.polygonIntersectsPolygon=Cs,n.postMapLoadEvent=pa,n.postTurnstileEvent=si,n.potpack=ro,n.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],n.register=hr,n.registerForPluginStateChange=function(o){return o({pluginStatus:ta,pluginURL:Ss}),ql.on("pluginStateChange",o),o},n.renderColorRamp=Vy,n.rotate=function(o,a,p){var h=a[0],_=a[1],v=a[2],P=a[3],S=Math.sin(p),C=Math.cos(p);return o[0]=h*C+v*S,o[1]=_*C+P*S,o[2]=h*-S+v*C,o[3]=_*-S+P*C,o},n.rotateX=function(o,a,p){var h=Math.sin(p),_=Math.cos(p),v=a[4],P=a[5],S=a[6],C=a[7],M=a[8],O=a[9],B=a[10],j=a[11];return a!==o&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],o[12]=a[12],o[13]=a[13],o[14]=a[14],o[15]=a[15]),o[4]=v*_+M*h,o[5]=P*_+O*h,o[6]=S*_+B*h,o[7]=C*_+j*h,o[8]=M*_-v*h,o[9]=O*_-P*h,o[10]=B*_-S*h,o[11]=j*_-C*h,o},n.rotateZ=function(o,a,p){var h=Math.sin(p),_=Math.cos(p),v=a[0],P=a[1],S=a[2],C=a[3],M=a[4],O=a[5],B=a[6],j=a[7];return a!==o&&(o[8]=a[8],o[9]=a[9],o[10]=a[10],o[11]=a[11],o[12]=a[12],o[13]=a[13],o[14]=a[14],o[15]=a[15]),o[0]=v*_+M*h,o[1]=P*_+O*h,o[2]=S*_+B*h,o[3]=C*_+j*h,o[4]=M*_-v*h,o[5]=O*_-P*h,o[6]=B*_-S*h,o[7]=j*_-C*h,o},n.scale=function(o,a,p){var h=p[0],_=p[1],v=p[2];return o[0]=a[0]*h,o[1]=a[1]*h,o[2]=a[2]*h,o[3]=a[3]*h,o[4]=a[4]*_,o[5]=a[5]*_,o[6]=a[6]*_,o[7]=a[7]*_,o[8]=a[8]*v,o[9]=a[9]*v,o[10]=a[10]*v,o[11]=a[11]*v,o[12]=a[12],o[13]=a[13],o[14]=a[14],o[15]=a[15],o},n.scale$1=function(o,a,p){return o[0]=a[0]*p,o[1]=a[1]*p,o[2]=a[2]*p,o[3]=a[3]*p,o},n.scale$2=function(o,a,p){return o[0]=a[0]*p,o[1]=a[1]*p,o[2]=a[2]*p,o},n.setCacheLimits=function(o,a){Tn=o,vs=a},n.setRTLTextPlugin=function(o,a,p){if(p===void 0&&(p=!1),ta==="deferred"||ta==="loading"||ta==="loaded")throw new Error("setRTLTextPlugin cannot be called multiple times.");Ss=Ni.resolveURL(o),ta="deferred",$l=a,Sp(),p||Fa()},n.sphericalToCartesian=function(o){var a=o[0],p=o[1],h=o[2];return p+=90,p*=Math.PI/180,h*=Math.PI/180,{x:a*Math.cos(p)*Math.sin(h),y:a*Math.sin(p)*Math.sin(h),z:a*Math.cos(h)}},n.sqrLen=function(o){var a=o[0],p=o[1];return a*a+p*p},n.styleSpec=q,n.sub=function(o,a,p){return o[0]=a[0]-p[0],o[1]=a[1]-p[1],o[2]=a[2]-p[2],o},n.symbolSize=yo,n.transformMat3=function(o,a,p){var h=a[0],_=a[1],v=a[2];return o[0]=h*p[0]+_*p[3]+v*p[6],o[1]=h*p[1]+_*p[4]+v*p[7],o[2]=h*p[2]+_*p[5]+v*p[8],o},n.transformMat4=Ou,n.translate=function(o,a,p){var h,_,v,P,S,C,M,O,B,j,Y,ce,he=p[0],Re=p[1],be=p[2];return a===o?(o[12]=a[0]*he+a[4]*Re+a[8]*be+a[12],o[13]=a[1]*he+a[5]*Re+a[9]*be+a[13],o[14]=a[2]*he+a[6]*Re+a[10]*be+a[14],o[15]=a[3]*he+a[7]*Re+a[11]*be+a[15]):(_=a[1],v=a[2],P=a[3],S=a[4],C=a[5],M=a[6],O=a[7],B=a[8],j=a[9],Y=a[10],ce=a[11],o[0]=h=a[0],o[1]=_,o[2]=v,o[3]=P,o[4]=S,o[5]=C,o[6]=M,o[7]=O,o[8]=B,o[9]=j,o[10]=Y,o[11]=ce,o[12]=h*he+S*Re+B*be+a[12],o[13]=_*he+C*Re+j*be+a[13],o[14]=v*he+M*Re+Y*be+a[14],o[15]=P*he+O*Re+ce*be+a[15]),o},n.triggerPluginCompletionEvent=U1,n.uniqueId=ne,n.validateCustomStyleLayer=function(o){var a=[],p=o.id;return p===void 0&&a.push({message:"layers."+p+': missing required property "id"'}),o.render===void 0&&a.push({message:"layers."+p+': missing required method "render"'}),o.renderingMode&&o.renderingMode!=="2d"&&o.renderingMode!=="3d"&&a.push({message:"layers."+p+': property "renderingMode" must be either "2d" or "3d"'}),a},n.validateLight=B1,n.validateStyle=sl,n.values=function(o){var a=[];for(var p in o)a.push(o[p]);return a},n.vectorTile=Up,n.version="1.13.3",n.warnOnce=ze,n.webpSupported=Yt,n.window=F,n.wrap=J}),u(["./shared"],function(n){function y(k){var G=typeof k;if(G==="number"||G==="boolean"||G==="string"||k==null)return JSON.stringify(k);if(Array.isArray(k)){for(var W="[",oe=0,ye=k;oe<ye.length;oe+=1)W+=y(ye[oe])+",";return W+"]"}for(var Ie=Object.keys(k).sort(),Le="{",q=0;q<Ie.length;q++)Le+=JSON.stringify(Ie[q])+":"+y(k[Ie[q]])+",";return Le+"}"}function m(k){for(var G="",W=0,oe=n.refProperties;W<oe.length;W+=1)G+="/"+y(k[oe[W]]);return G}var g=function(k){this.keyCache={},k&&this.replace(k)};g.prototype.replace=function(k){this._layerConfigs={},this._layers={},this.update(k,[])},g.prototype.update=function(k,G){for(var W=this,oe=0,ye=k;oe<ye.length;oe+=1){var Ie=ye[oe];this._layerConfigs[Ie.id]=Ie;var Le=this._layers[Ie.id]=n.createStyleLayer(Ie);Le._featureFilter=n.featureFilter(Le.filter),this.keyCache[Ie.id]&&delete this.keyCache[Ie.id]}for(var q=0,ge=G;q<ge.length;q+=1){var We=ge[q];delete this.keyCache[We],delete this._layerConfigs[We],delete this._layers[We]}this.familiesBySource={};for(var ht=0,Nt=function(Wt,Zt){for(var no={},er=0;er<Wt.length;er++){var Fo=Zt&&Zt[Wt[er].id]||m(Wt[er]);Zt&&(Zt[Wt[er].id]=Fo);var Jo=no[Fo];Jo||(Jo=no[Fo]=[]),Jo.push(Wt[er])}var vo=[];for(var Mo in no)vo.push(no[Mo]);return vo}(n.values(this._layerConfigs),this.keyCache);ht<Nt.length;ht+=1){var lt=Nt[ht].map(function(Wt){return W._layers[Wt.id]}),wt=lt[0];if(wt.visibility!=="none"){var _r=wt.source||"",yr=this.familiesBySource[_r];yr||(yr=this.familiesBySource[_r]={});var dt=wt.sourceLayer||"_geojsonTileLayer",or=yr[dt];or||(or=yr[dt]=[]),or.push(lt)}}};var x=function(k){var G={},W=[];for(var oe in k){var ye=k[oe],Ie=G[oe]={};for(var Le in ye){var q=ye[+Le];if(q&&q.bitmap.width!==0&&q.bitmap.height!==0){var ge={x:0,y:0,w:q.bitmap.width+2,h:q.bitmap.height+2};W.push(ge),Ie[Le]={rect:ge,metrics:q.metrics}}}}var We=n.potpack(W),ht=new n.AlphaImage({width:We.w||1,height:We.h||1});for(var Nt in k){var lt=k[Nt];for(var wt in lt){var _r=lt[+wt];if(_r&&_r.bitmap.width!==0&&_r.bitmap.height!==0){var yr=G[Nt][wt].rect;n.AlphaImage.copy(_r.bitmap,ht,{x:0,y:0},{x:yr.x+1,y:yr.y+1},_r.bitmap)}}}this.image=ht,this.positions=G};n.register("GlyphAtlas",x);var b=function(k){this.tileID=new n.OverscaledTileID(k.tileID.overscaledZ,k.tileID.wrap,k.tileID.canonical.z,k.tileID.canonical.x,k.tileID.canonical.y),this.uid=k.uid,this.zoom=k.zoom,this.pixelRatio=k.pixelRatio,this.tileSize=k.tileSize,this.source=k.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=k.showCollisionBoxes,this.collectResourceTiming=!!k.collectResourceTiming,this.returnDependencies=!!k.returnDependencies,this.promoteId=k.promoteId};function F(k,G,W){for(var oe=new n.EvaluationParameters(G),ye=0,Ie=k;ye<Ie.length;ye+=1)Ie[ye].recalculate(oe,W)}function R(k,G){var W=n.getArrayBuffer(k.request,function(oe,ye,Ie,Le){oe?G(oe):ye&&G(null,{vectorTile:new n.vectorTile.VectorTile(new n.pbf(ye)),rawData:ye,cacheControl:Ie,expires:Le})});return function(){W.cancel(),G()}}b.prototype.parse=function(k,G,W,oe,ye){var Ie=this;this.status="parsing",this.data=k,this.collisionBoxArray=new n.CollisionBoxArray;var Le=new n.DictionaryCoder(Object.keys(k.layers).sort()),q=new n.FeatureIndex(this.tileID,this.promoteId);q.bucketLayerIDs=[];var ge,We,ht,Nt,lt={},wt={featureIndex:q,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:W},_r=G.familiesBySource[this.source];for(var yr in _r){var dt=k.layers[yr];if(dt){dt.version===1&&n.warnOnce('Vector tile source "'+this.source+'" layer "'+yr+'" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var or=Le.encode(yr),Wt=[],Zt=0;Zt<dt.length;Zt++){var no=dt.feature(Zt),er=q.getId(no,yr);Wt.push({feature:no,id:er,index:Zt,sourceLayerIndex:or})}for(var Fo=0,Jo=_r[yr];Fo<Jo.length;Fo+=1){var vo=Jo[Fo],Mo=vo[0];Mo.minzoom&&this.zoom<Math.floor(Mo.minzoom)||Mo.maxzoom&&this.zoom>=Mo.maxzoom||Mo.visibility!=="none"&&(F(vo,this.zoom,W),(lt[Mo.id]=Mo.createBucket({index:q.bucketLayerIDs.length,layers:vo,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:or,sourceID:this.source})).populate(Wt,wt,this.tileID.canonical),q.bucketLayerIDs.push(vo.map(function(ko){return ko.id})))}}}var ao=n.mapObject(wt.glyphDependencies,function(ko){return Object.keys(ko).map(Number)});Object.keys(ao).length?oe.send("getGlyphs",{uid:this.uid,stacks:ao},function(ko,so){ge||(ge=ko,We=so,ei.call(Ie))}):We={};var Vi=Object.keys(wt.iconDependencies);Vi.length?oe.send("getImages",{icons:Vi,source:this.source,tileID:this.tileID,type:"icons"},function(ko,so){ge||(ge=ko,ht=so,ei.call(Ie))}):ht={};var wo=Object.keys(wt.patternDependencies);function ei(){if(ge)return ye(ge);if(We&&ht&&Nt){var ko=new x(We),so=new n.ImageAtlas(ht,Nt);for(var Eo in lt){var Ln=lt[Eo];Ln instanceof n.SymbolBucket?(F(Ln.layers,this.zoom,W),n.performSymbolLayout(Ln,We,ko.positions,ht,so.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):Ln.hasPattern&&(Ln instanceof n.LineBucket||Ln instanceof n.FillBucket||Ln instanceof n.FillExtrusionBucket)&&(F(Ln.layers,this.zoom,W),Ln.addFeatures(wt,this.tileID.canonical,so.patternPositions))}this.status="done",ye(null,{buckets:n.values(lt).filter(function(yu){return!yu.isEmpty()}),featureIndex:q,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ko.image,imageAtlas:so,glyphMap:this.returnDependencies?We:null,iconMap:this.returnDependencies?ht:null,glyphPositions:this.returnDependencies?ko.positions:null})}}wo.length?oe.send("getImages",{icons:wo,source:this.source,tileID:this.tileID,type:"patterns"},function(ko,so){ge||(ge=ko,Nt=so,ei.call(Ie))}):Nt={},ei.call(this)};var I=function(k,G,W,oe){this.actor=k,this.layerIndex=G,this.availableImages=W,this.loadVectorData=oe||R,this.loading={},this.loaded={}};I.prototype.loadTile=function(k,G){var W=this,oe=k.uid;this.loading||(this.loading={});var ye=!!(k&&k.request&&k.request.collectResourceTiming)&&new n.RequestPerformance(k.request),Ie=this.loading[oe]=new b(k);Ie.abort=this.loadVectorData(k,function(Le,q){if(delete W.loading[oe],Le||!q)return Ie.status="done",W.loaded[oe]=Ie,G(Le);var ge=q.rawData,We={};q.expires&&(We.expires=q.expires),q.cacheControl&&(We.cacheControl=q.cacheControl);var ht={};if(ye){var Nt=ye.finish();Nt&&(ht.resourceTiming=JSON.parse(JSON.stringify(Nt)))}Ie.vectorTile=q.vectorTile,Ie.parse(q.vectorTile,W.layerIndex,W.availableImages,W.actor,function(lt,wt){if(lt||!wt)return G(lt);G(null,n.extend({rawTileData:ge.slice(0)},wt,We,ht))}),W.loaded=W.loaded||{},W.loaded[oe]=Ie})},I.prototype.reloadTile=function(k,G){var W=this,oe=this.loaded,ye=k.uid,Ie=this;if(oe&&oe[ye]){var Le=oe[ye];Le.showCollisionBoxes=k.showCollisionBoxes;var q=function(ge,We){var ht=Le.reloadCallback;ht&&(delete Le.reloadCallback,Le.parse(Le.vectorTile,Ie.layerIndex,W.availableImages,Ie.actor,ht)),G(ge,We)};Le.status==="parsing"?Le.reloadCallback=q:Le.status==="done"&&(Le.vectorTile?Le.parse(Le.vectorTile,this.layerIndex,this.availableImages,this.actor,q):q())}},I.prototype.abortTile=function(k,G){var W=this.loading,oe=k.uid;W&&W[oe]&&W[oe].abort&&(W[oe].abort(),delete W[oe]),G()},I.prototype.removeTile=function(k,G){var W=this.loaded,oe=k.uid;W&&W[oe]&&delete W[oe],G()};var U=n.window.ImageBitmap,V=function(){this.loaded={}};function J(k,G){if(k.length!==0){Q(k[0],G);for(var W=1;W<k.length;W++)Q(k[W],!1)}}function Q(k,G){for(var W=0,oe=0,ye=0,Ie=k.length,Le=Ie-1;ye<Ie;Le=ye++){var q=(k[ye][0]-k[Le][0])*(k[Le][1]+k[ye][1]),ge=W+q;oe+=Math.abs(W)>=Math.abs(q)?W-ge+q:q-ge+W,W=ge}W+oe>=0!=!!G&&k.reverse()}V.prototype.loadTile=function(k,G){var W=k.uid,oe=k.encoding,ye=k.rawImageData,Ie=U&&ye instanceof U?this.getImageData(ye):ye,Le=new n.DEMData(W,Ie,oe);this.loaded=this.loaded||{},this.loaded[W]=Le,G(null,Le)},V.prototype.getImageData=function(k){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(k.width,k.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=k.width,this.offscreenCanvas.height=k.height,this.offscreenCanvasContext.drawImage(k,0,0,k.width,k.height);var G=this.offscreenCanvasContext.getImageData(-1,-1,k.width+2,k.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new n.RGBAImage({width:G.width,height:G.height},G.data)},V.prototype.removeTile=function(k){var G=this.loaded,W=k.uid;G&&G[W]&&delete G[W]};var te=n.vectorTile.VectorTileFeature.prototype.toGeoJSON,ne=function(k){this._feature=k,this.extent=n.EXTENT,this.type=k.type,this.properties=k.tags,"id"in k&&!isNaN(k.id)&&(this.id=parseInt(k.id,10))};ne.prototype.loadGeometry=function(){if(this._feature.type===1){for(var k=[],G=0,W=this._feature.geometry;G<W.length;G+=1){var oe=W[G];k.push([new n.Point$1(oe[0],oe[1])])}return k}for(var ye=[],Ie=0,Le=this._feature.geometry;Ie<Le.length;Ie+=1){for(var q=[],ge=0,We=Le[Ie];ge<We.length;ge+=1){var ht=We[ge];q.push(new n.Point$1(ht[0],ht[1]))}ye.push(q)}return ye},ne.prototype.toGeoJSON=function(k,G,W){return te.call(this,k,G,W)};var pe=function(k){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=n.EXTENT,this.length=k.length,this._features=k};pe.prototype.feature=function(k){return new ne(this._features[k])};var Oe=n.vectorTile.VectorTileFeature,Ee=He;function He(k,G){this.options=G||{},this.features=k,this.length=k.length}function ft(k,G){this.id=typeof k.id=="number"?k.id:void 0,this.type=k.type,this.rawGeometry=k.type===1?[k.geometry]:k.geometry,this.properties=k.tags,this.extent=G||4096}He.prototype.feature=function(k){return new ft(this.features[k],this.options.extent)},ft.prototype.loadGeometry=function(){var k=this.rawGeometry;this.geometry=[];for(var G=0;G<k.length;G++){for(var W=k[G],oe=[],ye=0;ye<W.length;ye++)oe.push(new n.Point$1(W[ye][0],W[ye][1]));this.geometry.push(oe)}return this.geometry},ft.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var k=this.geometry,G=1/0,W=-1/0,oe=1/0,ye=-1/0,Ie=0;Ie<k.length;Ie++)for(var Le=k[Ie],q=0;q<Le.length;q++){var ge=Le[q];G=Math.min(G,ge.x),W=Math.max(W,ge.x),oe=Math.min(oe,ge.y),ye=Math.max(ye,ge.y)}return[G,oe,W,ye]},ft.prototype.toGeoJSON=Oe.prototype.toGeoJSON;var Ge=Be,Ae=Ee;function Be(k){var G=new n.pbf;return function(W,oe){for(var ye in W.layers)oe.writeMessage(3,ze,W.layers[ye])}(k,G),G.finish()}function ze(k,G){var W;G.writeVarintField(15,k.version||1),G.writeStringField(1,k.name||""),G.writeVarintField(5,k.extent||4096);var oe={keys:[],values:[],keycache:{},valuecache:{}};for(W=0;W<k.length;W++)oe.feature=k.feature(W),G.writeMessage(2,st,oe);var ye=oe.keys;for(W=0;W<ye.length;W++)G.writeStringField(3,ye[W]);var Ie=oe.values;for(W=0;W<Ie.length;W++)G.writeMessage(4,mr,Ie[W])}function st(k,G){var W=k.feature;W.id!==void 0&&G.writeVarintField(1,W.id),G.writeMessage(2,Vt,k),G.writeVarintField(3,W.type),G.writeMessage(4,Yr,W)}function Vt(k,G){var W=k.feature,oe=k.keys,ye=k.values,Ie=k.keycache,Le=k.valuecache;for(var q in W.properties){var ge=Ie[q];ge===void 0&&(oe.push(q),Ie[q]=ge=oe.length-1),G.writeVarint(ge);var We=W.properties[q],ht=typeof We;ht!=="string"&&ht!=="boolean"&&ht!=="number"&&(We=JSON.stringify(We));var Nt=ht+":"+We,lt=Le[Nt];lt===void 0&&(ye.push(We),Le[Nt]=lt=ye.length-1),G.writeVarint(lt)}}function ir(k,G){return(G<<3)+(7&k)}function Fr(k){return k<<1^k>>31}function Yr(k,G){for(var W=k.loadGeometry(),oe=k.type,ye=0,Ie=0,Le=W.length,q=0;q<Le;q++){var ge=W[q],We=1;oe===1&&(We=ge.length),G.writeVarint(ir(1,We));for(var ht=oe===3?ge.length-1:ge.length,Nt=0;Nt<ht;Nt++){Nt===1&&oe!==1&&G.writeVarint(ir(2,ht-1));var lt=ge[Nt].x-ye,wt=ge[Nt].y-Ie;G.writeVarint(Fr(lt)),G.writeVarint(Fr(wt)),ye+=lt,Ie+=wt}oe===3&&G.writeVarint(ir(7,1))}}function mr(k,G){var W=typeof k;W==="string"?G.writeStringField(1,k):W==="boolean"?G.writeBooleanField(7,k):W==="number"&&(k%1!=0?G.writeDoubleField(3,k):k<0?G.writeSVarintField(6,k):G.writeVarintField(5,k))}function Er(k,G,W,oe){qr(k,W,oe),qr(G,2*W,2*oe),qr(G,2*W+1,2*oe+1)}function qr(k,G,W){var oe=k[G];k[G]=k[W],k[W]=oe}function Jr(k,G,W,oe){var ye=k-W,Ie=G-oe;return ye*ye+Ie*Ie}Ge.fromVectorTileJs=Be,Ge.fromGeojsonVt=function(k,G){G=G||{};var W={};for(var oe in k)W[oe]=new Ee(k[oe].features,G),W[oe].name=oe,W[oe].version=G.version,W[oe].extent=G.extent;return Be({layers:W})},Ge.GeoJSONWrapper=Ae;var _o=function(k){return k[0]},So=function(k){return k[1]},oo=function(k,G,W,oe,ye){G===void 0&&(G=_o),W===void 0&&(W=So),oe===void 0&&(oe=64),ye===void 0&&(ye=Float64Array),this.nodeSize=oe,this.points=k;for(var Ie=k.length<65536?Uint16Array:Uint32Array,Le=this.ids=new Ie(k.length),q=this.coords=new ye(2*k.length),ge=0;ge<k.length;ge++)Le[ge]=ge,q[2*ge]=G(k[ge]),q[2*ge+1]=W(k[ge]);(function We(ht,Nt,lt,wt,_r,yr){if(!(_r-wt<=lt)){var dt=wt+_r>>1;(function or(Wt,Zt,no,er,Fo,Jo){for(;Fo>er;){if(Fo-er>600){var vo=Fo-er+1,Mo=no-er+1,ao=Math.log(vo),Vi=.5*Math.exp(2*ao/3),wo=.5*Math.sqrt(ao*Vi*(vo-Vi)/vo)*(Mo-vo/2<0?-1:1);or(Wt,Zt,no,Math.max(er,Math.floor(no-Mo*Vi/vo+wo)),Math.min(Fo,Math.floor(no+(vo-Mo)*Vi/vo+wo)),Jo)}var ei=Zt[2*no+Jo],ko=er,so=Fo;for(Er(Wt,Zt,er,no),Zt[2*Fo+Jo]>ei&&Er(Wt,Zt,er,Fo);ko<so;){for(Er(Wt,Zt,ko,so),ko++,so--;Zt[2*ko+Jo]<ei;)ko++;for(;Zt[2*so+Jo]>ei;)so--}Zt[2*er+Jo]===ei?Er(Wt,Zt,er,so):Er(Wt,Zt,++so,Fo),so<=no&&(er=so+1),no<=so&&(Fo=so-1)}})(ht,Nt,dt,wt,_r,yr%2),We(ht,Nt,lt,wt,dt-1,yr+1),We(ht,Nt,lt,dt+1,_r,yr+1)}})(Le,q,oe,0,Le.length-1,0)};oo.prototype.range=function(k,G,W,oe){return function(ye,Ie,Le,q,ge,We,ht){for(var Nt,lt,wt=[0,ye.length-1,0],_r=[];wt.length;){var yr=wt.pop(),dt=wt.pop(),or=wt.pop();if(dt-or<=ht)for(var Wt=or;Wt<=dt;Wt++)lt=Ie[2*Wt+1],(Nt=Ie[2*Wt])>=Le&&Nt<=ge&<>=q&<<=We&&_r.push(ye[Wt]);else{var Zt=Math.floor((or+dt)/2);lt=Ie[2*Zt+1],(Nt=Ie[2*Zt])>=Le&&Nt<=ge&<>=q&<<=We&&_r.push(ye[Zt]);var no=(yr+1)%2;(yr===0?Le<=Nt:q<=lt)&&(wt.push(or),wt.push(Zt-1),wt.push(no)),(yr===0?ge>=Nt:We>=lt)&&(wt.push(Zt+1),wt.push(dt),wt.push(no))}}return _r}(this.ids,this.coords,k,G,W,oe,this.nodeSize)},oo.prototype.within=function(k,G,W){return function(oe,ye,Ie,Le,q,ge){for(var We=[0,oe.length-1,0],ht=[],Nt=q*q;We.length;){var lt=We.pop(),wt=We.pop(),_r=We.pop();if(wt-_r<=ge)for(var yr=_r;yr<=wt;yr++)Jr(ye[2*yr],ye[2*yr+1],Ie,Le)<=Nt&&ht.push(oe[yr]);else{var dt=Math.floor((_r+wt)/2),or=ye[2*dt],Wt=ye[2*dt+1];Jr(or,Wt,Ie,Le)<=Nt&&ht.push(oe[dt]);var Zt=(lt+1)%2;(lt===0?Ie-q<=or:Le-q<=Wt)&&(We.push(_r),We.push(dt-1),We.push(Zt)),(lt===0?Ie+q>=or:Le+q>=Wt)&&(We.push(dt+1),We.push(wt),We.push(Zt))}}return ht}(this.ids,this.coords,k,G,W,this.nodeSize)};var Wi={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(k){return k}},bo=function(k){this.options=io(Object.create(Wi),k),this.trees=new Array(this.options.maxZoom+1)};function Ni(k,G,W,oe,ye){return{x:k,y:G,zoom:1/0,id:W,parentId:-1,numPoints:oe,properties:ye}}function $e(k,G){var W=k.geometry.coordinates,oe=W[1];return{x:Ft(W[0]),y:xr(oe),zoom:1/0,index:G,parentId:-1}}function Yt(k){return{type:"Feature",id:k.id,properties:Sr(k),geometry:{type:"Point",coordinates:[(oe=k.x,360*(oe-.5)),(G=k.y,W=(180-360*G)*Math.PI/180,360*Math.atan(Math.exp(W))/Math.PI-90)]}};var G,W,oe}function Sr(k){var G=k.numPoints,W=G>=1e4?Math.round(G/1e3)+"k":G>=1e3?Math.round(G/100)/10+"k":G;return io(io({},k.properties),{cluster:!0,cluster_id:k.id,point_count:G,point_count_abbreviated:W})}function Ft(k){return k/360+.5}function xr(k){var G=Math.sin(k*Math.PI/180),W=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return W<0?0:W>1?1:W}function io(k,G){for(var W in G)k[W]=G[W];return k}function go(k){return k.x}function to(k){return k.y}function Kr(k,G,W,oe,ye,Ie){var Le=ye-W,q=Ie-oe;if(Le!==0||q!==0){var ge=((k-W)*Le+(G-oe)*q)/(Le*Le+q*q);ge>1?(W=ye,oe=Ie):ge>0&&(W+=Le*ge,oe+=q*ge)}return(Le=k-W)*Le+(q=G-oe)*q}function Ao(k,G,W,oe){var ye={id:k===void 0?null:k,type:G,geometry:W,tags:oe,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Ie){var Le=Ie.geometry,q=Ie.type;if(q==="Point"||q==="MultiPoint"||q==="LineString")$i(Ie,Le);else if(q==="Polygon"||q==="MultiLineString")for(var ge=0;ge<Le.length;ge++)$i(Ie,Le[ge]);else if(q==="MultiPolygon")for(ge=0;ge<Le.length;ge++)for(var We=0;We<Le[ge].length;We++)$i(Ie,Le[ge][We])}(ye),ye}function $i(k,G){for(var W=0;W<G.length;W+=3)k.minX=Math.min(k.minX,G[W]),k.minY=Math.min(k.minY,G[W+1]),k.maxX=Math.max(k.maxX,G[W]),k.maxY=Math.max(k.maxY,G[W+1])}function Qo(k,G,W,oe){if(G.geometry){var ye=G.geometry.coordinates,Ie=G.geometry.type,Le=Math.pow(W.tolerance/((1<<W.maxZoom)*W.extent),2),q=[],ge=G.id;if(W.promoteId?ge=G.properties[W.promoteId]:W.generateId&&(ge=oe||0),Ie==="Point")ti(ye,q);else if(Ie==="MultiPoint")for(var We=0;We<ye.length;We++)ti(ye[We],q);else if(Ie==="LineString")Pn(ye,q,Le,!1);else if(Ie==="MultiLineString"){if(W.lineMetrics){for(We=0;We<ye.length;We++)Pn(ye[We],q=[],Le,!1),k.push(Ao(ge,"LineString",q,G.properties));return}se(ye,q,Le,!1)}else if(Ie==="Polygon")se(ye,q,Le,!0);else{if(Ie!=="MultiPolygon"){if(Ie==="GeometryCollection"){for(We=0;We<G.geometry.geometries.length;We++)Qo(k,{id:ge,geometry:G.geometry.geometries[We],properties:G.properties},W,oe);return}throw new Error("Input data is not a valid GeoJSON object.")}for(We=0;We<ye.length;We++){var ht=[];se(ye[We],ht,Le,!0),q.push(ht)}}k.push(Ao(ge,Ie,q,G.properties))}}function ti(k,G){G.push(bn(k[0])),G.push(ja(k[1])),G.push(0)}function Pn(k,G,W,oe){for(var ye,Ie,Le=0,q=0;q<k.length;q++){var ge=bn(k[q][0]),We=ja(k[q][1]);G.push(ge),G.push(We),G.push(0),q>0&&(Le+=oe?(ye*We-ge*Ie)/2:Math.sqrt(Math.pow(ge-ye,2)+Math.pow(We-Ie,2))),ye=ge,Ie=We}var ht=G.length-3;G[2]=1,function Nt(lt,wt,_r,yr){for(var dt,or=yr,Wt=_r-wt>>1,Zt=_r-wt,no=lt[wt],er=lt[wt+1],Fo=lt[_r],Jo=lt[_r+1],vo=wt+3;vo<_r;vo+=3){var Mo=Kr(lt[vo],lt[vo+1],no,er,Fo,Jo);if(Mo>or)dt=vo,or=Mo;else if(Mo===or){var ao=Math.abs(vo-Wt);ao<Zt&&(dt=vo,Zt=ao)}}or>yr&&(dt-wt>3&&Nt(lt,wt,dt,yr),lt[dt+2]=or,_r-dt>3&&Nt(lt,dt,_r,yr))}(G,0,ht,W),G[ht+2]=1,G.size=Math.abs(Le),G.start=0,G.end=G.size}function se(k,G,W,oe){for(var ye=0;ye<k.length;ye++){var Ie=[];Pn(k[ye],Ie,W,oe),G.push(Ie)}}function bn(k){return k/360+.5}function ja(k){var G=Math.sin(k*Math.PI/180),W=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return W<0?0:W>1?1:W}function An(k,G,W,oe,ye,Ie,Le,q){if(oe/=G,Ie>=(W/=G)&&Le<oe)return k;if(Le<W||Ie>=oe)return null;for(var ge=[],We=0;We<k.length;We++){var ht=k[We],Nt=ht.geometry,lt=ht.type,wt=ye===0?ht.minX:ht.minY,_r=ye===0?ht.maxX:ht.maxY;if(wt>=W&&_r<oe)ge.push(ht);else if(!(_r<W||wt>=oe)){var yr=[];if(lt==="Point"||lt==="MultiPoint")ss(Nt,yr,W,oe,ye);else if(lt==="LineString")si(Nt,yr,W,oe,ye,!1,q.lineMetrics);else if(lt==="MultiLineString")pa(Nt,yr,W,oe,ye,!1);else if(lt==="Polygon")pa(Nt,yr,W,oe,ye,!0);else if(lt==="MultiPolygon")for(var dt=0;dt<Nt.length;dt++){var or=[];pa(Nt[dt],or,W,oe,ye,!0),or.length&&yr.push(or)}if(yr.length){if(q.lineMetrics&<==="LineString"){for(dt=0;dt<yr.length;dt++)ge.push(Ao(ht.id,lt,yr[dt],ht.tags));continue}lt!=="LineString"&<!=="MultiLineString"||(yr.length===1?(lt="LineString",yr=yr[0]):lt="MultiLineString"),lt!=="Point"&<!=="MultiPoint"||(lt=yr.length===3?"Point":"MultiPoint"),ge.push(Ao(ht.id,lt,yr,ht.tags))}}}return ge.length?ge:null}function ss(k,G,W,oe,ye){for(var Ie=0;Ie<k.length;Ie+=3){var Le=k[Ie+ye];Le>=W&&Le<=oe&&(G.push(k[Ie]),G.push(k[Ie+1]),G.push(k[Ie+2]))}}function si(k,G,W,oe,ye,Ie,Le){for(var q,ge,We=Fn(k),ht=ye===0?vs:zi,Nt=k.start,lt=0;lt<k.length-3;lt+=3){var wt=k[lt],_r=k[lt+1],yr=k[lt+2],dt=k[lt+3],or=k[lt+4],Wt=ye===0?wt:_r,Zt=ye===0?dt:or,no=!1;Le&&(q=Math.sqrt(Math.pow(wt-dt,2)+Math.pow(_r-or,2))),Wt<W?Zt>W&&(ge=ht(We,wt,_r,dt,or,W),Le&&(We.start=Nt+q*ge)):Wt>oe?Zt<oe&&(ge=ht(We,wt,_r,dt,or,oe),Le&&(We.start=Nt+q*ge)):Tn(We,wt,_r,yr),Zt<W&&Wt>=W&&(ge=ht(We,wt,_r,dt,or,W),no=!0),Zt>oe&&Wt<=oe&&(ge=ht(We,wt,_r,dt,or,oe),no=!0),!Ie&&no&&(Le&&(We.end=Nt+q*ge),G.push(We),We=Fn(k)),Le&&(Nt+=q)}var er=k.length-3;wt=k[er],_r=k[er+1],yr=k[er+2],(Wt=ye===0?wt:_r)>=W&&Wt<=oe&&Tn(We,wt,_r,yr),er=We.length-3,Ie&&er>=3&&(We[er]!==We[0]||We[er+1]!==We[1])&&Tn(We,We[0],We[1],We[2]),We.length&&G.push(We)}function Fn(k){var G=[];return G.size=k.size,G.start=k.start,G.end=k.end,G}function pa(k,G,W,oe,ye,Ie){for(var Le=0;Le<k.length;Le++)si(k[Le],G,W,oe,ye,Ie,!1)}function Tn(k,G,W,oe){k.push(G),k.push(W),k.push(oe)}function vs(k,G,W,oe,ye,Ie){var Le=(Ie-G)/(oe-G);return k.push(Ie),k.push(W+(ye-W)*Le),k.push(1),Le}function zi(k,G,W,oe,ye,Ie){var Le=(Ie-W)/(ye-W);return k.push(G+(oe-G)*Le),k.push(Ie),k.push(1),Le}function us(k,G){for(var W=[],oe=0;oe<k.length;oe++){var ye,Ie=k[oe],Le=Ie.type;if(Le==="Point"||Le==="MultiPoint"||Le==="LineString")ye=xa(Ie.geometry,G);else if(Le==="MultiLineString"||Le==="Polygon"){ye=[];for(var q=0;q<Ie.geometry.length;q++)ye.push(xa(Ie.geometry[q],G))}else if(Le==="MultiPolygon")for(ye=[],q=0;q<Ie.geometry.length;q++){for(var ge=[],We=0;We<Ie.geometry[q].length;We++)ge.push(xa(Ie.geometry[q][We],G));ye.push(ge)}W.push(Ao(Ie.id,Le,ye,Ie.tags))}return W}function xa(k,G){var W=[];W.size=k.size,k.start!==void 0&&(W.start=k.start,W.end=k.end);for(var oe=0;oe<k.length;oe+=3)W.push(k[oe]+G,k[oe+1],k[oe+2]);return W}function Hs(k,G){if(k.transformed)return k;var W,oe,ye,Ie=1<<k.z,Le=k.x,q=k.y;for(W=0;W<k.features.length;W++){var ge=k.features[W],We=ge.geometry,ht=ge.type;if(ge.geometry=[],ht===1)for(oe=0;oe<We.length;oe+=2)ge.geometry.push(Zu(We[oe],We[oe+1],G,Ie,Le,q));else for(oe=0;oe<We.length;oe++){var Nt=[];for(ye=0;ye<We[oe].length;ye+=2)Nt.push(Zu(We[oe][ye],We[oe][ye+1],G,Ie,Le,q));ge.geometry.push(Nt)}}return k.transformed=!0,k}function Zu(k,G,W,oe,ye,Ie){return[Math.round(W*(k*oe-ye)),Math.round(W*(G*oe-Ie))]}function Gs(k,G,W,oe,ye){for(var Ie=G===ye.maxZoom?0:ye.tolerance/((1<<G)*ye.extent),Le={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:W,y:oe,z:G,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},q=0;q<k.length;q++){Le.numFeatures++,vp(Le,k[q],Ie,ye);var ge=k[q].minX,We=k[q].minY,ht=k[q].maxX,Nt=k[q].maxY;ge<Le.minX&&(Le.minX=ge),We<Le.minY&&(Le.minY=We),ht>Le.maxX&&(Le.maxX=ht),Nt>Le.maxY&&(Le.maxY=Nt)}return Le}function vp(k,G,W,oe){var ye=G.geometry,Ie=G.type,Le=[];if(Ie==="Point"||Ie==="MultiPoint")for(var q=0;q<ye.length;q+=3)Le.push(ye[q]),Le.push(ye[q+1]),k.numPoints++,k.numSimplified++;else if(Ie==="LineString")js(Le,ye,k,W,!1,!1);else if(Ie==="MultiLineString"||Ie==="Polygon")for(q=0;q<ye.length;q++)js(Le,ye[q],k,W,Ie==="Polygon",q===0);else if(Ie==="MultiPolygon")for(var ge=0;ge<ye.length;ge++){var We=ye[ge];for(q=0;q<We.length;q++)js(Le,We[q],k,W,!0,q===0)}if(Le.length){var ht=G.tags||null;if(Ie==="LineString"&&oe.lineMetrics){for(var Nt in ht={},G.tags)ht[Nt]=G.tags[Nt];ht.mapbox_clip_start=ye.start/ye.size,ht.mapbox_clip_end=ye.end/ye.size}var lt={geometry:Le,type:Ie==="Polygon"||Ie==="MultiPolygon"?3:Ie==="LineString"||Ie==="MultiLineString"?2:1,tags:ht};G.id!==null&&(lt.id=G.id),k.features.push(lt)}}function js(k,G,W,oe,ye,Ie){var Le=oe*oe;if(oe>0&&G.size<(ye?Le:oe))W.numPoints+=G.length/3;else{for(var q=[],ge=0;ge<G.length;ge+=3)(oe===0||G[ge+2]>Le)&&(W.numSimplified++,q.push(G[ge]),q.push(G[ge+1])),W.numPoints++;ye&&function(We,ht){for(var Nt=0,lt=0,wt=We.length,_r=wt-2;lt<wt;_r=lt,lt+=2)Nt+=(We[lt]-We[_r])*(We[lt+1]+We[_r+1]);if(Nt>0===ht)for(lt=0,wt=We.length;lt<wt/2;lt+=2){var yr=We[lt],dt=We[lt+1];We[lt]=We[wt-2-lt],We[lt+1]=We[wt-1-lt],We[wt-2-lt]=yr,We[wt-1-lt]=dt}}(q,Ie),k.push(q)}}function Ma(k,G){var W=(G=this.options=function(ye,Ie){for(var Le in Ie)ye[Le]=Ie[Le];return ye}(Object.create(this.options),G)).debug;if(W&&console.time("preprocess data"),G.maxZoom<0||G.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(G.promoteId&&G.generateId)throw new Error("promoteId and generateId cannot be used together.");var oe=function(ye,Ie){var Le=[];if(ye.type==="FeatureCollection")for(var q=0;q<ye.features.length;q++)Qo(Le,ye.features[q],Ie,q);else Qo(Le,ye.type==="Feature"?ye:{geometry:ye},Ie);return Le}(k,G);this.tiles={},this.tileCoords=[],W&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",G.indexMaxZoom,G.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),(oe=function(ye,Ie){var Le=Ie.buffer/Ie.extent,q=ye,ge=An(ye,1,-1-Le,Le,0,-1,2,Ie),We=An(ye,1,1-Le,2+Le,0,-1,2,Ie);return(ge||We)&&(q=An(ye,1,-Le,1+Le,0,-1,2,Ie)||[],ge&&(q=us(ge,1).concat(q)),We&&(q=q.concat(us(We,-1)))),q}(oe,G)).length&&this.splitTile(oe,0,0,0),W&&(oe.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}function Na(k,G,W){return 32*((1<<k)*W+G)+k}function Es(k,G){var W=k.tileID.canonical;if(!this._geoJSONIndex)return G(null,null);var oe=this._geoJSONIndex.getTile(W.z,W.x,W.y);if(!oe)return G(null,null);var ye=new pe(oe.features),Ie=Ge(ye);Ie.byteOffset===0&&Ie.byteLength===Ie.buffer.byteLength||(Ie=new Uint8Array(Ie)),G(null,{vectorTile:ye,rawData:Ie.buffer})}bo.prototype.load=function(k){var G=this.options,W=G.log,oe=G.minZoom,ye=G.maxZoom,Ie=G.nodeSize;W&&console.time("total time");var Le="prepare "+k.length+" points";W&&console.time(Le),this.points=k;for(var q=[],ge=0;ge<k.length;ge++)k[ge].geometry&&q.push($e(k[ge],ge));this.trees[ye+1]=new oo(q,go,to,Ie,Float32Array),W&&console.timeEnd(Le);for(var We=ye;We>=oe;We--){var ht=+Date.now();q=this._cluster(q,We),this.trees[We]=new oo(q,go,to,Ie,Float32Array),W&&console.log("z%d: %d clusters in %dms",We,q.length,+Date.now()-ht)}return W&&console.timeEnd("total time"),this},bo.prototype.getClusters=function(k,G){var W=((k[0]+180)%360+360)%360-180,oe=Math.max(-90,Math.min(90,k[1])),ye=k[2]===180?180:((k[2]+180)%360+360)%360-180,Ie=Math.max(-90,Math.min(90,k[3]));if(k[2]-k[0]>=360)W=-180,ye=180;else if(W>ye){var Le=this.getClusters([W,oe,180,Ie],G),q=this.getClusters([-180,oe,ye,Ie],G);return Le.concat(q)}for(var ge=this.trees[this._limitZoom(G)],We=[],ht=0,Nt=ge.range(Ft(W),xr(Ie),Ft(ye),xr(oe));ht<Nt.length;ht+=1){var lt=ge.points[Nt[ht]];We.push(lt.numPoints?Yt(lt):this.points[lt.index])}return We},bo.prototype.getChildren=function(k){var G=this._getOriginId(k),W=this._getOriginZoom(k),oe="No cluster with the specified id.",ye=this.trees[W];if(!ye)throw new Error(oe);var Ie=ye.points[G];if(!Ie)throw new Error(oe);for(var Le=this.options.radius/(this.options.extent*Math.pow(2,W-1)),q=[],ge=0,We=ye.within(Ie.x,Ie.y,Le);ge<We.length;ge+=1){var ht=ye.points[We[ge]];ht.parentId===k&&q.push(ht.numPoints?Yt(ht):this.points[ht.index])}if(q.length===0)throw new Error(oe);return q},bo.prototype.getLeaves=function(k,G,W){var oe=[];return this._appendLeaves(oe,k,G=G||10,W=W||0,0),oe},bo.prototype.getTile=function(k,G,W){var oe=this.trees[this._limitZoom(k)],ye=Math.pow(2,k),Ie=this.options,Le=Ie.radius/Ie.extent,q=(W-Le)/ye,ge=(W+1+Le)/ye,We={features:[]};return this._addTileFeatures(oe.range((G-Le)/ye,q,(G+1+Le)/ye,ge),oe.points,G,W,ye,We),G===0&&this._addTileFeatures(oe.range(1-Le/ye,q,1,ge),oe.points,ye,W,ye,We),G===ye-1&&this._addTileFeatures(oe.range(0,q,Le/ye,ge),oe.points,-1,W,ye,We),We.features.length?We:null},bo.prototype.getClusterExpansionZoom=function(k){for(var G=this._getOriginZoom(k)-1;G<=this.options.maxZoom;){var W=this.getChildren(k);if(G++,W.length!==1)break;k=W[0].properties.cluster_id}return G},bo.prototype._appendLeaves=function(k,G,W,oe,ye){for(var Ie=0,Le=this.getChildren(G);Ie<Le.length;Ie+=1){var q=Le[Ie],ge=q.properties;if(ge&&ge.cluster?ye+ge.point_count<=oe?ye+=ge.point_count:ye=this._appendLeaves(k,ge.cluster_id,W,oe,ye):ye<oe?ye++:k.push(q),k.length===W)break}return ye},bo.prototype._addTileFeatures=function(k,G,W,oe,ye,Ie){for(var Le=0,q=k;Le<q.length;Le+=1){var ge=G[q[Le]],We=ge.numPoints,ht={type:1,geometry:[[Math.round(this.options.extent*(ge.x*ye-W)),Math.round(this.options.extent*(ge.y*ye-oe))]],tags:We?Sr(ge):this.points[ge.index].properties},Nt=void 0;We?Nt=ge.id:this.options.generateId?Nt=ge.index:this.points[ge.index].id&&(Nt=this.points[ge.index].id),Nt!==void 0&&(ht.id=Nt),Ie.features.push(ht)}},bo.prototype._limitZoom=function(k){return Math.max(this.options.minZoom,Math.min(+k,this.options.maxZoom+1))},bo.prototype._cluster=function(k,G){for(var W=[],oe=this.options,ye=oe.reduce,Ie=oe.minPoints,Le=oe.radius/(oe.extent*Math.pow(2,G)),q=0;q<k.length;q++){var ge=k[q];if(!(ge.zoom<=G)){ge.zoom=G;for(var We=this.trees[G+1],ht=We.within(ge.x,ge.y,Le),Nt=ge.numPoints||1,lt=Nt,wt=0,_r=ht;wt<_r.length;wt+=1){var yr=We.points[_r[wt]];yr.zoom>G&&(lt+=yr.numPoints||1)}if(lt>=Ie){for(var dt=ge.x*Nt,or=ge.y*Nt,Wt=ye&&Nt>1?this._map(ge,!0):null,Zt=(q<<5)+(G+1)+this.points.length,no=0,er=ht;no<er.length;no+=1){var Fo=We.points[er[no]];if(!(Fo.zoom<=G)){Fo.zoom=G;var Jo=Fo.numPoints||1;dt+=Fo.x*Jo,or+=Fo.y*Jo,Fo.parentId=Zt,ye&&(Wt||(Wt=this._map(ge,!0)),ye(Wt,this._map(Fo)))}}ge.parentId=Zt,W.push(Ni(dt/lt,or/lt,Zt,lt,Wt))}else if(W.push(ge),lt>1)for(var vo=0,Mo=ht;vo<Mo.length;vo+=1){var ao=We.points[Mo[vo]];ao.zoom<=G||(ao.zoom=G,W.push(ao))}}}return W},bo.prototype._getOriginId=function(k){return k-this.points.length>>5},bo.prototype._getOriginZoom=function(k){return(k-this.points.length)%32},bo.prototype._map=function(k,G){if(k.numPoints)return G?io({},k.properties):k.properties;var W=this.points[k.index].properties,oe=this.options.map(W);return G&&oe===W?io({},oe):oe},Ma.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Ma.prototype.splitTile=function(k,G,W,oe,ye,Ie,Le){for(var q=[k,G,W,oe],ge=this.options,We=ge.debug;q.length;){oe=q.pop(),W=q.pop(),G=q.pop(),k=q.pop();var ht=1<<G,Nt=Na(G,W,oe),lt=this.tiles[Nt];if(!lt&&(We>1&&console.time("creation"),lt=this.tiles[Nt]=Gs(k,G,W,oe,ge),this.tileCoords.push({z:G,x:W,y:oe}),We)){We>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",G,W,oe,lt.numFeatures,lt.numPoints,lt.numSimplified),console.timeEnd("creation"));var wt="z"+G;this.stats[wt]=(this.stats[wt]||0)+1,this.total++}if(lt.source=k,ye){if(G===ge.maxZoom||G===ye)continue;var _r=1<<ye-G;if(W!==Math.floor(Ie/_r)||oe!==Math.floor(Le/_r))continue}else if(G===ge.indexMaxZoom||lt.numPoints<=ge.indexMaxPoints)continue;if(lt.source=null,k.length!==0){We>1&&console.time("clipping");var yr,dt,or,Wt,Zt,no,er=.5*ge.buffer/ge.extent,Fo=.5-er,Jo=.5+er,vo=1+er;yr=dt=or=Wt=null,Zt=An(k,ht,W-er,W+Jo,0,lt.minX,lt.maxX,ge),no=An(k,ht,W+Fo,W+vo,0,lt.minX,lt.maxX,ge),k=null,Zt&&(yr=An(Zt,ht,oe-er,oe+Jo,1,lt.minY,lt.maxY,ge),dt=An(Zt,ht,oe+Fo,oe+vo,1,lt.minY,lt.maxY,ge),Zt=null),no&&(or=An(no,ht,oe-er,oe+Jo,1,lt.minY,lt.maxY,ge),Wt=An(no,ht,oe+Fo,oe+vo,1,lt.minY,lt.maxY,ge),no=null),We>1&&console.timeEnd("clipping"),q.push(yr||[],G+1,2*W,2*oe),q.push(dt||[],G+1,2*W,2*oe+1),q.push(or||[],G+1,2*W+1,2*oe),q.push(Wt||[],G+1,2*W+1,2*oe+1)}}},Ma.prototype.getTile=function(k,G,W){var oe=this.options,ye=oe.extent,Ie=oe.debug;if(k<0||k>24)return null;var Le=1<<k,q=Na(k,G=(G%Le+Le)%Le,W);if(this.tiles[q])return Hs(this.tiles[q],ye);Ie>1&&console.log("drilling down to z%d-%d-%d",k,G,W);for(var ge,We=k,ht=G,Nt=W;!ge&&We>0;)We--,ht=Math.floor(ht/2),Nt=Math.floor(Nt/2),ge=this.tiles[Na(We,ht,Nt)];return ge&&ge.source?(Ie>1&&console.log("found parent tile z%d-%d-%d",We,ht,Nt),Ie>1&&console.time("drilling down"),this.splitTile(ge.source,We,ht,Nt,k,G,W),Ie>1&&console.timeEnd("drilling down"),this.tiles[q]?Hs(this.tiles[q],ye):null):null};var Yu=function(k){function G(W,oe,ye,Ie){k.call(this,W,oe,ye,Es),Ie&&(this.loadGeoJSON=Ie)}return k&&(G.__proto__=k),(G.prototype=Object.create(k&&k.prototype)).constructor=G,G.prototype.loadData=function(W,oe){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=oe,this._pendingLoadDataParams=W,this._state&&this._state!=="Idle"?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},G.prototype._loadData=function(){var W=this;if(this._pendingCallback&&this._pendingLoadDataParams){var oe=this._pendingCallback,ye=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var Ie=!!(ye&&ye.request&&ye.request.collectResourceTiming)&&new n.RequestPerformance(ye.request);this.loadGeoJSON(ye,function(Le,q){if(Le||!q)return oe(Le);if(typeof q!="object")return oe(new Error("Input data given to '"+ye.source+"' is not a valid GeoJSON object."));(function lt(wt,_r){var yr,dt=wt&&wt.type;if(dt==="FeatureCollection")for(yr=0;yr<wt.features.length;yr++)lt(wt.features[yr],_r);else if(dt==="GeometryCollection")for(yr=0;yr<wt.geometries.length;yr++)lt(wt.geometries[yr],_r);else if(dt==="Feature")lt(wt.geometry,_r);else if(dt==="Polygon")J(wt.coordinates,_r);else if(dt==="MultiPolygon")for(yr=0;yr<wt.coordinates.length;yr++)J(wt.coordinates[yr],_r);return wt})(q,!0);try{if(ye.filter){var ge=n.createExpression(ye.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(ge.result==="error")throw new Error(ge.value.map(function(lt){return lt.key+": "+lt.message}).join(", "));var We=q.features.filter(function(lt){return ge.value.evaluate({zoom:0},lt)});q={type:"FeatureCollection",features:We}}W._geoJSONIndex=ye.cluster?new bo(function(lt){var wt=lt.superclusterOptions,_r=lt.clusterProperties;if(!_r||!wt)return wt;for(var yr={},dt={},or={accumulated:null,zoom:0},Wt={properties:null},Zt=Object.keys(_r),no=0,er=Zt;no<er.length;no+=1){var Fo=er[no],Jo=_r[Fo],vo=Jo[0],Mo=n.createExpression(Jo[1]),ao=n.createExpression(typeof vo=="string"?[vo,["accumulated"],["get",Fo]]:vo);yr[Fo]=Mo.value,dt[Fo]=ao.value}return wt.map=function(Vi){Wt.properties=Vi;for(var wo={},ei=0,ko=Zt;ei<ko.length;ei+=1){var so=ko[ei];wo[so]=yr[so].evaluate(or,Wt)}return wo},wt.reduce=function(Vi,wo){Wt.properties=wo;for(var ei=0,ko=Zt;ei<ko.length;ei+=1){var so=ko[ei];or.accumulated=Vi[so],Vi[so]=dt[so].evaluate(or,Wt)}},wt}(ye)).load(q.features):function(lt,wt){return new Ma(lt,wt)}(q,ye.geojsonVtOptions)}catch(lt){return oe(lt)}W.loaded={};var ht={};if(Ie){var Nt=Ie.finish();Nt&&(ht.resourceTiming={},ht.resourceTiming[ye.source]=JSON.parse(JSON.stringify(Nt)))}oe(null,ht)})}},G.prototype.coalesce=function(){this._state==="Coalescing"?this._state="Idle":this._state==="NeedsLoadData"&&(this._state="Coalescing",this._loadData())},G.prototype.reloadTile=function(W,oe){var ye=this.loaded;return ye&&ye[W.uid]?k.prototype.reloadTile.call(this,W,oe):this.loadTile(W,oe)},G.prototype.loadGeoJSON=function(W,oe){if(W.request)n.getJSON(W.request,oe);else{if(typeof W.data!="string")return oe(new Error("Input data given to '"+W.source+"' is not a valid GeoJSON object."));try{return oe(null,JSON.parse(W.data))}catch{return oe(new Error("Input data given to '"+W.source+"' is not a valid GeoJSON object."))}}},G.prototype.removeSource=function(W,oe){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),oe()},G.prototype.getClusterExpansionZoom=function(W,oe){try{oe(null,this._geoJSONIndex.getClusterExpansionZoom(W.clusterId))}catch(ye){oe(ye)}},G.prototype.getClusterChildren=function(W,oe){try{oe(null,this._geoJSONIndex.getChildren(W.clusterId))}catch(ye){oe(ye)}},G.prototype.getClusterLeaves=function(W,oe){try{oe(null,this._geoJSONIndex.getLeaves(W.clusterId,W.limit,W.offset))}catch(ye){oe(ye)}},G}(I),Go=function(k){var G=this;this.self=k,this.actor=new n.Actor(k,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:I,geojson:Yu},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(W,oe){if(G.workerSourceTypes[W])throw new Error('Worker source with name "'+W+'" already registered.');G.workerSourceTypes[W]=oe},this.self.registerRTLTextPlugin=function(W){if(n.plugin.isParsed())throw new Error("RTL text plugin already registered.");n.plugin.applyArabicShaping=W.applyArabicShaping,n.plugin.processBidirectionalText=W.processBidirectionalText,n.plugin.processStyledBidirectionalText=W.processStyledBidirectionalText}};return Go.prototype.setReferrer=function(k,G){this.referrer=G},Go.prototype.setImages=function(k,G,W){for(var oe in this.availableImages[k]=G,this.workerSources[k]){var ye=this.workerSources[k][oe];for(var Ie in ye)ye[Ie].availableImages=G}W()},Go.prototype.setLayers=function(k,G,W){this.getLayerIndex(k).replace(G),W()},Go.prototype.updateLayers=function(k,G,W){this.getLayerIndex(k).update(G.layers,G.removedIds),W()},Go.prototype.loadTile=function(k,G,W){this.getWorkerSource(k,G.type,G.source).loadTile(G,W)},Go.prototype.loadDEMTile=function(k,G,W){this.getDEMWorkerSource(k,G.source).loadTile(G,W)},Go.prototype.reloadTile=function(k,G,W){this.getWorkerSource(k,G.type,G.source).reloadTile(G,W)},Go.prototype.abortTile=function(k,G,W){this.getWorkerSource(k,G.type,G.source).abortTile(G,W)},Go.prototype.removeTile=function(k,G,W){this.getWorkerSource(k,G.type,G.source).removeTile(G,W)},Go.prototype.removeDEMTile=function(k,G){this.getDEMWorkerSource(k,G.source).removeTile(G)},Go.prototype.removeSource=function(k,G,W){if(this.workerSources[k]&&this.workerSources[k][G.type]&&this.workerSources[k][G.type][G.source]){var oe=this.workerSources[k][G.type][G.source];delete this.workerSources[k][G.type][G.source],oe.removeSource!==void 0?oe.removeSource(G,W):W()}},Go.prototype.loadWorkerSource=function(k,G,W){try{this.self.importScripts(G.url),W()}catch(oe){W(oe.toString())}},Go.prototype.syncRTLPluginState=function(k,G,W){try{n.plugin.setState(G);var oe=n.plugin.getPluginURL();if(n.plugin.isLoaded()&&!n.plugin.isParsed()&&oe!=null){this.self.importScripts(oe);var ye=n.plugin.isParsed();W(ye?void 0:new Error("RTL Text Plugin failed to import scripts from "+oe),ye)}}catch(Ie){W(Ie.toString())}},Go.prototype.getAvailableImages=function(k){var G=this.availableImages[k];return G||(G=[]),G},Go.prototype.getLayerIndex=function(k){var G=this.layerIndexes[k];return G||(G=this.layerIndexes[k]=new g),G},Go.prototype.getWorkerSource=function(k,G,W){var oe=this;return this.workerSources[k]||(this.workerSources[k]={}),this.workerSources[k][G]||(this.workerSources[k][G]={}),this.workerSources[k][G][W]||(this.workerSources[k][G][W]=new this.workerSourceTypes[G]({send:function(ye,Ie,Le){oe.actor.send(ye,Ie,Le,k)}},this.getLayerIndex(k),this.getAvailableImages(k))),this.workerSources[k][G][W]},Go.prototype.getDEMWorkerSource=function(k,G){return this.demWorkerSources[k]||(this.demWorkerSources[k]={}),this.demWorkerSources[k][G]||(this.demWorkerSources[k][G]=new V),this.demWorkerSources[k][G]},Go.prototype.enforceCacheSizeLimit=function(k,G){n.enforceCacheSizeLimit(G)},typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new Go(self)),Go}),u(["./shared"],function(n){var y=n.createCommonjsModule(function(l){function d(E){return!c(E)}function c(E){return typeof window>"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var T,w,D=new Blob([""],{type:"text/javascript"}),z=URL.createObjectURL(D);try{w=new Worker(z),T=!0}catch{T=!1}return w&&w.terminate(),URL.revokeObjectURL(z),T}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var T=document.createElement("canvas");T.width=T.height=1;var w=T.getContext("2d");if(!w)return!1;var D=w.getImageData(0,0,1,1);return D&&D.width===T.width}()?(f[A=E&&E.failIfMajorPerformanceCaveat]===void 0&&(f[A]=function(T){var w=function(z){var $=document.createElement("canvas"),K=Object.create(d.webGLContextAttributes);return K.failIfMajorPerformanceCaveat=z,$.probablySupportsContext?$.probablySupportsContext("webgl",K)||$.probablySupportsContext("experimental-webgl",K):$.supportsContext?$.supportsContext("webgl",K)||$.supportsContext("experimental-webgl",K):$.getContext("webgl",K)||$.getContext("experimental-webgl",K)}(T);if(!w)return!1;var D=w.createShader(w.VERTEX_SHADER);return!(!D||w.isContextLost())&&(w.shaderSource(D,"void main() {}"),w.compileShader(D),w.getShaderParameter(D,w.COMPILE_STATUS)===!0)}(A)),f[A]?void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var A}l.exports?l.exports=d:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=d,window.mapboxgl.notSupportedReason=c);var f={};d.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),m={create:function(l,d,c){var f=n.window.document.createElement(l);return d!==void 0&&(f.className=d),c&&c.appendChild(f),f},createNS:function(l,d){return n.window.document.createElementNS(l,d)}},g=n.window.document&&n.window.document.documentElement.style;function x(l){if(!g)return l[0];for(var d=0;d<l.length;d++)if(l[d]in g)return l[d];return l[0]}var b,F=x(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]);m.disableDrag=function(){g&&F&&(b=g[F],g[F]="none")},m.enableDrag=function(){g&&F&&(g[F]=b)};var R=x(["transform","WebkitTransform"]);m.setTransform=function(l,d){l.style[R]=d};var I=!1;try{var U=Object.defineProperty({},"passive",{get:function(){I=!0}});n.window.addEventListener("test",U,U),n.window.removeEventListener("test",U,U)}catch{I=!1}m.addEventListener=function(l,d,c,f){f===void 0&&(f={}),l.addEventListener(d,c,"passive"in f&&I?f:f.capture)},m.removeEventListener=function(l,d,c,f){f===void 0&&(f={}),l.removeEventListener(d,c,"passive"in f&&I?f:f.capture)};var V=function(l){l.preventDefault(),l.stopPropagation(),n.window.removeEventListener("click",V,!0)};function J(l){var d=l.userImage;return!!(d&&d.render&&d.render())&&(l.data.replace(new Uint8Array(d.data.buffer)),!0)}m.suppressClick=function(){n.window.addEventListener("click",V,!0),n.window.setTimeout(function(){n.window.removeEventListener("click",V,!0)},0)},m.mousePos=function(l,d){var c=l.getBoundingClientRect();return new n.Point(d.clientX-c.left-l.clientLeft,d.clientY-c.top-l.clientTop)},m.touchPos=function(l,d){for(var c=l.getBoundingClientRect(),f=[],E=0;E<d.length;E++)f.push(new n.Point(d[E].clientX-c.left-l.clientLeft,d[E].clientY-c.top-l.clientTop));return f},m.mouseButton=function(l){return n.window.InstallTrigger!==void 0&&l.button===2&&l.ctrlKey&&n.window.navigator.platform.toUpperCase().indexOf("MAC")>=0?0:l.button},m.remove=function(l){l.parentNode&&l.parentNode.removeChild(l)};var Q=function(l){function d(){l.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new n.RGBAImage({width:1,height:1}),this.dirty=!0}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.isLoaded=function(){return this.loaded},d.prototype.setLoaded=function(c){if(this.loaded!==c&&(this.loaded=c,c)){for(var f=0,E=this.requestors;f<E.length;f+=1){var A=E[f];this._notify(A.ids,A.callback)}this.requestors=[]}},d.prototype.getImage=function(c){return this.images[c]},d.prototype.addImage=function(c,f){this._validate(c,f)&&(this.images[c]=f)},d.prototype._validate=function(c,f){var E=!0;return this._validateStretch(f.stretchX,f.data&&f.data.width)||(this.fire(new n.ErrorEvent(new Error('Image "'+c+'" has invalid "stretchX" value'))),E=!1),this._validateStretch(f.stretchY,f.data&&f.data.height)||(this.fire(new n.ErrorEvent(new Error('Image "'+c+'" has invalid "stretchY" value'))),E=!1),this._validateContent(f.content,f)||(this.fire(new n.ErrorEvent(new Error('Image "'+c+'" has invalid "content" value'))),E=!1),E},d.prototype._validateStretch=function(c,f){if(!c)return!0;for(var E=0,A=0,T=c;A<T.length;A+=1){var w=T[A];if(w[0]<E||w[1]<w[0]||f<w[1])return!1;E=w[1]}return!0},d.prototype._validateContent=function(c,f){return!(c&&(c.length!==4||c[0]<0||f.data.width<c[0]||c[1]<0||f.data.height<c[1]||c[2]<0||f.data.width<c[2]||c[3]<0||f.data.height<c[3]||c[2]<c[0]||c[3]<c[1]))},d.prototype.updateImage=function(c,f){f.version=this.images[c].version+1,this.images[c]=f,this.updatedImages[c]=!0},d.prototype.removeImage=function(c){var f=this.images[c];delete this.images[c],delete this.patterns[c],f.userImage&&f.userImage.onRemove&&f.userImage.onRemove()},d.prototype.listImages=function(){return Object.keys(this.images)},d.prototype.getImages=function(c,f){var E=!0;if(!this.isLoaded())for(var A=0,T=c;A<T.length;A+=1)this.images[T[A]]||(E=!1);this.isLoaded()||E?this._notify(c,f):this.requestors.push({ids:c,callback:f})},d.prototype._notify=function(c,f){for(var E={},A=0,T=c;A<T.length;A+=1){var w=T[A];this.images[w]||this.fire(new n.Event("styleimagemissing",{id:w}));var D=this.images[w];D?E[w]={data:D.data.clone(),pixelRatio:D.pixelRatio,sdf:D.sdf,version:D.version,stretchX:D.stretchX,stretchY:D.stretchY,content:D.content,hasRenderCallback:!!(D.userImage&&D.userImage.render)}:n.warnOnce('Image "'+w+'" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.')}f(null,E)},d.prototype.getPixelSize=function(){var c=this.atlasImage;return{width:c.width,height:c.height}},d.prototype.getPattern=function(c){var f=this.patterns[c],E=this.getImage(c);if(!E)return null;if(f&&f.position.version===E.version)return f.position;if(f)f.position.version=E.version;else{var A={w:E.data.width+2,h:E.data.height+2,x:0,y:0},T=new n.ImagePosition(A,E);this.patterns[c]={bin:A,position:T}}return this._updatePatternAtlas(),this.patterns[c].position},d.prototype.bind=function(c){var f=c.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new n.Texture(c,this.atlasImage,f.RGBA),this.atlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE)},d.prototype._updatePatternAtlas=function(){var c=[];for(var f in this.patterns)c.push(this.patterns[f].bin);var E=n.potpack(c),A=E.w,T=E.h,w=this.atlasImage;for(var D in w.resize({width:A||1,height:T||1}),this.patterns){var z=this.patterns[D].bin,$=z.x+1,K=z.y+1,ee=this.images[D].data,_e=ee.width,de=ee.height;n.RGBAImage.copy(ee,w,{x:0,y:0},{x:$,y:K},{width:_e,height:de}),n.RGBAImage.copy(ee,w,{x:0,y:de-1},{x:$,y:K-1},{width:_e,height:1}),n.RGBAImage.copy(ee,w,{x:0,y:0},{x:$,y:K+de},{width:_e,height:1}),n.RGBAImage.copy(ee,w,{x:_e-1,y:0},{x:$-1,y:K},{width:1,height:de}),n.RGBAImage.copy(ee,w,{x:0,y:0},{x:$+_e,y:K},{width:1,height:de})}this.dirty=!0},d.prototype.beginFrame=function(){this.callbackDispatchedThisFrame={}},d.prototype.dispatchRenderCallbacks=function(c){for(var f=0,E=c;f<E.length;f+=1){var A=E[f];if(!this.callbackDispatchedThisFrame[A]){this.callbackDispatchedThisFrame[A]=!0;var T=this.images[A];J(T)&&this.updateImage(A,T)}}},d}(n.Evented),te=Oe,ne=Oe,pe=1e20;function Oe(l,d,c,f,E,A){this.fontSize=l||24,this.buffer=d===void 0?3:d,this.cutoff=f||.25,this.fontFamily=E||"sans-serif",this.fontWeight=A||"normal",this.radius=c||8;var T=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=T,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(T*T),this.gridInner=new Float64Array(T*T),this.f=new Float64Array(T),this.d=new Float64Array(T),this.z=new Float64Array(T+1),this.v=new Int16Array(T),this.middle=Math.round(T/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function Ee(l,d,c,f,E,A,T){for(var w=0;w<d;w++){for(var D=0;D<c;D++)f[D]=l[D*d+w];for(He(f,E,A,T,c),D=0;D<c;D++)l[D*d+w]=E[D]}for(D=0;D<c;D++){for(w=0;w<d;w++)f[w]=l[D*d+w];for(He(f,E,A,T,d),w=0;w<d;w++)l[D*d+w]=Math.sqrt(E[w])}}function He(l,d,c,f,E){c[0]=0,f[0]=-1e20,f[1]=1e20;for(var A=1,T=0;A<E;A++){for(var w=(l[A]+A*A-(l[c[T]]+c[T]*c[T]))/(2*A-2*c[T]);w<=f[T];)T--,w=(l[A]+A*A-(l[c[T]]+c[T]*c[T]))/(2*A-2*c[T]);c[++T]=A,f[T]=w,f[T+1]=1e20}for(A=0,T=0;A<E;A++){for(;f[T+1]<A;)T++;d[A]=(A-c[T])*(A-c[T])+l[c[T]]}}Oe.prototype.draw=function(l){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(l,this.buffer,this.middle);for(var d=this.ctx.getImageData(0,0,this.size,this.size),c=new Uint8ClampedArray(this.size*this.size),f=0;f<this.size*this.size;f++){var E=d.data[4*f+3]/255;this.gridOuter[f]=E===1?0:E===0?pe:Math.pow(Math.max(0,.5-E),2),this.gridInner[f]=E===1?pe:E===0?0:Math.pow(Math.max(0,E-.5),2)}for(Ee(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),Ee(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),f=0;f<this.size*this.size;f++)c[f]=Math.max(0,Math.min(255,Math.round(255-255*((this.gridOuter[f]-this.gridInner[f])/this.radius+this.cutoff))));return c},te.default=ne;var ft=function(l,d){this.requestManager=l,this.localIdeographFontFamily=d,this.entries={}};ft.prototype.setURL=function(l){this.url=l},ft.prototype.getGlyphs=function(l,d){var c=this,f=[];for(var E in l)for(var A=0,T=l[E];A<T.length;A+=1)f.push({stack:E,id:T[A]});n.asyncAll(f,function(w,D){var z=w.stack,$=w.id,K=c.entries[z];K||(K=c.entries[z]={glyphs:{},requests:{},ranges:{}});var ee=K.glyphs[$];if(ee===void 0){if(ee=c._tinySDF(K,z,$))return K.glyphs[$]=ee,void D(null,{stack:z,id:$,glyph:ee});var _e=Math.floor($/256);if(256*_e>65535)D(new Error("glyphs > 65535 not supported"));else if(K.ranges[_e])D(null,{stack:z,id:$,glyph:ee});else{var de=K.requests[_e];de||(de=K.requests[_e]=[],ft.loadGlyphRange(z,_e,c.url,c.requestManager,function(Te,le){if(le){for(var Fe in le)c._doesCharSupportLocalGlyph(+Fe)||(K.glyphs[+Fe]=le[+Fe]);K.ranges[_e]=!0}for(var De=0,Xe=de;De<Xe.length;De+=1)(0,Xe[De])(Te,le);delete K.requests[_e]})),de.push(function(Te,le){Te?D(Te):le&&D(null,{stack:z,id:$,glyph:le[$]||null})})}}else D(null,{stack:z,id:$,glyph:ee})},function(w,D){if(w)d(w);else if(D){for(var z={},$=0,K=D;$<K.length;$+=1){var ee=K[$],_e=ee.stack,de=ee.id,Te=ee.glyph;(z[_e]||(z[_e]={}))[de]=Te&&{id:Te.id,bitmap:Te.bitmap.clone(),metrics:Te.metrics}}d(null,z)}})},ft.prototype._doesCharSupportLocalGlyph=function(l){return!!this.localIdeographFontFamily&&(n.isChar["CJK Unified Ideographs"](l)||n.isChar["Hangul Syllables"](l)||n.isChar.Hiragana(l)||n.isChar.Katakana(l))},ft.prototype._tinySDF=function(l,d,c){var f=this.localIdeographFontFamily;if(f&&this._doesCharSupportLocalGlyph(c)){var E=l.tinySDF;if(!E){var A="400";/bold/i.test(d)?A="900":/medium/i.test(d)?A="500":/light/i.test(d)&&(A="200"),E=l.tinySDF=new ft.TinySDF(24,3,8,.25,f,A)}return{id:c,bitmap:new n.AlphaImage({width:30,height:30},E.draw(String.fromCharCode(c))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},ft.loadGlyphRange=function(l,d,c,f,E){var A=256*d,T=A+255,w=f.transformRequest(f.normalizeGlyphsURL(c).replace("{fontstack}",l).replace("{range}",A+"-"+T),n.ResourceType.Glyphs);n.getArrayBuffer(w,function(D,z){if(D)E(D);else if(z){for(var $={},K=0,ee=n.parseGlyphPBF(z);K<ee.length;K+=1){var _e=ee[K];$[_e.id]=_e}E(null,$)}})},ft.TinySDF=te;var Ge=function(){this.specification=n.styleSpec.light.position};Ge.prototype.possiblyEvaluate=function(l,d){return n.sphericalToCartesian(l.expression.evaluate(d))},Ge.prototype.interpolate=function(l,d,c){return{x:n.number(l.x,d.x,c),y:n.number(l.y,d.y,c),z:n.number(l.z,d.z,c)}};var Ae=new n.Properties({anchor:new n.DataConstantProperty(n.styleSpec.light.anchor),position:new Ge,color:new n.DataConstantProperty(n.styleSpec.light.color),intensity:new n.DataConstantProperty(n.styleSpec.light.intensity)}),Be=function(l){function d(c){l.call(this),this._transitionable=new n.Transitionable(Ae),this.setLight(c),this._transitioning=this._transitionable.untransitioned()}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getLight=function(){return this._transitionable.serialize()},d.prototype.setLight=function(c,f){if(f===void 0&&(f={}),!this._validate(n.validateLight,c,f))for(var E in c){var A=c[E];n.endsWith(E,"-transition")?this._transitionable.setTransition(E.slice(0,-11),A):this._transitionable.setValue(E,A)}},d.prototype.updateTransitions=function(c){this._transitioning=this._transitionable.transitioned(c,this._transitioning)},d.prototype.hasTransition=function(){return this._transitioning.hasTransition()},d.prototype.recalculate=function(c){this.properties=this._transitioning.possiblyEvaluate(c)},d.prototype._validate=function(c,f,E){return(!E||E.validate!==!1)&&n.emitValidationErrors(this,c.call(n.validateStyle,n.extend({value:f,style:{glyphs:!0,sprite:!0},styleSpec:n.styleSpec})))},d}(n.Evented),ze=function(l,d){this.width=l,this.height=d,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}};ze.prototype.getDash=function(l,d){var c=l.join(",")+String(d);return this.dashEntry[c]||(this.dashEntry[c]=this.addDash(l,d)),this.dashEntry[c]},ze.prototype.getDashRanges=function(l,d,c){var f=[],E=l.length%2==1?-l[l.length-1]*c:0,A=l[0]*c,T=!0;f.push({left:E,right:A,isDash:T,zeroLength:l[0]===0});for(var w=l[0],D=1;D<l.length;D++){var z=l[D];f.push({left:E=w*c,right:A=(w+=z)*c,isDash:T=!T,zeroLength:z===0})}return f},ze.prototype.addRoundDash=function(l,d,c){for(var f=d/2,E=-c;E<=c;E++)for(var A=this.width*(this.nextRow+c+E),T=0,w=l[T],D=0;D<this.width;D++){D/w.right>1&&(w=l[++T]);var z=Math.abs(D-w.left),$=Math.abs(D-w.right),K=Math.min(z,$),ee=void 0,_e=E/c*(f+1);if(w.isDash){var de=f-Math.abs(_e);ee=Math.sqrt(K*K+de*de)}else ee=f-Math.sqrt(K*K+_e*_e);this.data[A+D]=Math.max(0,Math.min(255,ee+128))}},ze.prototype.addRegularDash=function(l){for(var d=l.length-1;d>=0;--d){var c=l[d],f=l[d+1];c.zeroLength?l.splice(d,1):f&&f.isDash===c.isDash&&(f.left=c.left,l.splice(d,1))}var E=l[0],A=l[l.length-1];E.isDash===A.isDash&&(E.left=A.left-this.width,A.right=E.right+this.width);for(var T=this.width*this.nextRow,w=0,D=l[w],z=0;z<this.width;z++){z/D.right>1&&(D=l[++w]);var $=Math.abs(z-D.left),K=Math.abs(z-D.right),ee=Math.min($,K);this.data[T+z]=Math.max(0,Math.min(255,(D.isDash?ee:-ee)+128))}},ze.prototype.addDash=function(l,d){var c=d?7:0,f=2*c+1;if(this.nextRow+f>this.height)return n.warnOnce("LineAtlas out of space"),null;for(var E=0,A=0;A<l.length;A++)E+=l[A];if(E!==0){var T=this.width/E,w=this.getDashRanges(l,this.width,T);d?this.addRoundDash(w,T,c):this.addRegularDash(w)}var D={y:(this.nextRow+c+.5)/this.height,height:2*c/this.height,width:E};return this.nextRow+=f,this.dirty=!0,D},ze.prototype.bind=function(l){var d=l.gl;this.texture?(d.bindTexture(d.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,d.texSubImage2D(d.TEXTURE_2D,0,0,0,this.width,this.height,d.ALPHA,d.UNSIGNED_BYTE,this.data))):(this.texture=d.createTexture(),d.bindTexture(d.TEXTURE_2D,this.texture),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR),d.texImage2D(d.TEXTURE_2D,0,d.ALPHA,this.width,this.height,0,d.ALPHA,d.UNSIGNED_BYTE,this.data))};var st=function l(d,c){this.workerPool=d,this.actors=[],this.currentActor=0,this.id=n.uniqueId();for(var f=this.workerPool.acquire(this.id),E=0;E<f.length;E++){var A=new l.Actor(f[E],c,this.id);A.name="Worker "+E,this.actors.push(A)}};function Vt(l,d,c){var f=function(E,A){if(E)return c(E);if(A){var T=n.pick(n.extend(A,l),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);A.vector_layers&&(T.vectorLayers=A.vector_layers,T.vectorLayerIds=T.vectorLayers.map(function(w){return w.id})),T.tiles=d.canonicalizeTileset(T,l.url),c(null,T)}};return l.url?n.getJSON(d.transformRequest(d.normalizeSourceURL(l.url),n.ResourceType.Source),f):n.browser.frame(function(){return f(null,l)})}st.prototype.broadcast=function(l,d,c){n.asyncAll(this.actors,function(f,E){f.send(l,d,E)},c=c||function(){})},st.prototype.getActor=function(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]},st.prototype.remove=function(){this.actors.forEach(function(l){l.remove()}),this.actors=[],this.workerPool.release(this.id)},st.Actor=n.Actor;var ir=function(l,d,c){this.bounds=n.LngLatBounds.convert(this.validateBounds(l)),this.minzoom=d||0,this.maxzoom=c||24};ir.prototype.validateBounds=function(l){return Array.isArray(l)&&l.length===4?[Math.max(-180,l[0]),Math.max(-90,l[1]),Math.min(180,l[2]),Math.min(90,l[3])]:[-180,-90,180,90]},ir.prototype.contains=function(l){var d=Math.pow(2,l.z),c=Math.floor(n.mercatorXfromLng(this.bounds.getWest())*d),f=Math.floor(n.mercatorYfromLat(this.bounds.getNorth())*d),E=Math.ceil(n.mercatorXfromLng(this.bounds.getEast())*d),A=Math.ceil(n.mercatorYfromLat(this.bounds.getSouth())*d);return l.x>=c&&l.x<E&&l.y>=f&&l.y<A};var Fr=function(l){function d(c,f,E,A){if(l.call(this),this.id=c,this.dispatcher=E,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,n.extend(this,n.pick(f,["url","scheme","tileSize","promoteId"])),this._options=n.extend({type:"vector"},f),this._collectResourceTiming=f.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(A)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){var c=this;this._loaded=!1,this.fire(new n.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=Vt(this._options,this.map._requestManager,function(f,E){c._tileJSONRequest=null,c._loaded=!0,f?c.fire(new n.ErrorEvent(f)):E&&(n.extend(c,E),E.bounds&&(c.tileBounds=new ir(E.bounds,c.minzoom,c.maxzoom)),n.postTurnstileEvent(E.tiles,c.map._requestManager._customAccessToken),n.postMapLoadEvent(E.tiles,c.map._getMapId(),c.map._requestManager._skuToken,c.map._requestManager._customAccessToken),c.fire(new n.Event("data",{dataType:"source",sourceDataType:"metadata"})),c.fire(new n.Event("data",{dataType:"source",sourceDataType:"content"})))})},d.prototype.loaded=function(){return this._loaded},d.prototype.hasTile=function(c){return!this.tileBounds||this.tileBounds.contains(c.canonical)},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.setSourceProperty=function(c){this._tileJSONRequest&&this._tileJSONRequest.cancel(),c(),this.map.style.sourceCaches[this.id].clearTiles(),this.load()},d.prototype.setTiles=function(c){var f=this;return this.setSourceProperty(function(){f._options.tiles=c}),this},d.prototype.setUrl=function(c){var f=this;return this.setSourceProperty(function(){f.url=c,f._options.url=c}),this},d.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},d.prototype.serialize=function(){return n.extend({},this._options)},d.prototype.loadTile=function(c,f){var E=this.map._requestManager.normalizeTileURL(c.tileID.canonical.url(this.tiles,this.scheme)),A={request:this.map._requestManager.transformRequest(E,n.ResourceType.Tile),uid:c.uid,tileID:c.tileID,zoom:c.tileID.overscaledZ,tileSize:this.tileSize*c.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:n.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function T(w,D){return delete c.request,c.aborted?f(null):w&&w.status!==404?f(w):(D&&D.resourceTiming&&(c.resourceTiming=D.resourceTiming),this.map._refreshExpiredTiles&&D&&c.setExpiryData(D),c.loadVectorData(D,this.map.painter),n.cacheEntryPossiblyAdded(this.dispatcher),f(null),void(c.reloadCallback&&(this.loadTile(c,c.reloadCallback),c.reloadCallback=null)))}A.request.collectResourceTiming=this._collectResourceTiming,c.actor&&c.state!=="expired"?c.state==="loading"?c.reloadCallback=f:c.request=c.actor.send("reloadTile",A,T.bind(this)):(c.actor=this.dispatcher.getActor(),c.request=c.actor.send("loadTile",A,T.bind(this)))},d.prototype.abortTile=function(c){c.request&&(c.request.cancel(),delete c.request),c.actor&&c.actor.send("abortTile",{uid:c.uid,type:this.type,source:this.id},void 0)},d.prototype.unloadTile=function(c){c.unloadVectorData(),c.actor&&c.actor.send("removeTile",{uid:c.uid,type:this.type,source:this.id},void 0)},d.prototype.hasTransition=function(){return!1},d}(n.Evented),Yr=function(l){function d(c,f,E,A){l.call(this),this.id=c,this.dispatcher=E,this.setEventedParent(A),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=n.extend({type:"raster"},f),n.extend(this,n.pick(f,["url","scheme","tileSize"]))}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){var c=this;this._loaded=!1,this.fire(new n.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=Vt(this._options,this.map._requestManager,function(f,E){c._tileJSONRequest=null,c._loaded=!0,f?c.fire(new n.ErrorEvent(f)):E&&(n.extend(c,E),E.bounds&&(c.tileBounds=new ir(E.bounds,c.minzoom,c.maxzoom)),n.postTurnstileEvent(E.tiles),n.postMapLoadEvent(E.tiles,c.map._getMapId(),c.map._requestManager._skuToken),c.fire(new n.Event("data",{dataType:"source",sourceDataType:"metadata"})),c.fire(new n.Event("data",{dataType:"source",sourceDataType:"content"})))})},d.prototype.loaded=function(){return this._loaded},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},d.prototype.serialize=function(){return n.extend({},this._options)},d.prototype.hasTile=function(c){return!this.tileBounds||this.tileBounds.contains(c.canonical)},d.prototype.loadTile=function(c,f){var E=this,A=this.map._requestManager.normalizeTileURL(c.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);c.request=n.getImage(this.map._requestManager.transformRequest(A,n.ResourceType.Tile),function(T,w){if(delete c.request,c.aborted)c.state="unloaded",f(null);else if(T)c.state="errored",f(T);else if(w){E.map._refreshExpiredTiles&&c.setExpiryData(w),delete w.cacheControl,delete w.expires;var D=E.map.painter.context,z=D.gl;c.texture=E.map.painter.getTileTexture(w.width),c.texture?c.texture.update(w,{useMipmap:!0}):(c.texture=new n.Texture(D,w,z.RGBA,{useMipmap:!0}),c.texture.bind(z.LINEAR,z.CLAMP_TO_EDGE,z.LINEAR_MIPMAP_NEAREST),D.extTextureFilterAnisotropic&&z.texParameterf(z.TEXTURE_2D,D.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,D.extTextureFilterAnisotropicMax)),c.state="loaded",n.cacheEntryPossiblyAdded(E.dispatcher),f(null)}})},d.prototype.abortTile=function(c,f){c.request&&(c.request.cancel(),delete c.request),f()},d.prototype.unloadTile=function(c,f){c.texture&&this.map.painter.saveTileTexture(c.texture),f()},d.prototype.hasTransition=function(){return!1},d}(n.Evented),mr=function(l){function d(c,f,E,A){l.call(this,c,f,E,A),this.type="raster-dem",this.maxzoom=22,this._options=n.extend({type:"raster-dem"},f),this.encoding=f.encoding||"mapbox"}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.serialize=function(){return{type:"raster-dem",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},d.prototype.loadTile=function(c,f){var E=this.map._requestManager.normalizeTileURL(c.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);function A(T,w){T&&(c.state="errored",f(T)),w&&(c.dem=w,c.needsHillshadePrepare=!0,c.state="loaded",f(null))}c.request=n.getImage(this.map._requestManager.transformRequest(E,n.ResourceType.Tile),(function(T,w){if(delete c.request,c.aborted)c.state="unloaded",f(null);else if(T)c.state="errored",f(T);else if(w){this.map._refreshExpiredTiles&&c.setExpiryData(w),delete w.cacheControl,delete w.expires;var D=n.window.ImageBitmap&&w instanceof n.window.ImageBitmap&&n.offscreenCanvasSupported()?w:n.browser.getImageData(w,1),z={uid:c.uid,coord:c.tileID,source:this.id,rawImageData:D,encoding:this.encoding};c.actor&&c.state!=="expired"||(c.actor=this.dispatcher.getActor(),c.actor.send("loadDEMTile",z,A.bind(this)))}}).bind(this)),c.neighboringTiles=this._getNeighboringTiles(c.tileID)},d.prototype._getNeighboringTiles=function(c){var f=c.canonical,E=Math.pow(2,f.z),A=(f.x-1+E)%E,T=f.x===0?c.wrap-1:c.wrap,w=(f.x+1+E)%E,D=f.x+1===E?c.wrap+1:c.wrap,z={};return z[new n.OverscaledTileID(c.overscaledZ,T,f.z,A,f.y).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,D,f.z,w,f.y).key]={backfilled:!1},f.y>0&&(z[new n.OverscaledTileID(c.overscaledZ,T,f.z,A,f.y-1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,c.wrap,f.z,f.x,f.y-1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,D,f.z,w,f.y-1).key]={backfilled:!1}),f.y+1<E&&(z[new n.OverscaledTileID(c.overscaledZ,T,f.z,A,f.y+1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,c.wrap,f.z,f.x,f.y+1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,D,f.z,w,f.y+1).key]={backfilled:!1}),z},d.prototype.unloadTile=function(c){c.demTexture&&this.map.painter.saveTileTexture(c.demTexture),c.fbo&&(c.fbo.destroy(),delete c.fbo),c.dem&&delete c.dem,delete c.neighboringTiles,c.state="unloaded",c.actor&&c.actor.send("removeDEMTile",{uid:c.uid,source:this.id})},d}(Yr),Er=function(l){function d(c,f,E,A){l.call(this),this.id=c,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._loaded=!1,this.actor=E.getActor(),this.setEventedParent(A),this._data=f.data,this._options=n.extend({},f),this._collectResourceTiming=f.collectResourceTiming,this._resourceTiming=[],f.maxzoom!==void 0&&(this.maxzoom=f.maxzoom),f.type&&(this.type=f.type),f.attribution&&(this.attribution=f.attribution),this.promoteId=f.promoteId;var T=n.EXTENT/this.tileSize;this.workerOptions=n.extend({source:this.id,cluster:f.cluster||!1,geojsonVtOptions:{buffer:(f.buffer!==void 0?f.buffer:128)*T,tolerance:(f.tolerance!==void 0?f.tolerance:.375)*T,extent:n.EXTENT,maxZoom:this.maxzoom,lineMetrics:f.lineMetrics||!1,generateId:f.generateId||!1},superclusterOptions:{maxZoom:f.clusterMaxZoom!==void 0?Math.min(f.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,minPoints:Math.max(2,f.clusterMinPoints||2),extent:n.EXTENT,radius:(f.clusterRadius||50)*T,log:!1,generateId:f.generateId||!1},clusterProperties:f.clusterProperties,filter:f.filter},f.workerOptions)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){var c=this;this.fire(new n.Event("dataloading",{dataType:"source"})),this._updateWorkerData(function(f){if(f)c.fire(new n.ErrorEvent(f));else{var E={dataType:"source",sourceDataType:"metadata"};c._collectResourceTiming&&c._resourceTiming&&c._resourceTiming.length>0&&(E.resourceTiming=c._resourceTiming,c._resourceTiming=[]),c.fire(new n.Event("data",E))}})},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.setData=function(c){var f=this;return this._data=c,this.fire(new n.Event("dataloading",{dataType:"source"})),this._updateWorkerData(function(E){if(E)f.fire(new n.ErrorEvent(E));else{var A={dataType:"source",sourceDataType:"content"};f._collectResourceTiming&&f._resourceTiming&&f._resourceTiming.length>0&&(A.resourceTiming=f._resourceTiming,f._resourceTiming=[]),f.fire(new n.Event("data",A))}}),this},d.prototype.getClusterExpansionZoom=function(c,f){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:c,source:this.id},f),this},d.prototype.getClusterChildren=function(c,f){return this.actor.send("geojson.getClusterChildren",{clusterId:c,source:this.id},f),this},d.prototype.getClusterLeaves=function(c,f,E,A){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:c,limit:f,offset:E},A),this},d.prototype._updateWorkerData=function(c){var f=this;this._loaded=!1;var E=n.extend({},this.workerOptions),A=this._data;typeof A=="string"?(E.request=this.map._requestManager.transformRequest(n.browser.resolveURL(A),n.ResourceType.Source),E.request.collectResourceTiming=this._collectResourceTiming):E.data=JSON.stringify(A),this.actor.send(this.type+".loadData",E,function(T,w){f._removed||w&&w.abandoned||(f._loaded=!0,w&&w.resourceTiming&&w.resourceTiming[f.id]&&(f._resourceTiming=w.resourceTiming[f.id].slice(0)),f.actor.send(f.type+".coalesce",{source:E.source},null),c(T))})},d.prototype.loaded=function(){return this._loaded},d.prototype.loadTile=function(c,f){var E=this,A=c.actor?"reloadTile":"loadTile";c.actor=this.actor,c.request=this.actor.send(A,{type:this.type,uid:c.uid,tileID:c.tileID,zoom:c.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:n.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},function(T,w){return delete c.request,c.unloadVectorData(),c.aborted?f(null):T?f(T):(c.loadVectorData(w,E.map.painter,A==="reloadTile"),f(null))})},d.prototype.abortTile=function(c){c.request&&(c.request.cancel(),delete c.request),c.aborted=!0},d.prototype.unloadTile=function(c){c.unloadVectorData(),this.actor.send("removeTile",{uid:c.uid,type:this.type,source:this.id})},d.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},d.prototype.serialize=function(){return n.extend({},this._options,{type:this.type,data:this._data})},d.prototype.hasTransition=function(){return!1},d}(n.Evented),qr=n.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),Jr=function(l){function d(c,f,E,A){l.call(this),this.id=c,this.dispatcher=E,this.coordinates=f.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(A),this.options=f}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(c,f){var E=this;this._loaded=!1,this.fire(new n.Event("dataloading",{dataType:"source"})),this.url=this.options.url,n.getImage(this.map._requestManager.transformRequest(this.url,n.ResourceType.Image),function(A,T){E._loaded=!0,A?E.fire(new n.ErrorEvent(A)):T&&(E.image=T,c&&(E.coordinates=c),f&&f(),E._finishLoading())})},d.prototype.loaded=function(){return this._loaded},d.prototype.updateImage=function(c){var f=this;return this.image&&c.url?(this.options.url=c.url,this.load(c.coordinates,function(){f.texture=null}),this):this},d.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new n.Event("data",{dataType:"source",sourceDataType:"metadata"})))},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.setCoordinates=function(c){var f=this;this.coordinates=c;var E=c.map(n.MercatorCoordinate.fromLngLat);this.tileID=function(T){for(var w=1/0,D=1/0,z=-1/0,$=-1/0,K=0,ee=T;K<ee.length;K+=1){var _e=ee[K];w=Math.min(w,_e.x),D=Math.min(D,_e.y),z=Math.max(z,_e.x),$=Math.max($,_e.y)}var de=Math.max(z-w,$-D),Te=Math.max(0,Math.floor(-Math.log(de)/Math.LN2)),le=Math.pow(2,Te);return new n.CanonicalTileID(Te,Math.floor((w+z)/2*le),Math.floor((D+$)/2*le))}(E),this.minzoom=this.maxzoom=this.tileID.z;var A=E.map(function(T){return f.tileID.getTilePoint(T)._round()});return this._boundsArray=new n.StructArrayLayout4i8,this._boundsArray.emplaceBack(A[0].x,A[0].y,0,0),this._boundsArray.emplaceBack(A[1].x,A[1].y,n.EXTENT,0),this._boundsArray.emplaceBack(A[3].x,A[3].y,0,n.EXTENT),this._boundsArray.emplaceBack(A[2].x,A[2].y,n.EXTENT,n.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new n.Event("data",{dataType:"source",sourceDataType:"content"})),this},d.prototype.prepare=function(){if(Object.keys(this.tiles).length!==0&&this.image){var c=this.map.painter.context,f=c.gl;for(var E in this.boundsBuffer||(this.boundsBuffer=c.createVertexBuffer(this._boundsArray,qr.members)),this.boundsSegments||(this.boundsSegments=n.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new n.Texture(c,this.image,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE)),this.tiles){var A=this.tiles[E];A.state!=="loaded"&&(A.state="loaded",A.texture=this.texture)}}},d.prototype.loadTile=function(c,f){this.tileID&&this.tileID.equals(c.tileID.canonical)?(this.tiles[String(c.tileID.wrap)]=c,c.buckets={},f(null)):(c.state="errored",f(null))},d.prototype.serialize=function(){return{type:"image",url:this.options.url,coordinates:this.coordinates}},d.prototype.hasTransition=function(){return!1},d}(n.Evented),_o=function(l){function d(c,f,E,A){l.call(this,c,f,E,A),this.roundZoom=!0,this.type="video",this.options=f}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){var c=this;this._loaded=!1;var f=this.options;this.urls=[];for(var E=0,A=f.urls;E<A.length;E+=1)this.urls.push(this.map._requestManager.transformRequest(A[E],n.ResourceType.Source).url);n.getVideo(this.urls,function(T,w){c._loaded=!0,T?c.fire(new n.ErrorEvent(T)):w&&(c.video=w,c.video.loop=!0,c.video.setAttribute("playsinline",""),c.video.addEventListener("playing",function(){c.map.triggerRepaint()}),c.map&&c.video.play(),c._finishLoading())})},d.prototype.pause=function(){this.video&&this.video.pause()},d.prototype.play=function(){this.video&&this.video.play()},d.prototype.seek=function(c){if(this.video){var f=this.video.seekable;c<f.start(0)||c>f.end(0)?this.fire(new n.ErrorEvent(new n.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+f.start(0)+" and "+f.end(0)+"-second mark."))):this.video.currentTime=c}},d.prototype.getVideo=function(){return this.video},d.prototype.onAdd=function(c){this.map||(this.map=c,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},d.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||this.video.readyState<2)){var c=this.map.painter.context,f=c.gl;for(var E in this.boundsBuffer||(this.boundsBuffer=c.createVertexBuffer(this._boundsArray,qr.members)),this.boundsSegments||(this.boundsSegments=n.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE),f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,this.video)):(this.texture=new n.Texture(c,this.video,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE)),this.tiles){var A=this.tiles[E];A.state!=="loaded"&&(A.state="loaded",A.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this.video&&!this.video.paused},d}(Jr),So=function(l){function d(c,f,E,A){l.call(this,c,f,E,A),f.coordinates?Array.isArray(f.coordinates)&&f.coordinates.length===4&&!f.coordinates.some(function(T){return!Array.isArray(T)||T.length!==2||T.some(function(w){return typeof w!="number"})})||this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'missing required property "coordinates"'))),f.animate&&typeof f.animate!="boolean"&&this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'optional "animate" property must be a boolean value'))),f.canvas?typeof f.canvas=="string"||f.canvas instanceof n.window.HTMLCanvasElement||this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'missing required property "canvas"'))),this.options=f,this.animate=f.animate===void 0||f.animate}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof n.window.HTMLCanvasElement?this.options.canvas:n.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new n.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},d.prototype.getCanvas=function(){return this.canvas},d.prototype.onAdd=function(c){this.map=c,this.load(),this.canvas&&this.animate&&this.play()},d.prototype.onRemove=function(){this.pause()},d.prototype.prepare=function(){var c=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,c=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,c=!0),!this._hasInvalidDimensions()&&Object.keys(this.tiles).length!==0){var f=this.map.painter.context,E=f.gl;for(var A in this.boundsBuffer||(this.boundsBuffer=f.createVertexBuffer(this._boundsArray,qr.members)),this.boundsSegments||(this.boundsSegments=n.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(c||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new n.Texture(f,this.canvas,E.RGBA,{premultiply:!0}),this.tiles){var T=this.tiles[A];T.state!=="loaded"&&(T.state="loaded",T.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this._playing},d.prototype._hasInvalidDimensions=function(){for(var c=0,f=[this.canvas.width,this.canvas.height];c<f.length;c+=1){var E=f[c];if(isNaN(E)||E<=0)return!0}return!1},d}(Jr),oo={vector:Fr,raster:Yr,"raster-dem":mr,geojson:Er,video:_o,image:Jr,canvas:So};function Wi(l,d){var c=n.identity([]);return n.translate(c,c,[1,1,0]),n.scale(c,c,[.5*l.width,.5*l.height,1]),n.multiply(c,c,l.calculatePosMatrix(d.toUnwrapped()))}function bo(l,d,c,f,E,A){var T=function(Te,le,Fe){if(Te)for(var De=0,Xe=Te;De<Xe.length;De+=1){var at=le[Xe[De]];if(at&&at.source===Fe&&at.type==="fill-extrusion")return!0}else for(var Je in le){var ct=le[Je];if(ct.source===Fe&&ct.type==="fill-extrusion")return!0}return!1}(E&&E.layers,d,l.id),w=A.maxPitchScaleFactor(),D=l.tilesIn(f,w,T);D.sort(Ni);for(var z=[],$=0,K=D;$<K.length;$+=1){var ee=K[$];z.push({wrappedTileID:ee.tileID.wrapped().key,queryResults:ee.tile.queryRenderedFeatures(d,c,l._state,ee.queryGeometry,ee.cameraQueryGeometry,ee.scale,E,A,w,Wi(l.transform,ee.tileID))})}var _e=function(Te){for(var le={},Fe={},De=0,Xe=Te;De<Xe.length;De+=1){var at=Xe[De],Je=at.queryResults,ct=at.wrappedTileID,Pt=Fe[ct]=Fe[ct]||{};for(var Ht in Je)for(var Bt=Je[Ht],nr=Pt[Ht]=Pt[Ht]||{},Cr=le[Ht]=le[Ht]||[],Dr=0,Nr=Bt;Dr<Nr.length;Dr+=1){var Lo=Nr[Dr];nr[Lo.featureIndex]||(nr[Lo.featureIndex]=!0,Cr.push(Lo))}}return le}(z);for(var de in _e)_e[de].forEach(function(Te){var le=Te.feature,Fe=l.getFeatureState(le.layer["source-layer"],le.id);le.source=le.layer.source,le.layer["source-layer"]&&(le.sourceLayer=le.layer["source-layer"]),le.state=Fe});return _e}function Ni(l,d){var c=l.tileID,f=d.tileID;return c.overscaledZ-f.overscaledZ||c.canonical.y-f.canonical.y||c.wrap-f.wrap||c.canonical.x-f.canonical.x}var $e=function(l,d){this.max=l,this.onRemove=d,this.reset()};$e.prototype.reset=function(){for(var l in this.data)for(var d=0,c=this.data[l];d<c.length;d+=1){var f=c[d];f.timeout&&clearTimeout(f.timeout),this.onRemove(f.value)}return this.data={},this.order=[],this},$e.prototype.add=function(l,d,c){var f=this,E=l.wrapped().key;this.data[E]===void 0&&(this.data[E]=[]);var A={value:d,timeout:void 0};if(c!==void 0&&(A.timeout=setTimeout(function(){f.remove(l,A)},c)),this.data[E].push(A),this.order.push(E),this.order.length>this.max){var T=this._getAndRemoveByKey(this.order[0]);T&&this.onRemove(T)}return this},$e.prototype.has=function(l){return l.wrapped().key in this.data},$e.prototype.getAndRemove=function(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null},$e.prototype._getAndRemoveByKey=function(l){var d=this.data[l].shift();return d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),d.value},$e.prototype.getByKey=function(l){var d=this.data[l];return d?d[0].value:null},$e.prototype.get=function(l){return this.has(l)?this.data[l.wrapped().key][0].value:null},$e.prototype.remove=function(l,d){if(!this.has(l))return this;var c=l.wrapped().key,f=d===void 0?0:this.data[c].indexOf(d),E=this.data[c][f];return this.data[c].splice(f,1),E.timeout&&clearTimeout(E.timeout),this.data[c].length===0&&delete this.data[c],this.onRemove(E.value),this.order.splice(this.order.indexOf(c),1),this},$e.prototype.setMaxSize=function(l){for(this.max=l;this.order.length>this.max;){var d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this},$e.prototype.filter=function(l){var d=[];for(var c in this.data)for(var f=0,E=this.data[c];f<E.length;f+=1){var A=E[f];l(A.value)||d.push(A)}for(var T=0,w=d;T<w.length;T+=1){var D=w[T];this.remove(D.value.tileID,D)}};var Yt=function(l,d,c){this.context=l;var f=l.gl;this.buffer=f.createBuffer(),this.dynamicDraw=!!c,this.context.unbindVAO(),l.bindElementBuffer.set(this.buffer),f.bufferData(f.ELEMENT_ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?f.DYNAMIC_DRAW:f.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer};Yt.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},Yt.prototype.updateData=function(l){var d=this.context.gl;this.context.unbindVAO(),this.bind(),d.bufferSubData(d.ELEMENT_ARRAY_BUFFER,0,l.arrayBuffer)},Yt.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)};var Sr={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"},Ft=function(l,d,c,f){this.length=d.length,this.attributes=c,this.itemSize=d.bytesPerElement,this.dynamicDraw=f,this.context=l;var E=l.gl;this.buffer=E.createBuffer(),l.bindVertexBuffer.set(this.buffer),E.bufferData(E.ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?E.DYNAMIC_DRAW:E.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer};Ft.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},Ft.prototype.updateData=function(l){var d=this.context.gl;this.bind(),d.bufferSubData(d.ARRAY_BUFFER,0,l.arrayBuffer)},Ft.prototype.enableAttributes=function(l,d){for(var c=0;c<this.attributes.length;c++){var f=d.attributes[this.attributes[c].name];f!==void 0&&l.enableVertexAttribArray(f)}},Ft.prototype.setVertexAttribPointers=function(l,d,c){for(var f=0;f<this.attributes.length;f++){var E=this.attributes[f],A=d.attributes[E.name];A!==void 0&&l.vertexAttribPointer(A,E.components,l[Sr[E.type]],!1,this.itemSize,E.offset+this.itemSize*(c||0))}},Ft.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)};var xr=function(l){this.gl=l.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1};xr.prototype.get=function(){return this.current},xr.prototype.set=function(l){},xr.prototype.getDefault=function(){return this.default},xr.prototype.setDefault=function(){this.set(this.default)};var io=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return n.Color.transparent},d.prototype.set=function(c){var f=this.current;(c.r!==f.r||c.g!==f.g||c.b!==f.b||c.a!==f.a||this.dirty)&&(this.gl.clearColor(c.r,c.g,c.b,c.a),this.current=c,this.dirty=!1)},d}(xr),go=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return 1},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.clearDepth(c),this.current=c,this.dirty=!1)},d}(xr),to=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return 0},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.clearStencil(c),this.current=c,this.dirty=!1)},d}(xr),Kr=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return[!0,!0,!0,!0]},d.prototype.set=function(c){var f=this.current;(c[0]!==f[0]||c[1]!==f[1]||c[2]!==f[2]||c[3]!==f[3]||this.dirty)&&(this.gl.colorMask(c[0],c[1],c[2],c[3]),this.current=c,this.dirty=!1)},d}(xr),Ao=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!0},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.depthMask(c),this.current=c,this.dirty=!1)},d}(xr),$i=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return 255},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.stencilMask(c),this.current=c,this.dirty=!1)},d}(xr),Qo=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return{func:this.gl.ALWAYS,ref:0,mask:255}},d.prototype.set=function(c){var f=this.current;(c.func!==f.func||c.ref!==f.ref||c.mask!==f.mask||this.dirty)&&(this.gl.stencilFunc(c.func,c.ref,c.mask),this.current=c,this.dirty=!1)},d}(xr),ti=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){var c=this.gl;return[c.KEEP,c.KEEP,c.KEEP]},d.prototype.set=function(c){var f=this.current;(c[0]!==f[0]||c[1]!==f[1]||c[2]!==f[2]||this.dirty)&&(this.gl.stencilOp(c[0],c[1],c[2]),this.current=c,this.dirty=!1)},d}(xr),Pn=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;c?f.enable(f.STENCIL_TEST):f.disable(f.STENCIL_TEST),this.current=c,this.dirty=!1}},d}(xr),se=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return[0,1]},d.prototype.set=function(c){var f=this.current;(c[0]!==f[0]||c[1]!==f[1]||this.dirty)&&(this.gl.depthRange(c[0],c[1]),this.current=c,this.dirty=!1)},d}(xr),bn=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;c?f.enable(f.DEPTH_TEST):f.disable(f.DEPTH_TEST),this.current=c,this.dirty=!1}},d}(xr),ja=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.LESS},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.depthFunc(c),this.current=c,this.dirty=!1)},d}(xr),An=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;c?f.enable(f.BLEND):f.disable(f.BLEND),this.current=c,this.dirty=!1}},d}(xr),ss=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){var c=this.gl;return[c.ONE,c.ZERO]},d.prototype.set=function(c){var f=this.current;(c[0]!==f[0]||c[1]!==f[1]||this.dirty)&&(this.gl.blendFunc(c[0],c[1]),this.current=c,this.dirty=!1)},d}(xr),si=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return n.Color.transparent},d.prototype.set=function(c){var f=this.current;(c.r!==f.r||c.g!==f.g||c.b!==f.b||c.a!==f.a||this.dirty)&&(this.gl.blendColor(c.r,c.g,c.b,c.a),this.current=c,this.dirty=!1)},d}(xr),Fn=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.FUNC_ADD},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.blendEquation(c),this.current=c,this.dirty=!1)},d}(xr),pa=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;c?f.enable(f.CULL_FACE):f.disable(f.CULL_FACE),this.current=c,this.dirty=!1}},d}(xr),Tn=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.BACK},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.cullFace(c),this.current=c,this.dirty=!1)},d}(xr),vs=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.CCW},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.frontFace(c),this.current=c,this.dirty=!1)},d}(xr),zi=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.useProgram(c),this.current=c,this.dirty=!1)},d}(xr),us=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.TEXTURE0},d.prototype.set=function(c){(c!==this.current||this.dirty)&&(this.gl.activeTexture(c),this.current=c,this.dirty=!1)},d}(xr),xa=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){var c=this.gl;return[0,0,c.drawingBufferWidth,c.drawingBufferHeight]},d.prototype.set=function(c){var f=this.current;(c[0]!==f[0]||c[1]!==f[1]||c[2]!==f[2]||c[3]!==f[3]||this.dirty)&&(this.gl.viewport(c[0],c[1],c[2],c[3]),this.current=c,this.dirty=!1)},d}(xr),Hs=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.bindFramebuffer(f.FRAMEBUFFER,c),this.current=c,this.dirty=!1}},d}(xr),Zu=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.bindRenderbuffer(f.RENDERBUFFER,c),this.current=c,this.dirty=!1}},d}(xr),Gs=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.bindTexture(f.TEXTURE_2D,c),this.current=c,this.dirty=!1}},d}(xr),vp=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.bindBuffer(f.ARRAY_BUFFER,c),this.current=c,this.dirty=!1}},d}(xr),js=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){var f=this.gl;f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c),this.current=c,this.dirty=!1},d}(xr),Ma=function(l){function d(c){l.call(this,c),this.vao=c.extVertexArrayObject}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(c){this.vao&&(c!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(c),this.current=c,this.dirty=!1)},d}(xr),Na=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return 4},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.pixelStorei(f.UNPACK_ALIGNMENT,c),this.current=c,this.dirty=!1}},d}(xr),Es=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.pixelStorei(f.UNPACK_PREMULTIPLY_ALPHA_WEBGL,c),this.current=c,this.dirty=!1}},d}(xr),Yu=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(c){if(c!==this.current||this.dirty){var f=this.gl;f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,c),this.current=c,this.dirty=!1}},d}(xr),Go=function(l){function d(c,f){l.call(this,c),this.context=c,this.parent=f}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d}(xr),k=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.setDirty=function(){this.dirty=!0},d.prototype.set=function(c){if(c!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var f=this.gl;f.framebufferTexture2D(f.FRAMEBUFFER,f.COLOR_ATTACHMENT0,f.TEXTURE_2D,c,0),this.current=c,this.dirty=!1}},d}(Go),G=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.set=function(c){if(c!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var f=this.gl;f.framebufferRenderbuffer(f.FRAMEBUFFER,f.DEPTH_ATTACHMENT,f.RENDERBUFFER,c),this.current=c,this.dirty=!1}},d}(Go),W=function(l,d,c,f){this.context=l,this.width=d,this.height=c;var E=this.framebuffer=l.gl.createFramebuffer();this.colorAttachment=new k(l,E),f&&(this.depthAttachment=new G(l,E))};W.prototype.destroy=function(){var l=this.context.gl,d=this.colorAttachment.get();if(d&&l.deleteTexture(d),this.depthAttachment){var c=this.depthAttachment.get();c&&l.deleteRenderbuffer(c)}l.deleteFramebuffer(this.framebuffer)};var oe=function(l,d,c){this.func=l,this.mask=d,this.range=c};oe.ReadOnly=!1,oe.ReadWrite=!0,oe.disabled=new oe(519,oe.ReadOnly,[0,1]);var ye=function(l,d,c,f,E,A){this.test=l,this.ref=d,this.mask=c,this.fail=f,this.depthFail=E,this.pass=A};ye.disabled=new ye({func:519,mask:0},0,0,7680,7680,7680);var Ie=function(l,d,c){this.blendFunction=l,this.blendColor=d,this.mask=c};Ie.disabled=new Ie(Ie.Replace=[1,0],n.Color.transparent,[!1,!1,!1,!1]),Ie.unblended=new Ie(Ie.Replace,n.Color.transparent,[!0,!0,!0,!0]),Ie.alphaBlended=new Ie([1,771],n.Color.transparent,[!0,!0,!0,!0]);var Le=function(l,d,c){this.enable=l,this.mode=d,this.frontFace=c};Le.disabled=new Le(!1,1029,2305),Le.backCCW=new Le(!0,1029,2305);var q=function(l){this.gl=l,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),this.clearColor=new io(this),this.clearDepth=new go(this),this.clearStencil=new to(this),this.colorMask=new Kr(this),this.depthMask=new Ao(this),this.stencilMask=new $i(this),this.stencilFunc=new Qo(this),this.stencilOp=new ti(this),this.stencilTest=new Pn(this),this.depthRange=new se(this),this.depthTest=new bn(this),this.depthFunc=new ja(this),this.blend=new An(this),this.blendFunc=new ss(this),this.blendColor=new si(this),this.blendEquation=new Fn(this),this.cullFace=new pa(this),this.cullFaceSide=new Tn(this),this.frontFace=new vs(this),this.program=new zi(this),this.activeTexture=new us(this),this.viewport=new xa(this),this.bindFramebuffer=new Hs(this),this.bindRenderbuffer=new Zu(this),this.bindTexture=new Gs(this),this.bindVertexBuffer=new vp(this),this.bindElementBuffer=new js(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new Ma(this),this.pixelStoreUnpack=new Na(this),this.pixelStoreUnpackPremultiplyAlpha=new Es(this),this.pixelStoreUnpackFlipY=new Yu(this),this.extTextureFilterAnisotropic=l.getExtension("EXT_texture_filter_anisotropic")||l.getExtension("MOZ_EXT_texture_filter_anisotropic")||l.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=l.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=l.getExtension("OES_texture_half_float"),this.extTextureHalfFloat&&(l.getExtension("OES_texture_half_float_linear"),this.extRenderToTextureHalfFloat=l.getExtension("EXT_color_buffer_half_float")),this.extTimerQuery=l.getExtension("EXT_disjoint_timer_query"),this.maxTextureSize=l.getParameter(l.MAX_TEXTURE_SIZE)};q.prototype.setDefault=function(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()},q.prototype.setDirty=function(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0},q.prototype.createIndexBuffer=function(l,d){return new Yt(this,l,d)},q.prototype.createVertexBuffer=function(l,d,c){return new Ft(this,l,d,c)},q.prototype.createRenderbuffer=function(l,d,c){var f=this.gl,E=f.createRenderbuffer();return this.bindRenderbuffer.set(E),f.renderbufferStorage(f.RENDERBUFFER,l,d,c),this.bindRenderbuffer.set(null),E},q.prototype.createFramebuffer=function(l,d,c){return new W(this,l,d,c)},q.prototype.clear=function(l){var d=l.color,c=l.depth,f=this.gl,E=0;d&&(E|=f.COLOR_BUFFER_BIT,this.clearColor.set(d),this.colorMask.set([!0,!0,!0,!0])),c!==void 0&&(E|=f.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(c),this.depthMask.set(!0)),f.clear(E)},q.prototype.setCullFace=function(l){l.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(l.mode),this.frontFace.set(l.frontFace))},q.prototype.setDepthMode=function(l){l.func!==this.gl.ALWAYS||l.mask?(this.depthTest.set(!0),this.depthFunc.set(l.func),this.depthMask.set(l.mask),this.depthRange.set(l.range)):this.depthTest.set(!1)},q.prototype.setStencilMode=function(l){l.test.func!==this.gl.ALWAYS||l.mask?(this.stencilTest.set(!0),this.stencilMask.set(l.mask),this.stencilOp.set([l.fail,l.depthFail,l.pass]),this.stencilFunc.set({func:l.test.func,ref:l.ref,mask:l.test.mask})):this.stencilTest.set(!1)},q.prototype.setColorMode=function(l){n.deepEqual(l.blendFunction,Ie.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(l.blendFunction),this.blendColor.set(l.blendColor)),this.colorMask.set(l.mask)},q.prototype.unbindVAO=function(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)};var ge=function(l){function d(c,f,E){var A=this;l.call(this),this.id=c,this.dispatcher=E,this.on("data",function(T){T.dataType==="source"&&T.sourceDataType==="metadata"&&(A._sourceLoaded=!0),A._sourceLoaded&&!A._paused&&T.dataType==="source"&&T.sourceDataType==="content"&&(A.reload(),A.transform&&A.update(A.transform))}),this.on("error",function(){A._sourceErrored=!0}),this._source=function(T,w,D,z){var $=new oo[w.type](T,w,D,z);if($.id!==T)throw new Error("Expected Source id to be "+T+" instead of "+$.id);return n.bindAll(["load","abort","unload","serialize","prepare"],$),$}(c,f,E,this),this._tiles={},this._cache=new $e(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new n.SourceFeatureState}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.onAdd=function(c){this.map=c,this._maxTileCacheSize=c?c._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(c)},d.prototype.onRemove=function(c){this._source&&this._source.onRemove&&this._source.onRemove(c)},d.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(var c in this._tiles){var f=this._tiles[c];if(f.state!=="loaded"&&f.state!=="errored")return!1}return!0},d.prototype.getSource=function(){return this._source},d.prototype.pause=function(){this._paused=!0},d.prototype.resume=function(){if(this._paused){var c=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,c&&this.reload(),this.transform&&this.update(this.transform)}},d.prototype._loadTile=function(c,f){return this._source.loadTile(c,f)},d.prototype._unloadTile=function(c){if(this._source.unloadTile)return this._source.unloadTile(c,function(){})},d.prototype._abortTile=function(c){if(this._source.abortTile)return this._source.abortTile(c,function(){})},d.prototype.serialize=function(){return this._source.serialize()},d.prototype.prepare=function(c){for(var f in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){var E=this._tiles[f];E.upload(c),E.prepare(this.map.style.imageManager)}},d.prototype.getIds=function(){return n.values(this._tiles).map(function(c){return c.tileID}).sort(We).map(function(c){return c.key})},d.prototype.getRenderableIds=function(c){var f=this,E=[];for(var A in this._tiles)this._isIdRenderable(A,c)&&E.push(this._tiles[A]);return c?E.sort(function(T,w){var D=T.tileID,z=w.tileID,$=new n.Point(D.canonical.x,D.canonical.y)._rotate(f.transform.angle),K=new n.Point(z.canonical.x,z.canonical.y)._rotate(f.transform.angle);return D.overscaledZ-z.overscaledZ||K.y-$.y||K.x-$.x}).map(function(T){return T.tileID.key}):E.map(function(T){return T.tileID}).sort(We).map(function(T){return T.key})},d.prototype.hasRenderableParent=function(c){var f=this.findLoadedParent(c,0);return!!f&&this._isIdRenderable(f.tileID.key)},d.prototype._isIdRenderable=function(c,f){return this._tiles[c]&&this._tiles[c].hasData()&&!this._coveredTiles[c]&&(f||!this._tiles[c].holdingForFade())},d.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var c in this._cache.reset(),this._tiles)this._tiles[c].state!=="errored"&&this._reloadTile(c,"reloading")},d.prototype._reloadTile=function(c,f){var E=this._tiles[c];E&&(E.state!=="loading"&&(E.state=f),this._loadTile(E,this._tileLoaded.bind(this,E,c,f)))},d.prototype._tileLoaded=function(c,f,E,A){if(A)return c.state="errored",void(A.status!==404?this._source.fire(new n.ErrorEvent(A,{tile:c})):this.update(this.transform));c.timeAdded=n.browser.now(),E==="expired"&&(c.refreshedUponExpiration=!0),this._setTileReloadTimer(f,c),this.getSource().type==="raster-dem"&&c.dem&&this._backfillDEM(c),this._state.initializeTileState(c,this.map?this.map.painter:null),this._source.fire(new n.Event("data",{dataType:"source",tile:c,coord:c.tileID}))},d.prototype._backfillDEM=function(c){for(var f=this.getRenderableIds(),E=0;E<f.length;E++){var A=f[E];if(c.neighboringTiles&&c.neighboringTiles[A]){var T=this.getTileByID(A);w(c,T),w(T,c)}}function w(D,z){D.needsHillshadePrepare=!0;var $=z.tileID.canonical.x-D.tileID.canonical.x,K=z.tileID.canonical.y-D.tileID.canonical.y,ee=Math.pow(2,D.tileID.canonical.z),_e=z.tileID.key;$===0&&K===0||Math.abs(K)>1||(Math.abs($)>1&&(Math.abs($+ee)===1?$+=ee:Math.abs($-ee)===1&&($-=ee)),z.dem&&D.dem&&(D.dem.backfillBorder(z.dem,$,K),D.neighboringTiles&&D.neighboringTiles[_e]&&(D.neighboringTiles[_e].backfilled=!0)))}},d.prototype.getTile=function(c){return this.getTileByID(c.key)},d.prototype.getTileByID=function(c){return this._tiles[c]},d.prototype._retainLoadedChildren=function(c,f,E,A){for(var T in this._tiles){var w=this._tiles[T];if(!(A[T]||!w.hasData()||w.tileID.overscaledZ<=f||w.tileID.overscaledZ>E)){for(var D=w.tileID;w&&w.tileID.overscaledZ>f+1;){var z=w.tileID.scaledTo(w.tileID.overscaledZ-1);(w=this._tiles[z.key])&&w.hasData()&&(D=z)}for(var $=D;$.overscaledZ>f;)if(c[($=$.scaledTo($.overscaledZ-1)).key]){A[D.key]=D;break}}}},d.prototype.findLoadedParent=function(c,f){if(c.key in this._loadedParentTiles){var E=this._loadedParentTiles[c.key];return E&&E.tileID.overscaledZ>=f?E:null}for(var A=c.overscaledZ-1;A>=f;A--){var T=c.scaledTo(A),w=this._getLoadedTile(T);if(w)return w}},d.prototype._getLoadedTile=function(c){var f=this._tiles[c.key];return f&&f.hasData()?f:this._cache.getByKey(c.wrapped().key)},d.prototype.updateCacheSize=function(c){var f=Math.ceil(c.width/this._source.tileSize)+1,E=Math.ceil(c.height/this._source.tileSize)+1,A=Math.floor(f*E*5),T=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,A):A;this._cache.setMaxSize(T)},d.prototype.handleWrapJump=function(c){var f=Math.round((c-(this._prevLng===void 0?c:this._prevLng))/360);if(this._prevLng=c,f){var E={};for(var A in this._tiles){var T=this._tiles[A];T.tileID=T.tileID.unwrapTo(T.tileID.wrap+f),E[T.tileID.key]=T}for(var w in this._tiles=E,this._timers)clearTimeout(this._timers[w]),delete this._timers[w];for(var D in this._tiles)this._setTileReloadTimer(D,this._tiles[D])}},d.prototype.update=function(c){var f=this;if(this.transform=c,this._sourceLoaded&&!this._paused){var E;this.updateCacheSize(c),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?E=c.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(Pt){return new n.OverscaledTileID(Pt.canonical.z,Pt.wrap,Pt.canonical.z,Pt.canonical.x,Pt.canonical.y)}):(E=c.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(E=E.filter(function(Pt){return f._source.hasTile(Pt)}))):E=[];var A=c.coveringZoomLevel(this._source),T=Math.max(A-d.maxOverzooming,this._source.minzoom),w=Math.max(A+d.maxUnderzooming,this._source.minzoom),D=this._updateRetainedTiles(E,A);if(ht(this._source.type)){for(var z={},$={},K=0,ee=Object.keys(D);K<ee.length;K+=1){var _e=ee[K],de=D[_e],Te=this._tiles[_e];if(Te&&!(Te.fadeEndTime&&Te.fadeEndTime<=n.browser.now())){var le=this.findLoadedParent(de,T);le&&(this._addTile(le.tileID),z[le.tileID.key]=le.tileID),$[_e]=de}}for(var Fe in this._retainLoadedChildren($,A,w,D),z)D[Fe]||(this._coveredTiles[Fe]=!0,D[Fe]=z[Fe])}for(var De in D)this._tiles[De].clearFadeHold();for(var Xe=0,at=n.keysDifference(this._tiles,D);Xe<at.length;Xe+=1){var Je=at[Xe],ct=this._tiles[Je];ct.hasSymbolBuckets&&!ct.holdingForFade()?ct.setHoldDuration(this.map._fadeDuration):ct.hasSymbolBuckets&&!ct.symbolFadeFinished()||this._removeTile(Je)}this._updateLoadedParentTileCache()}},d.prototype.releaseSymbolFadeTiles=function(){for(var c in this._tiles)this._tiles[c].holdingForFade()&&this._removeTile(c)},d.prototype._updateRetainedTiles=function(c,f){for(var E={},A={},T=Math.max(f-d.maxOverzooming,this._source.minzoom),w=Math.max(f+d.maxUnderzooming,this._source.minzoom),D={},z=0,$=c;z<$.length;z+=1){var K=$[z],ee=this._addTile(K);E[K.key]=K,ee.hasData()||f<this._source.maxzoom&&(D[K.key]=K)}this._retainLoadedChildren(D,f,w,E);for(var _e=0,de=c;_e<de.length;_e+=1){var Te=de[_e],le=this._tiles[Te.key];if(!le.hasData()){if(f+1>this._source.maxzoom){var Fe=Te.children(this._source.maxzoom)[0],De=this.getTile(Fe);if(De&&De.hasData()){E[Fe.key]=Fe;continue}}else{var Xe=Te.children(this._source.maxzoom);if(E[Xe[0].key]&&E[Xe[1].key]&&E[Xe[2].key]&&E[Xe[3].key])continue}for(var at=le.wasRequested(),Je=Te.overscaledZ-1;Je>=T;--Je){var ct=Te.scaledTo(Je);if(A[ct.key]||(A[ct.key]=!0,!(le=this.getTile(ct))&&at&&(le=this._addTile(ct)),le&&(E[ct.key]=ct,at=le.wasRequested(),le.hasData())))break}}}return E},d.prototype._updateLoadedParentTileCache=function(){for(var c in this._loadedParentTiles={},this._tiles){for(var f=[],E=void 0,A=this._tiles[c].tileID;A.overscaledZ>0;){if(A.key in this._loadedParentTiles){E=this._loadedParentTiles[A.key];break}f.push(A.key);var T=A.scaledTo(A.overscaledZ-1);if(E=this._getLoadedTile(T))break;A=T}for(var w=0,D=f;w<D.length;w+=1)this._loadedParentTiles[D[w]]=E}},d.prototype._addTile=function(c){var f=this._tiles[c.key];if(f)return f;(f=this._cache.getAndRemove(c))&&(this._setTileReloadTimer(c.key,f),f.tileID=c,this._state.initializeTileState(f,this.map?this.map.painter:null),this._cacheTimers[c.key]&&(clearTimeout(this._cacheTimers[c.key]),delete this._cacheTimers[c.key],this._setTileReloadTimer(c.key,f)));var E=!!f;return E||(f=new n.Tile(c,this._source.tileSize*c.overscaleFactor()),this._loadTile(f,this._tileLoaded.bind(this,f,c.key,f.state))),f?(f.uses++,this._tiles[c.key]=f,E||this._source.fire(new n.Event("dataloading",{tile:f,coord:f.tileID,dataType:"source"})),f):null},d.prototype._setTileReloadTimer=function(c,f){var E=this;c in this._timers&&(clearTimeout(this._timers[c]),delete this._timers[c]);var A=f.getExpiryTimeout();A&&(this._timers[c]=setTimeout(function(){E._reloadTile(c,"expired"),delete E._timers[c]},A))},d.prototype._removeTile=function(c){var f=this._tiles[c];f&&(f.uses--,delete this._tiles[c],this._timers[c]&&(clearTimeout(this._timers[c]),delete this._timers[c]),f.uses>0||(f.hasData()&&f.state!=="reloading"?this._cache.add(f.tileID,f,f.getExpiryTimeout()):(f.aborted=!0,this._abortTile(f),this._unloadTile(f))))},d.prototype.clearTiles=function(){for(var c in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(c);this._cache.reset()},d.prototype.tilesIn=function(c,f,E){var A=this,T=[],w=this.transform;if(!w)return T;for(var D=E?w.getCameraQueryGeometry(c):c,z=c.map(function(Je){return w.pointCoordinate(Je)}),$=D.map(function(Je){return w.pointCoordinate(Je)}),K=this.getIds(),ee=1/0,_e=1/0,de=-1/0,Te=-1/0,le=0,Fe=$;le<Fe.length;le+=1){var De=Fe[le];ee=Math.min(ee,De.x),_e=Math.min(_e,De.y),de=Math.max(de,De.x),Te=Math.max(Te,De.y)}for(var Xe=function(Je){var ct=A._tiles[K[Je]];if(!ct.holdingForFade()){var Pt=ct.tileID,Ht=Math.pow(2,w.zoom-ct.tileID.overscaledZ),Bt=f*ct.queryPadding*n.EXTENT/ct.tileSize/Ht,nr=[Pt.getTilePoint(new n.MercatorCoordinate(ee,_e)),Pt.getTilePoint(new n.MercatorCoordinate(de,Te))];if(nr[0].x-Bt<n.EXTENT&&nr[0].y-Bt<n.EXTENT&&nr[1].x+Bt>=0&&nr[1].y+Bt>=0){var Cr=z.map(function(Nr){return Pt.getTilePoint(Nr)}),Dr=$.map(function(Nr){return Pt.getTilePoint(Nr)});T.push({tile:ct,tileID:Pt,queryGeometry:Cr,cameraQueryGeometry:Dr,scale:Ht})}}},at=0;at<K.length;at++)Xe(at);return T},d.prototype.getVisibleCoordinates=function(c){for(var f=this,E=this.getRenderableIds(c).map(function(D){return f._tiles[D].tileID}),A=0,T=E;A<T.length;A+=1){var w=T[A];w.posMatrix=this.transform.calculatePosMatrix(w.toUnwrapped())}return E},d.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(ht(this._source.type))for(var c in this._tiles){var f=this._tiles[c];if(f.fadeEndTime!==void 0&&f.fadeEndTime>=n.browser.now())return!0}return!1},d.prototype.setFeatureState=function(c,f,E){this._state.updateState(c=c||"_geojsonTileLayer",f,E)},d.prototype.removeFeatureState=function(c,f,E){this._state.removeFeatureState(c=c||"_geojsonTileLayer",f,E)},d.prototype.getFeatureState=function(c,f){return this._state.getState(c=c||"_geojsonTileLayer",f)},d.prototype.setDependencies=function(c,f,E){var A=this._tiles[c];A&&A.setDependencies(f,E)},d.prototype.reloadTilesForDependencies=function(c,f){for(var E in this._tiles)this._tiles[E].hasDependency(c,f)&&this._reloadTile(E,"reloading");this._cache.filter(function(A){return!A.hasDependency(c,f)})},d}(n.Evented);function We(l,d){var c=Math.abs(2*l.wrap)-+(l.wrap<0),f=Math.abs(2*d.wrap)-+(d.wrap<0);return l.overscaledZ-d.overscaledZ||f-c||d.canonical.y-l.canonical.y||d.canonical.x-l.canonical.x}function ht(l){return l==="raster"||l==="image"||l==="video"}function Nt(){return new n.window.Worker(rc.workerUrl)}ge.maxOverzooming=10,ge.maxUnderzooming=3;var lt="mapboxgl_preloaded_worker_pool",wt=function(){this.active={}};wt.prototype.acquire=function(l){if(!this.workers)for(this.workers=[];this.workers.length<wt.workerCount;)this.workers.push(new Nt);return this.active[l]=!0,this.workers.slice()},wt.prototype.release=function(l){delete this.active[l],this.numActive()===0&&(this.workers.forEach(function(d){d.terminate()}),this.workers=null)},wt.prototype.isPreloaded=function(){return!!this.active[lt]},wt.prototype.numActive=function(){return Object.keys(this.active).length};var _r,yr=Math.floor(n.browser.hardwareConcurrency/2);function dt(){return _r||(_r=new wt),_r}function or(l,d){var c={};for(var f in l)f!=="ref"&&(c[f]=l[f]);return n.refProperties.forEach(function(E){E in d&&(c[E]=d[E])}),c}function Wt(l){l=l.slice();for(var d=Object.create(null),c=0;c<l.length;c++)d[l[c].id]=l[c];for(var f=0;f<l.length;f++)"ref"in l[f]&&(l[f]=or(l[f],d[l[f].ref]));return l}wt.workerCount=Math.max(Math.min(yr,6),1);var Zt={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight"};function no(l,d,c){c.push({command:Zt.addSource,args:[l,d[l]]})}function er(l,d,c){d.push({command:Zt.removeSource,args:[l]}),c[l]=!0}function Fo(l,d,c,f){er(l,c,f),no(l,d,c)}function Jo(l,d,c){var f;for(f in l[c])if(l[c].hasOwnProperty(f)&&f!=="data"&&!n.deepEqual(l[c][f],d[c][f]))return!1;for(f in d[c])if(d[c].hasOwnProperty(f)&&f!=="data"&&!n.deepEqual(l[c][f],d[c][f]))return!1;return!0}function vo(l,d,c,f,E,A){var T;for(T in d=d||{},l=l||{})l.hasOwnProperty(T)&&(n.deepEqual(l[T],d[T])||c.push({command:A,args:[f,T,d[T],E]}));for(T in d)d.hasOwnProperty(T)&&!l.hasOwnProperty(T)&&(n.deepEqual(l[T],d[T])||c.push({command:A,args:[f,T,d[T],E]}))}function Mo(l){return l.id}function ao(l,d){return l[d.id]=d,l}var Vi=function(l,d){this.reset(l,d)};Vi.prototype.reset=function(l,d){this.points=l||[],this._distances=[0];for(var c=1;c<this.points.length;c++)this._distances[c]=this._distances[c-1]+this.points[c].dist(this.points[c-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(d||0,.5*this.length),this.paddedLength=this.length-2*this.padding},Vi.prototype.lerp=function(l){if(this.points.length===1)return this.points[0];l=n.clamp(l,0,1);for(var d=1,c=this._distances[d],f=l*this.paddedLength+this.padding;c<f&&d<this._distances.length;)c=this._distances[++d];var E=d-1,A=this._distances[E],T=c-A,w=T>0?(f-A)/T:0;return this.points[E].mult(1-w).add(this.points[d].mult(w))};var wo=function(l,d,c){var f=this.boxCells=[],E=this.circleCells=[];this.xCellCount=Math.ceil(l/c),this.yCellCount=Math.ceil(d/c);for(var A=0;A<this.xCellCount*this.yCellCount;A++)f.push([]),E.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=l,this.height=d,this.xScale=this.xCellCount/l,this.yScale=this.yCellCount/d,this.boxUid=0,this.circleUid=0};function ei(l,d,c,f,E){var A=n.create();return d?(n.scale(A,A,[1/E,1/E,1]),c||n.rotateZ(A,A,f.angle)):n.multiply(A,f.labelPlaneMatrix,l),A}function ko(l,d,c,f,E){if(d){var A=n.clone(l);return n.scale(A,A,[E,E,1]),c||n.rotateZ(A,A,-f.angle),A}return f.glCoordMatrix}function so(l,d){var c=[l.x,l.y,0,1];fi(c,c,d);var f=c[3];return{point:new n.Point(c[0]/f,c[1]/f),signedDistanceFromCamera:f}}function Eo(l,d){return .5+l/d*.5}function Ln(l,d){var c=l[0]/l[3],f=l[1]/l[3];return c>=-d[0]&&c<=d[0]&&f>=-d[1]&&f<=d[1]}function yu(l,d,c,f,E,A,T,w){var D=f?l.textSizeData:l.iconSizeData,z=n.evaluateSizeForZoom(D,c.transform.zoom),$=[256/c.width*2+1,256/c.height*2+1],K=f?l.text.dynamicLayoutVertexArray:l.icon.dynamicLayoutVertexArray;K.clear();for(var ee=l.lineVertexArray,_e=f?l.text.placedSymbolArray:l.icon.placedSymbolArray,de=c.transform.width/c.transform.height,Te=!1,le=0;le<_e.length;le++){var Fe=_e.get(le);if(Fe.hidden||Fe.writingMode===n.WritingMode.vertical&&!Te)ln(Fe.numGlyphs,K);else{Te=!1;var De=[Fe.anchorX,Fe.anchorY,0,1];if(n.transformMat4(De,De,d),Ln(De,$)){var Xe=Eo(c.transform.cameraToCenterDistance,De[3]),at=n.evaluateSizeForFeature(D,z,Fe),Je=T?at/Xe:at*Xe,ct=new n.Point(Fe.anchorX,Fe.anchorY),Pt=so(ct,E).point,Ht={},Bt=hu(Fe,Je,!1,w,d,E,A,l.glyphOffsetArray,ee,K,Pt,ct,Ht,de);Te=Bt.useVertical,(Bt.notEnoughRoom||Te||Bt.needsFlipping&&hu(Fe,Je,!0,w,d,E,A,l.glyphOffsetArray,ee,K,Pt,ct,Ht,de).notEnoughRoom)&&ln(Fe.numGlyphs,K)}else ln(Fe.numGlyphs,K)}}f?l.text.dynamicLayoutVertexBuffer.updateData(K):l.icon.dynamicLayoutVertexBuffer.updateData(K)}function Di(l,d,c,f,E,A,T,w,D,z,$){var K=w.glyphStartIndex+w.numGlyphs,ee=w.lineStartIndex,_e=w.lineStartIndex+w.lineLength,de=d.getoffsetX(w.glyphStartIndex),Te=d.getoffsetX(K-1),le=hi(l*de,c,f,E,A,T,w.segment,ee,_e,D,z,$);if(!le)return null;var Fe=hi(l*Te,c,f,E,A,T,w.segment,ee,_e,D,z,$);return Fe?{first:le,last:Fe}:null}function gi(l,d,c,f){return l===n.WritingMode.horizontal&&Math.abs(c.y-d.y)>Math.abs(c.x-d.x)*f?{useVertical:!0}:(l===n.WritingMode.vertical?d.y<c.y:d.x>c.x)?{needsFlipping:!0}:null}function hu(l,d,c,f,E,A,T,w,D,z,$,K,ee,_e){var de,Te=d/24,le=l.lineOffsetX*Te,Fe=l.lineOffsetY*Te;if(l.numGlyphs>1){var De=l.glyphStartIndex+l.numGlyphs,Xe=l.lineStartIndex,at=l.lineStartIndex+l.lineLength,Je=Di(Te,w,le,Fe,c,$,K,l,D,A,ee);if(!Je)return{notEnoughRoom:!0};var ct=so(Je.first.point,T).point,Pt=so(Je.last.point,T).point;if(f&&!c){var Ht=gi(l.writingMode,ct,Pt,_e);if(Ht)return Ht}de=[Je.first];for(var Bt=l.glyphStartIndex+1;Bt<De-1;Bt++)de.push(hi(Te*w.getoffsetX(Bt),le,Fe,c,$,K,l.segment,Xe,at,D,A,ee));de.push(Je.last)}else{if(f&&!c){var nr=so(K,E).point,Cr=l.lineStartIndex+l.segment+1,Dr=new n.Point(D.getx(Cr),D.gety(Cr)),Nr=so(Dr,E),Lo=Nr.signedDistanceFromCamera>0?Nr.point:Wa(K,Dr,nr,1,E),cr=gi(l.writingMode,nr,Lo,_e);if(cr)return cr}var $r=hi(Te*w.getoffsetX(l.glyphStartIndex),le,Fe,c,$,K,l.segment,l.lineStartIndex,l.lineStartIndex+l.lineLength,D,A,ee);if(!$r)return{notEnoughRoom:!0};de=[$r]}for(var lo=0,Xr=de;lo<Xr.length;lo+=1){var Gr=Xr[lo];n.addDynamicAttributes(z,Gr.point,Gr.angle)}return{}}function Wa(l,d,c,f,E){var A=so(l.add(l.sub(d)._unit()),E).point,T=c.sub(A);return c.add(T._mult(f/T.mag()))}function hi(l,d,c,f,E,A,T,w,D,z,$,K){var ee=f?l-d:l+d,_e=ee>0?1:-1,de=0;f&&(_e*=-1,de=Math.PI),_e<0&&(de+=Math.PI);for(var Te=_e>0?w+T:w+T+1,le=E,Fe=E,De=0,Xe=0,at=Math.abs(ee),Je=[];De+Xe<=at;){if((Te+=_e)<w||Te>=D)return null;if(Fe=le,Je.push(le),(le=K[Te])===void 0){var ct=new n.Point(z.getx(Te),z.gety(Te)),Pt=so(ct,$);if(Pt.signedDistanceFromCamera>0)le=K[Te]=Pt.point;else{var Ht=Te-_e;le=Wa(De===0?A:new n.Point(z.getx(Ht),z.gety(Ht)),ct,Fe,at-De+1,$)}}De+=Xe,Xe=Fe.dist(le)}var Bt=(at-De)/Xe,nr=le.sub(Fe),Cr=nr.mult(Bt)._add(Fe);Cr._add(nr._unit()._perp()._mult(c*_e));var Dr=de+Math.atan2(le.y-Fe.y,le.x-Fe.x);return Je.push(Cr),{point:Cr,angle:Dr,path:Je}}wo.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},wo.prototype.insert=function(l,d,c,f,E){this._forEachCell(d,c,f,E,this._insertBoxCell,this.boxUid++),this.boxKeys.push(l),this.bboxes.push(d),this.bboxes.push(c),this.bboxes.push(f),this.bboxes.push(E)},wo.prototype.insertCircle=function(l,d,c,f){this._forEachCell(d-f,c-f,d+f,c+f,this._insertCircleCell,this.circleUid++),this.circleKeys.push(l),this.circles.push(d),this.circles.push(c),this.circles.push(f)},wo.prototype._insertBoxCell=function(l,d,c,f,E,A){this.boxCells[E].push(A)},wo.prototype._insertCircleCell=function(l,d,c,f,E,A){this.circleCells[E].push(A)},wo.prototype._query=function(l,d,c,f,E,A){if(c<0||l>this.width||f<0||d>this.height)return!E&&[];var T=[];if(l<=0&&d<=0&&this.width<=c&&this.height<=f){if(E)return!0;for(var w=0;w<this.boxKeys.length;w++)T.push({key:this.boxKeys[w],x1:this.bboxes[4*w],y1:this.bboxes[4*w+1],x2:this.bboxes[4*w+2],y2:this.bboxes[4*w+3]});for(var D=0;D<this.circleKeys.length;D++){var z=this.circles[3*D],$=this.circles[3*D+1],K=this.circles[3*D+2];T.push({key:this.circleKeys[D],x1:z-K,y1:$-K,x2:z+K,y2:$+K})}return A?T.filter(A):T}return this._forEachCell(l,d,c,f,this._queryCell,T,{hitTest:E,seenUids:{box:{},circle:{}}},A),E?T.length>0:T},wo.prototype._queryCircle=function(l,d,c,f,E){var A=l-c,T=l+c,w=d-c,D=d+c;if(T<0||A>this.width||D<0||w>this.height)return!f&&[];var z=[];return this._forEachCell(A,w,T,D,this._queryCellCircle,z,{hitTest:f,circle:{x:l,y:d,radius:c},seenUids:{box:{},circle:{}}},E),f?z.length>0:z},wo.prototype.query=function(l,d,c,f,E){return this._query(l,d,c,f,!1,E)},wo.prototype.hitTest=function(l,d,c,f,E){return this._query(l,d,c,f,!0,E)},wo.prototype.hitTestCircle=function(l,d,c,f){return this._queryCircle(l,d,c,!0,f)},wo.prototype._queryCell=function(l,d,c,f,E,A,T,w){var D=T.seenUids,z=this.boxCells[E];if(z!==null)for(var $=this.bboxes,K=0,ee=z;K<ee.length;K+=1){var _e=ee[K];if(!D.box[_e]){D.box[_e]=!0;var de=4*_e;if(l<=$[de+2]&&d<=$[de+3]&&c>=$[de+0]&&f>=$[de+1]&&(!w||w(this.boxKeys[_e]))){if(T.hitTest)return A.push(!0),!0;A.push({key:this.boxKeys[_e],x1:$[de],y1:$[de+1],x2:$[de+2],y2:$[de+3]})}}}var Te=this.circleCells[E];if(Te!==null)for(var le=this.circles,Fe=0,De=Te;Fe<De.length;Fe+=1){var Xe=De[Fe];if(!D.circle[Xe]){D.circle[Xe]=!0;var at=3*Xe;if(this._circleAndRectCollide(le[at],le[at+1],le[at+2],l,d,c,f)&&(!w||w(this.circleKeys[Xe]))){if(T.hitTest)return A.push(!0),!0;var Je=le[at],ct=le[at+1],Pt=le[at+2];A.push({key:this.circleKeys[Xe],x1:Je-Pt,y1:ct-Pt,x2:Je+Pt,y2:ct+Pt})}}}},wo.prototype._queryCellCircle=function(l,d,c,f,E,A,T,w){var D=T.circle,z=T.seenUids,$=this.boxCells[E];if($!==null)for(var K=this.bboxes,ee=0,_e=$;ee<_e.length;ee+=1){var de=_e[ee];if(!z.box[de]){z.box[de]=!0;var Te=4*de;if(this._circleAndRectCollide(D.x,D.y,D.radius,K[Te+0],K[Te+1],K[Te+2],K[Te+3])&&(!w||w(this.boxKeys[de])))return A.push(!0),!0}}var le=this.circleCells[E];if(le!==null)for(var Fe=this.circles,De=0,Xe=le;De<Xe.length;De+=1){var at=Xe[De];if(!z.circle[at]){z.circle[at]=!0;var Je=3*at;if(this._circlesCollide(Fe[Je],Fe[Je+1],Fe[Je+2],D.x,D.y,D.radius)&&(!w||w(this.circleKeys[at])))return A.push(!0),!0}}},wo.prototype._forEachCell=function(l,d,c,f,E,A,T,w){for(var D=this._convertToXCellCoord(l),z=this._convertToYCellCoord(d),$=this._convertToXCellCoord(c),K=this._convertToYCellCoord(f),ee=D;ee<=$;ee++)for(var _e=z;_e<=K;_e++)if(E.call(this,l,d,c,f,this.xCellCount*_e+ee,A,T,w))return},wo.prototype._convertToXCellCoord=function(l){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(l*this.xScale)))},wo.prototype._convertToYCellCoord=function(l){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(l*this.yScale)))},wo.prototype._circlesCollide=function(l,d,c,f,E,A){var T=f-l,w=E-d,D=c+A;return D*D>T*T+w*w},wo.prototype._circleAndRectCollide=function(l,d,c,f,E,A,T){var w=(A-f)/2,D=Math.abs(l-(f+w));if(D>w+c)return!1;var z=(T-E)/2,$=Math.abs(d-(E+z));if($>z+c)return!1;if(D<=w||$<=z)return!0;var K=D-w,ee=$-z;return K*K+ee*ee<=c*c};var Ws=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ln(l,d){for(var c=0;c<l;c++){var f=d.length;d.resize(f+4),d.float32.set(Ws,3*f)}}function fi(l,d,c){var f=d[0],E=d[1];return l[0]=c[0]*f+c[4]*E+c[12],l[1]=c[1]*f+c[5]*E+c[13],l[3]=c[3]*f+c[7]*E+c[15],l}var Hi=function(l,d,c){d===void 0&&(d=new wo(l.width+200,l.height+200,25)),c===void 0&&(c=new wo(l.width+200,l.height+200,25)),this.transform=l,this.grid=d,this.ignoredGrid=c,this.pitchfactor=Math.cos(l._pitch)*l.cameraToCenterDistance,this.screenRightBoundary=l.width+100,this.screenBottomBoundary=l.height+100,this.gridRightBoundary=l.width+200,this.gridBottomBoundary=l.height+200};function ui(l,d,c){return d*(n.EXTENT/(l.tileSize*Math.pow(2,c-l.tileID.overscaledZ)))}Hi.prototype.placeCollisionBox=function(l,d,c,f,E){var A=this.projectAndGetPerspectiveRatio(f,l.anchorPointX,l.anchorPointY),T=c*A.perspectiveRatio,w=l.x1*T+A.point.x,D=l.y1*T+A.point.y,z=l.x2*T+A.point.x,$=l.y2*T+A.point.y;return!this.isInsideGrid(w,D,z,$)||!d&&this.grid.hitTest(w,D,z,$,E)?{box:[],offscreen:!1}:{box:[w,D,z,$],offscreen:this.isOffscreen(w,D,z,$)}},Hi.prototype.placeCollisionCircles=function(l,d,c,f,E,A,T,w,D,z,$,K,ee){var _e=[],de=new n.Point(d.anchorX,d.anchorY),Te=so(de,A),le=Eo(this.transform.cameraToCenterDistance,Te.signedDistanceFromCamera),Fe=(z?E/le:E*le)/n.ONE_EM,De=so(de,T).point,Xe=Di(Fe,f,d.lineOffsetX*Fe,d.lineOffsetY*Fe,!1,De,de,d,c,T,{}),at=!1,Je=!1,ct=!0;if(Xe){for(var Pt=.5*K*le+ee,Ht=new n.Point(-100,-100),Bt=new n.Point(this.screenRightBoundary,this.screenBottomBoundary),nr=new Vi,Cr=Xe.first,Dr=Xe.last,Nr=[],Lo=Cr.path.length-1;Lo>=1;Lo--)Nr.push(Cr.path[Lo]);for(var cr=1;cr<Dr.path.length;cr++)Nr.push(Dr.path[cr]);var $r=2.5*Pt;if(w){var lo=Nr.map(function(wa){return so(wa,w)});Nr=lo.some(function(wa){return wa.signedDistanceFromCamera<=0})?[]:lo.map(function(wa){return wa.point})}var Xr=[];if(Nr.length>0){for(var Gr=Nr[0].clone(),uo=Nr[0].clone(),jr=1;jr<Nr.length;jr++)Gr.x=Math.min(Gr.x,Nr[jr].x),Gr.y=Math.min(Gr.y,Nr[jr].y),uo.x=Math.max(uo.x,Nr[jr].x),uo.y=Math.max(uo.y,Nr[jr].y);Xr=Gr.x>=Ht.x&&uo.x<=Bt.x&&Gr.y>=Ht.y&&uo.y<=Bt.y?[Nr]:uo.x<Ht.x||Gr.x>Bt.x||uo.y<Ht.y||Gr.y>Bt.y?[]:n.clipLine([Nr],Ht.x,Ht.y,Bt.x,Bt.y)}for(var zr=0,qi=Xr;zr<qi.length;zr+=1){var Si;nr.reset(qi[zr],.25*Pt),Si=nr.length<=.5*Pt?1:Math.ceil(nr.paddedLength/$r)+1;for(var Rn=0;Rn<Si;Rn++){var hn=Rn/Math.max(Si-1,1),Fi=nr.lerp(hn),wi=Fi.x+100,ra=Fi.y+100;_e.push(wi,ra,Pt,0);var Zn=wi-Pt,Cs=ra-Pt,oa=wi+Pt,Ja=ra+Pt;if(ct=ct&&this.isOffscreen(Zn,Cs,oa,Ja),Je=Je||this.isInsideGrid(Zn,Cs,oa,Ja),!l&&this.grid.hitTestCircle(wi,ra,Pt,$)&&(at=!0,!D))return{circles:[],offscreen:!1,collisionDetected:at}}}}return{circles:!D&&at||!Je?[]:_e,offscreen:ct,collisionDetected:at}},Hi.prototype.queryRenderedSymbols=function(l){if(l.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};for(var d=[],c=1/0,f=1/0,E=-1/0,A=-1/0,T=0,w=l;T<w.length;T+=1){var D=w[T],z=new n.Point(D.x+100,D.y+100);c=Math.min(c,z.x),f=Math.min(f,z.y),E=Math.max(E,z.x),A=Math.max(A,z.y),d.push(z)}for(var $={},K={},ee=0,_e=this.grid.query(c,f,E,A).concat(this.ignoredGrid.query(c,f,E,A));ee<_e.length;ee+=1){var de=_e[ee],Te=de.key;if($[Te.bucketInstanceId]===void 0&&($[Te.bucketInstanceId]={}),!$[Te.bucketInstanceId][Te.featureIndex]){var le=[new n.Point(de.x1,de.y1),new n.Point(de.x2,de.y1),new n.Point(de.x2,de.y2),new n.Point(de.x1,de.y2)];n.polygonIntersectsPolygon(d,le)&&($[Te.bucketInstanceId][Te.featureIndex]=!0,K[Te.bucketInstanceId]===void 0&&(K[Te.bucketInstanceId]=[]),K[Te.bucketInstanceId].push(Te.featureIndex))}}return K},Hi.prototype.insertCollisionBox=function(l,d,c,f,E){(d?this.ignoredGrid:this.grid).insert({bucketInstanceId:c,featureIndex:f,collisionGroupID:E},l[0],l[1],l[2],l[3])},Hi.prototype.insertCollisionCircles=function(l,d,c,f,E){for(var A=d?this.ignoredGrid:this.grid,T={bucketInstanceId:c,featureIndex:f,collisionGroupID:E},w=0;w<l.length;w+=4)A.insertCircle(T,l[w],l[w+1],l[w+2])},Hi.prototype.projectAndGetPerspectiveRatio=function(l,d,c){var f=[d,c,0,1];return fi(f,f,l),{point:new n.Point((f[0]/f[3]+1)/2*this.transform.width+100,(-f[1]/f[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/f[3]*.5}},Hi.prototype.isOffscreen=function(l,d,c,f){return c<100||l>=this.screenRightBoundary||f<100||d>this.screenBottomBoundary},Hi.prototype.isInsideGrid=function(l,d,c,f){return c>=0&&l<this.gridRightBoundary&&f>=0&&d<this.gridBottomBoundary},Hi.prototype.getViewportMatrix=function(){var l=n.identity([]);return n.translate(l,l,[-100,-100,0]),l};var Jn=function(l,d,c,f){this.opacity=l?Math.max(0,Math.min(1,l.opacity+(l.placed?d:-d))):f&&c?1:0,this.placed=c};Jn.prototype.isHidden=function(){return this.opacity===0&&!this.placed};var jn=function(l,d,c,f,E){this.text=new Jn(l?l.text:null,d,c,E),this.icon=new Jn(l?l.icon:null,d,f,E)};jn.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var Kp=function(l,d,c){this.text=l,this.icon=d,this.skipFade=c},Pa=function(){this.invProjMatrix=n.create(),this.viewportMatrix=n.create(),this.circles=[]},Rc=function(l,d,c,f,E){this.bucketInstanceId=l,this.featureIndex=d,this.sourceLayerIndex=c,this.bucketIndex=f,this.tileID=E},X=function(l){this.crossSourceCollisions=l,this.maxGroupID=0,this.collisionGroups={}};function re(l,d,c,f,E){var A=n.getAnchorAlignment(l),T=-(A.horizontalAlign-.5)*d,w=-(A.verticalAlign-.5)*c,D=n.evaluateVariableOffset(l,f);return new n.Point(T+D[0]*E,w+D[1]*E)}function we(l,d,c,f,E,A){var T=l.x1,w=l.x2,D=l.y1,z=l.y2,$=l.anchorPointX,K=l.anchorPointY,ee=new n.Point(d,c);return f&&ee._rotate(E?A:-A),{x1:T+ee.x,y1:D+ee.y,x2:w+ee.x,y2:z+ee.y,anchorPointX:$,anchorPointY:K}}X.prototype.get=function(l){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[l]){var d=++this.maxGroupID;this.collisionGroups[l]={ID:d,predicate:function(c){return c.collisionGroupID===d}}}return this.collisionGroups[l]};var rt=function(l,d,c,f){this.transform=l.clone(),this.collisionIndex=new Hi(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=d,this.retainedQueryData={},this.collisionGroups=new X(c),this.collisionCircleArrays={},this.prevPlacement=f,f&&(f.prevPlacement=void 0),this.placedOrientations={}};function zt(l,d,c,f,E){l.emplaceBack(d?1:0,c?1:0,f||0,E||0),l.emplaceBack(d?1:0,c?1:0,f||0,E||0),l.emplaceBack(d?1:0,c?1:0,f||0,E||0),l.emplaceBack(d?1:0,c?1:0,f||0,E||0)}rt.prototype.getBucketParts=function(l,d,c,f){var E=c.getBucket(d),A=c.latestFeatureIndex;if(E&&A&&d.id===E.layerIds[0]){var T=c.collisionBoxArray,w=E.layers[0].layout,D=Math.pow(2,this.transform.zoom-c.tileID.overscaledZ),z=c.tileSize/n.EXTENT,$=this.transform.calculatePosMatrix(c.tileID.toUnwrapped()),K=w.get("text-pitch-alignment")==="map",ee=w.get("text-rotation-alignment")==="map",_e=ui(c,1,this.transform.zoom),de=ei($,K,ee,this.transform,_e),Te=null;if(K){var le=ko($,K,ee,this.transform,_e);Te=n.multiply([],this.transform.labelPlaneMatrix,le)}this.retainedQueryData[E.bucketInstanceId]=new Rc(E.bucketInstanceId,A,E.sourceLayerIndex,E.index,c.tileID);var Fe={bucket:E,layout:w,posMatrix:$,textLabelPlaneMatrix:de,labelToScreenMatrix:Te,scale:D,textPixelRatio:z,holdingForFade:c.holdingForFade(),collisionBoxArray:T,partiallyEvaluatedTextSize:n.evaluateSizeForZoom(E.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(E.sourceID)};if(f)for(var De=0,Xe=E.sortKeyRanges;De<Xe.length;De+=1){var at=Xe[De];l.push({sortKey:at.sortKey,symbolInstanceStart:at.symbolInstanceStart,symbolInstanceEnd:at.symbolInstanceEnd,parameters:Fe})}else l.push({symbolInstanceStart:0,symbolInstanceEnd:E.symbolInstances.length,parameters:Fe})}},rt.prototype.attemptAnchorPlacement=function(l,d,c,f,E,A,T,w,D,z,$,K,ee,_e,de){var Te,le=[K.textOffset0,K.textOffset1],Fe=re(l,c,f,le,E),De=this.collisionIndex.placeCollisionBox(we(d,Fe.x,Fe.y,A,T,this.transform.angle),$,w,D,z.predicate);if(!de||this.collisionIndex.placeCollisionBox(we(de,Fe.x,Fe.y,A,T,this.transform.angle),$,w,D,z.predicate).box.length!==0)return De.box.length>0?(this.prevPlacement&&this.prevPlacement.variableOffsets[K.crossTileID]&&this.prevPlacement.placements[K.crossTileID]&&this.prevPlacement.placements[K.crossTileID].text&&(Te=this.prevPlacement.variableOffsets[K.crossTileID].anchor),this.variableOffsets[K.crossTileID]={textOffset:le,width:c,height:f,anchor:l,textBoxScale:E,prevAnchor:Te},this.markUsedJustification(ee,l,K,_e),ee.allowVerticalPlacement&&(this.markUsedOrientation(ee,_e,K),this.placedOrientations[K.crossTileID]=_e),{shift:Fe,placedGlyphBoxes:De}):void 0},rt.prototype.placeLayerBucketPart=function(l,d,c){var f=this,E=l.parameters,A=E.bucket,T=E.layout,w=E.posMatrix,D=E.textLabelPlaneMatrix,z=E.labelToScreenMatrix,$=E.textPixelRatio,K=E.holdingForFade,ee=E.collisionBoxArray,_e=E.partiallyEvaluatedTextSize,de=E.collisionGroup,Te=T.get("text-optional"),le=T.get("icon-optional"),Fe=T.get("text-allow-overlap"),De=T.get("icon-allow-overlap"),Xe=T.get("text-rotation-alignment")==="map",at=T.get("text-pitch-alignment")==="map",Je=T.get("icon-text-fit")!=="none",ct=T.get("symbol-z-order")==="viewport-y",Pt=Fe&&(De||!A.hasIconData()||le),Ht=De&&(Fe||!A.hasTextData()||Te);!A.collisionArrays&&ee&&A.deserializeCollisionBoxes(ee);var Bt=function(cr,$r){if(!d[cr.crossTileID])if(K)f.placements[cr.crossTileID]=new Kp(!1,!1,!1);else{var lo,Xr=!1,Gr=!1,uo=!0,jr=null,zr={box:null,offscreen:null},qi={box:null,offscreen:null},Si=null,Rn=null,hn=0,Fi=0,wi=0;$r.textFeatureIndex?hn=$r.textFeatureIndex:cr.useRuntimeCollisionCircles&&(hn=cr.featureIndex),$r.verticalTextFeatureIndex&&(Fi=$r.verticalTextFeatureIndex);var ra=$r.textBox;if(ra){var Zn=function(Io){var Cn=n.WritingMode.horizontal;if(A.allowVerticalPlacement&&!Io&&f.prevPlacement){var Ki=f.prevPlacement.placedOrientations[cr.crossTileID];Ki&&(f.placedOrientations[cr.crossTileID]=Ki,f.markUsedOrientation(A,Cn=Ki,cr))}return Cn},Cs=function(Io,Cn){if(A.allowVerticalPlacement&&cr.numVerticalGlyphVertices>0&&$r.verticalTextBox)for(var Ki=0,Ms=A.writingModes;Ki<Ms.length&&(Ms[Ki]===n.WritingMode.vertical?(zr=Cn(),qi=zr):zr=Io(),!(zr&&zr.box&&zr.box.length));Ki+=1);else zr=Io()};if(T.get("text-variable-anchor")){var oa=T.get("text-variable-anchor");if(f.prevPlacement&&f.prevPlacement.variableOffsets[cr.crossTileID]){var Ja=f.prevPlacement.variableOffsets[cr.crossTileID];oa.indexOf(Ja.anchor)>0&&(oa=oa.filter(function(Io){return Io!==Ja.anchor})).unshift(Ja.anchor)}var wa=function(Io,Cn,Ki){for(var Ms=Io.x2-Io.x1,oc=Io.y2-Io.y1,Ou=cr.textBoxScale,Kc=Je&&!De?Cn:null,np={box:[],offscreen:!1},ap=Fe?2*oa.length:oa.length,hs=0;hs<ap;++hs){var ic=f.attemptAnchorPlacement(oa[hs%oa.length],Io,Ms,oc,Ou,Xe,at,$,w,de,hs>=oa.length,cr,A,Ki,Kc);if(ic&&(np=ic.placedGlyphBoxes)&&np.box&&np.box.length){Xr=!0,jr=ic.shift;break}}return np};Cs(function(){return wa(ra,$r.iconBox,n.WritingMode.horizontal)},function(){var Io=$r.verticalTextBox;return A.allowVerticalPlacement&&!(zr&&zr.box&&zr.box.length)&&cr.numVerticalGlyphVertices>0&&Io?wa(Io,$r.verticalIconBox,n.WritingMode.vertical):{box:null,offscreen:null}}),zr&&(Xr=zr.box,uo=zr.offscreen);var Ip=Zn(zr&&zr.box);if(!Xr&&f.prevPlacement){var ip=f.prevPlacement.variableOffsets[cr.crossTileID];ip&&(f.variableOffsets[cr.crossTileID]=ip,f.markUsedJustification(A,ip.anchor,cr,Ip))}}else{var Is=function(Io,Cn){var Ki=f.collisionIndex.placeCollisionBox(Io,Fe,$,w,de.predicate);return Ki&&Ki.box&&Ki.box.length&&(f.markUsedOrientation(A,Cn,cr),f.placedOrientations[cr.crossTileID]=Cn),Ki};Cs(function(){return Is(ra,n.WritingMode.horizontal)},function(){var Io=$r.verticalTextBox;return A.allowVerticalPlacement&&cr.numVerticalGlyphVertices>0&&Io?Is(Io,n.WritingMode.vertical):{box:null,offscreen:null}}),Zn(zr&&zr.box&&zr.box.length)}}if(Xr=(lo=zr)&&lo.box&&lo.box.length>0,uo=lo&&lo.offscreen,cr.useRuntimeCollisionCircles){var Nu=A.text.placedSymbolArray.get(cr.centerJustifiedTextSymbolIndex),ou=n.evaluateSizeForFeature(A.textSizeData,_e,Nu),ds=T.get("text-padding");Si=f.collisionIndex.placeCollisionCircles(Fe,Nu,A.lineVertexArray,A.glyphOffsetArray,ou,w,D,z,c,at,de.predicate,cr.collisionCircleDiameter,ds),Xr=Fe||Si.circles.length>0&&!Si.collisionDetected,uo=uo&&Si.offscreen}if($r.iconFeatureIndex&&(wi=$r.iconFeatureIndex),$r.iconBox){var Du=function(Io){var Cn=Je&&jr?we(Io,jr.x,jr.y,Xe,at,f.transform.angle):Io;return f.collisionIndex.placeCollisionBox(Cn,De,$,w,de.predicate)};Gr=qi&&qi.box&&qi.box.length&&$r.verticalIconBox?(Rn=Du($r.verticalIconBox)).box.length>0:(Rn=Du($r.iconBox)).box.length>0,uo=uo&&Rn.offscreen}var kn=Te||cr.numHorizontalGlyphVertices===0&&cr.numVerticalGlyphVertices===0,Bi=le||cr.numIconVertices===0;if(kn||Bi?Bi?kn||(Gr=Gr&&Xr):Xr=Gr&&Xr:Gr=Xr=Gr&&Xr,Xr&&lo&&lo.box&&f.collisionIndex.insertCollisionBox(lo.box,T.get("text-ignore-placement"),A.bucketInstanceId,qi&&qi.box&&Fi?Fi:hn,de.ID),Gr&&Rn&&f.collisionIndex.insertCollisionBox(Rn.box,T.get("icon-ignore-placement"),A.bucketInstanceId,wi,de.ID),Si&&(Xr&&f.collisionIndex.insertCollisionCircles(Si.circles,T.get("text-ignore-placement"),A.bucketInstanceId,hn,de.ID),c)){var da=A.bucketInstanceId,es=f.collisionCircleArrays[da];es===void 0&&(es=f.collisionCircleArrays[da]=new Pa);for(var ys=0;ys<Si.circles.length;ys+=4)es.circles.push(Si.circles[ys+0]),es.circles.push(Si.circles[ys+1]),es.circles.push(Si.circles[ys+2]),es.circles.push(Si.collisionDetected?1:0)}f.placements[cr.crossTileID]=new Kp(Xr||Pt,Gr||Ht,uo||A.justReloaded),d[cr.crossTileID]=!0}};if(ct)for(var nr=A.getSortedSymbolIndexes(this.transform.angle),Cr=nr.length-1;Cr>=0;--Cr){var Dr=nr[Cr];Bt(A.symbolInstances.get(Dr),A.collisionArrays[Dr])}else for(var Nr=l.symbolInstanceStart;Nr<l.symbolInstanceEnd;Nr++)Bt(A.symbolInstances.get(Nr),A.collisionArrays[Nr]);if(c&&A.bucketInstanceId in this.collisionCircleArrays){var Lo=this.collisionCircleArrays[A.bucketInstanceId];n.invert(Lo.invProjMatrix,w),Lo.viewportMatrix=this.collisionIndex.getViewportMatrix()}A.justReloaded=!1},rt.prototype.markUsedJustification=function(l,d,c,f){var E;E=f===n.WritingMode.vertical?c.verticalPlacedTextSymbolIndex:{left:c.leftJustifiedTextSymbolIndex,center:c.centerJustifiedTextSymbolIndex,right:c.rightJustifiedTextSymbolIndex}[n.getAnchorJustification(d)];for(var A=0,T=[c.leftJustifiedTextSymbolIndex,c.centerJustifiedTextSymbolIndex,c.rightJustifiedTextSymbolIndex,c.verticalPlacedTextSymbolIndex];A<T.length;A+=1){var w=T[A];w>=0&&(l.text.placedSymbolArray.get(w).crossTileID=E>=0&&w!==E?0:c.crossTileID)}},rt.prototype.markUsedOrientation=function(l,d,c){for(var f=d===n.WritingMode.horizontal||d===n.WritingMode.horizontalOnly?d:0,E=d===n.WritingMode.vertical?d:0,A=0,T=[c.leftJustifiedTextSymbolIndex,c.centerJustifiedTextSymbolIndex,c.rightJustifiedTextSymbolIndex];A<T.length;A+=1)l.text.placedSymbolArray.get(T[A]).placedOrientation=f;c.verticalPlacedTextSymbolIndex&&(l.text.placedSymbolArray.get(c.verticalPlacedTextSymbolIndex).placedOrientation=E)},rt.prototype.commit=function(l){this.commitTime=l,this.zoomAtLastRecencyCheck=this.transform.zoom;var d=this.prevPlacement,c=!1;this.prevZoomAdjustment=d?d.zoomAdjustment(this.transform.zoom):0;var f=d?d.symbolFadeChange(l):1,E=d?d.opacities:{},A=d?d.variableOffsets:{},T=d?d.placedOrientations:{};for(var w in this.placements){var D=this.placements[w],z=E[w];z?(this.opacities[w]=new jn(z,f,D.text,D.icon),c=c||D.text!==z.text.placed||D.icon!==z.icon.placed):(this.opacities[w]=new jn(null,f,D.text,D.icon,D.skipFade),c=c||D.text||D.icon)}for(var $ in E){var K=E[$];if(!this.opacities[$]){var ee=new jn(K,f,!1,!1);ee.isHidden()||(this.opacities[$]=ee,c=c||K.text.placed||K.icon.placed)}}for(var _e in A)this.variableOffsets[_e]||!this.opacities[_e]||this.opacities[_e].isHidden()||(this.variableOffsets[_e]=A[_e]);for(var de in T)this.placedOrientations[de]||!this.opacities[de]||this.opacities[de].isHidden()||(this.placedOrientations[de]=T[de]);c?this.lastPlacementChangeTime=l:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=d?d.lastPlacementChangeTime:l)},rt.prototype.updateLayerOpacities=function(l,d){for(var c={},f=0,E=d;f<E.length;f+=1){var A=E[f],T=A.getBucket(l);T&&A.latestFeatureIndex&&l.id===T.layerIds[0]&&this.updateBucketOpacities(T,c,A.collisionBoxArray)}},rt.prototype.updateBucketOpacities=function(l,d,c){var f=this;l.hasTextData()&&l.text.opacityVertexArray.clear(),l.hasIconData()&&l.icon.opacityVertexArray.clear(),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexArray.clear(),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexArray.clear();var E=l.layers[0].layout,A=new jn(null,0,!1,!1,!0),T=E.get("text-allow-overlap"),w=E.get("icon-allow-overlap"),D=E.get("text-variable-anchor"),z=E.get("text-rotation-alignment")==="map",$=E.get("text-pitch-alignment")==="map",K=E.get("icon-text-fit")!=="none",ee=new jn(null,0,T&&(w||!l.hasIconData()||E.get("icon-optional")),w&&(T||!l.hasTextData()||E.get("text-optional")),!0);!l.collisionArrays&&c&&(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData())&&l.deserializeCollisionBoxes(c);for(var _e=function(Fe,De,Xe){for(var at=0;at<De/4;at++)Fe.opacityVertexArray.emplaceBack(Xe)},de=function(Fe){var De=l.symbolInstances.get(Fe),Xe=De.numHorizontalGlyphVertices,at=De.numVerticalGlyphVertices,Je=De.crossTileID,ct=f.opacities[Je];d[Je]?ct=A:ct||(f.opacities[Je]=ct=ee),d[Je]=!0;var Pt=De.numIconVertices>0,Ht=f.placedOrientations[De.crossTileID],Bt=Ht===n.WritingMode.vertical,nr=Ht===n.WritingMode.horizontal||Ht===n.WritingMode.horizontalOnly;if(Xe>0||at>0){var Cr=S1(ct.text);_e(l.text,Xe,Bt?Ep:Cr),_e(l.text,at,nr?Ep:Cr);var Dr=ct.text.isHidden();[De.rightJustifiedTextSymbolIndex,De.centerJustifiedTextSymbolIndex,De.leftJustifiedTextSymbolIndex].forEach(function(zr){zr>=0&&(l.text.placedSymbolArray.get(zr).hidden=Dr||Bt?1:0)}),De.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(De.verticalPlacedTextSymbolIndex).hidden=Dr||nr?1:0);var Nr=f.variableOffsets[De.crossTileID];Nr&&f.markUsedJustification(l,Nr.anchor,De,Ht);var Lo=f.placedOrientations[De.crossTileID];Lo&&(f.markUsedJustification(l,"left",De,Lo),f.markUsedOrientation(l,Lo,De))}if(Pt){var cr=S1(ct.icon),$r=!(K&&De.verticalPlacedIconSymbolIndex&&Bt);De.placedIconSymbolIndex>=0&&(_e(l.icon,De.numIconVertices,$r?cr:Ep),l.icon.placedSymbolArray.get(De.placedIconSymbolIndex).hidden=ct.icon.isHidden()),De.verticalPlacedIconSymbolIndex>=0&&(_e(l.icon,De.numVerticalIconVertices,$r?Ep:cr),l.icon.placedSymbolArray.get(De.verticalPlacedIconSymbolIndex).hidden=ct.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){var lo=l.collisionArrays[Fe];if(lo){var Xr=new n.Point(0,0);if(lo.textBox||lo.verticalTextBox){var Gr=!0;if(D){var uo=f.variableOffsets[Je];uo?(Xr=re(uo.anchor,uo.width,uo.height,uo.textOffset,uo.textBoxScale),z&&Xr._rotate($?f.transform.angle:-f.transform.angle)):Gr=!1}lo.textBox&&zt(l.textCollisionBox.collisionVertexArray,ct.text.placed,!Gr||Bt,Xr.x,Xr.y),lo.verticalTextBox&&zt(l.textCollisionBox.collisionVertexArray,ct.text.placed,!Gr||nr,Xr.x,Xr.y)}var jr=!!(!nr&&lo.verticalIconBox);lo.iconBox&&zt(l.iconCollisionBox.collisionVertexArray,ct.icon.placed,jr,K?Xr.x:0,K?Xr.y:0),lo.verticalIconBox&&zt(l.iconCollisionBox.collisionVertexArray,ct.icon.placed,!jr,K?Xr.x:0,K?Xr.y:0)}}},Te=0;Te<l.symbolInstances.length;Te++)de(Te);if(l.sortFeatures(this.transform.angle),this.retainedQueryData[l.bucketInstanceId]&&(this.retainedQueryData[l.bucketInstanceId].featureSortOrder=l.featureSortOrder),l.hasTextData()&&l.text.opacityVertexBuffer&&l.text.opacityVertexBuffer.updateData(l.text.opacityVertexArray),l.hasIconData()&&l.icon.opacityVertexBuffer&&l.icon.opacityVertexBuffer.updateData(l.icon.opacityVertexArray),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexBuffer&&l.iconCollisionBox.collisionVertexBuffer.updateData(l.iconCollisionBox.collisionVertexArray),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexBuffer&&l.textCollisionBox.collisionVertexBuffer.updateData(l.textCollisionBox.collisionVertexArray),l.bucketInstanceId in this.collisionCircleArrays){var le=this.collisionCircleArrays[l.bucketInstanceId];l.placementInvProjMatrix=le.invProjMatrix,l.placementViewportMatrix=le.viewportMatrix,l.collisionCircleArray=le.circles,delete this.collisionCircleArrays[l.bucketInstanceId]}},rt.prototype.symbolFadeChange=function(l){return this.fadeDuration===0?1:(l-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment},rt.prototype.zoomAdjustment=function(l){return Math.max(0,(this.transform.zoom-l)/1.5)},rt.prototype.hasTransitions=function(l){return this.stale||l-this.lastPlacementChangeTime<this.fadeDuration},rt.prototype.stillRecent=function(l,d){var c=this.zoomAtLastRecencyCheck===d?1-this.zoomAdjustment(d):1;return this.zoomAtLastRecencyCheck=d,this.commitTime+this.fadeDuration*c>l},rt.prototype.setStale=function(){this.stale=!0};var wr=Math.pow(2,25),Oo=Math.pow(2,24),Xi=Math.pow(2,17),Sn=Math.pow(2,16),cn=Math.pow(2,9),Xa=Math.pow(2,8),T1=Math.pow(2,1);function S1(l){if(l.opacity===0&&!l.placed)return 0;if(l.opacity===1&&l.placed)return 4294967295;var d=l.placed?1:0,c=Math.floor(127*l.opacity);return c*wr+d*Oo+c*Xi+d*Sn+c*cn+d*Xa+c*T1+d}var Ep=0,Cc=function(l){this._sortAcrossTiles=l.layout.get("symbol-z-order")!=="viewport-y"&&l.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Cc.prototype.continuePlacement=function(l,d,c,f,E){for(var A=this._bucketParts;this._currentTileIndex<l.length;)if(d.getBucketParts(A,f,l[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,E())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,A.sort(function(T,w){return T.sortKey-w.sortKey}));this._currentPartIndex<A.length;)if(d.placeLayerBucketPart(A[this._currentPartIndex],this._seenCrossTileIDs,c),this._currentPartIndex++,E())return!0;return!1};var Qp=function(l,d,c,f,E,A,T){this.placement=new rt(l,E,A,T),this._currentPlacementIndex=d.length-1,this._forceFullPlacement=c,this._showCollisionBoxes=f,this._done=!1};Qp.prototype.isDone=function(){return this._done},Qp.prototype.continuePlacement=function(l,d,c){for(var f=this,E=n.browser.now(),A=function(){var D=n.browser.now()-E;return!f._forceFullPlacement&&D>2};this._currentPlacementIndex>=0;){var T=d[l[this._currentPlacementIndex]],w=this.placement.collisionIndex.transform.zoom;if(T.type==="symbol"&&(!T.minzoom||T.minzoom<=w)&&(!T.maxzoom||T.maxzoom>w)){if(this._inProgressLayer||(this._inProgressLayer=new Cc(T)),this._inProgressLayer.continuePlacement(c[T.source],this.placement,this._showCollisionBoxes,T,A))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Qp.prototype.commit=function(l){return this.placement.commit(l),this.placement};var w1=512/n.EXTENT/2,Dl=function(l,d,c){this.tileID=l,this.indexedSymbolInstances={},this.bucketInstanceId=c;for(var f=0;f<d.length;f++){var E=d.get(f),A=E.key;this.indexedSymbolInstances[A]||(this.indexedSymbolInstances[A]=[]),this.indexedSymbolInstances[A].push({crossTileID:E.crossTileID,coord:this.getScaledCoordinates(E,l)})}};Dl.prototype.getScaledCoordinates=function(l,d){var c=w1/Math.pow(2,d.canonical.z-this.tileID.canonical.z);return{x:Math.floor((d.canonical.x*n.EXTENT+l.anchorX)*c),y:Math.floor((d.canonical.y*n.EXTENT+l.anchorY)*c)}},Dl.prototype.findMatches=function(l,d,c){for(var f=this.tileID.canonical.z<d.canonical.z?1:Math.pow(2,this.tileID.canonical.z-d.canonical.z),E=0;E<l.length;E++){var A=l.get(E);if(!A.crossTileID){var T=this.indexedSymbolInstances[A.key];if(T)for(var w=this.getScaledCoordinates(A,d),D=0,z=T;D<z.length;D+=1){var $=z[D];if(Math.abs($.coord.x-w.x)<=f&&Math.abs($.coord.y-w.y)<=f&&!c[$.crossTileID]){c[$.crossTileID]=!0,A.crossTileID=$.crossTileID;break}}}}};var Bn=function(){this.maxCrossTileID=0};Bn.prototype.generate=function(){return++this.maxCrossTileID};var fu=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0};fu.prototype.handleWrapJump=function(l){var d=Math.round((l-this.lng)/360);if(d!==0)for(var c in this.indexes){var f=this.indexes[c],E={};for(var A in f){var T=f[A];T.tileID=T.tileID.unwrapTo(T.tileID.wrap+d),E[T.tileID.key]=T}this.indexes[c]=E}this.lng=l},fu.prototype.addBucket=function(l,d,c){if(this.indexes[l.overscaledZ]&&this.indexes[l.overscaledZ][l.key]){if(this.indexes[l.overscaledZ][l.key].bucketInstanceId===d.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(l.overscaledZ,this.indexes[l.overscaledZ][l.key])}for(var f=0;f<d.symbolInstances.length;f++)d.symbolInstances.get(f).crossTileID=0;this.usedCrossTileIDs[l.overscaledZ]||(this.usedCrossTileIDs[l.overscaledZ]={});var E=this.usedCrossTileIDs[l.overscaledZ];for(var A in this.indexes){var T=this.indexes[A];if(Number(A)>l.overscaledZ)for(var w in T){var D=T[w];D.tileID.isChildOf(l)&&D.findMatches(d.symbolInstances,l,E)}else{var z=T[l.scaledTo(Number(A)).key];z&&z.findMatches(d.symbolInstances,l,E)}}for(var $=0;$<d.symbolInstances.length;$++){var K=d.symbolInstances.get($);K.crossTileID||(K.crossTileID=c.generate(),E[K.crossTileID]=!0)}return this.indexes[l.overscaledZ]===void 0&&(this.indexes[l.overscaledZ]={}),this.indexes[l.overscaledZ][l.key]=new Dl(l,d.symbolInstances,d.bucketInstanceId),!0},fu.prototype.removeBucketCrossTileIDs=function(l,d){for(var c in d.indexedSymbolInstances)for(var f=0,E=d.indexedSymbolInstances[c];f<E.length;f+=1)delete this.usedCrossTileIDs[l][E[f].crossTileID]},fu.prototype.removeStaleBuckets=function(l){var d=!1;for(var c in this.indexes){var f=this.indexes[c];for(var E in f)l[f[E].bucketInstanceId]||(this.removeBucketCrossTileIDs(c,f[E]),delete f[E],d=!0)}return d};var mu=function(){this.layerIndexes={},this.crossTileIDs=new Bn,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}};mu.prototype.addLayer=function(l,d,c){var f=this.layerIndexes[l.id];f===void 0&&(f=this.layerIndexes[l.id]=new fu);var E=!1,A={};f.handleWrapJump(c);for(var T=0,w=d;T<w.length;T+=1){var D=w[T],z=D.getBucket(l);z&&l.id===z.layerIds[0]&&(z.bucketInstanceId||(z.bucketInstanceId=++this.maxBucketInstanceId),f.addBucket(D.tileID,z,this.crossTileIDs)&&(E=!0),A[z.bucketInstanceId]=!0)}return f.removeStaleBuckets(A)&&(E=!0),E},mu.prototype.pruneUnusedLayers=function(l){var d={};for(var c in l.forEach(function(f){d[f]=!0}),this.layerIndexes)d[c]||delete this.layerIndexes[c]};var xs=function(l,d){return n.emitValidationErrors(l,d&&d.filter(function(c){return c.identifier!=="source.canvas"}))},Ps=n.pick(Zt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData"]),Xs=n.pick(Zt,["setCenter","setZoom","setBearing","setPitch"]),Jp=function(){var l={},d=n.styleSpec.$version;for(var c in n.styleSpec.$root){var f,E=n.styleSpec.$root[c];E.required&&(f=c==="version"?d:E.type==="array"?[]:{})!=null&&(l[c]=f)}return l}(),ba=function(l){function d(c,f){var E=this;f===void 0&&(f={}),l.call(this),this.map=c,this.dispatcher=new st(dt(),this),this.imageManager=new Q,this.imageManager.setEventedParent(this),this.glyphManager=new ft(c._requestManager,f.localIdeographFontFamily),this.lineAtlas=new ze(256,512),this.crossTileSymbolIndex=new mu,this._layers={},this._serializedLayers={},this._order=[],this.sourceCaches={},this.zoomHistory=new n.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",n.getReferrer());var A=this;this._rtlTextPluginCallback=d.registerForPluginStateChange(function(T){A.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:T.pluginStatus,pluginURL:T.pluginURL},function(w,D){if(n.triggerPluginCompletionEvent(w),D&&D.every(function($){return $}))for(var z in A.sourceCaches)A.sourceCaches[z].reload()})}),this.on("data",function(T){if(T.dataType==="source"&&T.sourceDataType==="metadata"){var w=E.sourceCaches[T.sourceId];if(w){var D=w.getSource();if(D&&D.vectorLayerIds)for(var z in E._layers){var $=E._layers[z];$.source===D.id&&E._validateLayer($)}}}})}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.loadURL=function(c,f){var E=this;f===void 0&&(f={}),this.fire(new n.Event("dataloading",{dataType:"style"}));var A=typeof f.validate=="boolean"?f.validate:!n.isMapboxURL(c);c=this.map._requestManager.normalizeStyleURL(c,f.accessToken);var T=this.map._requestManager.transformRequest(c,n.ResourceType.Style);this._request=n.getJSON(T,function(w,D){E._request=null,w?E.fire(new n.ErrorEvent(w)):D&&E._load(D,A)})},d.prototype.loadJSON=function(c,f){var E=this;f===void 0&&(f={}),this.fire(new n.Event("dataloading",{dataType:"style"})),this._request=n.browser.frame(function(){E._request=null,E._load(c,f.validate!==!1)})},d.prototype.loadEmpty=function(){this.fire(new n.Event("dataloading",{dataType:"style"})),this._load(Jp,!1)},d.prototype._load=function(c,f){if(!f||!xs(this,n.validateStyle(c))){for(var E in this._loaded=!0,this.stylesheet=c,c.sources)this.addSource(E,c.sources[E],{validate:!1});c.sprite?this._loadSprite(c.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(c.glyphs);var A=Wt(this.stylesheet.layers);this._order=A.map(function(z){return z.id}),this._layers={},this._serializedLayers={};for(var T=0,w=A;T<w.length;T+=1){var D=w[T];(D=n.createStyleLayer(D)).setEventedParent(this,{layer:{id:D.id}}),this._layers[D.id]=D,this._serializedLayers[D.id]=D.serialize()}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new Be(this.stylesheet.light),this.fire(new n.Event("data",{dataType:"style"})),this.fire(new n.Event("style.load"))}},d.prototype._loadSprite=function(c){var f=this;this._spriteRequest=function(E,A,T){var w,D,z,$=n.browser.devicePixelRatio>1?"@2x":"",K=n.getJSON(A.transformRequest(A.normalizeSpriteURL(E,$,".json"),n.ResourceType.SpriteJSON),function(de,Te){K=null,z||(z=de,w=Te,_e())}),ee=n.getImage(A.transformRequest(A.normalizeSpriteURL(E,$,".png"),n.ResourceType.SpriteImage),function(de,Te){ee=null,z||(z=de,D=Te,_e())});function _e(){if(z)T(z);else if(w&&D){var de=n.browser.getImageData(D),Te={};for(var le in w){var Fe=w[le],De=Fe.width,Xe=Fe.height,at=Fe.x,Je=Fe.y,ct=Fe.sdf,Pt=Fe.pixelRatio,Ht=Fe.stretchX,Bt=Fe.stretchY,nr=Fe.content,Cr=new n.RGBAImage({width:De,height:Xe});n.RGBAImage.copy(de,Cr,{x:at,y:Je},{x:0,y:0},{width:De,height:Xe}),Te[le]={data:Cr,pixelRatio:Pt,sdf:ct,stretchX:Ht,stretchY:Bt,content:nr}}T(null,Te)}}return{cancel:function(){K&&(K.cancel(),K=null),ee&&(ee.cancel(),ee=null)}}}(c,this.map._requestManager,function(E,A){if(f._spriteRequest=null,E)f.fire(new n.ErrorEvent(E));else if(A)for(var T in A)f.imageManager.addImage(T,A[T]);f.imageManager.setLoaded(!0),f._availableImages=f.imageManager.listImages(),f.dispatcher.broadcast("setImages",f._availableImages),f.fire(new n.Event("data",{dataType:"style"}))})},d.prototype._validateLayer=function(c){var f=this.sourceCaches[c.source];if(f){var E=c.sourceLayer;if(E){var A=f.getSource();(A.type==="geojson"||A.vectorLayerIds&&A.vectorLayerIds.indexOf(E)===-1)&&this.fire(new n.ErrorEvent(new Error('Source layer "'+E+'" does not exist on source "'+A.id+'" as specified by style layer "'+c.id+'"')))}}},d.prototype.loaded=function(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(var c in this.sourceCaches)if(!this.sourceCaches[c].loaded())return!1;return!!this.imageManager.isLoaded()},d.prototype._serializeLayers=function(c){for(var f=[],E=0,A=c;E<A.length;E+=1){var T=this._layers[A[E]];T.type!=="custom"&&f.push(T.serialize())}return f},d.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var c in this.sourceCaches)if(this.sourceCaches[c].hasTransition())return!0;for(var f in this._layers)if(this._layers[f].hasTransition())return!0;return!1},d.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},d.prototype.update=function(c){if(this._loaded){var f=this._changed;if(this._changed){var E=Object.keys(this._updatedLayers),A=Object.keys(this._removedLayers);for(var T in(E.length||A.length)&&this._updateWorkerLayers(E,A),this._updatedSources){var w=this._updatedSources[T];w==="reload"?this._reloadSource(T):w==="clear"&&this._clearSource(T)}for(var D in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[D].updateTransitions(c);this.light.updateTransitions(c),this._resetUpdates()}var z={};for(var $ in this.sourceCaches){var K=this.sourceCaches[$];z[$]=K.used,K.used=!1}for(var ee=0,_e=this._order;ee<_e.length;ee+=1){var de=this._layers[_e[ee]];de.recalculate(c,this._availableImages),!de.isHidden(c.zoom)&&de.source&&(this.sourceCaches[de.source].used=!0)}for(var Te in z){var le=this.sourceCaches[Te];z[Te]!==le.used&&le.fire(new n.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:Te}))}this.light.recalculate(c),this.z=c.zoom,f&&this.fire(new n.Event("data",{dataType:"style"}))}},d.prototype._updateTilesForChangedImages=function(){var c=Object.keys(this._changedImages);if(c.length){for(var f in this.sourceCaches)this.sourceCaches[f].reloadTilesForDependencies(["icons","patterns"],c);this._changedImages={}}},d.prototype._updateWorkerLayers=function(c,f){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(c),removedIds:f})},d.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}},d.prototype.setState=function(c){var f=this;if(this._checkLoaded(),xs(this,n.validateStyle(c)))return!1;(c=n.clone$1(c)).layers=Wt(c.layers);var E=function(T,w){if(!T)return[{command:Zt.setStyle,args:[w]}];var D=[];try{if(!n.deepEqual(T.version,w.version))return[{command:Zt.setStyle,args:[w]}];n.deepEqual(T.center,w.center)||D.push({command:Zt.setCenter,args:[w.center]}),n.deepEqual(T.zoom,w.zoom)||D.push({command:Zt.setZoom,args:[w.zoom]}),n.deepEqual(T.bearing,w.bearing)||D.push({command:Zt.setBearing,args:[w.bearing]}),n.deepEqual(T.pitch,w.pitch)||D.push({command:Zt.setPitch,args:[w.pitch]}),n.deepEqual(T.sprite,w.sprite)||D.push({command:Zt.setSprite,args:[w.sprite]}),n.deepEqual(T.glyphs,w.glyphs)||D.push({command:Zt.setGlyphs,args:[w.glyphs]}),n.deepEqual(T.transition,w.transition)||D.push({command:Zt.setTransition,args:[w.transition]}),n.deepEqual(T.light,w.light)||D.push({command:Zt.setLight,args:[w.light]});var z={},$=[];(function(ee,_e,de,Te){var le;for(le in _e=_e||{},ee=ee||{})ee.hasOwnProperty(le)&&(_e.hasOwnProperty(le)||er(le,de,Te));for(le in _e)_e.hasOwnProperty(le)&&(ee.hasOwnProperty(le)?n.deepEqual(ee[le],_e[le])||(ee[le].type==="geojson"&&_e[le].type==="geojson"&&Jo(ee,_e,le)?de.push({command:Zt.setGeoJSONSourceData,args:[le,_e[le].data]}):Fo(le,_e,de,Te)):no(le,_e,de))})(T.sources,w.sources,$,z);var K=[];T.layers&&T.layers.forEach(function(ee){z[ee.source]?D.push({command:Zt.removeLayer,args:[ee.id]}):K.push(ee)}),D=D.concat($),function(ee,_e,de){_e=_e||[];var Te,le,Fe,De,Xe,at,Je,ct=(ee=ee||[]).map(Mo),Pt=_e.map(Mo),Ht=ee.reduce(ao,{}),Bt=_e.reduce(ao,{}),nr=ct.slice(),Cr=Object.create(null);for(Te=0,le=0;Te<ct.length;Te++)Bt.hasOwnProperty(Fe=ct[Te])?le++:(de.push({command:Zt.removeLayer,args:[Fe]}),nr.splice(nr.indexOf(Fe,le),1));for(Te=0,le=0;Te<Pt.length;Te++)nr[nr.length-1-Te]!==(Fe=Pt[Pt.length-1-Te])&&(Ht.hasOwnProperty(Fe)?(de.push({command:Zt.removeLayer,args:[Fe]}),nr.splice(nr.lastIndexOf(Fe,nr.length-le),1)):le++,de.push({command:Zt.addLayer,args:[Bt[Fe],at=nr[nr.length-Te]]}),nr.splice(nr.length-Te,0,Fe),Cr[Fe]=!0);for(Te=0;Te<Pt.length;Te++)if(De=Ht[Fe=Pt[Te]],Xe=Bt[Fe],!Cr[Fe]&&!n.deepEqual(De,Xe))if(n.deepEqual(De.source,Xe.source)&&n.deepEqual(De["source-layer"],Xe["source-layer"])&&n.deepEqual(De.type,Xe.type)){for(Je in vo(De.layout,Xe.layout,de,Fe,null,Zt.setLayoutProperty),vo(De.paint,Xe.paint,de,Fe,null,Zt.setPaintProperty),n.deepEqual(De.filter,Xe.filter)||de.push({command:Zt.setFilter,args:[Fe,Xe.filter]}),n.deepEqual(De.minzoom,Xe.minzoom)&&n.deepEqual(De.maxzoom,Xe.maxzoom)||de.push({command:Zt.setLayerZoomRange,args:[Fe,Xe.minzoom,Xe.maxzoom]}),De)De.hasOwnProperty(Je)&&Je!=="layout"&&Je!=="paint"&&Je!=="filter"&&Je!=="metadata"&&Je!=="minzoom"&&Je!=="maxzoom"&&(Je.indexOf("paint.")===0?vo(De[Je],Xe[Je],de,Fe,Je.slice(6),Zt.setPaintProperty):n.deepEqual(De[Je],Xe[Je])||de.push({command:Zt.setLayerProperty,args:[Fe,Je,Xe[Je]]}));for(Je in Xe)Xe.hasOwnProperty(Je)&&!De.hasOwnProperty(Je)&&Je!=="layout"&&Je!=="paint"&&Je!=="filter"&&Je!=="metadata"&&Je!=="minzoom"&&Je!=="maxzoom"&&(Je.indexOf("paint.")===0?vo(De[Je],Xe[Je],de,Fe,Je.slice(6),Zt.setPaintProperty):n.deepEqual(De[Je],Xe[Je])||de.push({command:Zt.setLayerProperty,args:[Fe,Je,Xe[Je]]}))}else de.push({command:Zt.removeLayer,args:[Fe]}),at=nr[nr.lastIndexOf(Fe)+1],de.push({command:Zt.addLayer,args:[Xe,at]})}(K,w.layers,D)}catch(ee){console.warn("Unable to compute style diff:",ee),D=[{command:Zt.setStyle,args:[w]}]}return D}(this.serialize(),c).filter(function(T){return!(T.command in Xs)});if(E.length===0)return!1;var A=E.filter(function(T){return!(T.command in Ps)});if(A.length>0)throw new Error("Unimplemented: "+A.map(function(T){return T.command}).join(", ")+".");return E.forEach(function(T){T.command!=="setTransition"&&f[T.command].apply(f,T.args)}),this.stylesheet=c,!0},d.prototype.addImage=function(c,f){if(this.getImage(c))return this.fire(new n.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(c,f),this._afterImageUpdated(c)},d.prototype.updateImage=function(c,f){this.imageManager.updateImage(c,f)},d.prototype.getImage=function(c){return this.imageManager.getImage(c)},d.prototype.removeImage=function(c){if(!this.getImage(c))return this.fire(new n.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(c),this._afterImageUpdated(c)},d.prototype._afterImageUpdated=function(c){this._availableImages=this.imageManager.listImages(),this._changedImages[c]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new n.Event("data",{dataType:"style"}))},d.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},d.prototype.addSource=function(c,f,E){var A=this;if(E===void 0&&(E={}),this._checkLoaded(),this.sourceCaches[c]!==void 0)throw new Error("There is already a source with this ID");if(!f.type)throw new Error("The type property must be defined, but only the following properties were given: "+Object.keys(f).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(f.type)>=0&&this._validate(n.validateStyle.source,"sources."+c,f,null,E))){this.map&&this.map._collectResourceTiming&&(f.collectResourceTiming=!0);var T=this.sourceCaches[c]=new ge(c,f,this.dispatcher);T.style=this,T.setEventedParent(this,function(){return{isSourceLoaded:A.loaded(),source:T.serialize(),sourceId:c}}),T.onAdd(this.map),this._changed=!0}},d.prototype.removeSource=function(c){if(this._checkLoaded(),this.sourceCaches[c]===void 0)throw new Error("There is no source with this ID");for(var f in this._layers)if(this._layers[f].source===c)return this.fire(new n.ErrorEvent(new Error('Source "'+c+'" cannot be removed while layer "'+f+'" is using it.')));var E=this.sourceCaches[c];delete this.sourceCaches[c],delete this._updatedSources[c],E.fire(new n.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:c})),E.setEventedParent(null),E.clearTiles(),E.onRemove&&E.onRemove(this.map),this._changed=!0},d.prototype.setGeoJSONSourceData=function(c,f){this._checkLoaded(),this.sourceCaches[c].getSource().setData(f),this._changed=!0},d.prototype.getSource=function(c){return this.sourceCaches[c]&&this.sourceCaches[c].getSource()},d.prototype.addLayer=function(c,f,E){E===void 0&&(E={}),this._checkLoaded();var A=c.id;if(this.getLayer(A))this.fire(new n.ErrorEvent(new Error('Layer with id "'+A+'" already exists on this map')));else{var T;if(c.type==="custom"){if(xs(this,n.validateCustomStyleLayer(c)))return;T=n.createStyleLayer(c)}else{if(typeof c.source=="object"&&(this.addSource(A,c.source),c=n.clone$1(c),c=n.extend(c,{source:A})),this._validate(n.validateStyle.layer,"layers."+A,c,{arrayIndex:-1},E))return;T=n.createStyleLayer(c),this._validateLayer(T),T.setEventedParent(this,{layer:{id:A}}),this._serializedLayers[T.id]=T.serialize()}var w=f?this._order.indexOf(f):this._order.length;if(f&&w===-1)this.fire(new n.ErrorEvent(new Error('Layer with id "'+f+'" does not exist on this map.')));else{if(this._order.splice(w,0,A),this._layerOrderChanged=!0,this._layers[A]=T,this._removedLayers[A]&&T.source&&T.type!=="custom"){var D=this._removedLayers[A];delete this._removedLayers[A],D.type!==T.type?this._updatedSources[T.source]="clear":(this._updatedSources[T.source]="reload",this.sourceCaches[T.source].pause())}this._updateLayer(T),T.onAdd&&T.onAdd(this.map)}}},d.prototype.moveLayer=function(c,f){if(this._checkLoaded(),this._changed=!0,this._layers[c]){if(c!==f){var E=this._order.indexOf(c);this._order.splice(E,1);var A=f?this._order.indexOf(f):this._order.length;f&&A===-1?this.fire(new n.ErrorEvent(new Error('Layer with id "'+f+'" does not exist on this map.'))):(this._order.splice(A,0,c),this._layerOrderChanged=!0)}}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be moved.")))},d.prototype.removeLayer=function(c){this._checkLoaded();var f=this._layers[c];if(f){f.setEventedParent(null);var E=this._order.indexOf(c);this._order.splice(E,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[c]=f,delete this._layers[c],delete this._serializedLayers[c],delete this._updatedLayers[c],delete this._updatedPaintProps[c],f.onRemove&&f.onRemove(this.map)}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be removed.")))},d.prototype.getLayer=function(c){return this._layers[c]},d.prototype.hasLayer=function(c){return c in this._layers},d.prototype.setLayerZoomRange=function(c,f,E){this._checkLoaded();var A=this.getLayer(c);A?A.minzoom===f&&A.maxzoom===E||(f!=null&&(A.minzoom=f),E!=null&&(A.maxzoom=E),this._updateLayer(A)):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot have zoom extent.")))},d.prototype.setFilter=function(c,f,E){E===void 0&&(E={}),this._checkLoaded();var A=this.getLayer(c);if(A){if(!n.deepEqual(A.filter,f))return f==null?(A.filter=void 0,void this._updateLayer(A)):void(this._validate(n.validateStyle.filter,"layers."+A.id+".filter",f,null,E)||(A.filter=n.clone$1(f),this._updateLayer(A)))}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be filtered.")))},d.prototype.getFilter=function(c){return n.clone$1(this.getLayer(c).filter)},d.prototype.setLayoutProperty=function(c,f,E,A){A===void 0&&(A={}),this._checkLoaded();var T=this.getLayer(c);T?n.deepEqual(T.getLayoutProperty(f),E)||(T.setLayoutProperty(f,E,A),this._updateLayer(T)):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getLayoutProperty=function(c,f){var E=this.getLayer(c);if(E)return E.getLayoutProperty(f);this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style.")))},d.prototype.setPaintProperty=function(c,f,E,A){A===void 0&&(A={}),this._checkLoaded();var T=this.getLayer(c);T?n.deepEqual(T.getPaintProperty(f),E)||(T.setPaintProperty(f,E,A)&&this._updateLayer(T),this._changed=!0,this._updatedPaintProps[c]=!0):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getPaintProperty=function(c,f){return this.getLayer(c).getPaintProperty(f)},d.prototype.setFeatureState=function(c,f){this._checkLoaded();var E=c.source,A=c.sourceLayer,T=this.sourceCaches[E];if(T!==void 0){var w=T.getSource().type;w==="geojson"&&A?this.fire(new n.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):w!=="vector"||A?(c.id===void 0&&this.fire(new n.ErrorEvent(new Error("The feature id parameter must be provided."))),T.setFeatureState(A,c.id,f)):this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.removeFeatureState=function(c,f){this._checkLoaded();var E=c.source,A=this.sourceCaches[E];if(A!==void 0){var T=A.getSource().type,w=T==="vector"?c.sourceLayer:void 0;T!=="vector"||w?f&&typeof c.id!="string"&&typeof c.id!="number"?this.fire(new n.ErrorEvent(new Error("A feature id is required to remove its specific state property."))):A.removeFeatureState(w,c.id,f):this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.getFeatureState=function(c){this._checkLoaded();var f=c.source,E=c.sourceLayer,A=this.sourceCaches[f];if(A!==void 0){if(A.getSource().type!=="vector"||E)return c.id===void 0&&this.fire(new n.ErrorEvent(new Error("The feature id parameter must be provided."))),A.getFeatureState(E,c.id);this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+f+"' does not exist in the map's style.")))},d.prototype.getTransition=function(){return n.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},d.prototype.serialize=function(){return n.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:n.mapObject(this.sourceCaches,function(c){return c.serialize()}),layers:this._serializeLayers(this._order)},function(c){return c!==void 0})},d.prototype._updateLayer=function(c){this._updatedLayers[c.id]=!0,c.source&&!this._updatedSources[c.source]&&this.sourceCaches[c.source].getSource().type!=="raster"&&(this._updatedSources[c.source]="reload",this.sourceCaches[c.source].pause()),this._changed=!0},d.prototype._flattenAndSortRenderedFeatures=function(c){for(var f=this,E=function(Ht){return f._layers[Ht].type==="fill-extrusion"},A={},T=[],w=this._order.length-1;w>=0;w--){var D=this._order[w];if(E(D)){A[D]=w;for(var z=0,$=c;z<$.length;z+=1){var K=$[z][D];if(K)for(var ee=0,_e=K;ee<_e.length;ee+=1)T.push(_e[ee])}}}T.sort(function(Ht,Bt){return Bt.intersectionZ-Ht.intersectionZ});for(var de=[],Te=this._order.length-1;Te>=0;Te--){var le=this._order[Te];if(E(le))for(var Fe=T.length-1;Fe>=0;Fe--){var De=T[Fe].feature;if(A[De.layer.id]<Te)break;de.push(De),T.pop()}else for(var Xe=0,at=c;Xe<at.length;Xe+=1){var Je=at[Xe][le];if(Je)for(var ct=0,Pt=Je;ct<Pt.length;ct+=1)de.push(Pt[ct].feature)}}return de},d.prototype.queryRenderedFeatures=function(c,f,E){f&&f.filter&&this._validate(n.validateStyle.filter,"queryRenderedFeatures.filter",f.filter,null,f);var A={};if(f&&f.layers){if(!Array.isArray(f.layers))return this.fire(new n.ErrorEvent(new Error("parameters.layers must be an Array."))),[];for(var T=0,w=f.layers;T<w.length;T+=1){var D=w[T],z=this._layers[D];if(!z)return this.fire(new n.ErrorEvent(new Error("The layer '"+D+"' does not exist in the map's style and cannot be queried for features."))),[];A[z.source]=!0}}var $=[];for(var K in f.availableImages=this._availableImages,this.sourceCaches)f.layers&&!A[K]||$.push(bo(this.sourceCaches[K],this._layers,this._serializedLayers,c,f,E));return this.placement&&$.push(function(ee,_e,de,Te,le,Fe,De){for(var Xe={},at=Fe.queryRenderedSymbols(Te),Je=[],ct=0,Pt=Object.keys(at).map(Number);ct<Pt.length;ct+=1)Je.push(De[Pt[ct]]);Je.sort(Ni);for(var Ht=function(){var Nr=nr[Bt],Lo=Nr.featureIndex.lookupSymbolFeatures(at[Nr.bucketInstanceId],_e,Nr.bucketIndex,Nr.sourceLayerIndex,le.filter,le.layers,le.availableImages,ee);for(var cr in Lo){var $r=Xe[cr]=Xe[cr]||[],lo=Lo[cr];lo.sort(function(uo,jr){var zr=Nr.featureSortOrder;if(zr){var qi=zr.indexOf(uo.featureIndex);return zr.indexOf(jr.featureIndex)-qi}return jr.featureIndex-uo.featureIndex});for(var Xr=0,Gr=lo;Xr<Gr.length;Xr+=1)$r.push(Gr[Xr])}},Bt=0,nr=Je;Bt<nr.length;Bt+=1)Ht();var Cr=function(Nr){Xe[Nr].forEach(function(Lo){var cr=Lo.feature,$r=de[ee[Nr].source].getFeatureState(cr.layer["source-layer"],cr.id);cr.source=cr.layer.source,cr.layer["source-layer"]&&(cr.sourceLayer=cr.layer["source-layer"]),cr.state=$r})};for(var Dr in Xe)Cr(Dr);return Xe}(this._layers,this._serializedLayers,this.sourceCaches,c,f,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures($)},d.prototype.querySourceFeatures=function(c,f){f&&f.filter&&this._validate(n.validateStyle.filter,"querySourceFeatures.filter",f.filter,null,f);var E=this.sourceCaches[c];return E?function(A,T){for(var w=A.getRenderableIds().map(function(_e){return A.getTileByID(_e)}),D=[],z={},$=0;$<w.length;$++){var K=w[$],ee=K.tileID.canonical.key;z[ee]||(z[ee]=!0,K.querySourceFeatures(D,T))}return D}(E,f):[]},d.prototype.addSourceType=function(c,f,E){return d.getSourceType(c)?E(new Error('A source type called "'+c+'" already exists.')):(d.setSourceType(c,f),f.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:c,url:f.workerSourceURL},E):E(null,null))},d.prototype.getLight=function(){return this.light.getLight()},d.prototype.setLight=function(c,f){f===void 0&&(f={}),this._checkLoaded();var E=this.light.getLight(),A=!1;for(var T in c)if(!n.deepEqual(c[T],E[T])){A=!0;break}if(A){var w={now:n.browser.now(),transition:n.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(c,f),this.light.updateTransitions(w)}},d.prototype._validate=function(c,f,E,A,T){return T===void 0&&(T={}),(!T||T.validate!==!1)&&xs(this,c.call(n.validateStyle,n.extend({key:f,style:this.serialize(),value:E,styleSpec:n.styleSpec},A)))},d.prototype._remove=function(){for(var c in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),n.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[c].setEventedParent(null);for(var f in this.sourceCaches)this.sourceCaches[f].clearTiles(),this.sourceCaches[f].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()},d.prototype._clearSource=function(c){this.sourceCaches[c].clearTiles()},d.prototype._reloadSource=function(c){this.sourceCaches[c].resume(),this.sourceCaches[c].reload()},d.prototype._updateSources=function(c){for(var f in this.sourceCaches)this.sourceCaches[f].update(c)},d.prototype._generateCollisionBoxes=function(){for(var c in this.sourceCaches)this._reloadSource(c)},d.prototype._updatePlacement=function(c,f,E,A,T){T===void 0&&(T=!1);for(var w=!1,D=!1,z={},$=0,K=this._order;$<K.length;$+=1){var ee=this._layers[K[$]];if(ee.type==="symbol"){if(!z[ee.source]){var _e=this.sourceCaches[ee.source];z[ee.source]=_e.getRenderableIds(!0).map(function(De){return _e.getTileByID(De)}).sort(function(De,Xe){return Xe.tileID.overscaledZ-De.tileID.overscaledZ||(De.tileID.isLessThan(Xe.tileID)?-1:1)})}var de=this.crossTileSymbolIndex.addLayer(ee,z[ee.source],c.center.lng);w=w||de}}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((T=T||this._layerOrderChanged||E===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(n.browser.now(),c.zoom))&&(this.pauseablePlacement=new Qp(c,this._order,T,f,E,A,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,z),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(n.browser.now()),D=!0),w&&this.pauseablePlacement.placement.setStale()),D||w)for(var Te=0,le=this._order;Te<le.length;Te+=1){var Fe=this._layers[le[Te]];Fe.type==="symbol"&&this.placement.updateLayerOpacities(Fe,z[Fe.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(n.browser.now())},d.prototype._releaseSymbolFadeTiles=function(){for(var c in this.sourceCaches)this.sourceCaches[c].releaseSymbolFadeTiles()},d.prototype.getImages=function(c,f,E){this.imageManager.getImages(f.icons,E),this._updateTilesForChangedImages();var A=this.sourceCaches[f.source];A&&A.setDependencies(f.tileID.key,f.type,f.icons)},d.prototype.getGlyphs=function(c,f,E){this.glyphManager.getGlyphs(f.stacks,E)},d.prototype.getResource=function(c,f,E){return n.makeRequest(f,E)},d}(n.Evented);ba.getSourceType=function(l){return oo[l]},ba.setSourceType=function(l,d){oo[l]=d},ba.registerForPluginStateChange=n.registerForPluginStateChange;var Oi=n.createLayout([{name:"a_pos",type:"Int16",components:2}]),_u=ri(`#ifdef GL_ES
- precision mediump float;
- #else
- #if !defined(lowp)
- #define lowp
- #endif
- #if !defined(mediump)
- #define mediump
- #endif
- #if !defined(highp)
- #define highp
- #endif
- #endif`,`#ifdef GL_ES
- precision highp float;
- #else
- #if !defined(lowp)
- #define lowp
- #endif
- #if !defined(mediump)
- #define mediump
- #endif
- #if !defined(highp)
- #define highp
- #endif
- #endif
- vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
- );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}`),Zs=ri(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Ol=ri(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),R1=ri(`varying vec3 v_data;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define mediump float radius
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define highp vec4 stroke_color
- #pragma mapbox: define mediump float stroke_width
- #pragma mapbox: define lowp float stroke_opacity
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize mediump float radius
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize highp vec4 stroke_color
- #pragma mapbox: initialize mediump float stroke_width
- #pragma mapbox: initialize lowp float stroke_opacity
- vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define mediump float radius
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define highp vec4 stroke_color
- #pragma mapbox: define mediump float stroke_width
- #pragma mapbox: define lowp float stroke_opacity
- void main(void) {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize mediump float radius
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize highp vec4 stroke_color
- #pragma mapbox: initialize mediump float stroke_width
- #pragma mapbox: initialize lowp float stroke_opacity
- vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),Ll=ri("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Ic=ri(`uniform highp float u_intensity;varying vec2 v_extrude;
- #pragma mapbox: define highp float weight
- #define GAUSS_COEF 0.3989422804014327
- void main() {
- #pragma mapbox: initialize highp float weight
- float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;
- #pragma mapbox: define highp float weight
- #pragma mapbox: define mediump float radius
- const highp float ZERO=1.0/255.0/16.0;
- #define GAUSS_COEF 0.3989422804014327
- void main(void) {
- #pragma mapbox: initialize highp float weight
- #pragma mapbox: initialize mediump float radius
- vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),Mc=ri(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(0.0);
- #endif
- }`,"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),Nc=ri("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),C1=ri("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),I1=ri("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),$0=ri(`#pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float opacity
- gl_FragColor=color*opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`attribute vec2 a_pos;uniform mat4 u_matrix;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float opacity
- gl_Position=u_matrix*vec4(a_pos,0,1);}`),el=ri(`varying vec2 v_pos;
- #pragma mapbox: define highp vec4 outline_color
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize highp vec4 outline_color
- #pragma mapbox: initialize lowp float opacity
- float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;
- #pragma mapbox: define highp vec4 outline_color
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize highp vec4 outline_color
- #pragma mapbox: initialize lowp float opacity
- gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),bs=ri(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- void main() {
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- void main() {
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),M1=ri(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- void main() {
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- void main() {
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),Un=ri(`varying vec4 v_color;void main() {gl_FragColor=v_color;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;
- #pragma mapbox: define highp float base
- #pragma mapbox: define highp float height
- #pragma mapbox: define highp vec4 color
- void main() {
- #pragma mapbox: initialize highp float base
- #pragma mapbox: initialize highp float height
- #pragma mapbox: initialize highp vec4 color
- vec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),$u=ri(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
- #pragma mapbox: define lowp float base
- #pragma mapbox: define lowp float height
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- void main() {
- #pragma mapbox: initialize lowp float base
- #pragma mapbox: initialize lowp float height
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
- #pragma mapbox: define lowp float base
- #pragma mapbox: define lowp float height
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- void main() {
- #pragma mapbox: initialize lowp float base
- #pragma mapbox: initialize lowp float height
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
- ? a_pos
- : vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),gu=ri(`#ifdef GL_ES
- precision highp float;
- #endif
- uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),Da=ri(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;
- #define PI 3.141592653589793
- void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),vu=ri(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`
- #define scale 0.015873016
- attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define mediump float gapwidth
- #pragma mapbox: define lowp float offset
- #pragma mapbox: define mediump float width
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump float gapwidth
- #pragma mapbox: initialize lowp float offset
- #pragma mapbox: initialize mediump float width
- float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Za=ri(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`
- #define scale 0.015873016
- attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define mediump float gapwidth
- #pragma mapbox: define lowp float offset
- #pragma mapbox: define mediump float width
- void main() {
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump float gapwidth
- #pragma mapbox: initialize lowp float offset
- #pragma mapbox: initialize mediump float width
- float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Ys=ri(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`
- #define scale 0.015873016
- #define LINE_DISTANCE_SCALE 2.0
- attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp float offset
- #pragma mapbox: define mediump float gapwidth
- #pragma mapbox: define mediump float width
- #pragma mapbox: define lowp float floorwidth
- #pragma mapbox: define lowp vec4 pattern_from
- #pragma mapbox: define lowp vec4 pattern_to
- #pragma mapbox: define lowp float pixel_ratio_from
- #pragma mapbox: define lowp float pixel_ratio_to
- void main() {
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize lowp float offset
- #pragma mapbox: initialize mediump float gapwidth
- #pragma mapbox: initialize mediump float width
- #pragma mapbox: initialize lowp float floorwidth
- #pragma mapbox: initialize mediump vec4 pattern_from
- #pragma mapbox: initialize mediump vec4 pattern_to
- #pragma mapbox: initialize lowp float pixel_ratio_from
- #pragma mapbox: initialize lowp float pixel_ratio_to
- float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),Oa=ri(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define mediump float width
- #pragma mapbox: define lowp float floorwidth
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump float width
- #pragma mapbox: initialize lowp float floorwidth
- float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`
- #define scale 0.015873016
- #define LINE_DISTANCE_SCALE 2.0
- attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
- #pragma mapbox: define highp vec4 color
- #pragma mapbox: define lowp float blur
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define mediump float gapwidth
- #pragma mapbox: define lowp float offset
- #pragma mapbox: define mediump float width
- #pragma mapbox: define lowp float floorwidth
- void main() {
- #pragma mapbox: initialize highp vec4 color
- #pragma mapbox: initialize lowp float blur
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize mediump float gapwidth
- #pragma mapbox: initialize lowp float offset
- #pragma mapbox: initialize mediump float width
- #pragma mapbox: initialize lowp float floorwidth
- float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),$s=ri(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),Eu=ri(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize lowp float opacity
- lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;
- #pragma mapbox: define lowp float opacity
- void main() {
- #pragma mapbox: initialize lowp float opacity
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
- camera_to_anchor_distance/u_camera_to_center_distance :
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`),N1=ri(`#define SDF_PX 8.0
- uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;
- #pragma mapbox: define highp vec4 fill_color
- #pragma mapbox: define highp vec4 halo_color
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp float halo_width
- #pragma mapbox: define lowp float halo_blur
- void main() {
- #pragma mapbox: initialize highp vec4 fill_color
- #pragma mapbox: initialize highp vec4 halo_color
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize lowp float halo_width
- #pragma mapbox: initialize lowp float halo_blur
- float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;
- #pragma mapbox: define highp vec4 fill_color
- #pragma mapbox: define highp vec4 halo_color
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp float halo_width
- #pragma mapbox: define lowp float halo_blur
- void main() {
- #pragma mapbox: initialize highp vec4 fill_color
- #pragma mapbox: initialize highp vec4 halo_color
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize lowp float halo_width
- #pragma mapbox: initialize lowp float halo_blur
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
- camera_to_anchor_distance/u_camera_to_center_distance :
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),D1=ri(`#define SDF_PX 8.0
- #define SDF 1.0
- #define ICON 0.0
- uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;
- #pragma mapbox: define highp vec4 fill_color
- #pragma mapbox: define highp vec4 halo_color
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp float halo_width
- #pragma mapbox: define lowp float halo_blur
- void main() {
- #pragma mapbox: initialize highp vec4 fill_color
- #pragma mapbox: initialize highp vec4 halo_color
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize lowp float halo_width
- #pragma mapbox: initialize lowp float halo_blur
- float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);
- #ifdef OVERDRAW_INSPECTOR
- gl_FragColor=vec4(1.0);
- #endif
- }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;
- #pragma mapbox: define highp vec4 fill_color
- #pragma mapbox: define highp vec4 halo_color
- #pragma mapbox: define lowp float opacity
- #pragma mapbox: define lowp float halo_width
- #pragma mapbox: define lowp float halo_blur
- void main() {
- #pragma mapbox: initialize highp vec4 fill_color
- #pragma mapbox: initialize highp vec4 halo_color
- #pragma mapbox: initialize lowp float opacity
- #pragma mapbox: initialize lowp float halo_width
- #pragma mapbox: initialize lowp float halo_blur
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
- camera_to_anchor_distance/u_camera_to_center_distance :
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`);function ri(l,d){var c=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,f=d.match(/attribute ([\w]+) ([\w]+)/g),E=l.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),A=d.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),T=A?A.concat(E):E,w={};return{fragmentSource:l=l.replace(c,function(D,z,$,K,ee){return w[ee]=!0,z==="define"?`
- #ifndef HAS_UNIFORM_u_`+ee+`
- varying `+$+" "+K+" "+ee+`;
- #else
- uniform `+$+" "+K+" u_"+ee+`;
- #endif
- `:`
- #ifdef HAS_UNIFORM_u_`+ee+`
- `+$+" "+K+" "+ee+" = u_"+ee+`;
- #endif
- `}),vertexSource:d=d.replace(c,function(D,z,$,K,ee){var _e=K==="float"?"vec2":"vec4",de=ee.match(/color/)?"color":_e;return w[ee]?z==="define"?`
- #ifndef HAS_UNIFORM_u_`+ee+`
- uniform lowp float u_`+ee+`_t;
- attribute `+$+" "+_e+" a_"+ee+`;
- varying `+$+" "+K+" "+ee+`;
- #else
- uniform `+$+" "+K+" u_"+ee+`;
- #endif
- `:de==="vec4"?`
- #ifndef HAS_UNIFORM_u_`+ee+`
- `+ee+" = a_"+ee+`;
- #else
- `+$+" "+K+" "+ee+" = u_"+ee+`;
- #endif
- `:`
- #ifndef HAS_UNIFORM_u_`+ee+`
- `+ee+" = unpack_mix_"+de+"(a_"+ee+", u_"+ee+`_t);
- #else
- `+$+" "+K+" "+ee+" = u_"+ee+`;
- #endif
- `:z==="define"?`
- #ifndef HAS_UNIFORM_u_`+ee+`
- uniform lowp float u_`+ee+`_t;
- attribute `+$+" "+_e+" a_"+ee+`;
- #else
- uniform `+$+" "+K+" u_"+ee+`;
- #endif
- `:de==="vec4"?`
- #ifndef HAS_UNIFORM_u_`+ee+`
- `+$+" "+K+" "+ee+" = a_"+ee+`;
- #else
- `+$+" "+K+" "+ee+" = u_"+ee+`;
- #endif
- `:`
- #ifndef HAS_UNIFORM_u_`+ee+`
- `+$+" "+K+" "+ee+" = unpack_mix_"+de+"(a_"+ee+", u_"+ee+`_t);
- #else
- `+$+" "+K+" "+ee+" = u_"+ee+`;
- #endif
- `}),staticAttributes:f,staticUniforms:T}}var q0=Object.freeze({__proto__:null,prelude:_u,background:Zs,backgroundPattern:Ol,circle:R1,clippingMask:Ll,heatmap:Ic,heatmapTexture:Mc,collisionBox:Nc,collisionCircle:C1,debug:I1,fill:$0,fillOutline:el,fillOutlinePattern:bs,fillPattern:M1,fillExtrusion:Un,fillExtrusionPattern:$u,hillshadePrepare:gu,hillshade:Da,line:vu,lineGradient:Za,linePattern:Ys,lineSDF:Oa,raster:$s,symbolIcon:Eu,symbolSDF:N1,symbolTextAndIcon:D1}),Bl=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};function Dc(l){for(var d=[],c=0;c<l.length;c++)if(l[c]!==null){var f=l[c].split(" ");d.push(f.pop())}return d}Bl.prototype.bind=function(l,d,c,f,E,A,T,w){this.context=l;for(var D=this.boundPaintVertexBuffers.length!==f.length,z=0;!D&&z<f.length;z++)this.boundPaintVertexBuffers[z]!==f[z]&&(D=!0);l.extVertexArrayObject&&this.vao&&this.boundProgram===d&&this.boundLayoutVertexBuffer===c&&!D&&this.boundIndexBuffer===E&&this.boundVertexOffset===A&&this.boundDynamicVertexBuffer===T&&this.boundDynamicVertexBuffer2===w?(l.bindVertexArrayOES.set(this.vao),T&&T.bind(),E&&E.dynamicDraw&&E.bind(),w&&w.bind()):this.freshBind(d,c,f,E,A,T,w)},Bl.prototype.freshBind=function(l,d,c,f,E,A,T){var w,D=l.numAttributes,z=this.context,$=z.gl;if(z.extVertexArrayObject)this.vao&&this.destroy(),this.vao=z.extVertexArrayObject.createVertexArrayOES(),z.bindVertexArrayOES.set(this.vao),w=0,this.boundProgram=l,this.boundLayoutVertexBuffer=d,this.boundPaintVertexBuffers=c,this.boundIndexBuffer=f,this.boundVertexOffset=E,this.boundDynamicVertexBuffer=A,this.boundDynamicVertexBuffer2=T;else{w=z.currentNumAttributes||0;for(var K=D;K<w;K++)$.disableVertexAttribArray(K)}d.enableAttributes($,l);for(var ee=0,_e=c;ee<_e.length;ee+=1)_e[ee].enableAttributes($,l);A&&A.enableAttributes($,l),T&&T.enableAttributes($,l),d.bind(),d.setVertexAttribPointers($,l,E);for(var de=0,Te=c;de<Te.length;de+=1){var le=Te[de];le.bind(),le.setVertexAttribPointers($,l,E)}A&&(A.bind(),A.setVertexAttribPointers($,l,E)),f&&f.bind(),T&&(T.bind(),T.setVertexAttribPointers($,l,E)),z.currentNumAttributes=D},Bl.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var Li=function(l,d,c,f,E,A){var T=l.gl;this.program=T.createProgram();for(var w=Dc(c.staticAttributes),D=f?f.getBinderAttributes():[],z=w.concat(D),$=c.staticUniforms?Dc(c.staticUniforms):[],K=f?f.getBinderUniforms():[],ee=[],_e=0,de=$.concat(K);_e<de.length;_e+=1){var Te=de[_e];ee.indexOf(Te)<0&&ee.push(Te)}var le=f?f.defines():[];A&&le.push("#define OVERDRAW_INSPECTOR;");var Fe=le.concat(_u.fragmentSource,c.fragmentSource).join(`
- `),De=le.concat(_u.vertexSource,c.vertexSource).join(`
- `),Xe=T.createShader(T.FRAGMENT_SHADER);if(T.isContextLost())this.failedToCreate=!0;else{T.shaderSource(Xe,Fe),T.compileShader(Xe),T.attachShader(this.program,Xe);var at=T.createShader(T.VERTEX_SHADER);if(T.isContextLost())this.failedToCreate=!0;else{T.shaderSource(at,De),T.compileShader(at),T.attachShader(this.program,at),this.attributes={};var Je={};this.numAttributes=z.length;for(var ct=0;ct<this.numAttributes;ct++)z[ct]&&(T.bindAttribLocation(this.program,ct,z[ct]),this.attributes[z[ct]]=ct);T.linkProgram(this.program),T.deleteShader(at),T.deleteShader(Xe);for(var Pt=0;Pt<ee.length;Pt++){var Ht=ee[Pt];if(Ht&&!Je[Ht]){var Bt=T.getUniformLocation(this.program,Ht);Bt&&(Je[Ht]=Bt)}}this.fixedUniforms=E(l,Je),this.binderUniforms=f?f.getUniforms(l,Je):[]}}};function Oc(l,d,c){var f=1/ui(c,1,d.transform.tileZoom),E=Math.pow(2,c.tileID.overscaledZ),A=c.tileSize*Math.pow(2,d.transform.tileZoom)/E,T=A*(c.tileID.canonical.x+c.tileID.wrap*E),w=A*c.tileID.canonical.y;return{u_image:0,u_texsize:c.imageAtlasTexture.size,u_scale:[f,l.fromScale,l.toScale],u_fade:l.t,u_pixel_coord_upper:[T>>16,w>>16],u_pixel_coord_lower:[65535&T,65535&w]}}Li.prototype.draw=function(l,d,c,f,E,A,T,w,D,z,$,K,ee,_e,de,Te){var le,Fe=l.gl;if(!this.failedToCreate){for(var De in l.program.set(this.program),l.setDepthMode(c),l.setStencilMode(f),l.setColorMode(E),l.setCullFace(A),this.fixedUniforms)this.fixedUniforms[De].set(T[De]);_e&&_e.setUniforms(l,this.binderUniforms,K,{zoom:ee});for(var Xe=(le={},le[Fe.LINES]=2,le[Fe.TRIANGLES]=3,le[Fe.LINE_STRIP]=1,le)[d],at=0,Je=$.get();at<Je.length;at+=1){var ct=Je[at],Pt=ct.vaos||(ct.vaos={});(Pt[w]||(Pt[w]=new Bl)).bind(l,this,D,_e?_e.getPaintVertexBuffers():[],z,ct.vertexOffset,de,Te),Fe.drawElements(d,ct.primitiveLength*Xe,Fe.UNSIGNED_SHORT,ct.primitiveOffset*Xe*2)}}};var O1=function(l,d,c,f){var E=d.style.light,A=E.properties.get("position"),T=[A.x,A.y,A.z],w=n.create$1();E.properties.get("anchor")==="viewport"&&n.fromRotation(w,-d.transform.angle),n.transformMat3(T,T,w);var D=E.properties.get("color");return{u_matrix:l,u_lightpos:T,u_lightintensity:E.properties.get("intensity"),u_lightcolor:[D.r,D.g,D.b],u_vertical_gradient:+c,u_opacity:f}},la=function(l,d,c,f,E,A,T){return n.extend(O1(l,d,c,f),Oc(A,d,T),{u_height_factor:-Math.pow(2,E.overscaledZ)/T.tileSize/8})},qs=function(l){return{u_matrix:l}},As=function(l,d,c,f){return n.extend(qs(l),Oc(c,d,f))},xu=function(l,d){return{u_matrix:l,u_world:d}},Ul=function(l,d,c,f,E){return n.extend(As(l,d,c,f),{u_world:E})},xp=function(l,d,c,f){var E,A,T=l.transform;if(f.paint.get("circle-pitch-alignment")==="map"){var w=ui(c,1,T.zoom);E=!0,A=[w,w]}else E=!1,A=T.pixelsToGLUnits;return{u_camera_to_center_distance:T.cameraToCenterDistance,u_scale_with_map:+(f.paint.get("circle-pitch-scale")==="map"),u_matrix:l.translatePosMatrix(d.posMatrix,c,f.paint.get("circle-translate"),f.paint.get("circle-translate-anchor")),u_pitch_with_map:+E,u_device_pixel_ratio:n.browser.devicePixelRatio,u_extrude_scale:A}},ps=function(l,d,c){var f=ui(c,1,d.zoom),E=Math.pow(2,d.zoom-c.tileID.overscaledZ),A=c.tileID.overscaleFactor();return{u_matrix:l,u_camera_to_center_distance:d.cameraToCenterDistance,u_pixels_to_tile_units:f,u_extrude_scale:[d.pixelsToGLUnits[0]/(f*E),d.pixelsToGLUnits[1]/(f*E)],u_overscale_factor:A}},tl=function(l,d,c){return{u_matrix:l,u_inv_matrix:d,u_camera_to_center_distance:c.cameraToCenterDistance,u_viewport_size:[c.width,c.height]}},Pu=function(l,d,c){return c===void 0&&(c=1),{u_matrix:l,u_color:d,u_overlay:0,u_overlay_scale:c}},Ks=function(l){return{u_matrix:l}},Lc=function(l,d,c,f){return{u_matrix:l,u_extrude_scale:ui(d,1,c),u_intensity:f}},rl=function(l,d,c){var f=l.transform;return{u_matrix:ol(l,d,c),u_ratio:1/ui(d,1,f.zoom),u_device_pixel_ratio:n.browser.devicePixelRatio,u_units_to_pixels:[1/f.pixelsToGLUnits[0],1/f.pixelsToGLUnits[1]]}},li=function(l,d,c,f){return n.extend(rl(l,d,c),{u_image:0,u_image_height:f})},kl=function(l,d,c,f){var E=l.transform,A=bu(d,E);return{u_matrix:ol(l,d,c),u_texsize:d.imageAtlasTexture.size,u_ratio:1/ui(d,1,E.zoom),u_device_pixel_ratio:n.browser.devicePixelRatio,u_image:0,u_scale:[A,f.fromScale,f.toScale],u_fade:f.t,u_units_to_pixels:[1/E.pixelsToGLUnits[0],1/E.pixelsToGLUnits[1]]}},K0=function(l,d,c,f,E){var A=l.lineAtlas,T=bu(d,l.transform),w=c.layout.get("line-cap")==="round",D=A.getDash(f.from,w),z=A.getDash(f.to,w),$=D.width*E.fromScale,K=z.width*E.toScale;return n.extend(rl(l,d,c),{u_patternscale_a:[T/$,-D.height/2],u_patternscale_b:[T/K,-z.height/2],u_sdfgamma:A.width/(256*Math.min($,K)*n.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:D.y,u_tex_y_b:z.y,u_mix:E.t})};function bu(l,d){return 1/ui(l,1,d.tileZoom)}function ol(l,d,c){return l.translatePosMatrix(d.tileID.posMatrix,d,c.paint.get("line-translate"),c.paint.get("line-translate-anchor"))}var Bc=function(l,d,c,f,E){return{u_matrix:l,u_tl_parent:d,u_scale_parent:c,u_buffer_scale:1,u_fade_t:f.mix,u_opacity:f.opacity*E.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:E.paint.get("raster-brightness-min"),u_brightness_high:E.paint.get("raster-brightness-max"),u_saturation_factor:(T=E.paint.get("raster-saturation"),T>0?1-1/(1.001-T):-T),u_contrast_factor:(A=E.paint.get("raster-contrast"),A>0?1/(1-A):1+A),u_spin_weights:zl(E.paint.get("raster-hue-rotate"))};var A,T};function zl(l){l*=Math.PI/180;var d=Math.sin(l),c=Math.cos(l);return[(2*c+1)/3,(-Math.sqrt(3)*d-c+1)/3,(Math.sqrt(3)*d-c+1)/3]}var Qs,Au=function(l,d,c,f,E,A,T,w,D,z){var $=E.transform;return{u_is_size_zoom_constant:+(l==="constant"||l==="source"),u_is_size_feature_constant:+(l==="constant"||l==="camera"),u_size_t:d?d.uSizeT:0,u_size:d?d.uSize:0,u_camera_to_center_distance:$.cameraToCenterDistance,u_pitch:$.pitch/360*2*Math.PI,u_rotate_symbol:+c,u_aspect_ratio:$.width/$.height,u_fade_change:E.options.fadeDuration?E.symbolFadeChange:1,u_matrix:A,u_label_plane_matrix:T,u_coord_matrix:w,u_is_text:+D,u_pitch_with_map:+f,u_texsize:z,u_texture:0}},qu=function(l,d,c,f,E,A,T,w,D,z,$){var K=E.transform;return n.extend(Au(l,d,c,f,E,A,T,w,D,z),{u_gamma_scale:f?Math.cos(K._pitch)*K.cameraToCenterDistance:1,u_device_pixel_ratio:n.browser.devicePixelRatio,u_is_halo:1})},Pp=function(l,d,c,f,E,A,T,w,D,z){return n.extend(qu(l,d,c,f,E,A,T,w,!0,D),{u_texsize_icon:z,u_texture_icon:1})},Ku=function(l,d,c){return{u_matrix:l,u_opacity:d,u_color:c}},Qu=function(l,d,c,f,E,A){return n.extend(function(T,w,D,z){var $=D.imageManager.getPattern(T.from.toString()),K=D.imageManager.getPattern(T.to.toString()),ee=D.imageManager.getPixelSize(),_e=ee.width,de=ee.height,Te=Math.pow(2,z.tileID.overscaledZ),le=z.tileSize*Math.pow(2,D.transform.tileZoom)/Te,Fe=le*(z.tileID.canonical.x+z.tileID.wrap*Te),De=le*z.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:$.tl,u_pattern_br_a:$.br,u_pattern_tl_b:K.tl,u_pattern_br_b:K.br,u_texsize:[_e,de],u_mix:w.t,u_pattern_size_a:$.displaySize,u_pattern_size_b:K.displaySize,u_scale_a:w.fromScale,u_scale_b:w.toScale,u_tile_units_to_pixels:1/ui(z,1,D.transform.tileZoom),u_pixel_coord_upper:[Fe>>16,De>>16],u_pixel_coord_lower:[65535&Fe,65535&De]}}(f,A,c,E),{u_matrix:l,u_opacity:d})},Uc={fillExtrusion:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_lightpos:new n.Uniform3f(l,d.u_lightpos),u_lightintensity:new n.Uniform1f(l,d.u_lightintensity),u_lightcolor:new n.Uniform3f(l,d.u_lightcolor),u_vertical_gradient:new n.Uniform1f(l,d.u_vertical_gradient),u_opacity:new n.Uniform1f(l,d.u_opacity)}},fillExtrusionPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_lightpos:new n.Uniform3f(l,d.u_lightpos),u_lightintensity:new n.Uniform1f(l,d.u_lightintensity),u_lightcolor:new n.Uniform3f(l,d.u_lightcolor),u_vertical_gradient:new n.Uniform1f(l,d.u_vertical_gradient),u_height_factor:new n.Uniform1f(l,d.u_height_factor),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade),u_opacity:new n.Uniform1f(l,d.u_opacity)}},fill:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},fillPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},fillOutline:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world)}},fillOutlinePattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},circle:function(l,d){return{u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_scale_with_map:new n.Uniform1i(l,d.u_scale_with_map),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_extrude_scale:new n.Uniform2f(l,d.u_extrude_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},collisionBox:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pixels_to_tile_units:new n.Uniform1f(l,d.u_pixels_to_tile_units),u_extrude_scale:new n.Uniform2f(l,d.u_extrude_scale),u_overscale_factor:new n.Uniform1f(l,d.u_overscale_factor)}},collisionCircle:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_inv_matrix:new n.UniformMatrix4f(l,d.u_inv_matrix),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_viewport_size:new n.Uniform2f(l,d.u_viewport_size)}},debug:function(l,d){return{u_color:new n.UniformColor(l,d.u_color),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_overlay:new n.Uniform1i(l,d.u_overlay),u_overlay_scale:new n.Uniform1f(l,d.u_overlay_scale)}},clippingMask:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},heatmap:function(l,d){return{u_extrude_scale:new n.Uniform1f(l,d.u_extrude_scale),u_intensity:new n.Uniform1f(l,d.u_intensity),u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},heatmapTexture:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world),u_image:new n.Uniform1i(l,d.u_image),u_color_ramp:new n.Uniform1i(l,d.u_color_ramp),u_opacity:new n.Uniform1f(l,d.u_opacity)}},hillshade:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_latrange:new n.Uniform2f(l,d.u_latrange),u_light:new n.Uniform2f(l,d.u_light),u_shadow:new n.UniformColor(l,d.u_shadow),u_highlight:new n.UniformColor(l,d.u_highlight),u_accent:new n.UniformColor(l,d.u_accent)}},hillshadePrepare:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_dimension:new n.Uniform2f(l,d.u_dimension),u_zoom:new n.Uniform1f(l,d.u_zoom),u_unpack:new n.Uniform4f(l,d.u_unpack)}},line:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels)}},lineGradient:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_image:new n.Uniform1i(l,d.u_image),u_image_height:new n.Uniform1f(l,d.u_image_height)}},linePattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_texsize:new n.Uniform2f(l,d.u_texsize),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_image:new n.Uniform1i(l,d.u_image),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},lineSDF:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_patternscale_a:new n.Uniform2f(l,d.u_patternscale_a),u_patternscale_b:new n.Uniform2f(l,d.u_patternscale_b),u_sdfgamma:new n.Uniform1f(l,d.u_sdfgamma),u_image:new n.Uniform1i(l,d.u_image),u_tex_y_a:new n.Uniform1f(l,d.u_tex_y_a),u_tex_y_b:new n.Uniform1f(l,d.u_tex_y_b),u_mix:new n.Uniform1f(l,d.u_mix)}},raster:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_tl_parent:new n.Uniform2f(l,d.u_tl_parent),u_scale_parent:new n.Uniform1f(l,d.u_scale_parent),u_buffer_scale:new n.Uniform1f(l,d.u_buffer_scale),u_fade_t:new n.Uniform1f(l,d.u_fade_t),u_opacity:new n.Uniform1f(l,d.u_opacity),u_image0:new n.Uniform1i(l,d.u_image0),u_image1:new n.Uniform1i(l,d.u_image1),u_brightness_low:new n.Uniform1f(l,d.u_brightness_low),u_brightness_high:new n.Uniform1f(l,d.u_brightness_high),u_saturation_factor:new n.Uniform1f(l,d.u_saturation_factor),u_contrast_factor:new n.Uniform1f(l,d.u_contrast_factor),u_spin_weights:new n.Uniform3f(l,d.u_spin_weights)}},symbolIcon:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texture:new n.Uniform1i(l,d.u_texture)}},symbolSDF:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texture:new n.Uniform1i(l,d.u_texture),u_gamma_scale:new n.Uniform1f(l,d.u_gamma_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_is_halo:new n.Uniform1i(l,d.u_is_halo)}},symbolTextAndIcon:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texsize_icon:new n.Uniform2f(l,d.u_texsize_icon),u_texture:new n.Uniform1i(l,d.u_texture),u_texture_icon:new n.Uniform1i(l,d.u_texture_icon),u_gamma_scale:new n.Uniform1f(l,d.u_gamma_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_is_halo:new n.Uniform1i(l,d.u_is_halo)}},background:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_opacity:new n.Uniform1f(l,d.u_opacity),u_color:new n.UniformColor(l,d.u_color)}},backgroundPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_opacity:new n.Uniform1f(l,d.u_opacity),u_image:new n.Uniform1i(l,d.u_image),u_pattern_tl_a:new n.Uniform2f(l,d.u_pattern_tl_a),u_pattern_br_a:new n.Uniform2f(l,d.u_pattern_br_a),u_pattern_tl_b:new n.Uniform2f(l,d.u_pattern_tl_b),u_pattern_br_b:new n.Uniform2f(l,d.u_pattern_br_b),u_texsize:new n.Uniform2f(l,d.u_texsize),u_mix:new n.Uniform1f(l,d.u_mix),u_pattern_size_a:new n.Uniform2f(l,d.u_pattern_size_a),u_pattern_size_b:new n.Uniform2f(l,d.u_pattern_size_b),u_scale_a:new n.Uniform1f(l,d.u_scale_a),u_scale_b:new n.Uniform1f(l,d.u_scale_b),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_tile_units_to_pixels:new n.Uniform1f(l,d.u_tile_units_to_pixels)}}};function Ju(l,d,c,f,E,A,T){for(var w=l.context,D=w.gl,z=l.useProgram("collisionBox"),$=[],K=0,ee=0,_e=0;_e<f.length;_e++){var de=f[_e],Te=d.getTile(de),le=Te.getBucket(c);if(le){var Fe=de.posMatrix;E[0]===0&&E[1]===0||(Fe=l.translatePosMatrix(de.posMatrix,Te,E,A));var De=T?le.textCollisionBox:le.iconCollisionBox,Xe=le.collisionCircleArray;if(Xe.length>0){var at=n.create(),Je=Fe;n.mul(at,le.placementInvProjMatrix,l.transform.glCoordMatrix),n.mul(at,at,le.placementViewportMatrix),$.push({circleArray:Xe,circleOffset:ee,transform:Je,invTransform:at}),ee=K+=Xe.length/4}De&&z.draw(w,D.LINES,oe.disabled,ye.disabled,l.colorModeForRenderPass(),Le.disabled,ps(Fe,l.transform,Te),c.id,De.layoutVertexBuffer,De.indexBuffer,De.segments,null,l.transform.zoom,null,null,De.collisionVertexBuffer)}}if(T&&$.length){var ct=l.useProgram("collisionCircle"),Pt=new n.StructArrayLayout2f1f2i16;Pt.resize(4*K),Pt._trim();for(var Ht=0,Bt=0,nr=$;Bt<nr.length;Bt+=1)for(var Cr=nr[Bt],Dr=0;Dr<Cr.circleArray.length/4;Dr++){var Nr=4*Dr,Lo=Cr.circleArray[Nr+0],cr=Cr.circleArray[Nr+1],$r=Cr.circleArray[Nr+2],lo=Cr.circleArray[Nr+3];Pt.emplace(Ht++,Lo,cr,$r,lo,0),Pt.emplace(Ht++,Lo,cr,$r,lo,1),Pt.emplace(Ht++,Lo,cr,$r,lo,2),Pt.emplace(Ht++,Lo,cr,$r,lo,3)}(!Qs||Qs.length<2*K)&&(Qs=function(Si){var Rn=2*Si,hn=new n.StructArrayLayout3ui6;hn.resize(Rn),hn._trim();for(var Fi=0;Fi<Rn;Fi++){var wi=6*Fi;hn.uint16[wi+0]=4*Fi+0,hn.uint16[wi+1]=4*Fi+1,hn.uint16[wi+2]=4*Fi+2,hn.uint16[wi+3]=4*Fi+2,hn.uint16[wi+4]=4*Fi+3,hn.uint16[wi+5]=4*Fi+0}return hn}(K));for(var Xr=w.createIndexBuffer(Qs,!0),Gr=w.createVertexBuffer(Pt,n.collisionCircleLayout.members,!0),uo=0,jr=$;uo<jr.length;uo+=1){var zr=jr[uo],qi=tl(zr.transform,zr.invTransform,l.transform);ct.draw(w,D.TRIANGLES,oe.disabled,ye.disabled,l.colorModeForRenderPass(),Le.disabled,qi,c.id,Gr,Xr,n.SegmentVector.simpleSegment(0,2*zr.circleOffset,zr.circleArray.length,zr.circleArray.length/2),null,l.transform.zoom,null,null,null)}Gr.destroy(),Xr.destroy()}}var Ya=n.identity(new Float32Array(16));function kc(l,d,c,f,E,A){var T=n.getAnchorAlignment(l),w=-(T.horizontalAlign-.5)*d,D=-(T.verticalAlign-.5)*c,z=n.evaluateVariableOffset(l,f);return new n.Point((w/E+z[0])*A,(D/E+z[1])*A)}function zc(l,d,c,f,E,A,T,w,D,z,$){var K=l.text.placedSymbolArray,ee=l.text.dynamicLayoutVertexArray,_e=l.icon.dynamicLayoutVertexArray,de={};ee.clear();for(var Te=0;Te<K.length;Te++){var le=K.get(Te),Fe=le.hidden||!le.crossTileID||l.allowVerticalPlacement&&!le.placedOrientation?null:f[le.crossTileID];if(Fe){var De=new n.Point(le.anchorX,le.anchorY),Xe=so(De,c?w:T),at=Eo(A.cameraToCenterDistance,Xe.signedDistanceFromCamera),Je=E.evaluateSizeForFeature(l.textSizeData,z,le)*at/n.ONE_EM;c&&(Je*=l.tilePixelRatio/D);for(var ct=kc(Fe.anchor,Fe.width,Fe.height,Fe.textOffset,Fe.textBoxScale,Je),Pt=c?so(De.add(ct),T).point:Xe.point.add(d?ct.rotate(-A.angle):ct),Ht=l.allowVerticalPlacement&&le.placedOrientation===n.WritingMode.vertical?Math.PI/2:0,Bt=0;Bt<le.numGlyphs;Bt++)n.addDynamicAttributes(ee,Pt,Ht);$&&le.associatedIconIndex>=0&&(de[le.associatedIconIndex]={shiftedAnchor:Pt,angle:Ht})}else ln(le.numGlyphs,ee)}if($){_e.clear();for(var nr=l.icon.placedSymbolArray,Cr=0;Cr<nr.length;Cr++){var Dr=nr.get(Cr);if(Dr.hidden)ln(Dr.numGlyphs,_e);else{var Nr=de[Cr];if(Nr)for(var Lo=0;Lo<Dr.numGlyphs;Lo++)n.addDynamicAttributes(_e,Nr.shiftedAnchor,Nr.angle);else ln(Dr.numGlyphs,_e)}}l.icon.dynamicLayoutVertexBuffer.updateData(_e)}l.text.dynamicLayoutVertexBuffer.updateData(ee)}function Vc(l,d,c){return c.iconsInText&&d?"symbolTextAndIcon":l?"symbolSDF":"symbolIcon"}function Fu(l,d,c,f,E,A,T,w,D,z,$,K){for(var ee=l.context,_e=ee.gl,de=l.transform,Te=w==="map",le=D==="map",Fe=Te&&c.layout.get("symbol-placement")!=="point",De=Te&&!le&&!Fe,Xe=c.layout.get("symbol-sort-key").constantOr(1)!==void 0,at=!1,Je=l.depthModeForSublayer(0,oe.ReadOnly),ct=c.layout.get("text-variable-anchor"),Pt=[],Ht=0,Bt=f;Ht<Bt.length;Ht+=1){var nr=Bt[Ht],Cr=d.getTile(nr),Dr=Cr.getBucket(c);if(Dr){var Nr=E?Dr.text:Dr.icon;if(Nr&&Nr.segments.get().length){var Lo=Nr.programConfigurations.get(c.id),cr=E||Dr.sdfIcons,$r=E?Dr.textSizeData:Dr.iconSizeData,lo=le||de.pitch!==0,Xr=l.useProgram(Vc(cr,E,Dr),Lo),Gr=n.evaluateSizeForZoom($r,de.zoom),uo=void 0,jr=[0,0],zr=void 0,qi=void 0,Si=null,Rn=void 0;if(E)zr=Cr.glyphAtlasTexture,qi=_e.LINEAR,uo=Cr.glyphAtlasTexture.size,Dr.iconsInText&&(jr=Cr.imageAtlasTexture.size,Si=Cr.imageAtlasTexture,Rn=lo||l.options.rotating||l.options.zooming||$r.kind==="composite"||$r.kind==="camera"?_e.LINEAR:_e.NEAREST);else{var hn=c.layout.get("icon-size").constantOr(0)!==1||Dr.iconsNeedLinear;zr=Cr.imageAtlasTexture,qi=cr||l.options.rotating||l.options.zooming||hn||lo?_e.LINEAR:_e.NEAREST,uo=Cr.imageAtlasTexture.size}var Fi=ui(Cr,1,l.transform.zoom),wi=ei(nr.posMatrix,le,Te,l.transform,Fi),ra=ko(nr.posMatrix,le,Te,l.transform,Fi),Zn=ct&&Dr.hasTextData(),Cs=c.layout.get("icon-text-fit")!=="none"&&Zn&&Dr.hasIconData();Fe&&yu(Dr,nr.posMatrix,l,E,wi,ra,le,z);var oa=l.translatePosMatrix(nr.posMatrix,Cr,A,T),Ja=Fe||E&&ct||Cs?Ya:wi,wa=l.translatePosMatrix(ra,Cr,A,T,!0),Ip=cr&&c.paint.get(E?"text-halo-width":"icon-halo-width").constantOr(1)!==0,ip={program:Xr,buffers:Nr,uniformValues:cr?Dr.iconsInText?Pp($r.kind,Gr,De,le,l,oa,Ja,wa,uo,jr):qu($r.kind,Gr,De,le,l,oa,Ja,wa,E,uo):Au($r.kind,Gr,De,le,l,oa,Ja,wa,E,uo),atlasTexture:zr,atlasTextureIcon:Si,atlasInterpolation:qi,atlasInterpolationIcon:Rn,isSDF:cr,hasHalo:Ip};if(Xe&&Dr.canOverlap){at=!0;for(var Is=0,Nu=Nr.segments.get();Is<Nu.length;Is+=1){var ou=Nu[Is];Pt.push({segments:new n.SegmentVector([ou]),sortKey:ou.sortKey,state:ip})}}else Pt.push({segments:Nr.segments,sortKey:0,state:ip})}}}at&&Pt.sort(function(es,ys){return es.sortKey-ys.sortKey});for(var ds=0,Du=Pt;ds<Du.length;ds+=1){var kn=Du[ds],Bi=kn.state;if(ee.activeTexture.set(_e.TEXTURE0),Bi.atlasTexture.bind(Bi.atlasInterpolation,_e.CLAMP_TO_EDGE),Bi.atlasTextureIcon&&(ee.activeTexture.set(_e.TEXTURE1),Bi.atlasTextureIcon&&Bi.atlasTextureIcon.bind(Bi.atlasInterpolationIcon,_e.CLAMP_TO_EDGE)),Bi.isSDF){var da=Bi.uniformValues;Bi.hasHalo&&(da.u_is_halo=1,Fs(Bi.buffers,kn.segments,c,l,Bi.program,Je,$,K,da)),da.u_is_halo=0}Fs(Bi.buffers,kn.segments,c,l,Bi.program,Je,$,K,Bi.uniformValues)}}function Fs(l,d,c,f,E,A,T,w,D){var z=f.context;E.draw(z,z.gl.TRIANGLES,A,T,w,Le.disabled,D,c.id,l.layoutVertexBuffer,l.indexBuffer,d,c.paint,f.transform.zoom,l.programConfigurations.get(c.id),l.dynamicLayoutVertexBuffer,l.opacityVertexBuffer)}function bp(l,d,c,f,E,A,T){var w,D,z,$,K,ee=l.context.gl,_e=c.paint.get("fill-pattern"),de=_e&&_e.constantOr(1),Te=c.getCrossfadeParameters();T?(D=de&&!c.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",w=ee.LINES):(D=de?"fillPattern":"fill",w=ee.TRIANGLES);for(var le=0,Fe=f;le<Fe.length;le+=1){var De=Fe[le],Xe=d.getTile(De);if(!de||Xe.patternsLoaded()){var at=Xe.getBucket(c);if(at){var Je=at.programConfigurations.get(c.id),ct=l.useProgram(D,Je);de&&(l.context.activeTexture.set(ee.TEXTURE0),Xe.imageAtlasTexture.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),Je.updatePaintBuffers(Te));var Pt=_e.constantOr(null);if(Pt&&Xe.imageAtlas){var Ht=Xe.imageAtlas,Bt=Ht.patternPositions[Pt.to.toString()],nr=Ht.patternPositions[Pt.from.toString()];Bt&&nr&&Je.setConstantPatternPositions(Bt,nr)}var Cr=l.translatePosMatrix(De.posMatrix,Xe,c.paint.get("fill-translate"),c.paint.get("fill-translate-anchor"));if(T){$=at.indexBuffer2,K=at.segments2;var Dr=[ee.drawingBufferWidth,ee.drawingBufferHeight];z=D==="fillOutlinePattern"&&de?Ul(Cr,l,Te,Xe,Dr):xu(Cr,Dr)}else $=at.indexBuffer,K=at.segments,z=de?As(Cr,l,Te,Xe):qs(Cr);ct.draw(l.context,w,E,l.stencilModeForClipping(De),A,Le.disabled,z,c.id,at.layoutVertexBuffer,$,K,c.paint,l.transform.zoom,Je)}}}}function il(l,d,c,f,E,A,T){for(var w=l.context,D=w.gl,z=c.paint.get("fill-extrusion-pattern"),$=z.constantOr(1),K=c.getCrossfadeParameters(),ee=c.paint.get("fill-extrusion-opacity"),_e=0,de=f;_e<de.length;_e+=1){var Te=de[_e],le=d.getTile(Te),Fe=le.getBucket(c);if(Fe){var De=Fe.programConfigurations.get(c.id),Xe=l.useProgram($?"fillExtrusionPattern":"fillExtrusion",De);$&&(l.context.activeTexture.set(D.TEXTURE0),le.imageAtlasTexture.bind(D.LINEAR,D.CLAMP_TO_EDGE),De.updatePaintBuffers(K));var at=z.constantOr(null);if(at&&le.imageAtlas){var Je=le.imageAtlas,ct=Je.patternPositions[at.to.toString()],Pt=Je.patternPositions[at.from.toString()];ct&&Pt&&De.setConstantPatternPositions(ct,Pt)}var Ht=l.translatePosMatrix(Te.posMatrix,le,c.paint.get("fill-extrusion-translate"),c.paint.get("fill-extrusion-translate-anchor")),Bt=c.paint.get("fill-extrusion-vertical-gradient"),nr=$?la(Ht,l,Bt,ee,Te,K,le):O1(Ht,l,Bt,ee);Xe.draw(w,w.gl.TRIANGLES,E,A,T,Le.backCCW,nr,c.id,Fe.layoutVertexBuffer,Fe.indexBuffer,Fe.segments,c.paint,l.transform.zoom,De)}}}function Tu(l,d,c,f,E,A){var T=l.context,w=T.gl,D=d.fbo;if(D){var z=l.useProgram("hillshade");T.activeTexture.set(w.TEXTURE0),w.bindTexture(w.TEXTURE_2D,D.colorAttachment.get());var $=function(K,ee,_e){var de=_e.paint.get("hillshade-shadow-color"),Te=_e.paint.get("hillshade-highlight-color"),le=_e.paint.get("hillshade-accent-color"),Fe=_e.paint.get("hillshade-illumination-direction")*(Math.PI/180);_e.paint.get("hillshade-illumination-anchor")==="viewport"&&(Fe-=K.transform.angle);var De,Xe,at,Je=!K.options.moving;return{u_matrix:K.transform.calculatePosMatrix(ee.tileID.toUnwrapped(),Je),u_image:0,u_latrange:(De=ee.tileID,Xe=Math.pow(2,De.canonical.z),at=De.canonical.y,[new n.MercatorCoordinate(0,at/Xe).toLngLat().lat,new n.MercatorCoordinate(0,(at+1)/Xe).toLngLat().lat]),u_light:[_e.paint.get("hillshade-exaggeration"),Fe],u_shadow:de,u_highlight:Te,u_accent:le}}(l,d,c);z.draw(T,w.TRIANGLES,f,E,A,Le.disabled,$,c.id,l.rasterBoundsBuffer,l.quadTriangleIndexBuffer,l.rasterBoundsSegments)}}function Q0(l,d,c,f,E,A){var T=l.context,w=T.gl,D=d.dem;if(D&&D.data){var z=D.dim,$=D.stride,K=D.getPixels();if(T.activeTexture.set(w.TEXTURE1),T.pixelStoreUnpackPremultiplyAlpha.set(!1),d.demTexture=d.demTexture||l.getTileTexture($),d.demTexture){var ee=d.demTexture;ee.update(K,{premultiply:!1}),ee.bind(w.NEAREST,w.CLAMP_TO_EDGE)}else d.demTexture=new n.Texture(T,K,w.RGBA,{premultiply:!1}),d.demTexture.bind(w.NEAREST,w.CLAMP_TO_EDGE);T.activeTexture.set(w.TEXTURE0);var _e=d.fbo;if(!_e){var de=new n.Texture(T,{width:z,height:z,data:null},w.RGBA);de.bind(w.LINEAR,w.CLAMP_TO_EDGE),(_e=d.fbo=T.createFramebuffer(z,z,!0)).colorAttachment.set(de.texture)}T.bindFramebuffer.set(_e.framebuffer),T.viewport.set([0,0,z,z]),l.useProgram("hillshadePrepare").draw(T,w.TRIANGLES,f,E,A,Le.disabled,function(Te,le){var Fe=le.stride,De=n.create();return n.ortho(De,0,n.EXTENT,-n.EXTENT,0,0,1),n.translate(De,De,[0,-n.EXTENT,0]),{u_matrix:De,u_image:1,u_dimension:[Fe,Fe],u_zoom:Te.overscaledZ,u_unpack:le.getUnpackVector()}}(d.tileID,D),c.id,l.rasterBoundsBuffer,l.quadTriangleIndexBuffer,l.rasterBoundsSegments),d.needsHillshadePrepare=!1}}function Vl(l,d,c,f,E){var A=f.paint.get("raster-fade-duration");if(A>0){var T=n.browser.now(),w=(T-l.timeAdded)/A,D=d?(T-d.timeAdded)/A:-1,z=c.getSource(),$=E.coveringZoomLevel({tileSize:z.tileSize,roundZoom:z.roundZoom}),K=!d||Math.abs(d.tileID.overscaledZ-$)>Math.abs(l.tileID.overscaledZ-$),ee=K&&l.refreshedUponExpiration?1:n.clamp(K?w:1-D,0,1);return l.refreshedUponExpiration&&w>=1&&(l.refreshedUponExpiration=!1),d?{opacity:1,mix:1-ee}:{opacity:ee,mix:0}}return{opacity:1,mix:0}}var Hc=new n.Color(1,0,0,1),Hl=new n.Color(0,1,0,1),L1=new n.Color(0,0,1,1),Gl=new n.Color(1,0,1,1),Gc=new n.Color(0,1,1,1);function nl(l,d,c,f){ep(l,0,d+c/2,l.transform.width,c,f)}function jc(l,d,c,f){ep(l,d-c/2,0,c,l.transform.height,f)}function ep(l,d,c,f,E,A){var T=l.context,w=T.gl;w.enable(w.SCISSOR_TEST),w.scissor(d*n.browser.devicePixelRatio,c*n.browser.devicePixelRatio,f*n.browser.devicePixelRatio,E*n.browser.devicePixelRatio),T.clear({color:A}),w.disable(w.SCISSOR_TEST)}function Wc(l,d,c){var f=l.context,E=f.gl,A=c.posMatrix,T=l.useProgram("debug"),w=oe.disabled,D=ye.disabled,z=l.colorModeForRenderPass();f.activeTexture.set(E.TEXTURE0),l.emptyTexture.bind(E.LINEAR,E.CLAMP_TO_EDGE),T.draw(f,E.LINE_STRIP,w,D,z,Le.disabled,Pu(A,n.Color.red),"$debug",l.debugBuffer,l.tileBorderIndexBuffer,l.debugSegments);var $=d.getTileByID(c.key).latestRawTileData,K=Math.floor(($&&$.byteLength||0)/1024),ee=d.getTile(c).tileSize,_e=512/Math.min(ee,512)*(c.overscaledZ/l.transform.zoom)*.5,de=c.canonical.toString();c.overscaledZ!==c.canonical.z&&(de+=" => "+c.overscaledZ),function(Te,le){Te.initDebugOverlayCanvas();var Fe=Te.debugOverlayCanvas,De=Te.context.gl,Xe=Te.debugOverlayCanvas.getContext("2d");Xe.clearRect(0,0,Fe.width,Fe.height),Xe.shadowColor="white",Xe.shadowBlur=2,Xe.lineWidth=1.5,Xe.strokeStyle="white",Xe.textBaseline="top",Xe.font="bold 36px Open Sans, sans-serif",Xe.fillText(le,5,5),Xe.strokeText(le,5,5),Te.debugOverlayTexture.update(Fe),Te.debugOverlayTexture.bind(De.LINEAR,De.CLAMP_TO_EDGE)}(l,de+" "+K+"kb"),T.draw(f,E.TRIANGLES,w,D,Ie.alphaBlended,Le.disabled,Pu(A,n.Color.transparent,_e),"$debug",l.debugBuffer,l.quadTriangleIndexBuffer,l.debugSegments)}var Su={symbol:function(l,d,c,f,E){if(l.renderPass==="translucent"){var A=ye.disabled,T=l.colorModeForRenderPass();c.layout.get("text-variable-anchor")&&function(w,D,z,$,K,ee,_e){for(var de=D.transform,Te=K==="map",le=ee==="map",Fe=0,De=w;Fe<De.length;Fe+=1){var Xe=De[Fe],at=$.getTile(Xe),Je=at.getBucket(z);if(Je&&Je.text&&Je.text.segments.get().length){var ct=n.evaluateSizeForZoom(Je.textSizeData,de.zoom),Pt=ui(at,1,D.transform.zoom),Ht=ei(Xe.posMatrix,le,Te,D.transform,Pt),Bt=z.layout.get("icon-text-fit")!=="none"&&Je.hasIconData();if(ct){var nr=Math.pow(2,de.zoom-at.tileID.overscaledZ);zc(Je,Te,le,_e,n.symbolSize,de,Ht,Xe.posMatrix,nr,ct,Bt)}}}}(f,l,c,d,c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),E),c.paint.get("icon-opacity").constantOr(1)!==0&&Fu(l,d,c,f,!1,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),c.layout.get("icon-rotation-alignment"),c.layout.get("icon-pitch-alignment"),c.layout.get("icon-keep-upright"),A,T),c.paint.get("text-opacity").constantOr(1)!==0&&Fu(l,d,c,f,!0,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),c.layout.get("text-keep-upright"),A,T),d.map.showCollisionBoxes&&(Ju(l,d,c,f,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),!0),Ju(l,d,c,f,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),!1))}},circle:function(l,d,c,f){if(l.renderPass==="translucent"){var E=c.paint.get("circle-opacity"),A=c.paint.get("circle-stroke-width"),T=c.paint.get("circle-stroke-opacity"),w=c.layout.get("circle-sort-key").constantOr(1)!==void 0;if(E.constantOr(1)!==0||A.constantOr(1)!==0&&T.constantOr(1)!==0){for(var D=l.context,z=D.gl,$=l.depthModeForSublayer(0,oe.ReadOnly),K=ye.disabled,ee=l.colorModeForRenderPass(),_e=[],de=0;de<f.length;de++){var Te=f[de],le=d.getTile(Te),Fe=le.getBucket(c);if(Fe){var De=Fe.programConfigurations.get(c.id),Xe={programConfiguration:De,program:l.useProgram("circle",De),layoutVertexBuffer:Fe.layoutVertexBuffer,indexBuffer:Fe.indexBuffer,uniformValues:xp(l,Te,le,c)};if(w)for(var at=0,Je=Fe.segments.get();at<Je.length;at+=1){var ct=Je[at];_e.push({segments:new n.SegmentVector([ct]),sortKey:ct.sortKey,state:Xe})}else _e.push({segments:Fe.segments,sortKey:0,state:Xe})}}w&&_e.sort(function(Cr,Dr){return Cr.sortKey-Dr.sortKey});for(var Pt=0,Ht=_e;Pt<Ht.length;Pt+=1){var Bt=Ht[Pt],nr=Bt.state;nr.program.draw(D,z.TRIANGLES,$,K,ee,Le.disabled,nr.uniformValues,c.id,nr.layoutVertexBuffer,nr.indexBuffer,Bt.segments,c.paint,l.transform.zoom,nr.programConfiguration)}}}},heatmap:function(l,d,c,f){if(c.paint.get("heatmap-opacity")!==0)if(l.renderPass==="offscreen"){var E=l.context,A=E.gl,T=ye.disabled,w=new Ie([A.ONE,A.ONE],n.Color.transparent,[!0,!0,!0,!0]);(function(_e,de,Te){var le=_e.gl;_e.activeTexture.set(le.TEXTURE1),_e.viewport.set([0,0,de.width/4,de.height/4]);var Fe=Te.heatmapFbo;if(Fe)le.bindTexture(le.TEXTURE_2D,Fe.colorAttachment.get()),_e.bindFramebuffer.set(Fe.framebuffer);else{var De=le.createTexture();le.bindTexture(le.TEXTURE_2D,De),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_S,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_T,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MIN_FILTER,le.LINEAR),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MAG_FILTER,le.LINEAR),Fe=Te.heatmapFbo=_e.createFramebuffer(de.width/4,de.height/4,!1),function(Xe,at,Je,ct){var Pt=Xe.gl;Pt.texImage2D(Pt.TEXTURE_2D,0,Pt.RGBA,at.width/4,at.height/4,0,Pt.RGBA,Xe.extRenderToTextureHalfFloat?Xe.extTextureHalfFloat.HALF_FLOAT_OES:Pt.UNSIGNED_BYTE,null),ct.colorAttachment.set(Je)}(_e,de,De,Fe)}})(E,l,c),E.clear({color:n.Color.transparent});for(var D=0;D<f.length;D++){var z=f[D];if(!d.hasRenderableParent(z)){var $=d.getTile(z),K=$.getBucket(c);if(K){var ee=K.programConfigurations.get(c.id);l.useProgram("heatmap",ee).draw(E,A.TRIANGLES,oe.disabled,T,w,Le.disabled,Lc(z.posMatrix,$,l.transform.zoom,c.paint.get("heatmap-intensity")),c.id,K.layoutVertexBuffer,K.indexBuffer,K.segments,c.paint,l.transform.zoom,ee)}}}E.viewport.set([0,0,l.width,l.height])}else l.renderPass==="translucent"&&(l.context.setColorMode(l.colorModeForRenderPass()),function(_e,de){var Te=_e.context,le=Te.gl,Fe=de.heatmapFbo;if(Fe){Te.activeTexture.set(le.TEXTURE0),le.bindTexture(le.TEXTURE_2D,Fe.colorAttachment.get()),Te.activeTexture.set(le.TEXTURE1);var De=de.colorRampTexture;De||(De=de.colorRampTexture=new n.Texture(Te,de.colorRamp,le.RGBA)),De.bind(le.LINEAR,le.CLAMP_TO_EDGE),_e.useProgram("heatmapTexture").draw(Te,le.TRIANGLES,oe.disabled,ye.disabled,_e.colorModeForRenderPass(),Le.disabled,function(Xe,at,Je,ct){var Pt=n.create();n.ortho(Pt,0,Xe.width,Xe.height,0,0,1);var Ht=Xe.context.gl;return{u_matrix:Pt,u_world:[Ht.drawingBufferWidth,Ht.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:at.paint.get("heatmap-opacity")}}(_e,de),de.id,_e.viewportBuffer,_e.quadTriangleIndexBuffer,_e.viewportSegments,de.paint,_e.transform.zoom)}}(l,c))},line:function(l,d,c,f){if(l.renderPass==="translucent"){var E=c.paint.get("line-opacity"),A=c.paint.get("line-width");if(E.constantOr(1)!==0&&A.constantOr(1)!==0)for(var T=l.depthModeForSublayer(0,oe.ReadOnly),w=l.colorModeForRenderPass(),D=c.paint.get("line-dasharray"),z=c.paint.get("line-pattern"),$=z.constantOr(1),K=c.paint.get("line-gradient"),ee=c.getCrossfadeParameters(),_e=$?"linePattern":D?"lineSDF":K?"lineGradient":"line",de=l.context,Te=de.gl,le=!0,Fe=0,De=f;Fe<De.length;Fe+=1){var Xe=De[Fe],at=d.getTile(Xe);if(!$||at.patternsLoaded()){var Je=at.getBucket(c);if(Je){var ct=Je.programConfigurations.get(c.id),Pt=l.context.program.get(),Ht=l.useProgram(_e,ct),Bt=le||Ht.program!==Pt,nr=z.constantOr(null);if(nr&&at.imageAtlas){var Cr=at.imageAtlas,Dr=Cr.patternPositions[nr.to.toString()],Nr=Cr.patternPositions[nr.from.toString()];Dr&&Nr&&ct.setConstantPatternPositions(Dr,Nr)}var Lo=$?kl(l,at,c,ee):D?K0(l,at,c,D,ee):K?li(l,at,c,Je.lineClipsArray.length):rl(l,at,c);if($)de.activeTexture.set(Te.TEXTURE0),at.imageAtlasTexture.bind(Te.LINEAR,Te.CLAMP_TO_EDGE),ct.updatePaintBuffers(ee);else if(D&&(Bt||l.lineAtlas.dirty))de.activeTexture.set(Te.TEXTURE0),l.lineAtlas.bind(de);else if(K){var cr=Je.gradients[c.id],$r=cr.texture;if(c.gradientVersion!==cr.version){var lo=256;if(c.stepInterpolant){var Xr=d.getSource().maxzoom,Gr=Xe.canonical.z===Xr?Math.ceil(1<<l.transform.maxZoom-Xe.canonical.z):1;lo=n.clamp(n.nextPowerOfTwo(Je.maxLineLength/n.EXTENT*1024*Gr),256,de.maxTextureSize)}cr.gradient=n.renderColorRamp({expression:c.gradientExpression(),evaluationKey:"lineProgress",resolution:lo,image:cr.gradient||void 0,clips:Je.lineClipsArray}),cr.texture?cr.texture.update(cr.gradient):cr.texture=new n.Texture(de,cr.gradient,Te.RGBA),cr.version=c.gradientVersion,$r=cr.texture}de.activeTexture.set(Te.TEXTURE0),$r.bind(c.stepInterpolant?Te.NEAREST:Te.LINEAR,Te.CLAMP_TO_EDGE)}Ht.draw(de,Te.TRIANGLES,T,l.stencilModeForClipping(Xe),w,Le.disabled,Lo,c.id,Je.layoutVertexBuffer,Je.indexBuffer,Je.segments,c.paint,l.transform.zoom,ct,Je.layoutVertexBuffer2),le=!1}}}}},fill:function(l,d,c,f){var E=c.paint.get("fill-color"),A=c.paint.get("fill-opacity");if(A.constantOr(1)!==0){var T=l.colorModeForRenderPass(),w=c.paint.get("fill-pattern"),D=l.opaquePassEnabledForLayer()&&!w.constantOr(1)&&E.constantOr(n.Color.transparent).a===1&&A.constantOr(0)===1?"opaque":"translucent";if(l.renderPass===D){var z=l.depthModeForSublayer(1,l.renderPass==="opaque"?oe.ReadWrite:oe.ReadOnly);bp(l,d,c,f,z,T,!1)}if(l.renderPass==="translucent"&&c.paint.get("fill-antialias")){var $=l.depthModeForSublayer(c.getPaintProperty("fill-outline-color")?2:0,oe.ReadOnly);bp(l,d,c,f,$,T,!0)}}},"fill-extrusion":function(l,d,c,f){var E=c.paint.get("fill-extrusion-opacity");if(E!==0&&l.renderPass==="translucent"){var A=new oe(l.context.gl.LEQUAL,oe.ReadWrite,l.depthRangeFor3D);if(E!==1||c.paint.get("fill-extrusion-pattern").constantOr(1))il(l,d,c,f,A,ye.disabled,Ie.disabled),il(l,d,c,f,A,l.stencilModeFor3D(),l.colorModeForRenderPass());else{var T=l.colorModeForRenderPass();il(l,d,c,f,A,ye.disabled,T)}}},hillshade:function(l,d,c,f){if(l.renderPass==="offscreen"||l.renderPass==="translucent"){for(var E=l.context,A=l.depthModeForSublayer(0,oe.ReadOnly),T=l.colorModeForRenderPass(),w=l.renderPass==="translucent"?l.stencilConfigForOverlap(f):[{},f],D=w[0],z=0,$=w[1];z<$.length;z+=1){var K=$[z],ee=d.getTile(K);ee.needsHillshadePrepare&&l.renderPass==="offscreen"?Q0(l,ee,c,A,ye.disabled,T):l.renderPass==="translucent"&&Tu(l,ee,c,A,D[K.overscaledZ],T)}E.viewport.set([0,0,l.width,l.height])}},raster:function(l,d,c,f){if(l.renderPass==="translucent"&&c.paint.get("raster-opacity")!==0&&f.length)for(var E=l.context,A=E.gl,T=d.getSource(),w=l.useProgram("raster"),D=l.colorModeForRenderPass(),z=T instanceof Jr?[{},f]:l.stencilConfigForOverlap(f),$=z[0],K=z[1],ee=K[K.length-1].overscaledZ,_e=!l.options.moving,de=0,Te=K;de<Te.length;de+=1){var le=Te[de],Fe=l.depthModeForSublayer(le.overscaledZ-ee,c.paint.get("raster-opacity")===1?oe.ReadWrite:oe.ReadOnly,A.LESS),De=d.getTile(le),Xe=l.transform.calculatePosMatrix(le.toUnwrapped(),_e);De.registerFadeDuration(c.paint.get("raster-fade-duration"));var at=d.findLoadedParent(le,0),Je=Vl(De,at,d,c,l.transform),ct=void 0,Pt=void 0,Ht=c.paint.get("raster-resampling")==="nearest"?A.NEAREST:A.LINEAR;E.activeTexture.set(A.TEXTURE0),De.texture.bind(Ht,A.CLAMP_TO_EDGE,A.LINEAR_MIPMAP_NEAREST),E.activeTexture.set(A.TEXTURE1),at?(at.texture.bind(Ht,A.CLAMP_TO_EDGE,A.LINEAR_MIPMAP_NEAREST),ct=Math.pow(2,at.tileID.overscaledZ-De.tileID.overscaledZ),Pt=[De.tileID.canonical.x*ct%1,De.tileID.canonical.y*ct%1]):De.texture.bind(Ht,A.CLAMP_TO_EDGE,A.LINEAR_MIPMAP_NEAREST);var Bt=Bc(Xe,Pt||[0,0],ct||1,Je,c);T instanceof Jr?w.draw(E,A.TRIANGLES,Fe,ye.disabled,D,Le.disabled,Bt,c.id,T.boundsBuffer,l.quadTriangleIndexBuffer,T.boundsSegments):w.draw(E,A.TRIANGLES,Fe,$[le.overscaledZ],D,Le.disabled,Bt,c.id,l.rasterBoundsBuffer,l.quadTriangleIndexBuffer,l.rasterBoundsSegments)}},background:function(l,d,c){var f=c.paint.get("background-color"),E=c.paint.get("background-opacity");if(E!==0){var A=l.context,T=A.gl,w=l.transform,D=w.tileSize,z=c.paint.get("background-pattern");if(!l.isPatternMissing(z)){var $=!z&&f.a===1&&E===1&&l.opaquePassEnabledForLayer()?"opaque":"translucent";if(l.renderPass===$){var K=ye.disabled,ee=l.depthModeForSublayer(0,$==="opaque"?oe.ReadWrite:oe.ReadOnly),_e=l.colorModeForRenderPass(),de=l.useProgram(z?"backgroundPattern":"background"),Te=w.coveringTiles({tileSize:D});z&&(A.activeTexture.set(T.TEXTURE0),l.imageManager.bind(l.context));for(var le=c.getCrossfadeParameters(),Fe=0,De=Te;Fe<De.length;Fe+=1){var Xe=De[Fe],at=l.transform.calculatePosMatrix(Xe.toUnwrapped()),Je=z?Qu(at,E,l,z,{tileID:Xe,tileSize:D},le):Ku(at,E,f);de.draw(A,T.TRIANGLES,ee,K,_e,Le.disabled,Je,c.id,l.tileExtentBuffer,l.quadTriangleIndexBuffer,l.tileExtentSegments)}}}}},debug:function(l,d,c){for(var f=0;f<c.length;f++)Wc(l,d,c[f])},custom:function(l,d,c){var f=l.context,E=c.implementation;if(l.renderPass==="offscreen"){var A=E.prerender;A&&(l.setCustomLayerDefaults(),f.setColorMode(l.colorModeForRenderPass()),A.call(E,f.gl,l.transform.customLayerMatrix()),f.setDirty(),l.setBaseState())}else if(l.renderPass==="translucent"){l.setCustomLayerDefaults(),f.setColorMode(l.colorModeForRenderPass()),f.setStencilMode(ye.disabled);var T=E.renderingMode==="3d"?new oe(l.context.gl.LEQUAL,oe.ReadWrite,l.depthRangeFor3D):l.depthModeForSublayer(0,oe.ReadOnly);f.setDepthMode(T),E.render(f.gl,l.transform.customLayerMatrix()),f.setDirty(),l.setBaseState(),f.bindFramebuffer.set(null)}}},ci=function(l,d){this.context=new q(l),this.transform=d,this._tileTextures={},this.setup(),this.numSublayers=ge.maxUnderzooming+ge.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new mu,this.gpuTimers={}};ci.prototype.resize=function(l,d){if(this.width=l*n.browser.devicePixelRatio,this.height=d*n.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var c=0,f=this.style._order;c<f.length;c+=1)this.style._layers[f[c]].resize()},ci.prototype.setup=function(){var l=this.context,d=new n.StructArrayLayout2i4;d.emplaceBack(0,0),d.emplaceBack(n.EXTENT,0),d.emplaceBack(0,n.EXTENT),d.emplaceBack(n.EXTENT,n.EXTENT),this.tileExtentBuffer=l.createVertexBuffer(d,Oi.members),this.tileExtentSegments=n.SegmentVector.simpleSegment(0,0,4,2);var c=new n.StructArrayLayout2i4;c.emplaceBack(0,0),c.emplaceBack(n.EXTENT,0),c.emplaceBack(0,n.EXTENT),c.emplaceBack(n.EXTENT,n.EXTENT),this.debugBuffer=l.createVertexBuffer(c,Oi.members),this.debugSegments=n.SegmentVector.simpleSegment(0,0,4,5);var f=new n.StructArrayLayout4i8;f.emplaceBack(0,0,0,0),f.emplaceBack(n.EXTENT,0,n.EXTENT,0),f.emplaceBack(0,n.EXTENT,0,n.EXTENT),f.emplaceBack(n.EXTENT,n.EXTENT,n.EXTENT,n.EXTENT),this.rasterBoundsBuffer=l.createVertexBuffer(f,qr.members),this.rasterBoundsSegments=n.SegmentVector.simpleSegment(0,0,4,2);var E=new n.StructArrayLayout2i4;E.emplaceBack(0,0),E.emplaceBack(1,0),E.emplaceBack(0,1),E.emplaceBack(1,1),this.viewportBuffer=l.createVertexBuffer(E,Oi.members),this.viewportSegments=n.SegmentVector.simpleSegment(0,0,4,2);var A=new n.StructArrayLayout1ui2;A.emplaceBack(0),A.emplaceBack(1),A.emplaceBack(3),A.emplaceBack(2),A.emplaceBack(0),this.tileBorderIndexBuffer=l.createIndexBuffer(A);var T=new n.StructArrayLayout3ui6;T.emplaceBack(0,1,2),T.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=l.createIndexBuffer(T),this.emptyTexture=new n.Texture(l,{width:1,height:1,data:new Uint8Array([0,0,0,0])},l.gl.RGBA);var w=this.context.gl;this.stencilClearMode=new ye({func:w.ALWAYS,mask:0},0,255,w.ZERO,w.ZERO,w.ZERO)},ci.prototype.clearStencil=function(){var l=this.context,d=l.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var c=n.create();n.ortho(c,0,this.width,this.height,0,0,1),n.scale(c,c,[d.drawingBufferWidth,d.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(l,d.TRIANGLES,oe.disabled,this.stencilClearMode,Ie.disabled,Le.disabled,Ks(c),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},ci.prototype._renderTileClippingMasks=function(l,d){if(this.currentStencilSource!==l.source&&l.isTileClipped()&&d&&d.length){this.currentStencilSource=l.source;var c=this.context,f=c.gl;this.nextStencilID+d.length>256&&this.clearStencil(),c.setColorMode(Ie.disabled),c.setDepthMode(oe.disabled);var E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var A=0,T=d;A<T.length;A+=1){var w=T[A],D=this._tileClippingMaskIDs[w.key]=this.nextStencilID++;E.draw(c,f.TRIANGLES,oe.disabled,new ye({func:f.ALWAYS,mask:0},D,255,f.KEEP,f.KEEP,f.REPLACE),Ie.disabled,Le.disabled,Ks(w.posMatrix),"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}},ci.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();var l=this.nextStencilID++,d=this.context.gl;return new ye({func:d.NOTEQUAL,mask:255},l,255,d.KEEP,d.KEEP,d.REPLACE)},ci.prototype.stencilModeForClipping=function(l){var d=this.context.gl;return new ye({func:d.EQUAL,mask:255},this._tileClippingMaskIDs[l.key],0,d.KEEP,d.KEEP,d.REPLACE)},ci.prototype.stencilConfigForOverlap=function(l){var d,c=this.context.gl,f=l.sort(function(D,z){return z.overscaledZ-D.overscaledZ}),E=f[f.length-1].overscaledZ,A=f[0].overscaledZ-E+1;if(A>1){this.currentStencilSource=void 0,this.nextStencilID+A>256&&this.clearStencil();for(var T={},w=0;w<A;w++)T[w+E]=new ye({func:c.GEQUAL,mask:255},w+this.nextStencilID,255,c.KEEP,c.KEEP,c.REPLACE);return this.nextStencilID+=A,[T,f]}return[(d={},d[E]=ye.disabled,d),f]},ci.prototype.colorModeForRenderPass=function(){var l=this.context.gl;return this._showOverdrawInspector?new Ie([l.CONSTANT_COLOR,l.ONE],new n.Color(1/8,1/8,1/8,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?Ie.unblended:Ie.alphaBlended},ci.prototype.depthModeForSublayer=function(l,d,c){if(!this.opaquePassEnabledForLayer())return oe.disabled;var f=1-((1+this.currentLayer)*this.numSublayers+l)*this.depthEpsilon;return new oe(c||this.context.gl.LEQUAL,d,[f,f])},ci.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},ci.prototype.render=function(l,d){var c=this;this.style=l,this.options=d,this.lineAtlas=l.lineAtlas,this.imageManager=l.imageManager,this.glyphManager=l.glyphManager,this.symbolFadeChange=l.placement.symbolFadeChange(n.browser.now()),this.imageManager.beginFrame();var f=this.style._order,E=this.style.sourceCaches;for(var A in E){var T=E[A];T.used&&T.prepare(this.context)}var w,D,z={},$={},K={};for(var ee in E){var _e=E[ee];z[ee]=_e.getVisibleCoordinates(),$[ee]=z[ee].slice().reverse(),K[ee]=_e.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(var de=0;de<f.length;de++)if(this.style._layers[f[de]].is3D()){this.opaquePassCutoff=de;break}this.renderPass="offscreen";for(var Te=0,le=f;Te<le.length;Te+=1){var Fe=this.style._layers[le[Te]];if(Fe.hasOffscreenPass()&&!Fe.isHidden(this.transform.zoom)){var De=$[Fe.source];(Fe.type==="custom"||De.length)&&this.renderLayer(this,E[Fe.source],Fe,De)}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:d.showOverdrawInspector?n.Color.black:n.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=d.showOverdrawInspector,this.depthRangeFor3D=[0,1-(l._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass="opaque",this.currentLayer=f.length-1;this.currentLayer>=0;this.currentLayer--){var Xe=this.style._layers[f[this.currentLayer]],at=E[Xe.source],Je=z[Xe.source];this._renderTileClippingMasks(Xe,Je),this.renderLayer(this,at,Xe,Je)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<f.length;this.currentLayer++){var ct=this.style._layers[f[this.currentLayer]],Pt=E[ct.source],Ht=(ct.type==="symbol"?K:$)[ct.source];this._renderTileClippingMasks(ct,z[ct.source]),this.renderLayer(this,Pt,ct,Ht)}this.options.showTileBoundaries&&(n.values(this.style._layers).forEach(function(Bt){Bt.source&&!Bt.isHidden(c.transform.zoom)&&(Bt.source!==(D&&D.id)&&(D=c.style.sourceCaches[Bt.source]),(!w||w.getSource().maxzoom<D.getSource().maxzoom)&&(w=D))}),w&&Su.debug(this,w,w.getVisibleCoordinates())),this.options.showPadding&&function(Bt){var nr=Bt.transform.padding;nl(Bt,Bt.transform.height-(nr.top||0),3,Hc),nl(Bt,nr.bottom||0,3,Hl),jc(Bt,nr.left||0,3,L1),jc(Bt,Bt.transform.width-(nr.right||0),3,Gl);var Cr=Bt.transform.centerPoint;(function(Dr,Nr,Lo,cr){ep(Dr,Nr-1,Lo-10,2,20,cr),ep(Dr,Nr-10,Lo-1,20,2,cr)})(Bt,Cr.x,Bt.transform.height-Cr.y,Gc)}(this),this.context.setDefault()},ci.prototype.renderLayer=function(l,d,c,f){c.isHidden(this.transform.zoom)||(c.type==="background"||c.type==="custom"||f.length)&&(this.id=c.id,this.gpuTimingStart(c),Su[c.type](l,d,c,f,this.style.placement.variableOffsets),this.gpuTimingEnd())},ci.prototype.gpuTimingStart=function(l){if(this.options.gpuTiming){var d=this.context.extTimerQuery,c=this.gpuTimers[l.id];c||(c=this.gpuTimers[l.id]={calls:0,cpuTime:0,query:d.createQueryEXT()}),c.calls++,d.beginQueryEXT(d.TIME_ELAPSED_EXT,c.query)}},ci.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var l=this.context.extTimerQuery;l.endQueryEXT(l.TIME_ELAPSED_EXT)}},ci.prototype.collectGpuTimers=function(){var l=this.gpuTimers;return this.gpuTimers={},l},ci.prototype.queryGpuTimers=function(l){var d={};for(var c in l){var f=l[c],E=this.context.extTimerQuery,A=E.getQueryObjectEXT(f.query,E.QUERY_RESULT_EXT)/1e6;E.deleteQueryEXT(f.query),d[c]=A}return d},ci.prototype.translatePosMatrix=function(l,d,c,f,E){if(!c[0]&&!c[1])return l;var A=E?f==="map"?this.transform.angle:0:f==="viewport"?-this.transform.angle:0;if(A){var T=Math.sin(A),w=Math.cos(A);c=[c[0]*w-c[1]*T,c[0]*T+c[1]*w]}var D=[E?c[0]:ui(d,c[0],this.transform.zoom),E?c[1]:ui(d,c[1],this.transform.zoom),0],z=new Float32Array(16);return n.translate(z,l,D),z},ci.prototype.saveTileTexture=function(l){var d=this._tileTextures[l.size[0]];d?d.push(l):this._tileTextures[l.size[0]]=[l]},ci.prototype.getTileTexture=function(l){var d=this._tileTextures[l];return d&&d.length>0?d.pop():null},ci.prototype.isPatternMissing=function(l){if(!l)return!1;if(!l.from||!l.to)return!0;var d=this.imageManager.getPattern(l.from.toString()),c=this.imageManager.getPattern(l.to.toString());return!d||!c},ci.prototype.useProgram=function(l,d){this.cache=this.cache||{};var c=""+l+(d?d.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[c]||(this.cache[c]=new Li(this.context,l,q0[l],d,Uc[l],this._showOverdrawInspector)),this.cache[c]},ci.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},ci.prototype.setBaseState=function(){var l=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(l.FUNC_ADD)},ci.prototype.initDebugOverlayCanvas=function(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=n.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new n.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},ci.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var jl=function(l,d){this.points=l,this.planes=d};jl.fromInvProjectionMatrix=function(l,d,c){var f=Math.pow(2,c),E=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(function(T){return n.transformMat4([],T,l)}).map(function(T){return n.scale$1([],T,1/T[3]/d*f)}),A=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(function(T){var w=n.sub([],E[T[0]],E[T[1]]),D=n.sub([],E[T[2]],E[T[1]]),z=n.normalize([],n.cross([],w,D)),$=-n.dot(z,E[T[1]]);return z.concat($)});return new jl(E,A)};var Ts=function(l,d){this.min=l,this.max=d,this.center=n.scale$2([],n.add([],this.min,this.max),.5)};Ts.prototype.quadrant=function(l){for(var d=[l%2==0,l<2],c=n.clone$2(this.min),f=n.clone$2(this.max),E=0;E<d.length;E++)c[E]=d[E]?this.min[E]:this.center[E],f[E]=d[E]?this.center[E]:this.max[E];return f[2]=this.max[2],new Ts(c,f)},Ts.prototype.distanceX=function(l){return Math.max(Math.min(this.max[0],l[0]),this.min[0])-l[0]},Ts.prototype.distanceY=function(l){return Math.max(Math.min(this.max[1],l[1]),this.min[1])-l[1]},Ts.prototype.intersects=function(l){for(var d=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],c=!0,f=0;f<l.planes.length;f++){for(var E=l.planes[f],A=0,T=0;T<d.length;T++)A+=n.dot$1(E,d[T])>=0;if(A===0)return 0;A!==d.length&&(c=!1)}if(c)return 2;for(var w=0;w<3;w++){for(var D=Number.MAX_VALUE,z=-Number.MAX_VALUE,$=0;$<l.points.length;$++){var K=l.points[$][w]-this.min[w];D=Math.min(D,K),z=Math.max(z,K)}if(z<0||D>this.max[w]-this.min[w])return 0}return 1};var wu=function(l,d,c,f){if(l===void 0&&(l=0),d===void 0&&(d=0),c===void 0&&(c=0),f===void 0&&(f=0),isNaN(l)||l<0||isNaN(d)||d<0||isNaN(c)||c<0||isNaN(f)||f<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=l,this.bottom=d,this.left=c,this.right=f};wu.prototype.interpolate=function(l,d,c){return d.top!=null&&l.top!=null&&(this.top=n.number(l.top,d.top,c)),d.bottom!=null&&l.bottom!=null&&(this.bottom=n.number(l.bottom,d.bottom,c)),d.left!=null&&l.left!=null&&(this.left=n.number(l.left,d.left,c)),d.right!=null&&l.right!=null&&(this.right=n.number(l.right,d.right,c)),this},wu.prototype.getCenter=function(l,d){var c=n.clamp((this.left+l-this.right)/2,0,l),f=n.clamp((this.top+d-this.bottom)/2,0,d);return new n.Point(c,f)},wu.prototype.equals=function(l){return this.top===l.top&&this.bottom===l.bottom&&this.left===l.left&&this.right===l.right},wu.prototype.clone=function(){return new wu(this.top,this.bottom,this.left,this.right)},wu.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var No=function(l,d,c,f,E){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=E===void 0||E,this._minZoom=l||0,this._maxZoom=d||22,this._minPitch=c??0,this._maxPitch=f??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new n.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new wu,this._posMatrixCache={},this._alignedPosMatrixCache={}},di={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};No.prototype.clone=function(){var l=new No(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return l.tileSize=this.tileSize,l.latRange=this.latRange,l.width=this.width,l.height=this.height,l._center=this._center,l.zoom=this.zoom,l.angle=this.angle,l._fov=this._fov,l._pitch=this._pitch,l._unmodified=this._unmodified,l._edgeInsets=this._edgeInsets.clone(),l._calcMatrices(),l},di.minZoom.get=function(){return this._minZoom},di.minZoom.set=function(l){this._minZoom!==l&&(this._minZoom=l,this.zoom=Math.max(this.zoom,l))},di.maxZoom.get=function(){return this._maxZoom},di.maxZoom.set=function(l){this._maxZoom!==l&&(this._maxZoom=l,this.zoom=Math.min(this.zoom,l))},di.minPitch.get=function(){return this._minPitch},di.minPitch.set=function(l){this._minPitch!==l&&(this._minPitch=l,this.pitch=Math.max(this.pitch,l))},di.maxPitch.get=function(){return this._maxPitch},di.maxPitch.set=function(l){this._maxPitch!==l&&(this._maxPitch=l,this.pitch=Math.min(this.pitch,l))},di.renderWorldCopies.get=function(){return this._renderWorldCopies},di.renderWorldCopies.set=function(l){l===void 0?l=!0:l===null&&(l=!1),this._renderWorldCopies=l},di.worldSize.get=function(){return this.tileSize*this.scale},di.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},di.size.get=function(){return new n.Point(this.width,this.height)},di.bearing.get=function(){return-this.angle/Math.PI*180},di.bearing.set=function(l){var d=-n.wrap(l,-180,180)*Math.PI/180;this.angle!==d&&(this._unmodified=!1,this.angle=d,this._calcMatrices(),this.rotationMatrix=n.create$2(),n.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},di.pitch.get=function(){return this._pitch/Math.PI*180},di.pitch.set=function(l){var d=n.clamp(l,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==d&&(this._unmodified=!1,this._pitch=d,this._calcMatrices())},di.fov.get=function(){return this._fov/Math.PI*180},di.fov.set=function(l){l=Math.max(.01,Math.min(60,l)),this._fov!==l&&(this._unmodified=!1,this._fov=l/180*Math.PI,this._calcMatrices())},di.zoom.get=function(){return this._zoom},di.zoom.set=function(l){var d=Math.min(Math.max(l,this.minZoom),this.maxZoom);this._zoom!==d&&(this._unmodified=!1,this._zoom=d,this.scale=this.zoomScale(d),this.tileZoom=Math.floor(d),this.zoomFraction=d-this.tileZoom,this._constrain(),this._calcMatrices())},di.center.get=function(){return this._center},di.center.set=function(l){l.lat===this._center.lat&&l.lng===this._center.lng||(this._unmodified=!1,this._center=l,this._constrain(),this._calcMatrices())},di.padding.get=function(){return this._edgeInsets.toJSON()},di.padding.set=function(l){this._edgeInsets.equals(l)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,l,1),this._calcMatrices())},di.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},No.prototype.isPaddingEqual=function(l){return this._edgeInsets.equals(l)},No.prototype.interpolatePadding=function(l,d,c){this._unmodified=!1,this._edgeInsets.interpolate(l,d,c),this._constrain(),this._calcMatrices()},No.prototype.coveringZoomLevel=function(l){var d=(l.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/l.tileSize));return Math.max(0,d)},No.prototype.getVisibleUnwrappedCoordinates=function(l){var d=[new n.UnwrappedTileID(0,l)];if(this._renderWorldCopies)for(var c=this.pointCoordinate(new n.Point(0,0)),f=this.pointCoordinate(new n.Point(this.width,0)),E=this.pointCoordinate(new n.Point(this.width,this.height)),A=this.pointCoordinate(new n.Point(0,this.height)),T=Math.floor(Math.min(c.x,f.x,E.x,A.x)),w=Math.floor(Math.max(c.x,f.x,E.x,A.x)),D=T-1;D<=w+1;D++)D!==0&&d.push(new n.UnwrappedTileID(D,l));return d},No.prototype.coveringTiles=function(l){var d=this.coveringZoomLevel(l),c=d;if(l.minzoom!==void 0&&d<l.minzoom)return[];l.maxzoom!==void 0&&d>l.maxzoom&&(d=l.maxzoom);var f=n.MercatorCoordinate.fromLngLat(this.center),E=Math.pow(2,d),A=[E*f.x,E*f.y,0],T=jl.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,d),w=l.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(w=d);var D=function(Bt){return{aabb:new Ts([Bt*E,0,0],[(Bt+1)*E,E,0]),zoom:0,x:0,y:0,wrap:Bt,fullyVisible:!1}},z=[],$=[],K=d,ee=l.reparseOverscaled?c:d;if(this._renderWorldCopies)for(var _e=1;_e<=3;_e++)z.push(D(-_e)),z.push(D(_e));for(z.push(D(0));z.length>0;){var de=z.pop(),Te=de.x,le=de.y,Fe=de.fullyVisible;if(!Fe){var De=de.aabb.intersects(T);if(De===0)continue;Fe=De===2}var Xe=de.aabb.distanceX(A),at=de.aabb.distanceY(A),Je=Math.max(Math.abs(Xe),Math.abs(at));if(de.zoom===K||Je>3+(1<<K-de.zoom)-2&&de.zoom>=w)$.push({tileID:new n.OverscaledTileID(de.zoom===K?ee:de.zoom,de.wrap,de.zoom,Te,le),distanceSq:n.sqrLen([A[0]-.5-Te,A[1]-.5-le])});else for(var ct=0;ct<4;ct++){var Pt=(Te<<1)+ct%2,Ht=(le<<1)+(ct>>1);z.push({aabb:de.aabb.quadrant(ct),zoom:de.zoom+1,x:Pt,y:Ht,wrap:de.wrap,fullyVisible:Fe})}}return $.sort(function(Bt,nr){return Bt.distanceSq-nr.distanceSq}).map(function(Bt){return Bt.tileID})},No.prototype.resize=function(l,d){this.width=l,this.height=d,this.pixelsToGLUnits=[2/l,-2/d],this._constrain(),this._calcMatrices()},di.unmodified.get=function(){return this._unmodified},No.prototype.zoomScale=function(l){return Math.pow(2,l)},No.prototype.scaleZoom=function(l){return Math.log(l)/Math.LN2},No.prototype.project=function(l){var d=n.clamp(l.lat,-this.maxValidLatitude,this.maxValidLatitude);return new n.Point(n.mercatorXfromLng(l.lng)*this.worldSize,n.mercatorYfromLat(d)*this.worldSize)},No.prototype.unproject=function(l){return new n.MercatorCoordinate(l.x/this.worldSize,l.y/this.worldSize).toLngLat()},di.point.get=function(){return this.project(this.center)},No.prototype.setLocationAtPoint=function(l,d){var c=this.pointCoordinate(d),f=this.pointCoordinate(this.centerPoint),E=this.locationCoordinate(l),A=new n.MercatorCoordinate(E.x-(c.x-f.x),E.y-(c.y-f.y));this.center=this.coordinateLocation(A),this._renderWorldCopies&&(this.center=this.center.wrap())},No.prototype.locationPoint=function(l){return this.coordinatePoint(this.locationCoordinate(l))},No.prototype.pointLocation=function(l){return this.coordinateLocation(this.pointCoordinate(l))},No.prototype.locationCoordinate=function(l){return n.MercatorCoordinate.fromLngLat(l)},No.prototype.coordinateLocation=function(l){return l.toLngLat()},No.prototype.pointCoordinate=function(l){var d=[l.x,l.y,0,1],c=[l.x,l.y,1,1];n.transformMat4(d,d,this.pixelMatrixInverse),n.transformMat4(c,c,this.pixelMatrixInverse);var f=d[3],E=c[3],A=d[1]/f,T=c[1]/E,w=d[2]/f,D=c[2]/E,z=w===D?0:(0-w)/(D-w);return new n.MercatorCoordinate(n.number(d[0]/f,c[0]/E,z)/this.worldSize,n.number(A,T,z)/this.worldSize)},No.prototype.coordinatePoint=function(l){var d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.transformMat4(d,d,this.pixelMatrix),new n.Point(d[0]/d[3],d[1]/d[3])},No.prototype.getBounds=function(){return new n.LngLatBounds().extend(this.pointLocation(new n.Point(0,0))).extend(this.pointLocation(new n.Point(this.width,0))).extend(this.pointLocation(new n.Point(this.width,this.height))).extend(this.pointLocation(new n.Point(0,this.height)))},No.prototype.getMaxBounds=function(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new n.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},No.prototype.setMaxBounds=function(l){l?(this.lngRange=[l.getWest(),l.getEast()],this.latRange=[l.getSouth(),l.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},No.prototype.calculatePosMatrix=function(l,d){d===void 0&&(d=!1);var c=l.key,f=d?this._alignedPosMatrixCache:this._posMatrixCache;if(f[c])return f[c];var E=l.canonical,A=this.worldSize/this.zoomScale(E.z),T=E.x+Math.pow(2,E.z)*l.wrap,w=n.identity(new Float64Array(16));return n.translate(w,w,[T*A,E.y*A,0]),n.scale(w,w,[A/n.EXTENT,A/n.EXTENT,1]),n.multiply(w,d?this.alignedProjMatrix:this.projMatrix,w),f[c]=new Float32Array(w),f[c]},No.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},No.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var l,d,c,f,E=-90,A=90,T=-180,w=180,D=this.size,z=this._unmodified;if(this.latRange){var $=this.latRange;E=n.mercatorYfromLat($[1])*this.worldSize,l=(A=n.mercatorYfromLat($[0])*this.worldSize)-E<D.y?D.y/(A-E):0}if(this.lngRange){var K=this.lngRange;T=n.mercatorXfromLng(K[0])*this.worldSize,d=(w=n.mercatorXfromLng(K[1])*this.worldSize)-T<D.x?D.x/(w-T):0}var ee=this.point,_e=Math.max(d||0,l||0);if(_e)return this.center=this.unproject(new n.Point(d?(w+T)/2:ee.x,l?(A+E)/2:ee.y)),this.zoom+=this.scaleZoom(_e),this._unmodified=z,void(this._constraining=!1);if(this.latRange){var de=ee.y,Te=D.y/2;de-Te<E&&(f=E+Te),de+Te>A&&(f=A-Te)}if(this.lngRange){var le=ee.x,Fe=D.x/2;le-Fe<T&&(c=T+Fe),le+Fe>w&&(c=w-Fe)}c===void 0&&f===void 0||(this.center=this.unproject(new n.Point(c!==void 0?c:ee.x,f!==void 0?f:ee.y))),this._unmodified=z,this._constraining=!1}},No.prototype._calcMatrices=function(){if(this.height){var l=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var d=Math.PI/2+this._pitch,c=this._fov*(.5+l.y/this.height),f=Math.sin(c)*this.cameraToCenterDistance/Math.sin(n.clamp(Math.PI-d-c,.01,Math.PI-.01)),E=this.point,A=E.x,T=E.y,w=1.01*(Math.cos(Math.PI/2-this._pitch)*f+this.cameraToCenterDistance),D=this.height/50,z=new Float64Array(16);n.perspective(z,this._fov,this.width/this.height,D,w),z[8]=2*-l.x/this.width,z[9]=2*l.y/this.height,n.scale(z,z,[1,-1,1]),n.translate(z,z,[0,0,-this.cameraToCenterDistance]),n.rotateX(z,z,this._pitch),n.rotateZ(z,z,this.angle),n.translate(z,z,[-A,-T,0]),this.mercatorMatrix=n.scale([],z,[this.worldSize,this.worldSize,this.worldSize]),n.scale(z,z,[1,1,n.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=z,this.invProjMatrix=n.invert([],this.projMatrix);var $=this.width%2/2,K=this.height%2/2,ee=Math.cos(this.angle),_e=Math.sin(this.angle),de=A-Math.round(A)+ee*$+_e*K,Te=T-Math.round(T)+ee*K+_e*$,le=new Float64Array(z);if(n.translate(le,le,[de>.5?de-1:de,Te>.5?Te-1:Te,0]),this.alignedProjMatrix=le,z=n.create(),n.scale(z,z,[this.width/2,-this.height/2,1]),n.translate(z,z,[1,-1,0]),this.labelPlaneMatrix=z,z=n.create(),n.scale(z,z,[1,-1,1]),n.translate(z,z,[-1,-1,0]),n.scale(z,z,[2/this.width,2/this.height,1]),this.glCoordMatrix=z,this.pixelMatrix=n.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(z=n.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=z,this._posMatrixCache={},this._alignedPosMatrixCache={}}},No.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var l=this.pointCoordinate(new n.Point(0,0)),d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.transformMat4(d,d,this.pixelMatrix)[3]/this.cameraToCenterDistance},No.prototype.getCameraPoint=function(){var l=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new n.Point(0,l))},No.prototype.getCameraQueryGeometry=function(l){var d=this.getCameraPoint();if(l.length===1)return[l[0],d];for(var c=d.x,f=d.y,E=d.x,A=d.y,T=0,w=l;T<w.length;T+=1){var D=w[T];c=Math.min(c,D.x),f=Math.min(f,D.y),E=Math.max(E,D.x),A=Math.max(A,D.y)}return[new n.Point(c,f),new n.Point(E,f),new n.Point(E,A),new n.Point(c,A),new n.Point(c,f)]},Object.defineProperties(No.prototype,di);var La=function(l){var d,c,f,E;this._hashName=l&&encodeURIComponent(l),n.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=(d=this._updateHashUnthrottled.bind(this),c=!1,f=null,E=function(){f=null,c&&(d(),f=setTimeout(E,300),c=!1)},function(){return c=!0,f||E(),f})};La.prototype.addTo=function(l){return this._map=l,n.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},La.prototype.remove=function(){return n.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},La.prototype.getHashString=function(l){var d=this._map.getCenter(),c=Math.round(100*this._map.getZoom())/100,f=Math.ceil((c*Math.LN2+Math.log(512/360/.5))/Math.LN10),E=Math.pow(10,f),A=Math.round(d.lng*E)/E,T=Math.round(d.lat*E)/E,w=this._map.getBearing(),D=this._map.getPitch(),z="";if(z+=l?"/"+A+"/"+T+"/"+c:c+"/"+T+"/"+A,(w||D)&&(z+="/"+Math.round(10*w)/10),D&&(z+="/"+Math.round(D)),this._hashName){var $=this._hashName,K=!1,ee=n.window.location.hash.slice(1).split("&").map(function(_e){var de=_e.split("=")[0];return de===$?(K=!0,de+"="+z):_e}).filter(function(_e){return _e});return K||ee.push($+"="+z),"#"+ee.join("&")}return"#"+z},La.prototype._getCurrentHash=function(){var l,d=this,c=n.window.location.hash.replace("#","");return this._hashName?(c.split("&").map(function(f){return f.split("=")}).forEach(function(f){f[0]===d._hashName&&(l=f)}),(l&&l[1]||"").split("/")):c.split("/")},La.prototype._onHashChange=function(){var l=this._getCurrentHash();if(l.length>=3&&!l.some(function(c){return isNaN(c)})){var d=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(l[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+l[2],+l[1]],zoom:+l[0],bearing:d,pitch:+(l[4]||0)}),!0}return!1},La.prototype._updateHashUnthrottled=function(){var l=n.window.location.href.replace(/(#.+)?$/,this.getHashString());try{n.window.history.replaceState(n.window.history.state,null,l)}catch{}};var al={linearity:.3,easing:n.bezier(0,0,.3,1)},Ap=n.extend({deceleration:2500,maxSpeed:1400},al),sl=n.extend({deceleration:20,maxSpeed:1400},al),B1=n.extend({deceleration:1e3,maxSpeed:360},al),Wl=n.extend({deceleration:1e3,maxSpeed:90},al),ul=function(l){this._map=l,this.clear()};function Ru(l,d){(!l.duration||l.duration<d.duration)&&(l.duration=d.duration,l.easing=d.easing)}function dn(l,d,c){var f=c.maxSpeed,E=c.linearity,A=c.deceleration,T=n.clamp(l*E/(d/1e3),-f,f),w=Math.abs(T)/(A*E);return{easing:c.easing,duration:1e3*w,amount:T*(w/2)}}ul.prototype.clear=function(){this._inertiaBuffer=[]},ul.prototype.record=function(l){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:n.browser.now(),settings:l})},ul.prototype._drainInertiaBuffer=function(){for(var l=this._inertiaBuffer,d=n.browser.now();l.length>0&&d-l[0].time>160;)l.shift()},ul.prototype._onMoveEnd=function(l){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var d={zoom:0,bearing:0,pitch:0,pan:new n.Point(0,0),pinchAround:void 0,around:void 0},c=0,f=this._inertiaBuffer;c<f.length;c+=1){var E=f[c].settings;d.zoom+=E.zoomDelta||0,d.bearing+=E.bearingDelta||0,d.pitch+=E.pitchDelta||0,E.panDelta&&d.pan._add(E.panDelta),E.around&&(d.around=E.around),E.pinchAround&&(d.pinchAround=E.pinchAround)}var A=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,T={};if(d.pan.mag()){var w=dn(d.pan.mag(),A,n.extend({},Ap,l||{}));T.offset=d.pan.mult(w.amount/d.pan.mag()),T.center=this._map.transform.center,Ru(T,w)}if(d.zoom){var D=dn(d.zoom,A,sl);T.zoom=this._map.transform.zoom+D.amount,Ru(T,D)}if(d.bearing){var z=dn(d.bearing,A,B1);T.bearing=this._map.transform.bearing+n.clamp(z.amount,-179,179),Ru(T,z)}if(d.pitch){var $=dn(d.pitch,A,Wl);T.pitch=this._map.transform.pitch+$.amount,Ru(T,$)}if(T.zoom||T.bearing){var K=d.pinchAround===void 0?d.around:d.pinchAround;T.around=K?this._map.unproject(K):this._map.getCenter()}return this.clear(),n.extend(T,{noMoveStart:!0})}};var bi=function(l){function d(f,E,A,T){T===void 0&&(T={});var w=m.mousePos(E.getCanvasContainer(),A),D=E.unproject(w);l.call(this,f,n.extend({point:w,lngLat:D,originalEvent:A},T)),this._defaultPrevented=!1,this.target=E}l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d;var c={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},c.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,c),d}(n.Event),Fp=function(l){function d(f,E,A){var T=f==="touchend"?A.changedTouches:A.touches,w=m.touchPos(E.getCanvasContainer(),T),D=w.map(function(K){return E.unproject(K)}),z=w.reduce(function(K,ee,_e,de){return K.add(ee.div(de.length))},new n.Point(0,0)),$=E.unproject(z);l.call(this,f,{points:w,point:z,lngLats:D,lngLat:$,originalEvent:A}),this._defaultPrevented=!1}l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d;var c={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},c.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,c),d}(n.Event),Xc=function(l){function d(f,E,A){l.call(this,f,{originalEvent:A}),this._defaultPrevented=!1}l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d;var c={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},c.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,c),d}(n.Event),Gi=function(l,d){this._map=l,this._clickTolerance=d.clickTolerance};Gi.prototype.reset=function(){delete this._mousedownPos},Gi.prototype.wheel=function(l){return this._firePreventable(new Xc(l.type,this._map,l))},Gi.prototype.mousedown=function(l,d){return this._mousedownPos=d,this._firePreventable(new bi(l.type,this._map,l))},Gi.prototype.mouseup=function(l){this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.click=function(l,d){this._mousedownPos&&this._mousedownPos.dist(d)>=this._clickTolerance||this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.dblclick=function(l){return this._firePreventable(new bi(l.type,this._map,l))},Gi.prototype.mouseover=function(l){this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.mouseout=function(l){this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.touchstart=function(l){return this._firePreventable(new Fp(l.type,this._map,l))},Gi.prototype.touchmove=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype.touchend=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype.touchcancel=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype._firePreventable=function(l){if(this._map.fire(l),l.defaultPrevented)return{}},Gi.prototype.isEnabled=function(){return!0},Gi.prototype.isActive=function(){return!1},Gi.prototype.enable=function(){},Gi.prototype.disable=function(){};var hr=function(l){this._map=l};hr.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},hr.prototype.mousemove=function(l){this._map.fire(new bi(l.type,this._map,l))},hr.prototype.mousedown=function(){this._delayContextMenu=!0},hr.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new bi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},hr.prototype.contextmenu=function(l){this._delayContextMenu?this._contextMenuEvent=l:this._map.fire(new bi(l.type,this._map,l)),this._map.listens("contextmenu")&&l.preventDefault()},hr.prototype.isEnabled=function(){return!0},hr.prototype.isActive=function(){return!1},hr.prototype.enable=function(){},hr.prototype.disable=function(){};var ca=function(l,d){this._map=l,this._el=l.getCanvasContainer(),this._container=l.getContainer(),this._clickTolerance=d.clickTolerance||1};function pl(l,d){for(var c={},f=0;f<l.length;f++)c[l[f].identifier]=d[f];return c}ca.prototype.isEnabled=function(){return!!this._enabled},ca.prototype.isActive=function(){return!!this._active},ca.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},ca.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},ca.prototype.mousedown=function(l,d){this.isEnabled()&&l.shiftKey&&l.button===0&&(m.disableDrag(),this._startPos=this._lastPos=d,this._active=!0)},ca.prototype.mousemoveWindow=function(l,d){if(this._active){var c=d;if(!(this._lastPos.equals(c)||!this._box&&c.dist(this._startPos)<this._clickTolerance)){var f=this._startPos;this._lastPos=c,this._box||(this._box=m.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",l));var E=Math.min(f.x,c.x),A=Math.max(f.x,c.x),T=Math.min(f.y,c.y),w=Math.max(f.y,c.y);m.setTransform(this._box,"translate("+E+"px,"+T+"px)"),this._box.style.width=A-E+"px",this._box.style.height=w-T+"px"}}},ca.prototype.mouseupWindow=function(l,d){var c=this;if(this._active&&l.button===0){var f=this._startPos,E=d;if(this.reset(),m.suppressClick(),f.x!==E.x||f.y!==E.y)return this._map.fire(new n.Event("boxzoomend",{originalEvent:l})),{cameraAnimation:function(A){return A.fitScreenCoordinates(f,E,c._map.getBearing(),{linear:!0})}};this._fireEvent("boxzoomcancel",l)}},ca.prototype.keydown=function(l){this._active&&l.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",l))},ca.prototype.blur=function(){this.reset()},ca.prototype.reset=function(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(m.remove(this._box),this._box=null),m.enableDrag(),delete this._startPos,delete this._lastPos},ca.prototype._fireEvent=function(l,d){return this._map.fire(new n.Event(l,{originalEvent:d}))};var Tp=function(l){this.reset(),this.numTouches=l.numTouches};Tp.prototype.reset=function(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1},Tp.prototype.touchstart=function(l,d,c){(this.centroid||c.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=l.timeStamp),c.length===this.numTouches&&(this.centroid=function(f){for(var E=new n.Point(0,0),A=0,T=f;A<T.length;A+=1)E._add(T[A]);return E.div(f.length)}(d),this.touches=pl(c,d)))},Tp.prototype.touchmove=function(l,d,c){if(!this.aborted&&this.centroid){var f=pl(c,d);for(var E in this.touches){var A=f[E];(!A||A.dist(this.touches[E])>30)&&(this.aborted=!0)}}},Tp.prototype.touchend=function(l,d,c){if((!this.centroid||l.timeStamp-this.startTime>500)&&(this.aborted=!0),c.length===0){var f=!this.aborted&&this.centroid;if(this.reset(),f)return f}};var ea=function(l){this.singleTap=new Tp(l),this.numTaps=l.numTaps,this.reset()};ea.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},ea.prototype.touchstart=function(l,d,c){this.singleTap.touchstart(l,d,c)},ea.prototype.touchmove=function(l,d,c){this.singleTap.touchmove(l,d,c)},ea.prototype.touchend=function(l,d,c){var f=this.singleTap.touchend(l,d,c);if(f){var E=l.timeStamp-this.lastTime<500,A=!this.lastTap||this.lastTap.dist(f)<30;if(E&&A||this.reset(),this.count++,this.lastTime=l.timeStamp,this.lastTap=f,this.count===this.numTaps)return this.reset(),f}};var oi=function(){this._zoomIn=new ea({numTouches:1,numTaps:2}),this._zoomOut=new ea({numTouches:2,numTaps:1}),this.reset()};oi.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},oi.prototype.touchstart=function(l,d,c){this._zoomIn.touchstart(l,d,c),this._zoomOut.touchstart(l,d,c)},oi.prototype.touchmove=function(l,d,c){this._zoomIn.touchmove(l,d,c),this._zoomOut.touchmove(l,d,c)},oi.prototype.touchend=function(l,d,c){var f=this,E=this._zoomIn.touchend(l,d,c),A=this._zoomOut.touchend(l,d,c);return E?(this._active=!0,l.preventDefault(),setTimeout(function(){return f.reset()},0),{cameraAnimation:function(T){return T.easeTo({duration:300,zoom:T.getZoom()+1,around:T.unproject(E)},{originalEvent:l})}}):A?(this._active=!0,l.preventDefault(),setTimeout(function(){return f.reset()},0),{cameraAnimation:function(T){return T.easeTo({duration:300,zoom:T.getZoom()-1,around:T.unproject(A)},{originalEvent:l})}}):void 0},oi.prototype.touchcancel=function(){this.reset()},oi.prototype.enable=function(){this._enabled=!0},oi.prototype.disable=function(){this._enabled=!1,this.reset()},oi.prototype.isEnabled=function(){return this._enabled},oi.prototype.isActive=function(){return this._active};var Xl={0:1,2:2},Kt=function(l){this.reset(),this._clickTolerance=l.clickTolerance||1};Kt.prototype.blur=function(){this.reset()},Kt.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Kt.prototype._correctButton=function(l,d){return!1},Kt.prototype._move=function(l,d){return{}},Kt.prototype.mousedown=function(l,d){if(!this._lastPoint){var c=m.mouseButton(l);this._correctButton(l,c)&&(this._lastPoint=d,this._eventButton=c)}},Kt.prototype.mousemoveWindow=function(l,d){var c=this._lastPoint;if(c){if(l.preventDefault(),function(f,E){var A=Xl[E];return f.buttons===void 0||(f.buttons&A)!==A}(l,this._eventButton))this.reset();else if(this._moved||!(d.dist(c)<this._clickTolerance))return this._moved=!0,this._lastPoint=d,this._move(c,d)}},Kt.prototype.mouseupWindow=function(l){this._lastPoint&&m.mouseButton(l)===this._eventButton&&(this._moved&&m.suppressClick(),this.reset())},Kt.prototype.enable=function(){this._enabled=!0},Kt.prototype.disable=function(){this._enabled=!1,this.reset()},Kt.prototype.isEnabled=function(){return this._enabled},Kt.prototype.isActive=function(){return this._active};var Js=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.mousedown=function(c,f){l.prototype.mousedown.call(this,c,f),this._lastPoint&&(this._active=!0)},d.prototype._correctButton=function(c,f){return f===0&&!c.ctrlKey},d.prototype._move=function(c,f){return{around:f,panDelta:f.sub(c)}},d}(Kt),ll=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype._correctButton=function(c,f){return f===0&&c.ctrlKey||f===2},d.prototype._move=function(c,f){var E=.8*(f.x-c.x);if(E)return this._active=!0,{bearingDelta:E}},d.prototype.contextmenu=function(c){c.preventDefault()},d}(Kt),Zl=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype._correctButton=function(c,f){return f===0&&c.ctrlKey||f===2},d.prototype._move=function(c,f){var E=-.5*(f.y-c.y);if(E)return this._active=!0,{pitchDelta:E}},d.prototype.contextmenu=function(c){c.preventDefault()},d}(Kt),$a=function(l){this._minTouches=1,this._clickTolerance=l.clickTolerance||1,this.reset()};$a.prototype.reset=function(){this._active=!1,this._touches={},this._sum=new n.Point(0,0)},$a.prototype.touchstart=function(l,d,c){return this._calculateTransform(l,d,c)},$a.prototype.touchmove=function(l,d,c){if(this._active&&!(c.length<this._minTouches))return l.preventDefault(),this._calculateTransform(l,d,c)},$a.prototype.touchend=function(l,d,c){this._calculateTransform(l,d,c),this._active&&c.length<this._minTouches&&this.reset()},$a.prototype.touchcancel=function(){this.reset()},$a.prototype._calculateTransform=function(l,d,c){c.length>0&&(this._active=!0);var f=pl(c,d),E=new n.Point(0,0),A=new n.Point(0,0),T=0;for(var w in f){var D=f[w],z=this._touches[w];z&&(E._add(D),A._add(D.sub(z)),T++,f[w]=D)}if(this._touches=f,!(T<this._minTouches)&&A.mag()){var $=A.div(T);if(this._sum._add($),!(this._sum.mag()<this._clickTolerance))return{around:E.div(T),panDelta:$}}},$a.prototype.enable=function(){this._enabled=!0},$a.prototype.disable=function(){this._enabled=!1,this.reset()},$a.prototype.isEnabled=function(){return this._enabled},$a.prototype.isActive=function(){return this._active};var Aa=function(){this.reset()};function Yl(l,d,c){for(var f=0;f<l.length;f++)if(l[f].identifier===c)return d[f]}function $l(l,d){return Math.log(l/d)/Math.LN2}Aa.prototype.reset=function(){this._active=!1,delete this._firstTwoTouches},Aa.prototype._start=function(l){},Aa.prototype._move=function(l,d,c){return{}},Aa.prototype.touchstart=function(l,d,c){this._firstTwoTouches||c.length<2||(this._firstTwoTouches=[c[0].identifier,c[1].identifier],this._start([d[0],d[1]]))},Aa.prototype.touchmove=function(l,d,c){if(this._firstTwoTouches){l.preventDefault();var f=this._firstTwoTouches,E=f[1],A=Yl(c,d,f[0]),T=Yl(c,d,E);if(A&&T){var w=this._aroundCenter?null:A.add(T).div(2);return this._move([A,T],w,l)}}},Aa.prototype.touchend=function(l,d,c){if(this._firstTwoTouches){var f=this._firstTwoTouches,E=f[1],A=Yl(c,d,f[0]),T=Yl(c,d,E);A&&T||(this._active&&m.suppressClick(),this.reset())}},Aa.prototype.touchcancel=function(){this.reset()},Aa.prototype.enable=function(l){this._enabled=!0,this._aroundCenter=!!l&&l.around==="center"},Aa.prototype.disable=function(){this._enabled=!1,this.reset()},Aa.prototype.isEnabled=function(){return this._enabled},Aa.prototype.isActive=function(){return this._active};var ta=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.reset=function(){l.prototype.reset.call(this),delete this._distance,delete this._startDistance},d.prototype._start=function(c){this._startDistance=this._distance=c[0].dist(c[1])},d.prototype._move=function(c,f){var E=this._distance;if(this._distance=c[0].dist(c[1]),this._active||!(Math.abs($l(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:$l(this._distance,E),pinchAround:f}},d}(Aa);function Ss(l,d){return 180*l.angleWith(d)/Math.PI}var U1=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.reset=function(){l.prototype.reset.call(this),delete this._minDiameter,delete this._startVector,delete this._vector},d.prototype._start=function(c){this._startVector=this._vector=c[0].sub(c[1]),this._minDiameter=c[0].dist(c[1])},d.prototype._move=function(c,f){var E=this._vector;if(this._vector=c[0].sub(c[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:Ss(this._vector,E),pinchAround:f}},d.prototype._isBelowThreshold=function(c){this._minDiameter=Math.min(this._minDiameter,c.mag());var f=25/(Math.PI*this._minDiameter)*360,E=Ss(c,this._startVector);return Math.abs(E)<f},d}(Aa);function Sp(l){return Math.abs(l.y)>Math.abs(l.x)}var ql=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.reset=function(){l.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},d.prototype._start=function(c){this._lastPoints=c,Sp(c[0].sub(c[1]))&&(this._valid=!1)},d.prototype._move=function(c,f,E){var A=c[0].sub(this._lastPoints[0]),T=c[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(A,T,E.timeStamp),this._valid)return this._lastPoints=c,this._active=!0,{pitchDelta:(A.y+T.y)/2*-.5}},d.prototype.gestureBeginsVertically=function(c,f,E){if(this._valid!==void 0)return this._valid;var A=c.mag()>=2,T=f.mag()>=2;if(A||T){if(!A||!T)return this._firstMove===void 0&&(this._firstMove=E),E-this._firstMove<100&&void 0;var w=c.y>0==f.y>0;return Sp(c)&&Sp(f)&&w}},d}(Aa),Zc={panStep:100,bearingStep:15,pitchStep:10},Fa=function(){var l=Zc;this._panStep=l.panStep,this._bearingStep=l.bearingStep,this._pitchStep=l.pitchStep,this._rotationDisabled=!1};function Ba(l){return l*(2-l)}Fa.prototype.blur=function(){this.reset()},Fa.prototype.reset=function(){this._active=!1},Fa.prototype.keydown=function(l){var d=this;if(!(l.altKey||l.ctrlKey||l.metaKey)){var c=0,f=0,E=0,A=0,T=0;switch(l.keyCode){case 61:case 107:case 171:case 187:c=1;break;case 189:case 109:case 173:c=-1;break;case 37:l.shiftKey?f=-1:(l.preventDefault(),A=-1);break;case 39:l.shiftKey?f=1:(l.preventDefault(),A=1);break;case 38:l.shiftKey?E=1:(l.preventDefault(),T=-1);break;case 40:l.shiftKey?E=-1:(l.preventDefault(),T=1);break;default:return}return this._rotationDisabled&&(f=0,E=0),{cameraAnimation:function(w){var D=w.getZoom();w.easeTo({duration:300,easeId:"keyboardHandler",easing:Ba,zoom:c?Math.round(D)+c*(l.shiftKey?2:1):D,bearing:w.getBearing()+f*d._bearingStep,pitch:w.getPitch()+E*d._pitchStep,offset:[-A*d._panStep,-T*d._panStep],center:w.getCenter()},{originalEvent:l})}}}},Fa.prototype.enable=function(){this._enabled=!0},Fa.prototype.disable=function(){this._enabled=!1,this.reset()},Fa.prototype.isEnabled=function(){return this._enabled},Fa.prototype.isActive=function(){return this._active},Fa.prototype.disableRotation=function(){this._rotationDisabled=!0},Fa.prototype.enableRotation=function(){this._rotationDisabled=!1};var po=function(l,d){this._map=l,this._el=l.getCanvasContainer(),this._handler=d,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,n.bindAll(["_onTimeout"],this)};po.prototype.setZoomRate=function(l){this._defaultZoomRate=l},po.prototype.setWheelZoomRate=function(l){this._wheelZoomRate=l},po.prototype.isEnabled=function(){return!!this._enabled},po.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},po.prototype.isZooming=function(){return!!this._zooming},po.prototype.enable=function(l){this.isEnabled()||(this._enabled=!0,this._aroundCenter=l&&l.around==="center")},po.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},po.prototype.wheel=function(l){if(this.isEnabled()){var d=l.deltaMode===n.window.WheelEvent.DOM_DELTA_LINE?40*l.deltaY:l.deltaY,c=n.browser.now(),f=c-(this._lastWheelEventTime||0);this._lastWheelEventTime=c,d!==0&&d%4.000244140625==0?this._type="wheel":d!==0&&Math.abs(d)<4?this._type="trackpad":f>400?(this._type=null,this._lastValue=d,this._timeout=setTimeout(this._onTimeout,40,l)):this._type||(this._type=Math.abs(f*d)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,d+=this._lastValue)),l.shiftKey&&d&&(d/=4),this._type&&(this._lastWheelEvent=l,this._delta-=d,this._active||this._start(l)),l.preventDefault()}},po.prototype._onTimeout=function(l){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(l)},po.prototype._start=function(l){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var d=m.mousePos(this._el,l);this._around=n.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(d)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},po.prototype.renderFrame=function(){var l=this;if(this._frameId&&(this._frameId=null,this.isActive())){var d=this._map.transform;if(this._delta!==0){var c=this._type==="wheel"&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,f=2/(1+Math.exp(-Math.abs(this._delta*c)));this._delta<0&&f!==0&&(f=1/f);var E=typeof this._targetZoom=="number"?d.zoomScale(this._targetZoom):d.scale;this._targetZoom=Math.min(d.maxZoom,Math.max(d.minZoom,d.scaleZoom(E*f))),this._type==="wheel"&&(this._startZoom=d.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var A,T=typeof this._targetZoom=="number"?this._targetZoom:d.zoom,w=this._startZoom,D=this._easing,z=!1;if(this._type==="wheel"&&w&&D){var $=Math.min((n.browser.now()-this._lastWheelEventTime)/200,1),K=D($);A=n.number(w,T,K),$<1?this._frameId||(this._frameId=!0):z=!0}else A=T,z=!0;return this._active=!0,z&&(this._active=!1,this._finishTimeout=setTimeout(function(){l._zooming=!1,l._handler._triggerRenderFrame(),delete l._targetZoom,delete l._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!z,zoomDelta:A-d.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},po.prototype._smoothOutEasing=function(l){var d=n.ease;if(this._prevEase){var c=this._prevEase,f=(n.browser.now()-c.start)/c.duration,E=c.easing(f+.01)-c.easing(f),A=.27/Math.sqrt(E*E+1e-4)*.01,T=Math.sqrt(.0729-A*A);d=n.bezier(A,T,.25,1)}return this._prevEase={start:n.browser.now(),duration:l,easing:d},d},po.prototype.blur=function(){this.reset()},po.prototype.reset=function(){this._active=!1};var Ua=function(l,d){this._clickZoom=l,this._tapZoom=d};Ua.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},Ua.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},Ua.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},Ua.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var ka=function(){this.reset()};ka.prototype.reset=function(){this._active=!1},ka.prototype.blur=function(){this.reset()},ka.prototype.dblclick=function(l,d){return l.preventDefault(),{cameraAnimation:function(c){c.easeTo({duration:300,zoom:c.getZoom()+(l.shiftKey?-1:1),around:c.unproject(d)},{originalEvent:l})}}},ka.prototype.enable=function(){this._enabled=!0},ka.prototype.disable=function(){this._enabled=!1,this.reset()},ka.prototype.isEnabled=function(){return this._enabled},ka.prototype.isActive=function(){return this._active};var wn=function(){this._tap=new ea({numTouches:1,numTaps:1}),this.reset()};wn.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},wn.prototype.touchstart=function(l,d,c){this._swipePoint||(this._tapTime&&l.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?c.length>0&&(this._swipePoint=d[0],this._swipeTouch=c[0].identifier):this._tap.touchstart(l,d,c))},wn.prototype.touchmove=function(l,d,c){if(this._tapTime){if(this._swipePoint){if(c[0].identifier!==this._swipeTouch)return;var f=d[0],E=f.y-this._swipePoint.y;return this._swipePoint=f,l.preventDefault(),this._active=!0,{zoomDelta:E/128}}}else this._tap.touchmove(l,d,c)},wn.prototype.touchend=function(l,d,c){this._tapTime?this._swipePoint&&c.length===0&&this.reset():this._tap.touchend(l,d,c)&&(this._tapTime=l.timeStamp)},wn.prototype.touchcancel=function(){this.reset()},wn.prototype.enable=function(){this._enabled=!0},wn.prototype.disable=function(){this._enabled=!1,this.reset()},wn.prototype.isEnabled=function(){return this._enabled},wn.prototype.isActive=function(){return this._active};var Cu=function(l,d,c){this._el=l,this._mousePan=d,this._touchPan=c};Cu.prototype.enable=function(l){this._inertiaOptions=l||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},Cu.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},Cu.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},Cu.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var eu=function(l,d,c){this._pitchWithRotate=l.pitchWithRotate,this._mouseRotate=d,this._mousePitch=c};eu.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},eu.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},eu.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},eu.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var qa=function(l,d,c,f){this._el=l,this._touchZoom=d,this._touchRotate=c,this._tapDragZoom=f,this._rotationDisabled=!1,this._enabled=!0};qa.prototype.enable=function(l){this._touchZoom.enable(l),this._rotationDisabled||this._touchRotate.enable(l),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},qa.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},qa.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},qa.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},qa.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},qa.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var Wn=function(l){return l.zoom||l.drag||l.pitch||l.rotate},wp=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d}(n.Event);function Rr(l){return l.panDelta&&l.panDelta.mag()||l.zoomDelta||l.bearingDelta||l.pitchDelta}var gr=function(l,d){this._map=l,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new ul(l),this._bearingSnap=d.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(d),n.bindAll(["handleEvent","handleWindowEvent"],this);var c=this._el;this._listeners=[[c,"touchstart",{passive:!0}],[c,"touchmove",{passive:!1}],[c,"touchend",void 0],[c,"touchcancel",void 0],[c,"mousedown",void 0],[c,"mousemove",void 0],[c,"mouseup",void 0],[n.window.document,"mousemove",{capture:!0}],[n.window.document,"mouseup",void 0],[c,"mouseover",void 0],[c,"mouseout",void 0],[c,"dblclick",void 0],[c,"click",void 0],[c,"keydown",{capture:!1}],[c,"keyup",void 0],[c,"wheel",{passive:!1}],[c,"contextmenu",void 0],[n.window,"blur",void 0]];for(var f=0,E=this._listeners;f<E.length;f+=1){var A=E[f],T=A[0];m.addEventListener(T,A[1],T===n.window.document?this.handleWindowEvent:this.handleEvent,A[2])}};gr.prototype.destroy=function(){for(var l=0,d=this._listeners;l<d.length;l+=1){var c=d[l],f=c[0];m.removeEventListener(f,c[1],f===n.window.document?this.handleWindowEvent:this.handleEvent,c[2])}},gr.prototype._addDefaultHandlers=function(l){var d=this._map,c=d.getCanvasContainer();this._add("mapEvent",new Gi(d,l));var f=d.boxZoom=new ca(d,l);this._add("boxZoom",f);var E=new oi,A=new ka;d.doubleClickZoom=new Ua(A,E),this._add("tapZoom",E),this._add("clickZoom",A);var T=new wn;this._add("tapDragZoom",T);var w=d.touchPitch=new ql;this._add("touchPitch",w);var D=new ll(l),z=new Zl(l);d.dragRotate=new eu(l,D,z),this._add("mouseRotate",D,["mousePitch"]),this._add("mousePitch",z,["mouseRotate"]);var $=new Js(l),K=new $a(l);d.dragPan=new Cu(c,$,K),this._add("mousePan",$),this._add("touchPan",K,["touchZoom","touchRotate"]);var ee=new U1,_e=new ta;d.touchZoomRotate=new qa(c,_e,ee,T),this._add("touchRotate",ee,["touchPan","touchZoom"]),this._add("touchZoom",_e,["touchPan","touchRotate"]);var de=d.scrollZoom=new po(d,this);this._add("scrollZoom",de,["mousePan"]);var Te=d.keyboard=new Fa;this._add("keyboard",Te),this._add("blockableMapEvent",new hr(d));for(var le=0,Fe=["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"];le<Fe.length;le+=1){var De=Fe[le];l.interactive&&l[De]&&d[De].enable(l[De])}},gr.prototype._add=function(l,d,c){this._handlers.push({handlerName:l,handler:d,allowed:c}),this._handlersById[l]=d},gr.prototype.stop=function(l){if(!this._updatingCamera){for(var d=0,c=this._handlers;d<c.length;d+=1)c[d].handler.reset();this._inertia.clear(),this._fireEvents({},{},l),this._changes=[]}},gr.prototype.isActive=function(){for(var l=0,d=this._handlers;l<d.length;l+=1)if(d[l].handler.isActive())return!0;return!1},gr.prototype.isZooming=function(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()},gr.prototype.isRotating=function(){return!!this._eventsInProgress.rotate},gr.prototype.isMoving=function(){return!!Wn(this._eventsInProgress)||this.isZooming()},gr.prototype._blockedByActive=function(l,d,c){for(var f in l)if(f!==c&&(!d||d.indexOf(f)<0))return!0;return!1},gr.prototype.handleWindowEvent=function(l){this.handleEvent(l,l.type+"Window")},gr.prototype._getMapTouches=function(l){for(var d=[],c=0,f=l;c<f.length;c+=1){var E=f[c];this._el.contains(E.target)&&d.push(E)}return d},gr.prototype.handleEvent=function(l,d){this._updatingCamera=!0;for(var c=l.type==="renderFrame"?void 0:l,f={needsRenderFrame:!1},E={},A={},T=l.touches?this._getMapTouches(l.touches):void 0,w=T?m.touchPos(this._el,T):m.mousePos(this._el,l),D=0,z=this._handlers;D<z.length;D+=1){var $=z[D],K=$.handlerName,ee=$.handler,_e=$.allowed;if(ee.isEnabled()){var de=void 0;this._blockedByActive(A,_e,K)?ee.reset():ee[d||l.type]&&(de=ee[d||l.type](l,w,T),this.mergeHandlerResult(f,E,de,K,c),de&&de.needsRenderFrame&&this._triggerRenderFrame()),(de||ee.isActive())&&(A[K]=ee)}}var Te={};for(var le in this._previousActiveHandlers)A[le]||(Te[le]=c);this._previousActiveHandlers=A,(Object.keys(Te).length||Rr(f))&&(this._changes.push([f,E,Te]),this._triggerRenderFrame()),(Object.keys(A).length||Rr(f))&&this._map._stop(!0),this._updatingCamera=!1;var Fe=f.cameraAnimation;Fe&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],Fe(this._map))},gr.prototype.mergeHandlerResult=function(l,d,c,f,E){if(c){n.extend(l,c);var A={handlerName:f,originalEvent:c.originalEvent||E};c.zoomDelta!==void 0&&(d.zoom=A),c.panDelta!==void 0&&(d.drag=A),c.pitchDelta!==void 0&&(d.pitch=A),c.bearingDelta!==void 0&&(d.rotate=A)}},gr.prototype._applyChanges=function(){for(var l={},d={},c={},f=0,E=this._changes;f<E.length;f+=1){var A=E[f],T=A[0],w=A[1],D=A[2];T.panDelta&&(l.panDelta=(l.panDelta||new n.Point(0,0))._add(T.panDelta)),T.zoomDelta&&(l.zoomDelta=(l.zoomDelta||0)+T.zoomDelta),T.bearingDelta&&(l.bearingDelta=(l.bearingDelta||0)+T.bearingDelta),T.pitchDelta&&(l.pitchDelta=(l.pitchDelta||0)+T.pitchDelta),T.around!==void 0&&(l.around=T.around),T.pinchAround!==void 0&&(l.pinchAround=T.pinchAround),T.noInertia&&(l.noInertia=T.noInertia),n.extend(d,w),n.extend(c,D)}this._updateMapTransform(l,d,c),this._changes=[]},gr.prototype._updateMapTransform=function(l,d,c){var f=this._map,E=f.transform;if(!Rr(l))return this._fireEvents(d,c,!0);var A=l.panDelta,T=l.zoomDelta,w=l.bearingDelta,D=l.pitchDelta,z=l.around,$=l.pinchAround;$!==void 0&&(z=$),f._stop(!0),z=z||f.transform.centerPoint;var K=E.pointLocation(A?z.sub(A):z);w&&(E.bearing+=w),D&&(E.pitch+=D),T&&(E.zoom+=T),E.setLocationAtPoint(K,z),this._map._update(),l.noInertia||this._inertia.record(l),this._fireEvents(d,c,!0)},gr.prototype._fireEvents=function(l,d,c){var f=this,E=Wn(this._eventsInProgress),A=Wn(l),T={};for(var w in l)this._eventsInProgress[w]||(T[w+"start"]=l[w].originalEvent),this._eventsInProgress[w]=l[w];for(var D in!E&&A&&this._fireEvent("movestart",A.originalEvent),T)this._fireEvent(D,T[D]);for(var z in A&&this._fireEvent("move",A.originalEvent),l)this._fireEvent(z,l[z].originalEvent);var $,K={};for(var ee in this._eventsInProgress){var _e=this._eventsInProgress[ee],de=_e.handlerName,Te=_e.originalEvent;this._handlersById[de].isActive()||(delete this._eventsInProgress[ee],K[ee+"end"]=$=d[de]||Te)}for(var le in K)this._fireEvent(le,K[le]);var Fe=Wn(this._eventsInProgress);if(c&&(E||A)&&!Fe){this._updatingCamera=!0;var De=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),Xe=function(at){return at!==0&&-f._bearingSnap<at&&at<f._bearingSnap};De?(Xe(De.bearing||this._map.getBearing())&&(De.bearing=0),this._map.easeTo(De,{originalEvent:$})):(this._map.fire(new n.Event("moveend",{originalEvent:$})),Xe(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1}},gr.prototype._fireEvent=function(l,d){this._map.fire(new n.Event(l,d?{originalEvent:d}:{}))},gr.prototype._requestFrame=function(){var l=this;return this._map.triggerRepaint(),this._map._renderTaskQueue.add(function(d){delete l._frameId,l.handleEvent(new wp("renderFrame",{timeStamp:d})),l._applyChanges()})},gr.prototype._triggerRenderFrame=function(){this._frameId===void 0&&(this._frameId=this._requestFrame())};var Ta=function(l){function d(c,f){l.call(this),this._moving=!1,this._zooming=!1,this.transform=c,this._bearingSnap=f.bearingSnap,n.bindAll(["_renderFrameCallback"],this)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.getCenter=function(){return new n.LngLat(this.transform.center.lng,this.transform.center.lat)},d.prototype.setCenter=function(c,f){return this.jumpTo({center:c},f)},d.prototype.panBy=function(c,f,E){return c=n.Point.convert(c).mult(-1),this.panTo(this.transform.center,n.extend({offset:c},f),E)},d.prototype.panTo=function(c,f,E){return this.easeTo(n.extend({center:c},f),E)},d.prototype.getZoom=function(){return this.transform.zoom},d.prototype.setZoom=function(c,f){return this.jumpTo({zoom:c},f),this},d.prototype.zoomTo=function(c,f,E){return this.easeTo(n.extend({zoom:c},f),E)},d.prototype.zoomIn=function(c,f){return this.zoomTo(this.getZoom()+1,c,f),this},d.prototype.zoomOut=function(c,f){return this.zoomTo(this.getZoom()-1,c,f),this},d.prototype.getBearing=function(){return this.transform.bearing},d.prototype.setBearing=function(c,f){return this.jumpTo({bearing:c},f),this},d.prototype.getPadding=function(){return this.transform.padding},d.prototype.setPadding=function(c,f){return this.jumpTo({padding:c},f),this},d.prototype.rotateTo=function(c,f,E){return this.easeTo(n.extend({bearing:c},f),E)},d.prototype.resetNorth=function(c,f){return this.rotateTo(0,n.extend({duration:1e3},c),f),this},d.prototype.resetNorthPitch=function(c,f){return this.easeTo(n.extend({bearing:0,pitch:0,duration:1e3},c),f),this},d.prototype.snapToNorth=function(c,f){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(c,f):this},d.prototype.getPitch=function(){return this.transform.pitch},d.prototype.setPitch=function(c,f){return this.jumpTo({pitch:c},f),this},d.prototype.cameraForBounds=function(c,f){c=n.LngLatBounds.convert(c);var E=f&&f.bearing||0;return this._cameraForBoxAndBearing(c.getNorthWest(),c.getSouthEast(),E,f)},d.prototype._cameraForBoxAndBearing=function(c,f,E,A){var T={top:0,bottom:0,right:0,left:0};if(typeof(A=n.extend({padding:T,offset:[0,0],maxZoom:this.transform.maxZoom},A)).padding=="number"){var w=A.padding;A.padding={top:w,bottom:w,right:w,left:w}}A.padding=n.extend(T,A.padding);var D=this.transform,z=D.padding,$=D.project(n.LngLat.convert(c)),K=D.project(n.LngLat.convert(f)),ee=$.rotate(-E*Math.PI/180),_e=K.rotate(-E*Math.PI/180),de=new n.Point(Math.max(ee.x,_e.x),Math.max(ee.y,_e.y)),Te=new n.Point(Math.min(ee.x,_e.x),Math.min(ee.y,_e.y)),le=de.sub(Te),Fe=(D.width-(z.left+z.right+A.padding.left+A.padding.right))/le.x,De=(D.height-(z.top+z.bottom+A.padding.top+A.padding.bottom))/le.y;if(!(De<0||Fe<0)){var Xe=Math.min(D.scaleZoom(D.scale*Math.min(Fe,De)),A.maxZoom),at=typeof A.offset.x=="number"?new n.Point(A.offset.x,A.offset.y):n.Point.convert(A.offset),Je=new n.Point((A.padding.left-A.padding.right)/2,(A.padding.top-A.padding.bottom)/2).rotate(E*Math.PI/180),ct=at.add(Je).mult(D.scale/D.zoomScale(Xe));return{center:D.unproject($.add(K).div(2).sub(ct)),zoom:Xe,bearing:E}}n.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.")},d.prototype.fitBounds=function(c,f,E){return this._fitInternal(this.cameraForBounds(c,f),f,E)},d.prototype.fitScreenCoordinates=function(c,f,E,A,T){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(n.Point.convert(c)),this.transform.pointLocation(n.Point.convert(f)),E,A),A,T)},d.prototype._fitInternal=function(c,f,E){return c?(delete(f=n.extend(c,f)).padding,f.linear?this.easeTo(f,E):this.flyTo(f,E)):this},d.prototype.jumpTo=function(c,f){this.stop();var E=this.transform,A=!1,T=!1,w=!1;return"zoom"in c&&E.zoom!==+c.zoom&&(A=!0,E.zoom=+c.zoom),c.center!==void 0&&(E.center=n.LngLat.convert(c.center)),"bearing"in c&&E.bearing!==+c.bearing&&(T=!0,E.bearing=+c.bearing),"pitch"in c&&E.pitch!==+c.pitch&&(w=!0,E.pitch=+c.pitch),c.padding==null||E.isPaddingEqual(c.padding)||(E.padding=c.padding),this.fire(new n.Event("movestart",f)).fire(new n.Event("move",f)),A&&this.fire(new n.Event("zoomstart",f)).fire(new n.Event("zoom",f)).fire(new n.Event("zoomend",f)),T&&this.fire(new n.Event("rotatestart",f)).fire(new n.Event("rotate",f)).fire(new n.Event("rotateend",f)),w&&this.fire(new n.Event("pitchstart",f)).fire(new n.Event("pitch",f)).fire(new n.Event("pitchend",f)),this.fire(new n.Event("moveend",f))},d.prototype.easeTo=function(c,f){var E=this;this._stop(!1,c.easeId),((c=n.extend({offset:[0,0],duration:500,easing:n.ease},c)).animate===!1||!c.essential&&n.browser.prefersReducedMotion)&&(c.duration=0);var A=this.transform,T=this.getZoom(),w=this.getBearing(),D=this.getPitch(),z=this.getPadding(),$="zoom"in c?+c.zoom:T,K="bearing"in c?this._normalizeBearing(c.bearing,w):w,ee="pitch"in c?+c.pitch:D,_e="padding"in c?c.padding:A.padding,de=n.Point.convert(c.offset),Te=A.centerPoint.add(de),le=A.pointLocation(Te),Fe=n.LngLat.convert(c.center||le);this._normalizeCenter(Fe);var De,Xe,at=A.project(le),Je=A.project(Fe).sub(at),ct=A.zoomScale($-T);c.around&&(De=n.LngLat.convert(c.around),Xe=A.locationPoint(De));var Pt={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=this._zooming||$!==T,this._rotating=this._rotating||w!==K,this._pitching=this._pitching||ee!==D,this._padding=!A.isPaddingEqual(_e),this._easeId=c.easeId,this._prepareEase(f,c.noMoveStart,Pt),this._ease(function(Ht){if(E._zooming&&(A.zoom=n.number(T,$,Ht)),E._rotating&&(A.bearing=n.number(w,K,Ht)),E._pitching&&(A.pitch=n.number(D,ee,Ht)),E._padding&&(A.interpolatePadding(z,_e,Ht),Te=A.centerPoint.add(de)),De)A.setLocationAtPoint(De,Xe);else{var Bt=A.zoomScale(A.zoom-T),nr=$>T?Math.min(2,ct):Math.max(.5,ct),Cr=Math.pow(nr,1-Ht),Dr=A.unproject(at.add(Je.mult(Ht*Cr)).mult(Bt));A.setLocationAtPoint(A.renderWorldCopies?Dr.wrap():Dr,Te)}E._fireMoveEvents(f)},function(Ht){E._afterEase(f,Ht)},c),this},d.prototype._prepareEase=function(c,f,E){E===void 0&&(E={}),this._moving=!0,f||E.moving||this.fire(new n.Event("movestart",c)),this._zooming&&!E.zooming&&this.fire(new n.Event("zoomstart",c)),this._rotating&&!E.rotating&&this.fire(new n.Event("rotatestart",c)),this._pitching&&!E.pitching&&this.fire(new n.Event("pitchstart",c))},d.prototype._fireMoveEvents=function(c){this.fire(new n.Event("move",c)),this._zooming&&this.fire(new n.Event("zoom",c)),this._rotating&&this.fire(new n.Event("rotate",c)),this._pitching&&this.fire(new n.Event("pitch",c))},d.prototype._afterEase=function(c,f){if(!this._easeId||!f||this._easeId!==f){delete this._easeId;var E=this._zooming,A=this._rotating,T=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,E&&this.fire(new n.Event("zoomend",c)),A&&this.fire(new n.Event("rotateend",c)),T&&this.fire(new n.Event("pitchend",c)),this.fire(new n.Event("moveend",c))}},d.prototype.flyTo=function(c,f){var E=this;if(!c.essential&&n.browser.prefersReducedMotion){var A=n.pick(c,["center","zoom","bearing","pitch","around"]);return this.jumpTo(A,f)}this.stop(),c=n.extend({offset:[0,0],speed:1.2,curve:1.42,easing:n.ease},c);var T=this.transform,w=this.getZoom(),D=this.getBearing(),z=this.getPitch(),$=this.getPadding(),K="zoom"in c?n.clamp(+c.zoom,T.minZoom,T.maxZoom):w,ee="bearing"in c?this._normalizeBearing(c.bearing,D):D,_e="pitch"in c?+c.pitch:z,de="padding"in c?c.padding:T.padding,Te=T.zoomScale(K-w),le=n.Point.convert(c.offset),Fe=T.centerPoint.add(le),De=T.pointLocation(Fe),Xe=n.LngLat.convert(c.center||De);this._normalizeCenter(Xe);var at=T.project(De),Je=T.project(Xe).sub(at),ct=c.curve,Pt=Math.max(T.width,T.height),Ht=Pt/Te,Bt=Je.mag();if("minZoom"in c){var nr=n.clamp(Math.min(c.minZoom,w,K),T.minZoom,T.maxZoom),Cr=Pt/T.zoomScale(nr-w);ct=Math.sqrt(Cr/Bt*2)}var Dr=ct*ct;function Nr(jr){var zr=(Ht*Ht-Pt*Pt+(jr?-1:1)*Dr*Dr*Bt*Bt)/(2*(jr?Ht:Pt)*Dr*Bt);return Math.log(Math.sqrt(zr*zr+1)-zr)}function Lo(jr){return(Math.exp(jr)-Math.exp(-jr))/2}function cr(jr){return(Math.exp(jr)+Math.exp(-jr))/2}var $r=Nr(0),lo=function(jr){return cr($r)/cr($r+ct*jr)},Xr=function(jr){return Pt*((cr($r)*(Lo(zr=$r+ct*jr)/cr(zr))-Lo($r))/Dr)/Bt;var zr},Gr=(Nr(1)-$r)/ct;if(Math.abs(Bt)<1e-6||!isFinite(Gr)){if(Math.abs(Pt-Ht)<1e-6)return this.easeTo(c,f);var uo=Ht<Pt?-1:1;Gr=Math.abs(Math.log(Ht/Pt))/ct,Xr=function(){return 0},lo=function(jr){return Math.exp(uo*ct*jr)}}return c.duration="duration"in c?+c.duration:1e3*Gr/("screenSpeed"in c?+c.screenSpeed/ct:+c.speed),c.maxDuration&&c.duration>c.maxDuration&&(c.duration=0),this._zooming=!0,this._rotating=D!==ee,this._pitching=_e!==z,this._padding=!T.isPaddingEqual(de),this._prepareEase(f,!1),this._ease(function(jr){var zr=jr*Gr,qi=1/lo(zr);T.zoom=jr===1?K:w+T.scaleZoom(qi),E._rotating&&(T.bearing=n.number(D,ee,jr)),E._pitching&&(T.pitch=n.number(z,_e,jr)),E._padding&&(T.interpolatePadding($,de,jr),Fe=T.centerPoint.add(le));var Si=jr===1?Xe:T.unproject(at.add(Je.mult(Xr(zr))).mult(qi));T.setLocationAtPoint(T.renderWorldCopies?Si.wrap():Si,Fe),E._fireMoveEvents(f)},function(){return E._afterEase(f)},c),this},d.prototype.isEasing=function(){return!!this._easeFrameId},d.prototype.stop=function(){return this._stop()},d.prototype._stop=function(c,f){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var E=this._onEaseEnd;delete this._onEaseEnd,E.call(this,f)}if(!c){var A=this.handlers;A&&A.stop(!1)}return this},d.prototype._ease=function(c,f,E){E.animate===!1||E.duration===0?(c(1),f()):(this._easeStart=n.browser.now(),this._easeOptions=E,this._onEaseFrame=c,this._onEaseEnd=f,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},d.prototype._renderFrameCallback=function(){var c=Math.min((n.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(c)),c<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},d.prototype._normalizeBearing=function(c,f){c=n.wrap(c,-180,180);var E=Math.abs(c-f);return Math.abs(c-360-f)<E&&(c-=360),Math.abs(c+360-f)<E&&(c+=360),c},d.prototype._normalizeCenter=function(c){var f=this.transform;if(f.renderWorldCopies&&!f.lngRange){var E=c.lng-f.center.lng;c.lng+=E>180?-360:E<-180?360:0}},d}(n.Evented),Xn=function(l){l===void 0&&(l={}),this.options=l,n.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)};Xn.prototype.getDefaultPosition=function(){return"bottom-right"},Xn.prototype.onAdd=function(l){var d=this.options&&this.options.compact;return this._map=l,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=m.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=m.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),d&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),d===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Xn.prototype.onRemove=function(){m.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Xn.prototype._setElementTitle=function(l,d){var c=this._map._getUIString("AttributionControl."+d);l.title=c,l.setAttribute("aria-label",c)},Xn.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"))},Xn.prototype._updateEditLink=function(){var l=this._editLink;l||(l=this._editLink=this._container.querySelector(".mapbox-improve-map"));var d=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||n.config.ACCESS_TOKEN}];if(l){var c=d.reduce(function(f,E,A){return E.value&&(f+=E.key+"="+E.value+(A<d.length-1?"&":"")),f},"?");l.href=n.config.FEEDBACK_URL+"/"+c+(this._map._hash?this._map._hash.getHashString(!0):""),l.rel="noopener nofollow",this._setElementTitle(l,"MapFeedback")}},Xn.prototype._updateData=function(l){!l||l.sourceDataType!=="metadata"&&l.sourceDataType!=="visibility"&&l.dataType!=="style"||(this._updateAttributions(),this._updateEditLink())},Xn.prototype._updateAttributions=function(){if(this._map.style){var l=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?l=l.concat(this.options.customAttribution.map(function(w){return typeof w!="string"?"":w})):typeof this.options.customAttribution=="string"&&l.push(this.options.customAttribution)),this._map.style.stylesheet){var d=this._map.style.stylesheet;this.styleOwner=d.owner,this.styleId=d.id}var c=this._map.style.sourceCaches;for(var f in c){var E=c[f];if(E.used){var A=E.getSource();A.attribution&&l.indexOf(A.attribution)<0&&l.push(A.attribution)}}l.sort(function(w,D){return w.length-D.length});var T=(l=l.filter(function(w,D){for(var z=D+1;z<l.length;z++)if(l[z].indexOf(w)>=0)return!1;return!0})).join(" | ");T!==this._attribHTML&&(this._attribHTML=T,l.length?(this._innerContainer.innerHTML=T,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Xn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")};var ls=function(){n.bindAll(["_updateLogo"],this),n.bindAll(["_updateCompact"],this)};ls.prototype.onAdd=function(l){this._map=l,this._container=m.create("div","mapboxgl-ctrl");var d=m.create("a","mapboxgl-ctrl-logo");return d.target="_blank",d.rel="noopener nofollow",d.href="https://www.mapbox.com/",d.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),d.setAttribute("rel","noopener nofollow"),this._container.appendChild(d),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},ls.prototype.onRemove=function(){m.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},ls.prototype.getDefaultPosition=function(){return"bottom-left"},ls.prototype._updateLogo=function(l){l&&l.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")},ls.prototype._logoRequired=function(){if(this._map.style){var l=this._map.style.sourceCaches;for(var d in l)if(l[d].getSource().mapbox_logo)return!0;return!1}},ls.prototype._updateCompact=function(){var l=this._container.children;if(l.length){var d=l[0];this._map.getCanvasContainer().offsetWidth<250?d.classList.add("mapboxgl-compact"):d.classList.remove("mapboxgl-compact")}};var Ai=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Ai.prototype.add=function(l){var d=++this._id;return this._queue.push({callback:l,id:d,cancelled:!1}),d},Ai.prototype.remove=function(l){for(var d=this._currentlyRunning,c=0,f=d?this._queue.concat(d):this._queue;c<f.length;c+=1){var E=f[c];if(E.id===l)return void(E.cancelled=!0)}},Ai.prototype.run=function(l){l===void 0&&(l=0);var d=this._currentlyRunning=this._queue;this._queue=[];for(var c=0,f=d;c<f.length;c+=1){var E=f[c];if(!E.cancelled&&(E.callback(l),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},Ai.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var Ka={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm"},tu=n.window.HTMLImageElement,tp=n.window.HTMLElement,Xo=n.window.ImageBitmap,yn={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},Yc=function(l){function d(f){var E=this;if((f=n.extend({},yn,f)).minZoom!=null&&f.maxZoom!=null&&f.minZoom>f.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(f.minPitch!=null&&f.maxPitch!=null&&f.minPitch>f.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(f.minPitch!=null&&f.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(f.maxPitch!=null&&f.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var A=new No(f.minZoom,f.maxZoom,f.minPitch,f.maxPitch,f.renderWorldCopies);if(l.call(this,A,f),this._interactive=f.interactive,this._maxTileCacheSize=f.maxTileCacheSize,this._failIfMajorPerformanceCaveat=f.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=f.preserveDrawingBuffer,this._antialias=f.antialias,this._trackResize=f.trackResize,this._bearingSnap=f.bearingSnap,this._refreshExpiredTiles=f.refreshExpiredTiles,this._fadeDuration=f.fadeDuration,this._crossSourceCollisions=f.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=f.collectResourceTiming,this._renderTaskQueue=new Ai,this._controls=[],this._mapId=n.uniqueId(),this._locale=n.extend({},Ka,f.locale),this._clickTolerance=f.clickTolerance,this._requestManager=new n.RequestManager(f.transformRequest,f.accessToken),typeof f.container=="string"){if(this._container=n.window.document.getElementById(f.container),!this._container)throw new Error("Container '"+f.container+"' not found.")}else{if(!(f.container instanceof tp))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=f.container}if(f.maxBounds&&this.setMaxBounds(f.maxBounds),n.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",function(){return E._update(!1)}),this.on("moveend",function(){return E._update(!1)}),this.on("zoom",function(){return E._update(!0)}),n.window!==void 0&&(n.window.addEventListener("online",this._onWindowOnline,!1),n.window.addEventListener("resize",this._onWindowResize,!1),n.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new gr(this,f),this._hash=f.hash&&new La(typeof f.hash=="string"&&f.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:f.center,zoom:f.zoom,bearing:f.bearing,pitch:f.pitch}),f.bounds&&(this.resize(),this.fitBounds(f.bounds,n.extend({},f.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=f.localIdeographFontFamily,f.style&&this.setStyle(f.style,{localIdeographFontFamily:f.localIdeographFontFamily}),f.attributionControl&&this.addControl(new Xn({customAttribution:f.customAttribution})),this.addControl(new ls,f.logoPosition),this.on("style.load",function(){E.transform.unmodified&&E.jumpTo(E.style.stylesheet)}),this.on("data",function(T){E._update(T.dataType==="style"),E.fire(new n.Event(T.dataType+"data",T))}),this.on("dataloading",function(T){E.fire(new n.Event(T.dataType+"dataloading",T))})}l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d;var c={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return d.prototype._getMapId=function(){return this._mapId},d.prototype.addControl=function(f,E){if(E===void 0&&(E=f.getDefaultPosition?f.getDefaultPosition():"top-right"),!f||!f.onAdd)return this.fire(new n.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var A=f.onAdd(this);this._controls.push(f);var T=this._controlPositions[E];return E.indexOf("bottom")!==-1?T.insertBefore(A,T.firstChild):T.appendChild(A),this},d.prototype.removeControl=function(f){if(!f||!f.onRemove)return this.fire(new n.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var E=this._controls.indexOf(f);return E>-1&&this._controls.splice(E,1),f.onRemove(this),this},d.prototype.hasControl=function(f){return this._controls.indexOf(f)>-1},d.prototype.resize=function(f){var E=this._containerDimensions(),A=E[0],T=E[1];if(A===this.transform.width&&T===this.transform.height)return this;this._resizeCanvas(A,T),this.transform.resize(A,T),this.painter.resize(A,T);var w=!this._moving;return w&&this.fire(new n.Event("movestart",f)).fire(new n.Event("move",f)),this.fire(new n.Event("resize",f)),w&&this.fire(new n.Event("moveend",f)),this},d.prototype.getBounds=function(){return this.transform.getBounds()},d.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},d.prototype.setMaxBounds=function(f){return this.transform.setMaxBounds(n.LngLatBounds.convert(f)),this._update()},d.prototype.setMinZoom=function(f){if((f=f??-2)>=-2&&f<=this.transform.maxZoom)return this.transform.minZoom=f,this._update(),this.getZoom()<f&&this.setZoom(f),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")},d.prototype.getMinZoom=function(){return this.transform.minZoom},d.prototype.setMaxZoom=function(f){if((f=f??22)>=this.transform.minZoom)return this.transform.maxZoom=f,this._update(),this.getZoom()>f&&this.setZoom(f),this;throw new Error("maxZoom must be greater than the current minZoom")},d.prototype.getMaxZoom=function(){return this.transform.maxZoom},d.prototype.setMinPitch=function(f){if((f=f??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(f>=0&&f<=this.transform.maxPitch)return this.transform.minPitch=f,this._update(),this.getPitch()<f&&this.setPitch(f),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")},d.prototype.getMinPitch=function(){return this.transform.minPitch},d.prototype.setMaxPitch=function(f){if((f=f??60)>60)throw new Error("maxPitch must be less than or equal to 60");if(f>=this.transform.minPitch)return this.transform.maxPitch=f,this._update(),this.getPitch()>f&&this.setPitch(f),this;throw new Error("maxPitch must be greater than the current minPitch")},d.prototype.getMaxPitch=function(){return this.transform.maxPitch},d.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},d.prototype.setRenderWorldCopies=function(f){return this.transform.renderWorldCopies=f,this._update()},d.prototype.project=function(f){return this.transform.locationPoint(n.LngLat.convert(f))},d.prototype.unproject=function(f){return this.transform.pointLocation(n.Point.convert(f))},d.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},d.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},d.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},d.prototype._createDelegatedListener=function(f,E,A){var T,w=this;if(f==="mouseenter"||f==="mouseover"){var D=!1;return{layer:E,listener:A,delegates:{mousemove:function($){var K=w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[];K.length?D||(D=!0,A.call(w,new bi(f,w,$.originalEvent,{features:K}))):D=!1},mouseout:function(){D=!1}}}}if(f==="mouseleave"||f==="mouseout"){var z=!1;return{layer:E,listener:A,delegates:{mousemove:function($){(w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[]).length?z=!0:z&&(z=!1,A.call(w,new bi(f,w,$.originalEvent)))},mouseout:function($){z&&(z=!1,A.call(w,new bi(f,w,$.originalEvent)))}}}}return{layer:E,listener:A,delegates:(T={},T[f]=function($){var K=w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[];K.length&&($.features=K,A.call(w,$),delete $.features)},T)}},d.prototype.on=function(f,E,A){if(A===void 0)return l.prototype.on.call(this,f,E);var T=this._createDelegatedListener(f,E,A);for(var w in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[f]=this._delegatedListeners[f]||[],this._delegatedListeners[f].push(T),T.delegates)this.on(w,T.delegates[w]);return this},d.prototype.once=function(f,E,A){if(A===void 0)return l.prototype.once.call(this,f,E);var T=this._createDelegatedListener(f,E,A);for(var w in T.delegates)this.once(w,T.delegates[w]);return this},d.prototype.off=function(f,E,A){var T=this;return A===void 0?l.prototype.off.call(this,f,E):(this._delegatedListeners&&this._delegatedListeners[f]&&function(w){for(var D=w[f],z=0;z<D.length;z++){var $=D[z];if($.layer===E&&$.listener===A){for(var K in $.delegates)T.off(K,$.delegates[K]);return D.splice(z,1),T}}}(this._delegatedListeners),this)},d.prototype.queryRenderedFeatures=function(f,E){if(!this.style)return[];var A;if(E!==void 0||f===void 0||f instanceof n.Point||Array.isArray(f)||(E=f,f=void 0),E=E||{},(f=f||[[0,0],[this.transform.width,this.transform.height]])instanceof n.Point||typeof f[0]=="number")A=[n.Point.convert(f)];else{var T=n.Point.convert(f[0]),w=n.Point.convert(f[1]);A=[T,new n.Point(w.x,T.y),w,new n.Point(T.x,w.y),T]}return this.style.queryRenderedFeatures(A,E,this.transform)},d.prototype.querySourceFeatures=function(f,E){return this.style.querySourceFeatures(f,E)},d.prototype.setStyle=function(f,E){return(E=n.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},E)).diff!==!1&&E.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&f?(this._diffStyle(f,E),this):(this._localIdeographFontFamily=E.localIdeographFontFamily,this._updateStyle(f,E))},d.prototype._getUIString=function(f){var E=this._locale[f];if(E==null)throw new Error("Missing UI string '"+f+"'");return E},d.prototype._updateStyle=function(f,E){return this.style&&(this.style.setEventedParent(null),this.style._remove()),f?(this.style=new ba(this,E||{}),this.style.setEventedParent(this,{style:this.style}),typeof f=="string"?this.style.loadURL(f):this.style.loadJSON(f),this):(delete this.style,this)},d.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new ba(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())},d.prototype._diffStyle=function(f,E){var A=this;if(typeof f=="string"){var T=this._requestManager.normalizeStyleURL(f),w=this._requestManager.transformRequest(T,n.ResourceType.Style);n.getJSON(w,function(D,z){D?A.fire(new n.ErrorEvent(D)):z&&A._updateDiff(z,E)})}else typeof f=="object"&&this._updateDiff(f,E)},d.prototype._updateDiff=function(f,E){try{this.style.setState(f)&&this._update(!0)}catch(A){n.warnOnce("Unable to perform style diff: "+(A.message||A.error||A)+". Rebuilding the style from scratch."),this._updateStyle(f,E)}},d.prototype.getStyle=function(){if(this.style)return this.style.serialize()},d.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():n.warnOnce("There is no style added to the map.")},d.prototype.addSource=function(f,E){return this._lazyInitEmptyStyle(),this.style.addSource(f,E),this._update(!0)},d.prototype.isSourceLoaded=function(f){var E=this.style&&this.style.sourceCaches[f];if(E!==void 0)return E.loaded();this.fire(new n.ErrorEvent(new Error("There is no source with ID '"+f+"'")))},d.prototype.areTilesLoaded=function(){var f=this.style&&this.style.sourceCaches;for(var E in f){var A=f[E]._tiles;for(var T in A){var w=A[T];if(w.state!=="loaded"&&w.state!=="errored")return!1}}return!0},d.prototype.addSourceType=function(f,E,A){return this._lazyInitEmptyStyle(),this.style.addSourceType(f,E,A)},d.prototype.removeSource=function(f){return this.style.removeSource(f),this._update(!0)},d.prototype.getSource=function(f){return this.style.getSource(f)},d.prototype.addImage=function(f,E,A){A===void 0&&(A={});var T=A.pixelRatio;T===void 0&&(T=1);var w=A.sdf;w===void 0&&(w=!1);var D=A.stretchX,z=A.stretchY,$=A.content;if(this._lazyInitEmptyStyle(),E instanceof tu||Xo&&E instanceof Xo){var K=n.browser.getImageData(E);this.style.addImage(f,{data:new n.RGBAImage({width:K.width,height:K.height},K.data),pixelRatio:T,stretchX:D,stretchY:z,content:$,sdf:w,version:0})}else{if(E.width===void 0||E.height===void 0)return this.fire(new n.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));var ee=E;this.style.addImage(f,{data:new n.RGBAImage({width:E.width,height:E.height},new Uint8Array(E.data)),pixelRatio:T,stretchX:D,stretchY:z,content:$,sdf:w,version:0,userImage:ee}),ee.onAdd&&ee.onAdd(this,f)}},d.prototype.updateImage=function(f,E){var A=this.style.getImage(f);if(!A)return this.fire(new n.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));var T=E instanceof tu||Xo&&E instanceof Xo?n.browser.getImageData(E):E,w=T.width,D=T.height,z=T.data;return w===void 0||D===void 0?this.fire(new n.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))):w!==A.data.width||D!==A.data.height?this.fire(new n.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))):(A.data.replace(z,!(E instanceof tu||Xo&&E instanceof Xo)),void this.style.updateImage(f,A))},d.prototype.hasImage=function(f){return f?!!this.style.getImage(f):(this.fire(new n.ErrorEvent(new Error("Missing required image id"))),!1)},d.prototype.removeImage=function(f){this.style.removeImage(f)},d.prototype.loadImage=function(f,E){n.getImage(this._requestManager.transformRequest(f,n.ResourceType.Image),E)},d.prototype.listImages=function(){return this.style.listImages()},d.prototype.addLayer=function(f,E){return this._lazyInitEmptyStyle(),this.style.addLayer(f,E),this._update(!0)},d.prototype.moveLayer=function(f,E){return this.style.moveLayer(f,E),this._update(!0)},d.prototype.removeLayer=function(f){return this.style.removeLayer(f),this._update(!0)},d.prototype.getLayer=function(f){return this.style.getLayer(f)},d.prototype.setLayerZoomRange=function(f,E,A){return this.style.setLayerZoomRange(f,E,A),this._update(!0)},d.prototype.setFilter=function(f,E,A){return A===void 0&&(A={}),this.style.setFilter(f,E,A),this._update(!0)},d.prototype.getFilter=function(f){return this.style.getFilter(f)},d.prototype.setPaintProperty=function(f,E,A,T){return T===void 0&&(T={}),this.style.setPaintProperty(f,E,A,T),this._update(!0)},d.prototype.getPaintProperty=function(f,E){return this.style.getPaintProperty(f,E)},d.prototype.setLayoutProperty=function(f,E,A,T){return T===void 0&&(T={}),this.style.setLayoutProperty(f,E,A,T),this._update(!0)},d.prototype.getLayoutProperty=function(f,E){return this.style.getLayoutProperty(f,E)},d.prototype.setLight=function(f,E){return E===void 0&&(E={}),this._lazyInitEmptyStyle(),this.style.setLight(f,E),this._update(!0)},d.prototype.getLight=function(){return this.style.getLight()},d.prototype.setFeatureState=function(f,E){return this.style.setFeatureState(f,E),this._update()},d.prototype.removeFeatureState=function(f,E){return this.style.removeFeatureState(f,E),this._update()},d.prototype.getFeatureState=function(f){return this.style.getFeatureState(f)},d.prototype.getContainer=function(){return this._container},d.prototype.getCanvasContainer=function(){return this._canvasContainer},d.prototype.getCanvas=function(){return this._canvas},d.prototype._containerDimensions=function(){var f=0,E=0;return this._container&&(f=this._container.clientWidth||400,E=this._container.clientHeight||300),[f,E]},d.prototype._detectMissingCSS=function(){n.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&n.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")},d.prototype._setupContainer=function(){var f=this._container;f.classList.add("mapboxgl-map"),(this._missingCSSCanary=m.create("div","mapboxgl-canary",f)).style.visibility="hidden",this._detectMissingCSS();var E=this._canvasContainer=m.create("div","mapboxgl-canvas-container",f);this._interactive&&E.classList.add("mapboxgl-interactive"),this._canvas=m.create("canvas","mapboxgl-canvas",E),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");var A=this._containerDimensions();this._resizeCanvas(A[0],A[1]);var T=this._controlContainer=m.create("div","mapboxgl-control-container",f),w=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(D){w[D]=m.create("div","mapboxgl-ctrl-"+D,T)}),this._container.addEventListener("scroll",this._onMapScroll,!1)},d.prototype._resizeCanvas=function(f,E){var A=n.browser.devicePixelRatio||1;this._canvas.width=A*f,this._canvas.height=A*E,this._canvas.style.width=f+"px",this._canvas.style.height=E+"px"},d.prototype._setupPainter=function(){var f=n.extend({},y.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),E=this._canvas.getContext("webgl",f)||this._canvas.getContext("experimental-webgl",f);E?(this.painter=new ci(E,this.transform),n.webpSupported.testSupport(E)):this.fire(new n.ErrorEvent(new Error("Failed to initialize WebGL")))},d.prototype._contextLost=function(f){f.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new n.Event("webglcontextlost",{originalEvent:f}))},d.prototype._contextRestored=function(f){this._setupPainter(),this.resize(),this._update(),this.fire(new n.Event("webglcontextrestored",{originalEvent:f}))},d.prototype._onMapScroll=function(f){if(f.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},d.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},d.prototype._update=function(f){return this.style?(this._styleDirty=this._styleDirty||f,this._sourcesDirty=!0,this.triggerRepaint(),this):this},d.prototype._requestRenderFrame=function(f){return this._update(),this._renderTaskQueue.add(f)},d.prototype._cancelRenderFrame=function(f){this._renderTaskQueue.remove(f)},d.prototype._render=function(f){var E,A=this,T=0,w=this.painter.context.extTimerQuery;if(this.listens("gpu-timing-frame")&&(E=w.createQueryEXT(),w.beginQueryEXT(w.TIME_ELAPSED_EXT,E),T=n.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(f),!this._removed){var D=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var z=this.transform.zoom,$=n.browser.now();this.style.zoomHistory.update(z,$);var K=new n.EvaluationParameters(z,{now:$,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),ee=K.crossFadingFactor();ee===1&&ee===this._crossFadingFactor||(D=!0,this._crossFadingFactor=ee),this.style.update(K)}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer")}),this.fire(new n.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new n.Event("load"))),this.style&&(this.style.hasTransitions()||D)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){var _e=n.browser.now()-T;w.endQueryEXT(w.TIME_ELAPSED_EXT,E),setTimeout(function(){var le=w.getQueryObjectEXT(E,w.QUERY_RESULT_EXT)/1e6;w.deleteQueryEXT(E),A.fire(new n.Event("gpu-timing-frame",{cpuTime:_e,gpuTime:le}))},50)}if(this.listens("gpu-timing-layer")){var de=this.painter.collectGpuTimers();setTimeout(function(){var le=A.painter.queryGpuTimers(de);A.fire(new n.Event("gpu-timing-layer",{layerTimes:le}))},50)}var Te=this._sourcesDirty||this._styleDirty||this._placementDirty;return Te||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new n.Event("idle")),!this._loaded||this._fullyLoaded||Te||(this._fullyLoaded=!0),this}},d.prototype.remove=function(){this._hash&&this._hash.remove();for(var f=0,E=this._controls;f<E.length;f+=1)E[f].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),n.window!==void 0&&(n.window.removeEventListener("resize",this._onWindowResize,!1),n.window.removeEventListener("orientationchange",this._onWindowResize,!1),n.window.removeEventListener("online",this._onWindowOnline,!1));var A=this.painter.context.gl.getExtension("WEBGL_lose_context");A&&A.loseContext(),Iu(this._canvasContainer),Iu(this._controlContainer),Iu(this._missingCSSCanary),this._container.classList.remove("mapboxgl-map"),this._removed=!0,this.fire(new n.Event("remove"))},d.prototype.triggerRepaint=function(){var f=this;this.style&&!this._frame&&(this._frame=n.browser.frame(function(E){f._frame=null,f._render(E)}))},d.prototype._onWindowOnline=function(){this._update()},d.prototype._onWindowResize=function(f){this._trackResize&&this.resize({originalEvent:f})._update()},c.showTileBoundaries.get=function(){return!!this._showTileBoundaries},c.showTileBoundaries.set=function(f){this._showTileBoundaries!==f&&(this._showTileBoundaries=f,this._update())},c.showPadding.get=function(){return!!this._showPadding},c.showPadding.set=function(f){this._showPadding!==f&&(this._showPadding=f,this._update())},c.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},c.showCollisionBoxes.set=function(f){this._showCollisionBoxes!==f&&(this._showCollisionBoxes=f,f?this.style._generateCollisionBoxes():this._update())},c.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},c.showOverdrawInspector.set=function(f){this._showOverdrawInspector!==f&&(this._showOverdrawInspector=f,this._update())},c.repaint.get=function(){return!!this._repaint},c.repaint.set=function(f){this._repaint!==f&&(this._repaint=f,this.triggerRepaint())},c.vertices.get=function(){return!!this._vertices},c.vertices.set=function(f){this._vertices=f,this._update()},d.prototype._setCacheLimits=function(f,E){n.setCacheLimits(f,E)},c.version.get=function(){return n.version},Object.defineProperties(d.prototype,c),d}(Ta);function Iu(l){l.parentNode&&l.parentNode.removeChild(l)}var Kl={showCompass:!0,showZoom:!0,visualizePitch:!1},ru=function(l){var d=this;this.options=n.extend({},Kl,l),this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",function(c){return c.preventDefault()}),this.options.showZoom&&(n.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",function(c){return d._map.zoomIn({},{originalEvent:c})}),m.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",function(c){return d._map.zoomOut({},{originalEvent:c})}),m.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(n.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",function(c){d.options.visualizePitch?d._map.resetNorthPitch({},{originalEvent:c}):d._map.resetNorth({},{originalEvent:c})}),this._compassIcon=m.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))};ru.prototype._updateZoomButtons=function(){var l=this._map.getZoom(),d=l===this._map.getMaxZoom(),c=l===this._map.getMinZoom();this._zoomInButton.disabled=d,this._zoomOutButton.disabled=c,this._zoomInButton.setAttribute("aria-disabled",d.toString()),this._zoomOutButton.setAttribute("aria-disabled",c.toString())},ru.prototype._rotateCompassArrow=function(){var l=this.options.visualizePitch?"scale("+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+") rotateX("+this._map.transform.pitch+"deg) rotateZ("+this._map.transform.angle*(180/Math.PI)+"deg)":"rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassIcon.style.transform=l},ru.prototype.onAdd=function(l){return this._map=l,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Sa(this._map,this._compass,this.options.visualizePitch)),this._container},ru.prototype.onRemove=function(){m.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map},ru.prototype._createButton=function(l,d){var c=m.create("button",l,this._container);return c.type="button",c.addEventListener("click",d),c},ru.prototype._setButtonTitle=function(l,d){var c=this._map._getUIString("NavigationControl."+d);l.title=c,l.setAttribute("aria-label",c)};var Sa=function(l,d,c){c===void 0&&(c=!1),this._clickTolerance=10,this.element=d,this.mouseRotate=new ll({clickTolerance:l.dragRotate._mouseRotate._clickTolerance}),this.map=l,c&&(this.mousePitch=new Zl({clickTolerance:l.dragRotate._mousePitch._clickTolerance})),n.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),m.addEventListener(d,"mousedown",this.mousedown),m.addEventListener(d,"touchstart",this.touchstart,{passive:!1}),m.addEventListener(d,"touchmove",this.touchmove),m.addEventListener(d,"touchend",this.touchend),m.addEventListener(d,"touchcancel",this.reset)};function Rp(l,d,c){if(l=new n.LngLat(l.lng,l.lat),d){var f=new n.LngLat(l.lng-360,l.lat),E=new n.LngLat(l.lng+360,l.lat),A=c.locationPoint(l).distSqr(d);c.locationPoint(f).distSqr(d)<A?l=f:c.locationPoint(E).distSqr(d)<A&&(l=E)}for(;Math.abs(l.lng-c.center.lng)>180;){var T=c.locationPoint(l);if(T.x>=0&&T.y>=0&&T.x<=c.width&&T.y<=c.height)break;l.lng>c.center.lng?l.lng-=360:l.lng+=360}return l}Sa.prototype.down=function(l,d){this.mouseRotate.mousedown(l,d),this.mousePitch&&this.mousePitch.mousedown(l,d),m.disableDrag()},Sa.prototype.move=function(l,d){var c=this.map,f=this.mouseRotate.mousemoveWindow(l,d);if(f&&f.bearingDelta&&c.setBearing(c.getBearing()+f.bearingDelta),this.mousePitch){var E=this.mousePitch.mousemoveWindow(l,d);E&&E.pitchDelta&&c.setPitch(c.getPitch()+E.pitchDelta)}},Sa.prototype.off=function(){var l=this.element;m.removeEventListener(l,"mousedown",this.mousedown),m.removeEventListener(l,"touchstart",this.touchstart,{passive:!1}),m.removeEventListener(l,"touchmove",this.touchmove),m.removeEventListener(l,"touchend",this.touchend),m.removeEventListener(l,"touchcancel",this.reset),this.offTemp()},Sa.prototype.offTemp=function(){m.enableDrag(),m.removeEventListener(n.window,"mousemove",this.mousemove),m.removeEventListener(n.window,"mouseup",this.mouseup)},Sa.prototype.mousedown=function(l){this.down(n.extend({},l,{ctrlKey:!0,preventDefault:function(){return l.preventDefault()}}),m.mousePos(this.element,l)),m.addEventListener(n.window,"mousemove",this.mousemove),m.addEventListener(n.window,"mouseup",this.mouseup)},Sa.prototype.mousemove=function(l){this.move(l,m.mousePos(this.element,l))},Sa.prototype.mouseup=function(l){this.mouseRotate.mouseupWindow(l),this.mousePitch&&this.mousePitch.mouseupWindow(l),this.offTemp()},Sa.prototype.touchstart=function(l){l.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=m.touchPos(this.element,l.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return l.preventDefault()}},this._startPos))},Sa.prototype.touchmove=function(l){l.targetTouches.length!==1?this.reset():(this._lastPos=m.touchPos(this.element,l.targetTouches)[0],this.move({preventDefault:function(){return l.preventDefault()}},this._lastPos))},Sa.prototype.touchend=function(l){l.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()},Sa.prototype.reset=function(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()};var ws={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Ql(l,d,c){var f=l.classList;for(var E in ws)f.remove("mapboxgl-"+c+"-anchor-"+E);f.add("mapboxgl-"+c+"-anchor-"+d)}var Cp,cl=function(l){function d(c,f){if(l.call(this),(c instanceof n.window.HTMLElement||f)&&(c=n.extend({element:c},f)),n.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=c&&c.anchor||"center",this._color=c&&c.color||"#3FB1CE",this._scale=c&&c.scale||1,this._draggable=c&&c.draggable||!1,this._clickTolerance=c&&c.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=c&&c.rotation||0,this._rotationAlignment=c&&c.rotationAlignment||"auto",this._pitchAlignment=c&&c.pitchAlignment&&c.pitchAlignment!=="auto"?c.pitchAlignment:this._rotationAlignment,c&&c.element)this._element=c.element,this._offset=n.Point.convert(c&&c.offset||[0,0]);else{this._defaultMarker=!0,this._element=m.create("div"),this._element.setAttribute("aria-label","Map marker");var E=m.createNS("http://www.w3.org/2000/svg","svg");E.setAttributeNS(null,"display","block"),E.setAttributeNS(null,"height","41px"),E.setAttributeNS(null,"width","27px"),E.setAttributeNS(null,"viewBox","0 0 27 41");var A=m.createNS("http://www.w3.org/2000/svg","g");A.setAttributeNS(null,"stroke","none"),A.setAttributeNS(null,"stroke-width","1"),A.setAttributeNS(null,"fill","none"),A.setAttributeNS(null,"fill-rule","evenodd");var T=m.createNS("http://www.w3.org/2000/svg","g");T.setAttributeNS(null,"fill-rule","nonzero");var w=m.createNS("http://www.w3.org/2000/svg","g");w.setAttributeNS(null,"transform","translate(3.0, 29.0)"),w.setAttributeNS(null,"fill","#000000");for(var D=0,z=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];D<z.length;D+=1){var $=z[D],K=m.createNS("http://www.w3.org/2000/svg","ellipse");K.setAttributeNS(null,"opacity","0.04"),K.setAttributeNS(null,"cx","10.5"),K.setAttributeNS(null,"cy","5.80029008"),K.setAttributeNS(null,"rx",$.rx),K.setAttributeNS(null,"ry",$.ry),w.appendChild(K)}var ee=m.createNS("http://www.w3.org/2000/svg","g");ee.setAttributeNS(null,"fill",this._color);var _e=m.createNS("http://www.w3.org/2000/svg","path");_e.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),ee.appendChild(_e);var de=m.createNS("http://www.w3.org/2000/svg","g");de.setAttributeNS(null,"opacity","0.25"),de.setAttributeNS(null,"fill","#000000");var Te=m.createNS("http://www.w3.org/2000/svg","path");Te.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),de.appendChild(Te);var le=m.createNS("http://www.w3.org/2000/svg","g");le.setAttributeNS(null,"transform","translate(6.0, 7.0)"),le.setAttributeNS(null,"fill","#FFFFFF");var Fe=m.createNS("http://www.w3.org/2000/svg","g");Fe.setAttributeNS(null,"transform","translate(8.0, 8.0)");var De=m.createNS("http://www.w3.org/2000/svg","circle");De.setAttributeNS(null,"fill","#000000"),De.setAttributeNS(null,"opacity","0.25"),De.setAttributeNS(null,"cx","5.5"),De.setAttributeNS(null,"cy","5.5"),De.setAttributeNS(null,"r","5.4999962");var Xe=m.createNS("http://www.w3.org/2000/svg","circle");Xe.setAttributeNS(null,"fill","#FFFFFF"),Xe.setAttributeNS(null,"cx","5.5"),Xe.setAttributeNS(null,"cy","5.5"),Xe.setAttributeNS(null,"r","5.4999962"),Fe.appendChild(De),Fe.appendChild(Xe),T.appendChild(w),T.appendChild(ee),T.appendChild(de),T.appendChild(le),T.appendChild(Fe),E.appendChild(T),E.setAttributeNS(null,"height",41*this._scale+"px"),E.setAttributeNS(null,"width",27*this._scale+"px"),this._element.appendChild(E),this._offset=n.Point.convert(c&&c.offset||[0,-14])}this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",function(at){at.preventDefault()}),this._element.addEventListener("mousedown",function(at){at.preventDefault()}),Ql(this._element,this._anchor,"marker"),this._popup=null}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.addTo=function(c){return this.remove(),this._map=c,c.getCanvasContainer().appendChild(this._element),c.on("move",this._update),c.on("moveend",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this},d.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),m.remove(this._element),this._popup&&this._popup.remove(),this},d.prototype.getLngLat=function(){return this._lngLat},d.prototype.setLngLat=function(c){return this._lngLat=n.LngLat.convert(c),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},d.prototype.getElement=function(){return this._element},d.prototype.setPopup=function(c){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),c){if(!("offset"in c.options)){var f=Math.sqrt(Math.pow(13.5,2)/2);c.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[f,-1*(24.6+f)],"bottom-right":[-f,-1*(24.6+f)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=c,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this},d.prototype._onKeyPress=function(c){var f=c.code,E=c.charCode||c.keyCode;f!=="Space"&&f!=="Enter"&&E!==32&&E!==13||this.togglePopup()},d.prototype._onMapClick=function(c){var f=c.originalEvent.target,E=this._element;this._popup&&(f===E||E.contains(f))&&this.togglePopup()},d.prototype.getPopup=function(){return this._popup},d.prototype.togglePopup=function(){var c=this._popup;return c?(c.isOpen()?c.remove():c.addTo(this._map),this):this},d.prototype._update=function(c){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=Rp(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var f="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?f="rotateZ("+this._rotation+"deg)":this._rotationAlignment==="map"&&(f="rotateZ("+(this._rotation-this._map.getBearing())+"deg)");var E="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?E="rotateX(0deg)":this._pitchAlignment==="map"&&(E="rotateX("+this._map.getPitch()+"deg)"),c&&c.type!=="moveend"||(this._pos=this._pos.round()),m.setTransform(this._element,ws[this._anchor]+" translate("+this._pos.x+"px, "+this._pos.y+"px) "+E+" "+f)}},d.prototype.getOffset=function(){return this._offset},d.prototype.setOffset=function(c){return this._offset=n.Point.convert(c),this._update(),this},d.prototype._onMove=function(c){if(!this._isDragging){var f=this._clickTolerance||this._map._clickTolerance;this._isDragging=c.point.dist(this._pointerdownPos)>=f}this._isDragging&&(this._pos=c.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new n.Event("dragstart"))),this.fire(new n.Event("drag")))},d.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new n.Event("dragend")),this._state="inactive"},d.prototype._addDragHandler=function(c){this._element.contains(c.originalEvent.target)&&(c.preventDefault(),this._positionDelta=c.point.sub(this._pos).add(this._offset),this._pointerdownPos=c.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},d.prototype.setDraggable=function(c){return this._draggable=!!c,this._map&&(c?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},d.prototype.isDraggable=function(){return this._draggable},d.prototype.setRotation=function(c){return this._rotation=c||0,this._update(),this},d.prototype.getRotation=function(){return this._rotation},d.prototype.setRotationAlignment=function(c){return this._rotationAlignment=c||"auto",this._update(),this},d.prototype.getRotationAlignment=function(){return this._rotationAlignment},d.prototype.setPitchAlignment=function(c){return this._pitchAlignment=c&&c!=="auto"?c:this._rotationAlignment,this._update(),this},d.prototype.getPitchAlignment=function(){return this._pitchAlignment},d}(n.Evented),Jl={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},rp=0,op=!1,$c=function(l){function d(c){l.call(this),this.options=n.extend({},Jl,c),n.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.onAdd=function(c){var f;return this._map=c,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),f=this._setupUI,Cp!==void 0?f(Cp):n.window.navigator.permissions!==void 0?n.window.navigator.permissions.query({name:"geolocation"}).then(function(E){f(Cp=E.state!=="denied")}):f(Cp=!!n.window.navigator.geolocation),this._container},d.prototype.onRemove=function(){this._geolocationWatchID!==void 0&&(n.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),m.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,rp=0,op=!1},d.prototype._isOutOfMapMaxBounds=function(c){var f=this._map.getMaxBounds(),E=c.coords;return f&&(E.longitude<f.getWest()||E.longitude>f.getEast()||E.latitude<f.getSouth()||E.latitude>f.getNorth())},d.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},d.prototype._onSuccess=function(c){if(this._map){if(this._isOutOfMapMaxBounds(c))return this._setErrorState(),this.fire(new n.Event("outofmaxbounds",c)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=c,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(c),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(c),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new n.Event("geolocate",c)),this._finish()}},d.prototype._updateCamera=function(c){var f=new n.LngLat(c.coords.longitude,c.coords.latitude),E=c.coords.accuracy,A=this._map.getBearing(),T=n.extend({bearing:A},this.options.fitBoundsOptions);this._map.fitBounds(f.toBounds(E),T,{geolocateSource:!0})},d.prototype._updateMarker=function(c){if(c){var f=new n.LngLat(c.coords.longitude,c.coords.latitude);this._accuracyCircleMarker.setLngLat(f).addTo(this._map),this._userLocationDotMarker.setLngLat(f).addTo(this._map),this._accuracy=c.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},d.prototype._updateCircleRadius=function(){var c=this._map._container.clientHeight/2,f=this._map.unproject([0,c]),E=this._map.unproject([1,c]),A=f.distanceTo(E),T=Math.ceil(2*this._accuracy/A);this._circleElement.style.width=T+"px",this._circleElement.style.height=T+"px"},d.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},d.prototype._onError=function(c){if(this._map){if(this.options.trackUserLocation)if(c.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(c.code===3&&op)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new n.Event("error",c)),this._finish()}},d.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},d.prototype._setupUI=function(c){var f=this;if(this._container.addEventListener("contextmenu",function(T){return T.preventDefault()}),this._geolocateButton=m.create("button","mapboxgl-ctrl-geolocate",this._container),m.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",c===!1){n.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var E=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=E,this._geolocateButton.setAttribute("aria-label",E)}else{var A=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=A,this._geolocateButton.setAttribute("aria-label",A)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=m.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new cl(this._dotElement),this._circleElement=m.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new cl({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",function(T){T.geolocateSource||f._watchState!=="ACTIVE_LOCK"||T.originalEvent&&T.originalEvent.type==="resize"||(f._watchState="BACKGROUND",f._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),f._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),f.fire(new n.Event("trackuserlocationend")))})},d.prototype.trigger=function(){if(!this._setup)return n.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new n.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":rp--,op=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new n.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new n.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){var c;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++rp>1?(c={maximumAge:6e5,timeout:0},op=!0):(c=this.options.positionOptions,op=!1),this._geolocationWatchID=n.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,c)}}else n.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},d.prototype._clearWatch=function(){n.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},d}(n.Evented),Rs={maxWidth:100,unit:"metric"},cs=function(l){this.options=n.extend({},Rs,l),n.bindAll(["_onMove","setUnit"],this)};function ec(l,d,c){var f=c&&c.maxWidth||100,E=l._container.clientHeight/2,A=l.unproject([0,E]),T=l.unproject([f,E]),w=A.distanceTo(T);if(c&&c.unit==="imperial"){var D=3.2808*w;D>5280?Mu(d,f,D/5280,l._getUIString("ScaleControl.Miles")):Mu(d,f,D,l._getUIString("ScaleControl.Feet"))}else c&&c.unit==="nautical"?Mu(d,f,w/1852,l._getUIString("ScaleControl.NauticalMiles")):w>=1e3?Mu(d,f,w/1e3,l._getUIString("ScaleControl.Kilometers")):Mu(d,f,w,l._getUIString("ScaleControl.Meters"))}function Mu(l,d,c,f){var E,A,T,w=(E=c,(A=Math.pow(10,(""+Math.floor(E)).length-1))*(T=(T=E/A)>=10?10:T>=5?5:T>=3?3:T>=2?2:T>=1?1:function(D){var z=Math.pow(10,Math.ceil(-Math.log(D)/Math.LN10));return Math.round(D*z)/z}(T)));l.style.width=d*(w/c)+"px",l.innerHTML=w+" "+f}cs.prototype.getDefaultPosition=function(){return"bottom-left"},cs.prototype._onMove=function(){ec(this._map,this._container,this.options)},cs.prototype.onAdd=function(l){return this._map=l,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",l.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},cs.prototype.onRemove=function(){m.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},cs.prototype.setUnit=function(l){this.options.unit=l,ec(this._map,this._container,this.options)};var Qa=function(l){this._fullscreen=!1,l&&l.container&&(l.container instanceof n.window.HTMLElement?this._container=l.container:n.warnOnce("Full screen control 'container' must be a DOM element.")),n.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in n.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in n.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in n.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in n.window.document&&(this._fullscreenchange="MSFullscreenChange")};Qa.prototype.onAdd=function(l){return this._map=l,this._container||(this._container=this._map.getContainer()),this._controlContainer=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",n.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Qa.prototype.onRemove=function(){m.remove(this._controlContainer),this._map=null,n.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Qa.prototype._checkFullscreenSupport=function(){return!!(n.window.document.fullscreenEnabled||n.window.document.mozFullScreenEnabled||n.window.document.msFullscreenEnabled||n.window.document.webkitFullscreenEnabled)},Qa.prototype._setupUI=function(){var l=this._fullscreenButton=m.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);m.create("span","mapboxgl-ctrl-icon",l).setAttribute("aria-hidden",!0),l.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),n.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Qa.prototype._updateTitle=function(){var l=this._getTitle();this._fullscreenButton.setAttribute("aria-label",l),this._fullscreenButton.title=l},Qa.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Qa.prototype._isFullscreen=function(){return this._fullscreen},Qa.prototype._changeIcon=function(){(n.window.document.fullscreenElement||n.window.document.mozFullScreenElement||n.window.document.webkitFullscreenElement||n.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Qa.prototype._onClickFullscreen=function(){this._isFullscreen()?n.window.document.exitFullscreen?n.window.document.exitFullscreen():n.window.document.mozCancelFullScreen?n.window.document.mozCancelFullScreen():n.window.document.msExitFullscreen?n.window.document.msExitFullscreen():n.window.document.webkitCancelFullScreen&&n.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var qc={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},dl=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),tc=function(l){function d(c){l.call(this),this.options=n.extend(Object.create(qc),c),n.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.addTo=function(c){return this._map&&this.remove(),this._map=c,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new n.Event("open")),this},d.prototype.isOpen=function(){return!!this._map},d.prototype.remove=function(){return this._content&&m.remove(this._content),this._container&&(m.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new n.Event("close")),this},d.prototype.getLngLat=function(){return this._lngLat},d.prototype.setLngLat=function(c){return this._lngLat=n.LngLat.convert(c),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},d.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},d.prototype.getElement=function(){return this._container},d.prototype.setText=function(c){return this.setDOMContent(n.window.document.createTextNode(c))},d.prototype.setHTML=function(c){var f,E=n.window.document.createDocumentFragment(),A=n.window.document.createElement("body");for(A.innerHTML=c;f=A.firstChild;)E.appendChild(f);return this.setDOMContent(E)},d.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},d.prototype.setMaxWidth=function(c){return this.options.maxWidth=c,this._update(),this},d.prototype.setDOMContent=function(c){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=m.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(c),this._createCloseButton(),this._update(),this._focusFirstElement(),this},d.prototype.addClassName=function(c){this._container&&this._container.classList.add(c)},d.prototype.removeClassName=function(c){this._container&&this._container.classList.remove(c)},d.prototype.setOffset=function(c){return this.options.offset=c,this._update(),this},d.prototype.toggleClassName=function(c){if(this._container)return this._container.classList.toggle(c)},d.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=m.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},d.prototype._onMouseUp=function(c){this._update(c.point)},d.prototype._onMouseMove=function(c){this._update(c.point)},d.prototype._onDrag=function(c){this._update(c.point)},d.prototype._update=function(c){var f=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=m.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=m.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach(function(K){return f._container.classList.add(K)}),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Rp(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||c)){var E=this._pos=this._trackPointer&&c?c:this._map.project(this._lngLat),A=this.options.anchor,T=function K(ee){if(ee){if(typeof ee=="number"){var _e=Math.round(Math.sqrt(.5*Math.pow(ee,2)));return{center:new n.Point(0,0),top:new n.Point(0,ee),"top-left":new n.Point(_e,_e),"top-right":new n.Point(-_e,_e),bottom:new n.Point(0,-ee),"bottom-left":new n.Point(_e,-_e),"bottom-right":new n.Point(-_e,-_e),left:new n.Point(ee,0),right:new n.Point(-ee,0)}}if(ee instanceof n.Point||Array.isArray(ee)){var de=n.Point.convert(ee);return{center:de,top:de,"top-left":de,"top-right":de,bottom:de,"bottom-left":de,"bottom-right":de,left:de,right:de}}return{center:n.Point.convert(ee.center||[0,0]),top:n.Point.convert(ee.top||[0,0]),"top-left":n.Point.convert(ee["top-left"]||[0,0]),"top-right":n.Point.convert(ee["top-right"]||[0,0]),bottom:n.Point.convert(ee.bottom||[0,0]),"bottom-left":n.Point.convert(ee["bottom-left"]||[0,0]),"bottom-right":n.Point.convert(ee["bottom-right"]||[0,0]),left:n.Point.convert(ee.left||[0,0]),right:n.Point.convert(ee.right||[0,0])}}return K(new n.Point(0,0))}(this.options.offset);if(!A){var w,D=this._container.offsetWidth,z=this._container.offsetHeight;w=E.y+T.bottom.y<z?["top"]:E.y>this._map.transform.height-z?["bottom"]:[],E.x<D/2?w.push("left"):E.x>this._map.transform.width-D/2&&w.push("right"),A=w.length===0?"bottom":w.join("-")}var $=E.add(T[A]).round();m.setTransform(this._container,ws[A]+" translate("+$.x+"px,"+$.y+"px)"),Ql(this._container,A,"popup")}},d.prototype._focusFirstElement=function(){if(this.options.focusAfterOpen&&this._container){var c=this._container.querySelector(dl);c&&c.focus()}},d.prototype._onClose=function(){this.remove()},d}(n.Evented),rc={version:n.version,supported:y,setRTLTextPlugin:n.setRTLTextPlugin,getRTLTextPluginStatus:n.getRTLTextPluginStatus,Map:Yc,NavigationControl:ru,GeolocateControl:$c,AttributionControl:Xn,ScaleControl:cs,FullscreenControl:Qa,Popup:tc,Marker:cl,Style:ba,LngLat:n.LngLat,LngLatBounds:n.LngLatBounds,Point:n.Point,MercatorCoordinate:n.MercatorCoordinate,Evented:n.Evented,config:n.config,prewarm:function(){dt().acquire(lt)},clearPrewarmedResources:function(){var l=_r;l&&(l.isPreloaded()&&l.numActive()===1?(l.release(lt),_r=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return n.config.ACCESS_TOKEN},set accessToken(l){n.config.ACCESS_TOKEN=l},get baseApiUrl(){return n.config.API_URL},set baseApiUrl(l){n.config.API_URL=l},get workerCount(){return wt.workerCount},set workerCount(l){wt.workerCount=l},get maxParallelImageRequests(){return n.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(l){n.config.MAX_PARALLEL_IMAGE_REQUESTS=l},clearStorage:function(l){n.clearTileCache(l)},workerUrl:""};return rc}),s})})(v7);var aO=v7.exports;const oy=_p(aO),sO=["id","attributionControl","style","token","rotation","mapInstance"];function uO(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}uO(`.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;-webkit-transform:translate(0);transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl button::-moz-focus-inner{border:0;padding:0}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);opacity:0}to{-webkit-transform:scale(1);opacity:0}}@keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);transform:scale(3);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}`);window.mapboxgl=oy;let pO=0;const og="101MlGsZ2AmmA&access_token=pk.eyJ1IjoiZXhhbXBsZXMiLCJhIjoiY2p0MG01MXRqMW45cjQzb2R6b2ptc3J4MSJ9.zA2W0IkI0c6KaAhJfk9bWg";class lO extends nO{constructor(...t){super(...t),H(this,"version","MAPBOX"),H(this,"viewport",void 0)}getType(){return"mapbox"}lngLatToCoord(t,r={x:0,y:0,z:0}){const{x:i,y:s}=this.lngLatToMercator(t,0);return[i-r.x,s-r.y]}lngLatToMercator(t,r){const{x:i=0,y:s=0,z:u=0}=window.mapboxgl.MercatorCoordinate.fromLngLat(t,r);return{x:i,y:s,z:u}}getModelMatrix(t,r,i,s=[1,1,1],u={x:0,y:0,z:0}){const n=window.mapboxgl.MercatorCoordinate.fromLngLat(t,r),y=n.meterInMercatorCoordinateUnits(),m=Vf();return of(m,m,dp(n.x-u.x,n.y-u.y,n.z||0-u.z)),nf(m,m,dp(y*s[0],-y*s[1],y*s[2])),i6(m,m,i[0]),Vg(m,m,i[1]),Hg(m,m,i[2]),m}init(){var t=this;return mt(function*(){const r=t.config,{id:i="map",attributionControl:s=!1,style:u="light",token:n=og,rotation:y=0,mapInstance:m}=r,g=$p(r,sO);t.viewport=new rO,!m&&!window.mapboxgl&&console.error(t.configService.getSceneWarninfo("SDK")),n===og&&u!=="blank"&&!window.mapboxgl.accessToken&&!m&&console.warn(t.configService.getSceneWarninfo("MapToken")),!m&&!window.mapboxgl.accessToken&&(window.mapboxgl.accessToken=n),m?(t.map=m,t.$mapContainer=t.map.getContainer()):(t.$mapContainer=t.creatMapContainer(i),t.map=new window.mapboxgl.Map(_t({container:t.$mapContainer,style:t.getMapStyleValue(u),attributionControl:s,bearing:y},g))),t.map.on("load",()=>{t.handleCameraChanged()}),t.map.on("move",t.handleCameraChanged),t.handleCameraChanged()})()}destroy(){var t;(t=this.$mapContainer)===null||t===void 0||(t=t.parentNode)===null||t===void 0||t.removeChild(this.$mapContainer),this.eventEmitter.removeAllListeners(),this.map&&(this.map.remove(),this.$mapContainer=null)}emit(t,...r){this.eventEmitter.emit(t,...r)}once(t,...r){this.eventEmitter.once(t,...r)}getMapContainer(){return this.$mapContainer}getCanvasOverlays(){var t;return(t=this.getMapContainer())===null||t===void 0?void 0:t.querySelector(".mapboxgl-canvas-container")}meterToCoord(t,r){const i=new oy.LngLat(t[0],t[1]),s=new oy.LngLat(r[0],r[1]),u=i.distanceTo(s),n=oy.MercatorCoordinate.fromLngLat({lng:t[0],lat:t[1]}),y=oy.MercatorCoordinate.fromLngLat({lng:r[0],lat:r[1]}),{x:m,y:g}=n,{x,y:b}=y;return Math.sqrt(Math.pow(m-x,2)+Math.pow(g-b,2))*4194304*2/u}exportMap(t){const r=this.map.getCanvas();return t==="jpg"?r==null?void 0:r.toDataURL("image/jpeg"):r==null?void 0:r.toDataURL("image/png")}creatMapContainer(t){let r=t;typeof t=="string"&&(r=document.getElementById(t));const i=document.createElement("div");return i.style.cssText+=`
- position: absolute;
- top: 0;
- height: 100%;
- width: 100%;
- `,i.id="l7_mapbox_div"+pO++,r.appendChild(i),i}}function cO(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}cO(`.mapboxgl-ctrl-logo {
- display: none !important;
- }
- `);class dO extends kD{getServiceConstructor(){return lO}}function Wu(e){return e==null}var yO=function(e,t,r){return e<t?t:e>r?r:e};function P0(e){return typeof e=="number"}var E7={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function s(m,g,x){this.fn=m,this.context=g,this.once=x||!1}function u(m,g,x,b,F){if(typeof x!="function")throw new TypeError("The listener must be a function");var R=new s(x,b||m,F),I=r?r+g:g;return m._events[I]?m._events[I].fn?m._events[I]=[m._events[I],R]:m._events[I].push(R):(m._events[I]=R,m._eventsCount++),m}function n(m,g){--m._eventsCount===0?m._events=new i:delete m._events[g]}function y(){this._events=new i,this._eventsCount=0}y.prototype.eventNames=function(){var g=[],x,b;if(this._eventsCount===0)return g;for(b in x=this._events)t.call(x,b)&&g.push(r?b.slice(1):b);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(x)):g},y.prototype.listeners=function(g){var x=r?r+g:g,b=this._events[x];if(!b)return[];if(b.fn)return[b.fn];for(var F=0,R=b.length,I=new Array(R);F<R;F++)I[F]=b[F].fn;return I},y.prototype.listenerCount=function(g){var x=r?r+g:g,b=this._events[x];return b?b.fn?1:b.length:0},y.prototype.emit=function(g,x,b,F,R,I){var U=r?r+g:g;if(!this._events[U])return!1;var V=this._events[U],J=arguments.length,Q,te;if(V.fn){switch(V.once&&this.removeListener(g,V.fn,void 0,!0),J){case 1:return V.fn.call(V.context),!0;case 2:return V.fn.call(V.context,x),!0;case 3:return V.fn.call(V.context,x,b),!0;case 4:return V.fn.call(V.context,x,b,F),!0;case 5:return V.fn.call(V.context,x,b,F,R),!0;case 6:return V.fn.call(V.context,x,b,F,R,I),!0}for(te=1,Q=new Array(J-1);te<J;te++)Q[te-1]=arguments[te];V.fn.apply(V.context,Q)}else{var ne=V.length,pe;for(te=0;te<ne;te++)switch(V[te].once&&this.removeListener(g,V[te].fn,void 0,!0),J){case 1:V[te].fn.call(V[te].context);break;case 2:V[te].fn.call(V[te].context,x);break;case 3:V[te].fn.call(V[te].context,x,b);break;case 4:V[te].fn.call(V[te].context,x,b,F);break;default:if(!Q)for(pe=1,Q=new Array(J-1);pe<J;pe++)Q[pe-1]=arguments[pe];V[te].fn.apply(V[te].context,Q)}}return!0},y.prototype.on=function(g,x,b){return u(this,g,x,b,!1)},y.prototype.once=function(g,x,b){return u(this,g,x,b,!0)},y.prototype.removeListener=function(g,x,b,F){var R=r?r+g:g;if(!this._events[R])return this;if(!x)return n(this,R),this;var I=this._events[R];if(I.fn)I.fn===x&&(!F||I.once)&&(!b||I.context===b)&&n(this,R);else{for(var U=0,V=[],J=I.length;U<J;U++)(I[U].fn!==x||F&&!I[U].once||b&&I[U].context!==b)&&V.push(I[U]);V.length?this._events[R]=V.length===1?V[0]:V:n(this,R)}return this},y.prototype.removeAllListeners=function(g){var x;return g?(x=r?r+g:g,this._events[x]&&n(this,x)):(this._events=new i,this._eventsCount=0),this},y.prototype.off=y.prototype.removeListener,y.prototype.addListener=y.prototype.on,y.prefixed=r,y.EventEmitter=y,e.exports=y})(E7);var hO=E7.exports;const x7=_p(hO);var ve;(function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.ALWAYS=519]="ALWAYS",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.GEQUAL=518]="GEQUAL",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT"})(ve||(ve={}));var Ko;(function(e){e[e.Buffer=0]="Buffer",e[e.Texture=1]="Texture",e[e.RenderTarget=2]="RenderTarget",e[e.Sampler=3]="Sampler",e[e.Program=4]="Program",e[e.Bindings=5]="Bindings",e[e.InputLayout=6]="InputLayout",e[e.RenderPipeline=7]="RenderPipeline",e[e.ComputePipeline=8]="ComputePipeline",e[e.Readback=9]="Readback",e[e.QueryPool=10]="QueryPool",e[e.RenderBundle=11]="RenderBundle"})(Ko||(Ko={}));var ai;(function(e){e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS"})(ai||(ai={}));var Cy;(function(e){e[e.CCW=2305]="CCW",e[e.CW=2304]="CW"})(Cy||(Cy={}));var zs;(function(e){e[e.NONE=0]="NONE",e[e.FRONT=1]="FRONT",e[e.BACK=2]="BACK",e[e.FRONT_AND_BACK=3]="FRONT_AND_BACK"})(zs||(zs={}));var Bo;(function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC=768]="SRC",e[e.ONE_MINUS_SRC=769]="ONE_MINUS_SRC",e[e.DST=774]="DST",e[e.ONE_MINUS_DST=775]="ONE_MINUS_DST",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.CONST=32769]="CONST",e[e.ONE_MINUS_CONSTANT=32770]="ONE_MINUS_CONSTANT",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE"})(Bo||(Bo={}));var va;(function(e){e[e.ADD=32774]="ADD",e[e.SUBSTRACT=32778]="SUBSTRACT",e[e.REVERSE_SUBSTRACT=32779]="REVERSE_SUBSTRACT",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX"})(va||(va={}));var _s;(function(e){e[e.CLAMP_TO_EDGE=0]="CLAMP_TO_EDGE",e[e.REPEAT=1]="REPEAT",e[e.MIRRORED_REPEAT=2]="MIRRORED_REPEAT"})(_s||(_s={}));var xn;(function(e){e[e.POINT=0]="POINT",e[e.BILINEAR=1]="BILINEAR"})(xn||(xn={}));var sa;(function(e){e[e.NO_MIP=0]="NO_MIP",e[e.NEAREST=1]="NEAREST",e[e.LINEAR=2]="LINEAR"})(sa||(sa={}));var Gn;(function(e){e[e.POINTS=0]="POINTS",e[e.TRIANGLES=1]="TRIANGLES",e[e.TRIANGLE_STRIP=2]="TRIANGLE_STRIP",e[e.LINES=3]="LINES",e[e.LINE_STRIP=4]="LINE_STRIP"})(Gn||(Gn={}));var xi;(function(e){e[e.MAP_READ=1]="MAP_READ",e[e.MAP_WRITE=2]="MAP_WRITE",e[e.COPY_SRC=4]="COPY_SRC",e[e.COPY_DST=8]="COPY_DST",e[e.INDEX=16]="INDEX",e[e.VERTEX=32]="VERTEX",e[e.UNIFORM=64]="UNIFORM",e[e.STORAGE=128]="STORAGE",e[e.INDIRECT=256]="INDIRECT",e[e.QUERY_RESOLVE=512]="QUERY_RESOLVE"})(xi||(xi={}));var mp;(function(e){e[e.STATIC=1]="STATIC",e[e.DYNAMIC=2]="DYNAMIC"})(mp||(mp={}));var x1;(function(e){e[e.VERTEX=1]="VERTEX",e[e.INSTANCE=2]="INSTANCE"})(x1||(x1={}));var ig;(function(e){e.LOADED="loaded"})(ig||(ig={}));var Uo;(function(e){e[e.TEXTURE_2D=0]="TEXTURE_2D",e[e.TEXTURE_2D_ARRAY=1]="TEXTURE_2D_ARRAY",e[e.TEXTURE_3D=2]="TEXTURE_3D",e[e.TEXTURE_CUBE_MAP=3]="TEXTURE_CUBE_MAP"})(Uo||(Uo={}));var as;(function(e){e[e.SAMPLED=1]="SAMPLED",e[e.RENDER_TARGET=2]="RENDER_TARGET",e[e.STORAGE=4]="STORAGE"})(as||(as={}));var ga;(function(e){e[e.NONE=0]="NONE",e[e.RED=1]="RED",e[e.GREEN=2]="GREEN",e[e.BLUE=4]="BLUE",e[e.ALPHA=8]="ALPHA",e[e.RGB=7]="RGB",e[e.ALL=15]="ALL"})(ga||(ga={}));var un;(function(e){e[e.KEEP=7680]="KEEP",e[e.ZERO=0]="ZERO",e[e.REPLACE=7681]="REPLACE",e[e.INVERT=5386]="INVERT",e[e.INCREMENT_CLAMP=7682]="INCREMENT_CLAMP",e[e.DECREMENT_CLAMP=7683]="DECREMENT_CLAMP",e[e.INCREMENT_WRAP=34055]="INCREMENT_WRAP",e[e.DECREMENT_WRAP=34056]="DECREMENT_WRAP"})(un||(un={}));var sn;(function(e){e[e.Float=0]="Float",e[e.UnfilterableFloat=1]="UnfilterableFloat",e[e.Uint=2]="Uint",e[e.Sint=3]="Sint",e[e.Depth=4]="Depth"})(sn||(sn={}));var fp;(function(e){e[e.LOWER_LEFT=0]="LOWER_LEFT",e[e.UPPER_LEFT=1]="UPPER_LEFT"})(fp||(fp={}));var V0;(function(e){e[e.NEGATIVE_ONE=0]="NEGATIVE_ONE",e[e.ZERO=1]="ZERO"})(V0||(V0={}));var If;(function(e){e[e.OcclusionConservative=0]="OcclusionConservative"})(If||(If={}));var bt;(function(e){e[e.U8=1]="U8",e[e.U16=2]="U16",e[e.U32=3]="U32",e[e.S8=4]="S8",e[e.S16=5]="S16",e[e.S32=6]="S32",e[e.F16=7]="F16",e[e.F32=8]="F32",e[e.BC1=65]="BC1",e[e.BC2=66]="BC2",e[e.BC3=67]="BC3",e[e.BC4_UNORM=68]="BC4_UNORM",e[e.BC4_SNORM=69]="BC4_SNORM",e[e.BC5_UNORM=70]="BC5_UNORM",e[e.BC5_SNORM=71]="BC5_SNORM",e[e.U16_PACKED_5551=97]="U16_PACKED_5551",e[e.U16_PACKED_565=98]="U16_PACKED_565",e[e.D24=129]="D24",e[e.D32F=130]="D32F",e[e.D24S8=131]="D24S8",e[e.D32FS8=132]="D32FS8"})(bt||(bt={}));var Ar;(function(e){e[e.R=1]="R",e[e.RG=2]="RG",e[e.RGB=3]="RGB",e[e.RGBA=4]="RGBA",e[e.A=5]="A"})(Ar||(Ar={}));var lr;(function(e){e[e.None=0]="None",e[e.Normalized=1]="Normalized",e[e.sRGB=2]="sRGB",e[e.Depth=4]="Depth",e[e.Stencil=8]="Stencil",e[e.RenderTarget=16]="RenderTarget",e[e.Luminance=32]="Luminance"})(lr||(lr={}));function kr(e,t,r){return e<<16|t<<8|r}var ke;(function(e){e[e.ALPHA=kr(bt.U8,Ar.A,lr.None)]="ALPHA",e[e.U8_LUMINANCE=kr(bt.U8,Ar.A,lr.Luminance)]="U8_LUMINANCE",e[e.F16_LUMINANCE=kr(bt.F16,Ar.A,lr.Luminance)]="F16_LUMINANCE",e[e.F32_LUMINANCE=kr(bt.F32,Ar.A,lr.Luminance)]="F32_LUMINANCE",e[e.F16_R=kr(bt.F16,Ar.R,lr.None)]="F16_R",e[e.F16_RG=kr(bt.F16,Ar.RG,lr.None)]="F16_RG",e[e.F16_RGB=kr(bt.F16,Ar.RGB,lr.None)]="F16_RGB",e[e.F16_RGBA=kr(bt.F16,Ar.RGBA,lr.None)]="F16_RGBA",e[e.F32_R=kr(bt.F32,Ar.R,lr.None)]="F32_R",e[e.F32_RG=kr(bt.F32,Ar.RG,lr.None)]="F32_RG",e[e.F32_RGB=kr(bt.F32,Ar.RGB,lr.None)]="F32_RGB",e[e.F32_RGBA=kr(bt.F32,Ar.RGBA,lr.None)]="F32_RGBA",e[e.U8_R=kr(bt.U8,Ar.R,lr.None)]="U8_R",e[e.U8_R_NORM=kr(bt.U8,Ar.R,lr.Normalized)]="U8_R_NORM",e[e.U8_RG=kr(bt.U8,Ar.RG,lr.None)]="U8_RG",e[e.U8_RG_NORM=kr(bt.U8,Ar.RG,lr.Normalized)]="U8_RG_NORM",e[e.U8_RGB=kr(bt.U8,Ar.RGB,lr.None)]="U8_RGB",e[e.U8_RGB_NORM=kr(bt.U8,Ar.RGB,lr.Normalized)]="U8_RGB_NORM",e[e.U8_RGB_SRGB=kr(bt.U8,Ar.RGB,lr.sRGB|lr.Normalized)]="U8_RGB_SRGB",e[e.U8_RGBA=kr(bt.U8,Ar.RGBA,lr.None)]="U8_RGBA",e[e.U8_RGBA_NORM=kr(bt.U8,Ar.RGBA,lr.Normalized)]="U8_RGBA_NORM",e[e.U8_RGBA_SRGB=kr(bt.U8,Ar.RGBA,lr.sRGB|lr.Normalized)]="U8_RGBA_SRGB",e[e.U16_R=kr(bt.U16,Ar.R,lr.None)]="U16_R",e[e.U16_R_NORM=kr(bt.U16,Ar.R,lr.Normalized)]="U16_R_NORM",e[e.U16_RG_NORM=kr(bt.U16,Ar.RG,lr.Normalized)]="U16_RG_NORM",e[e.U16_RGBA_NORM=kr(bt.U16,Ar.RGBA,lr.Normalized)]="U16_RGBA_NORM",e[e.U16_RGBA=kr(bt.U16,Ar.RGBA,lr.None)]="U16_RGBA",e[e.U16_RGB=kr(bt.U16,Ar.RGB,lr.None)]="U16_RGB",e[e.U16_RG=kr(bt.U16,Ar.RG,lr.None)]="U16_RG",e[e.U32_R=kr(bt.U32,Ar.R,lr.None)]="U32_R",e[e.U32_RG=kr(bt.U32,Ar.RG,lr.None)]="U32_RG",e[e.U32_RGB=kr(bt.U32,Ar.RGB,lr.None)]="U32_RGB",e[e.U32_RGBA=kr(bt.U32,Ar.RGBA,lr.None)]="U32_RGBA",e[e.S8_R=kr(bt.S8,Ar.R,lr.None)]="S8_R",e[e.S8_R_NORM=kr(bt.S8,Ar.R,lr.Normalized)]="S8_R_NORM",e[e.S8_RG_NORM=kr(bt.S8,Ar.RG,lr.Normalized)]="S8_RG_NORM",e[e.S8_RGB_NORM=kr(bt.S8,Ar.RGB,lr.Normalized)]="S8_RGB_NORM",e[e.S8_RGBA_NORM=kr(bt.S8,Ar.RGBA,lr.Normalized)]="S8_RGBA_NORM",e[e.S16_R=kr(bt.S16,Ar.R,lr.None)]="S16_R",e[e.S16_RG=kr(bt.S16,Ar.RG,lr.None)]="S16_RG",e[e.S16_RG_NORM=kr(bt.S16,Ar.RG,lr.Normalized)]="S16_RG_NORM",e[e.S16_RGB_NORM=kr(bt.S16,Ar.RGB,lr.Normalized)]="S16_RGB_NORM",e[e.S16_RGBA=kr(bt.S16,Ar.RGBA,lr.None)]="S16_RGBA",e[e.S16_RGBA_NORM=kr(bt.S16,Ar.RGBA,lr.Normalized)]="S16_RGBA_NORM",e[e.S32_R=kr(bt.S32,Ar.R,lr.None)]="S32_R",e[e.S32_RG=kr(bt.S32,Ar.RG,lr.None)]="S32_RG",e[e.S32_RGB=kr(bt.S32,Ar.RGB,lr.None)]="S32_RGB",e[e.S32_RGBA=kr(bt.S32,Ar.RGBA,lr.None)]="S32_RGBA",e[e.U16_RGBA_5551=kr(bt.U16_PACKED_5551,Ar.RGBA,lr.Normalized)]="U16_RGBA_5551",e[e.U16_RGB_565=kr(bt.U16_PACKED_565,Ar.RGB,lr.Normalized)]="U16_RGB_565",e[e.BC1=kr(bt.BC1,Ar.RGBA,lr.Normalized)]="BC1",e[e.BC1_SRGB=kr(bt.BC1,Ar.RGBA,lr.Normalized|lr.sRGB)]="BC1_SRGB",e[e.BC2=kr(bt.BC2,Ar.RGBA,lr.Normalized)]="BC2",e[e.BC2_SRGB=kr(bt.BC2,Ar.RGBA,lr.Normalized|lr.sRGB)]="BC2_SRGB",e[e.BC3=kr(bt.BC3,Ar.RGBA,lr.Normalized)]="BC3",e[e.BC3_SRGB=kr(bt.BC3,Ar.RGBA,lr.Normalized|lr.sRGB)]="BC3_SRGB",e[e.BC4_UNORM=kr(bt.BC4_UNORM,Ar.R,lr.Normalized)]="BC4_UNORM",e[e.BC4_SNORM=kr(bt.BC4_SNORM,Ar.R,lr.Normalized)]="BC4_SNORM",e[e.BC5_UNORM=kr(bt.BC5_UNORM,Ar.RG,lr.Normalized)]="BC5_UNORM",e[e.BC5_SNORM=kr(bt.BC5_SNORM,Ar.RG,lr.Normalized)]="BC5_SNORM",e[e.D24=kr(bt.D24,Ar.R,lr.Depth)]="D24",e[e.D24_S8=kr(bt.D24S8,Ar.RG,lr.Depth|lr.Stencil)]="D24_S8",e[e.D32F=kr(bt.D32F,Ar.R,lr.Depth)]="D32F",e[e.D32F_S8=kr(bt.D32FS8,Ar.RG,lr.Depth|lr.Stencil)]="D32F_S8",e[e.U8_RGB_RT=kr(bt.U8,Ar.RGB,lr.RenderTarget|lr.Normalized)]="U8_RGB_RT",e[e.U8_RGBA_RT=kr(bt.U8,Ar.RGBA,lr.RenderTarget|lr.Normalized)]="U8_RGBA_RT",e[e.U8_RGBA_RT_SRGB=kr(bt.U8,Ar.RGBA,lr.RenderTarget|lr.Normalized|lr.sRGB)]="U8_RGBA_RT_SRGB"})(ke||(ke={}));function H6(e){return e>>>8&255}function qp(e){return e>>>16&255}function H0(e){return e&255}function P7(e){switch(e){case bt.F32:case bt.U32:case bt.S32:return 4;case bt.U16:case bt.S16:case bt.F16:return 2;case bt.U8:case bt.S8:return 1;default:throw new Error("whoops")}}function b7(e){return P7(qp(e))}function fO(e){var t=P7(qp(e)),r=H6(e);return t*r}function A7(e){var t=H0(e);if(t&lr.Depth)return sn.Depth;if(t&lr.Normalized)return sn.Float;var r=qp(e);if(r===bt.F16||r===bt.F32)return sn.Float;if(r===bt.U8||r===bt.U16||r===bt.U32)return sn.Uint;if(r===bt.S8||r===bt.S16||r===bt.S32)return sn.Sint;throw new Error("whoops")}function mo(e,t){if(t===void 0&&(t=""),!e)throw new Error("Assert fail: ".concat(t))}function l1(e){if(e!=null)return e;throw new Error("Missing object")}function F7(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}function T7(e,t){e.r=t.r,e.g=t.g,e.b=t.b,e.a=t.a}function S7(e){var t=e.r,r=e.g,i=e.b,s=e.a;return{r:t,g:r,b:i,a:s}}function ky(e,t,r,i){return i===void 0&&(i=1),{r:e,g:t,b:r,a:i}}var Qf=ky(0,0,0,0);ky(0,0,0,1);var mO=ky(1,1,1,0);ky(1,1,1,1);function Mf(e){return!!(e&&!(e&e-1))}function hc(e,t){return e??t}function _O(e){return e===void 0?null:e}function Nf(e,t){var r=t-1;return e+r&-4}function gO(e,t){for(var r=new Array(e),i=0;i<e;i++)r[i]=t();return r}function vO(e,t){t===void 0&&(t=1);var r=e.split(`
- `);return r.map(function(i,s){return"".concat(EO(""+(t+s),4," ")," ").concat(i)}).join(`
- `)}function EO(e,t,r){for(;e.length<t;)e="".concat(r).concat(e);return e}function ng(e,t){e.blendDstFactor=t.blendDstFactor,e.blendSrcFactor=t.blendSrcFactor,e.blendMode=t.blendMode}function Df(e,t){return e===void 0&&(e={}),e.compare=t.compare,e.depthFailOp=t.depthFailOp,e.passOp=t.passOp,e.failOp=t.failOp,e.mask=t.mask,e}function w7(e,t){return e===void 0&&(e={rgbBlendState:{},alphaBlendState:{},channelWriteMask:0}),ng(e.rgbBlendState,t.rgbBlendState),ng(e.alphaBlendState,t.alphaBlendState),e.channelWriteMask=t.channelWriteMask,e}function R7(e,t){e.length!==t.length&&(e.length=t.length);for(var r=0;r<t.length;r++)e[r]=w7(e[r],t[r])}function xO(e,t){t.attachmentsState!==void 0&&R7(e.attachmentsState,t.attachmentsState),e.blendConstant&&t.blendConstant&&T7(e.blendConstant,t.blendConstant),e.depthCompare=hc(t.depthCompare,e.depthCompare),e.depthWrite=hc(t.depthWrite,e.depthWrite),e.stencilWrite=hc(t.stencilWrite,e.stencilWrite),e.stencilFront&&t.stencilFront&&Df(e.stencilFront,t.stencilFront),e.stencilBack&&t.stencilBack&&Df(e.stencilBack,t.stencilBack),e.cullMode=hc(t.cullMode,e.cullMode),e.frontFace=hc(t.frontFace,e.frontFace),e.polygonOffset=hc(t.polygonOffset,e.polygonOffset),e.polygonOffsetFactor=hc(t.polygonOffsetFactor,e.polygonOffsetFactor),e.polygonOffsetUnits=hc(t.polygonOffsetUnits,e.polygonOffsetUnits)}function G0(e){var t=Object.assign({},e);return t.attachmentsState=[],R7(t.attachmentsState,e.attachmentsState),t.blendConstant=t.blendConstant&&S7(t.blendConstant),t.stencilFront=Df(void 0,e.stencilFront),t.stencilBack=Df(void 0,e.stencilBack),t}var ag={blendMode:va.ADD,blendSrcFactor:Bo.ONE,blendDstFactor:Bo.ZERO},j0={attachmentsState:[{channelWriteMask:ga.ALL,rgbBlendState:ag,alphaBlendState:ag}],blendConstant:S7(Qf),depthWrite:!0,depthCompare:ai.LEQUAL,stencilWrite:!1,stencilFront:{compare:ai.ALWAYS,passOp:un.KEEP,depthFailOp:un.KEEP,failOp:un.KEEP},stencilBack:{compare:ai.ALWAYS,passOp:un.KEEP,depthFailOp:un.KEEP,failOp:un.KEEP},cullMode:zs.NONE,frontFace:Cy.CCW,polygonOffset:!1,polygonOffsetFactor:0,polygonOffsetUnits:0};function PO(e,t){e===void 0&&(e=null),t===void 0&&(t=j0);var r=G0(t);return e!==null&&xO(r,e),r}PO({depthCompare:ai.ALWAYS,depthWrite:!1},j0);var C7={texture:null,sampler:null,formatKind:sn.Float,dimension:Uo.TEXTURE_2D};function Pc(e,t,r){if(e.length!==t.length)return!1;for(var i=0;i<e.length;i++)if(!r(e[i],t[i]))return!1;return!0}function b0(e,t){for(var r=Array(e.length),i=0;i<e.length;i++)r[i]=t(e[i]);return r}function bO(e,t){return e.texture===t.texture&&e.binding===t.binding}function sg(e,t){return e.buffer===t.buffer&&e.size===t.size&&e.binding===t.binding&&e.offset===t.offset}function AO(e,t){return e===null?t===null:t===null?!1:e.sampler===t.sampler&&e.texture===t.texture&&e.dimension===t.dimension&&e.formatKind===t.formatKind&&e.comparison===t.comparison}function FO(e,t){return e.samplerBindings=e.samplerBindings||[],e.uniformBufferBindings=e.uniformBufferBindings||[],e.storageBufferBindings=e.storageBufferBindings||[],e.storageTextureBindings=e.storageTextureBindings||[],t.samplerBindings=t.samplerBindings||[],t.uniformBufferBindings=t.uniformBufferBindings||[],t.storageBufferBindings=t.storageBufferBindings||[],t.storageTextureBindings=t.storageTextureBindings||[],!(e.samplerBindings.length!==t.samplerBindings.length||!Pc(e.samplerBindings,t.samplerBindings,AO)||!Pc(e.uniformBufferBindings,t.uniformBufferBindings,sg)||!Pc(e.storageBufferBindings,t.storageBufferBindings,sg)||!Pc(e.storageTextureBindings,t.storageTextureBindings,bO))}function ug(e,t){return e.blendMode==t.blendMode&&e.blendSrcFactor===t.blendSrcFactor&&e.blendDstFactor===t.blendDstFactor}function TO(e,t){return!(!ug(e.rgbBlendState,t.rgbBlendState)||!ug(e.alphaBlendState,t.alphaBlendState)||e.channelWriteMask!==t.channelWriteMask)}function Of(e,t){return e.compare==t.compare&&e.depthFailOp===t.depthFailOp&&e.failOp===t.failOp&&e.passOp===t.passOp&&e.mask===t.mask}function SO(e,t){return!Pc(e.attachmentsState,t.attachmentsState,TO)||e.blendConstant&&t.blendConstant&&!F7(e.blendConstant,t.blendConstant)||e.stencilFront&&t.stencilFront&&!Of(e.stencilFront,t.stencilFront)||e.stencilBack&&t.stencilBack&&!Of(e.stencilBack,t.stencilBack)?!1:e.depthCompare===t.depthCompare&&e.depthWrite===t.depthWrite&&e.stencilWrite===t.stencilWrite&&e.cullMode===t.cullMode&&e.frontFace===t.frontFace&&e.polygonOffset===t.polygonOffset&&e.polygonOffsetFactor===t.polygonOffsetFactor&&e.polygonOffsetUnits===t.polygonOffsetUnits}function I7(e,t){return e.id===t.id}function wO(e,t){return e===t}function RO(e,t){return!(e.topology!==t.topology||e.inputLayout!==t.inputLayout||e.sampleCount!==t.sampleCount||e.megaStateDescriptor&&t.megaStateDescriptor&&!SO(e.megaStateDescriptor,t.megaStateDescriptor)||!I7(e.program,t.program)||!Pc(e.colorAttachmentFormats,t.colorAttachmentFormats,wO)||e.depthStencilAttachmentFormat!==t.depthStencilAttachmentFormat)}function CO(e,t){return e.offset===t.offset&&e.shaderLocation===t.shaderLocation&&e.format===t.format&&e.divisor===t.divisor}function IO(e,t){return Wu(e)?Wu(t):Wu(t)?!1:e.arrayStride===t.arrayStride&&e.stepMode===t.stepMode&&Pc(e.attributes,t.attributes,CO)}function MO(e,t){return!(e.indexBufferFormat!==t.indexBufferFormat||!Pc(e.vertexBufferDescriptors,t.vertexBufferDescriptors,IO)||!I7(e.program,t.program))}function NO(e){var t=e.sampler,r=e.texture,i=e.dimension,s=e.formatKind,u=e.comparison;return{sampler:t,texture:r,dimension:i,formatKind:s,comparison:u}}function pg(e){var t=e.buffer,r=e.size,i=e.binding,s=e.offset;return{binding:i,buffer:t,offset:s,size:r}}function DO(e){var t=e.binding,r=e.texture;return{binding:t,texture:r}}function OO(e){var t=e.samplerBindings&&b0(e.samplerBindings,NO),r=e.uniformBufferBindings&&b0(e.uniformBufferBindings,pg),i=e.storageBufferBindings&&b0(e.storageBufferBindings,pg),s=e.storageTextureBindings&&b0(e.storageTextureBindings,DO);return{samplerBindings:t,uniformBufferBindings:r,storageBufferBindings:i,storageTextureBindings:s,pipeline:e.pipeline}}function LO(e){var t=e.inputLayout,r=e.program,i=e.topology,s=e.megaStateDescriptor&&G0(e.megaStateDescriptor),u=e.colorAttachmentFormats.slice(),n=e.depthStencilAttachmentFormat,y=e.sampleCount;return{inputLayout:t,megaStateDescriptor:s,program:r,topology:i,colorAttachmentFormats:u,depthStencilAttachmentFormat:n,sampleCount:y}}function BO(e){var t=e.shaderLocation,r=e.format,i=e.offset,s=e.divisor;return{shaderLocation:t,format:r,offset:i,divisor:s}}function UO(e){if(Wu(e))return e;var t=e.arrayStride,r=e.stepMode,i=b0(e.attributes,BO);return{arrayStride:t,stepMode:r,attributes:i}}function kO(e){var t=b0(e.vertexBufferDescriptors,UO),r=e.indexBufferFormat,i=e.program;return{vertexBufferDescriptors:t,indexBufferFormat:r,program:i}}var Ho,zO=/([^[]*)(\[[0-9]+\])?/;function VO(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};var t=e.match(zO);if(!t||t.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:t[1],length:Number(t[2])||1,isArray:!!t[2]}}function ms(){var e=null;return function(t,r,i){var s=e!==i;return s&&(t.uniform1i(r,i),e=i),s}}function nn(e,t,r,i){var s=null,u=null;return function(n,y,m){var g=t(m,r),x=g.length,b=!1;if(s===null)s=new Float32Array(x),u=x,b=!0;else{mo(u===x,"Uniform length cannot change.");for(var F=0;F<x;++F)if(g[F]!==s[F]){b=!0;break}}return b&&(i(n,e,y,g),s.set(g)),b}}function is(e,t,r,i){e[t](r,i)}function Sl(e,t,r,i){e[t](r,!1,i)}var HO={},GO={},jO={},lg=[0];function G6(e,t,r,i){t===1&&typeof e=="boolean"&&(e=e?1:0),Number.isFinite(e)&&(lg[0]=e,e=lg);var s=e.length;if(e instanceof r)return e;var u=i[s];u||(u=new r(s),i[s]=u);for(var n=0;n<s;n++)u[n]=e[n];return u}function su(e,t){return G6(e,t,Float32Array,HO)}function fc(e,t){return G6(e,t,Int32Array,GO)}function Bh(e,t){return G6(e,t,Uint32Array,jO)}var WO=(Ho={},Ho[ve.FLOAT]=nn.bind(null,"uniform1fv",su,1,is),Ho[ve.FLOAT_VEC2]=nn.bind(null,"uniform2fv",su,2,is),Ho[ve.FLOAT_VEC3]=nn.bind(null,"uniform3fv",su,3,is),Ho[ve.FLOAT_VEC4]=nn.bind(null,"uniform4fv",su,4,is),Ho[ve.INT]=nn.bind(null,"uniform1iv",fc,1,is),Ho[ve.INT_VEC2]=nn.bind(null,"uniform2iv",fc,2,is),Ho[ve.INT_VEC3]=nn.bind(null,"uniform3iv",fc,3,is),Ho[ve.INT_VEC4]=nn.bind(null,"uniform4iv",fc,4,is),Ho[ve.BOOL]=nn.bind(null,"uniform1iv",fc,1,is),Ho[ve.BOOL_VEC2]=nn.bind(null,"uniform2iv",fc,2,is),Ho[ve.BOOL_VEC3]=nn.bind(null,"uniform3iv",fc,3,is),Ho[ve.BOOL_VEC4]=nn.bind(null,"uniform4iv",fc,4,is),Ho[ve.FLOAT_MAT2]=nn.bind(null,"uniformMatrix2fv",su,4,Sl),Ho[ve.FLOAT_MAT3]=nn.bind(null,"uniformMatrix3fv",su,9,Sl),Ho[ve.FLOAT_MAT4]=nn.bind(null,"uniformMatrix4fv",su,16,Sl),Ho[ve.UNSIGNED_INT]=nn.bind(null,"uniform1uiv",Bh,1,is),Ho[ve.UNSIGNED_INT_VEC2]=nn.bind(null,"uniform2uiv",Bh,2,is),Ho[ve.UNSIGNED_INT_VEC3]=nn.bind(null,"uniform3uiv",Bh,3,is),Ho[ve.UNSIGNED_INT_VEC4]=nn.bind(null,"uniform4uiv",Bh,4,is),Ho[ve.FLOAT_MAT2x3]=nn.bind(null,"uniformMatrix2x3fv",su,6,Sl),Ho[ve.FLOAT_MAT2x4]=nn.bind(null,"uniformMatrix2x4fv",su,8,Sl),Ho[ve.FLOAT_MAT3x2]=nn.bind(null,"uniformMatrix3x2fv",su,6,Sl),Ho[ve.FLOAT_MAT3x4]=nn.bind(null,"uniformMatrix3x4fv",su,12,Sl),Ho[ve.FLOAT_MAT4x2]=nn.bind(null,"uniformMatrix4x2fv",su,8,Sl),Ho[ve.FLOAT_MAT4x3]=nn.bind(null,"uniformMatrix4x3fv",su,12,Sl),Ho[ve.SAMPLER_2D]=ms,Ho[ve.SAMPLER_CUBE]=ms,Ho[ve.SAMPLER_3D]=ms,Ho[ve.SAMPLER_2D_SHADOW]=ms,Ho[ve.SAMPLER_2D_ARRAY]=ms,Ho[ve.SAMPLER_2D_ARRAY_SHADOW]=ms,Ho[ve.SAMPLER_CUBE_SHADOW]=ms,Ho[ve.INT_SAMPLER_2D]=ms,Ho[ve.INT_SAMPLER_3D]=ms,Ho[ve.INT_SAMPLER_CUBE]=ms,Ho[ve.INT_SAMPLER_2D_ARRAY]=ms,Ho[ve.UNSIGNED_INT_SAMPLER_2D]=ms,Ho[ve.UNSIGNED_INT_SAMPLER_3D]=ms,Ho[ve.UNSIGNED_INT_SAMPLER_CUBE]=ms,Ho[ve.UNSIGNED_INT_SAMPLER_2D_ARRAY]=ms,Ho);function cg(e,t,r){var i=WO[r.type];if(!i)throw new Error("Unknown GLSL uniform type ".concat(r.type));return i().bind(null,e,t)}var XO={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121};function ZO(e){return Object.prototype.toString.call(e)in XO}function Gd(e,t){return"#define ".concat(e," ").concat(t)}function YO(e){var t={};return e.replace(/^\s*#define\s*(\S*)\s*(\S*)\s*$/gm,function(r,i,s){var u=Number(s);return t[i]=isNaN(u)?s:u,""}),t}function $O(e,t){var r=[];return e.replace(/^\s*layout\(location\s*=\s*(\S*)\)\s*in\s+\S+\s*(.*);$/gm,function(i,s,u){var n=Number(s);return r.push({location:isNaN(n)?t[s]:n,name:u}),""}),r}function dg(e){if(e===void 0)return null;var t=/binding\s*=\s*(\d+)/.exec(e);if(t!==null){var r=parseInt(t[1],10);if(!Number.isNaN(r))return r}return null}function yg(e){var t="",r=e;return[r,t]}function W0(e,t,r,i,s){var u;i===void 0&&(i=null),s===void 0&&(s=!0);var n=e.glslVersion==="#version 100",y=t==="frag"&&((u=r.match(/^\s*layout\(location\s*=\s*\d*\)\s*out\s+vec4\s*(.*);$/gm))===null||u===void 0?void 0:u.length)>1,m=r.replace(`\r
- `,`
- `).split(`
- `).map(function(Oe){return Oe.replace(/[/][/].*$/,"")}).filter(function(Oe){var Ee=!Oe||/^\s+$/.test(Oe);return!Ee}),g="";i!==null&&(g=Object.keys(i).map(function(Oe){return Gd(Oe,i[Oe])}).join(`
- `));var x=m.find(function(Oe){return Oe.startsWith("precision")})||"precision mediump float;",b=s?m.filter(function(Oe){return!Oe.startsWith("precision")}).join(`
- `):m.join(`
- `),F="";if(e.viewportOrigin===fp.UPPER_LEFT&&(F+="".concat(Gd("VIEWPORT_ORIGIN_TL","1"),`
- `)),e.clipSpaceNearZ===V0.ZERO&&(F+="".concat(Gd("CLIPSPACE_NEAR_ZERO","1"),`
- `)),e.explicitBindingLocations){var R=0,I=0,U=0;b=b.replace(/^\s*(layout\((.*)\))?\s*uniform(.+{)$/gm,function(Oe,Ee,He,ft){var Ge=He?"".concat(He,", "):"";return"layout(".concat(Ge,"set = ").concat(R,", binding = ").concat(I++,") uniform ").concat(ft)}),R++,I=0,mo(e.separateSamplerTextures),b=b.replace(/^\s*(layout\((.*)\))?\s*uniform sampler(\w+) (.*);/gm,function(Oe,Ee,He,ft,Ge){var Ae=dg(He);Ae===null&&(Ae=I++);var Be=cp(yg(ft),2),ze=Be[0],st=Be[1];return t==="frag"?`
- layout(set = `.concat(R,", binding = ").concat(Ae*2+0,") uniform texture").concat(ze," T_").concat(Ge,`;
- layout(set = `).concat(R,", binding = ").concat(Ae*2+1,") uniform sampler").concat(st," S_").concat(Ge,";").trim():""}),b=b.replace(t==="frag"?/^\s*\b(varying|in)\b/gm:/^\s*\b(varying|out)\b/gm,function(Oe,Ee){return"layout(location = ".concat(U++,") ").concat(Ee)}),F+="".concat(Gd("gl_VertexID","gl_VertexIndex"),`
- `),F+="".concat(Gd("gl_InstanceID","gl_InstanceIndex"),`
- `),x=x.replace(/^precision (.*) sampler(.*);$/gm,"")}else{var V=0;b=b.replace(/^\s*(layout\((.*)\))?\s*uniform sampler(\w+) (.*);/gm,function(Oe,Ee,He,ft,Ge){var Ae=dg(He);return Ae===null&&(Ae=V++),"uniform sampler".concat(ft," ").concat(Ge,"; // BINDING=").concat(Ae)})}if(b=b.replace(/\bPU_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"SAMPLER_".concat(Ee,"(P_").concat(He,")")}),b=b.replace(/\bPF_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"PP_SAMPLER_".concat(Ee,"(P_").concat(He,")")}),b=b.replace(/\bPU_TEXTURE\((.*?)\)/g,function(Oe,Ee){return"TEXTURE(P_".concat(Ee,")")}),e.separateSamplerTextures)b=b.replace(/\bPD_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){var ft=cp(yg(Ee),2),Ge=ft[0],Ae=ft[1];return"texture".concat(Ge," T_P_").concat(He,", sampler").concat(Ae," S_P_").concat(He)}),b=b.replace(/\bPP_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"T_".concat(He,", S_").concat(He)}),b=b.replace(/\bSAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"sampler".concat(Ee,"(T_").concat(He,", S_").concat(He,")")}),b=b.replace(/\bTEXTURE\((.*?)\)/g,function(Oe,Ee){return"T_".concat(Ee)});else{var J=[];b=b.replace(/\bPD_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"sampler".concat(Ee," P_").concat(He)}),b=b.replace(/\bPP_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return He}),b=b.replace(/\bSAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return J.push([He,Ee]),He}),n&&J.forEach(function(Oe){var Ee=cp(Oe,2),He=Ee[0],ft=Ee[1];b=b.replace(new RegExp("texture\\(".concat(He),"g"),function(){return"texture".concat(ft,"(").concat(He)})}),b=b.replace(/\bTEXTURE\((.*?)\)/g,function(Oe,Ee){return Ee})}var Q="".concat(n?"":e.glslVersion,`
- `).concat(n&&y?`#extension GL_EXT_draw_buffers : require
- `:"",`
- `).concat(n&&t==="frag"?`#extension GL_OES_standard_derivatives : enable
- `:"").concat(s?x:"",`
- `).concat(F||"").concat(g?g+`
- `:"",`
- `).concat(b,`
- `).trim();if(e.explicitBindingLocations&&t==="frag"&&(Q=Q.replace(/^\b(out)\b/g,function(Oe,Ee){return"layout(location = 0) ".concat(Ee)})),n){if(t==="frag"&&(Q=Q.replace(/^\s*in\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"varying ".concat(Ee," ").concat(He,`;
- `)})),t==="vert"&&(Q=Q.replace(/^\s*out\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"varying ".concat(Ee," ").concat(He,`;
- `)}),Q=Q.replace(/^\s*layout\(location\s*=\s*\S*\)\s*in\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"attribute ".concat(Ee," ").concat(He,`;
- `)})),Q=Q.replace(/\s*uniform\s*.*\s*{((?:\s*.*\s*)*?)};/g,function(Oe,Ee){return Ee.trim().replace(/^.*$/gm,function(He){var ft=He.trim();return ft.startsWith("#")?ft:He?"uniform ".concat(ft):""})}),t==="frag")if(y){var te=[];Q=Q.replace(/^\s*layout\(location\s*=\s*\d*\)\s*out\s+vec4\s*(.*);$/gm,function(Oe,Ee){return te.push(Ee),"vec4 ".concat(Ee,`;
- `)});var ne=Q.lastIndexOf("}");Q=Q.substring(0,ne)+`
- `.concat(te.map(function(Oe,Ee){return"gl_FragData[".concat(Ee,"] = ").concat(Oe,`;
- `)}).join(`
- `))+Q.substring(ne)}else{var pe;if(Q=Q.replace(/^\s*out\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return pe=He,"".concat(Ee," ").concat(He,`;
- `)}),pe){var ne=Q.lastIndexOf("}");Q=Q.substring(0,ne)+`
- gl_FragColor = vec4(`.concat(pe,`);
- `)+Q.substring(ne)}}Q=Q.replace(/^\s*layout\((.*)\)/gm,"")}return Q}var Xu=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this)||this;return u.id=i,u.device=s,u.device.resourceCreationTracker!==null&&u.device.resourceCreationTracker.trackResourceCreated(u),u}return t.prototype.destroy=function(){this.device.resourceCreationTracker!==null&&this.device.resourceCreationTracker.trackResourceDestroyed(this)},t}(x7),qO=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.Bindings;var y=u.uniformBufferBindings,m=u.samplerBindings;return n.uniformBufferBindings=y||[],n.samplerBindings=m||[],n.bindingLayouts=n.createBindingLayouts(),n}return t.prototype.createBindingLayouts=function(){var r=0,i=0,s=[],u=this.uniformBufferBindings.length,n=this.samplerBindings.length;return s.push({firstUniformBuffer:r,numUniformBuffers:u,firstSampler:i,numSamplers:n}),r+=u,i+=n,{numUniformBuffers:r,numSamplers:i,bindingLayoutTables:s}},t}(Xu),jd;function Mr(e){return jd!==void 0?jd:typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?(jd=!0,!0):(jd=!!(e&&e._version===2),jd)}function M7(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_UNORM:case bt.BC4_SNORM:case bt.BC5_UNORM:case bt.BC5_SNORM:return!0;default:return!1}}function N7(e){var t=H0(e);if(t&lr.Normalized)return!1;var r=qp(e);return r===bt.S8||r===bt.S16||r===bt.S32||r===bt.U8||r===bt.U16||r===bt.U32}function KO(e){switch(e){case mp.STATIC:return ve.STATIC_DRAW;case mp.DYNAMIC:return ve.DYNAMIC_DRAW}}function hg(e){if(e&xi.INDEX)return ve.ELEMENT_ARRAY_BUFFER;if(e&xi.VERTEX)return ve.ARRAY_BUFFER;if(e&xi.UNIFORM)return ve.UNIFORM_BUFFER}function QO(e){switch(e){case Gn.TRIANGLES:return ve.TRIANGLES;case Gn.POINTS:return ve.POINTS;case Gn.TRIANGLE_STRIP:return ve.TRIANGLE_STRIP;case Gn.LINES:return ve.LINES;case Gn.LINE_STRIP:return ve.LINE_STRIP;default:throw new Error("Unknown primitive topology mode")}}function JO(e){switch(e){case bt.U8:return ve.UNSIGNED_BYTE;case bt.U16:return ve.UNSIGNED_SHORT;case bt.U32:return ve.UNSIGNED_INT;case bt.S8:return ve.BYTE;case bt.S16:return ve.SHORT;case bt.S32:return ve.INT;case bt.F16:return ve.HALF_FLOAT;case bt.F32:return ve.FLOAT;default:throw new Error("whoops")}}function eL(e){switch(e){case Ar.R:return 1;case Ar.RG:return 2;case Ar.RGB:return 3;case Ar.RGBA:return 4;default:return 1}}function tL(e){var t=qp(e),r=H6(e),i=H0(e),s=JO(t),u=eL(r),n=!!(i&lr.Normalized);return{size:u,type:s,normalized:n}}function rL(e){switch(e){case ke.U8_R:return ve.UNSIGNED_BYTE;case ke.U16_R:return ve.UNSIGNED_SHORT;case ke.U32_R:return ve.UNSIGNED_INT;default:throw new Error("whoops")}}function Wd(e){switch(e){case _s.CLAMP_TO_EDGE:return ve.CLAMP_TO_EDGE;case _s.REPEAT:return ve.REPEAT;case _s.MIRRORED_REPEAT:return ve.MIRRORED_REPEAT;default:throw new Error("whoops")}}function Uh(e,t){if(t===sa.LINEAR&&e===xn.BILINEAR)return ve.LINEAR_MIPMAP_LINEAR;if(t===sa.LINEAR&&e===xn.POINT)return ve.NEAREST_MIPMAP_LINEAR;if(t===sa.NEAREST&&e===xn.BILINEAR)return ve.LINEAR_MIPMAP_NEAREST;if(t===sa.NEAREST&&e===xn.POINT)return ve.NEAREST_MIPMAP_NEAREST;if(t===sa.NO_MIP&&e===xn.BILINEAR)return ve.LINEAR;if(t===sa.NO_MIP&&e===xn.POINT)return ve.NEAREST;throw new Error("Unknown texture filter mode")}function N0(e,t){t===void 0&&(t=0);var r=e;return r.gl_buffer_pages[t/r.pageByteSize|0]}function E0(e){var t=e;return t.gl_texture}function J2(e){var t=e;return t.gl_sampler}function Xd(e,t){e.name=t,e.__SPECTOR_Metadata={name:t}}function fg(e,t){for(var r=[];;){var i=t.exec(e);if(!i)break;r.push(i)}return r}function mc(e){return e.blendMode==va.ADD&&e.blendSrcFactor==Bo.ONE&&e.blendDstFactor===Bo.ZERO}function oL(e){switch(e){case If.OcclusionConservative:return ve.ANY_SAMPLES_PASSED_CONSERVATIVE;default:throw new Error("whoops")}}function iL(e){if(e===Uo.TEXTURE_2D)return ve.TEXTURE_2D;if(e===Uo.TEXTURE_2D_ARRAY)return ve.TEXTURE_2D_ARRAY;if(e===Uo.TEXTURE_CUBE_MAP)return ve.TEXTURE_CUBE_MAP;if(e===Uo.TEXTURE_3D)return ve.TEXTURE_3D;throw new Error("whoops")}function o2(e,t,r,i){return!(e%r!==0||t%i!==0)}var nL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.Buffer;var y=u.viewOrSize,m=u.usage,g=u.hint,x=g===void 0?mp.STATIC:g,b=s.uniformBufferMaxPageByteSize,F=s.gl,R=m&xi.UNIFORM;R||(Mr(F)?F.bindVertexArray(null):s.OES_vertex_array_object.bindVertexArrayOES(null));var I=P0(y)?Nf(y,4):Nf(y.byteLength,4);n.gl_buffer_pages=[];var U;if(R){for(var V=I;V>0;)n.gl_buffer_pages.push(n.createBufferPage(Math.min(V,b),m,x)),V-=b;U=b}else n.gl_buffer_pages.push(n.createBufferPage(I,m,x)),U=I;return n.pageByteSize=U,n.byteSize=I,n.usage=m,n.gl_target=hg(m),P0(y)||n.setSubData(0,new Uint8Array(y.buffer)),R||(Mr(F)?F.bindVertexArray(n.device.currentBoundVAO):s.OES_vertex_array_object.bindVertexArrayOES(n.device.currentBoundVAO)),n}return t.prototype.setSubData=function(r,i,s,u){s===void 0&&(s=0),u===void 0&&(u=i.byteLength-s);for(var n=this.device.gl,y=this.pageByteSize,m=r+u,g=r,x=r%y;g<m;){var b=Mr(n)?n.COPY_WRITE_BUFFER:this.gl_target,F=N0(this,g);if(F.ubo)return;n.bindBuffer(b,F),Mr(n)?n.bufferSubData(b,x,i,s,Math.min(m-g,y)):n.bufferSubData(b,x,i),g+=y,x=0,s+=y,this.device.debugGroupStatisticsBufferUpload()}},t.prototype.destroy=function(){e.prototype.destroy.call(this);for(var r=0;r<this.gl_buffer_pages.length;r++)this.gl_buffer_pages[r].ubo||this.device.gl.deleteBuffer(this.gl_buffer_pages[r]);this.gl_buffer_pages=[]},t.prototype.createBufferPage=function(r,i,s){var u=this.device.gl,n=i&xi.UNIFORM;if(!Mr(u)&&n)return{ubo:!0};var y=this.device.ensureResourceExists(u.createBuffer()),m=hg(i),g=KO(s);return u.bindBuffer(m,y),u.bufferData(m,r,g),y},t}(Xu),aL=function(e){pn(t,e);function t(r){var i,s,u,n,y=r.id,m=r.device,g=r.descriptor,x,b=e.call(this,{id:y,device:m})||this;b.type=Ko.InputLayout;var F=g.vertexBufferDescriptors,R=g.indexBufferFormat,I=g.program;mo(R===ke.U16_R||R===ke.U32_R||R===null);var U=R!==null?rL(R):null,V=R!==null?b7(R):null,J=b.device.gl,Q=b.device.ensureResourceExists(Mr(J)?J.createVertexArray():m.OES_vertex_array_object.createVertexArrayOES());Mr(J)?J.bindVertexArray(Q):m.OES_vertex_array_object.bindVertexArrayOES(Q),J.bindBuffer(J.ARRAY_BUFFER,N0(b.device.fallbackVertexBuffer));try{for(var te=y1(g.vertexBufferDescriptors),ne=te.next();!ne.done;ne=te.next()){var pe=ne.value,Oe=pe.stepMode,Ee=pe.attributes;try{for(var He=(u=void 0,y1(Ee)),ft=He.next();!ft.done;ft=He.next()){var Ge=ft.value,Ae=Ge.shaderLocation,Be=Ge.format,ze=Ge.divisor,st=ze===void 0?1:ze,Vt=Mr(J)?Ae:(x=I.attributes[Ae])===null||x===void 0?void 0:x.location,ir=tL(Be);if(Ge.vertexFormat=ir,!Wu(Vt)){N7(Be);var Fr=ir.size,Yr=ir.type,mr=ir.normalized;J.vertexAttribPointer(Vt,Fr,Yr,mr,0,0),Oe===x1.INSTANCE&&(Mr(J)?J.vertexAttribDivisor(Vt,st):m.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(Vt,st)),J.enableVertexAttribArray(Vt)}}}catch(Er){u={error:Er}}finally{try{ft&&!ft.done&&(n=He.return)&&n.call(He)}finally{if(u)throw u.error}}}}catch(Er){i={error:Er}}finally{try{ne&&!ne.done&&(s=te.return)&&s.call(te)}finally{if(i)throw i.error}}return Mr(J)?J.bindVertexArray(null):m.OES_vertex_array_object.bindVertexArrayOES(null),b.vertexBufferDescriptors=F,b.vao=Q,b.indexBufferFormat=R,b.indexBufferType=U,b.indexBufferCompByteSize=V,b.program=I,b}return t.prototype.destroy=function(){e.prototype.destroy.call(this),this.device.currentBoundVAO===this.vao&&(Mr(this.device.gl)?(this.device.gl.bindVertexArray(null),this.device.gl.deleteVertexArray(this.vao)):(this.device.OES_vertex_array_object.bindVertexArrayOES(null),this.device.OES_vertex_array_object.deleteVertexArrayOES(this.vao)),this.device.currentBoundVAO=null)},t}(Xu),e6=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=r.fake,y=e.call(this,{id:i,device:s})||this;y.type=Ko.Texture,u=Dn({dimension:Uo.TEXTURE_2D,depthOrArrayLayers:1,mipLevelCount:1},u);var m=y.device.gl,g,x,b=y.clampmipLevelCount(u);if(y.immutable=u.usage===as.RENDER_TARGET,y.pixelStore=u.pixelStore,y.format=u.format,y.dimension=u.dimension,y.formatKind=A7(u.format),y.width=u.width,y.height=u.height,y.depthOrArrayLayers=u.depthOrArrayLayers,y.mipmaps=b>=1,!n){x=y.device.ensureResourceExists(m.createTexture());var F=y.device.translateTextureType(u.format),R=y.device.translateTextureInternalFormat(u.format);if(y.device.setActiveTexture(m.TEXTURE0),y.device.currentTextures[0]=null,y.preprocessImage(),u.dimension===Uo.TEXTURE_2D){if(g=ve.TEXTURE_2D,m.bindTexture(g,x),y.immutable)if(Mr(m))m.texStorage2D(g,b,R,u.width,u.height);else{var I=(R===ve.DEPTH_COMPONENT||y.isNPOT(),0);(y.format===ke.D32F||y.format===ke.D24_S8)&&!Mr(m)&&!s.WEBGL_depth_texture||(m.texImage2D(g,I,R,u.width,u.height,0,R,F,null),y.mipmaps&&(y.mipmaps=!1,m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_MIN_FILTER,ve.LINEAR),m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_S,ve.CLAMP_TO_EDGE),m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_T,ve.CLAMP_TO_EDGE)))}mo(u.depthOrArrayLayers===1)}else if(u.dimension===Uo.TEXTURE_2D_ARRAY)g=ve.TEXTURE_2D_ARRAY,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage3D(g,b,R,u.width,u.height,u.depthOrArrayLayers);else if(u.dimension===Uo.TEXTURE_3D)g=ve.TEXTURE_3D,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage3D(g,b,R,u.width,u.height,u.depthOrArrayLayers);else if(u.dimension===Uo.TEXTURE_CUBE_MAP)g=ve.TEXTURE_CUBE_MAP,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage2D(g,b,R,u.width,u.height),mo(u.depthOrArrayLayers===6);else throw new Error("whoops")}return y.gl_texture=x,y.gl_target=g,y.mipLevelCount=b,y}return t.prototype.setImageData=function(r,i){i===void 0&&(i=0);var s=this.device.gl;M7(this.format);var u=this.gl_target===ve.TEXTURE_3D||this.gl_target===ve.TEXTURE_2D_ARRAY,n=this.gl_target===ve.TEXTURE_CUBE_MAP,y=ZO(r[0]);this.device.setActiveTexture(s.TEXTURE0),this.device.currentTextures[0]=null;var m=r[0],g,x;y?(g=this.width,x=this.height):(g=m.width,x=m.height,this.width=g,this.height=x),s.bindTexture(this.gl_target,this.gl_texture);var b=this.device.translateTextureFormat(this.format),F=Mr(s)?this.device.translateInternalTextureFormat(this.format):b,R=this.device.translateTextureType(this.format);this.preprocessImage();for(var I=0;I<this.depthOrArrayLayers;I++){var U=r[I],V=this.gl_target;n&&(V=ve.TEXTURE_CUBE_MAP_POSITIVE_X+I%6),this.immutable?s.texSubImage2D(V,i,0,0,g,x,b,R,U):Mr(s)?u?s.texImage3D(V,i,F,g,x,this.depthOrArrayLayers,0,b,R,U):s.texImage2D(V,i,F,g,x,0,b,R,U):y?s.texImage2D(V,i,b,g,x,0,b,R,U):s.texImage2D(V,i,b,b,R,U)}this.mipmaps&&this.generateMipmap(u)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.device.gl.deleteTexture(E0(this))},t.prototype.clampmipLevelCount=function(r){if(r.dimension===Uo.TEXTURE_2D_ARRAY&&r.depthOrArrayLayers>1){var i=qp(r.format);if(i===bt.BC1)for(var s=r.width,u=r.height,n=0;n<r.mipLevelCount;n++){if(s<=2||u<=2)return n-1;s=Math.max(s/2|0,1),u=Math.max(u/2|0,1)}}return r.mipLevelCount},t.prototype.preprocessImage=function(){var r=this.device.gl;this.pixelStore&&(this.pixelStore.unpackFlipY&&r.pixelStorei(ve.UNPACK_FLIP_Y_WEBGL,!0),this.pixelStore.packAlignment&&r.pixelStorei(ve.PACK_ALIGNMENT,this.pixelStore.packAlignment),this.pixelStore.unpackAlignment&&r.pixelStorei(ve.UNPACK_ALIGNMENT,this.pixelStore.unpackAlignment))},t.prototype.generateMipmap=function(r){r===void 0&&(r=!1);var i=this.device.gl;return!Mr(i)&&this.isNPOT()?this:(this.gl_texture&&this.gl_target&&(i.bindTexture(this.gl_target,this.gl_texture),r?(i.texParameteri(this.gl_target,ve.TEXTURE_BASE_LEVEL,0),i.texParameteri(this.gl_target,ve.TEXTURE_MAX_LEVEL,Math.log2(this.width)),i.texParameteri(this.gl_target,ve.TEXTURE_MIN_FILTER,ve.LINEAR_MIPMAP_LINEAR),i.texParameteri(this.gl_target,ve.TEXTURE_MAG_FILTER,ve.LINEAR)):i.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_MIN_FILTER,ve.NEAREST_MIPMAP_LINEAR),i.generateMipmap(this.gl_target),i.bindTexture(this.gl_target,null)),this)},t.prototype.isNPOT=function(){var r=this.device.gl;return Mr(r)?!1:!Mf(this.width)||!Mf(this.height)},t}(Xu),sL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.RenderTarget,n.gl_renderbuffer=null,n.texture=null;var y=n.device.gl,m=u.format,g=u.width,x=u.height,b=u.sampleCount,F=b===void 0?1:b,R=u.texture,I=!1;if((m===ke.D32F||m===ke.D24_S8)&&R&&!Mr(y)&&!s.WEBGL_depth_texture&&(R.destroy(),n.texture=null,I=!0),!I&&R)n.texture=R;else{n.gl_renderbuffer=n.device.ensureResourceExists(y.createRenderbuffer()),y.bindRenderbuffer(y.RENDERBUFFER,n.gl_renderbuffer);var U=n.device.translateTextureInternalFormat(m,!0);Mr(y)&&F>1?y.renderbufferStorageMultisample(ve.RENDERBUFFER,F,U,g,x):y.renderbufferStorage(ve.RENDERBUFFER,U,g,x)}return n.format=m,n.width=g,n.height=x,n.sampleCount=F,n}return t.prototype.destroy=function(){e.prototype.destroy.call(this),this.gl_renderbuffer!==null&&this.device.gl.deleteRenderbuffer(this.gl_renderbuffer),this.texture&&this.texture.destroy()},t}(Xu),ks;(function(e){e[e.NeedsCompile=0]="NeedsCompile",e[e.Compiling=1]="Compiling",e[e.NeedsBind=2]="NeedsBind",e[e.ReadyToUse=3]="ReadyToUse"})(ks||(ks={}));var uL=function(e){pn(t,e);function t(r,i){var s=r.id,u=r.device,n=r.descriptor,y=e.call(this,{id:s,device:u})||this;y.rawVertexGLSL=i,y.type=Ko.Program,y.uniformSetters={},y.attributes=[];var m=y.device.gl;return y.descriptor=n,y.gl_program=y.device.ensureResourceExists(m.createProgram()),y.gl_shader_vert=null,y.gl_shader_frag=null,y.compileState=ks.NeedsCompile,y.tryCompileProgram(),y}return t.prototype.destroy=function(){e.prototype.destroy.call(this),this.device.gl.deleteProgram(this.gl_program),this.device.gl.deleteShader(this.gl_shader_vert),this.device.gl.deleteShader(this.gl_shader_frag)},t.prototype.tryCompileProgram=function(){mo(this.compileState===ks.NeedsCompile);var r=this.descriptor,i=r.vertex,s=r.fragment,u=this.device.gl;i!=null&&i.glsl&&(s!=null&&s.glsl)&&(this.gl_shader_vert=this.compileShader(i.postprocess?i.postprocess(i.glsl):i.glsl,u.VERTEX_SHADER),this.gl_shader_frag=this.compileShader(s.postprocess?s.postprocess(s.glsl):s.glsl,u.FRAGMENT_SHADER),u.attachShader(this.gl_program,this.gl_shader_vert),u.attachShader(this.gl_program,this.gl_shader_frag),u.linkProgram(this.gl_program),this.compileState=ks.Compiling,Mr(u)||(this.readUniformLocationsFromLinkedProgram(),this.readAttributesFromLinkedProgram()))},t.prototype.readAttributesFromLinkedProgram=function(){for(var r,i=this.device.gl,s=i.getProgramParameter(this.gl_program,i.ACTIVE_ATTRIBUTES),u=YO(this.descriptor.vertex.glsl),n=$O(this.rawVertexGLSL,u),y=function(x){var b=i.getActiveAttrib(m.gl_program,x),F=b.name,R=b.type,I=b.size,U=i.getAttribLocation(m.gl_program,F),V=(r=n.find(function(J){return J.name===F}))===null||r===void 0?void 0:r.location;U>=0&&!Wu(V)&&(m.attributes[V]={name:F,location:U,type:R,size:I})},m=this,g=0;g<s;g++)y(g)},t.prototype.readUniformLocationsFromLinkedProgram=function(){for(var r=this.device.gl,i=r.getProgramParameter(this.gl_program,r.ACTIVE_UNIFORMS),s=0;s<i;s++){var u=r.getActiveUniform(this.gl_program,s),n=VO(u.name).name,y=r.getUniformLocation(this.gl_program,n);if(this.uniformSetters[n]=cg(r,y,u),u&&u.size>1)for(var m=0;m<u.size;m++)y=r.getUniformLocation(this.gl_program,"".concat(n,"[").concat(m,"]")),this.uniformSetters["".concat(n,"[").concat(m,"]")]=cg(r,y,u)}},t.prototype.compileShader=function(r,i){var s=this.device.gl,u=this.device.ensureResourceExists(s.createShader(i));return s.shaderSource(u,r),s.compileShader(u),u},t.prototype.setUniformsLegacy=function(r){r===void 0&&(r={});var i=this.device.gl;if(!Mr(i)){var s=!1;for(var u in r){s||(i.useProgram(this.gl_program),s=!0);var n=r[u],y=this.uniformSetters[u];if(y){var m=n;m instanceof e6&&(m=m.textureIndex),y(m)}}}return this},t}(Xu),pL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.QueryPool;var y=n.device.gl;if(Mr(y)){var m=u.elemCount,g=u.type;n.gl_query=gO(m,function(){return n.device.ensureResourceExists(y.createQuery())}),n.gl_query_type=oL(g)}return n}return t.prototype.queryResultOcclusion=function(r){var i=this.device.gl;if(Mr(i)){var s=this.gl_query[r];return i.getQueryParameter(s,i.QUERY_RESULT_AVAILABLE)?!!i.getQueryParameter(s,i.QUERY_RESULT):null}return null},t.prototype.destroy=function(){e.prototype.destroy.call(this);var r=this.device.gl;if(Mr(r))for(var i=0;i<this.gl_query.length;i++)r.deleteQuery(this.gl_query[i])},t}(Xu),lL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this,{id:i,device:s})||this;return u.type=Ko.Readback,u.gl_pbo=null,u.gl_sync=null,u}return t.prototype.clientWaitAsync=function(r,i,s){i===void 0&&(i=0),s===void 0&&(s=10);var u=this.device.gl;return new Promise(function(n,y){function m(){var g=u.clientWaitSync(r,i,0);if(g==u.WAIT_FAILED){y();return}if(g==u.TIMEOUT_EXPIRED){setTimeout(m,yO(s,0,u.MAX_CLIENT_WAIT_TIMEOUT_WEBGL));return}n()}m()})},t.prototype.getBufferSubDataAsync=function(r,i,s,u,n,y){return F0(this,void 0,void 0,function(){var m;return T0(this,function(g){switch(g.label){case 0:return m=this.device.gl,Mr(m)?(this.gl_sync=m.fenceSync(m.SYNC_GPU_COMMANDS_COMPLETE,0),m.flush(),[4,this.clientWaitAsync(this.gl_sync,0,10)]):[3,2];case 1:return g.sent(),m.bindBuffer(r,i),m.getBufferSubData(r,s,u,n,y),m.bindBuffer(r,null),[2,u];case 2:return[2]}})})},t.prototype.readTexture=function(r,i,s,u,n,y,m,g){return m===void 0&&(m=0),g===void 0&&(g=y.byteLength||0),F0(this,void 0,void 0,function(){var x,b,F,R,I;return T0(this,function(U){return x=this.device.gl,b=r,F=this.device.translateTextureFormat(b.format),R=this.device.translateTextureType(b.format),I=fO(b.format),Mr(x)?(this.gl_pbo=this.device.ensureResourceExists(x.createBuffer()),x.bindBuffer(x.PIXEL_PACK_BUFFER,this.gl_pbo),x.bufferData(x.PIXEL_PACK_BUFFER,g,x.STREAM_READ),x.bindBuffer(x.PIXEL_PACK_BUFFER,null),x.bindFramebuffer(ve.READ_FRAMEBUFFER,this.device.readbackFramebuffer),x.framebufferTexture2D(ve.READ_FRAMEBUFFER,ve.COLOR_ATTACHMENT0,ve.TEXTURE_2D,b.gl_texture,0),x.bindBuffer(x.PIXEL_PACK_BUFFER,this.gl_pbo),x.readPixels(i,s,u,n,F,R,m*I),x.bindBuffer(x.PIXEL_PACK_BUFFER,null),[2,this.getBufferSubDataAsync(x.PIXEL_PACK_BUFFER,this.gl_pbo,0,y,m,0)]):[2,this.readTextureSync(r,i,s,u,n,y,m,g)]})})},t.prototype.readTextureSync=function(r,i,s,u,n,y,m,g){g===void 0&&(g=y.byteLength||0);var x=this.device.gl,b=r,F=this.device.translateTextureType(b.format);return x.bindFramebuffer(ve.FRAMEBUFFER,this.device.readbackFramebuffer),x.framebufferTexture2D(ve.FRAMEBUFFER,ve.COLOR_ATTACHMENT0,ve.TEXTURE_2D,b.gl_texture,0),x.pixelStorei(x.PACK_ALIGNMENT,4),x.readPixels(i,s,u,n,x.RGBA,F,y),y},t.prototype.readBuffer=function(r,i,s,u,n){return F0(this,void 0,void 0,function(){var y;return T0(this,function(m){return y=this.device.gl,Mr(y)?[2,this.getBufferSubDataAsync(y.ARRAY_BUFFER,N0(r,i),i,s,u,n)]:[2,Promise.reject()]})})},t.prototype.destroy=function(){e.prototype.destroy.call(this),Mr(this.device.gl)&&(this.gl_sync!==null&&this.device.gl.deleteSync(this.gl_sync),this.gl_pbo!==null&&this.device.gl.deleteBuffer(this.gl_pbo))},t}(Xu),cL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;return m.type=Ko.RenderPipeline,m.drawMode=QO((n=u.topology)!==null&&n!==void 0?n:Gn.TRIANGLES),m.program=u.program,m.inputLayout=u.inputLayout,m.megaState=Dn(Dn({},G0(j0)),u.megaStateDescriptor),m.colorAttachmentFormats=u.colorAttachmentFormats.slice(),m.depthStencilAttachmentFormat=u.depthStencilAttachmentFormat,m.sampleCount=(y=u.sampleCount)!==null&&y!==void 0?y:1,m}return t}(Xu),dL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;return n.type=Ko.ComputePipeline,n.descriptor=u,n}return t}(Xu),yL=function(){function e(){this.liveObjects=new Set,this.creationStacks=new Map,this.deletionStacks=new Map}return e.prototype.trackResourceCreated=function(t){this.creationStacks.set(t,new Error().stack),this.liveObjects.add(t)},e.prototype.trackResourceDestroyed=function(t){this.deletionStacks.has(t)&&console.warn("Object double freed:",t,`
- Creation stack: `,this.creationStacks.get(t),`
- Deletion stack: `,this.deletionStacks.get(t),`
- This stack: `,new Error().stack),this.deletionStacks.set(t,new Error().stack),this.liveObjects.delete(t)},e.prototype.checkForLeaks=function(){var t,r;try{for(var i=y1(this.liveObjects.values()),s=i.next();!s.done;s=i.next()){var u=s.value;console.warn("Object leaked:",u,"Creation stack:",this.creationStacks.get(u))}}catch(n){t={error:n}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}},e.prototype.setResourceLeakCheck=function(t,r){r?this.liveObjects.add(t):this.liveObjects.delete(t)},e}(),hL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Sampler;var g=m.device.gl;if(Mr(g)){var x=m.device.ensureResourceExists(g.createSampler());g.samplerParameteri(x,ve.TEXTURE_WRAP_S,Wd(u.addressModeU)),g.samplerParameteri(x,ve.TEXTURE_WRAP_T,Wd(u.addressModeV)),g.samplerParameteri(x,ve.TEXTURE_WRAP_R,Wd((n=u.addressModeW)!==null&&n!==void 0?n:u.addressModeU)),g.samplerParameteri(x,ve.TEXTURE_MIN_FILTER,Uh(u.minFilter,u.mipmapFilter)),g.samplerParameteri(x,ve.TEXTURE_MAG_FILTER,Uh(u.magFilter,sa.NO_MIP)),u.lodMinClamp!==void 0&&g.samplerParameterf(x,ve.TEXTURE_MIN_LOD,u.lodMinClamp),u.lodMaxClamp!==void 0&&g.samplerParameterf(x,ve.TEXTURE_MAX_LOD,u.lodMaxClamp),u.compareFunction!==void 0&&(g.samplerParameteri(x,g.TEXTURE_COMPARE_MODE,g.COMPARE_REF_TO_TEXTURE),g.samplerParameteri(x,g.TEXTURE_COMPARE_FUNC,u.compareFunction));var b=(y=u.maxAnisotropy)!==null&&y!==void 0?y:1;b>1&&m.device.EXT_texture_filter_anisotropic!==null&&(mo(u.minFilter===xn.BILINEAR&&u.magFilter===xn.BILINEAR&&u.mipmapFilter===sa.LINEAR),g.samplerParameterf(x,m.device.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,b)),m.gl_sampler=x}else m.descriptor=u;return m}return t.prototype.setTextureParameters=function(r,i,s){var u,n=this.device.gl,y=this.descriptor;this.isNPOT(i,s)?n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_MIN_FILTER,ve.LINEAR):n.texParameteri(r,ve.TEXTURE_MIN_FILTER,Uh(y.minFilter,y.mipmapFilter)),n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_S,Wd(y.addressModeU)),n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_T,Wd(y.addressModeV)),n.texParameteri(r,ve.TEXTURE_MAG_FILTER,Uh(y.magFilter,sa.NO_MIP));var m=(u=y.maxAnisotropy)!==null&&u!==void 0?u:1;m>1&&this.device.EXT_texture_filter_anisotropic!==null&&(mo(y.minFilter===xn.BILINEAR&&y.magFilter===xn.BILINEAR&&y.mipmapFilter===sa.LINEAR),n.texParameteri(r,this.device.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,m))},t.prototype.destroy=function(){e.prototype.destroy.call(this),Mr(this.device.gl)&&this.device.gl.deleteSampler(J2(this))},t.prototype.isNPOT=function(r,i){return!Mf(r)||!Mf(i)},t}(Xu),fL=function(){function e(){}return e.prototype.dispatchWorkgroups=function(t,r,i){},e.prototype.dispatchWorkgroupsIndirect=function(t,r){},e.prototype.setPipeline=function(t){},e.prototype.setBindings=function(t){},e.prototype.pushDebugGroup=function(t){},e.prototype.popDebugGroup=function(){},e.prototype.insertDebugMarker=function(t){},e}(),mL=function(e){pn(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Ko.RenderBundle,r.commands=[],r}return t.prototype.push=function(r){this.commands.push(r)},t.prototype.replay=function(){this.commands.forEach(function(r){return r()})},t}(Xu),mg=65536,_L=/uniform(?:\s+)(\w+)(?:\s?){([^]*?)}/g,gL=function(){function e(t,r){r===void 0&&(r={}),this.shaderDebug=!1,this.OES_vertex_array_object=null,this.ANGLE_instanced_arrays=null,this.OES_texture_float=null,this.OES_draw_buffers_indexed=null,this.WEBGL_draw_buffers=null,this.WEBGL_depth_texture=null,this.WEBGL_color_buffer_float=null,this.EXT_color_buffer_half_float=null,this.WEBGL_compressed_texture_s3tc=null,this.WEBGL_compressed_texture_s3tc_srgb=null,this.EXT_texture_compression_rgtc=null,this.EXT_texture_filter_anisotropic=null,this.KHR_parallel_shader_compile=null,this.EXT_texture_norm16=null,this.EXT_color_buffer_float=null,this.OES_texture_float_linear=null,this.OES_texture_half_float_linear=null,this.scTexture=null,this.scPlatformFramebuffer=null,this.currentActiveTexture=null,this.currentBoundVAO=null,this.currentProgram=null,this.resourceCreationTracker=null,this.resourceUniqueId=0,this.currentColorAttachments=[],this.currentColorAttachmentLevels=[],this.currentColorResolveTos=[],this.currentColorResolveToLevels=[],this.currentSampleCount=-1,this.currentIndexBufferByteOffset=null,this.currentMegaState=G0(j0),this.currentSamplers=[],this.currentTextures=[],this.currentUniformBuffers=[],this.currentUniformBufferByteOffsets=[],this.currentUniformBufferByteSizes=[],this.currentScissorEnabled=!1,this.currentStencilRef=null,this.currentRenderPassDescriptor=null,this.currentRenderPassDescriptorStack=[],this.debugGroupStack=[],this.resolveColorAttachmentsChanged=!1,this.resolveDepthStencilAttachmentsChanged=!1,this.explicitBindingLocations=!1,this.separateSamplerTextures=!1,this.viewportOrigin=fp.LOWER_LEFT,this.clipSpaceNearZ=V0.NEGATIVE_ONE,this.supportMRT=!1,this.inBlitRenderPass=!1,this.supportedSampleCounts=[],this.occlusionQueriesRecommended=!1,this.computeShadersSupported=!1,this.gl=t,this.contextAttributes=l1(t.getContextAttributes()),Mr(t)?(this.EXT_texture_norm16=t.getExtension("EXT_texture_norm16"),this.EXT_color_buffer_float=t.getExtension("EXT_color_buffer_float")):(this.OES_vertex_array_object=t.getExtension("OES_vertex_array_object"),this.ANGLE_instanced_arrays=t.getExtension("ANGLE_instanced_arrays"),this.OES_texture_float=t.getExtension("OES_texture_float"),this.WEBGL_draw_buffers=t.getExtension("WEBGL_draw_buffers"),this.WEBGL_depth_texture=t.getExtension("WEBGL_depth_texture"),this.WEBGL_color_buffer_float=t.getExtension("WEBGL_color_buffer_float"),this.EXT_color_buffer_half_float=t.getExtension("EXT_color_buffer_half_float"),t.getExtension("EXT_frag_depth"),t.getExtension("OES_element_index_uint"),t.getExtension("OES_standard_derivatives")),this.WEBGL_compressed_texture_s3tc=t.getExtension("WEBGL_compressed_texture_s3tc"),this.WEBGL_compressed_texture_s3tc_srgb=t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),this.EXT_texture_compression_rgtc=t.getExtension("EXT_texture_compression_rgtc"),this.EXT_texture_filter_anisotropic=t.getExtension("EXT_texture_filter_anisotropic"),this.EXT_texture_norm16=t.getExtension("EXT_texture_norm16"),this.OES_texture_float_linear=t.getExtension("OES_texture_float_linear"),this.OES_texture_half_float_linear=t.getExtension("OES_texture_half_float_linear"),this.KHR_parallel_shader_compile=t.getExtension("KHR_parallel_shader_compile"),Mr(t)?(this.platformString="WebGL2",this.glslVersion="#version 300 es"):(this.platformString="WebGL1",this.glslVersion="#version 100"),this.scTexture=new e6({id:this.getNextUniqueId(),device:this,descriptor:{width:0,height:0,depthOrArrayLayers:1,dimension:Uo.TEXTURE_2D,mipLevelCount:1,usage:as.RENDER_TARGET,format:this.contextAttributes.alpha===!1?ke.U8_RGB_RT:ke.U8_RGBA_RT},fake:!0}),this.scTexture.formatKind=sn.Float,this.scTexture.gl_target=null,this.scTexture.gl_texture=null,this.resolveColorReadFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveColorDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveDepthStencilReadFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveDepthStencilDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.renderPassDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.readbackFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.fallbackTexture2D=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Float),this.fallbackTexture2DDepth=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Depth),this.fallbackVertexBuffer=this.createBuffer({viewOrSize:1,usage:xi.VERTEX,hint:mp.STATIC}),Mr(t)&&(this.fallbackTexture2DArray=this.createFallbackTexture(Uo.TEXTURE_2D_ARRAY,sn.Float),this.fallbackTexture3D=this.createFallbackTexture(Uo.TEXTURE_3D,sn.Float),this.fallbackTextureCube=this.createFallbackTexture(Uo.TEXTURE_CUBE_MAP,sn.Float)),this.currentMegaState.depthCompare=ai.LESS,this.currentMegaState.depthWrite=!1,this.currentMegaState.attachmentsState[0].channelWriteMask=ga.ALL,t.enable(t.DEPTH_TEST),t.enable(t.STENCIL_TEST),this.checkLimits(),r.shaderDebug&&(this.shaderDebug=!0),r.trackResources&&(this.resourceCreationTracker=new yL)}return e.prototype.destroy=function(){this.blitBindings&&this.blitBindings.destroy(),this.blitInputLayout&&this.blitInputLayout.destroy(),this.blitRenderPipeline&&this.blitRenderPipeline.destroy(),this.blitVertexBuffer&&this.blitVertexBuffer.destroy(),this.blitProgram&&this.blitProgram.destroy()},e.prototype.createFallbackTexture=function(t,r){var i=t===Uo.TEXTURE_CUBE_MAP?6:1,s=r===sn.Depth?ke.D32F:ke.U8_RGBA_NORM,u=this.createTexture({dimension:t,format:s,usage:as.SAMPLED,width:1,height:1,depthOrArrayLayers:i,mipLevelCount:1});return r===sn.Float&&u.setImageData([new Uint8Array(4*i)]),E0(u)},e.prototype.getNextUniqueId=function(){return++this.resourceUniqueId},e.prototype.checkLimits=function(){var t=this.gl;if(this.maxVertexAttribs=t.getParameter(ve.MAX_VERTEX_ATTRIBS),Mr(t)){this.uniformBufferMaxPageByteSize=Math.min(t.getParameter(ve.MAX_UNIFORM_BLOCK_SIZE),mg),this.uniformBufferWordAlignment=t.getParameter(t.UNIFORM_BUFFER_OFFSET_ALIGNMENT)/4;var r=t.getInternalformatParameter(t.RENDERBUFFER,t.DEPTH32F_STENCIL8,t.SAMPLES);this.supportedSampleCounts=r?Ad([],cp(r),!1):[],this.occlusionQueriesRecommended=!0}else this.uniformBufferWordAlignment=64,this.uniformBufferMaxPageByteSize=mg;this.uniformBufferMaxPageWordSize=this.uniformBufferMaxPageByteSize/4,this.supportedSampleCounts.includes(1)||this.supportedSampleCounts.push(1),this.supportedSampleCounts.sort(function(i,s){return i-s})},e.prototype.configureSwapChain=function(t,r,i){var s=this.scTexture;s.width=t,s.height=r,this.scPlatformFramebuffer=_O(i)},e.prototype.getDevice=function(){return this},e.prototype.getCanvas=function(){return this.gl.canvas},e.prototype.getOnscreenTexture=function(){return this.scTexture},e.prototype.beginFrame=function(){},e.prototype.endFrame=function(){},e.prototype.translateTextureInternalFormat=function(t,r){switch(r===void 0&&(r=!1),t){case ke.ALPHA:return ve.ALPHA;case ke.U8_LUMINANCE:case ke.F16_LUMINANCE:case ke.F32_LUMINANCE:return ve.LUMINANCE;case ke.F16_R:return ve.R16F;case ke.F16_RG:return ve.RG16F;case ke.F16_RGB:return ve.RGB16F;case ke.F16_RGBA:return ve.RGBA16F;case ke.F32_R:return ve.R32F;case ke.F32_RG:return ve.RG32F;case ke.F32_RGB:return ve.RGB32F;case ke.F32_RGBA:return Mr(this.gl)?ve.RGBA32F:r?this.WEBGL_color_buffer_float.RGBA32F_EXT:ve.RGBA;case ke.U8_R_NORM:return ve.R8;case ke.U8_RG_NORM:return ve.RG8;case ke.U8_RGB_NORM:case ke.U8_RGB_RT:return ve.RGB8;case ke.U8_RGB_SRGB:return ve.SRGB8;case ke.U8_RGBA_NORM:case ke.U8_RGBA_RT:return Mr(this.gl)?ve.RGBA8:r?ve.RGBA4:ve.RGBA;case ke.U8_RGBA:return ve.RGBA;case ke.U8_RGBA_SRGB:case ke.U8_RGBA_RT_SRGB:return ve.SRGB8_ALPHA8;case ke.U16_R:return ve.R16UI;case ke.U16_R_NORM:return this.EXT_texture_norm16.R16_EXT;case ke.U16_RG_NORM:return this.EXT_texture_norm16.RG16_EXT;case ke.U16_RGBA_NORM:return this.EXT_texture_norm16.RGBA16_EXT;case ke.U16_RGBA_5551:return ve.RGB5_A1;case ke.U16_RGB_565:return ve.RGB565;case ke.U32_R:return ve.R32UI;case ke.S8_RGBA_NORM:return ve.RGBA8_SNORM;case ke.S8_RG_NORM:return ve.RG8_SNORM;case ke.BC1:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT;case ke.BC1_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;case ke.BC2:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT;case ke.BC2_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;case ke.BC3:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT;case ke.BC3_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;case ke.BC4_UNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_RED_RGTC1_EXT;case ke.BC4_SNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT;case ke.BC5_UNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT;case ke.BC5_SNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;case ke.D32F_S8:return Mr(this.gl)?ve.DEPTH32F_STENCIL8:this.WEBGL_depth_texture?ve.DEPTH_STENCIL:ve.DEPTH_COMPONENT16;case ke.D24_S8:return Mr(this.gl)?ve.DEPTH24_STENCIL8:this.WEBGL_depth_texture?ve.DEPTH_STENCIL:ve.DEPTH_COMPONENT16;case ke.D32F:return Mr(this.gl)?ve.DEPTH_COMPONENT32F:this.WEBGL_depth_texture?ve.DEPTH_COMPONENT:ve.DEPTH_COMPONENT16;case ke.D24:return Mr(this.gl)?ve.DEPTH_COMPONENT24:this.WEBGL_depth_texture?ve.DEPTH_COMPONENT:ve.DEPTH_COMPONENT16;default:throw new Error("whoops")}},e.prototype.translateTextureType=function(t){var r=qp(t);switch(r){case bt.U8:return ve.UNSIGNED_BYTE;case bt.U16:return ve.UNSIGNED_SHORT;case bt.U32:return ve.UNSIGNED_INT;case bt.S8:return ve.BYTE;case bt.F16:return ve.HALF_FLOAT;case bt.F32:return ve.FLOAT;case bt.U16_PACKED_5551:return ve.UNSIGNED_SHORT_5_5_5_1;case bt.D32F:return Mr(this.gl)?ve.FLOAT:this.WEBGL_depth_texture?ve.UNSIGNED_INT:ve.UNSIGNED_BYTE;case bt.D24:return Mr(this.gl)?ve.UNSIGNED_INT_24_8:this.WEBGL_depth_texture?ve.UNSIGNED_SHORT:ve.UNSIGNED_BYTE;case bt.D24S8:return Mr(this.gl)?ve.UNSIGNED_INT_24_8:this.WEBGL_depth_texture?ve.UNSIGNED_INT_24_8_WEBGL:ve.UNSIGNED_BYTE;case bt.D32FS8:return ve.FLOAT_32_UNSIGNED_INT_24_8_REV;default:throw new Error("whoops")}},e.prototype.translateInternalTextureFormat=function(t){switch(t){case ke.F32_R:return ve.R32F;case ke.F32_RG:return ve.RG32F;case ke.F32_RGB:return ve.RGB32F;case ke.F32_RGBA:return ve.RGBA32F;case ke.F16_R:return ve.R16F;case ke.F16_RG:return ve.RG16F;case ke.F16_RGB:return ve.RGB16F;case ke.F16_RGBA:return ve.RGBA16F}return this.translateTextureFormat(t)},e.prototype.translateTextureFormat=function(t){if(M7(t)||t===ke.F32_LUMINANCE||t===ke.U8_LUMINANCE)return this.translateTextureInternalFormat(t);var r=Mr(this.gl)||!Mr(this.gl)&&!!this.WEBGL_depth_texture;switch(t){case ke.D24_S8:case ke.D32F_S8:return r?ve.DEPTH_STENCIL:ve.RGBA;case ke.D24:case ke.D32F:return r?ve.DEPTH_COMPONENT:ve.RGBA}var i=N7(t),s=H6(t);switch(s){case Ar.A:return ve.ALPHA;case Ar.R:return i?ve.RED_INTEGER:ve.RED;case Ar.RG:return i?ve.RG_INTEGER:ve.RG;case Ar.RGB:return i?ve.RGB_INTEGER:ve.RGB;case Ar.RGBA:return ve.RGBA}},e.prototype.setActiveTexture=function(t){this.currentActiveTexture!==t&&(this.gl.activeTexture(t),this.currentActiveTexture=t)},e.prototype.bindVAO=function(t){this.currentBoundVAO!==t&&(Mr(this.gl)?this.gl.bindVertexArray(t):this.OES_vertex_array_object.bindVertexArrayOES(t),this.currentBoundVAO=t)},e.prototype.programCompiled=function(t){mo(t.compileState!==ks.NeedsCompile),t.compileState===ks.Compiling&&(t.compileState=ks.NeedsBind,this.shaderDebug&&this.checkProgramCompilationForErrors(t))},e.prototype.useProgram=function(t){this.currentProgram!==t&&(this.programCompiled(t),this.gl.useProgram(t.gl_program),this.currentProgram=t)},e.prototype.ensureResourceExists=function(t){if(t===null){var r=this.gl.getError();throw new Error("Created resource is null; GL error encountered: ".concat(r))}else return t},e.prototype.createBuffer=function(t){return new nL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createTexture=function(t){return new e6({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createSampler=function(t){return new hL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderTarget=function(t){return new sL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderTargetFromTexture=function(t){var r=t,i=r.format,s=r.width,u=r.height,n=r.mipLevelCount;return mo(n===1),this.createRenderTarget({format:i,width:s,height:u,sampleCount:1,texture:t})},e.prototype.createProgram=function(t){var r,i,s,u=(r=t.vertex)===null||r===void 0?void 0:r.glsl;return!((i=t.vertex)===null||i===void 0)&&i.glsl&&(t.vertex.glsl=W0(this.queryVendorInfo(),"vert",t.vertex.glsl)),!((s=t.fragment)===null||s===void 0)&&s.glsl&&(t.fragment.glsl=W0(this.queryVendorInfo(),"frag",t.fragment.glsl)),this.createProgramSimple(t,u)},e.prototype.createProgramSimple=function(t,r){var i=new uL({id:this.getNextUniqueId(),device:this,descriptor:t},r);return i},e.prototype.createBindings=function(t){return new qO({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createInputLayout=function(t){return new aL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderPipeline=function(t){return new cL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createComputePass=function(){return new fL},e.prototype.createComputePipeline=function(t){return new dL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createReadback=function(){return new lL({id:this.getNextUniqueId(),device:this})},e.prototype.createQueryPool=function(t,r){return new pL({id:this.getNextUniqueId(),device:this,descriptor:{type:t,elemCount:r}})},e.prototype.formatRenderPassDescriptor=function(t){var r,i,s,u,n,y,m=t.colorAttachment;t.depthClearValue=(r=t.depthClearValue)!==null&&r!==void 0?r:"load",t.stencilClearValue=(i=t.stencilClearValue)!==null&&i!==void 0?i:"load";for(var g=0;g<m.length;g++)t.colorAttachmentLevel||(t.colorAttachmentLevel=[]),t.colorAttachmentLevel[g]=(s=t.colorAttachmentLevel[g])!==null&&s!==void 0?s:0,t.colorResolveToLevel||(t.colorResolveToLevel=[]),t.colorResolveToLevel[g]=(u=t.colorResolveToLevel[g])!==null&&u!==void 0?u:0,t.colorClearColor||(t.colorClearColor=[]),t.colorClearColor[g]=(n=t.colorClearColor[g])!==null&&n!==void 0?n:"load",t.colorStore||(t.colorStore=[]),t.colorStore[g]=(y=t.colorStore[g])!==null&&y!==void 0?y:!1},e.prototype.createRenderBundle=function(){return new mL({id:this.getNextUniqueId(),device:this})},e.prototype.beginBundle=function(t){this.renderBundle=t},e.prototype.endBundle=function(){this.renderBundle=void 0},e.prototype.executeBundles=function(t){t.forEach(function(r){r.replay()})},e.prototype.createRenderPass=function(t){this.currentRenderPassDescriptor!==null&&this.currentRenderPassDescriptorStack.push(this.currentRenderPassDescriptor),this.currentRenderPassDescriptor=t,this.formatRenderPassDescriptor(t);var r=t.colorAttachment,i=t.colorAttachmentLevel,s=t.colorClearColor,u=t.colorResolveTo,n=t.colorResolveToLevel,y=t.depthStencilAttachment,m=t.depthClearValue,g=t.stencilClearValue,x=t.depthStencilResolveTo,b=u&&u.length===1&&u[0]===this.scTexture;this.setRenderPassParametersBegin(r.length,b);for(var F=0;F<r.length;F++)this.setRenderPassParametersColor(F,r[F],i[F],u[F],n[F],b);this.setRenderPassParametersDepthStencil(y,x,b),this.validateCurrentAttachments();for(var F=0;F<r.length;F++){var R=s[F];R!=="load"&&this.setRenderPassParametersClearColor(F,R.r,R.g,R.b,R.a)}return this.setRenderPassParametersClearDepthStencil(m,g),this},e.prototype.submitPass=function(t){mo(this.currentRenderPassDescriptor!==null),this.endPass(),this.currentRenderPassDescriptorStack.length?this.currentRenderPassDescriptor=this.currentRenderPassDescriptorStack.pop():this.currentRenderPassDescriptor=null},e.prototype.copySubTexture2D=function(t,r,i,s,u,n){var y=this.gl,m=t,g=s;if(mo(g.mipLevelCount===1),mo(m.mipLevelCount===1),Mr(y))m===this.scTexture?y.bindFramebuffer(y.DRAW_FRAMEBUFFER,this.scPlatformFramebuffer):(y.bindFramebuffer(y.DRAW_FRAMEBUFFER,this.resolveColorDrawFramebuffer),this.bindFramebufferAttachment(y.DRAW_FRAMEBUFFER,y.COLOR_ATTACHMENT0,m,0)),y.bindFramebuffer(y.READ_FRAMEBUFFER,this.resolveColorReadFramebuffer),this.bindFramebufferAttachment(y.READ_FRAMEBUFFER,y.COLOR_ATTACHMENT0,g,0),y.blitFramebuffer(u,n,u+g.width,n+g.height,r,i,r+g.width,i+g.height,y.COLOR_BUFFER_BIT,y.LINEAR),y.bindFramebuffer(y.READ_FRAMEBUFFER,null),y.bindFramebuffer(y.DRAW_FRAMEBUFFER,null);else if(m===this.scTexture){var x=this.createRenderTargetFromTexture(s);this.submitBlitRenderPass(x,m)}},e.prototype.queryLimits=function(){return this},e.prototype.queryTextureFormatSupported=function(t,r,i){switch(t){case ke.BC1_SRGB:case ke.BC2_SRGB:case ke.BC3_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb!==null?o2(r,i,4,4):!1;case ke.BC1:case ke.BC2:case ke.BC3:return this.WEBGL_compressed_texture_s3tc!==null?o2(r,i,4,4):!1;case ke.BC4_UNORM:case ke.BC4_SNORM:case ke.BC5_UNORM:case ke.BC5_SNORM:return this.EXT_texture_compression_rgtc!==null?o2(r,i,4,4):!1;case ke.U16_R_NORM:case ke.U16_RG_NORM:case ke.U16_RGBA_NORM:return this.EXT_texture_norm16!==null;case ke.F32_R:case ke.F32_RG:case ke.F32_RGB:case ke.F32_RGBA:return this.OES_texture_float_linear!==null;case ke.F16_R:case ke.F16_RG:case ke.F16_RGB:case ke.F16_RGBA:return this.OES_texture_half_float_linear!==null;default:return!0}},e.prototype.queryProgramReady=function(t){var r=this.gl;if(t.compileState===ks.NeedsCompile)throw new Error("whoops");if(t.compileState===ks.Compiling){var i=void 0;return this.KHR_parallel_shader_compile!==null?i=r.getProgramParameter(t.gl_program,this.KHR_parallel_shader_compile.COMPLETION_STATUS_KHR):i=!0,i&&this.programCompiled(t),i}return t.compileState===ks.NeedsBind||t.compileState===ks.ReadyToUse},e.prototype.queryPlatformAvailable=function(){return this.gl.isContextLost()},e.prototype.queryVendorInfo=function(){return this},e.prototype.queryRenderPass=function(t){return this.currentRenderPassDescriptor},e.prototype.queryRenderTarget=function(t){var r=t;return r},e.prototype.setResourceName=function(t,r){if(t.name=r,t.type===Ko.Buffer)for(var i=t.gl_buffer_pages,s=0;s<i.length;s++)Xd(i[s],"".concat(r," Page ").concat(s));else if(t.type===Ko.Texture)Xd(E0(t),r);else if(t.type===Ko.Sampler)Xd(J2(t),r);else if(t.type===Ko.RenderTarget){var u=t.gl_renderbuffer;u!==null&&Xd(u,r)}else t.type===Ko.InputLayout&&Xd(t.vao,r)},e.prototype.setResourceLeakCheck=function(t,r){this.resourceCreationTracker!==null&&this.resourceCreationTracker.setResourceLeakCheck(t,r)},e.prototype.checkForLeaks=function(){this.resourceCreationTracker!==null&&this.resourceCreationTracker.checkForLeaks()},e.prototype.pushDebugGroup=function(t){},e.prototype.popDebugGroup=function(){},e.prototype.insertDebugMarker=function(t){},e.prototype.programPatched=function(t,r){mo(this.shaderDebug)},e.prototype.getBufferData=function(t,r,i){i===void 0&&(i=0);var s=this.gl;Mr(s)&&(s.bindBuffer(s.COPY_READ_BUFFER,N0(t,i*4)),s.getBufferSubData(s.COPY_READ_BUFFER,i*4,r))},e.prototype.debugGroupStatisticsDrawCall=function(t){t===void 0&&(t=1);for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].drawCallCount+=t},e.prototype.debugGroupStatisticsBufferUpload=function(t){t===void 0&&(t=1);for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].bufferUploadCount+=t},e.prototype.debugGroupStatisticsTextureBind=function(t){t===void 0&&(t=1);for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].textureBindCount+=t},e.prototype.debugGroupStatisticsTriangles=function(t){for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].triangleCount+=t},e.prototype.reportShaderError=function(t,r){var i=this.gl,s=i.getShaderParameter(t,i.COMPILE_STATUS);if(!s){console.error(vO(r));var u=i.getExtension("WEBGL_debug_shaders");u&&console.error(u.getTranslatedShaderSource(t)),console.error(i.getShaderInfoLog(t))}return s},e.prototype.checkProgramCompilationForErrors=function(t){var r=this.gl,i=t.gl_program;if(!r.getProgramParameter(i,r.LINK_STATUS)){var s=t.descriptor;if(!this.reportShaderError(t.gl_shader_vert,s.vertex.glsl)||!this.reportShaderError(t.gl_shader_frag,s.fragment.glsl))return;console.error(r.getProgramInfoLog(t.gl_program))}},e.prototype.bindFramebufferAttachment=function(t,r,i,s){var u=this.gl;if(Wu(i))u.framebufferRenderbuffer(t,r,u.RENDERBUFFER,null);else if(i.type===Ko.RenderTarget)i.gl_renderbuffer!==null?u.framebufferRenderbuffer(t,r,u.RENDERBUFFER,i.gl_renderbuffer):i.texture!==null&&u.framebufferTexture2D(t,r,ve.TEXTURE_2D,E0(i.texture),s);else if(i.type===Ko.Texture){var n=E0(i);i.dimension===Uo.TEXTURE_2D?u.framebufferTexture2D(t,r,ve.TEXTURE_2D,n,s):Mr(u)&&(i.dimension,Uo.TEXTURE_2D_ARRAY)}},e.prototype.bindFramebufferDepthStencilAttachment=function(t,r){var i=this.gl,s=Wu(r)?lr.Depth|lr.Stencil:H0(r.format),u=!!(s&lr.Depth),n=!!(s&lr.Stencil);if(u&&n){var y=Mr(this.gl)||!Mr(this.gl)&&!!this.WEBGL_depth_texture;y?this.bindFramebufferAttachment(t,i.DEPTH_STENCIL_ATTACHMENT,r,0):this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,r,0)}else u?(this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,r,0),this.bindFramebufferAttachment(t,i.STENCIL_ATTACHMENT,null,0)):n&&(this.bindFramebufferAttachment(t,i.STENCIL_ATTACHMENT,r,0),this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,null,0))},e.prototype.validateCurrentAttachments=function(){for(var t=-1,r=-1,i=-1,s=0;s<this.currentColorAttachments.length;s++){var u=this.currentColorAttachments[s];u!==null&&(t===-1?(t=u.sampleCount,r=u.width,i=u.height):(mo(t===u.sampleCount),mo(r===u.width),mo(i===u.height)))}this.currentDepthStencilAttachment&&(t===-1?t=this.currentDepthStencilAttachment.sampleCount:(mo(t===this.currentDepthStencilAttachment.sampleCount),mo(r===this.currentDepthStencilAttachment.width),mo(i===this.currentDepthStencilAttachment.height))),this.currentSampleCount=t},e.prototype.setRenderPassParametersBegin=function(t,r){r===void 0&&(r=!1);var i=this.gl;if(r)i.bindFramebuffer(ve.FRAMEBUFFER,null);else if(Mr(i)?i.bindFramebuffer(ve.DRAW_FRAMEBUFFER,this.renderPassDrawFramebuffer):this.inBlitRenderPass||i.bindFramebuffer(ve.FRAMEBUFFER,this.renderPassDrawFramebuffer),Mr(i)?i.drawBuffers([ve.COLOR_ATTACHMENT0,ve.COLOR_ATTACHMENT1,ve.COLOR_ATTACHMENT2,ve.COLOR_ATTACHMENT3]):!this.inBlitRenderPass&&this.WEBGL_draw_buffers&&this.WEBGL_draw_buffers.drawBuffersWEBGL([ve.COLOR_ATTACHMENT0_WEBGL,ve.COLOR_ATTACHMENT1_WEBGL,ve.COLOR_ATTACHMENT2_WEBGL,ve.COLOR_ATTACHMENT3_WEBGL]),!this.inBlitRenderPass)for(var s=t;s<this.currentColorAttachments.length;s++){var u=Mr(i)?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,n=Mr(i)?ve.COLOR_ATTACHMENT0:ve.COLOR_ATTACHMENT0_WEBGL;i.framebufferRenderbuffer(u,n+s,ve.RENDERBUFFER,null),i.framebufferTexture2D(u,n+s,ve.TEXTURE_2D,null,0)}this.currentColorAttachments.length=t},e.prototype.setRenderPassParametersColor=function(t,r,i,s,u,n){n===void 0&&(n=!1);var y=this.gl,m=Mr(y);(this.currentColorAttachments[t]!==r||this.currentColorAttachmentLevels[t]!==i)&&(this.currentColorAttachments[t]=r,this.currentColorAttachmentLevels[t]=i,!n&&(m||!m&&this.WEBGL_draw_buffers)&&this.bindFramebufferAttachment(m?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,(m?ve.COLOR_ATTACHMENT0:ve.COLOR_ATTACHMENT0_WEBGL)+t,r,i),this.resolveColorAttachmentsChanged=!0),(this.currentColorResolveTos[t]!==s||this.currentColorResolveToLevels[t]!==u)&&(this.currentColorResolveTos[t]=s,this.currentColorResolveToLevels[t]=u,s!==null&&(this.resolveColorAttachmentsChanged=!0))},e.prototype.setRenderPassParametersDepthStencil=function(t,r,i){i===void 0&&(i=!1);var s=this.gl;this.currentDepthStencilAttachment!==t&&(this.currentDepthStencilAttachment=t,!i&&!this.inBlitRenderPass&&this.bindFramebufferDepthStencilAttachment(Mr(s)?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,this.currentDepthStencilAttachment),this.resolveDepthStencilAttachmentsChanged=!0),this.currentDepthStencilResolveTo!==r&&(this.currentDepthStencilResolveTo=r,r&&(this.resolveDepthStencilAttachmentsChanged=!0))},e.prototype.setRenderPassParametersClearColor=function(t,r,i,s,u){var n=this.gl;if(this.OES_draw_buffers_indexed!==null){var y=this.currentMegaState.attachmentsState[t];y&&y.channelWriteMask!==ga.ALL&&(this.OES_draw_buffers_indexed.colorMaskiOES(t,!0,!0,!0,!0),y.channelWriteMask=ga.ALL)}else{var y=this.currentMegaState.attachmentsState[0];y&&y.channelWriteMask!==ga.ALL&&(n.colorMask(!0,!0,!0,!0),y.channelWriteMask=ga.ALL)}this.setScissorRectEnabled(!1),Mr(n)?n.clearBufferfv(n.COLOR,t,[r,i,s,u]):(n.clearColor(r,i,s,u),n.clear(n.COLOR_BUFFER_BIT))},e.prototype.setRenderPassParametersClearDepthStencil=function(t,r){t===void 0&&(t="load"),r===void 0&&(r="load");var i=this.gl;t!=="load"&&(mo(!!this.currentDepthStencilAttachment),this.currentMegaState.depthWrite||(i.depthMask(!0),this.currentMegaState.depthWrite=!0),Mr(i)?i.clearBufferfv(i.DEPTH,0,[t]):(i.clearDepth(t),i.clear(i.DEPTH_BUFFER_BIT))),r!=="load"&&(mo(!!this.currentDepthStencilAttachment),this.currentMegaState.stencilWrite||(i.enable(i.STENCIL_TEST),i.stencilMask(255),this.currentMegaState.stencilWrite=!0),Mr(i)?i.clearBufferiv(i.STENCIL,0,[r]):(i.clearStencil(r),i.clear(i.STENCIL_BUFFER_BIT)))},e.prototype.setBindings=function(t){var r=this,i;if(this.renderBundle){this.renderBundle.push(function(){return r.setBindings(t)});return}var s=this.gl,u=t,n=u.uniformBufferBindings,y=u.samplerBindings,m=u.bindingLayouts;mo(0<m.bindingLayoutTables.length);var g=m.bindingLayoutTables[0];mo(n.length>=g.numUniformBuffers),mo(y.length>=g.numSamplers);for(var x=0;x<n.length;x++){var b=n[x];if(b.size!==0){var F=g.firstUniformBuffer+x,R=b.buffer,I=b.offset||0,U=b.size||R.byteSize;if(R!==this.currentUniformBuffers[F]||I!==this.currentUniformBufferByteOffsets[F]||U!==this.currentUniformBufferByteSizes[F]){var V=I%R.pageByteSize,J=R.gl_buffer_pages[I/R.pageByteSize|0];mo(V+U<=R.pageByteSize),Mr(s)&&s.bindBufferRange(s.UNIFORM_BUFFER,F,J,V,U),this.currentUniformBuffers[F]=R,this.currentUniformBufferByteOffsets[F]=I,this.currentUniformBufferByteSizes[F]=U}}}for(var x=0;x<g.numSamplers;x++){var b=y[x],Q=g.firstSampler+x,te=b!==null&&b.sampler!==null?J2(b.sampler):null,ne=b!==null&&b.texture!==null?E0(b.texture):null;if(this.currentSamplers[Q]!==te&&(Mr(s)&&s.bindSampler(Q,te),this.currentSamplers[Q]=te),this.currentTextures[Q]!==ne){if(this.setActiveTexture(s.TEXTURE0+Q),ne!==null){var pe=l1(b).texture,Oe=pe.gl_target,Ee=pe.width,He=pe.height;b.texture.textureIndex=Q,s.bindTexture(Oe,ne),Mr(s)||(i=b.sampler)===null||i===void 0||i.setTextureParameters(Oe,Ee,He),this.debugGroupStatisticsTextureBind()}else{var ft=Dn(Dn({},b),C7),Ge=ft.dimension,Ae=ft.formatKind,Oe=iL(Ge);s.bindTexture(Oe,this.getFallbackTexture(Dn({gl_target:Oe,formatKind:Ae},ft)))}this.currentTextures[Q]=ne}}},e.prototype.setViewport=function(t,r,i,s){var u=this.gl;u.viewport(t,r,i,s)},e.prototype.setScissorRect=function(t,r,i,s){var u=this.gl;this.setScissorRectEnabled(!0),u.scissor(t,r,i,s)},e.prototype.applyAttachmentStateIndexed=function(t,r,i){var s=this.gl,u=this.OES_draw_buffers_indexed;r.channelWriteMask!==i.channelWriteMask&&(u.colorMaskiOES(t,!!(i.channelWriteMask&ga.RED),!!(i.channelWriteMask&ga.GREEN),!!(i.channelWriteMask&ga.BLUE),!!(i.channelWriteMask&ga.ALPHA)),r.channelWriteMask=i.channelWriteMask);var n=r.rgbBlendState.blendMode!==i.rgbBlendState.blendMode||r.alphaBlendState.blendMode!==i.alphaBlendState.blendMode,y=r.rgbBlendState.blendSrcFactor!==i.rgbBlendState.blendSrcFactor||r.alphaBlendState.blendSrcFactor!==i.alphaBlendState.blendSrcFactor||r.rgbBlendState.blendDstFactor!==i.rgbBlendState.blendDstFactor||r.alphaBlendState.blendDstFactor!==i.alphaBlendState.blendDstFactor;(y||n)&&(mc(r.rgbBlendState)&&mc(r.alphaBlendState)?u.enableiOES(t,s.BLEND):mc(i.rgbBlendState)&&mc(i.alphaBlendState)&&u.disableiOES(t,s.BLEND)),n&&(u.blendEquationSeparateiOES(t,i.rgbBlendState.blendMode,i.alphaBlendState.blendMode),r.rgbBlendState.blendMode=i.rgbBlendState.blendMode,r.alphaBlendState.blendMode=i.alphaBlendState.blendMode),y&&(u.blendFuncSeparateiOES(t,i.rgbBlendState.blendSrcFactor,i.rgbBlendState.blendDstFactor,i.alphaBlendState.blendSrcFactor,i.alphaBlendState.blendDstFactor),r.rgbBlendState.blendSrcFactor=i.rgbBlendState.blendSrcFactor,r.alphaBlendState.blendSrcFactor=i.alphaBlendState.blendSrcFactor,r.rgbBlendState.blendDstFactor=i.rgbBlendState.blendDstFactor,r.alphaBlendState.blendDstFactor=i.alphaBlendState.blendDstFactor)},e.prototype.applyAttachmentState=function(t,r){var i=this.gl;t.channelWriteMask!==r.channelWriteMask&&(i.colorMask(!!(r.channelWriteMask&ga.RED),!!(r.channelWriteMask&ga.GREEN),!!(r.channelWriteMask&ga.BLUE),!!(r.channelWriteMask&ga.ALPHA)),t.channelWriteMask=r.channelWriteMask);var s=t.rgbBlendState.blendMode!==r.rgbBlendState.blendMode||t.alphaBlendState.blendMode!==r.alphaBlendState.blendMode,u=t.rgbBlendState.blendSrcFactor!==r.rgbBlendState.blendSrcFactor||t.alphaBlendState.blendSrcFactor!==r.alphaBlendState.blendSrcFactor||t.rgbBlendState.blendDstFactor!==r.rgbBlendState.blendDstFactor||t.alphaBlendState.blendDstFactor!==r.alphaBlendState.blendDstFactor;(u||s)&&(mc(t.rgbBlendState)&&mc(t.alphaBlendState)?i.enable(i.BLEND):mc(r.rgbBlendState)&&mc(r.alphaBlendState)&&i.disable(i.BLEND)),s&&(i.blendEquationSeparate(r.rgbBlendState.blendMode,r.alphaBlendState.blendMode),t.rgbBlendState.blendMode=r.rgbBlendState.blendMode,t.alphaBlendState.blendMode=r.alphaBlendState.blendMode),u&&(i.blendFuncSeparate(r.rgbBlendState.blendSrcFactor,r.rgbBlendState.blendDstFactor,r.alphaBlendState.blendSrcFactor,r.alphaBlendState.blendDstFactor),t.rgbBlendState.blendSrcFactor=r.rgbBlendState.blendSrcFactor,t.alphaBlendState.blendSrcFactor=r.alphaBlendState.blendSrcFactor,t.rgbBlendState.blendDstFactor=r.rgbBlendState.blendDstFactor,t.alphaBlendState.blendDstFactor=r.alphaBlendState.blendDstFactor)},e.prototype.setMegaState=function(t){var r=this.gl,i=this.currentMegaState;if(this.OES_draw_buffers_indexed!==null)for(var s=0;s<t.attachmentsState.length;s++)this.applyAttachmentStateIndexed(s,i.attachmentsState[0],t.attachmentsState[0]);else mo(t.attachmentsState.length===1),this.applyAttachmentState(i.attachmentsState[0],t.attachmentsState[0]);F7(i.blendConstant,t.blendConstant)||(r.blendColor(t.blendConstant.r,t.blendConstant.g,t.blendConstant.b,t.blendConstant.a),T7(i.blendConstant,t.blendConstant)),i.depthCompare!==t.depthCompare&&(r.depthFunc(t.depthCompare),i.depthCompare=t.depthCompare),!!i.depthWrite!=!!t.depthWrite&&(r.depthMask(t.depthWrite),i.depthWrite=t.depthWrite),!!i.stencilWrite!=!!t.stencilWrite&&(r.stencilMask(t.stencilWrite?255:0),i.stencilWrite=t.stencilWrite);var u=!1;if(!Of(i.stencilFront,t.stencilFront)){u=!0;var n=t.stencilFront,y=n.passOp,m=n.failOp,g=n.depthFailOp,x=n.compare;(i.stencilFront.passOp!==y||i.stencilFront.failOp!==m||i.stencilFront.depthFailOp!==g)&&(r.stencilOpSeparate(r.FRONT,m,g,y),i.stencilFront.passOp=y,i.stencilFront.failOp=m,i.stencilFront.depthFailOp=g),i.stencilFront.compare!==x&&(this.setStencilReference(0),i.stencilFront.compare=x)}if(!Of(i.stencilBack,t.stencilBack)){u=!0;var b=t.stencilBack,y=b.passOp,m=b.failOp,g=b.depthFailOp,x=b.compare;(i.stencilBack.passOp!==y||i.stencilBack.failOp!==m||i.stencilBack.depthFailOp!==g)&&(r.stencilOpSeparate(r.BACK,m,g,y),i.stencilBack.passOp=y,i.stencilBack.failOp=m,i.stencilBack.depthFailOp=g),i.stencilBack.compare!==x&&(this.setStencilReference(0),i.stencilBack.compare=x)}(i.stencilFront.mask!==t.stencilFront.mask||i.stencilBack.mask!==t.stencilBack.mask)&&(u=!0,i.stencilFront.mask=t.stencilFront.mask,i.stencilBack.mask=t.stencilBack.mask),u&&this.applyStencil(),i.cullMode!==t.cullMode&&(i.cullMode===zs.NONE?r.enable(r.CULL_FACE):t.cullMode===zs.NONE&&r.disable(r.CULL_FACE),t.cullMode===zs.BACK?r.cullFace(r.BACK):t.cullMode===zs.FRONT?r.cullFace(r.FRONT):t.cullMode===zs.FRONT_AND_BACK&&r.cullFace(r.FRONT_AND_BACK),i.cullMode=t.cullMode),i.frontFace!==t.frontFace&&(r.frontFace(t.frontFace),i.frontFace=t.frontFace),i.polygonOffset!==t.polygonOffset&&(t.polygonOffset?r.enable(r.POLYGON_OFFSET_FILL):r.disable(r.POLYGON_OFFSET_FILL),i.polygonOffset=t.polygonOffset),(i.polygonOffsetFactor!==t.polygonOffsetFactor||i.polygonOffsetUnits!==t.polygonOffsetUnits)&&(r.polygonOffset(t.polygonOffsetFactor,t.polygonOffsetUnits),i.polygonOffsetFactor=t.polygonOffsetFactor,i.polygonOffsetUnits=t.polygonOffsetUnits)},e.prototype.validatePipelineFormats=function(t){for(var r=0;r<this.currentColorAttachments.length;r++)var i=this.currentColorAttachments[r];this.currentDepthStencilAttachment&&mo(this.currentDepthStencilAttachment.format===t.depthStencilAttachmentFormat),this.currentSampleCount!==-1&&mo(this.currentSampleCount===t.sampleCount)},e.prototype.setPipeline=function(t){var r=this;if(this.renderBundle){this.renderBundle.push(function(){return r.setPipeline(t)});return}this.currentPipeline=t,this.validatePipelineFormats(this.currentPipeline),this.setMegaState(this.currentPipeline.megaState);var i=this.currentPipeline.program;if(this.useProgram(i),i.compileState===ks.NeedsBind){var s=this.gl,u=i.gl_program,n=i.descriptor,y=fg(n.vertex.glsl,_L);if(Mr(s))for(var m=0;m<y.length;m++){var g=cp(y[m],2),x=g[1],b=s.getUniformBlockIndex(u,x);b!==-1&&b!==4294967295&&s.uniformBlockBinding(u,b,m)}for(var F=fg(n.fragment.glsl,/^uniform .*sampler\S+ (\w+);\s* \/\/ BINDING=(\d+)$/gm),m=0;m<F.length;m++){var R=cp(F[m],3),I=R[1],U=R[2],V=s.getUniformLocation(u,I);s.uniform1i(V,parseInt(U))}i.compileState=ks.ReadyToUse}},e.prototype.setVertexInput=function(t,r,i){var s,u,n=this,y;if(this.renderBundle){this.renderBundle.push(function(){return n.setVertexInput(t,r,i)});return}if(t!==null){mo(this.currentPipeline.inputLayout===t);var m=t;this.bindVAO(m.vao);for(var g=this.gl,x=0;x<m.vertexBufferDescriptors.length;x++){var b=m.vertexBufferDescriptors[x],F=b.arrayStride,R=b.attributes;try{for(var I=(s=void 0,y1(R)),U=I.next();!U.done;U=I.next()){var V=U.value,J=V.shaderLocation,Q=V.offset,te=Mr(g)?J:(y=m.program.attributes[J])===null||y===void 0?void 0:y.location;if(!Wu(te)){var ne=r[x];if(ne===null)continue;var pe=V.vertexFormat;g.bindBuffer(g.ARRAY_BUFFER,N0(ne.buffer));var Oe=(ne.offset||0)+Q;g.vertexAttribPointer(te,pe.size,pe.type,pe.normalized,F,Oe)}}}catch(He){s={error:He}}finally{try{U&&!U.done&&(u=I.return)&&u.call(I)}finally{if(s)throw s.error}}}if(mo(i!==null==(m.indexBufferFormat!==null)),i!==null){var Ee=i.buffer;mo(Ee.usage===xi.INDEX),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,N0(Ee)),this.currentIndexBufferByteOffset=i.offset||0}else this.currentIndexBufferByteOffset=null}else mo(this.currentPipeline.inputLayout===null),mo(i===null),this.bindVAO(null),this.currentIndexBufferByteOffset=0},e.prototype.setStencilReference=function(t){this.currentStencilRef!==t&&(this.currentStencilRef=t,this.applyStencil())},e.prototype.draw=function(t,r,i,s){var u,n=this;if(this.renderBundle){this.renderBundle.push(function(){return n.draw(t,r,i,s)});return}var y=this.gl,m=this.currentPipeline;if(r){var g=[m.drawMode,i||0,t,r];Mr(y)?y.drawArraysInstanced.apply(y,Ad([],cp(g),!1)):(u=this.ANGLE_instanced_arrays).drawArraysInstancedANGLE.apply(u,Ad([],cp(g),!1))}else y.drawArrays(m.drawMode,i,t);this.debugGroupStatisticsDrawCall(),this.debugGroupStatisticsTriangles(t/3*Math.max(r,1))},e.prototype.drawIndexed=function(t,r,i,s,u){var n,y=this;if(this.renderBundle){this.renderBundle.push(function(){return y.drawIndexed(t,r,i,s,u)});return}var m=this.gl,g=this.currentPipeline,x=l1(g.inputLayout),b=l1(this.currentIndexBufferByteOffset)+i*x.indexBufferCompByteSize;if(r){var F=[g.drawMode,t,x.indexBufferType,b,r];Mr(m)?m.drawElementsInstanced.apply(m,Ad([],cp(F),!1)):(n=this.ANGLE_instanced_arrays).drawElementsInstancedANGLE.apply(n,Ad([],cp(F),!1))}else m.drawElements(g.drawMode,t,x.indexBufferType,b);this.debugGroupStatisticsDrawCall(),this.debugGroupStatisticsTriangles(t/3*Math.max(r,1))},e.prototype.drawIndirect=function(t,r){},e.prototype.drawIndexedIndirect=function(t,r){},e.prototype.beginOcclusionQuery=function(t){var r=this.gl;if(Mr(r)){var i=this.currentRenderPassDescriptor.occlusionQueryPool;r.beginQuery(i.gl_query_type,i.gl_query[t])}},e.prototype.endOcclusionQuery=function(){var t=this.gl;if(Mr(t)){var r=this.currentRenderPassDescriptor.occlusionQueryPool;t.endQuery(r.gl_query_type)}},e.prototype.pipelineQueryReady=function(t){var r=t;return this.queryProgramReady(r.program)},e.prototype.pipelineForceReady=function(t){},e.prototype.endPass=function(){for(var t=this.gl,r=Mr(t),i=this.currentColorResolveTos.length===1&&this.currentColorResolveTos[0]===this.scTexture,s=!1,u=0;u<this.currentColorAttachments.length;u++){var n=this.currentColorAttachments[u];if(n!==null){var y=this.currentColorResolveTos[u],m=!1;y!==null&&(mo(n.width===y.width&&n.height===y.height),this.setScissorRectEnabled(!1),i||(r&&t.bindFramebuffer(t.READ_FRAMEBUFFER,this.resolveColorReadFramebuffer),this.resolveColorAttachmentsChanged&&r&&this.bindFramebufferAttachment(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,n,this.currentColorAttachmentLevels[u])),m=!0,i||(y===this.scTexture?t.bindFramebuffer(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,this.scPlatformFramebuffer):(t.bindFramebuffer(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,this.resolveColorDrawFramebuffer),this.resolveColorAttachmentsChanged&&t.framebufferTexture2D(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,y.gl_texture,this.currentColorResolveToLevels[u]))),i||(r?(t.blitFramebuffer(0,0,n.width,n.height,0,0,y.width,y.height,t.COLOR_BUFFER_BIT,t.LINEAR),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null)):this.submitBlitRenderPass(n,y)),s=!0),this.currentRenderPassDescriptor.colorStore[u]||!i&&!m&&(t.bindFramebuffer(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,this.resolveColorReadFramebuffer),this.resolveColorAttachmentsChanged&&this.bindFramebufferAttachment(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,t.COLOR_ATTACHMENT0,n,this.currentColorAttachmentLevels[u])),i||t.bindFramebuffer(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,null)}}this.resolveColorAttachmentsChanged=!1;var g=this.currentDepthStencilAttachment;if(g){var x=this.currentDepthStencilResolveTo,m=!1;x&&(mo(g.width===x.width&&g.height===x.height),this.setScissorRectEnabled(!1),i||(t.bindFramebuffer(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,this.resolveDepthStencilReadFramebuffer),t.bindFramebuffer(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,this.resolveDepthStencilDrawFramebuffer),this.resolveDepthStencilAttachmentsChanged&&(this.bindFramebufferDepthStencilAttachment(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,g),this.bindFramebufferDepthStencilAttachment(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,x))),m=!0,i||(r&&t.blitFramebuffer(0,0,g.width,g.height,0,0,x.width,x.height,t.DEPTH_BUFFER_BIT,t.NEAREST),t.bindFramebuffer(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,null)),s=!0),!i&&!this.currentRenderPassDescriptor.depthStencilStore&&(m||(t.bindFramebuffer(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,this.resolveDepthStencilReadFramebuffer),this.resolveDepthStencilAttachmentsChanged&&this.bindFramebufferDepthStencilAttachment(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,g),m=!0),r&&t.invalidateFramebuffer(t.READ_FRAMEBUFFER,[t.DEPTH_STENCIL_ATTACHMENT])),!i&&m&&t.bindFramebuffer(r?ve.READ_FRAMEBUFFER:ve.FRAMEBUFFER,null),this.resolveDepthStencilAttachmentsChanged=!1}!i&&!s&&t.bindFramebuffer(r?ve.DRAW_FRAMEBUFFER:ve.FRAMEBUFFER,null)},e.prototype.setScissorRectEnabled=function(t){if(this.currentScissorEnabled!==t){var r=this.gl;t?r.enable(r.SCISSOR_TEST):r.disable(r.SCISSOR_TEST),this.currentScissorEnabled=t}},e.prototype.applyStencil=function(){Wu(this.currentStencilRef)||(this.gl.stencilFuncSeparate(ve.FRONT,this.currentMegaState.stencilFront.compare,this.currentStencilRef,this.currentMegaState.stencilFront.mask||255),this.gl.stencilFuncSeparate(ve.BACK,this.currentMegaState.stencilBack.compare,this.currentStencilRef,this.currentMegaState.stencilBack.mask||255))},e.prototype.getFallbackTexture=function(t){var r=t.gl_target,i=t.formatKind;if(r===ve.TEXTURE_2D)return i===sn.Depth?this.fallbackTexture2DDepth:this.fallbackTexture2D;if(r===ve.TEXTURE_2D_ARRAY)return this.fallbackTexture2DArray;if(r===ve.TEXTURE_3D)return this.fallbackTexture3D;if(r===ve.TEXTURE_CUBE_MAP)return this.fallbackTextureCube;throw new Error("whoops")},e.prototype.submitBlitRenderPass=function(t,r){this.blitRenderPipeline||(this.blitProgram=this.createProgram({vertex:{glsl:`layout(location = 0) in vec2 a_Position;
- out vec2 v_TexCoord;
- void main() {
- v_TexCoord = 0.5 * (a_Position + 1.0);
- gl_Position = vec4(a_Position, 0., 1.);
- #ifdef VIEWPORT_ORIGIN_TL
- v_TexCoord.y = 1.0 - v_TexCoord.y;
- #endif
- }`},fragment:{glsl:`uniform sampler2D u_Texture;
- in vec2 v_TexCoord;
- out vec4 outputColor;
- void main() {
- outputColor = texture(SAMPLER_2D(u_Texture), v_TexCoord);
- }`}}),this.blitVertexBuffer=this.createBuffer({usage:xi.VERTEX|xi.COPY_DST,viewOrSize:new Float32Array([-4,-4,4,-4,0,4])}),this.blitInputLayout=this.createInputLayout({vertexBufferDescriptors:[{arrayStride:4*2,stepMode:x1.VERTEX,attributes:[{format:ke.F32_RG,offset:4*0,shaderLocation:0}]}],indexBufferFormat:null,program:this.blitProgram}),this.blitRenderPipeline=this.createRenderPipeline({topology:Gn.TRIANGLES,sampleCount:1,program:this.blitProgram,colorAttachmentFormats:[ke.U8_RGBA_RT],depthStencilAttachmentFormat:null,inputLayout:this.blitInputLayout,megaStateDescriptor:G0(j0)}),this.blitBindings=this.createBindings({samplerBindings:[{sampler:null,texture:t.texture}],uniformBufferBindings:[]}),this.blitProgram.setUniformsLegacy({u_Texture:t}));var i=this.currentRenderPassDescriptor;this.currentRenderPassDescriptor=null,this.inBlitRenderPass=!0;var s=this.createRenderPass({colorAttachment:[t],colorResolveTo:[r],colorClearColor:[mO]}),u=this.getCanvas(),n=u.width,y=u.height;s.setPipeline(this.blitRenderPipeline),s.setBindings(this.blitBindings),s.setVertexInput(this.blitInputLayout,[{buffer:this.blitVertexBuffer}],null),s.setViewport(0,0,n,y),this.gl.disable(this.gl.BLEND),s.draw(3,0),this.gl.enable(this.gl.BLEND),this.currentRenderPassDescriptor=i,this.inBlitRenderPass=!1},e}(),vL=function(){function e(t){this.pluginOptions=t}return e.prototype.createSwapChain=function(t){return F0(this,void 0,void 0,function(){var r,i,s,u,n,y,m,g,x,b,F,R,I;return T0(this,function(U){return r=this.pluginOptions,i=r.targets,s=r.xrCompatible,u=r.antialias,n=u===void 0?!1:u,y=r.preserveDrawingBuffer,m=y===void 0?!1:y,g=r.premultipliedAlpha,x=g===void 0?!0:g,b=r.shaderDebug,F=r.trackResources,R={antialias:n,preserveDrawingBuffer:m,stencil:!0,premultipliedAlpha:x,xrCompatible:s},this.handleContextEvents(t),i.includes("webgl2")&&(I=t.getContext("webgl2",R)||t.getContext("experimental-webgl2",R)),!I&&i.includes("webgl1")&&(I=t.getContext("webgl",R)||t.getContext("experimental-webgl",R)),[2,new gL(I,{shaderDebug:b,trackResources:F})]})})},e.prototype.handleContextEvents=function(t){var r=this.pluginOptions,i=r.onContextLost,s=r.onContextRestored,u=r.onContextCreationError;u&&t.addEventListener("webglcontextcreationerror",u,!1),i&&t.addEventListener("webglcontextlost",i,!1),s&&t.addEventListener("webglcontextrestored",s,!1)},e}();let an;const D7=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&D7.decode();let iy=null;function Qh(){return(iy===null||iy.byteLength===0)&&(iy=new Uint8Array(an.memory.buffer)),iy}function Lf(e,t){return e=e>>>0,D7.decode(Qh().subarray(e,e+t))}const Rl=new Array(128).fill(void 0);Rl.push(void 0,null,!0,!1);let dy=Rl.length;function EL(e){dy===Rl.length&&Rl.push(Rl.length+1);const t=dy;return dy=Rl[t],Rl[t]=e,t}function Jh(e){return Rl[e]}function xL(e){e<132||(Rl[e]=dy,dy=e)}function PL(e){const t=Jh(e);return xL(e),t}let X0=0;const ef=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},bL=typeof ef.encodeInto=="function"?function(e,t){return ef.encodeInto(e,t)}:function(e,t){const r=ef.encode(e);return t.set(r),{read:e.length,written:r.length}};function Bf(e,t,r){if(r===void 0){const y=ef.encode(e),m=t(y.length,1)>>>0;return Qh().subarray(m,m+y.length).set(y),X0=y.length,m}let i=e.length,s=t(i,1)>>>0;const u=Qh();let n=0;for(;n<i;n++){const y=e.charCodeAt(n);if(y>127)break;u[s+n]=y}if(n!==i){n!==0&&(e=e.slice(n)),s=r(s,i,i=n+e.length*3,1)>>>0;const y=Qh().subarray(s+n,s+i),m=bL(e,y);n+=m.written}return X0=n,s}let ny=null;function Uf(){return(ny===null||ny.byteLength===0)&&(ny=new Int32Array(an.memory.buffer)),ny}function AL(e,t,r){let i,s;try{const y=an.__wbindgen_add_to_stack_pointer(-16),m=Bf(e,an.__wbindgen_malloc,an.__wbindgen_realloc),g=X0,x=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),b=X0;an.glsl_compile(y,m,g,x,b,r);var u=Uf()[y/4+0],n=Uf()[y/4+1];return i=u,s=n,Lf(u,n)}finally{an.__wbindgen_add_to_stack_pointer(16),an.__wbindgen_free(i,s,1)}}class Iy{static __wrap(t){t=t>>>0;const r=Object.create(Iy.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();an.__wbg_wgslcomposer_free(t)}constructor(){const t=an.wgslcomposer_new();return Iy.__wrap(t)}load_composable(t){const r=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),i=X0;an.wgslcomposer_load_composable(this.__wbg_ptr,r,i)}wgsl_compile(t){let r,i;try{const n=an.__wbindgen_add_to_stack_pointer(-16),y=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),m=X0;an.wgslcomposer_wgsl_compile(n,this.__wbg_ptr,y,m);var s=Uf()[n/4+0],u=Uf()[n/4+1];return r=s,i=u,Lf(s,u)}finally{an.__wbindgen_add_to_stack_pointer(16),an.__wbindgen_free(r,i,1)}}}async function FL(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function TL(){const e={};return e.wbg={},e.wbg.__wbindgen_string_new=function(t,r){const i=Lf(t,r);return EL(i)},e.wbg.__wbindgen_object_drop_ref=function(t){PL(t)},e.wbg.__wbg_log_1d3ae0273d8f4f8a=function(t){console.log(Jh(t))},e.wbg.__wbg_log_576ca876af0d4a77=function(t,r){console.log(Jh(t),Jh(r))},e.wbg.__wbindgen_throw=function(t,r){throw new Error(Lf(t,r))},e}function SL(e,t){return an=e.exports,O7.__wbindgen_wasm_module=t,ny=null,iy=null,an}async function O7(e){if(an!==void 0)return an;const t=TL();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:i}=await FL(await e,t);return SL(r,i)}var aa;(function(e){e[e.COPY_SRC=1]="COPY_SRC",e[e.COPY_DST=2]="COPY_DST",e[e.TEXTURE_BINDING=4]="TEXTURE_BINDING",e[e.STORAGE_BINDING=8]="STORAGE_BINDING",e[e.STORAGE=8]="STORAGE",e[e.RENDER_ATTACHMENT=16]="RENDER_ATTACHMENT"})(aa||(aa={}));var t6;(function(e){e[e.READ=1]="READ",e[e.WRITE=2]="WRITE"})(t6||(t6={}));function wL(e){var t=0;return e&as.SAMPLED&&(t|=aa.TEXTURE_BINDING|aa.COPY_DST|aa.COPY_SRC),e&as.STORAGE&&(t|=aa.TEXTURE_BINDING|aa.STORAGE_BINDING|aa.COPY_SRC|aa.COPY_DST),e&as.RENDER_TARGET&&(t|=aa.RENDER_ATTACHMENT|aa.TEXTURE_BINDING|aa.COPY_SRC|aa.COPY_DST),t}function j6(e){if(e===ke.U8_R_NORM)return"r8unorm";if(e===ke.S8_R_NORM)return"r8snorm";if(e===ke.U8_RG_NORM)return"rg8unorm";if(e===ke.S8_RG_NORM)return"rg8snorm";if(e===ke.U32_R)return"r32uint";if(e===ke.S32_R)return"r32sint";if(e===ke.F32_R)return"r32float";if(e===ke.U16_RG)return"rg16uint";if(e===ke.S16_RG)return"rg16sint";if(e===ke.F16_RG)return"rg16float";if(e===ke.U8_RGBA_RT)return"bgra8unorm";if(e===ke.U8_RGBA_RT_SRGB)return"bgra8unorm-srgb";if(e===ke.U8_RGBA_NORM)return"rgba8unorm";if(e===ke.U8_RGBA_SRGB)return"rgba8unorm-srgb";if(e===ke.S8_RGBA_NORM)return"rgba8snorm";if(e===ke.U32_RG)return"rg32uint";if(e===ke.S32_RG)return"rg32sint";if(e===ke.F32_RG)return"rg32float";if(e===ke.U16_RGBA)return"rgba16uint";if(e===ke.S16_RGBA)return"rgba16sint";if(e===ke.F16_RGBA)return"rgba16float";if(e===ke.F32_RGBA)return"rgba32float";if(e===ke.U32_RGBA)return"rgba32uint";if(e===ke.S32_RGBA)return"rgba32sint";if(e===ke.D24)return"depth24plus";if(e===ke.D24_S8)return"depth24plus-stencil8";if(e===ke.D32F)return"depth32float";if(e===ke.D32F_S8)return"depth32float-stencil8";if(e===ke.BC1)return"bc1-rgba-unorm";if(e===ke.BC1_SRGB)return"bc1-rgba-unorm-srgb";if(e===ke.BC2)return"bc2-rgba-unorm";if(e===ke.BC2_SRGB)return"bc2-rgba-unorm-srgb";if(e===ke.BC3)return"bc3-rgba-unorm";if(e===ke.BC3_SRGB)return"bc3-rgba-unorm-srgb";if(e===ke.BC4_SNORM)return"bc4-r-snorm";if(e===ke.BC4_UNORM)return"bc4-r-unorm";if(e===ke.BC5_SNORM)return"bc5-rg-snorm";if(e===ke.BC5_UNORM)return"bc5-rg-unorm";throw"whoops"}function RL(e){if(e===Uo.TEXTURE_2D)return"2d";if(e===Uo.TEXTURE_CUBE_MAP)return"2d";if(e===Uo.TEXTURE_2D_ARRAY)return"2d";if(e===Uo.TEXTURE_3D)return"3d";throw new Error("whoops")}function CL(e){if(e===Uo.TEXTURE_2D)return"2d";if(e===Uo.TEXTURE_CUBE_MAP)return"cube";if(e===Uo.TEXTURE_2D_ARRAY)return"2d-array";if(e===Uo.TEXTURE_3D)return"3d";throw new Error("whoops")}function IL(e){var t=0;return e&xi.INDEX&&(t|=GPUBufferUsage.INDEX),e&xi.VERTEX&&(t|=GPUBufferUsage.VERTEX),e&xi.UNIFORM&&(t|=GPUBufferUsage.UNIFORM),e&xi.STORAGE&&(t|=GPUBufferUsage.STORAGE),e&xi.COPY_SRC&&(t|=GPUBufferUsage.COPY_SRC),e&xi.INDIRECT&&(t|=GPUBufferUsage.INDIRECT),t|=GPUBufferUsage.COPY_DST,t}function i2(e){if(e===_s.CLAMP_TO_EDGE)return"clamp-to-edge";if(e===_s.REPEAT)return"repeat";if(e===_s.MIRRORED_REPEAT)return"mirror-repeat";throw new Error("whoops")}function _g(e){if(e===xn.BILINEAR)return"linear";if(e===xn.POINT)return"nearest";throw new Error("whoops")}function ML(e){if(e===sa.LINEAR)return"linear";if(e===sa.NEAREST)return"nearest";if(e===sa.NO_MIP)return"nearest";throw new Error("whoops")}function A0(e){var t=e;return t.gpuBuffer}function NL(e){var t=e;return t.gpuSampler}function DL(e){var t=e;return t.querySet}function OL(e){if(e===If.OcclusionConservative)return"occlusion";throw new Error("whoops")}function LL(e){switch(e){case Gn.TRIANGLES:return"triangle-list";case Gn.POINTS:return"point-list";case Gn.TRIANGLE_STRIP:return"triangle-strip";case Gn.LINES:return"line-list";case Gn.LINE_STRIP:return"line-strip";default:throw new Error("Unknown primitive topology mode")}}function BL(e){if(e===zs.NONE)return"none";if(e===zs.FRONT)return"front";if(e===zs.BACK)return"back";throw new Error("whoops")}function UL(e){if(e===Cy.CCW)return"ccw";if(e===Cy.CW)return"cw";throw new Error("whoops")}function kL(e,t){return{topology:LL(e),cullMode:BL(t.cullMode),frontFace:UL(t.frontFace)}}function gg(e){if(e===Bo.ZERO)return"zero";if(e===Bo.ONE)return"one";if(e===Bo.SRC)return"src";if(e===Bo.ONE_MINUS_SRC)return"one-minus-src";if(e===Bo.DST)return"dst";if(e===Bo.ONE_MINUS_DST)return"one-minus-dst";if(e===Bo.SRC_ALPHA)return"src-alpha";if(e===Bo.ONE_MINUS_SRC_ALPHA)return"one-minus-src-alpha";if(e===Bo.DST_ALPHA)return"dst-alpha";if(e===Bo.ONE_MINUS_DST_ALPHA)return"one-minus-dst-alpha";if(e===Bo.CONST)return"constant";if(e===Bo.ONE_MINUS_CONSTANT)return"one-minus-constant";if(e===Bo.SRC_ALPHA_SATURATE)return"src-alpha-saturated";throw new Error("whoops")}function zL(e){if(e===va.ADD)return"add";if(e===va.SUBSTRACT)return"subtract";if(e===va.REVERSE_SUBSTRACT)return"reverse-subtract";if(e===va.MIN)return"min";if(e===va.MAX)return"max";throw new Error("whoops")}function vg(e){return{operation:zL(e.blendMode),srcFactor:gg(e.blendSrcFactor),dstFactor:gg(e.blendDstFactor)}}function Eg(e){return e.blendMode===va.ADD&&e.blendSrcFactor===Bo.ONE&&e.blendDstFactor===Bo.ZERO}function VL(e){if(!(Eg(e.rgbBlendState)&&Eg(e.alphaBlendState)))return{color:vg(e.rgbBlendState),alpha:vg(e.alphaBlendState)}}function HL(e,t){return{format:j6(t),blend:VL(e),writeMask:e.channelWriteMask}}function GL(e,t){return t.attachmentsState.map(function(r,i){return HL(r,e[i])})}function tf(e){if(e===ai.NEVER)return"never";if(e===ai.LESS)return"less";if(e===ai.EQUAL)return"equal";if(e===ai.LEQUAL)return"less-equal";if(e===ai.GREATER)return"greater";if(e===ai.NOTEQUAL)return"not-equal";if(e===ai.GEQUAL)return"greater-equal";if(e===ai.ALWAYS)return"always";throw new Error("whoops")}function m0(e){if(e===un.KEEP)return"keep";if(e===un.REPLACE)return"replace";if(e===un.ZERO)return"zero";if(e===un.DECREMENT_CLAMP)return"decrement-clamp";if(e===un.DECREMENT_WRAP)return"decrement-wrap";if(e===un.INCREMENT_CLAMP)return"increment-clamp";if(e===un.INCREMENT_WRAP)return"increment-wrap";if(e===un.INVERT)return"invert";throw new Error("whoops")}function jL(e,t){if(!Wu(e))return{format:j6(e),depthWriteEnabled:!!t.depthWrite,depthCompare:tf(t.depthCompare),depthBias:t.polygonOffset?t.polygonOffsetUnits:0,depthBiasSlopeScale:t.polygonOffset?t.polygonOffsetFactor:0,stencilFront:{compare:tf(t.stencilFront.compare),passOp:m0(t.stencilFront.passOp),failOp:m0(t.stencilFront.failOp),depthFailOp:m0(t.stencilFront.depthFailOp)},stencilBack:{compare:tf(t.stencilBack.compare),passOp:m0(t.stencilBack.passOp),failOp:m0(t.stencilBack.failOp),depthFailOp:m0(t.stencilBack.depthFailOp)},stencilReadMask:4294967295,stencilWriteMask:4294967295}}function WL(e){if(e!==null){if(e===ke.U16_R)return"uint16";if(e===ke.U32_R)return"uint32";throw new Error("whoops")}}function XL(e){if(e===x1.VERTEX)return"vertex";if(e===x1.INSTANCE)return"instance";throw new Error("whoops")}function ZL(e){if(e===ke.U8_R)return"uint8x2";if(e===ke.U8_RG)return"uint8x2";if(e===ke.U8_RGB)return"uint8x4";if(e===ke.U8_RGBA)return"uint8x4";if(e===ke.U8_RG_NORM)return"unorm8x2";if(e===ke.U8_RGBA_NORM)return"unorm8x4";if(e===ke.S8_RGB_NORM)return"snorm8x4";if(e===ke.S8_RGBA_NORM)return"snorm8x4";if(e===ke.U16_RG_NORM)return"unorm16x2";if(e===ke.U16_RGBA_NORM)return"unorm16x4";if(e===ke.S16_RG_NORM)return"snorm16x2";if(e===ke.S16_RGBA_NORM)return"snorm16x4";if(e===ke.S16_RG)return"uint16x2";if(e===ke.F16_RG)return"float16x2";if(e===ke.F16_RGBA)return"float16x4";if(e===ke.F32_R)return"float32";if(e===ke.F32_RG)return"float32x2";if(e===ke.F32_RGB)return"float32x3";if(e===ke.F32_RGBA)return"float32x4";throw"whoops"}function YL(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_SNORM:case bt.BC4_UNORM:case bt.BC5_SNORM:case bt.BC5_UNORM:return!0;default:return!1}}function $L(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_SNORM:case bt.BC4_UNORM:case bt.BC5_SNORM:case bt.BC5_UNORM:return 4;default:return 1}}function xg(e,t,r,i){switch(r===void 0&&(r=!1),e){case ke.S8_R:case ke.S8_R_NORM:case ke.S8_RG_NORM:case ke.S8_RGB_NORM:case ke.S8_RGBA_NORM:{var s=t instanceof ArrayBuffer?new Int8Array(t):new Int8Array(t);return i&&s.set(new Int8Array(i)),s}case ke.U8_R:case ke.U8_R_NORM:case ke.U8_RG:case ke.U8_RG_NORM:case ke.U8_RGB:case ke.U8_RGB_NORM:case ke.U8_RGB_SRGB:case ke.U8_RGBA:case ke.U8_RGBA_NORM:case ke.U8_RGBA_SRGB:{var u=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t);return i&&u.set(new Uint8Array(i)),u}case ke.S16_R:case ke.S16_RG:case ke.S16_RG_NORM:case ke.S16_RGB_NORM:case ke.S16_RGBA:case ke.S16_RGBA_NORM:{var n=t instanceof ArrayBuffer?new Int16Array(t):new Int16Array(r?t/2:t);return i&&n.set(new Int16Array(i)),n}case ke.U16_R:case ke.U16_RGB:case ke.U16_RGBA_5551:case ke.U16_RGBA_NORM:case ke.U16_RG_NORM:case ke.U16_R_NORM:{var y=t instanceof ArrayBuffer?new Uint16Array(t):new Uint16Array(r?t/2:t);return i&&y.set(new Uint16Array(i)),y}case ke.S32_R:{var m=t instanceof ArrayBuffer?new Int32Array(t):new Int32Array(r?t/4:t);return i&&m.set(new Int32Array(i)),m}case ke.U32_R:case ke.U32_RG:{var g=t instanceof ArrayBuffer?new Uint32Array(t):new Uint32Array(r?t/4:t);return i&&g.set(new Uint32Array(i)),g}case ke.F32_R:case ke.F32_RG:case ke.F32_RGB:case ke.F32_RGBA:{var x=t instanceof ArrayBuffer?new Float32Array(t):new Float32Array(r?t/4:t);return i&&x.set(new Float32Array(i)),x}}var b=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t);return i&&b.set(new Uint8Array(i)),b}function qL(e){var t=(e&32768)>>15,r=(e&31744)>>10,i=e&1023;return r===0?(t?-1:1)*Math.pow(2,-14)*(i/Math.pow(2,10)):r==31?i?NaN:(t?-1:1)*(1/0):(t?-1:1)*Math.pow(2,r-15)*(1+i/Math.pow(2,10))}function L7(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":return{width:1,height:1,length:1};case"r16uint":case"r16sint":case"r16float":case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":return{width:1,height:1,length:2};case"r32uint":case"r32sint":case"r32float":case"rg16uint":case"rg16sint":case"rg16float":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb9e5ufloat":case"rgb10a2unorm":case"rg11b10ufloat":return{width:1,height:1,length:4};case"rg32uint":case"rg32sint":case"rg32float":case"rgba16uint":case"rgba16sint":case"rgba16float":return{width:1,height:1,length:8};case"rgba32uint":case"rgba32sint":case"rgba32float":return{width:1,height:1,length:16};case"stencil8":throw new Error("No fixed size for Stencil8 format!");case"depth16unorm":return{width:1,height:1,length:2};case"depth24plus":throw new Error("No fixed size for Depth24Plus format!");case"depth24plus-stencil8":throw new Error("No fixed size for Depth24PlusStencil8 format!");case"depth32float":return{width:1,height:1,length:4};case"depth32float-stencil8":return{width:1,height:1,length:5};case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc5-rg-unorm":case"bc5-rg-snorm":return{width:4,height:4,length:16};case"bc4-r-unorm":case"bc4-r-snorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":return{width:4,height:4,length:8};default:return{width:1,height:1,length:4}}}var gp=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this)||this;return u.id=i,u.device=s,u}return t.prototype.destroy=function(){},t}(x7),KL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Bindings;var g=u.pipeline;mo(!!g);var x=u.uniformBufferBindings,b=u.storageBufferBindings,F=u.samplerBindings,R=u.storageTextureBindings;m.numUniformBuffers=(x==null?void 0:x.length)||0;var I=[[],[],[],[]],U=0;if(x&&x.length)for(var V=0;V<x.length;V++){var J=u.uniformBufferBindings[V],Q=J.binding,te=J.size,ne=J.offset,pe=J.buffer,Oe={buffer:A0(pe),offset:ne??0,size:te};I[0].push({binding:Q??U++,resource:Oe})}if(F&&F.length){U=0;for(var V=0;V<F.length;V++){var Ee=Dn(Dn({},F[V]),C7),Q=u.samplerBindings[V],He=Q.texture!==null?Q.texture:m.device.getFallbackTexture(Ee);Ee.dimension=He.dimension,Ee.formatKind=A7(He.format);var ft=He.gpuTextureView;if(I[1].push({binding:(n=Q.textureBinding)!==null&&n!==void 0?n:U++,resource:ft}),Q.samplerBinding!==-1){var Ge=Q.sampler!==null?Q.sampler:m.device.getFallbackSampler(Ee),Ae=NL(Ge);I[1].push({binding:(y=Q.samplerBinding)!==null&&y!==void 0?y:U++,resource:Ae})}}}if(b&&b.length){U=0;for(var V=0;V<b.length;V++){var Be=u.storageBufferBindings[V],Q=Be.binding,te=Be.size,ne=Be.offset,pe=Be.buffer,Oe={buffer:A0(pe),offset:ne??0,size:te};I[2].push({binding:Q??U++,resource:Oe})}}if(R&&R.length){U=0;for(var V=0;V<R.length;V++){var ze=u.storageTextureBindings[V],Q=ze.binding,He=ze.texture,ft=He.gpuTextureView;I[3].push({binding:Q??U++,resource:ft})}}var st=I.findLastIndex(function(Vt){return!!Vt.length});return m.gpuBindGroup=I.map(function(Vt,ir){return ir<=st&&m.device.device.createBindGroup({layout:g.getBindGroupLayout(ir),entries:Vt})}),m}return t}(gp),QL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.Buffer;var y=u.usage,m=u.viewOrSize,g=!!(y&xi.MAP_READ);n.usage=IL(y),g&&(n.usage=xi.MAP_READ|xi.COPY_DST);var x=!P0(m);if(n.view=P0(m)?null:m,n.size=P0(m)?Nf(m,4):Nf(m.byteLength,4),P0(m))n.gpuBuffer=n.device.device.createBuffer({usage:n.usage,size:n.size,mappedAtCreation:g?x:!1});else{n.gpuBuffer=n.device.device.createBuffer({usage:n.usage,size:n.size,mappedAtCreation:!0});var b=m&&m.constructor||Float32Array;new b(n.gpuBuffer.getMappedRange()).set(m),n.gpuBuffer.unmap()}return n}return t.prototype.setSubData=function(r,i,s,u){s===void 0&&(s=0),u===void 0&&(u=0);var n=this.gpuBuffer;u=u||i.byteLength,u=Math.min(u,this.size-r);var y=i.byteOffset+s,m=y+u,g=u+3&-4;if(g!==u){var x=new Uint8Array(i.buffer.slice(y,m));i=new Uint8Array(g),i.set(x),s=0,y=0,m=g,u=g}for(var b=1024*1024*15,F=0;m-(y+F)>b;)this.device.device.queue.writeBuffer(n,r+F,i.buffer,y+F,b),F+=b;this.device.device.queue.writeBuffer(n,r+F,i.buffer,y+F,u-F)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.gpuBuffer.destroy()},t}(gp),Pg=function(){function e(){this.gpuComputePassEncoder=null}return e.prototype.dispatchWorkgroups=function(t,r,i){this.gpuComputePassEncoder.dispatchWorkgroups(t,r,i)},e.prototype.dispatchWorkgroupsIndirect=function(t,r){this.gpuComputePassEncoder.dispatchWorkgroupsIndirect(t.gpuBuffer,r)},e.prototype.finish=function(){this.gpuComputePassEncoder.end(),this.gpuComputePassEncoder=null,this.frameCommandEncoder=null},e.prototype.beginComputePass=function(t){mo(this.gpuComputePassEncoder===null),this.frameCommandEncoder=t,this.gpuComputePassEncoder=this.frameCommandEncoder.beginComputePass(this.gpuComputePassDescriptor)},e.prototype.setPipeline=function(t){var r=t,i=l1(r.gpuComputePipeline);this.gpuComputePassEncoder.setPipeline(i)},e.prototype.setBindings=function(t){var r=this,i=t;i.gpuBindGroup.forEach(function(s,u){s&&r.gpuComputePassEncoder.setBindGroup(u,i.gpuBindGroup[u])})},e.prototype.pushDebugGroup=function(t){this.gpuComputePassEncoder.pushDebugGroup(t)},e.prototype.popDebugGroup=function(){this.gpuComputePassEncoder.popDebugGroup()},e.prototype.insertDebugMarker=function(t){this.gpuComputePassEncoder.insertDebugMarker(t)},e}(),JL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.ComputePipeline,n.gpuComputePipeline=null,n.descriptor=u;var y=u.program,m=y.computeStage;if(m===null)return n;var g={layout:"auto",compute:Dn({},m)};return n.gpuComputePipeline=n.device.device.createComputePipeline(g),n.name!==void 0&&(n.gpuComputePipeline.label=n.name),n}return t.prototype.getBindGroupLayout=function(r){return this.gpuComputePipeline.getBindGroupLayout(r)},t}(gp),eB=function(e){pn(t,e);function t(r){var i,s,u,n,y=r.id,m=r.device,g=r.descriptor,x=e.call(this,{id:y,device:m})||this;x.type=Ko.InputLayout;var b=[];try{for(var F=y1(g.vertexBufferDescriptors),R=F.next();!R.done;R=F.next()){var I=R.value,U=I.arrayStride,V=I.stepMode,J=I.attributes;b.push({arrayStride:U,stepMode:XL(V),attributes:[]});try{for(var Q=(u=void 0,y1(J)),te=Q.next();!te.done;te=Q.next()){var ne=te.value,pe=ne.shaderLocation,Oe=ne.format,Ee=ne.offset;b[b.length-1].attributes.push({shaderLocation:pe,format:ZL(Oe),offset:Ee})}}catch(He){u={error:He}}finally{try{te&&!te.done&&(n=Q.return)&&n.call(Q)}finally{if(u)throw u.error}}}}catch(He){i={error:He}}finally{try{R&&!R.done&&(s=F.return)&&s.call(F)}finally{if(i)throw i.error}}return x.indexFormat=WL(g.indexBufferFormat),x.buffers=b,x}return t}(gp),bg=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;return n.type=Ko.Program,n.vertexStage=null,n.fragmentStage=null,n.computeStage=null,n.descriptor=u,u.vertex&&(n.vertexStage=n.createShaderStage(u.vertex,"vertex")),u.fragment&&(n.fragmentStage=n.createShaderStage(u.fragment,"fragment")),u.compute&&(n.computeStage=n.createShaderStage(u.compute,"compute")),n}return t.prototype.setUniformsLegacy=function(r){},t.prototype.createShaderStage=function(r,i){var s,u,n=r.glsl,y=r.wgsl,m=r.entryPoint,g=r.postprocess,x=!1,b=y;if(!b)try{b=this.device.glsl_compile(n,i,x)}catch(J){throw console.error(J,n),new Error("whoops")}var F=function(J){if(!b.includes(J))return"continue";b=b.replace("var T_".concat(J,": texture_2d<f32>;"),"var T_".concat(J,": texture_depth_2d;")),b=b.replace(new RegExp("textureSample\\(T_".concat(J,"(.*)\\);$"),"gm"),function(Q,te){return"vec4<f32>(textureSample(T_".concat(J).concat(te,"), 0.0, 0.0, 0.0);")})};try{for(var R=y1(["u_TextureFramebufferDepth"]),I=R.next();!I.done;I=R.next()){var U=I.value;F(U)}}catch(J){s={error:J}}finally{try{I&&!I.done&&(u=R.return)&&u.call(R)}finally{if(s)throw s.error}}g&&(b=g(b));var V=this.device.device.createShaderModule({code:b});return{module:V,entryPoint:m||"main"}},t}(gp),tB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.QueryPool;var y=u.elemCount,m=u.type;return n.querySet=n.device.device.createQuerySet({type:OL(m),count:y}),n.resolveBuffer=n.device.device.createBuffer({size:y*8,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),n.cpuBuffer=n.device.device.createBuffer({size:y*8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),n.results=null,n}return t.prototype.queryResultOcclusion=function(r){return this.results===null?null:this.results[r]!==BigInt(0)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.querySet.destroy(),this.resolveBuffer.destroy(),this.cpuBuffer.destroy()},t}(gp),rB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this,{id:i,device:s})||this;return u.type=Ko.Readback,u}return t.prototype.readTexture=function(r,i,s,u,n,y,m,g){return m===void 0&&(m=0),F0(this,void 0,void 0,function(){var x,b,F,R,I,U,V,J;return T0(this,function(Q){return x=r,b=0,F=L7(x.gpuTextureformat),R=Math.ceil(u/F.width)*F.length,I=Math.ceil(R/256)*256,U=I*n,V=this.device.createBuffer({usage:xi.STORAGE|xi.MAP_READ|xi.COPY_DST,hint:mp.STATIC,viewOrSize:U}),J=this.device.device.createCommandEncoder(),J.copyTextureToBuffer({texture:x.gpuTexture,mipLevel:0,origin:{x:i,y:s,z:Math.max(b,0)}},{buffer:V.gpuBuffer,offset:0,bytesPerRow:I},{width:u,height:n,depthOrArrayLayers:1}),this.device.device.queue.submit([J.finish()]),[2,this.readBuffer(V,0,y.byteLength===U?y:null,m,U,x.format,!0,!1,R,I,n)]})})},t.prototype.readTextureSync=function(r,i,s,u,n,y,m,g){throw new Error("ERROR_MSG_METHOD_NOT_IMPLEMENTED")},t.prototype.readBuffer=function(r,i,s,u,n,y,m,g,x,b,F){var R=this;i===void 0&&(i=0),s===void 0&&(s=null),n===void 0&&(n=0),y===void 0&&(y=ke.U8_RGB),m===void 0&&(m=!1),x===void 0&&(x=0),b===void 0&&(b=0),F===void 0&&(F=0);var I=r,U=n||I.size,V=s||I.view,J=V&&V.constructor&&V.constructor.BYTES_PER_ELEMENT||b7(y),Q=I;if(!(I.usage&xi.MAP_READ&&I.usage&xi.COPY_DST)){var te=this.device.device.createCommandEncoder();Q=this.device.createBuffer({usage:xi.STORAGE|xi.MAP_READ|xi.COPY_DST,hint:mp.STATIC,viewOrSize:U}),te.copyBufferToBuffer(I.gpuBuffer,i,Q.gpuBuffer,0,U),this.device.device.queue.submit([te.finish()])}return new Promise(function(ne,pe){Q.gpuBuffer.mapAsync(t6.READ,i,U).then(function(){var Oe=Q.gpuBuffer.getMappedRange(i,U),Ee=V;if(m)Ee===null?Ee=xg(y,U,!0,Oe):Ee=xg(y,Ee.buffer,void 0,Oe);else if(Ee===null)switch(J){case 1:Ee=new Uint8Array(U),Ee.set(new Uint8Array(Oe));break;case 2:Ee=R.getHalfFloatAsFloatRGBAArrayBuffer(U/2,Oe);break;case 4:Ee=new Float32Array(U/4),Ee.set(new Float32Array(Oe));break}else switch(J){case 1:Ee=new Uint8Array(Ee.buffer),Ee.set(new Uint8Array(Oe));break;case 2:Ee=R.getHalfFloatAsFloatRGBAArrayBuffer(U/2,Oe,V);break;case 4:var He=V&&V.constructor||Float32Array;Ee=new He(Ee.buffer),Ee.set(new He(Oe));break}if(x!==b){J===1&&!m&&(x*=2,b*=2);for(var ft=new Uint8Array(Ee.buffer),Ge=x,Ae=0,Be=1;Be<F;++Be){Ae=Be*b;for(var ze=0;ze<x;++ze)ft[Ge++]=ft[Ae++]}J!==0&&!m?Ee=new Float32Array(ft.buffer,0,Ge/4):Ee=new Uint8Array(ft.buffer,0,Ge)}Q.gpuBuffer.unmap(),ne(Ee)},function(Oe){return pe(Oe)})})},t.prototype.getHalfFloatAsFloatRGBAArrayBuffer=function(r,i,s){s||(s=new Float32Array(r));for(var u=new Uint16Array(i);r--;)s[r]=qL(u[r]);return s},t}(gp),Ag=function(){function e(t){this.device=t,this.gpuRenderPassEncoder=null,this.gfxColorAttachment=[],this.gfxColorAttachmentLevel=[],this.gfxColorResolveTo=[],this.gfxColorResolveToLevel=[],this.gfxDepthStencilAttachment=null,this.gfxDepthStencilResolveTo=null,this.gpuColorAttachments=[],this.gpuDepthStencilAttachment={view:null,depthLoadOp:"load",depthStoreOp:"store",stencilLoadOp:"load",stencilStoreOp:"store"},this.gpuRenderPassDescriptor={colorAttachments:this.gpuColorAttachments,depthStencilAttachment:this.gpuDepthStencilAttachment}}return e.prototype.getEncoder=function(){var t;return((t=this.renderBundle)===null||t===void 0?void 0:t.renderBundleEncoder)||this.gpuRenderPassEncoder},e.prototype.getTextureView=function(t,r){return mo(r<t.mipLevelCount),t.mipLevelCount===1?t.gpuTextureView:t.gpuTexture.createView({baseMipLevel:r,mipLevelCount:1})},e.prototype.setRenderPassDescriptor=function(t){var r,i,s,u,n,y;this.descriptor=t,this.gpuRenderPassDescriptor.colorAttachments=this.gpuColorAttachments;var m=t.colorAttachment.length;this.gfxColorAttachment.length=m,this.gfxColorResolveTo.length=m;for(var g=0;g<t.colorAttachment.length;g++){var x=t.colorAttachment[g],b=t.colorResolveTo[g];if(x===null&&b!==null&&(x=b,b=null),this.gfxColorAttachment[g]=x,this.gfxColorResolveTo[g]=b,this.gfxColorAttachmentLevel[g]=((r=t.colorAttachmentLevel)===null||r===void 0?void 0:r[g])||0,this.gfxColorResolveToLevel[g]=((i=t.colorResolveToLevel)===null||i===void 0?void 0:i[g])||0,x!==null){this.gpuColorAttachments[g]===void 0&&(this.gpuColorAttachments[g]={});var F=this.gpuColorAttachments[g];F.view=this.getTextureView(x,((s=this.gfxColorAttachmentLevel)===null||s===void 0?void 0:s[g])||0);var R=(n=(u=t.colorClearColor)===null||u===void 0?void 0:u[g])!==null&&n!==void 0?n:"load";R==="load"?F.loadOp="load":(F.loadOp="clear",F.clearValue=R),F.storeOp=!((y=t.colorStore)===null||y===void 0)&&y[g]?"store":"discard",F.resolveTarget=void 0,b!==null&&(x.sampleCount>1?F.resolveTarget=this.getTextureView(b,this.gfxColorResolveToLevel[g]):F.storeOp="store")}else{this.gpuColorAttachments.length=g,this.gfxColorAttachment.length=g,this.gfxColorResolveTo.length=g;break}}if(this.gfxDepthStencilAttachment=t.depthStencilAttachment,this.gfxDepthStencilResolveTo=t.depthStencilResolveTo,t.depthStencilAttachment){var I=t.depthStencilAttachment,F=this.gpuDepthStencilAttachment;F.view=I.gpuTextureView;var U=!!(H0(I.format)&lr.Depth);U?(t.depthClearValue==="load"?F.depthLoadOp="load":(F.depthLoadOp="clear",F.depthClearValue=t.depthClearValue),t.depthStencilStore||this.gfxDepthStencilResolveTo!==null?F.depthStoreOp="store":F.depthStoreOp="discard"):(F.depthLoadOp=void 0,F.depthStoreOp=void 0);var V=!!(H0(I.format)&lr.Stencil);V?(t.stencilClearValue==="load"?F.stencilLoadOp="load":(F.stencilLoadOp="clear",F.stencilClearValue=t.stencilClearValue),t.depthStencilStore||this.gfxDepthStencilResolveTo!==null?F.stencilStoreOp="store":F.stencilStoreOp="discard"):(F.stencilLoadOp=void 0,F.stencilStoreOp=void 0),this.gpuRenderPassDescriptor.depthStencilAttachment=this.gpuDepthStencilAttachment}else this.gpuRenderPassDescriptor.depthStencilAttachment=void 0;this.gpuRenderPassDescriptor.occlusionQuerySet=Wu(t.occlusionQueryPool)?void 0:DL(t.occlusionQueryPool)},e.prototype.beginRenderPass=function(t,r){mo(this.gpuRenderPassEncoder===null),this.setRenderPassDescriptor(r),this.frameCommandEncoder=t,this.gpuRenderPassEncoder=this.frameCommandEncoder.beginRenderPass(this.gpuRenderPassDescriptor)},e.prototype.flipY=function(t,r){var i=this.device.swapChainHeight;return i-t-r},e.prototype.setViewport=function(t,r,i,s,u,n){u===void 0&&(u=0),n===void 0&&(n=1),this.gpuRenderPassEncoder.setViewport(t,this.flipY(r,s),i,s,u,n)},e.prototype.setScissorRect=function(t,r,i,s){this.gpuRenderPassEncoder.setScissorRect(t,this.flipY(r,s),i,s)},e.prototype.setPipeline=function(t){var r=t,i=l1(r.gpuRenderPipeline);this.getEncoder().setPipeline(i)},e.prototype.setVertexInput=function(t,r,i){if(t!==null){var s=this.getEncoder(),u=t;i!==null&&s.setIndexBuffer(A0(i.buffer),l1(u.indexFormat),i.offset);for(var n=0;n<r.length;n++){var y=r[n];y!==null&&s.setVertexBuffer(n,A0(y.buffer),y.offset)}}},e.prototype.setBindings=function(t){var r=t,i=this.getEncoder();r.gpuBindGroup.forEach(function(s,u){s&&i.setBindGroup(u,r.gpuBindGroup[u])})},e.prototype.setStencilReference=function(t){this.gpuRenderPassEncoder.setStencilReference(t)},e.prototype.draw=function(t,r,i,s){this.getEncoder().draw(t,r,i,s)},e.prototype.drawIndexed=function(t,r,i,s,u){this.getEncoder().drawIndexed(t,r,i,s,u)},e.prototype.drawIndirect=function(t,r){this.getEncoder().drawIndirect(A0(t),r)},e.prototype.drawIndexedIndirect=function(t,r){this.getEncoder().drawIndexedIndirect(A0(t),r)},e.prototype.beginOcclusionQuery=function(t){this.gpuRenderPassEncoder.beginOcclusionQuery(t)},e.prototype.endOcclusionQuery=function(){this.gpuRenderPassEncoder.endOcclusionQuery()},e.prototype.pushDebugGroup=function(t){this.gpuRenderPassEncoder.pushDebugGroup(t)},e.prototype.popDebugGroup=function(){this.gpuRenderPassEncoder.popDebugGroup()},e.prototype.insertDebugMarker=function(t){this.gpuRenderPassEncoder.insertDebugMarker(t)},e.prototype.beginBundle=function(t){this.renderBundle=t},e.prototype.endBundle=function(){this.renderBundle.finish()},e.prototype.executeBundles=function(t){this.gpuRenderPassEncoder.executeBundles(t.map(function(r){return r.renderBundle}))},e.prototype.finish=function(){var t;(t=this.gpuRenderPassEncoder)===null||t===void 0||t.end(),this.gpuRenderPassEncoder=null;for(var r=0;r<this.gfxColorAttachment.length;r++){var i=this.gfxColorAttachment[r],s=this.gfxColorResolveTo[r];i!==null&&s!==null&&i.sampleCount===1&&this.copyAttachment(s,this.gfxColorAttachmentLevel[r],i,this.gfxColorResolveToLevel[r])}this.gfxDepthStencilAttachment&&this.gfxDepthStencilResolveTo&&(this.gfxDepthStencilAttachment.sampleCount>1||this.copyAttachment(this.gfxDepthStencilResolveTo,0,this.gfxDepthStencilAttachment,0)),this.frameCommandEncoder=null},e.prototype.copyAttachment=function(t,r,i,s){mo(i.sampleCount===1);var u={texture:i.gpuTexture,mipLevel:s},n={texture:t.gpuTexture,mipLevel:r};mo(i.width>>>s===t.width>>>r),mo(i.height>>>s===t.height>>>r),mo(!!(i.usage&aa.COPY_SRC)),mo(!!(t.usage&aa.COPY_DST)),this.frameCommandEncoder.copyTextureToTexture(u,n,[t.width,t.height,1])},e}(),oB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;return n.type=Ko.RenderPipeline,n.isCreatingAsync=!1,n.gpuRenderPipeline=null,n.descriptor=u,n.device.createRenderPipelineInternal(n,!1),n}return t.prototype.getBindGroupLayout=function(r){return this.gpuRenderPipeline.getBindGroupLayout(r)},t}(gp),iB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Sampler;var g=u.lodMinClamp,x=u.mipmapFilter===sa.NO_MIP?u.lodMinClamp:u.lodMaxClamp,b=(n=u.maxAnisotropy)!==null&&n!==void 0?n:1;return b>1&&mo(u.minFilter===xn.BILINEAR&&u.magFilter===xn.BILINEAR&&u.mipmapFilter===sa.LINEAR),m.gpuSampler=m.device.device.createSampler({addressModeU:i2(u.addressModeU),addressModeV:i2(u.addressModeV),addressModeW:i2((y=u.addressModeW)!==null&&y!==void 0?y:u.addressModeU),lodMinClamp:g,lodMaxClamp:x,minFilter:_g(u.minFilter),magFilter:_g(u.magFilter),mipmapFilter:ML(u.mipmapFilter),compare:u.compareFunction!==void 0?tf(u.compareFunction):void 0,maxAnisotropy:b}),m}return t}(gp),kh=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=r.skipCreate,y=r.sampleCount,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Texture,m.flipY=!1;var g=u.format,x=u.dimension,b=u.width,F=u.height,R=u.depthOrArrayLayers,I=u.mipLevelCount,U=u.usage,V=u.pixelStore;return m.flipY=!!(V!=null&&V.unpackFlipY),m.device.createTextureShared({format:g,dimension:x??Uo.TEXTURE_2D,width:b,height:F,depthOrArrayLayers:R??1,mipLevelCount:I??1,usage:U,sampleCount:y??1},m,n),m}return t.prototype.textureFromImageBitmapOrCanvas=function(r,i,s){for(var u=i[0].width,n=i[0].height,y={size:{width:u,height:n,depthOrArrayLayers:s},format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT},m=r.createTexture(y),g=0;g<i.length;g++)r.queue.copyExternalImageToTexture({source:i[g],flipY:this.flipY},{texture:m,origin:[0,0,g]},[u,n]);return[m,u,n]},t.prototype.isImageBitmapOrCanvases=function(r){var i=r[0];return i instanceof ImageBitmap||i instanceof HTMLCanvasElement||i instanceof OffscreenCanvas},t.prototype.isVideo=function(r){var i=r[0];return i instanceof HTMLVideoElement},t.prototype.setImageData=function(r,i){var s,u=this,n=this.device.device,y,m,g;if(this.isImageBitmapOrCanvases(r))s=cp(this.textureFromImageBitmapOrCanvas(n,r,this.depthOrArrayLayers),3),y=s[0],m=s[1],g=s[2];else if(this.isVideo(r))y=n.importExternalTexture({source:r[0]});else{var x=L7(this.gpuTextureformat),b=Math.ceil(this.width/x.width)*x.length;r.forEach(function(F){n.queue.writeTexture({texture:u.gpuTexture},F,{bytesPerRow:b},{width:u.width,height:u.height})})}this.width=m,this.height=g,y&&(this.gpuTexture=y),this.gpuTextureView=this.gpuTexture.createView({dimension:CL(this.dimension)})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.gpuTexture.destroy()},t}(gp),nB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this,{id:i,device:s})||this;return u.type=Ko.RenderBundle,u.renderBundleEncoder=u.device.device.createRenderBundleEncoder({colorFormats:[u.device.swapChainFormat]}),u}return t.prototype.finish=function(){this.renderBundle=this.renderBundleEncoder.finish()},t}(gp),aB=function(){function e(t,r,i,s,u,n){this.swapChainWidth=0,this.swapChainHeight=0,this.swapChainTextureUsage=aa.RENDER_ATTACHMENT|aa.COPY_DST,this._resourceUniqueId=0,this.renderPassPool=[],this.computePassPool=[],this.frameCommandEncoderPool=[],this.featureTextureCompressionBC=!1,this.platformString="WebGPU",this.glslVersion="#version 440",this.explicitBindingLocations=!0,this.separateSamplerTextures=!0,this.viewportOrigin=fp.UPPER_LEFT,this.clipSpaceNearZ=V0.ZERO,this.supportsSyncPipelineCompilation=!1,this.supportMRT=!0,this.device=r,this.canvas=i,this.canvasContext=s,this.glsl_compile=u,this.WGSLComposer=n,this.fallbackTexture2D=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Float),this.setResourceName(this.fallbackTexture2D,"Fallback Texture2D"),this.fallbackTexture2DDepth=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Depth),this.setResourceName(this.fallbackTexture2DDepth,"Fallback Depth Texture2D"),this.fallbackTexture2DArray=this.createFallbackTexture(Uo.TEXTURE_2D_ARRAY,sn.Float),this.setResourceName(this.fallbackTexture2DArray,"Fallback Texture2DArray"),this.fallbackTexture3D=this.createFallbackTexture(Uo.TEXTURE_3D,sn.Float),this.setResourceName(this.fallbackTexture3D,"Fallback Texture3D"),this.fallbackTextureCube=this.createFallbackTexture(Uo.TEXTURE_CUBE_MAP,sn.Float),this.setResourceName(this.fallbackTextureCube,"Fallback TextureCube"),this.fallbackSamplerFiltering=this.createSampler({addressModeU:_s.REPEAT,addressModeV:_s.REPEAT,minFilter:xn.POINT,magFilter:xn.POINT,mipmapFilter:sa.NEAREST}),this.setResourceName(this.fallbackSamplerFiltering,"Fallback Sampler Filtering"),this.fallbackSamplerComparison=this.createSampler({addressModeU:_s.REPEAT,addressModeV:_s.REPEAT,minFilter:xn.POINT,magFilter:xn.POINT,mipmapFilter:sa.NEAREST,compareFunction:ai.ALWAYS}),this.setResourceName(this.fallbackSamplerComparison,"Fallback Sampler Comparison Filtering"),this.device.features&&(this.featureTextureCompressionBC=this.device.features.has("texture-compression-bc")),this.device.onuncapturederror=function(y){console.error(y.error)},this.swapChainFormat=navigator.gpu.getPreferredCanvasFormat(),this.canvasContext.configure({device:this.device,format:this.swapChainFormat,usage:this.swapChainTextureUsage,alphaMode:"premultiplied"})}return e.prototype.destroy=function(){},e.prototype.configureSwapChain=function(t,r){this.swapChainWidth===t&&this.swapChainHeight===r||(this.swapChainWidth=t,this.swapChainHeight=r)},e.prototype.getOnscreenTexture=function(){var t=this.canvasContext.getCurrentTexture(),r=t.createView(),i=new kh({id:0,device:this,descriptor:{format:ke.U8_RGBA_RT,width:this.swapChainWidth,height:this.swapChainHeight,depthOrArrayLayers:0,dimension:Uo.TEXTURE_2D,mipLevelCount:1,usage:this.swapChainTextureUsage},skipCreate:!0});return i.depthOrArrayLayers=1,i.sampleCount=1,i.gpuTexture=t,i.gpuTextureView=r,i.name="Onscreen",this.setResourceName(i,"Onscreen Texture"),i},e.prototype.getDevice=function(){return this},e.prototype.getCanvas=function(){return this.canvas},e.prototype.beginFrame=function(){mo(this.frameCommandEncoderPool.length===0)},e.prototype.endFrame=function(){mo(this.frameCommandEncoderPool.every(function(t){return t!==null})),this.device.queue.submit(this.frameCommandEncoderPool.map(function(t){return t.finish()})),this.frameCommandEncoderPool=[]},e.prototype.getNextUniqueId=function(){return++this._resourceUniqueId},e.prototype.createBuffer=function(t){return new QL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createTexture=function(t){return new kh({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createSampler=function(t){return new iB({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderTarget=function(t){var r=new kh({id:this.getNextUniqueId(),device:this,descriptor:Dn(Dn({},t),{dimension:Uo.TEXTURE_2D,mipLevelCount:1,depthOrArrayLayers:1,usage:as.RENDER_TARGET}),sampleCount:t.sampleCount});return r.depthOrArrayLayers=1,r.type=Ko.RenderTarget,r},e.prototype.createRenderTargetFromTexture=function(t){var r=t,i=r.format,s=r.width,u=r.height,n=r.depthOrArrayLayers,y=r.sampleCount,m=r.mipLevelCount,g=r.gpuTexture,x=r.gpuTextureView,b=r.usage;mo(!!(b&aa.RENDER_ATTACHMENT));var F=new kh({id:this.getNextUniqueId(),device:this,descriptor:{format:i,width:s,height:u,depthOrArrayLayers:n,dimension:Uo.TEXTURE_2D,mipLevelCount:m,usage:b},skipCreate:!0});return F.depthOrArrayLayers=n,F.sampleCount=y,F.gpuTexture=g,F.gpuTextureView=x,F},e.prototype.createProgram=function(t){var r,i;return!((r=t.vertex)===null||r===void 0)&&r.glsl&&(t.vertex.glsl=W0(this.queryVendorInfo(),"vert",t.vertex.glsl)),!((i=t.fragment)===null||i===void 0)&&i.glsl&&(t.fragment.glsl=W0(this.queryVendorInfo(),"frag",t.fragment.glsl)),new bg({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createProgramSimple=function(t){return new bg({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createTextureShared=function(t,r,i){var s={width:t.width,height:t.height,depthOrArrayLayers:t.depthOrArrayLayers},u=t.mipLevelCount,n=j6(t.format),y=RL(t.dimension),m=wL(t.usage);if(r.gpuTextureformat=n,r.dimension=t.dimension,r.format=t.format,r.width=t.width,r.height=t.height,r.depthOrArrayLayers=t.depthOrArrayLayers,r.mipLevelCount=u,r.usage=m,r.sampleCount=t.sampleCount,!i){var g=this.device.createTexture({size:s,mipLevelCount:u,format:n,dimension:y,sampleCount:t.sampleCount,usage:m}),x=g.createView();r.gpuTexture=g,r.gpuTextureView=x}},e.prototype.getFallbackSampler=function(t){var r=t.formatKind;return r===sn.Depth&&t.comparison?this.fallbackSamplerComparison:this.fallbackSamplerFiltering},e.prototype.getFallbackTexture=function(t){var r=t.dimension,i=t.formatKind;if(r===Uo.TEXTURE_2D)return i===sn.Depth?this.fallbackTexture2DDepth:this.fallbackTexture2D;if(r===Uo.TEXTURE_2D_ARRAY)return this.fallbackTexture2DArray;if(r===Uo.TEXTURE_3D)return this.fallbackTexture3D;if(r===Uo.TEXTURE_CUBE_MAP)return this.fallbackTextureCube;throw new Error("whoops")},e.prototype.createFallbackTexture=function(t,r){var i=t===Uo.TEXTURE_CUBE_MAP?6:1,s=r===sn.Float?ke.U8_RGBA_NORM:ke.D24;return this.createTexture({dimension:t,format:s,usage:as.SAMPLED,width:1,height:1,depthOrArrayLayers:i,mipLevelCount:1})},e.prototype.createBindings=function(t){return new KL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createInputLayout=function(t){return new eB({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createComputePipeline=function(t){return new JL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderPipeline=function(t){return new oB({id:this.getNextUniqueId(),device:this,descriptor:Dn({},t)})},e.prototype.createQueryPool=function(t,r){return new tB({id:this.getNextUniqueId(),device:this,descriptor:{type:t,elemCount:r}})},e.prototype.createRenderPipelineInternal=function(t,r){var i;if(t.gpuRenderPipeline===null){var s=t.descriptor,u=s.program,n=u.vertexStage,y=u.fragmentStage;if(!(n===null||y===null)){var m=s.megaStateDescriptor||{},g=m.stencilBack,x=m.stencilFront,b=Iv(m,["stencilBack","stencilFront"]),F=G0(j0);s.megaStateDescriptor=Dn(Dn(Dn({},F),{stencilBack:Dn(Dn({},F.stencilBack),g),stencilFront:Dn(Dn({},F.stencilFront),x)}),b);var R=s.megaStateDescriptor.attachmentsState[0];s.colorAttachmentFormats.forEach(function(ne,pe){s.megaStateDescriptor.attachmentsState[pe]||(s.megaStateDescriptor.attachmentsState[pe]=w7(void 0,R))});var I=kL((i=s.topology)!==null&&i!==void 0?i:Gn.TRIANGLES,s.megaStateDescriptor),U=GL(s.colorAttachmentFormats,s.megaStateDescriptor),V=jL(s.depthStencilAttachmentFormat,s.megaStateDescriptor),J=void 0;s.inputLayout!==null&&(J=s.inputLayout.buffers);var Q=s.sampleCount,te={layout:"auto",vertex:Dn(Dn({},n),{buffers:J}),primitive:I,depthStencil:V,multisample:{count:Q},fragment:Dn(Dn({},y),{targets:U})};t.gpuRenderPipeline=this.device.createRenderPipeline(te)}}},e.prototype.createReadback=function(){return new rB({id:this.getNextUniqueId(),device:this})},e.prototype.createRenderBundle=function(){return new nB({id:this.getNextUniqueId(),device:this})},e.prototype.createRenderPass=function(t){var r=this.renderPassPool.pop();r===void 0&&(r=new Ag(this));var i=this.frameCommandEncoderPool.pop();return i===void 0&&(i=this.device.createCommandEncoder()),r.beginRenderPass(i,t),r},e.prototype.createComputePass=function(){var t=this.computePassPool.pop();t===void 0&&(t=new Pg);var r=this.frameCommandEncoderPool.pop();return r===void 0&&(r=this.device.createCommandEncoder()),t.beginComputePass(r),t},e.prototype.submitPass=function(t){var r=t;r instanceof Ag?(this.frameCommandEncoderPool.push(r.frameCommandEncoder),r.finish(),this.renderPassPool.push(r)):r instanceof Pg&&(this.frameCommandEncoderPool.push(r.frameCommandEncoder),r.finish(),this.computePassPool.push(r))},e.prototype.copySubTexture2D=function(t,r,i,s,u,n,y){var m=this.device.createCommandEncoder(),g=t,x=s,b={texture:x.gpuTexture,origin:[u,n,0],mipLevel:0,aspect:"all"},F={texture:g.gpuTexture,origin:[r,i,0],mipLevel:0,aspect:"all"};mo(!!(x.usage&aa.COPY_SRC)),mo(!!(g.usage&aa.COPY_DST)),m.copyTextureToTexture(b,F,[x.width,x.height,y||1]),this.device.queue.submit([m.finish()])},e.prototype.queryLimits=function(){return{uniformBufferMaxPageWordSize:this.device.limits.maxUniformBufferBindingSize>>>2,uniformBufferWordAlignment:this.device.limits.minUniformBufferOffsetAlignment>>>2,supportedSampleCounts:[1],occlusionQueriesRecommended:!0,computeShadersSupported:!0}},e.prototype.queryTextureFormatSupported=function(t,r,i){if(YL(t)){if(!this.featureTextureCompressionBC)return!1;var s=$L(t);return r%s!==0||i%s!==0?!1:this.featureTextureCompressionBC}switch(t){case ke.U16_RGBA_NORM:return!1;case ke.F32_RGBA:return!1}return!0},e.prototype.queryPlatformAvailable=function(){return!0},e.prototype.queryVendorInfo=function(){return this},e.prototype.queryRenderPass=function(t){var r=t;return r.descriptor},e.prototype.queryRenderTarget=function(t){var r=t;return r},e.prototype.setResourceName=function(t,r){if(t.name=r,t.type===Ko.Buffer){var i=t;i.gpuBuffer.label=r}else if(t.type===Ko.Texture){var i=t;i.gpuTexture.label=r,i.gpuTextureView.label=r}else if(t.type===Ko.RenderTarget){var i=t;i.gpuTexture.label=r,i.gpuTextureView.label=r}else if(t.type===Ko.Sampler){var i=t;i.gpuSampler.label=r}else if(t.type===Ko.RenderPipeline){var i=t;i.gpuRenderPipeline!==null&&(i.gpuRenderPipeline.label=r)}},e.prototype.setResourceLeakCheck=function(t,r){},e.prototype.checkForLeaks=function(){},e.prototype.programPatched=function(t){},e.prototype.pipelineQueryReady=function(t){var r=t;return r.gpuRenderPipeline!==null},e.prototype.pipelineForceReady=function(t){var r=t;this.createRenderPipelineInternal(r,!1)},e}(),sB=function(){function e(t){this.pluginOptions=t}return e.prototype.createSwapChain=function(t){return F0(this,void 0,void 0,function(){var r,i,s,u,n,y,m,g;return T0(this,function(x){switch(x.label){case 0:if(globalThis.navigator.gpu===void 0)return[2,null];r=null,x.label=1;case 1:return x.trys.push([1,3,,4]),i=this.pluginOptions.xrCompatible,[4,globalThis.navigator.gpu.requestAdapter({xrCompatible:i})];case 2:return r=x.sent(),[3,4];case 3:return s=x.sent(),console.log(s),[3,4];case 4:return r===null?[2,null]:(u=["depth32float-stencil8","texture-compression-bc","float32-filterable"],n=u.filter(function(b){return r.features.has(b)}),[4,r.requestDevice({requiredFeatures:n})]);case 5:if(y=x.sent(),y&&(m=this.pluginOptions.onContextLost,y.lost.then(function(){m&&m()})),y===null)return[2,null];if(g=t.getContext("webgpu"),!g)return[2,null];x.label=6;case 6:return x.trys.push([6,8,,9]),[4,O7(this.pluginOptions.shaderCompilerPath)];case 7:return x.sent(),[3,9];case 8:return x.sent(),[3,9];case 9:return[2,new aB(r,y,t,g,AL,Iy&&new Iy)]}})})},e}(),uB=class{constructor(e,t){const{buffer:r,offset:i,stride:s,normalized:u,size:n,divisor:y,shaderLocation:m}=t;this.buffer=r,this.attribute={shaderLocation:m,buffer:r.get(),offset:i||0,stride:s||0,normalized:u||!1,divisor:y||0},n&&(this.attribute.size=n)}get(){return this.buffer}updateBuffer(e){this.buffer.subData(e)}destroy(){this.buffer.destroy()}},kf={[L.FLOAT]:Float32Array,[L.UNSIGNED_BYTE]:Uint8Array,[L.SHORT]:Int16Array,[L.UNSIGNED_SHORT]:Uint16Array,[L.INT]:Int32Array,[L.UNSIGNED_INT]:Uint32Array},pB={[L.POINTS]:Gn.POINTS,[L.LINES]:Gn.LINES,[L.LINE_LOOP]:Gn.LINES,[L.LINE_STRIP]:Gn.LINE_STRIP,[L.TRIANGLES]:Gn.TRIANGLES,[L.TRIANGLE_FAN]:Gn.TRIANGLES,[L.TRIANGLE_STRIP]:Gn.TRIANGLE_STRIP},lB={1:ke.F32_R,2:ke.F32_RG,3:ke.F32_RGB,4:ke.F32_RGBA},cB={[L.STATIC_DRAW]:mp.STATIC,[L.DYNAMIC_DRAW]:mp.DYNAMIC,[L.STREAM_DRAW]:mp.DYNAMIC},Fg={[L.REPEAT]:_s.REPEAT,[L.CLAMP_TO_EDGE]:_s.CLAMP_TO_EDGE,[L.MIRRORED_REPEAT]:_s.MIRRORED_REPEAT},dB={[L.NEVER]:ai.NEVER,[L.ALWAYS]:ai.ALWAYS,[L.LESS]:ai.LESS,[L.LEQUAL]:ai.LEQUAL,[L.GREATER]:ai.GREATER,[L.GEQUAL]:ai.GEQUAL,[L.EQUAL]:ai.EQUAL,[L.NOTEQUAL]:ai.NOTEQUAL},yB={[L.FRONT]:zs.FRONT,[L.BACK]:zs.BACK},Tg={[L.FUNC_ADD]:va.ADD,[L.MIN_EXT]:va.MIN,[L.MAX_EXT]:va.MAX,[L.FUNC_SUBTRACT]:va.SUBSTRACT,[L.FUNC_REVERSE_SUBTRACT]:va.REVERSE_SUBSTRACT},zh={[L.ZERO]:Bo.ZERO,[L.ONE]:Bo.ONE,[L.SRC_COLOR]:Bo.SRC,[L.ONE_MINUS_SRC_COLOR]:Bo.ONE_MINUS_SRC,[L.SRC_ALPHA]:Bo.SRC_ALPHA,[L.ONE_MINUS_SRC_ALPHA]:Bo.ONE_MINUS_SRC_ALPHA,[L.DST_COLOR]:Bo.DST,[L.ONE_MINUS_DST_COLOR]:Bo.ONE_MINUS_DST,[L.DST_ALPHA]:Bo.DST_ALPHA,[L.ONE_MINUS_DST_ALPHA]:Bo.ONE_MINUS_DST_ALPHA,[L.CONSTANT_COLOR]:Bo.CONST,[L.ONE_MINUS_CONSTANT_COLOR]:Bo.ONE_MINUS_CONSTANT,[L.CONSTANT_ALPHA]:Bo.CONST,[L.ONE_MINUS_CONSTANT_ALPHA]:Bo.ONE_MINUS_CONSTANT,[L.SRC_ALPHA_SATURATE]:Bo.SRC_ALPHA_SATURATE},_0={[L.REPLACE]:un.REPLACE,[L.KEEP]:un.KEEP,[L.ZERO]:un.ZERO,[L.INVERT]:un.INVERT,[L.INCR]:un.INCREMENT_CLAMP,[L.DECR]:un.DECREMENT_CLAMP,[L.INCR_WRAP]:un.INCREMENT_WRAP,[L.DECR_WRAP]:un.DECREMENT_WRAP},hB={[L.ALWAYS]:ai.ALWAYS,[L.EQUAL]:ai.EQUAL,[L.GEQUAL]:ai.GEQUAL,[L.GREATER]:ai.GREATER,[L.LEQUAL]:ai.LEQUAL,[L.LESS]:ai.LESS,[L.NEVER]:ai.NEVER,[L.NOTEQUAL]:ai.NOTEQUAL},fB={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121};function zf(e){return Object.prototype.toString.call(e)in fB}function mB(e,t){const r=e.length,i=Math.ceil(r/3),s=r+i,u=new Float32Array(s);for(let n=0;n<s;n+=4)u[n]=e[n/4*3],u[n+1]=e[n/4*3+1],u[n+2]=e[n/4*3+2],u[n+3]=t;return u}var _B=class{constructor(e,t){this.isDestroyed=!1;const{data:r,usage:i,type:s,isUBO:u,label:n}=t;let y;zf(r)?y=r:y=new kf[this.type||L.FLOAT](r),this.type=s,this.size=y.byteLength,this.buffer=e.createBuffer({viewOrSize:y,usage:u?xi.UNIFORM:xi.VERTEX,hint:cB[i||L.STATIC_DRAW]}),n&&e.setResourceName(this.buffer,n)}get(){return this.buffer}destroy(){this.isDestroyed||this.buffer.destroy(),this.isDestroyed=!0}subData({data:e,offset:t}){let r;zf(e)?r=e:r=new kf[this.type||L.FLOAT](e),this.buffer.setSubData(t,new Uint8Array(r.buffer))}};function pi(e,t=0){return e+=t,e+=e<<10,e+=e>>>6,e>>>0}function B7(e){return e+=e<<3,e^=e>>>11,e+=e<<15,e>>>0}function Sg(){return 0}var gB=class{constructor(){this.keys=[],this.values=[]}},Vh=class{constructor(e,t){this.keyEqualFunc=e,this.keyHashFunc=t,this.buckets=new Map}findBucketIndex(e,t){for(let r=0;r<e.keys.length;r++)if(this.keyEqualFunc(t,e.keys[r]))return r;return-1}findBucket(e){const t=this.keyHashFunc(e);return this.buckets.get(t)}get(e){const t=this.findBucket(e);if(t===void 0)return null;const r=this.findBucketIndex(t,e);return r<0?null:t.values[r]}add(e,t){const r=this.keyHashFunc(e);this.buckets.get(r)===void 0&&this.buckets.set(r,new gB);const i=this.buckets.get(r);i.keys.push(e),i.values.push(t)}delete(e){const t=this.findBucket(e);if(t===void 0)return;const r=this.findBucketIndex(t,e);r!==-1&&(t.keys.splice(r,1),t.values.splice(r,1))}clear(){this.buckets.clear()}size(){let e=0;for(const t of this.buckets.values())e+=t.values.length;return e}*values(){for(const e of this.buckets.values())for(let t=e.values.length-1;t>=0;t--)yield e.values[t]}};function wg(e,t){return e=pi(e,t.blendMode),e=pi(e,t.blendSrcFactor),e=pi(e,t.blendDstFactor),e}function vB(e,t){return e=wg(e,t.rgbBlendState),e=wg(e,t.alphaBlendState),e=pi(e,t.channelWriteMask),e}function EB(e,t){return e=pi(e,t.r<<24|t.g<<16|t.b<<8|t.a),e}function xB(e,t){var r,i,s,u,n,y,m,g;for(let x=0;x<t.attachmentsState.length;x++)e=vB(e,t.attachmentsState[x]);return e=EB(e,t.blendConstant||Qf),e=pi(e,t.depthCompare),e=pi(e,t.depthWrite?1:0),e=pi(e,(r=t.stencilFront)==null?void 0:r.compare),e=pi(e,(i=t.stencilFront)==null?void 0:i.passOp),e=pi(e,(s=t.stencilFront)==null?void 0:s.failOp),e=pi(e,(u=t.stencilFront)==null?void 0:u.depthFailOp),e=pi(e,(n=t.stencilBack)==null?void 0:n.compare),e=pi(e,(y=t.stencilBack)==null?void 0:y.passOp),e=pi(e,(m=t.stencilBack)==null?void 0:m.failOp),e=pi(e,(g=t.stencilBack)==null?void 0:g.depthFailOp),e=pi(e,t.stencilWrite?1:0),e=pi(e,t.cullMode),e=pi(e,t.frontFace?1:0),e=pi(e,t.polygonOffset?1:0),e}function PB(e){let t=0;t=pi(t,e.program.id),e.inputLayout!==null&&(t=pi(t,e.inputLayout.id)),t=xB(t,e.megaStateDescriptor);for(let r=0;r<e.colorAttachmentFormats.length;r++)t=pi(t,e.colorAttachmentFormats[r]||0);return t=pi(t,e.depthStencilAttachmentFormat||0),B7(t)}function bB(e){let t=0;if(e.samplerBindings)for(let r=0;r<e.samplerBindings.length;r++){const i=e.samplerBindings[r];i!==null&&i.texture!==null&&(t=pi(t,i.texture.id))}if(e.uniformBufferBindings)for(let r=0;r<e.uniformBufferBindings.length;r++){const i=e.uniformBufferBindings[r];i!==null&&i.buffer!==null&&(t=pi(t,i.buffer.id),t=pi(t,i.binding),t=pi(t,i.offset),t=pi(t,i.size))}if(e.storageBufferBindings)for(let r=0;r<e.storageBufferBindings.length;r++){const i=e.storageBufferBindings[r];i!==null&&i.buffer!==null&&(t=pi(t,i.buffer.id),t=pi(t,i.binding),t=pi(t,i.offset),t=pi(t,i.size))}if(e.storageTextureBindings)for(let r=0;r<e.storageTextureBindings.length;r++){const i=e.storageTextureBindings[r];i!==null&&i.texture!==null&&(t=pi(t,i.texture.id),t=pi(t,i.binding))}return B7(t)}function AB(e,t){var r,i,s,u;return((r=e.vertex)==null?void 0:r.glsl)===((i=t.vertex)==null?void 0:i.glsl)&&((s=e.fragment)==null?void 0:s.glsl)===((u=t.fragment)==null?void 0:u.glsl)}function FB(e){var t,r;return{vertex:{glsl:(t=e.vertex)==null?void 0:t.glsl},fragment:{glsl:(r=e.fragment)==null?void 0:r.glsl}}}var TB=class{constructor(e){this.device=e,this.bindingsCache=new Vh(FO,bB),this.renderPipelinesCache=new Vh(RO,PB),this.inputLayoutsCache=new Vh(MO,Sg),this.programCache=new Vh(AB,Sg)}createBindings(e){var t;let r=this.bindingsCache.get(e);if(r===null){const i=OO(e);i.uniformBufferBindings=(t=i.uniformBufferBindings)==null?void 0:t.filter(({size:s})=>s&&s>0),r=this.device.createBindings(i),this.bindingsCache.add(i,r)}return r}createRenderPipeline(e){let t=this.renderPipelinesCache.get(e);if(t===null){const r=LO(e);r.colorAttachmentFormats=r.colorAttachmentFormats.filter(i=>i),t=this.device.createRenderPipeline(r),this.renderPipelinesCache.add(r,t)}return t}createInputLayout(e){e.vertexBufferDescriptors=e.vertexBufferDescriptors.filter(r=>!!r);let t=this.inputLayoutsCache.get(e);if(t===null){const r=kO(e);t=this.device.createInputLayout(r),this.inputLayoutsCache.add(r,t)}return t}createProgram(e){let t=this.programCache.get(e);if(t===null){const r=FB(e);t=this.device.createProgram(e),this.programCache.add(r,t)}return t}destroy(){for(const e of this.bindingsCache.values())e.destroy();for(const e of this.renderPipelinesCache.values())e.destroy();for(const e of this.inputLayoutsCache.values())e.destroy();for(const e of this.programCache.values())e.destroy();this.bindingsCache.clear(),this.renderPipelinesCache.clear(),this.inputLayoutsCache.clear(),this.programCache.clear()}},SB=class{constructor(e,t){const{data:r,type:i,count:s=0}=t;let u;zf(r)?u=r:u=new kf[this.type||L.UNSIGNED_INT](r),this.type=i,this.count=s,this.indexBuffer=e.createBuffer({viewOrSize:u,usage:xi.INDEX})}get(){return this.indexBuffer}subData({data:e}){let t;zf(e)?t=e:t=new kf[this.type||L.UNSIGNED_INT](e),this.indexBuffer.setSubData(0,new Uint8Array(t.buffer))}destroy(){this.indexBuffer.destroy()}};function Rg(e){return!!(e&&e.texture)}var U7=class{constructor(e,t){this.device=e,this.options=t,this.isDestroy=!1;const{wrapS:r=L.CLAMP_TO_EDGE,wrapT:i=L.CLAMP_TO_EDGE,aniso:s,mag:u=L.NEAREST,min:n=L.NEAREST}=t;this.createTexture(t),this.sampler=e.createSampler({addressModeU:Fg[r],addressModeV:Fg[i],minFilter:n===L.NEAREST?xn.POINT:xn.BILINEAR,magFilter:u===L.NEAREST?xn.POINT:xn.BILINEAR,mipmapFilter:sa.NO_MIP,maxAnisotropy:s})}createTexture(e){const{type:t=L.UNSIGNED_BYTE,width:r,height:i,flipY:s=!1,format:u=L.RGBA,alignment:n=1,usage:y=f1.SAMPLED,unorm:m=!1,label:g}=e;let{data:x}=e;this.width=r,this.height=i;let b=ke.U8_RGBA_RT;if(t===L.UNSIGNED_BYTE&&u===L.RGBA)b=m?ke.U8_RGBA_NORM:ke.U8_RGBA_RT;else if(t===L.UNSIGNED_BYTE&&u===L.LUMINANCE)b=ke.U8_LUMINANCE;else if(t===L.FLOAT&&u===L.LUMINANCE)b=ke.F32_LUMINANCE;else if(t===L.FLOAT&&u===L.RGB)this.device.queryVendorInfo().platformString==="WebGPU"?(x&&(x=mB(x,0)),b=ke.F32_RGBA):b=ke.F32_RGB;else if(t===L.FLOAT&&u===L.RGBA)b=ke.F32_RGBA;else if(t===L.FLOAT&&u===L.RED)b=ke.F32_R;else throw new Error(`create texture error, type: ${t}, format: ${u}`);this.texture=this.device.createTexture({format:b,width:r,height:i,usage:y===f1.SAMPLED?as.SAMPLED:as.RENDER_TARGET,pixelStore:{unpackFlipY:s,packAlignment:n},mipLevelCount:1}),g&&this.device.setResourceName(this.texture,g),x&&this.texture.setImageData([x])}get(){return this.texture}update(e){const{data:t}=e;this.texture.setImageData([t])}bind(){}resize({width:e,height:t}){(this.width!==e||this.height!==t)&&this.destroy(),this.options.width=e,this.options.height=t,this.createTexture(this.options),this.isDestroy=!1}getSize(){return[this.width,this.height]}destroy(){var e;!this.isDestroy&&!this.texture.destroyed&&((e=this.texture)==null||e.destroy()),this.isDestroy=!0}},k7=class{constructor(e,t){this.device=e,this.options=t,this.createColorRenderTarget(),this.createDepthRenderTarget()}createColorRenderTarget(e=!1){const{width:t,height:r,color:i}=this.options;i&&(Rg(i)?(e&&i.resize({width:t,height:r}),this.colorTexture=i.get(),this.colorRenderTarget=this.device.createRenderTargetFromTexture(this.colorTexture),this.width=i.width,this.height=i.height):t&&r&&(this.colorTexture=this.device.createTexture({format:ke.U8_RGBA_RT,usage:as.RENDER_TARGET,width:t,height:r}),this.colorRenderTarget=this.device.createRenderTargetFromTexture(this.colorTexture),this.width=t,this.height=r))}createDepthRenderTarget(e=!1){const{width:t,height:r,depth:i}=this.options;i&&(Rg(i)?(e&&i.resize({width:t,height:r}),this.depthTexture=i.get(),this.depthRenderTarget=this.device.createRenderTargetFromTexture(this.depthTexture),this.width=i.width,this.height=i.height):t&&r&&(this.depthTexture=this.device.createTexture({format:ke.D24_S8,usage:as.RENDER_TARGET,width:t,height:r}),this.depthRenderTarget=this.device.createRenderTargetFromTexture(this.depthTexture),this.width=t,this.height=r))}get(){return this.colorRenderTarget}destroy(){var e,t;(e=this.colorRenderTarget)==null||e.destroy(),(t=this.depthRenderTarget)==null||t.destroy()}resize({width:e,height:t}){(this.width!==e||this.height!==t)&&(this.destroy(),this.colorTexture.destroyed=!0,this.depthTexture.destroyed=!0,this.options.width=e,this.options.height=t,this.createColorRenderTarget(!0),this.createDepthRenderTarget(!0))}},wB=Object.defineProperty,RB=Object.defineProperties,CB=Object.getOwnPropertyDescriptors,Cg=Object.getOwnPropertySymbols,IB=Object.prototype.hasOwnProperty,MB=Object.prototype.propertyIsEnumerable,Ig=(e,t,r)=>t in e?wB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u1=(e,t)=>{for(var r in t||(t={}))IB.call(t,r)&&Ig(e,r,t[r]);if(Cg)for(var r of Cg(t))MB.call(t,r)&&Ig(e,r,t[r]);return e},NB=(e,t)=>RB(e,CB(t)),{isPlainObject:DB,isTypedArray:OB,isNil:Mg}=Qn,LB=class{constructor(e,t,r){this.device=e,this.options=t,this.service=r,this.destroyed=!1,this.uniforms={},this.vertexBuffers=[];const{vs:i,fs:s,attributes:u,uniforms:n,count:y,elements:m,diagnosticDerivativeUniformityEnabled:g}=t;this.options=t;const x=g?"":this.service.viewportOrigin===fp.UPPER_LEFT?"diagnostic(off,derivative_uniformity);":"";this.program=r.renderCache.createProgram({vertex:{glsl:i},fragment:{glsl:s,postprocess:I=>x+I}}),n&&(this.uniforms=this.extractUniforms(n));const b=[];let F=0;Object.keys(u).forEach(I=>{const U=u[I],V=U.get();this.vertexBuffers.push(V.get());const{offset:J=0,stride:Q=0,size:te=1,divisor:ne=0,shaderLocation:pe=0}=U.attribute;b.push({arrayStride:Q||te*4,stepMode:x1.VERTEX,attributes:[{format:lB[te],shaderLocation:pe,offset:J,divisor:ne}]}),F=V.size/te}),y||(this.options.count=F),m&&(this.indexBuffer=m.get());const R=r.renderCache.createInputLayout({vertexBufferDescriptors:b,indexBufferFormat:m?ke.U32_R:null,program:this.program});this.inputLayout=R,this.pipeline=this.createPipeline(t)}createPipeline(e,t){var r;const{primitive:i=L.TRIANGLES,depth:s,cull:u,blend:n,stencil:y}=e,m=this.initDepthDrawParams({depth:s}),g=!!(m&&m.enable),x=this.initCullDrawParams({cull:u}),b=!!(x&&x.enable),F=this.getBlendDrawParams({blend:n}),R=!!(F&&F.enable),I=this.getStencilDrawParams({stencil:y}),U=!!(I&&I.enable),V=this.device.createRenderPipeline({inputLayout:this.inputLayout,program:this.program,topology:pB[i],colorAttachmentFormats:[ke.U8_RGBA_RT],depthStencilAttachmentFormat:ke.D24_S8,megaStateDescriptor:{attachmentsState:[t?{channelWriteMask:ga.ALL,rgbBlendState:{blendMode:va.ADD,blendSrcFactor:Bo.ONE,blendDstFactor:Bo.ZERO},alphaBlendState:{blendMode:va.ADD,blendSrcFactor:Bo.ONE,blendDstFactor:Bo.ZERO}}:{channelWriteMask:U&&I.opFront.zpass===un.REPLACE?ga.NONE:ga.ALL,rgbBlendState:{blendMode:R&&F.equation.rgb||va.ADD,blendSrcFactor:R&&F.func.srcRGB||Bo.SRC_ALPHA,blendDstFactor:R&&F.func.dstRGB||Bo.ONE_MINUS_SRC_ALPHA},alphaBlendState:{blendMode:R&&F.equation.alpha||va.ADD,blendSrcFactor:R&&F.func.srcAlpha||Bo.ONE,blendDstFactor:R&&F.func.dstAlpha||Bo.ONE}}],blendConstant:R?Qf:void 0,depthWrite:g,depthCompare:g&&m.func||ai.LESS,cullMode:b&&x.face||zs.NONE,stencilWrite:U,stencilFront:{compare:U?I.func.cmp:ai.ALWAYS,passOp:I.opFront.zpass,failOp:I.opFront.fail,depthFailOp:I.opFront.zfail,mask:I.opFront.mask},stencilBack:{compare:U?I.func.cmp:ai.ALWAYS,passOp:I.opBack.zpass,failOp:I.opBack.fail,depthFailOp:I.opBack.zfail,mask:I.opBack.mask}}});return U&&!Mg((r=y==null?void 0:y.func)==null?void 0:r.ref)&&(V.stencilFuncReference=y.func.ref),V}updateAttributesAndElements(){}updateAttributes(){}addUniforms(e){this.uniforms=u1(u1({},this.uniforms),this.extractUniforms(e))}draw(e,t){const r=u1(u1({},this.options),e),{count:i=0,instances:s,elements:u,uniforms:n={},uniformBuffers:y,textures:m}=r;this.uniforms=u1(u1({},this.uniforms),this.extractUniforms(n));const{renderPass:g,currentFramebuffer:x,width:b,height:F}=this.service;this.pipeline=this.createPipeline(r,t);const R=this.service.device,I=R.swapChainHeight;if(R.swapChainHeight=(x==null?void 0:x.height)||F,g.setViewport(0,0,(x==null?void 0:x.width)||b,(x==null?void 0:x.height)||F),R.swapChainHeight=I,g.setPipeline(this.pipeline),Mg(this.pipeline.stencilFuncReference)||g.setStencilReference(this.pipeline.stencilFuncReference),g.setVertexInput(this.inputLayout,this.vertexBuffers.map(U=>({buffer:U})),u?{buffer:this.indexBuffer,offset:0}:null),y&&(this.bindings=R.createBindings({pipeline:this.pipeline,uniformBufferBindings:y.map((U,V)=>{const J=U;return{binding:V,buffer:J.get(),size:J.size}}),samplerBindings:m==null?void 0:m.map(U=>({texture:U.texture,sampler:U.sampler}))})),this.bindings&&(g.setBindings(this.bindings),Object.keys(this.uniforms).forEach(U=>{const V=this.uniforms[U];V instanceof U7?this.uniforms[U]=V.get():V instanceof k7&&(this.uniforms[U]=V.get().texture)}),this.program.setUniformsLegacy(this.uniforms)),u){const U=u.count;U===0?g.draw(i,s):g.drawIndexed(U,s)}else g.draw(i,s)}destroy(){var e,t,r;(e=this.vertexBuffers)==null||e.forEach(i=>i.destroy()),(t=this.indexBuffer)==null||t.destroy(),(r=this.bindings)==null||r.destroy(),this.pipeline.destroy(),this.destroyed=!0}initDepthDrawParams({depth:e}){if(e)return{enable:e.enable===void 0?!0:!!e.enable,mask:e.mask===void 0?!0:!!e.mask,func:dB[e.func||L.LESS],range:e.range||[0,1]}}getBlendDrawParams({blend:e}){const{enable:t,func:r,equation:i,color:s=[0,0,0,0]}=e||{};return{enable:!!t,func:{srcRGB:zh[r&&r.srcRGB||L.SRC_ALPHA],srcAlpha:zh[r&&r.srcAlpha||L.SRC_ALPHA],dstRGB:zh[r&&r.dstRGB||L.ONE_MINUS_SRC_ALPHA],dstAlpha:zh[r&&r.dstAlpha||L.ONE_MINUS_SRC_ALPHA]},equation:{rgb:Tg[i&&i.rgb||L.FUNC_ADD],alpha:Tg[i&&i.alpha||L.FUNC_ADD]},color:s}}getStencilDrawParams({stencil:e}){const{enable:t,mask:r=4294967295,func:i={cmp:L.ALWAYS,ref:0,mask:4294967295},opFront:s={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP},opBack:u={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP}}=e||{};return{enable:!!t,mask:r,func:NB(u1({},i),{cmp:hB[i.cmp]}),opFront:{fail:_0[s.fail],zfail:_0[s.zfail],zpass:_0[s.zpass],mask:i.mask},opBack:{fail:_0[u.fail],zfail:_0[u.zfail],zpass:_0[u.zpass],mask:i.mask}}}initCullDrawParams({cull:e}){if(e){const{enable:t,face:r=L.BACK}=e;return{enable:!!t,face:yB[r]}}}extractUniforms(e){const t={};return Object.keys(e).forEach(r=>{this.extractUniformsRecursively(r,e[r],t,"")}),t}extractUniformsRecursively(e,t,r,i){if(t===null||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)&&typeof t[0]=="number"||OB(t)||t===""||"resize"in t){r[`${i&&i+"."}${e}`]=t;return}DB(t)&&Object.keys(t).forEach(s=>{this.extractUniformsRecursively(s,t[s],r,`${i&&i+"."}${e}`)}),Array.isArray(t)&&t.forEach((s,u)=>{Object.keys(s).forEach(n=>{this.extractUniformsRecursively(n,s[n],r,`${i&&i+"."}${e}[${u}]`)})})}};function BB(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}var n2=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),{isUndefined:Hh}=Qn,UB=class{constructor(){this.uniformBuffers=[],this.queryVerdorInfo=()=>this.device.queryVendorInfo().platformString,this.createModel=e=>new LB(this.device,e,this),this.createAttribute=e=>new uB(this.device,e),this.createBuffer=e=>new _B(this.device,e),this.createElements=e=>new SB(this.device,e),this.createTexture2D=e=>new U7(this.device,e),this.createFramebuffer=e=>new k7(this.device,e),this.useFramebuffer=(e,t)=>{this.currentFramebuffer=e,this.beginFrame(),t(),this.endFrame(),this.currentFramebuffer=null},this.useFramebufferAsync=(e,t)=>n2(this,null,function*(){this.currentFramebuffer=e,this.preRenderPass=this.renderPass,this.beginFrame(),yield t(),this.endFrame(),this.currentFramebuffer=null,this.renderPass=this.preRenderPass}),this.clear=e=>{const{color:t,depth:r,stencil:i,framebuffer:s=null}=e;if(s)s.clearOptions={color:t,depth:r,stencil:i};else{const u=this.queryVerdorInfo();if(u==="WebGL1"){const n=this.getGLContext();Hh(i)?Hh(r)||(n.clearDepth(r),n.clear(n.DEPTH_BUFFER_BIT)):(n.clearStencil(i),n.clear(n.STENCIL_BUFFER_BIT))}else if(u==="WebGL2"){const n=this.getGLContext();Hh(i)?Hh(r)||n.clearBufferfv(n.DEPTH,0,[r]):n.clearBufferiv(n.STENCIL,0,[i])}}},this.viewport=({width:e,height:t})=>{this.swapChain.configureSwapChain(e,t),this.createMainColorDepthRT(e,t),this.width=e,this.height=t},this.readPixels=e=>{const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n=this.device.createReadback(),y=t.colorTexture,m=n.readTextureSync(y,r,this.viewportOrigin===fp.LOWER_LEFT?i:this.height-i,s,u,new Uint8Array(s*u*4));if(this.viewportOrigin!==fp.LOWER_LEFT)for(let g=0;g<m.length;g+=4){const x=m[g];m[g]=m[g+2],m[g+2]=x}return n.destroy(),m},this.readPixelsAsync=e=>n2(this,null,function*(){const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n=this.device.createReadback(),y=t.colorTexture,m=yield n.readTexture(y,r,this.viewportOrigin===fp.LOWER_LEFT?i:this.height-i,s,u,new Uint8Array(s*u*4));if(this.viewportOrigin!==fp.LOWER_LEFT)for(let g=0;g<m.length;g+=4){const x=m[g];m[g]=m[g+2],m[g+2]=x}return n.destroy(),m}),this.getViewportSize=()=>({width:this.width,height:this.height}),this.getContainer=()=>{var e;return(e=this.canvas)==null?void 0:e.parentElement},this.getCanvas=()=>this.canvas,this.getGLContext=()=>this.device.gl,this.destroy=()=>{var e;this.canvas=null,(e=this.uniformBuffers)==null||e.forEach(t=>{t.destroy()}),this.device.destroy(),this.renderCache.destroy()}}init(e,t){return n2(this,null,function*(){const{enableWebGPU:r,shaderCompilerPath:i,antialias:s}=t;this.canvas=e;const n=yield(r?new sB({shaderCompilerPath:i}):new vL({targets:["webgl2","webgl1"],antialias:s,onContextLost(m){console.warn("context lost",m)},onContextCreationError(m){console.warn("context creation error",m)},onContextRestored(m){console.warn("context restored",m)}})).createSwapChain(e);n.configureSwapChain(e.width,e.height),this.device=n.getDevice(),this.swapChain=n,this.renderCache=new TB(this.device),this.currentFramebuffer=null,this.viewportOrigin=this.device.queryVendorInfo().viewportOrigin;const y=this.device.gl;this.extensionObject={OES_texture_float:!BB(y)&&this.device.OES_texture_float},this.createMainColorDepthRT(e.width,e.height)})}createMainColorDepthRT(e,t){this.mainColorRT&&this.mainColorRT.destroy(),this.mainDepthRT&&this.mainDepthRT.destroy(),this.mainColorRT=this.device.createRenderTargetFromTexture(this.device.createTexture({format:ke.U8_RGBA_RT,width:e,height:t,usage:as.RENDER_TARGET})),this.mainDepthRT=this.device.createRenderTargetFromTexture(this.device.createTexture({format:ke.D24_S8,width:e,height:t,usage:as.RENDER_TARGET}))}beginFrame(){this.device.beginFrame();const{currentFramebuffer:e,swapChain:t,mainColorRT:r,mainDepthRT:i}=this,s=e?e.colorRenderTarget:r,u=e?null:t.getOnscreenTexture(),n=e?e.depthRenderTarget:i,{color:y=[0,0,0,0],depth:m=1,stencil:g=0}=(e==null?void 0:e.clearOptions)||{},x=s?ky(y[0]*255,y[1]*255,y[2]*255,y[3]):Qf,b=n?m:void 0,F=n?g:void 0,R=this.device.createRenderPass({colorAttachment:[s],colorResolveTo:[u],colorClearColor:[x],colorStore:[!0],depthStencilAttachment:n,depthClearValue:b,stencilClearValue:F});this.renderPass=R}endFrame(){this.device.submitPass(this.renderPass),this.device.endFrame()}getPointSizeRange(){const e=this.device.gl;return e.getParameter(e.ALIASED_POINT_SIZE_RANGE)}testExtension(e){return!!this.getGLContext().getExtension(e)}setState(){}setBaseState(){}setCustomLayerDefaults(){}setDirty(e){this.isDirty=e}getDirty(){return this.isDirty}},z7={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){var r=function(N){return N instanceof Uint8Array||N instanceof Uint16Array||N instanceof Uint32Array||N instanceof Int8Array||N instanceof Int16Array||N instanceof Int32Array||N instanceof Float32Array||N instanceof Float64Array||N instanceof Uint8ClampedArray},i=function(N,ie){for(var xe=Object.keys(ie),et=0;et<xe.length;++et)N[xe[et]]=ie[xe[et]];return N},s=`
- `;function u(N){return typeof atob<"u"?atob(N):"base64:"+N}function n(N){var ie=new Error("(regl) "+N);throw console.error(ie),ie}function y(N,ie){N||n(ie)}function m(N){return N?": "+N:""}function g(N,ie,xe){N in ie||n("unknown parameter ("+N+")"+m(xe)+". possible values: "+Object.keys(ie).join())}function x(N,ie){r(N)||n("invalid parameter type"+m(ie)+". must be a typed array")}function b(N,ie){switch(ie){case"number":return typeof N=="number";case"object":return typeof N=="object";case"string":return typeof N=="string";case"boolean":return typeof N=="boolean";case"function":return typeof N=="function";case"undefined":return typeof N>"u";case"symbol":return typeof N=="symbol"}}function F(N,ie,xe){b(N,ie)||n("invalid parameter type"+m(xe)+". expected "+ie+", got "+typeof N)}function R(N,ie){N>=0&&(N|0)===N||n("invalid parameter type, ("+N+")"+m(ie)+". must be a nonnegative integer")}function I(N,ie,xe){ie.indexOf(N)<0&&n("invalid value"+m(xe)+". must be one of: "+ie)}var U=["gl","canvas","container","attributes","pixelRatio","extensions","optionalExtensions","profile","onDone"];function V(N){Object.keys(N).forEach(function(ie){U.indexOf(ie)<0&&n('invalid regl constructor argument "'+ie+'". must be one of '+U)})}function J(N,ie){for(N=N+"";N.length<ie;)N=" "+N;return N}function Q(){this.name="unknown",this.lines=[],this.index={},this.hasErrors=!1}function te(N,ie){this.number=N,this.line=ie,this.errors=[]}function ne(N,ie,xe){this.file=N,this.line=ie,this.message=xe}function pe(){var N=new Error,ie=(N.stack||N).toString(),xe=/compileProcedure.*\n\s*at.*\((.*)\)/.exec(ie);if(xe)return xe[1];var et=/compileProcedure.*\n\s*at\s+(.*)(\n|$)/.exec(ie);return et?et[1]:"unknown"}function Oe(){var N=new Error,ie=(N.stack||N).toString(),xe=/at REGLCommand.*\n\s+at.*\((.*)\)/.exec(ie);if(xe)return xe[1];var et=/at REGLCommand.*\n\s+at\s+(.*)\n/.exec(ie);return et?et[1]:"unknown"}function Ee(N,ie){var xe=N.split(`
- `),et=1,gt=0,tt={unknown:new Q,0:new Q};tt.unknown.name=tt[0].name=ie||pe(),tt.unknown.lines.push(new te(0,""));for(var Ye=0;Ye<xe.length;++Ye){var Ot=xe[Ye],Rt=/^\s*#\s*(\w+)\s+(.+)\s*$/.exec(Ot);if(Rt)switch(Rt[1]){case"line":var Xt=/(\d+)(\s+\d+)?/.exec(Rt[2]);Xt&&(et=Xt[1]|0,Xt[2]&&(gt=Xt[2]|0,gt in tt||(tt[gt]=new Q)));break;case"define":var Ut=/SHADER_NAME(_B64)?\s+(.*)$/.exec(Rt[2]);Ut&&(tt[gt].name=Ut[1]?u(Ut[2]):Ut[2]);break}tt[gt].lines.push(new te(et++,Ot))}return Object.keys(tt).forEach(function(Gt){var $t=tt[Gt];$t.lines.forEach(function(Ct){$t.index[Ct.number]=Ct})}),tt}function He(N){var ie=[];return N.split(`
- `).forEach(function(xe){if(!(xe.length<5)){var et=/^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(xe);et?ie.push(new ne(et[1]|0,et[2]|0,et[3].trim())):xe.length>0&&ie.push(new ne("unknown",0,xe))}}),ie}function ft(N,ie){ie.forEach(function(xe){var et=N[xe.file];if(et){var gt=et.index[xe.line];if(gt){gt.errors.push(xe),et.hasErrors=!0;return}}N.unknown.hasErrors=!0,N.unknown.lines[0].errors.push(xe)})}function Ge(N,ie,xe,et,gt){if(!N.getShaderParameter(ie,N.COMPILE_STATUS)){var tt=N.getShaderInfoLog(ie),Ye=et===N.FRAGMENT_SHADER?"fragment":"vertex";Fr(xe,"string",Ye+" shader source must be a string",gt);var Ot=Ee(xe,gt),Rt=He(tt);ft(Ot,Rt),Object.keys(Ot).forEach(function(Xt){var Ut=Ot[Xt];if(!Ut.hasErrors)return;var Gt=[""],$t=[""];function Ct(jt,je){Gt.push(jt),$t.push(je||"")}Ct("file number "+Xt+": "+Ut.name+`
- `,"color:red;text-decoration:underline;font-weight:bold"),Ut.lines.forEach(function(jt){if(jt.errors.length>0){Ct(J(jt.number,4)+"| ","background-color:yellow; font-weight:bold"),Ct(jt.line+s,"color:red; background-color:yellow; font-weight:bold");var je=0;jt.errors.forEach(function(pt){var Lt=pt.message,tr=/^\s*'(.*)'\s*:\s*(.*)$/.exec(Lt);if(tr){var At=tr[1];switch(Lt=tr[2],At){case"assign":At="=";break}je=Math.max(jt.line.indexOf(At,je),0)}else je=0;Ct(J("| ",6)),Ct(J("^^^",je+3)+s,"font-weight:bold"),Ct(J("| ",6)),Ct(Lt+s,"font-weight:bold")}),Ct(J("| ",6)+s)}else Ct(J(jt.number,4)+"| "),Ct(jt.line+s,"color:red")}),typeof document<"u"&&!window.chrome?($t[0]=Gt.join("%c"),console.log.apply(console,$t)):console.log(Gt.join(""))}),y.raise("Error compiling "+Ye+" shader, "+Ot[0].name)}}function Ae(N,ie,xe,et,gt){if(!N.getProgramParameter(ie,N.LINK_STATUS)){var tt=N.getProgramInfoLog(ie),Ye=Ee(xe,gt),Ot=Ee(et,gt),Rt='Error linking program with vertex shader, "'+Ot[0].name+'", and fragment shader "'+Ye[0].name+'"';typeof document<"u"?console.log("%c"+Rt+s+"%c"+tt,"color:red;text-decoration:underline;font-weight:bold","color:red"):console.log(Rt+s+tt),y.raise(Rt)}}function Be(N){N._commandRef=pe()}function ze(N,ie,xe,et){Be(N);function gt(Rt){return Rt?et.id(Rt):0}N._fragId=gt(N.static.frag),N._vertId=gt(N.static.vert);function tt(Rt,Xt){Object.keys(Xt).forEach(function(Ut){Rt[et.id(Ut)]=!0})}var Ye=N._uniformSet={};tt(Ye,ie.static),tt(Ye,ie.dynamic);var Ot=N._attributeSet={};tt(Ot,xe.static),tt(Ot,xe.dynamic),N._hasCount="count"in N.static||"count"in N.dynamic||"elements"in N.static||"elements"in N.dynamic}function st(N,ie){var xe=Oe();n(N+" in command "+(ie||pe())+(xe==="unknown"?"":" called from "+xe))}function Vt(N,ie,xe){N||st(ie,xe||pe())}function ir(N,ie,xe,et){N in ie||st("unknown parameter ("+N+")"+m(xe)+". possible values: "+Object.keys(ie).join(),et||pe())}function Fr(N,ie,xe,et){b(N,ie)||st("invalid parameter type"+m(xe)+". expected "+ie+", got "+typeof N,et||pe())}function Yr(N){N()}function mr(N,ie,xe){N.texture?I(N.texture._texture.internalformat,ie,"unsupported texture format for attachment"):I(N.renderbuffer._renderbuffer.format,xe,"unsupported renderbuffer format for attachment")}var Er=33071,qr=9728,Jr=9984,_o=9985,So=9986,oo=9987,Wi=5120,bo=5121,Ni=5122,$e=5123,Yt=5124,Sr=5125,Ft=5126,xr=32819,io=32820,go=33635,to=34042,Kr=36193,Ao={};Ao[Wi]=Ao[bo]=1,Ao[Ni]=Ao[$e]=Ao[Kr]=Ao[go]=Ao[xr]=Ao[io]=2,Ao[Yt]=Ao[Sr]=Ao[Ft]=Ao[to]=4;function $i(N,ie){return N===io||N===xr||N===go?2:N===to?4:Ao[N]*ie}function Qo(N){return!(N&N-1)&&!!N}function ti(N,ie,xe){var et,gt=ie.width,tt=ie.height,Ye=ie.channels;y(gt>0&><=xe.maxTextureSize&&tt>0&&tt<=xe.maxTextureSize,"invalid texture shape"),(N.wrapS!==Er||N.wrapT!==Er)&&y(Qo(gt)&&Qo(tt),"incompatible wrap mode for texture, both width and height must be power of 2"),ie.mipmask===1?gt!==1&&tt!==1&&y(N.minFilter!==Jr&&N.minFilter!==So&&N.minFilter!==_o&&N.minFilter!==oo,"min filter requires mipmap"):(y(Qo(gt)&&Qo(tt),"texture must be a square power of 2 to support mipmapping"),y(ie.mipmask===(gt<<1)-1,"missing or incomplete mipmap data")),ie.type===Ft&&(xe.extensions.indexOf("oes_texture_float_linear")<0&&y(N.minFilter===qr&&N.magFilter===qr,"filter not supported, must enable oes_texture_float_linear"),y(!N.genMipmaps,"mipmap generation not supported with float textures"));var Ot=ie.images;for(et=0;et<16;++et)if(Ot[et]){var Rt=gt>>et,Xt=tt>>et;y(ie.mipmask&1<<et,"missing mipmap data");var Ut=Ot[et];if(y(Ut.width===Rt&&Ut.height===Xt,"invalid shape for mip images"),y(Ut.format===ie.format&&Ut.internalformat===ie.internalformat&&Ut.type===ie.type,"incompatible type for mip image"),!Ut.compressed)if(Ut.data){var Gt=Math.ceil($i(Ut.type,Ye)*Rt/Ut.unpackAlignment)*Ut.unpackAlignment;y(Ut.data.byteLength===Gt*Xt,"invalid data for image, buffer size is inconsistent with image format")}else Ut.element||Ut.copy}else N.genMipmaps||y((ie.mipmask&1<<et)===0,"extra mipmap data");ie.compressed&&y(!N.genMipmaps,"mipmap generation for compressed images not supported")}function Pn(N,ie,xe,et){var gt=N.width,tt=N.height,Ye=N.channels;y(gt>0&><=et.maxTextureSize&&tt>0&&tt<=et.maxTextureSize,"invalid texture shape"),y(gt===tt,"cube map must be square"),y(ie.wrapS===Er&&ie.wrapT===Er,"wrap mode not supported by cube map");for(var Ot=0;Ot<xe.length;++Ot){var Rt=xe[Ot];y(Rt.width===gt&&Rt.height===tt,"inconsistent cube map face shape"),ie.genMipmaps&&(y(!Rt.compressed,"can not generate mipmap for compressed textures"),y(Rt.mipmask===1,"can not specify mipmaps and generate mipmaps"));for(var Xt=Rt.images,Ut=0;Ut<16;++Ut){var Gt=Xt[Ut];if(Gt){var $t=gt>>Ut,Ct=tt>>Ut;y(Rt.mipmask&1<<Ut,"missing mipmap data"),y(Gt.width===$t&&Gt.height===Ct,"invalid shape for mip images"),y(Gt.format===N.format&&Gt.internalformat===N.internalformat&&Gt.type===N.type,"incompatible type for mip image"),Gt.compressed||(Gt.data?y(Gt.data.byteLength===$t*Ct*Math.max($i(Gt.type,Ye),Gt.unpackAlignment),"invalid data for image, buffer size is inconsistent with image format"):Gt.element||Gt.copy)}}}}var se=i(y,{optional:Yr,raise:n,commandRaise:st,command:Vt,parameter:g,commandParameter:ir,constructor:V,type:F,commandType:Fr,isTypedArray:x,nni:R,oneOf:I,shaderError:Ge,linkError:Ae,callSite:Oe,saveCommandRef:Be,saveDrawInfo:ze,framebufferFormat:mr,guessCommand:pe,texture2D:ti,textureCube:Pn}),bn=0,ja=0;function An(N,ie){this.id=bn++,this.type=N,this.data=ie}function ss(N){return N.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function si(N){if(N.length===0)return[];var ie=N.charAt(0),xe=N.charAt(N.length-1);if(N.length>1&&ie===xe&&(ie==='"'||ie==="'"))return['"'+ss(N.substr(1,N.length-2))+'"'];var et=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(N);if(et)return si(N.substr(0,et.index)).concat(si(et[1])).concat(si(N.substr(et.index+et[0].length)));var gt=N.split(".");if(gt.length===1)return['"'+ss(N)+'"'];for(var tt=[],Ye=0;Ye<gt.length;++Ye)tt=tt.concat(si(gt[Ye]));return tt}function Fn(N){return"["+si(N).join("][")+"]"}function pa(N,ie){return new An(N,Fn(ie+""))}function Tn(N){return typeof N=="function"&&!N._reglType||N instanceof An}function vs(N,ie){return typeof N=="function"?new An(ja,N):N}var zi={DynamicVariable:An,define:pa,isDynamic:Tn,unbox:vs,accessor:Fn},us={next:typeof requestAnimationFrame=="function"?function(N){return requestAnimationFrame(N)}:function(N){return setTimeout(N,16)},cancel:typeof cancelAnimationFrame=="function"?function(N){return cancelAnimationFrame(N)}:clearTimeout},xa=typeof performance<"u"&&performance.now?function(){return performance.now()}:function(){return+new Date};function Hs(){var N={"":0},ie=[""];return{id:function(xe){var et=N[xe];return et||(et=N[xe]=ie.length,ie.push(xe),et)},str:function(xe){return ie[xe]}}}function Zu(N,ie,xe){var et=document.createElement("canvas");i(et.style,{border:0,margin:0,padding:0,top:0,left:0}),N.appendChild(et),N===document.body&&(et.style.position="absolute",i(N.style,{margin:0,padding:0}));function gt(){var Ot=window.innerWidth,Rt=window.innerHeight;if(N!==document.body){var Xt=N.getBoundingClientRect();Ot=Xt.right-Xt.left,Rt=Xt.bottom-Xt.top}et.width=xe*Ot,et.height=xe*Rt,i(et.style,{width:Ot+"px",height:Rt+"px"})}var tt;N!==document.body&&typeof ResizeObserver=="function"?(tt=new ResizeObserver(function(){setTimeout(gt)}),tt.observe(N)):window.addEventListener("resize",gt,!1);function Ye(){tt?tt.disconnect():window.removeEventListener("resize",gt),N.removeChild(et)}return gt(),{canvas:et,onDestroy:Ye}}function Gs(N,ie){function xe(et){try{return N.getContext(et,ie)}catch{return null}}return xe("webgl")||xe("experimental-webgl")||xe("webgl-experimental")}function vp(N){return typeof N.nodeName=="string"&&typeof N.appendChild=="function"&&typeof N.getBoundingClientRect=="function"}function js(N){return typeof N.drawArrays=="function"||typeof N.drawElements=="function"}function Ma(N){return typeof N=="string"?N.split():(se(Array.isArray(N),"invalid extension array"),N)}function Na(N){return typeof N=="string"?(se(typeof document<"u","not supported outside of DOM"),document.querySelector(N)):N}function Es(N){var ie=N||{},xe,et,gt,tt,Ye={},Ot=[],Rt=[],Xt=typeof window>"u"?1:window.devicePixelRatio,Ut=!1,Gt=function(jt){jt&&se.raise(jt)},$t=function(){};if(typeof ie=="string"?(se(typeof document<"u","selector queries only supported in DOM enviroments"),xe=document.querySelector(ie),se(xe,"invalid query string for element")):typeof ie=="object"?vp(ie)?xe=ie:js(ie)?(tt=ie,gt=tt.canvas):(se.constructor(ie),"gl"in ie?tt=ie.gl:"canvas"in ie?gt=Na(ie.canvas):"container"in ie&&(et=Na(ie.container)),"attributes"in ie&&(Ye=ie.attributes,se.type(Ye,"object","invalid context attributes")),"extensions"in ie&&(Ot=Ma(ie.extensions)),"optionalExtensions"in ie&&(Rt=Ma(ie.optionalExtensions)),"onDone"in ie&&(se.type(ie.onDone,"function","invalid or missing onDone callback"),Gt=ie.onDone),"profile"in ie&&(Ut=!!ie.profile),"pixelRatio"in ie&&(Xt=+ie.pixelRatio,se(Xt>0,"invalid pixel ratio"))):se.raise("invalid arguments to regl"),xe&&(xe.nodeName.toLowerCase()==="canvas"?gt=xe:et=xe),!tt){if(!gt){se(typeof document<"u","must manually specify webgl context outside of DOM environments");var Ct=Zu(et||document.body,Gt,Xt);if(!Ct)return null;gt=Ct.canvas,$t=Ct.onDestroy}Ye.premultipliedAlpha===void 0&&(Ye.premultipliedAlpha=!0),tt=Gs(gt,Ye)}return tt?{gl:tt,canvas:gt,container:et,extensions:Ot,optionalExtensions:Rt,pixelRatio:Xt,profile:Ut,onDone:Gt,onDestroy:$t}:($t(),Gt("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function Yu(N,ie){var xe={};function et(Ye){se.type(Ye,"string","extension name must be string");var Ot=Ye.toLowerCase(),Rt;try{Rt=xe[Ot]=N.getExtension(Ot)}catch{}return!!Rt}for(var gt=0;gt<ie.extensions.length;++gt){var tt=ie.extensions[gt];if(!et(tt))return ie.onDestroy(),ie.onDone('"'+tt+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return ie.optionalExtensions.forEach(et),{extensions:xe,restore:function(){Object.keys(xe).forEach(function(Ye){if(xe[Ye]&&!et(Ye))throw new Error("(regl): error restoring extension "+Ye)})}}}function Go(N,ie){for(var xe=Array(N),et=0;et<N;++et)xe[et]=ie(et);return xe}var k=5120,G=5121,W=5122,oe=5123,ye=5124,Ie=5125,Le=5126;function q(N){for(var ie=16;ie<=1<<28;ie*=16)if(N<=ie)return ie;return 0}function ge(N){var ie,xe;return ie=(N>65535)<<4,N>>>=ie,xe=(N>255)<<3,N>>>=xe,ie|=xe,xe=(N>15)<<2,N>>>=xe,ie|=xe,xe=(N>3)<<1,N>>>=xe,ie|=xe,ie|N>>1}function We(){var N=Go(8,function(){return[]});function ie(tt){var Ye=q(tt),Ot=N[ge(Ye)>>2];return Ot.length>0?Ot.pop():new ArrayBuffer(Ye)}function xe(tt){N[ge(tt.byteLength)>>2].push(tt)}function et(tt,Ye){var Ot=null;switch(tt){case k:Ot=new Int8Array(ie(Ye),0,Ye);break;case G:Ot=new Uint8Array(ie(Ye),0,Ye);break;case W:Ot=new Int16Array(ie(2*Ye),0,Ye);break;case oe:Ot=new Uint16Array(ie(2*Ye),0,Ye);break;case ye:Ot=new Int32Array(ie(4*Ye),0,Ye);break;case Ie:Ot=new Uint32Array(ie(4*Ye),0,Ye);break;case Le:Ot=new Float32Array(ie(4*Ye),0,Ye);break;default:return null}return Ot.length!==Ye?Ot.subarray(0,Ye):Ot}function gt(tt){xe(tt.buffer)}return{alloc:ie,free:xe,allocType:et,freeType:gt}}var ht=We();ht.zero=We();var Nt=3408,lt=3410,wt=3411,_r=3412,yr=3413,dt=3414,or=3415,Wt=33901,Zt=33902,no=3379,er=3386,Fo=34921,Jo=36347,vo=36348,Mo=35661,ao=35660,Vi=34930,wo=36349,ei=34076,ko=34024,so=7936,Eo=7937,Ln=7938,yu=35724,Di=34047,gi=36063,hu=34852,Wa=3553,hi=34067,Ws=34069,ln=33984,fi=6408,Hi=5126,ui=5121,Jn=36160,jn=36053,Kp=36064,Pa=16384,Rc=function(N,ie){var xe=1;ie.ext_texture_filter_anisotropic&&(xe=N.getParameter(Di));var et=1,gt=1;ie.webgl_draw_buffers&&(et=N.getParameter(hu),gt=N.getParameter(gi));var tt=!!ie.oes_texture_float;if(tt){var Ye=N.createTexture();N.bindTexture(Wa,Ye),N.texImage2D(Wa,0,fi,1,1,0,fi,Hi,null);var Ot=N.createFramebuffer();if(N.bindFramebuffer(Jn,Ot),N.framebufferTexture2D(Jn,Kp,Wa,Ye,0),N.bindTexture(Wa,null),N.checkFramebufferStatus(Jn)!==jn)tt=!1;else{N.viewport(0,0,1,1),N.clearColor(1,0,0,1),N.clear(Pa);var Rt=ht.allocType(Hi,4);N.readPixels(0,0,1,1,fi,Hi,Rt),N.getError()?tt=!1:(N.deleteFramebuffer(Ot),N.deleteTexture(Ye),tt=Rt[0]===1),ht.freeType(Rt)}}var Xt=typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent)),Ut=!0;if(!Xt){var Gt=N.createTexture(),$t=ht.allocType(ui,36);N.activeTexture(ln),N.bindTexture(hi,Gt),N.texImage2D(Ws,0,fi,3,3,0,fi,ui,$t),ht.freeType($t),N.bindTexture(hi,null),N.deleteTexture(Gt),Ut=!N.getError()}return{colorBits:[N.getParameter(lt),N.getParameter(wt),N.getParameter(_r),N.getParameter(yr)],depthBits:N.getParameter(dt),stencilBits:N.getParameter(or),subpixelBits:N.getParameter(Nt),extensions:Object.keys(ie).filter(function(Ct){return!!ie[Ct]}),maxAnisotropic:xe,maxDrawbuffers:et,maxColorAttachments:gt,pointSizeDims:N.getParameter(Wt),lineWidthDims:N.getParameter(Zt),maxViewportDims:N.getParameter(er),maxCombinedTextureUnits:N.getParameter(Mo),maxCubeMapSize:N.getParameter(ei),maxRenderbufferSize:N.getParameter(ko),maxTextureUnits:N.getParameter(Vi),maxTextureSize:N.getParameter(no),maxAttributes:N.getParameter(Fo),maxVertexUniforms:N.getParameter(Jo),maxVertexTextureUnits:N.getParameter(ao),maxVaryingVectors:N.getParameter(vo),maxFragmentUniforms:N.getParameter(wo),glsl:N.getParameter(yu),renderer:N.getParameter(Eo),vendor:N.getParameter(so),version:N.getParameter(Ln),readFloat:tt,npotTextureCube:Ut}};function X(N){return!!N&&typeof N=="object"&&Array.isArray(N.shape)&&Array.isArray(N.stride)&&typeof N.offset=="number"&&N.shape.length===N.stride.length&&(Array.isArray(N.data)||r(N.data))}var re=function(N){return Object.keys(N).map(function(ie){return N[ie]})},we={shape:Sn,flatten:Xi};function rt(N,ie,xe){for(var et=0;et<ie;++et)xe[et]=N[et]}function zt(N,ie,xe,et){for(var gt=0,tt=0;tt<ie;++tt)for(var Ye=N[tt],Ot=0;Ot<xe;++Ot)et[gt++]=Ye[Ot]}function wr(N,ie,xe,et,gt,tt){for(var Ye=tt,Ot=0;Ot<ie;++Ot)for(var Rt=N[Ot],Xt=0;Xt<xe;++Xt)for(var Ut=Rt[Xt],Gt=0;Gt<et;++Gt)gt[Ye++]=Ut[Gt]}function Oo(N,ie,xe,et,gt){for(var tt=1,Ye=xe+1;Ye<ie.length;++Ye)tt*=ie[Ye];var Ot=ie[xe];if(ie.length-xe===4){var Rt=ie[xe+1],Xt=ie[xe+2],Ut=ie[xe+3];for(Ye=0;Ye<Ot;++Ye)wr(N[Ye],Rt,Xt,Ut,et,gt),gt+=tt}else for(Ye=0;Ye<Ot;++Ye)Oo(N[Ye],ie,xe+1,et,gt),gt+=tt}function Xi(N,ie,xe,et){var gt=1;if(ie.length)for(var tt=0;tt<ie.length;++tt)gt*=ie[tt];else gt=0;var Ye=et||ht.allocType(xe,gt);switch(ie.length){case 0:break;case 1:rt(N,ie[0],Ye);break;case 2:zt(N,ie[0],ie[1],Ye);break;case 3:wr(N,ie[0],ie[1],ie[2],Ye,0);break;default:Oo(N,ie,0,Ye,0)}return Ye}function Sn(N){for(var ie=[],xe=N;xe.length;xe=xe[0])ie.push(xe.length);return ie}var cn={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121},Xa=5120,T1=5122,S1=5124,Ep=5121,Cc=5123,Qp=5125,w1=5126,Dl=5126,Bn={int8:Xa,int16:T1,int32:S1,uint8:Ep,uint16:Cc,uint32:Qp,float:w1,float32:Dl},fu=35048,mu=35040,xs={dynamic:fu,stream:mu,static:35044},Ps=we.flatten,Xs=we.shape,Jp=35044,ba=35040,Oi=5121,_u=5126,Zs=[];Zs[5120]=1,Zs[5122]=2,Zs[5124]=4,Zs[5121]=1,Zs[5123]=2,Zs[5125]=4,Zs[5126]=4;function Ol(N){return cn[Object.prototype.toString.call(N)]|0}function R1(N,ie){for(var xe=0;xe<ie.length;++xe)N[xe]=ie[xe]}function Ll(N,ie,xe,et,gt,tt,Ye){for(var Ot=0,Rt=0;Rt<xe;++Rt)for(var Xt=0;Xt<et;++Xt)N[Ot++]=ie[gt*Rt+tt*Xt+Ye]}function Ic(N,ie,xe,et){var gt=0,tt={};function Ye(je){this.id=gt++,this.buffer=N.createBuffer(),this.type=je,this.usage=Jp,this.byteLength=0,this.dimension=1,this.dtype=Oi,this.persistentData=null,xe.profile&&(this.stats={size:0})}Ye.prototype.bind=function(){N.bindBuffer(this.type,this.buffer)},Ye.prototype.destroy=function(){$t(this)};var Ot=[];function Rt(je,pt){var Lt=Ot.pop();return Lt||(Lt=new Ye(je)),Lt.bind(),Gt(Lt,pt,ba,0,1,!1),Lt}function Xt(je){Ot.push(je)}function Ut(je,pt,Lt){je.byteLength=pt.byteLength,N.bufferData(je.type,pt,Lt)}function Gt(je,pt,Lt,tr,At,ar){var Mt;if(je.usage=Lt,Array.isArray(pt)){if(je.dtype=tr||_u,pt.length>0){var rr;if(Array.isArray(pt[0])){Mt=Xs(pt);for(var Tt=1,Qt=1;Qt<Mt.length;++Qt)Tt*=Mt[Qt];je.dimension=Tt,rr=Ps(pt,Mt,je.dtype),Ut(je,rr,Lt),ar?je.persistentData=rr:ht.freeType(rr)}else if(typeof pt[0]=="number"){je.dimension=At;var Or=ht.allocType(je.dtype,pt.length);R1(Or,pt),Ut(je,Or,Lt),ar?je.persistentData=Or:ht.freeType(Or)}else r(pt[0])?(je.dimension=pt[0].length,je.dtype=tr||Ol(pt[0])||_u,rr=Ps(pt,[pt.length,pt[0].length],je.dtype),Ut(je,rr,Lt),ar?je.persistentData=rr:ht.freeType(rr)):se.raise("invalid buffer data")}}else if(r(pt))je.dtype=tr||Ol(pt),je.dimension=At,Ut(je,pt,Lt),ar&&(je.persistentData=new Uint8Array(new Uint8Array(pt.buffer)));else if(X(pt)){Mt=pt.shape;var ro=pt.stride,Jt=pt.offset,Dt=0,vt=0,Lr=0,xo=0;Mt.length===1?(Dt=Mt[0],vt=1,Lr=ro[0],xo=0):Mt.length===2?(Dt=Mt[0],vt=Mt[1],Lr=ro[0],xo=ro[1]):se.raise("invalid shape"),je.dtype=tr||Ol(pt.data)||_u,je.dimension=vt;var sr=ht.allocType(je.dtype,Dt*vt);Ll(sr,pt.data,Dt,vt,Lr,xo,Jt),Ut(je,sr,Lt),ar?je.persistentData=sr:ht.freeType(sr)}else pt instanceof ArrayBuffer?(je.dtype=Oi,je.dimension=At,Ut(je,pt,Lt),ar&&(je.persistentData=new Uint8Array(new Uint8Array(pt)))):se.raise("invalid buffer data")}function $t(je){ie.bufferCount--,et(je);var pt=je.buffer;se(pt,"buffer must not be deleted already"),N.deleteBuffer(pt),je.buffer=null,delete tt[je.id]}function Ct(je,pt,Lt,tr){ie.bufferCount++;var At=new Ye(pt);tt[At.id]=At;function ar(Tt){var Qt=Jp,Or=null,ro=0,Jt=0,Dt=1;return Array.isArray(Tt)||r(Tt)||X(Tt)||Tt instanceof ArrayBuffer?Or=Tt:typeof Tt=="number"?ro=Tt|0:Tt&&(se.type(Tt,"object","buffer arguments must be an object, a number or an array"),"data"in Tt&&(se(Or===null||Array.isArray(Or)||r(Or)||X(Or),"invalid data for buffer"),Or=Tt.data),"usage"in Tt&&(se.parameter(Tt.usage,xs,"invalid buffer usage"),Qt=xs[Tt.usage]),"type"in Tt&&(se.parameter(Tt.type,Bn,"invalid buffer type"),Jt=Bn[Tt.type]),"dimension"in Tt&&(se.type(Tt.dimension,"number","invalid dimension"),Dt=Tt.dimension|0),"length"in Tt&&(se.nni(ro,"buffer length must be a nonnegative integer"),ro=Tt.length|0)),At.bind(),Or?Gt(At,Or,Qt,Jt,Dt,tr):(ro&&N.bufferData(At.type,ro,Qt),At.dtype=Jt||Oi,At.usage=Qt,At.dimension=Dt,At.byteLength=ro),xe.profile&&(At.stats.size=At.byteLength*Zs[At.dtype]),ar}function Mt(Tt,Qt){se(Qt+Tt.byteLength<=At.byteLength,"invalid buffer subdata call, buffer is too small. Can't write data of size "+Tt.byteLength+" starting from offset "+Qt+" to a buffer of size "+At.byteLength),N.bufferSubData(At.type,Qt,Tt)}function rr(Tt,Qt){var Or=(Qt||0)|0,ro;if(At.bind(),r(Tt)||Tt instanceof ArrayBuffer)Mt(Tt,Or);else if(Array.isArray(Tt)){if(Tt.length>0)if(typeof Tt[0]=="number"){var Jt=ht.allocType(At.dtype,Tt.length);R1(Jt,Tt),Mt(Jt,Or),ht.freeType(Jt)}else if(Array.isArray(Tt[0])||r(Tt[0])){ro=Xs(Tt);var Dt=Ps(Tt,ro,At.dtype);Mt(Dt,Or),ht.freeType(Dt)}else se.raise("invalid buffer data")}else if(X(Tt)){ro=Tt.shape;var vt=Tt.stride,Lr=0,xo=0,sr=0,ho=0;ro.length===1?(Lr=ro[0],xo=1,sr=vt[0],ho=0):ro.length===2?(Lr=ro[0],xo=ro[1],sr=vt[0],ho=vt[1]):se.raise("invalid shape");var eo=Array.isArray(Tt.data)?At.dtype:Ol(Tt.data),Wr=ht.allocType(eo,Lr*xo);Ll(Wr,Tt.data,Lr,xo,sr,ho,Tt.offset),Mt(Wr,Or),ht.freeType(Wr)}else se.raise("invalid data for buffer subdata");return ar}return Lt||ar(je),ar._reglType="buffer",ar._buffer=At,ar.subdata=rr,xe.profile&&(ar.stats=At.stats),ar.destroy=function(){$t(At)},ar}function jt(){re(tt).forEach(function(je){je.buffer=N.createBuffer(),N.bindBuffer(je.type,je.buffer),N.bufferData(je.type,je.persistentData||je.byteLength,je.usage)})}return xe.profile&&(ie.getTotalBufferSize=function(){var je=0;return Object.keys(tt).forEach(function(pt){je+=tt[pt].stats.size}),je}),{create:Ct,createStream:Rt,destroyStream:Xt,clear:function(){re(tt).forEach($t),Ot.forEach($t)},getBuffer:function(je){return je&&je._buffer instanceof Ye?je._buffer:null},restore:jt,_initBuffer:Gt}}var Mc=0,Nc=0,C1=1,I1=1,$0=4,el=4,bs={points:Mc,point:Nc,lines:C1,line:I1,triangles:$0,triangle:el,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},M1=0,Un=1,$u=4,gu=5120,Da=5121,vu=5122,Za=5123,Ys=5124,Oa=5125,$s=34963,Eu=35040,N1=35044;function D1(N,ie,xe,et){var gt={},tt=0,Ye={uint8:Da,uint16:Za};ie.oes_element_index_uint&&(Ye.uint32=Oa);function Ot(jt){this.id=tt++,gt[this.id]=this,this.buffer=jt,this.primType=$u,this.vertCount=0,this.type=0}Ot.prototype.bind=function(){this.buffer.bind()};var Rt=[];function Xt(jt){var je=Rt.pop();return je||(je=new Ot(xe.create(null,$s,!0,!1)._buffer)),Gt(je,jt,Eu,-1,-1,0,0),je}function Ut(jt){Rt.push(jt)}function Gt(jt,je,pt,Lt,tr,At,ar){jt.buffer.bind();var Mt;if(je){var rr=ar;!ar&&(!r(je)||X(je)&&!r(je.data))&&(rr=ie.oes_element_index_uint?Oa:Za),xe._initBuffer(jt.buffer,je,pt,rr,3)}else N.bufferData($s,At,pt),jt.buffer.dtype=Mt||Da,jt.buffer.usage=pt,jt.buffer.dimension=3,jt.buffer.byteLength=At;if(Mt=ar,!ar){switch(jt.buffer.dtype){case Da:case gu:Mt=Da;break;case Za:case vu:Mt=Za;break;case Oa:case Ys:Mt=Oa;break;default:se.raise("unsupported type for element array")}jt.buffer.dtype=Mt}jt.type=Mt,se(Mt!==Oa||!!ie.oes_element_index_uint,"32 bit element buffers not supported, enable oes_element_index_uint first");var Tt=tr;Tt<0&&(Tt=jt.buffer.byteLength,Mt===Za?Tt>>=1:Mt===Oa&&(Tt>>=2)),jt.vertCount=Tt;var Qt=Lt;if(Lt<0){Qt=$u;var Or=jt.buffer.dimension;Or===1&&(Qt=M1),Or===2&&(Qt=Un),Or===3&&(Qt=$u)}jt.primType=Qt}function $t(jt){et.elementsCount--,se(jt.buffer!==null,"must not double destroy elements"),delete gt[jt.id],jt.buffer.destroy(),jt.buffer=null}function Ct(jt,je){var pt=xe.create(null,$s,!0),Lt=new Ot(pt._buffer);et.elementsCount++;function tr(At){if(!At)pt(),Lt.primType=$u,Lt.vertCount=0,Lt.type=Da;else if(typeof At=="number")pt(At),Lt.primType=$u,Lt.vertCount=At|0,Lt.type=Da;else{var ar=null,Mt=N1,rr=-1,Tt=-1,Qt=0,Or=0;Array.isArray(At)||r(At)||X(At)?ar=At:(se.type(At,"object","invalid arguments for elements"),"data"in At&&(ar=At.data,se(Array.isArray(ar)||r(ar)||X(ar),"invalid data for element buffer")),"usage"in At&&(se.parameter(At.usage,xs,"invalid element buffer usage"),Mt=xs[At.usage]),"primitive"in At&&(se.parameter(At.primitive,bs,"invalid element buffer primitive"),rr=bs[At.primitive]),"count"in At&&(se(typeof At.count=="number"&&At.count>=0,"invalid vertex count for elements"),Tt=At.count|0),"type"in At&&(se.parameter(At.type,Ye,"invalid buffer type"),Or=Ye[At.type]),"length"in At?Qt=At.length|0:(Qt=Tt,Or===Za||Or===vu?Qt*=2:(Or===Oa||Or===Ys)&&(Qt*=4))),Gt(Lt,ar,Mt,rr,Tt,Qt,Or)}return tr}return tr(jt),tr._reglType="elements",tr._elements=Lt,tr.subdata=function(At,ar){return pt.subdata(At,ar),tr},tr.destroy=function(){$t(Lt)},tr}return{create:Ct,createStream:Xt,destroyStream:Ut,getElements:function(jt){return typeof jt=="function"&&jt._elements instanceof Ot?jt._elements:null},clear:function(){re(gt).forEach($t)}}}var ri=new Float32Array(1),q0=new Uint32Array(ri.buffer),Bl=5123;function Dc(N){for(var ie=ht.allocType(Bl,N.length),xe=0;xe<N.length;++xe)if(isNaN(N[xe]))ie[xe]=65535;else if(N[xe]===1/0)ie[xe]=31744;else if(N[xe]===-1/0)ie[xe]=64512;else{ri[0]=N[xe];var et=q0[0],gt=et>>>31<<15,tt=(et<<1>>>24)-127,Ye=et>>13&1023;if(tt<-24)ie[xe]=gt;else if(tt<-14){var Ot=-14-tt;ie[xe]=gt+(Ye+1024>>Ot)}else tt>15?ie[xe]=gt+31744:ie[xe]=gt+(tt+15<<10)+Ye}return ie}function Li(N){return Array.isArray(N)||r(N)}var Oc=function(N){return!(N&N-1)&&!!N},O1=34467,la=3553,qs=34067,As=34069,xu=6408,Ul=6406,xp=6407,ps=6409,tl=6410,Pu=32854,Ks=32855,Lc=36194,rl=32819,li=32820,kl=33635,K0=34042,bu=6402,ol=34041,Bc=35904,zl=35906,Qs=36193,Au=33776,qu=33777,Pp=33778,Ku=33779,Qu=35986,Uc=35987,Ju=34798,Ya=35840,kc=35841,zc=35842,Vc=35843,Fu=36196,Fs=5121,bp=5123,il=5125,Tu=5126,Q0=10242,Vl=10243,Hc=10497,Hl=33071,L1=33648,Gl=10240,Gc=10241,nl=9728,jc=9729,ep=9984,Wc=9985,Su=9986,ci=9987,jl=33170,Ts=4352,wu=4353,No=4354,di=34046,La=3317,al=37440,Ap=37441,sl=37443,B1=37444,Wl=33984,ul=[ep,Su,Wc,ci],Ru=[0,ps,tl,xp,xu],dn={};dn[ps]=dn[Ul]=dn[bu]=1,dn[ol]=dn[tl]=2,dn[xp]=dn[Bc]=3,dn[xu]=dn[zl]=4;function bi(N){return"[object "+N+"]"}var Fp=bi("HTMLCanvasElement"),Xc=bi("OffscreenCanvas"),Gi=bi("CanvasRenderingContext2D"),hr=bi("ImageBitmap"),ca=bi("HTMLImageElement"),pl=bi("HTMLVideoElement"),Tp=Object.keys(cn).concat([Fp,Xc,Gi,hr,ca,pl]),ea=[];ea[Fs]=1,ea[Tu]=4,ea[Qs]=2,ea[bp]=2,ea[il]=4;var oi=[];oi[Pu]=2,oi[Ks]=2,oi[Lc]=2,oi[ol]=4,oi[Au]=.5,oi[qu]=.5,oi[Pp]=1,oi[Ku]=1,oi[Qu]=.5,oi[Uc]=1,oi[Ju]=1,oi[Ya]=.5,oi[kc]=.25,oi[zc]=.5,oi[Vc]=.25,oi[Fu]=.5;function Xl(N){return Array.isArray(N)&&(N.length===0||typeof N[0]=="number")}function Kt(N){if(!Array.isArray(N))return!1;var ie=N.length;return!(ie===0||!Li(N[0]))}function Js(N){return Object.prototype.toString.call(N)}function ll(N){return Js(N)===Fp}function Zl(N){return Js(N)===Xc}function $a(N){return Js(N)===Gi}function Aa(N){return Js(N)===hr}function Yl(N){return Js(N)===ca}function $l(N){return Js(N)===pl}function ta(N){if(!N)return!1;var ie=Js(N);return Tp.indexOf(ie)>=0?!0:Xl(N)||Kt(N)||X(N)}function Ss(N){return cn[Object.prototype.toString.call(N)]|0}function U1(N,ie){var xe=ie.length;switch(N.type){case Fs:case bp:case il:case Tu:var et=ht.allocType(N.type,xe);et.set(ie),N.data=et;break;case Qs:N.data=Dc(ie);break;default:se.raise("unsupported texture type, must specify a typed array")}}function Sp(N,ie){return ht.allocType(N.type===Qs?Tu:N.type,ie)}function ql(N,ie){N.type===Qs?(N.data=Dc(ie),ht.freeType(ie)):N.data=ie}function Zc(N,ie,xe,et,gt,tt){for(var Ye=N.width,Ot=N.height,Rt=N.channels,Xt=Ye*Ot*Rt,Ut=Sp(N,Xt),Gt=0,$t=0;$t<Ot;++$t)for(var Ct=0;Ct<Ye;++Ct)for(var jt=0;jt<Rt;++jt)Ut[Gt++]=ie[xe*Ct+et*$t+gt*jt+tt];ql(N,Ut)}function Fa(N,ie,xe,et,gt,tt){var Ye;if(typeof oi[N]<"u"?Ye=oi[N]:Ye=dn[N]*ea[ie],tt&&(Ye*=6),gt){for(var Ot=0,Rt=xe;Rt>=1;)Ot+=Ye*Rt*Rt,Rt/=2;return Ot}else return Ye*xe*et}function Ba(N,ie,xe,et,gt,tt,Ye){var Ot={"don't care":Ts,"dont care":Ts,nice:No,fast:wu},Rt={repeat:Hc,clamp:Hl,mirror:L1},Xt={nearest:nl,linear:jc},Ut=i({mipmap:ci,"nearest mipmap nearest":ep,"linear mipmap nearest":Wc,"nearest mipmap linear":Su,"linear mipmap linear":ci},Xt),Gt={none:0,browser:B1},$t={uint8:Fs,rgba4:rl,rgb565:kl,"rgb5 a1":li},Ct={alpha:Ul,luminance:ps,"luminance alpha":tl,rgb:xp,rgba:xu,rgba4:Pu,"rgb5 a1":Ks,rgb565:Lc},jt={};ie.ext_srgb&&(Ct.srgb=Bc,Ct.srgba=zl),ie.oes_texture_float&&($t.float32=$t.float=Tu),ie.oes_texture_half_float&&($t.float16=$t["half float"]=Qs),ie.webgl_depth_texture&&(i(Ct,{depth:bu,"depth stencil":ol}),i($t,{uint16:bp,uint32:il,"depth stencil":K0})),ie.webgl_compressed_texture_s3tc&&i(jt,{"rgb s3tc dxt1":Au,"rgba s3tc dxt1":qu,"rgba s3tc dxt3":Pp,"rgba s3tc dxt5":Ku}),ie.webgl_compressed_texture_atc&&i(jt,{"rgb atc":Qu,"rgba atc explicit alpha":Uc,"rgba atc interpolated alpha":Ju}),ie.webgl_compressed_texture_pvrtc&&i(jt,{"rgb pvrtc 4bppv1":Ya,"rgb pvrtc 2bppv1":kc,"rgba pvrtc 4bppv1":zc,"rgba pvrtc 2bppv1":Vc}),ie.webgl_compressed_texture_etc1&&(jt["rgb etc1"]=Fu);var je=Array.prototype.slice.call(N.getParameter(O1));Object.keys(jt).forEach(function(fe){var ot=jt[fe];je.indexOf(ot)>=0&&(Ct[fe]=ot)});var pt=Object.keys(Ct);xe.textureFormats=pt;var Lt=[];Object.keys(Ct).forEach(function(fe){var ot=Ct[fe];Lt[ot]=fe});var tr=[];Object.keys($t).forEach(function(fe){var ot=$t[fe];tr[ot]=fe});var At=[];Object.keys(Xt).forEach(function(fe){var ot=Xt[fe];At[ot]=fe});var ar=[];Object.keys(Ut).forEach(function(fe){var ot=Ut[fe];ar[ot]=fe});var Mt=[];Object.keys(Rt).forEach(function(fe){var ot=Rt[fe];Mt[ot]=fe});var rr=pt.reduce(function(fe,ot){var Ke=Ct[ot];return Ke===ps||Ke===Ul||Ke===ps||Ke===tl||Ke===bu||Ke===ol||ie.ext_srgb&&(Ke===Bc||Ke===zl)?fe[Ke]=Ke:Ke===Ks||ot.indexOf("rgba")>=0?fe[Ke]=xu:fe[Ke]=xp,fe},{});function Tt(){this.internalformat=xu,this.format=xu,this.type=Fs,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=B1,this.width=0,this.height=0,this.channels=0}function Qt(fe,ot){fe.internalformat=ot.internalformat,fe.format=ot.format,fe.type=ot.type,fe.compressed=ot.compressed,fe.premultiplyAlpha=ot.premultiplyAlpha,fe.flipY=ot.flipY,fe.unpackAlignment=ot.unpackAlignment,fe.colorSpace=ot.colorSpace,fe.width=ot.width,fe.height=ot.height,fe.channels=ot.channels}function Or(fe,ot){if(!(typeof ot!="object"||!ot)){if("premultiplyAlpha"in ot&&(se.type(ot.premultiplyAlpha,"boolean","invalid premultiplyAlpha"),fe.premultiplyAlpha=ot.premultiplyAlpha),"flipY"in ot&&(se.type(ot.flipY,"boolean","invalid texture flip"),fe.flipY=ot.flipY),"alignment"in ot&&(se.oneOf(ot.alignment,[1,2,4,8],"invalid texture unpack alignment"),fe.unpackAlignment=ot.alignment),"colorSpace"in ot&&(se.parameter(ot.colorSpace,Gt,"invalid colorSpace"),fe.colorSpace=Gt[ot.colorSpace]),"type"in ot){var Ke=ot.type;se(ie.oes_texture_float||!(Ke==="float"||Ke==="float32"),"you must enable the OES_texture_float extension in order to use floating point textures."),se(ie.oes_texture_half_float||!(Ke==="half float"||Ke==="float16"),"you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures."),se(ie.webgl_depth_texture||!(Ke==="uint16"||Ke==="uint32"||Ke==="depth stencil"),"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),se.parameter(Ke,$t,"invalid texture type"),fe.type=$t[Ke]}var ur=fe.width,fo=fe.height,ii=fe.channels,Z=!1;"shape"in ot?(se(Array.isArray(ot.shape)&&ot.shape.length>=2,"shape must be an array"),ur=ot.shape[0],fo=ot.shape[1],ot.shape.length===3&&(ii=ot.shape[2],se(ii>0&&ii<=4,"invalid number of channels"),Z=!0),se(ur>=0&&ur<=xe.maxTextureSize,"invalid width"),se(fo>=0&&fo<=xe.maxTextureSize,"invalid height")):("radius"in ot&&(ur=fo=ot.radius,se(ur>=0&&ur<=xe.maxTextureSize,"invalid radius")),"width"in ot&&(ur=ot.width,se(ur>=0&&ur<=xe.maxTextureSize,"invalid width")),"height"in ot&&(fo=ot.height,se(fo>=0&&fo<=xe.maxTextureSize,"invalid height")),"channels"in ot&&(ii=ot.channels,se(ii>0&&ii<=4,"invalid number of channels"),Z=!0)),fe.width=ur|0,fe.height=fo|0,fe.channels=ii|0;var ue=!1;if("format"in ot){var Pe=ot.format;se(ie.webgl_depth_texture||!(Pe==="depth"||Pe==="depth stencil"),"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),se.parameter(Pe,Ct,"invalid texture format");var Qe=fe.internalformat=Ct[Pe];fe.format=rr[Qe],Pe in $t&&("type"in ot||(fe.type=$t[Pe])),Pe in jt&&(fe.compressed=!0),ue=!0}!Z&&ue?fe.channels=dn[fe.format]:Z&&!ue?fe.channels!==Ru[fe.format]&&(fe.format=fe.internalformat=Ru[fe.channels]):ue&&Z&&se(fe.channels===dn[fe.format],"number of channels inconsistent with specified format")}}function ro(fe){N.pixelStorei(al,fe.flipY),N.pixelStorei(Ap,fe.premultiplyAlpha),N.pixelStorei(sl,fe.colorSpace),N.pixelStorei(La,fe.unpackAlignment)}function Jt(){Tt.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function Dt(fe,ot){var Ke=null;if(ta(ot)?Ke=ot:ot&&(se.type(ot,"object","invalid pixel data type"),Or(fe,ot),"x"in ot&&(fe.xOffset=ot.x|0),"y"in ot&&(fe.yOffset=ot.y|0),ta(ot.data)&&(Ke=ot.data)),se(!fe.compressed||Ke instanceof Uint8Array,"compressed texture data must be stored in a uint8array"),ot.copy){se(!Ke,"can not specify copy and data field for the same texture");var ur=gt.viewportWidth,fo=gt.viewportHeight;fe.width=fe.width||ur-fe.xOffset,fe.height=fe.height||fo-fe.yOffset,fe.needsCopy=!0,se(fe.xOffset>=0&&fe.xOffset<ur&&fe.yOffset>=0&&fe.yOffset<fo&&fe.width>0&&fe.width<=ur&&fe.height>0&&fe.height<=fo,"copy texture read out of bounds")}else if(!Ke)fe.width=fe.width||1,fe.height=fe.height||1,fe.channels=fe.channels||4;else if(r(Ke))fe.channels=fe.channels||4,fe.data=Ke,!("type"in ot)&&fe.type===Fs&&(fe.type=Ss(Ke));else if(Xl(Ke))fe.channels=fe.channels||4,U1(fe,Ke),fe.alignment=1,fe.needsFree=!0;else if(X(Ke)){var ii=Ke.data;!Array.isArray(ii)&&fe.type===Fs&&(fe.type=Ss(ii));var Z=Ke.shape,ue=Ke.stride,Pe,Qe,qe,Se,Ne,Ue;Z.length===3?(qe=Z[2],Ue=ue[2]):(se(Z.length===2,"invalid ndarray pixel data, must be 2 or 3D"),qe=1,Ue=1),Pe=Z[0],Qe=Z[1],Se=ue[0],Ne=ue[1],fe.alignment=1,fe.width=Pe,fe.height=Qe,fe.channels=qe,fe.format=fe.internalformat=Ru[qe],fe.needsFree=!0,Zc(fe,ii,Se,Ne,Ue,Ke.offset)}else if(ll(Ke)||Zl(Ke)||$a(Ke))ll(Ke)||Zl(Ke)?fe.element=Ke:fe.element=Ke.canvas,fe.width=fe.element.width,fe.height=fe.element.height,fe.channels=4;else if(Aa(Ke))fe.element=Ke,fe.width=Ke.width,fe.height=Ke.height,fe.channels=4;else if(Yl(Ke))fe.element=Ke,fe.width=Ke.naturalWidth,fe.height=Ke.naturalHeight,fe.channels=4;else if($l(Ke))fe.element=Ke,fe.width=Ke.videoWidth,fe.height=Ke.videoHeight,fe.channels=4;else if(Kt(Ke)){var me=fe.width||Ke[0].length,Ce=fe.height||Ke.length,ae=fe.channels;Li(Ke[0][0])?ae=ae||Ke[0][0].length:ae=ae||1;for(var Me=we.shape(Ke),nt=1,yt=0;yt<Me.length;++yt)nt*=Me[yt];var St=Sp(fe,nt);we.flatten(Ke,Me,"",St),ql(fe,St),fe.alignment=1,fe.width=me,fe.height=Ce,fe.channels=ae,fe.format=fe.internalformat=Ru[ae],fe.needsFree=!0}fe.type===Tu?se(xe.extensions.indexOf("oes_texture_float")>=0,"oes_texture_float extension not enabled"):fe.type===Qs&&se(xe.extensions.indexOf("oes_texture_half_float")>=0,"oes_texture_half_float extension not enabled")}function vt(fe,ot,Ke){var ur=fe.element,fo=fe.data,ii=fe.internalformat,Z=fe.format,ue=fe.type,Pe=fe.width,Qe=fe.height;ro(fe),ur?N.texImage2D(ot,Ke,Z,Z,ue,ur):fe.compressed?N.compressedTexImage2D(ot,Ke,ii,Pe,Qe,0,fo):fe.needsCopy?(et(),N.copyTexImage2D(ot,Ke,Z,fe.xOffset,fe.yOffset,Pe,Qe,0)):N.texImage2D(ot,Ke,Z,Pe,Qe,0,Z,ue,fo||null)}function Lr(fe,ot,Ke,ur,fo){var ii=fe.element,Z=fe.data,ue=fe.internalformat,Pe=fe.format,Qe=fe.type,qe=fe.width,Se=fe.height;ro(fe),ii?N.texSubImage2D(ot,fo,Ke,ur,Pe,Qe,ii):fe.compressed?N.compressedTexSubImage2D(ot,fo,Ke,ur,ue,qe,Se,Z):fe.needsCopy?(et(),N.copyTexSubImage2D(ot,fo,Ke,ur,fe.xOffset,fe.yOffset,qe,Se)):N.texSubImage2D(ot,fo,Ke,ur,qe,Se,Pe,Qe,Z)}var xo=[];function sr(){return xo.pop()||new Jt}function ho(fe){fe.needsFree&&ht.freeType(fe.data),Jt.call(fe),xo.push(fe)}function eo(){Tt.call(this),this.genMipmaps=!1,this.mipmapHint=Ts,this.mipmask=0,this.images=Array(16)}function Wr(fe,ot,Ke){var ur=fe.images[0]=sr();fe.mipmask=1,ur.width=fe.width=ot,ur.height=fe.height=Ke,ur.channels=fe.channels=4}function jo(fe,ot){var Ke=null;if(ta(ot))Ke=fe.images[0]=sr(),Qt(Ke,fe),Dt(Ke,ot),fe.mipmask=1;else if(Or(fe,ot),Array.isArray(ot.mipmap))for(var ur=ot.mipmap,fo=0;fo<ur.length;++fo)Ke=fe.images[fo]=sr(),Qt(Ke,fe),Ke.width>>=fo,Ke.height>>=fo,Dt(Ke,ur[fo]),fe.mipmask|=1<<fo;else Ke=fe.images[0]=sr(),Qt(Ke,fe),Dt(Ke,ot),fe.mipmask=1;Qt(fe,fe.images[0]),fe.compressed&&(fe.internalformat===Au||fe.internalformat===qu||fe.internalformat===Pp||fe.internalformat===Ku)&&se(fe.width%4===0&&fe.height%4===0,"for compressed texture formats, mipmap level 0 must have width and height that are a multiple of 4")}function Qi(fe,ot){for(var Ke=fe.images,ur=0;ur<Ke.length;++ur){if(!Ke[ur])return;vt(Ke[ur],ot,ur)}}var zn=[];function Ro(){var fe=zn.pop()||new eo;Tt.call(fe),fe.mipmask=0;for(var ot=0;ot<16;++ot)fe.images[ot]=null;return fe}function Ji(fe){for(var ot=fe.images,Ke=0;Ke<ot.length;++Ke)ot[Ke]&&ho(ot[Ke]),ot[Ke]=null;zn.push(fe)}function mi(){this.minFilter=nl,this.magFilter=nl,this.wrapS=Hl,this.wrapT=Hl,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=Ts}function mn(fe,ot){if("min"in ot){var Ke=ot.min;se.parameter(Ke,Ut),fe.minFilter=Ut[Ke],ul.indexOf(fe.minFilter)>=0&&!("faces"in ot)&&(fe.genMipmaps=!0)}if("mag"in ot){var ur=ot.mag;se.parameter(ur,Xt),fe.magFilter=Xt[ur]}var fo=fe.wrapS,ii=fe.wrapT;if("wrap"in ot){var Z=ot.wrap;typeof Z=="string"?(se.parameter(Z,Rt),fo=ii=Rt[Z]):Array.isArray(Z)&&(se.parameter(Z[0],Rt),se.parameter(Z[1],Rt),fo=Rt[Z[0]],ii=Rt[Z[1]])}else{if("wrapS"in ot){var ue=ot.wrapS;se.parameter(ue,Rt),fo=Rt[ue]}if("wrapT"in ot){var Pe=ot.wrapT;se.parameter(Pe,Rt),ii=Rt[Pe]}}if(fe.wrapS=fo,fe.wrapT=ii,"anisotropic"in ot){var Qe=ot.anisotropic;se(typeof Qe=="number"&&Qe>=1&&Qe<=xe.maxAnisotropic,"aniso samples must be between 1 and "),fe.anisotropic=ot.anisotropic}if("mipmap"in ot){var qe=!1;switch(typeof ot.mipmap){case"string":se.parameter(ot.mipmap,Ot,"invalid mipmap hint"),fe.mipmapHint=Ot[ot.mipmap],fe.genMipmaps=!0,qe=!0;break;case"boolean":qe=fe.genMipmaps=ot.mipmap;break;case"object":se(Array.isArray(ot.mipmap),"invalid mipmap type"),fe.genMipmaps=!1,qe=!0;break;default:se.raise("invalid mipmap type")}qe&&!("min"in ot)&&(fe.minFilter=ep)}}function _n(fe,ot){N.texParameteri(ot,Gc,fe.minFilter),N.texParameteri(ot,Gl,fe.magFilter),N.texParameteri(ot,Q0,fe.wrapS),N.texParameteri(ot,Vl,fe.wrapT),ie.ext_texture_filter_anisotropic&&N.texParameteri(ot,di,fe.anisotropic),fe.genMipmaps&&(N.hint(jl,fe.mipmapHint),N.generateMipmap(ot))}var ki=0,In={},na=xe.maxTextureUnits,gn=Array(na).map(function(){return null});function yo(fe){Tt.call(this),this.mipmask=0,this.internalformat=xu,this.id=ki++,this.refCount=1,this.target=fe,this.texture=N.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new mi,Ye.profile&&(this.stats={size:0})}function Yn(fe){N.activeTexture(Wl),N.bindTexture(fe.target,fe.texture)}function Zo(){var fe=gn[0];fe?N.bindTexture(fe.target,fe.texture):N.bindTexture(la,null)}function Vr(fe){var ot=fe.texture;se(ot,"must not double destroy texture");var Ke=fe.unit,ur=fe.target;Ke>=0&&(N.activeTexture(Wl+Ke),N.bindTexture(ur,null),gn[Ke]=null),N.deleteTexture(ot),fe.texture=null,fe.params=null,fe.pixels=null,fe.refCount=0,delete In[fe.id],tt.textureCount--}i(yo.prototype,{bind:function(){var fe=this;fe.bindCount+=1;var ot=fe.unit;if(ot<0){for(var Ke=0;Ke<na;++Ke){var ur=gn[Ke];if(ur){if(ur.bindCount>0)continue;ur.unit=-1}gn[Ke]=fe,ot=Ke;break}ot>=na&&se.raise("insufficient number of texture units"),Ye.profile&&tt.maxTextureUnits<ot+1&&(tt.maxTextureUnits=ot+1),fe.unit=ot,N.activeTexture(Wl+ot),N.bindTexture(fe.target,fe.texture)}return ot},unbind:function(){this.bindCount-=1},decRef:function(){--this.refCount<=0&&Vr(this)}});function To(fe,ot){var Ke=new yo(la);In[Ke.id]=Ke,tt.textureCount++;function ur(Z,ue){var Pe=Ke.texInfo;mi.call(Pe);var Qe=Ro();return typeof Z=="number"?typeof ue=="number"?Wr(Qe,Z|0,ue|0):Wr(Qe,Z|0,Z|0):Z?(se.type(Z,"object","invalid arguments to regl.texture"),mn(Pe,Z),jo(Qe,Z)):Wr(Qe,1,1),Pe.genMipmaps&&(Qe.mipmask=(Qe.width<<1)-1),Ke.mipmask=Qe.mipmask,Qt(Ke,Qe),se.texture2D(Pe,Qe,xe),Ke.internalformat=Qe.internalformat,ur.width=Qe.width,ur.height=Qe.height,Yn(Ke),Qi(Qe,la),_n(Pe,la),Zo(),Ji(Qe),Ye.profile&&(Ke.stats.size=Fa(Ke.internalformat,Ke.type,Qe.width,Qe.height,Pe.genMipmaps,!1)),ur.format=Lt[Ke.internalformat],ur.type=tr[Ke.type],ur.mag=At[Pe.magFilter],ur.min=ar[Pe.minFilter],ur.wrapS=Mt[Pe.wrapS],ur.wrapT=Mt[Pe.wrapT],ur}function fo(Z,ue,Pe,Qe){se(!!Z,"must specify image data");var qe=ue|0,Se=Pe|0,Ne=Qe|0,Ue=sr();return Qt(Ue,Ke),Ue.width=0,Ue.height=0,Dt(Ue,Z),Ue.width=Ue.width||(Ke.width>>Ne)-qe,Ue.height=Ue.height||(Ke.height>>Ne)-Se,se(Ke.type===Ue.type&&Ke.format===Ue.format&&Ke.internalformat===Ue.internalformat,"incompatible format for texture.subimage"),se(qe>=0&&Se>=0&&qe+Ue.width<=Ke.width&&Se+Ue.height<=Ke.height,"texture.subimage write out of bounds"),se(Ke.mipmask&1<<Ne,"missing mipmap data"),se(Ue.data||Ue.element||Ue.needsCopy,"missing image data"),Yn(Ke),Lr(Ue,la,qe,Se,Ne),Zo(),ho(Ue),ur}function ii(Z,ue){var Pe=Z|0,Qe=ue|0||Pe;if(Pe===Ke.width&&Qe===Ke.height)return ur;ur.width=Ke.width=Pe,ur.height=Ke.height=Qe,Yn(Ke);for(var qe=0;Ke.mipmask>>qe;++qe){var Se=Pe>>qe,Ne=Qe>>qe;if(!Se||!Ne)break;N.texImage2D(la,qe,Ke.format,Se,Ne,0,Ke.format,Ke.type,null)}return Zo(),Ye.profile&&(Ke.stats.size=Fa(Ke.internalformat,Ke.type,Pe,Qe,!1,!1)),ur}return ur(fe,ot),ur.subimage=fo,ur.resize=ii,ur._reglType="texture2d",ur._texture=Ke,Ye.profile&&(ur.stats=Ke.stats),ur.destroy=function(){Ke.decRef()},ur}function zo(fe,ot,Ke,ur,fo,ii){var Z=new yo(qs);In[Z.id]=Z,tt.cubeCount++;var ue=new Array(6);function Pe(Se,Ne,Ue,me,Ce,ae){var Me,nt=Z.texInfo;for(mi.call(nt),Me=0;Me<6;++Me)ue[Me]=Ro();if(typeof Se=="number"||!Se){var yt=Se|0||1;for(Me=0;Me<6;++Me)Wr(ue[Me],yt,yt)}else if(typeof Se=="object")if(Ne)jo(ue[0],Se),jo(ue[1],Ne),jo(ue[2],Ue),jo(ue[3],me),jo(ue[4],Ce),jo(ue[5],ae);else if(mn(nt,Se),Or(Z,Se),"faces"in Se){var St=Se.faces;for(se(Array.isArray(St)&&St.length===6,"cube faces must be a length 6 array"),Me=0;Me<6;++Me)se(typeof St[Me]=="object"&&!!St[Me],"invalid input for cube map face"),Qt(ue[Me],Z),jo(ue[Me],St[Me])}else for(Me=0;Me<6;++Me)jo(ue[Me],Se);else se.raise("invalid arguments to cube map");for(Qt(Z,ue[0]),xe.npotTextureCube||se(Oc(Z.width)&&Oc(Z.height),"your browser does not support non power or two texture dimensions"),nt.genMipmaps?Z.mipmask=(ue[0].width<<1)-1:Z.mipmask=ue[0].mipmask,se.textureCube(Z,nt,ue,xe),Z.internalformat=ue[0].internalformat,Pe.width=ue[0].width,Pe.height=ue[0].height,Yn(Z),Me=0;Me<6;++Me)Qi(ue[Me],As+Me);for(_n(nt,qs),Zo(),Ye.profile&&(Z.stats.size=Fa(Z.internalformat,Z.type,Pe.width,Pe.height,nt.genMipmaps,!0)),Pe.format=Lt[Z.internalformat],Pe.type=tr[Z.type],Pe.mag=At[nt.magFilter],Pe.min=ar[nt.minFilter],Pe.wrapS=Mt[nt.wrapS],Pe.wrapT=Mt[nt.wrapT],Me=0;Me<6;++Me)Ji(ue[Me]);return Pe}function Qe(Se,Ne,Ue,me,Ce){se(!!Ne,"must specify image data"),se(typeof Se=="number"&&Se===(Se|0)&&Se>=0&&Se<6,"invalid face");var ae=Ue|0,Me=me|0,nt=Ce|0,yt=sr();return Qt(yt,Z),yt.width=0,yt.height=0,Dt(yt,Ne),yt.width=yt.width||(Z.width>>nt)-ae,yt.height=yt.height||(Z.height>>nt)-Me,se(Z.type===yt.type&&Z.format===yt.format&&Z.internalformat===yt.internalformat,"incompatible format for texture.subimage"),se(ae>=0&&Me>=0&&ae+yt.width<=Z.width&&Me+yt.height<=Z.height,"texture.subimage write out of bounds"),se(Z.mipmask&1<<nt,"missing mipmap data"),se(yt.data||yt.element||yt.needsCopy,"missing image data"),Yn(Z),Lr(yt,As+Se,ae,Me,nt),Zo(),ho(yt),Pe}function qe(Se){var Ne=Se|0;if(Ne!==Z.width){Pe.width=Z.width=Ne,Pe.height=Z.height=Ne,Yn(Z);for(var Ue=0;Ue<6;++Ue)for(var me=0;Z.mipmask>>me;++me)N.texImage2D(As+Ue,me,Z.format,Ne>>me,Ne>>me,0,Z.format,Z.type,null);return Zo(),Ye.profile&&(Z.stats.size=Fa(Z.internalformat,Z.type,Pe.width,Pe.height,!1,!0)),Pe}}return Pe(fe,ot,Ke,ur,fo,ii),Pe.subimage=Qe,Pe.resize=qe,Pe._reglType="textureCube",Pe._texture=Z,Ye.profile&&(Pe.stats=Z.stats),Pe.destroy=function(){Z.decRef()},Pe}function en(){for(var fe=0;fe<na;++fe)N.activeTexture(Wl+fe),N.bindTexture(la,null),gn[fe]=null;re(In).forEach(Vr),tt.cubeCount=0,tt.textureCount=0}Ye.profile&&(tt.getTotalTextureSize=function(){var fe=0;return Object.keys(In).forEach(function(ot){fe+=In[ot].stats.size}),fe});function nu(){for(var fe=0;fe<na;++fe){var ot=gn[fe];ot&&(ot.bindCount=0,ot.unit=-1,gn[fe]=null)}re(In).forEach(function(Ke){Ke.texture=N.createTexture(),N.bindTexture(Ke.target,Ke.texture);for(var ur=0;ur<32;++ur)if(Ke.mipmask&1<<ur)if(Ke.target===la)N.texImage2D(la,ur,Ke.internalformat,Ke.width>>ur,Ke.height>>ur,0,Ke.internalformat,Ke.type,null);else for(var fo=0;fo<6;++fo)N.texImage2D(As+fo,ur,Ke.internalformat,Ke.width>>ur,Ke.height>>ur,0,Ke.internalformat,Ke.type,null);_n(Ke.texInfo,Ke.target)})}return{create2D:To,createCube:zo,clear:en,getTexture:function(fe){return null},restore:nu}}var po=36161,Ua=32854,ka=32855,wn=36194,Cu=33189,eu=36168,qa=34041,Wn=35907,wp=34836,Rr=34842,gr=34843,Ta=[];Ta[Ua]=2,Ta[ka]=2,Ta[wn]=2,Ta[Cu]=2,Ta[eu]=1,Ta[qa]=4,Ta[Wn]=4,Ta[wp]=16,Ta[Rr]=8,Ta[gr]=6;function Xn(N,ie,xe){return Ta[N]*ie*xe}var ls=function(N,ie,xe,et,gt){var tt={rgba4:Ua,rgb565:wn,"rgb5 a1":ka,depth:Cu,stencil:eu,"depth stencil":qa};ie.ext_srgb&&(tt.srgba=Wn),ie.ext_color_buffer_half_float&&(tt.rgba16f=Rr,tt.rgb16f=gr),ie.webgl_color_buffer_float&&(tt.rgba32f=wp);var Ye=[];Object.keys(tt).forEach(function(Ct){var jt=tt[Ct];Ye[jt]=Ct});var Ot=0,Rt={};function Xt(Ct){this.id=Ot++,this.refCount=1,this.renderbuffer=Ct,this.format=Ua,this.width=0,this.height=0,gt.profile&&(this.stats={size:0})}Xt.prototype.decRef=function(){--this.refCount<=0&&Ut(this)};function Ut(Ct){var jt=Ct.renderbuffer;se(jt,"must not double destroy renderbuffer"),N.bindRenderbuffer(po,null),N.deleteRenderbuffer(jt),Ct.renderbuffer=null,Ct.refCount=0,delete Rt[Ct.id],et.renderbufferCount--}function Gt(Ct,jt){var je=new Xt(N.createRenderbuffer());Rt[je.id]=je,et.renderbufferCount++;function pt(tr,At){var ar=0,Mt=0,rr=Ua;if(typeof tr=="object"&&tr){var Tt=tr;if("shape"in Tt){var Qt=Tt.shape;se(Array.isArray(Qt)&&Qt.length>=2,"invalid renderbuffer shape"),ar=Qt[0]|0,Mt=Qt[1]|0}else"radius"in Tt&&(ar=Mt=Tt.radius|0),"width"in Tt&&(ar=Tt.width|0),"height"in Tt&&(Mt=Tt.height|0);"format"in Tt&&(se.parameter(Tt.format,tt,"invalid renderbuffer format"),rr=tt[Tt.format])}else typeof tr=="number"?(ar=tr|0,typeof At=="number"?Mt=At|0:Mt=ar):tr?se.raise("invalid arguments to renderbuffer constructor"):ar=Mt=1;if(se(ar>0&&Mt>0&&ar<=xe.maxRenderbufferSize&&Mt<=xe.maxRenderbufferSize,"invalid renderbuffer size"),!(ar===je.width&&Mt===je.height&&rr===je.format))return pt.width=je.width=ar,pt.height=je.height=Mt,je.format=rr,N.bindRenderbuffer(po,je.renderbuffer),N.renderbufferStorage(po,rr,ar,Mt),se(N.getError()===0,"invalid render buffer format"),gt.profile&&(je.stats.size=Xn(je.format,je.width,je.height)),pt.format=Ye[je.format],pt}function Lt(tr,At){var ar=tr|0,Mt=At|0||ar;return ar===je.width&&Mt===je.height||(se(ar>0&&Mt>0&&ar<=xe.maxRenderbufferSize&&Mt<=xe.maxRenderbufferSize,"invalid renderbuffer size"),pt.width=je.width=ar,pt.height=je.height=Mt,N.bindRenderbuffer(po,je.renderbuffer),N.renderbufferStorage(po,je.format,ar,Mt),se(N.getError()===0,"invalid render buffer format"),gt.profile&&(je.stats.size=Xn(je.format,je.width,je.height))),pt}return pt(Ct,jt),pt.resize=Lt,pt._reglType="renderbuffer",pt._renderbuffer=je,gt.profile&&(pt.stats=je.stats),pt.destroy=function(){je.decRef()},pt}gt.profile&&(et.getTotalRenderbufferSize=function(){var Ct=0;return Object.keys(Rt).forEach(function(jt){Ct+=Rt[jt].stats.size}),Ct});function $t(){re(Rt).forEach(function(Ct){Ct.renderbuffer=N.createRenderbuffer(),N.bindRenderbuffer(po,Ct.renderbuffer),N.renderbufferStorage(po,Ct.format,Ct.width,Ct.height)}),N.bindRenderbuffer(po,null)}return{create:Gt,clear:function(){re(Rt).forEach(Ut)},restore:$t}},Ai=36160,Ka=36161,tu=3553,tp=34069,Xo=36064,yn=36096,Yc=36128,Iu=33306,Kl=36053,ru=36054,Sa=36055,Rp=36057,ws=36061,Ql=36193,Cp=5121,cl=5126,Jl=6407,rp=6408,op=6402,$c=[Jl,rp],Rs=[];Rs[rp]=4,Rs[Jl]=3;var cs=[];cs[Cp]=1,cs[cl]=4,cs[Ql]=2;var ec=32854,Mu=32855,Qa=36194,qc=33189,dl=36168,tc=34041,rc=35907,l=34836,d=34842,c=34843,f=[ec,Mu,Qa,rc,d,c,l],E={};E[Kl]="complete",E[ru]="incomplete attachment",E[Rp]="incomplete dimensions",E[Sa]="incomplete, missing attachment",E[ws]="unsupported";function A(N,ie,xe,et,gt,tt){var Ye={cur:null,next:null,dirty:!1,setFBO:null},Ot=["rgba"],Rt=["rgba4","rgb565","rgb5 a1"];ie.ext_srgb&&Rt.push("srgba"),ie.ext_color_buffer_half_float&&Rt.push("rgba16f","rgb16f"),ie.webgl_color_buffer_float&&Rt.push("rgba32f");var Xt=["uint8"];ie.oes_texture_half_float&&Xt.push("half float","float16"),ie.oes_texture_float&&Xt.push("float","float32");function Ut(Jt,Dt,vt){this.target=Jt,this.texture=Dt,this.renderbuffer=vt;var Lr=0,xo=0;Dt?(Lr=Dt.width,xo=Dt.height):vt&&(Lr=vt.width,xo=vt.height),this.width=Lr,this.height=xo}function Gt(Jt){Jt&&(Jt.texture&&Jt.texture._texture.decRef(),Jt.renderbuffer&&Jt.renderbuffer._renderbuffer.decRef())}function $t(Jt,Dt,vt){if(Jt)if(Jt.texture){var Lr=Jt.texture._texture,xo=Math.max(1,Lr.width),sr=Math.max(1,Lr.height);se(xo===Dt&&sr===vt,"inconsistent width/height for supplied texture"),Lr.refCount+=1}else{var ho=Jt.renderbuffer._renderbuffer;se(ho.width===Dt&&ho.height===vt,"inconsistent width/height for renderbuffer"),ho.refCount+=1}}function Ct(Jt,Dt){Dt&&(Dt.texture?N.framebufferTexture2D(Ai,Jt,Dt.target,Dt.texture._texture.texture,0):N.framebufferRenderbuffer(Ai,Jt,Ka,Dt.renderbuffer._renderbuffer.renderbuffer))}function jt(Jt){var Dt=tu,vt=null,Lr=null,xo=Jt;typeof Jt=="object"&&(xo=Jt.data,"target"in Jt&&(Dt=Jt.target|0)),se.type(xo,"function","invalid attachment data");var sr=xo._reglType;return sr==="texture2d"?(vt=xo,se(Dt===tu)):sr==="textureCube"?(vt=xo,se(Dt>=tp&&Dt<tp+6,"invalid cube map target")):sr==="renderbuffer"?(Lr=xo,Dt=Ka):se.raise("invalid regl object for attachment"),new Ut(Dt,vt,Lr)}function je(Jt,Dt,vt,Lr,xo){if(vt){var sr=et.create2D({width:Jt,height:Dt,format:Lr,type:xo});return sr._texture.refCount=0,new Ut(tu,sr,null)}else{var ho=gt.create({width:Jt,height:Dt,format:Lr});return ho._renderbuffer.refCount=0,new Ut(Ka,null,ho)}}function pt(Jt){return Jt&&(Jt.texture||Jt.renderbuffer)}function Lt(Jt,Dt,vt){Jt&&(Jt.texture?Jt.texture.resize(Dt,vt):Jt.renderbuffer&&Jt.renderbuffer.resize(Dt,vt),Jt.width=Dt,Jt.height=vt)}var tr=0,At={};function ar(){this.id=tr++,At[this.id]=this,this.framebuffer=N.createFramebuffer(),this.width=0,this.height=0,this.colorAttachments=[],this.depthAttachment=null,this.stencilAttachment=null,this.depthStencilAttachment=null}function Mt(Jt){Jt.colorAttachments.forEach(Gt),Gt(Jt.depthAttachment),Gt(Jt.stencilAttachment),Gt(Jt.depthStencilAttachment)}function rr(Jt){var Dt=Jt.framebuffer;se(Dt,"must not double destroy framebuffer"),N.deleteFramebuffer(Dt),Jt.framebuffer=null,tt.framebufferCount--,delete At[Jt.id]}function Tt(Jt){var Dt;N.bindFramebuffer(Ai,Jt.framebuffer);var vt=Jt.colorAttachments;for(Dt=0;Dt<vt.length;++Dt)Ct(Xo+Dt,vt[Dt]);for(Dt=vt.length;Dt<xe.maxColorAttachments;++Dt)N.framebufferTexture2D(Ai,Xo+Dt,tu,null,0);N.framebufferTexture2D(Ai,Iu,tu,null,0),N.framebufferTexture2D(Ai,yn,tu,null,0),N.framebufferTexture2D(Ai,Yc,tu,null,0),Ct(yn,Jt.depthAttachment),Ct(Yc,Jt.stencilAttachment),Ct(Iu,Jt.depthStencilAttachment);var Lr=N.checkFramebufferStatus(Ai);!N.isContextLost()&&Lr!==Kl&&se.raise("framebuffer configuration not supported, status = "+E[Lr]),N.bindFramebuffer(Ai,Ye.next?Ye.next.framebuffer:null),Ye.cur=Ye.next,N.getError()}function Qt(Jt,Dt){var vt=new ar;tt.framebufferCount++;function Lr(sr,ho){var eo;se(Ye.next!==vt,"can not update framebuffer which is currently in use");var Wr=0,jo=0,Qi=!0,zn=!0,Ro=null,Ji=!0,mi="rgba",mn="uint8",_n=1,ki=null,In=null,na=null,gn=!1;if(typeof sr=="number")Wr=sr|0,jo=ho|0||Wr;else if(!sr)Wr=jo=1;else{se.type(sr,"object","invalid arguments for framebuffer");var yo=sr;if("shape"in yo){var Yn=yo.shape;se(Array.isArray(Yn)&&Yn.length>=2,"invalid shape for framebuffer"),Wr=Yn[0],jo=Yn[1]}else"radius"in yo&&(Wr=jo=yo.radius),"width"in yo&&(Wr=yo.width),"height"in yo&&(jo=yo.height);("color"in yo||"colors"in yo)&&(Ro=yo.color||yo.colors,Array.isArray(Ro)&&se(Ro.length===1||ie.webgl_draw_buffers,"multiple render targets not supported")),Ro||("colorCount"in yo&&(_n=yo.colorCount|0,se(_n>0,"invalid color buffer count")),"colorTexture"in yo&&(Ji=!!yo.colorTexture,mi="rgba4"),"colorType"in yo&&(mn=yo.colorType,Ji?(se(ie.oes_texture_float||!(mn==="float"||mn==="float32"),"you must enable OES_texture_float in order to use floating point framebuffer objects"),se(ie.oes_texture_half_float||!(mn==="half float"||mn==="float16"),"you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects")):mn==="half float"||mn==="float16"?(se(ie.ext_color_buffer_half_float,"you must enable EXT_color_buffer_half_float to use 16-bit render buffers"),mi="rgba16f"):(mn==="float"||mn==="float32")&&(se(ie.webgl_color_buffer_float,"you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers"),mi="rgba32f"),se.oneOf(mn,Xt,"invalid color type")),"colorFormat"in yo&&(mi=yo.colorFormat,Ot.indexOf(mi)>=0?Ji=!0:Rt.indexOf(mi)>=0?Ji=!1:Ji?se.oneOf(yo.colorFormat,Ot,"invalid color format for texture"):se.oneOf(yo.colorFormat,Rt,"invalid color format for renderbuffer"))),("depthTexture"in yo||"depthStencilTexture"in yo)&&(gn=!!(yo.depthTexture||yo.depthStencilTexture),se(!gn||ie.webgl_depth_texture,"webgl_depth_texture extension not supported")),"depth"in yo&&(typeof yo.depth=="boolean"?Qi=yo.depth:(ki=yo.depth,zn=!1)),"stencil"in yo&&(typeof yo.stencil=="boolean"?zn=yo.stencil:(In=yo.stencil,Qi=!1)),"depthStencil"in yo&&(typeof yo.depthStencil=="boolean"?Qi=zn=yo.depthStencil:(na=yo.depthStencil,Qi=!1,zn=!1))}var Zo=null,Vr=null,To=null,zo=null;if(Array.isArray(Ro))Zo=Ro.map(jt);else if(Ro)Zo=[jt(Ro)];else for(Zo=new Array(_n),eo=0;eo<_n;++eo)Zo[eo]=je(Wr,jo,Ji,mi,mn);se(ie.webgl_draw_buffers||Zo.length<=1,"you must enable the WEBGL_draw_buffers extension in order to use multiple color buffers."),se(Zo.length<=xe.maxColorAttachments,"too many color attachments, not supported"),Wr=Wr||Zo[0].width,jo=jo||Zo[0].height,ki?Vr=jt(ki):Qi&&!zn&&(Vr=je(Wr,jo,gn,"depth","uint32")),In?To=jt(In):zn&&!Qi&&(To=je(Wr,jo,!1,"stencil","uint8")),na?zo=jt(na):!ki&&!In&&zn&&Qi&&(zo=je(Wr,jo,gn,"depth stencil","depth stencil")),se(!!ki+!!In+!!na<=1,"invalid framebuffer configuration, can specify exactly one depth/stencil attachment");var en=null;for(eo=0;eo<Zo.length;++eo)if($t(Zo[eo],Wr,jo),se(!Zo[eo]||Zo[eo].texture&&$c.indexOf(Zo[eo].texture._texture.format)>=0||Zo[eo].renderbuffer&&f.indexOf(Zo[eo].renderbuffer._renderbuffer.format)>=0,"framebuffer color attachment "+eo+" is invalid"),Zo[eo]&&Zo[eo].texture){var nu=Rs[Zo[eo].texture._texture.format]*cs[Zo[eo].texture._texture.type];en===null?en=nu:se(en===nu,"all color attachments much have the same number of bits per pixel.")}return $t(Vr,Wr,jo),se(!Vr||Vr.texture&&Vr.texture._texture.format===op||Vr.renderbuffer&&Vr.renderbuffer._renderbuffer.format===qc,"invalid depth attachment for framebuffer object"),$t(To,Wr,jo),se(!To||To.renderbuffer&&To.renderbuffer._renderbuffer.format===dl,"invalid stencil attachment for framebuffer object"),$t(zo,Wr,jo),se(!zo||zo.texture&&zo.texture._texture.format===tc||zo.renderbuffer&&zo.renderbuffer._renderbuffer.format===tc,"invalid depth-stencil attachment for framebuffer object"),Mt(vt),vt.width=Wr,vt.height=jo,vt.colorAttachments=Zo,vt.depthAttachment=Vr,vt.stencilAttachment=To,vt.depthStencilAttachment=zo,Lr.color=Zo.map(pt),Lr.depth=pt(Vr),Lr.stencil=pt(To),Lr.depthStencil=pt(zo),Lr.width=vt.width,Lr.height=vt.height,Tt(vt),Lr}function xo(sr,ho){se(Ye.next!==vt,"can not resize a framebuffer which is currently in use");var eo=Math.max(sr|0,1),Wr=Math.max(ho|0||eo,1);if(eo===vt.width&&Wr===vt.height)return Lr;for(var jo=vt.colorAttachments,Qi=0;Qi<jo.length;++Qi)Lt(jo[Qi],eo,Wr);return Lt(vt.depthAttachment,eo,Wr),Lt(vt.stencilAttachment,eo,Wr),Lt(vt.depthStencilAttachment,eo,Wr),vt.width=Lr.width=eo,vt.height=Lr.height=Wr,Tt(vt),Lr}return Lr(Jt,Dt),i(Lr,{resize:xo,_reglType:"framebuffer",_framebuffer:vt,destroy:function(){rr(vt),Mt(vt)},use:function(sr){Ye.setFBO({framebuffer:Lr},sr)}})}function Or(Jt){var Dt=Array(6);function vt(xo){var sr;se(Dt.indexOf(Ye.next)<0,"can not update framebuffer which is currently in use");var ho={color:null},eo=0,Wr=null,jo="rgba",Qi="uint8",zn=1;if(typeof xo=="number")eo=xo|0;else if(!xo)eo=1;else{se.type(xo,"object","invalid arguments for framebuffer");var Ro=xo;if("shape"in Ro){var Ji=Ro.shape;se(Array.isArray(Ji)&&Ji.length>=2,"invalid shape for framebuffer"),se(Ji[0]===Ji[1],"cube framebuffer must be square"),eo=Ji[0]}else"radius"in Ro&&(eo=Ro.radius|0),"width"in Ro?(eo=Ro.width|0,"height"in Ro&&se(Ro.height===eo,"must be square")):"height"in Ro&&(eo=Ro.height|0);("color"in Ro||"colors"in Ro)&&(Wr=Ro.color||Ro.colors,Array.isArray(Wr)&&se(Wr.length===1||ie.webgl_draw_buffers,"multiple render targets not supported")),Wr||("colorCount"in Ro&&(zn=Ro.colorCount|0,se(zn>0,"invalid color buffer count")),"colorType"in Ro&&(se.oneOf(Ro.colorType,Xt,"invalid color type"),Qi=Ro.colorType),"colorFormat"in Ro&&(jo=Ro.colorFormat,se.oneOf(Ro.colorFormat,Ot,"invalid color format for texture"))),"depth"in Ro&&(ho.depth=Ro.depth),"stencil"in Ro&&(ho.stencil=Ro.stencil),"depthStencil"in Ro&&(ho.depthStencil=Ro.depthStencil)}var mi;if(Wr)if(Array.isArray(Wr))for(mi=[],sr=0;sr<Wr.length;++sr)mi[sr]=Wr[sr];else mi=[Wr];else{mi=Array(zn);var mn={radius:eo,format:jo,type:Qi};for(sr=0;sr<zn;++sr)mi[sr]=et.createCube(mn)}for(ho.color=Array(mi.length),sr=0;sr<mi.length;++sr){var _n=mi[sr];se(typeof _n=="function"&&_n._reglType==="textureCube","invalid cube map"),eo=eo||_n.width,se(_n.width===eo&&_n.height===eo,"invalid cube map shape"),ho.color[sr]={target:tp,data:mi[sr]}}for(sr=0;sr<6;++sr){for(var ki=0;ki<mi.length;++ki)ho.color[ki].target=tp+sr;sr>0&&(ho.depth=Dt[0].depth,ho.stencil=Dt[0].stencil,ho.depthStencil=Dt[0].depthStencil),Dt[sr]?Dt[sr](ho):Dt[sr]=Qt(ho)}return i(vt,{width:eo,height:eo,color:mi})}function Lr(xo){var sr,ho=xo|0;if(se(ho>0&&ho<=xe.maxCubeMapSize,"invalid radius for cube fbo"),ho===vt.width)return vt;var eo=vt.color;for(sr=0;sr<eo.length;++sr)eo[sr].resize(ho);for(sr=0;sr<6;++sr)Dt[sr].resize(ho);return vt.width=vt.height=ho,vt}return vt(Jt),i(vt,{faces:Dt,resize:Lr,_reglType:"framebufferCube",destroy:function(){Dt.forEach(function(xo){xo.destroy()})}})}function ro(){Ye.cur=null,Ye.next=null,Ye.dirty=!0,re(At).forEach(function(Jt){Jt.framebuffer=N.createFramebuffer(),Tt(Jt)})}return i(Ye,{getFramebuffer:function(Jt){if(typeof Jt=="function"&&Jt._reglType==="framebuffer"){var Dt=Jt._framebuffer;if(Dt instanceof ar)return Dt}return null},create:Qt,createCube:Or,clear:function(){re(At).forEach(rr)},restore:ro})}var T=5126,w=34962;function D(){this.state=0,this.x=0,this.y=0,this.z=0,this.w=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=T,this.offset=0,this.stride=0,this.divisor=0}function z(N,ie,xe,et,gt){for(var tt=xe.maxAttributes,Ye=new Array(tt),Ot=0;Ot<tt;++Ot)Ye[Ot]=new D;var Rt=0,Xt={},Ut={Record:D,scope:{},state:Ye,currentVAO:null,targetVAO:null,restore:$t()?At:function(){},createVAO:ar,getVAO:jt,destroyBuffer:Gt,setVAO:$t()?je:pt,clear:$t()?Lt:function(){}};function Gt(Mt){for(var rr=0;rr<Ye.length;++rr){var Tt=Ye[rr];Tt.buffer===Mt&&(N.disableVertexAttribArray(rr),Tt.buffer=null)}}function $t(){return ie.oes_vertex_array_object}function Ct(){return ie.angle_instanced_arrays}function jt(Mt){return typeof Mt=="function"&&Mt._vao?Mt._vao:null}function je(Mt){if(Mt!==Ut.currentVAO){var rr=$t();Mt?rr.bindVertexArrayOES(Mt.vao):rr.bindVertexArrayOES(null),Ut.currentVAO=Mt}}function pt(Mt){if(Mt!==Ut.currentVAO){if(Mt)Mt.bindAttrs();else for(var rr=Ct(),Tt=0;Tt<Ye.length;++Tt){var Qt=Ye[Tt];Qt.buffer?(N.enableVertexAttribArray(Tt),N.vertexAttribPointer(Tt,Qt.size,Qt.type,Qt.normalized,Qt.stride,Qt.offfset),rr&&rr.vertexAttribDivisorANGLE(Tt,Qt.divisor)):(N.disableVertexAttribArray(Tt),N.vertexAttrib4f(Tt,Qt.x,Qt.y,Qt.z,Qt.w))}Ut.currentVAO=Mt}}function Lt(){re(Xt).forEach(function(Mt){Mt.destroy()})}function tr(){this.id=++Rt,this.attributes=[];var Mt=$t();Mt?this.vao=Mt.createVertexArrayOES():this.vao=null,Xt[this.id]=this,this.buffers=[]}tr.prototype.bindAttrs=function(){for(var Mt=Ct(),rr=this.attributes,Tt=0;Tt<rr.length;++Tt){var Qt=rr[Tt];Qt.buffer?(N.enableVertexAttribArray(Tt),N.bindBuffer(w,Qt.buffer.buffer),N.vertexAttribPointer(Tt,Qt.size,Qt.type,Qt.normalized,Qt.stride,Qt.offset),Mt&&Mt.vertexAttribDivisorANGLE(Tt,Qt.divisor)):(N.disableVertexAttribArray(Tt),N.vertexAttrib4f(Tt,Qt.x,Qt.y,Qt.z,Qt.w))}for(var Or=rr.length;Or<tt;++Or)N.disableVertexAttribArray(Or)},tr.prototype.refresh=function(){var Mt=$t();Mt&&(Mt.bindVertexArrayOES(this.vao),this.bindAttrs(),Ut.currentVAO=this)},tr.prototype.destroy=function(){if(this.vao){var Mt=$t();this===Ut.currentVAO&&(Ut.currentVAO=null,Mt.bindVertexArrayOES(null)),Mt.deleteVertexArrayOES(this.vao),this.vao=null}Xt[this.id]&&(delete Xt[this.id],et.vaoCount-=1)};function At(){var Mt=$t();Mt&&re(Xt).forEach(function(rr){rr.refresh()})}function ar(Mt){var rr=new tr;et.vaoCount+=1;function Tt(Qt){se(Array.isArray(Qt),"arguments to vertex array constructor must be an array"),se(Qt.length<tt,"too many attributes"),se(Qt.length>0,"must specify at least one attribute");for(var Or=0;Or<rr.buffers.length;++Or)rr.buffers[Or].destroy();rr.buffers.length=0;var ro=rr.attributes;ro.length=Qt.length;for(var Jt=0;Jt<Qt.length;++Jt){var Dt=Qt[Jt],vt=ro[Jt]=new D;if(Array.isArray(Dt)||r(Dt)||X(Dt)){var Lr=gt.create(Dt,w,!1,!0);vt.buffer=gt.getBuffer(Lr),vt.size=vt.buffer.dimension|0,vt.normalized=!1,vt.type=vt.buffer.dtype,vt.offset=0,vt.stride=0,vt.divisor=0,vt.state=1,rr.buffers.push(Lr)}else gt.getBuffer(Dt)?(vt.buffer=gt.getBuffer(Dt),vt.size=vt.buffer.dimension|0,vt.normalized=!1,vt.type=vt.buffer.dtype,vt.offset=0,vt.stride=0,vt.divisor=0,vt.state=1):gt.getBuffer(Dt.buffer)?(vt.buffer=gt.getBuffer(Dt.buffer),vt.size=(+Dt.size||vt.buffer.dimension)|0,vt.normalized=!!Dt.normalized||!1,"type"in Dt?(se.parameter(Dt.type,Bn,"invalid buffer type"),vt.type=Bn[Dt.type]):vt.type=vt.buffer.dtype,vt.offset=(Dt.offset||0)|0,vt.stride=(Dt.stride||0)|0,vt.divisor=(Dt.divisor||0)|0,vt.state=1,se(vt.size>=1&&vt.size<=4,"size must be between 1 and 4"),se(vt.offset>=0,"invalid offset"),se(vt.stride>=0&&vt.stride<=255,"stride must be between 0 and 255"),se(vt.divisor>=0,"divisor must be positive"),se(!vt.divisor||!!ie.angle_instanced_arrays,"ANGLE_instanced_arrays must be enabled to use divisor")):"x"in Dt?(se(Jt>0,"first attribute must not be a constant"),vt.x=+Dt.x||0,vt.y=+Dt.y||0,vt.z=+Dt.z||0,vt.w=+Dt.w||0,vt.state=2):se(!1,"invalid attribute spec for location "+Jt)}return rr.refresh(),Tt}return Tt.destroy=function(){rr.destroy()},Tt._vao=rr,Tt._reglType="vao",Tt(Mt)}return Ut}var $=35632,K=35633,ee=35718,_e=35721;function de(N,ie,xe,et){var gt={},tt={};function Ye(je,pt,Lt,tr){this.name=je,this.id=pt,this.location=Lt,this.info=tr}function Ot(je,pt){for(var Lt=0;Lt<je.length;++Lt)if(je[Lt].id===pt.id){je[Lt].location=pt.location;return}je.push(pt)}function Rt(je,pt,Lt){var tr=je===$?gt:tt,At=tr[pt];if(!At){var ar=ie.str(pt);At=N.createShader(je),N.shaderSource(At,ar),N.compileShader(At),se.shaderError(N,At,ar,je,Lt),tr[pt]=At}return At}var Xt={},Ut=[],Gt=0;function $t(je,pt){this.id=Gt++,this.fragId=je,this.vertId=pt,this.program=null,this.uniforms=[],this.attributes=[],et.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function Ct(je,pt,Lt){var tr,At,ar=Rt($,je.fragId),Mt=Rt(K,je.vertId),rr=je.program=N.createProgram();if(N.attachShader(rr,ar),N.attachShader(rr,Mt),Lt)for(tr=0;tr<Lt.length;++tr){var Tt=Lt[tr];N.bindAttribLocation(rr,Tt[0],Tt[1])}N.linkProgram(rr),se.linkError(N,rr,ie.str(je.fragId),ie.str(je.vertId),pt);var Qt=N.getProgramParameter(rr,ee);et.profile&&(je.stats.uniformsCount=Qt);var Or=je.uniforms;for(tr=0;tr<Qt;++tr)if(At=N.getActiveUniform(rr,tr),At)if(At.size>1)for(var ro=0;ro<At.size;++ro){var Jt=At.name.replace("[0]","["+ro+"]");Ot(Or,new Ye(Jt,ie.id(Jt),N.getUniformLocation(rr,Jt),At))}else Ot(Or,new Ye(At.name,ie.id(At.name),N.getUniformLocation(rr,At.name),At));var Dt=N.getProgramParameter(rr,_e);et.profile&&(je.stats.attributesCount=Dt);var vt=je.attributes;for(tr=0;tr<Dt;++tr)At=N.getActiveAttrib(rr,tr),At&&Ot(vt,new Ye(At.name,ie.id(At.name),N.getAttribLocation(rr,At.name),At))}et.profile&&(xe.getMaxUniformsCount=function(){var je=0;return Ut.forEach(function(pt){pt.stats.uniformsCount>je&&(je=pt.stats.uniformsCount)}),je},xe.getMaxAttributesCount=function(){var je=0;return Ut.forEach(function(pt){pt.stats.attributesCount>je&&(je=pt.stats.attributesCount)}),je});function jt(){gt={},tt={};for(var je=0;je<Ut.length;++je)Ct(Ut[je],null,Ut[je].attributes.map(function(pt){return[pt.location,pt.name]}))}return{clear:function(){var je=N.deleteShader.bind(N);re(gt).forEach(je),gt={},re(tt).forEach(je),tt={},Ut.forEach(function(pt){N.deleteProgram(pt.program)}),Ut.length=0,Xt={},xe.shaderCount=0},program:function(je,pt,Lt,tr){se.command(je>=0,"missing vertex shader",Lt),se.command(pt>=0,"missing fragment shader",Lt);var At=Xt[pt];At||(At=Xt[pt]={});var ar=At[je];if(ar&&!tr)return ar;var Mt=new $t(pt,je);return xe.shaderCount++,Ct(Mt,Lt,tr),ar||(At[je]=Mt),Ut.push(Mt),Mt},restore:jt,shader:Rt,frag:-1,vert:-1}}var Te=6408,le=5121,Fe=3333,De=5126;function Xe(N,ie,xe,et,gt,tt,Ye){function Ot(Ut){var Gt;ie.next===null?(se(gt.preserveDrawingBuffer,'you must create a webgl context with "preserveDrawingBuffer":true in order to read pixels from the drawing buffer'),Gt=le):(se(ie.next.colorAttachments[0].texture!==null,"You cannot read from a renderbuffer"),Gt=ie.next.colorAttachments[0].texture._texture.type,tt.oes_texture_float?(se(Gt===le||Gt===De,"Reading from a framebuffer is only allowed for the types 'uint8' and 'float'"),Gt===De&&se(Ye.readFloat,"Reading 'float' values is not permitted in your browser. For a fallback, please see: https://www.npmjs.com/package/glsl-read-float")):se(Gt===le,"Reading from a framebuffer is only allowed for the type 'uint8'"));var $t=0,Ct=0,jt=et.framebufferWidth,je=et.framebufferHeight,pt=null;r(Ut)?pt=Ut:Ut&&(se.type(Ut,"object","invalid arguments to regl.read()"),$t=Ut.x|0,Ct=Ut.y|0,se($t>=0&&$t<et.framebufferWidth,"invalid x offset for regl.read"),se(Ct>=0&&Ct<et.framebufferHeight,"invalid y offset for regl.read"),jt=(Ut.width||et.framebufferWidth-$t)|0,je=(Ut.height||et.framebufferHeight-Ct)|0,pt=Ut.data||null),pt&&(Gt===le?se(pt instanceof Uint8Array,"buffer must be 'Uint8Array' when reading from a framebuffer of type 'uint8'"):Gt===De&&se(pt instanceof Float32Array,"buffer must be 'Float32Array' when reading from a framebuffer of type 'float'")),se(jt>0&&jt+$t<=et.framebufferWidth,"invalid width for read pixels"),se(je>0&&je+Ct<=et.framebufferHeight,"invalid height for read pixels"),xe();var Lt=jt*je*4;return pt||(Gt===le?pt=new Uint8Array(Lt):Gt===De&&(pt=pt||new Float32Array(Lt))),se.isTypedArray(pt,"data buffer for regl.read() must be a typedarray"),se(pt.byteLength>=Lt,"data buffer for regl.read() too small"),N.pixelStorei(Fe,4),N.readPixels($t,Ct,jt,je,Te,Gt,pt),pt}function Rt(Ut){var Gt;return ie.setFBO({framebuffer:Ut.framebuffer},function(){Gt=Ot(Ut)}),Gt}function Xt(Ut){return!Ut||!("framebuffer"in Ut)?Ot(Ut):Rt(Ut)}return Xt}function at(N){return Array.prototype.slice.call(N)}function Je(N){return at(N).join("")}function ct(){var N=0,ie=[],xe=[];function et(Gt){for(var $t=0;$t<xe.length;++$t)if(xe[$t]===Gt)return ie[$t];var Ct="g"+N++;return ie.push(Ct),xe.push(Gt),Ct}function gt(){var Gt=[];function $t(){Gt.push.apply(Gt,at(arguments))}var Ct=[];function jt(){var je="v"+N++;return Ct.push(je),arguments.length>0&&(Gt.push(je,"="),Gt.push.apply(Gt,at(arguments)),Gt.push(";")),je}return i($t,{def:jt,toString:function(){return Je([Ct.length>0?"var "+Ct.join(",")+";":"",Je(Gt)])}})}function tt(){var Gt=gt(),$t=gt(),Ct=Gt.toString,jt=$t.toString;function je(pt,Lt){$t(pt,Lt,"=",Gt.def(pt,Lt),";")}return i(function(){Gt.apply(Gt,at(arguments))},{def:Gt.def,entry:Gt,exit:$t,save:je,set:function(pt,Lt,tr){je(pt,Lt),Gt(pt,Lt,"=",tr,";")},toString:function(){return Ct()+jt()}})}function Ye(){var Gt=Je(arguments),$t=tt(),Ct=tt(),jt=$t.toString,je=Ct.toString;return i($t,{then:function(){return $t.apply($t,at(arguments)),this},else:function(){return Ct.apply(Ct,at(arguments)),this},toString:function(){var pt=je();return pt&&(pt="else{"+pt+"}"),Je(["if(",Gt,"){",jt(),"}",pt])}})}var Ot=gt(),Rt={};function Xt(Gt,$t){var Ct=[];function jt(){var At="a"+Ct.length;return Ct.push(At),At}$t=$t||0;for(var je=0;je<$t;++je)jt();var pt=tt(),Lt=pt.toString,tr=Rt[Gt]=i(pt,{arg:jt,toString:function(){return Je(["function(",Ct.join(),"){",Lt(),"}"])}});return tr}function Ut(){var Gt=['"use strict";',Ot,"return {"];Object.keys(Rt).forEach(function(jt){Gt.push('"',jt,'":',Rt[jt].toString(),",")}),Gt.push("}");var $t=Je(Gt).replace(/;/g,`;
- `).replace(/}/g,`}
- `).replace(/{/g,`{
- `),Ct=Function.apply(null,ie.concat($t));return Ct.apply(null,xe)}return{global:Ot,link:et,block:gt,proc:Xt,scope:tt,cond:Ye,compile:Ut}}var Pt="xyzw".split(""),Ht=5121,Bt=1,nr=2,Cr=0,Dr=1,Nr=2,Lo=3,cr=4,$r="dither",lo="blend.enable",Xr="blend.color",Gr="blend.equation",uo="blend.func",jr="depth.enable",zr="depth.func",qi="depth.range",Si="depth.mask",Rn="colorMask",hn="cull.enable",Fi="cull.face",wi="frontFace",ra="lineWidth",Zn="polygonOffset.enable",Cs="polygonOffset.offset",oa="sample.alpha",Ja="sample.enable",wa="sample.coverage",Ip="stencil.enable",ip="stencil.mask",Is="stencil.func",Nu="stencil.opFront",ou="stencil.opBack",ds="scissor.enable",Du="scissor.box",kn="viewport",Bi="profile",da="framebuffer",es="vert",ys="frag",Io="elements",Cn="primitive",Ki="count",Ms="offset",oc="instances",Ou="vao",Kc="Width",np="Height",ap=da+Kc,hs=da+np,ic=kn+Kc,J0=kn+np,Mp="drawingBuffer",ya=Mp+Kc,zy=Mp+np,Vy=[uo,Gr,Is,Nu,ou,wa,kn,Du,Cs],nc=34962,Jf=34963,em=35632,tm=35633,k1=3553,rm=34067,z1=2884,Hy=3042,Np=3024,Qc=2960,om=2929,im=3089,nm=32823,am=32926,sm=32928,ed=5126,V1=35664,ac=35665,H1=35666,Dp=5124,G1=35667,Ui=35668,yl=35669,j1=35670,hl=35671,fl=35672,Op=35673,sc=35674,uc=35675,sp=35676,ml=35678,_l=35680,Gy=4,up=1028,gl=1029,W1=2304,td=2305,rd=32775,od=32776,iu=519,Lp=7680,jy=0,Wy=1,Xy=32774,Zy=513,vl=36160,um=36064,Lu={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},id=["constant color, constant alpha","one minus constant color, constant alpha","constant color, one minus constant alpha","one minus constant color, one minus constant alpha","constant alpha, constant color","constant alpha, one minus constant color","one minus constant alpha, constant color","one minus constant alpha, one minus constant color"],El={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Bp={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Yy={frag:em,vert:tm},Up={cw:W1,ccw:td};function X1(N){return Array.isArray(N)||r(N)||X(N)}function Z1(N){return N.sort(function(ie,xe){return ie===kn?-1:xe===kn?1:ie<xe?-1:1})}function ha(N,ie,xe,et){this.thisDep=N,this.contextDep=ie,this.propDep=xe,this.append=et}function ia(N){return N&&!(N.thisDep||N.contextDep||N.propDep)}function fn(N){return new ha(!1,!1,!1,N)}function ts(N,ie){var xe=N.type;if(xe===Cr){var et=N.data.length;return new ha(!0,et>=1,et>=2,ie)}else if(xe===cr){var gt=N.data;return new ha(gt.thisDep,gt.contextDep,gt.propDep,ie)}else return new ha(xe===Lo,xe===Nr,xe===Dr,ie)}var $y=new ha(!1,!1,!1,function(){});function Jc(N,ie,xe,et,gt,tt,Ye,Ot,Rt,Xt,Ut,Gt,$t,Ct,jt){var je=Xt.Record,pt={add:32774,subtract:32778,"reverse subtract":32779};xe.ext_blend_minmax&&(pt.min=rd,pt.max=od);var Lt=xe.angle_instanced_arrays,tr=xe.webgl_draw_buffers,At={dirty:!0,profile:jt.profile},ar={},Mt=[],rr={},Tt={};function Qt(Z){return Z.replace(".","_")}function Or(Z,ue,Pe){var Qe=Qt(Z);Mt.push(Z),ar[Qe]=At[Qe]=!!Pe,rr[Qe]=ue}function ro(Z,ue,Pe){var Qe=Qt(Z);Mt.push(Z),Array.isArray(Pe)?(At[Qe]=Pe.slice(),ar[Qe]=Pe.slice()):At[Qe]=ar[Qe]=Pe,Tt[Qe]=ue}Or($r,Np),Or(lo,Hy),ro(Xr,"blendColor",[0,0,0,0]),ro(Gr,"blendEquationSeparate",[Xy,Xy]),ro(uo,"blendFuncSeparate",[Wy,jy,Wy,jy]),Or(jr,om,!0),ro(zr,"depthFunc",Zy),ro(qi,"depthRange",[0,1]),ro(Si,"depthMask",!0),ro(Rn,Rn,[!0,!0,!0,!0]),Or(hn,z1),ro(Fi,"cullFace",gl),ro(wi,wi,td),ro(ra,ra,1),Or(Zn,nm),ro(Cs,"polygonOffset",[0,0]),Or(oa,am),Or(Ja,sm),ro(wa,"sampleCoverage",[1,!1]),Or(Ip,Qc),ro(ip,"stencilMask",-1),ro(Is,"stencilFunc",[iu,0,-1]),ro(Nu,"stencilOpSeparate",[up,Lp,Lp,Lp]),ro(ou,"stencilOpSeparate",[gl,Lp,Lp,Lp]),Or(ds,im),ro(Du,"scissor",[0,0,N.drawingBufferWidth,N.drawingBufferHeight]),ro(kn,kn,[0,0,N.drawingBufferWidth,N.drawingBufferHeight]);var Jt={gl:N,context:$t,strings:ie,next:ar,current:At,draw:Gt,elements:tt,buffer:gt,shader:Ut,attributes:Xt.state,vao:Xt,uniforms:Rt,framebuffer:Ot,extensions:xe,timer:Ct,isBufferArgs:X1},Dt={primTypes:bs,compareFuncs:El,blendFuncs:Lu,blendEquations:pt,stencilOps:Bp,glTypes:Bn,orientationType:Up};se.optional(function(){Jt.isArrayLike=Li}),tr&&(Dt.backBuffer=[gl],Dt.drawBuffer=Go(et.maxDrawbuffers,function(Z){return Z===0?[0]:Go(Z,function(ue){return um+ue})}));var vt=0;function Lr(){var Z=ct(),ue=Z.link,Pe=Z.global;Z.id=vt++,Z.batchId="0";var Qe=ue(Jt),qe=Z.shared={props:"a0"};Object.keys(Jt).forEach(function(Ce){qe[Ce]=Pe.def(Qe,".",Ce)}),se.optional(function(){Z.CHECK=ue(se),Z.commandStr=se.guessCommand(),Z.command=ue(Z.commandStr),Z.assert=function(Ce,ae,Me){Ce("if(!(",ae,"))",this.CHECK,".commandRaise(",ue(Me),",",this.command,");")},Dt.invalidBlendCombinations=id});var Se=Z.next={},Ne=Z.current={};Object.keys(Tt).forEach(function(Ce){Array.isArray(At[Ce])&&(Se[Ce]=Pe.def(qe.next,".",Ce),Ne[Ce]=Pe.def(qe.current,".",Ce))});var Ue=Z.constants={};Object.keys(Dt).forEach(function(Ce){Ue[Ce]=Pe.def(JSON.stringify(Dt[Ce]))}),Z.invoke=function(Ce,ae){switch(ae.type){case Cr:var Me=["this",qe.context,qe.props,Z.batchId];return Ce.def(ue(ae.data),".call(",Me.slice(0,Math.max(ae.data.length+1,4)),")");case Dr:return Ce.def(qe.props,ae.data);case Nr:return Ce.def(qe.context,ae.data);case Lo:return Ce.def("this",ae.data);case cr:return ae.data.append(Z,Ce),ae.data.ref}},Z.attribCache={};var me={};return Z.scopeAttrib=function(Ce){var ae=ie.id(Ce);if(ae in me)return me[ae];var Me=Xt.scope[ae];Me||(Me=Xt.scope[ae]=new je);var nt=me[ae]=ue(Me);return nt},Z}function xo(Z){var ue=Z.static,Pe=Z.dynamic,Qe;if(Bi in ue){var qe=!!ue[Bi];Qe=fn(function(Ne,Ue){return qe}),Qe.enable=qe}else if(Bi in Pe){var Se=Pe[Bi];Qe=ts(Se,function(Ne,Ue){return Ne.invoke(Ue,Se)})}return Qe}function sr(Z,ue){var Pe=Z.static,Qe=Z.dynamic;if(da in Pe){var qe=Pe[da];return qe?(qe=Ot.getFramebuffer(qe),se.command(qe,"invalid framebuffer object"),fn(function(Ne,Ue){var me=Ne.link(qe),Ce=Ne.shared;Ue.set(Ce.framebuffer,".next",me);var ae=Ce.context;return Ue.set(ae,"."+ap,me+".width"),Ue.set(ae,"."+hs,me+".height"),me})):fn(function(Ne,Ue){var me=Ne.shared;Ue.set(me.framebuffer,".next","null");var Ce=me.context;return Ue.set(Ce,"."+ap,Ce+"."+ya),Ue.set(Ce,"."+hs,Ce+"."+zy),"null"})}else if(da in Qe){var Se=Qe[da];return ts(Se,function(Ne,Ue){var me=Ne.invoke(Ue,Se),Ce=Ne.shared,ae=Ce.framebuffer,Me=Ue.def(ae,".getFramebuffer(",me,")");se.optional(function(){Ne.assert(Ue,"!"+me+"||"+Me,"invalid framebuffer object")}),Ue.set(ae,".next",Me);var nt=Ce.context;return Ue.set(nt,"."+ap,Me+"?"+Me+".width:"+nt+"."+ya),Ue.set(nt,"."+hs,Me+"?"+Me+".height:"+nt+"."+zy),Me})}else return null}function ho(Z,ue,Pe){var Qe=Z.static,qe=Z.dynamic;function Se(me){if(me in Qe){var Ce=Qe[me];se.commandType(Ce,"object","invalid "+me,Pe.commandStr);var ae=!0,Me=Ce.x|0,nt=Ce.y|0,yt,St;return"width"in Ce?(yt=Ce.width|0,se.command(yt>=0,"invalid "+me,Pe.commandStr)):ae=!1,"height"in Ce?(St=Ce.height|0,se.command(St>=0,"invalid "+me,Pe.commandStr)):ae=!1,new ha(!ae&&ue&&ue.thisDep,!ae&&ue&&ue.contextDep,!ae&&ue&&ue.propDep,function(Tr,fr){var vr=Tr.shared.context,Hr=yt;"width"in Ce||(Hr=fr.def(vr,".",ap,"-",Me));var Qr=St;return"height"in Ce||(Qr=fr.def(vr,".",hs,"-",nt)),[Me,nt,Hr,Qr]})}else if(me in qe){var xt=qe[me],It=ts(xt,function(Tr,fr){var vr=Tr.invoke(fr,xt);se.optional(function(){Tr.assert(fr,vr+"&&typeof "+vr+'==="object"',"invalid "+me)});var Hr=Tr.shared.context,Qr=fr.def(vr,".x|0"),Yo=fr.def(vr,".y|0"),vn=fr.def('"width" in ',vr,"?",vr,".width|0:","(",Hr,".",ap,"-",Qr,")"),au=fr.def('"height" in ',vr,"?",vr,".height|0:","(",Hr,".",hs,"-",Yo,")");return se.optional(function(){Tr.assert(fr,vn+">=0&&"+au+">=0","invalid "+me)}),[Qr,Yo,vn,au]});return ue&&(It.thisDep=It.thisDep||ue.thisDep,It.contextDep=It.contextDep||ue.contextDep,It.propDep=It.propDep||ue.propDep),It}else return ue?new ha(ue.thisDep,ue.contextDep,ue.propDep,function(Tr,fr){var vr=Tr.shared.context;return[0,0,fr.def(vr,".",ap),fr.def(vr,".",hs)]}):null}var Ne=Se(kn);if(Ne){var Ue=Ne;Ne=new ha(Ne.thisDep,Ne.contextDep,Ne.propDep,function(me,Ce){var ae=Ue.append(me,Ce),Me=me.shared.context;return Ce.set(Me,"."+ic,ae[2]),Ce.set(Me,"."+J0,ae[3]),ae})}return{viewport:Ne,scissor_box:Se(Du)}}function eo(Z,ue){var Pe=Z.static,Qe=typeof Pe[ys]=="string"&&typeof Pe[es]=="string";if(Qe){if(Object.keys(ue.dynamic).length>0)return null;var qe=ue.static,Se=Object.keys(qe);if(Se.length>0&&typeof qe[Se[0]]=="number"){for(var Ne=[],Ue=0;Ue<Se.length;++Ue)se(typeof qe[Se[Ue]]=="number","must specify all vertex attribute locations when using vaos"),Ne.push([qe[Se[Ue]]|0,Se[Ue]]);return Ne}}return null}function Wr(Z,ue,Pe){var Qe=Z.static,qe=Z.dynamic;function Se(ae){if(ae in Qe){var Me=ie.id(Qe[ae]);se.optional(function(){Ut.shader(Yy[ae],Me,se.guessCommand())});var nt=fn(function(){return Me});return nt.id=Me,nt}else if(ae in qe){var yt=qe[ae];return ts(yt,function(St,xt){var It=St.invoke(xt,yt),Tr=xt.def(St.shared.strings,".id(",It,")");return se.optional(function(){xt(St.shared.shader,".shader(",Yy[ae],",",Tr,",",St.command,");")}),Tr})}return null}var Ne=Se(ys),Ue=Se(es),me=null,Ce;return ia(Ne)&&ia(Ue)?(me=Ut.program(Ue.id,Ne.id,null,Pe),Ce=fn(function(ae,Me){return ae.link(me)})):Ce=new ha(Ne&&Ne.thisDep||Ue&&Ue.thisDep,Ne&&Ne.contextDep||Ue&&Ue.contextDep,Ne&&Ne.propDep||Ue&&Ue.propDep,function(ae,Me){var nt=ae.shared.shader,yt;Ne?yt=Ne.append(ae,Me):yt=Me.def(nt,".",ys);var St;Ue?St=Ue.append(ae,Me):St=Me.def(nt,".",es);var xt=nt+".program("+St+","+yt;return se.optional(function(){xt+=","+ae.command}),Me.def(xt+")")}),{frag:Ne,vert:Ue,progVar:Ce,program:me}}function jo(Z,ue){var Pe=Z.static,Qe=Z.dynamic;function qe(){if(Io in Pe){var ae=Pe[Io];X1(ae)?ae=tt.getElements(tt.create(ae,!0)):ae&&(ae=tt.getElements(ae),se.command(ae,"invalid elements",ue.commandStr));var Me=fn(function(yt,St){if(ae){var xt=yt.link(ae);return yt.ELEMENTS=xt,xt}return yt.ELEMENTS=null,null});return Me.value=ae,Me}else if(Io in Qe){var nt=Qe[Io];return ts(nt,function(yt,St){var xt=yt.shared,It=xt.isBufferArgs,Tr=xt.elements,fr=yt.invoke(St,nt),vr=St.def("null"),Hr=St.def(It,"(",fr,")"),Qr=yt.cond(Hr).then(vr,"=",Tr,".createStream(",fr,");").else(vr,"=",Tr,".getElements(",fr,");");return se.optional(function(){yt.assert(Qr.else,"!"+fr+"||"+vr,"invalid elements")}),St.entry(Qr),St.exit(yt.cond(Hr).then(Tr,".destroyStream(",vr,");")),yt.ELEMENTS=vr,vr})}return null}var Se=qe();function Ne(){if(Cn in Pe){var ae=Pe[Cn];return se.commandParameter(ae,bs,"invalid primitve",ue.commandStr),fn(function(nt,yt){return bs[ae]})}else if(Cn in Qe){var Me=Qe[Cn];return ts(Me,function(nt,yt){var St=nt.constants.primTypes,xt=nt.invoke(yt,Me);return se.optional(function(){nt.assert(yt,xt+" in "+St,"invalid primitive, must be one of "+Object.keys(bs))}),yt.def(St,"[",xt,"]")})}else if(Se)return ia(Se)?Se.value?fn(function(nt,yt){return yt.def(nt.ELEMENTS,".primType")}):fn(function(){return Gy}):new ha(Se.thisDep,Se.contextDep,Se.propDep,function(nt,yt){var St=nt.ELEMENTS;return yt.def(St,"?",St,".primType:",Gy)});return null}function Ue(ae,Me){if(ae in Pe){var nt=Pe[ae]|0;return se.command(!Me||nt>=0,"invalid "+ae,ue.commandStr),fn(function(St,xt){return Me&&(St.OFFSET=nt),nt})}else if(ae in Qe){var yt=Qe[ae];return ts(yt,function(St,xt){var It=St.invoke(xt,yt);return Me&&(St.OFFSET=It,se.optional(function(){St.assert(xt,It+">=0","invalid "+ae)})),It})}else if(Me&&Se)return fn(function(St,xt){return St.OFFSET="0",0});return null}var me=Ue(Ms,!0);function Ce(){if(Ki in Pe){var ae=Pe[Ki]|0;return se.command(typeof ae=="number"&&ae>=0,"invalid vertex count",ue.commandStr),fn(function(){return ae})}else if(Ki in Qe){var Me=Qe[Ki];return ts(Me,function(St,xt){var It=St.invoke(xt,Me);return se.optional(function(){St.assert(xt,"typeof "+It+'==="number"&&'+It+">=0&&"+It+"===("+It+"|0)","invalid vertex count")}),It})}else if(Se)if(ia(Se)){if(Se)return me?new ha(me.thisDep,me.contextDep,me.propDep,function(St,xt){var It=xt.def(St.ELEMENTS,".vertCount-",St.OFFSET);return se.optional(function(){St.assert(xt,It+">=0","invalid vertex offset/element buffer too small")}),It}):fn(function(St,xt){return xt.def(St.ELEMENTS,".vertCount")});var nt=fn(function(){return-1});return se.optional(function(){nt.MISSING=!0}),nt}else{var yt=new ha(Se.thisDep||me.thisDep,Se.contextDep||me.contextDep,Se.propDep||me.propDep,function(St,xt){var It=St.ELEMENTS;return St.OFFSET?xt.def(It,"?",It,".vertCount-",St.OFFSET,":-1"):xt.def(It,"?",It,".vertCount:-1")});return se.optional(function(){yt.DYNAMIC=!0}),yt}return null}return{elements:Se,primitive:Ne(),count:Ce(),instances:Ue(oc,!1),offset:me}}function Qi(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Mt.forEach(function(Se){var Ne=Qt(Se);function Ue(me,Ce){if(Se in Pe){var ae=me(Pe[Se]);qe[Ne]=fn(function(){return ae})}else if(Se in Qe){var Me=Qe[Se];qe[Ne]=ts(Me,function(nt,yt){return Ce(nt,yt,nt.invoke(yt,Me))})}}switch(Se){case hn:case lo:case $r:case Ip:case jr:case ds:case Zn:case oa:case Ja:case Si:return Ue(function(me){return se.commandType(me,"boolean",Se,ue.commandStr),me},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="boolean"',"invalid flag "+Se,me.commandStr)}),ae});case zr:return Ue(function(me){return se.commandParameter(me,El,"invalid "+Se,ue.commandStr),El[me]},function(me,Ce,ae){var Me=me.constants.compareFuncs;return se.optional(function(){me.assert(Ce,ae+" in "+Me,"invalid "+Se+", must be one of "+Object.keys(El))}),Ce.def(Me,"[",ae,"]")});case qi:return Ue(function(me){return se.command(Li(me)&&me.length===2&&typeof me[0]=="number"&&typeof me[1]=="number"&&me[0]<=me[1],"depth range is 2d array",ue.commandStr),me},function(me,Ce,ae){se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===2&&typeof "+ae+'[0]==="number"&&typeof '+ae+'[1]==="number"&&'+ae+"[0]<="+ae+"[1]","depth range must be a 2d array")});var Me=Ce.def("+",ae,"[0]"),nt=Ce.def("+",ae,"[1]");return[Me,nt]});case uo:return Ue(function(me){se.commandType(me,"object","blend.func",ue.commandStr);var Ce="srcRGB"in me?me.srcRGB:me.src,ae="srcAlpha"in me?me.srcAlpha:me.src,Me="dstRGB"in me?me.dstRGB:me.dst,nt="dstAlpha"in me?me.dstAlpha:me.dst;return se.commandParameter(Ce,Lu,Ne+".srcRGB",ue.commandStr),se.commandParameter(ae,Lu,Ne+".srcAlpha",ue.commandStr),se.commandParameter(Me,Lu,Ne+".dstRGB",ue.commandStr),se.commandParameter(nt,Lu,Ne+".dstAlpha",ue.commandStr),se.command(id.indexOf(Ce+", "+Me)===-1,"unallowed blending combination (srcRGB, dstRGB) = ("+Ce+", "+Me+")",ue.commandStr),[Lu[Ce],Lu[Me],Lu[ae],Lu[nt]]},function(me,Ce,ae){var Me=me.constants.blendFuncs;se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid blend func, must be an object")});function nt(vr,Hr){var Qr=Ce.def('"',vr,Hr,'" in ',ae,"?",ae,".",vr,Hr,":",ae,".",vr);return se.optional(function(){me.assert(Ce,Qr+" in "+Me,"invalid "+Se+"."+vr+Hr+", must be one of "+Object.keys(Lu))}),Qr}var yt=nt("src","RGB"),St=nt("dst","RGB");se.optional(function(){var vr=me.constants.invalidBlendCombinations;me.assert(Ce,vr+".indexOf("+yt+'+", "+'+St+") === -1 ","unallowed blending combination for (srcRGB, dstRGB)")});var xt=Ce.def(Me,"[",yt,"]"),It=Ce.def(Me,"[",nt("src","Alpha"),"]"),Tr=Ce.def(Me,"[",St,"]"),fr=Ce.def(Me,"[",nt("dst","Alpha"),"]");return[xt,Tr,It,fr]});case Gr:return Ue(function(me){if(typeof me=="string")return se.commandParameter(me,pt,"invalid "+Se,ue.commandStr),[pt[me],pt[me]];if(typeof me=="object")return se.commandParameter(me.rgb,pt,Se+".rgb",ue.commandStr),se.commandParameter(me.alpha,pt,Se+".alpha",ue.commandStr),[pt[me.rgb],pt[me.alpha]];se.commandRaise("invalid blend.equation",ue.commandStr)},function(me,Ce,ae){var Me=me.constants.blendEquations,nt=Ce.def(),yt=Ce.def(),St=me.cond("typeof ",ae,'==="string"');return se.optional(function(){function xt(It,Tr,fr){me.assert(It,fr+" in "+Me,"invalid "+Tr+", must be one of "+Object.keys(pt))}xt(St.then,Se,ae),me.assert(St.else,ae+"&&typeof "+ae+'==="object"',"invalid "+Se),xt(St.else,Se+".rgb",ae+".rgb"),xt(St.else,Se+".alpha",ae+".alpha")}),St.then(nt,"=",yt,"=",Me,"[",ae,"];"),St.else(nt,"=",Me,"[",ae,".rgb];",yt,"=",Me,"[",ae,".alpha];"),Ce(St),[nt,yt]});case Xr:return Ue(function(me){return se.command(Li(me)&&me.length===4,"blend.color must be a 4d array",ue.commandStr),Go(4,function(Ce){return+me[Ce]})},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===4","blend.color must be a 4d array")}),Go(4,function(Me){return Ce.def("+",ae,"[",Me,"]")})});case ip:return Ue(function(me){return se.commandType(me,"number",Ne,ue.commandStr),me|0},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="number"',"invalid stencil.mask")}),Ce.def(ae,"|0")});case Is:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.cmp||"keep",ae=me.ref||0,Me="mask"in me?me.mask:-1;return se.commandParameter(Ce,El,Se+".cmp",ue.commandStr),se.commandType(ae,"number",Se+".ref",ue.commandStr),se.commandType(Me,"number",Se+".mask",ue.commandStr),[El[Ce],ae,Me]},function(me,Ce,ae){var Me=me.constants.compareFuncs;se.optional(function(){function xt(){me.assert(Ce,Array.prototype.join.call(arguments,""),"invalid stencil.func")}xt(ae+"&&typeof ",ae,'==="object"'),xt('!("cmp" in ',ae,")||(",ae,".cmp in ",Me,")")});var nt=Ce.def('"cmp" in ',ae,"?",Me,"[",ae,".cmp]",":",Lp),yt=Ce.def(ae,".ref|0"),St=Ce.def('"mask" in ',ae,"?",ae,".mask|0:-1");return[nt,yt,St]});case Nu:case ou:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.fail||"keep",ae=me.zfail||"keep",Me=me.zpass||"keep";return se.commandParameter(Ce,Bp,Se+".fail",ue.commandStr),se.commandParameter(ae,Bp,Se+".zfail",ue.commandStr),se.commandParameter(Me,Bp,Se+".zpass",ue.commandStr),[Se===ou?gl:up,Bp[Ce],Bp[ae],Bp[Me]]},function(me,Ce,ae){var Me=me.constants.stencilOps;se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid "+Se)});function nt(yt){return se.optional(function(){me.assert(Ce,'!("'+yt+'" in '+ae+")||("+ae+"."+yt+" in "+Me+")","invalid "+Se+"."+yt+", must be one of "+Object.keys(Bp))}),Ce.def('"',yt,'" in ',ae,"?",Me,"[",ae,".",yt,"]:",Lp)}return[Se===ou?gl:up,nt("fail"),nt("zfail"),nt("zpass")]});case Cs:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.factor|0,ae=me.units|0;return se.commandType(Ce,"number",Ne+".factor",ue.commandStr),se.commandType(ae,"number",Ne+".units",ue.commandStr),[Ce,ae]},function(me,Ce,ae){se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid "+Se)});var Me=Ce.def(ae,".factor|0"),nt=Ce.def(ae,".units|0");return[Me,nt]});case Fi:return Ue(function(me){var Ce=0;return me==="front"?Ce=up:me==="back"&&(Ce=gl),se.command(!!Ce,Ne,ue.commandStr),Ce},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,ae+'==="front"||'+ae+'==="back"',"invalid cull.face")}),Ce.def(ae,'==="front"?',up,":",gl)});case ra:return Ue(function(me){return se.command(typeof me=="number"&&me>=et.lineWidthDims[0]&&me<=et.lineWidthDims[1],"invalid line width, must be a positive number between "+et.lineWidthDims[0]+" and "+et.lineWidthDims[1],ue.commandStr),me},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="number"&&'+ae+">="+et.lineWidthDims[0]+"&&"+ae+"<="+et.lineWidthDims[1],"invalid line width")}),ae});case wi:return Ue(function(me){return se.commandParameter(me,Up,Ne,ue.commandStr),Up[me]},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,ae+'==="cw"||'+ae+'==="ccw"',"invalid frontFace, must be one of cw,ccw")}),Ce.def(ae+'==="cw"?'+W1+":"+td)});case Rn:return Ue(function(me){return se.command(Li(me)&&me.length===4,"color.mask must be length 4 array",ue.commandStr),me.map(function(Ce){return!!Ce})},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===4","invalid color.mask")}),Go(4,function(Me){return"!!"+ae+"["+Me+"]"})});case wa:return Ue(function(me){se.command(typeof me=="object"&&me,Ne,ue.commandStr);var Ce="value"in me?me.value:1,ae=!!me.invert;return se.command(typeof Ce=="number"&&Ce>=0&&Ce<=1,"sample.coverage.value must be a number between 0 and 1",ue.commandStr),[Ce,ae]},function(me,Ce,ae){se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid sample.coverage")});var Me=Ce.def('"value" in ',ae,"?+",ae,".value:1"),nt=Ce.def("!!",ae,".invert");return[Me,nt]})}}),qe}function zn(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Object.keys(Pe).forEach(function(Se){var Ne=Pe[Se],Ue;if(typeof Ne=="number"||typeof Ne=="boolean")Ue=fn(function(){return Ne});else if(typeof Ne=="function"){var me=Ne._reglType;me==="texture2d"||me==="textureCube"?Ue=fn(function(Ce){return Ce.link(Ne)}):me==="framebuffer"||me==="framebufferCube"?(se.command(Ne.color.length>0,'missing color attachment for framebuffer sent to uniform "'+Se+'"',ue.commandStr),Ue=fn(function(Ce){return Ce.link(Ne.color[0])})):se.commandRaise('invalid data for uniform "'+Se+'"',ue.commandStr)}else Li(Ne)?Ue=fn(function(Ce){var ae=Ce.global.def("[",Go(Ne.length,function(Me){return se.command(typeof Ne[Me]=="number"||typeof Ne[Me]=="boolean","invalid uniform "+Se,Ce.commandStr),Ne[Me]}),"]");return ae}):se.commandRaise('invalid or missing data for uniform "'+Se+'"',ue.commandStr);Ue.value=Ne,qe[Se]=Ue}),Object.keys(Qe).forEach(function(Se){var Ne=Qe[Se];qe[Se]=ts(Ne,function(Ue,me){return Ue.invoke(me,Ne)})}),qe}function Ro(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Object.keys(Pe).forEach(function(Se){var Ne=Pe[Se],Ue=ie.id(Se),me=new je;if(X1(Ne))me.state=Bt,me.buffer=gt.getBuffer(gt.create(Ne,nc,!1,!0)),me.type=0;else{var Ce=gt.getBuffer(Ne);if(Ce)me.state=Bt,me.buffer=Ce,me.type=0;else if(se.command(typeof Ne=="object"&&Ne,"invalid data for attribute "+Se,ue.commandStr),"constant"in Ne){var ae=Ne.constant;me.buffer="null",me.state=nr,typeof ae=="number"?me.x=ae:(se.command(Li(ae)&&ae.length>0&&ae.length<=4,"invalid constant for attribute "+Se,ue.commandStr),Pt.forEach(function(Tr,fr){fr<ae.length&&(me[Tr]=ae[fr])}))}else{X1(Ne.buffer)?Ce=gt.getBuffer(gt.create(Ne.buffer,nc,!1,!0)):Ce=gt.getBuffer(Ne.buffer),se.command(!!Ce,'missing buffer for attribute "'+Se+'"',ue.commandStr);var Me=Ne.offset|0;se.command(Me>=0,'invalid offset for attribute "'+Se+'"',ue.commandStr);var nt=Ne.stride|0;se.command(nt>=0&&nt<256,'invalid stride for attribute "'+Se+'", must be integer betweeen [0, 255]',ue.commandStr);var yt=Ne.size|0;se.command(!("size"in Ne)||yt>0&&yt<=4,'invalid size for attribute "'+Se+'", must be 1,2,3,4',ue.commandStr);var St=!!Ne.normalized,xt=0;"type"in Ne&&(se.commandParameter(Ne.type,Bn,"invalid type for attribute "+Se,ue.commandStr),xt=Bn[Ne.type]);var It=Ne.divisor|0;"divisor"in Ne&&(se.command(It===0||Lt,'cannot specify divisor for attribute "'+Se+'", instancing not supported',ue.commandStr),se.command(It>=0,'invalid divisor for attribute "'+Se+'"',ue.commandStr)),se.optional(function(){var Tr=ue.commandStr,fr=["buffer","offset","divisor","normalized","type","size","stride"];Object.keys(Ne).forEach(function(vr){se.command(fr.indexOf(vr)>=0,'unknown parameter "'+vr+'" for attribute pointer "'+Se+'" (valid parameters are '+fr+")",Tr)})}),me.buffer=Ce,me.state=Bt,me.size=yt,me.normalized=St,me.type=xt||Ce.dtype,me.offset=Me,me.stride=nt,me.divisor=It}}qe[Se]=fn(function(Tr,fr){var vr=Tr.attribCache;if(Ue in vr)return vr[Ue];var Hr={isStream:!1};return Object.keys(me).forEach(function(Qr){Hr[Qr]=me[Qr]}),me.buffer&&(Hr.buffer=Tr.link(me.buffer),Hr.type=Hr.type||Hr.buffer+".dtype"),vr[Ue]=Hr,Hr})}),Object.keys(Qe).forEach(function(Se){var Ne=Qe[Se];function Ue(me,Ce){var ae=me.invoke(Ce,Ne),Me=me.shared,nt=me.constants,yt=Me.isBufferArgs,St=Me.buffer;se.optional(function(){me.assert(Ce,ae+"&&(typeof "+ae+'==="object"||typeof '+ae+'==="function")&&('+yt+"("+ae+")||"+St+".getBuffer("+ae+")||"+St+".getBuffer("+ae+".buffer)||"+yt+"("+ae+'.buffer)||("constant" in '+ae+"&&(typeof "+ae+'.constant==="number"||'+Me.isArrayLike+"("+ae+".constant))))",'invalid dynamic attribute "'+Se+'"')});var xt={isStream:Ce.def(!1)},It=new je;It.state=Bt,Object.keys(It).forEach(function(Hr){xt[Hr]=Ce.def(""+It[Hr])});var Tr=xt.buffer,fr=xt.type;Ce("if(",yt,"(",ae,")){",xt.isStream,"=true;",Tr,"=",St,".createStream(",nc,",",ae,");",fr,"=",Tr,".dtype;","}else{",Tr,"=",St,".getBuffer(",ae,");","if(",Tr,"){",fr,"=",Tr,".dtype;",'}else if("constant" in ',ae,"){",xt.state,"=",nr,";","if(typeof "+ae+'.constant === "number"){',xt[Pt[0]],"=",ae,".constant;",Pt.slice(1).map(function(Hr){return xt[Hr]}).join("="),"=0;","}else{",Pt.map(function(Hr,Qr){return xt[Hr]+"="+ae+".constant.length>"+Qr+"?"+ae+".constant["+Qr+"]:0;"}).join(""),"}}else{","if(",yt,"(",ae,".buffer)){",Tr,"=",St,".createStream(",nc,",",ae,".buffer);","}else{",Tr,"=",St,".getBuffer(",ae,".buffer);","}",fr,'="type" in ',ae,"?",nt.glTypes,"[",ae,".type]:",Tr,".dtype;",xt.normalized,"=!!",ae,".normalized;");function vr(Hr){Ce(xt[Hr],"=",ae,".",Hr,"|0;")}return vr("size"),vr("offset"),vr("stride"),vr("divisor"),Ce("}}"),Ce.exit("if(",xt.isStream,"){",St,".destroyStream(",Tr,");","}"),xt}qe[Se]=ts(Ne,Ue)}),qe}function Ji(Z,ue){var Pe=Z.static,Qe=Z.dynamic;if(Ou in Pe){var qe=Pe[Ou];return qe!==null&&Xt.getVAO(qe)===null&&(qe=Xt.createVAO(qe)),fn(function(Ne){return Ne.link(Xt.getVAO(qe))})}else if(Ou in Qe){var Se=Qe[Ou];return ts(Se,function(Ne,Ue){var me=Ne.invoke(Ue,Se);return Ue.def(Ne.shared.vao+".getVAO("+me+")")})}return null}function mi(Z){var ue=Z.static,Pe=Z.dynamic,Qe={};return Object.keys(ue).forEach(function(qe){var Se=ue[qe];Qe[qe]=fn(function(Ne,Ue){return typeof Se=="number"||typeof Se=="boolean"?""+Se:Ne.link(Se)})}),Object.keys(Pe).forEach(function(qe){var Se=Pe[qe];Qe[qe]=ts(Se,function(Ne,Ue){return Ne.invoke(Ue,Se)})}),Qe}function mn(Z,ue,Pe,Qe,qe){var Se=Z.static,Ne=Z.dynamic;se.optional(function(){var vr=[da,es,ys,Io,Cn,Ms,Ki,oc,Bi,Ou].concat(Mt);function Hr(Qr){Object.keys(Qr).forEach(function(Yo){se.command(vr.indexOf(Yo)>=0,'unknown parameter "'+Yo+'"',qe.commandStr)})}Hr(Se),Hr(Ne)});var Ue=eo(Z,ue),me=sr(Z),Ce=ho(Z,me,qe),ae=jo(Z,qe),Me=Qi(Z,qe),nt=Wr(Z,qe,Ue);function yt(vr){var Hr=Ce[vr];Hr&&(Me[vr]=Hr)}yt(kn),yt(Qt(Du));var St=Object.keys(Me).length>0,xt={framebuffer:me,draw:ae,shader:nt,state:Me,dirty:St,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(xt.profile=xo(Z),xt.uniforms=zn(Pe,qe),xt.drawVAO=xt.scopeVAO=Ji(Z),!xt.drawVAO&&nt.program&&!Ue&&xe.angle_instanced_arrays){var It=!0,Tr=nt.program.attributes.map(function(vr){var Hr=ue.static[vr];return It=It&&!!Hr,Hr});if(It&&Tr.length>0){var fr=Xt.getVAO(Xt.createVAO(Tr));xt.drawVAO=new ha(null,null,null,function(vr,Hr){return vr.link(fr)}),xt.useVAO=!0}}return Ue?xt.useVAO=!0:xt.attributes=Ro(ue,qe),xt.context=mi(Qe),xt}function _n(Z,ue,Pe){var Qe=Z.shared,qe=Qe.context,Se=Z.scope();Object.keys(Pe).forEach(function(Ne){ue.save(qe,"."+Ne);var Ue=Pe[Ne];Se(qe,".",Ne,"=",Ue.append(Z,ue),";")}),ue(Se)}function ki(Z,ue,Pe,Qe){var qe=Z.shared,Se=qe.gl,Ne=qe.framebuffer,Ue;tr&&(Ue=ue.def(qe.extensions,".webgl_draw_buffers"));var me=Z.constants,Ce=me.drawBuffer,ae=me.backBuffer,Me;Pe?Me=Pe.append(Z,ue):Me=ue.def(Ne,".next"),Qe||ue("if(",Me,"!==",Ne,".cur){"),ue("if(",Me,"){",Se,".bindFramebuffer(",vl,",",Me,".framebuffer);"),tr&&ue(Ue,".drawBuffersWEBGL(",Ce,"[",Me,".colorAttachments.length]);"),ue("}else{",Se,".bindFramebuffer(",vl,",null);"),tr&&ue(Ue,".drawBuffersWEBGL(",ae,");"),ue("}",Ne,".cur=",Me,";"),Qe||ue("}")}function In(Z,ue,Pe){var Qe=Z.shared,qe=Qe.gl,Se=Z.current,Ne=Z.next,Ue=Qe.current,me=Qe.next,Ce=Z.cond(Ue,".dirty");Mt.forEach(function(ae){var Me=Qt(ae);if(!(Me in Pe.state)){var nt,yt;if(Me in Ne){nt=Ne[Me],yt=Se[Me];var St=Go(At[Me].length,function(It){return Ce.def(nt,"[",It,"]")});Ce(Z.cond(St.map(function(It,Tr){return It+"!=="+yt+"["+Tr+"]"}).join("||")).then(qe,".",Tt[Me],"(",St,");",St.map(function(It,Tr){return yt+"["+Tr+"]="+It}).join(";"),";"))}else{nt=Ce.def(me,".",Me);var xt=Z.cond(nt,"!==",Ue,".",Me);Ce(xt),Me in rr?xt(Z.cond(nt).then(qe,".enable(",rr[Me],");").else(qe,".disable(",rr[Me],");"),Ue,".",Me,"=",nt,";"):xt(qe,".",Tt[Me],"(",nt,");",Ue,".",Me,"=",nt,";")}}}),Object.keys(Pe.state).length===0&&Ce(Ue,".dirty=false;"),ue(Ce)}function na(Z,ue,Pe,Qe){var qe=Z.shared,Se=Z.current,Ne=qe.current,Ue=qe.gl;Z1(Object.keys(Pe)).forEach(function(me){var Ce=Pe[me];if(!(Qe&&!Qe(Ce))){var ae=Ce.append(Z,ue);if(rr[me]){var Me=rr[me];ia(Ce)?ae?ue(Ue,".enable(",Me,");"):ue(Ue,".disable(",Me,");"):ue(Z.cond(ae).then(Ue,".enable(",Me,");").else(Ue,".disable(",Me,");")),ue(Ne,".",me,"=",ae,";")}else if(Li(ae)){var nt=Se[me];ue(Ue,".",Tt[me],"(",ae,");",ae.map(function(yt,St){return nt+"["+St+"]="+yt}).join(";"),";")}else ue(Ue,".",Tt[me],"(",ae,");",Ne,".",me,"=",ae,";")}})}function gn(Z,ue){Lt&&(Z.instancing=ue.def(Z.shared.extensions,".angle_instanced_arrays"))}function yo(Z,ue,Pe,Qe,qe){var Se=Z.shared,Ne=Z.stats,Ue=Se.current,me=Se.timer,Ce=Pe.profile;function ae(){return typeof performance>"u"?"Date.now()":"performance.now()"}var Me,nt;function yt(vr){Me=ue.def(),vr(Me,"=",ae(),";"),typeof qe=="string"?vr(Ne,".count+=",qe,";"):vr(Ne,".count++;"),Ct&&(Qe?(nt=ue.def(),vr(nt,"=",me,".getNumPendingQueries();")):vr(me,".beginQuery(",Ne,");"))}function St(vr){vr(Ne,".cpuTime+=",ae(),"-",Me,";"),Ct&&(Qe?vr(me,".pushScopeStats(",nt,",",me,".getNumPendingQueries(),",Ne,");"):vr(me,".endQuery();"))}function xt(vr){var Hr=ue.def(Ue,".profile");ue(Ue,".profile=",vr,";"),ue.exit(Ue,".profile=",Hr,";")}var It;if(Ce){if(ia(Ce)){Ce.enable?(yt(ue),St(ue.exit),xt("true")):xt("false");return}It=Ce.append(Z,ue),xt(It)}else It=ue.def(Ue,".profile");var Tr=Z.block();yt(Tr),ue("if(",It,"){",Tr,"}");var fr=Z.block();St(fr),ue.exit("if(",It,"){",fr,"}")}function Yn(Z,ue,Pe,Qe,qe){var Se=Z.shared;function Ne(me){switch(me){case V1:case G1:case hl:return 2;case ac:case Ui:case fl:return 3;case H1:case yl:case Op:return 4;default:return 1}}function Ue(me,Ce,ae){var Me=Se.gl,nt=ue.def(me,".location"),yt=ue.def(Se.attributes,"[",nt,"]"),St=ae.state,xt=ae.buffer,It=[ae.x,ae.y,ae.z,ae.w],Tr=["buffer","normalized","offset","stride"];function fr(){ue("if(!",yt,".buffer){",Me,".enableVertexAttribArray(",nt,");}");var Hr=ae.type,Qr;if(ae.size?Qr=ue.def(ae.size,"||",Ce):Qr=Ce,ue("if(",yt,".type!==",Hr,"||",yt,".size!==",Qr,"||",Tr.map(function(vn){return yt+"."+vn+"!=="+ae[vn]}).join("||"),"){",Me,".bindBuffer(",nc,",",xt,".buffer);",Me,".vertexAttribPointer(",[nt,Qr,Hr,ae.normalized,ae.stride,ae.offset],");",yt,".type=",Hr,";",yt,".size=",Qr,";",Tr.map(function(vn){return yt+"."+vn+"="+ae[vn]+";"}).join(""),"}"),Lt){var Yo=ae.divisor;ue("if(",yt,".divisor!==",Yo,"){",Z.instancing,".vertexAttribDivisorANGLE(",[nt,Yo],");",yt,".divisor=",Yo,";}")}}function vr(){ue("if(",yt,".buffer){",Me,".disableVertexAttribArray(",nt,");",yt,".buffer=null;","}if(",Pt.map(function(Hr,Qr){return yt+"."+Hr+"!=="+It[Qr]}).join("||"),"){",Me,".vertexAttrib4f(",nt,",",It,");",Pt.map(function(Hr,Qr){return yt+"."+Hr+"="+It[Qr]+";"}).join(""),"}")}St===Bt?fr():St===nr?vr():(ue("if(",St,"===",Bt,"){"),fr(),ue("}else{"),vr(),ue("}"))}Qe.forEach(function(me){var Ce=me.name,ae=Pe.attributes[Ce],Me;if(ae){if(!qe(ae))return;Me=ae.append(Z,ue)}else{if(!qe($y))return;var nt=Z.scopeAttrib(Ce);se.optional(function(){Z.assert(ue,nt+".state","missing attribute "+Ce)}),Me={},Object.keys(new je).forEach(function(yt){Me[yt]=ue.def(nt,".",yt)})}Ue(Z.link(me),Ne(me.info.type),Me)})}function Zo(Z,ue,Pe,Qe,qe){for(var Se=Z.shared,Ne=Se.gl,Ue,me=0;me<Qe.length;++me){var Ce=Qe[me],ae=Ce.name,Me=Ce.info.type,nt=Pe.uniforms[ae],yt=Z.link(Ce),St=yt+".location",xt;if(nt){if(!qe(nt))continue;if(ia(nt)){var It=nt.value;if(se.command(It!==null&&typeof It<"u",'missing uniform "'+ae+'"',Z.commandStr),Me===ml||Me===_l){se.command(typeof It=="function"&&(Me===ml&&(It._reglType==="texture2d"||It._reglType==="framebuffer")||Me===_l&&(It._reglType==="textureCube"||It._reglType==="framebufferCube")),"invalid texture for uniform "+ae,Z.commandStr);var Tr=Z.link(It._texture||It.color[0]._texture);ue(Ne,".uniform1i(",St,",",Tr+".bind());"),ue.exit(Tr,".unbind();")}else if(Me===sc||Me===uc||Me===sp){se.optional(function(){se.command(Li(It),"invalid matrix for uniform "+ae,Z.commandStr),se.command(Me===sc&&It.length===4||Me===uc&&It.length===9||Me===sp&&It.length===16,"invalid length for matrix uniform "+ae,Z.commandStr)});var fr=Z.global.def("new Float32Array(["+Array.prototype.slice.call(It)+"])"),vr=2;Me===uc?vr=3:Me===sp&&(vr=4),ue(Ne,".uniformMatrix",vr,"fv(",St,",false,",fr,");")}else{switch(Me){case ed:se.commandType(It,"number","uniform "+ae,Z.commandStr),Ue="1f";break;case V1:se.command(Li(It)&&It.length===2,"uniform "+ae,Z.commandStr),Ue="2f";break;case ac:se.command(Li(It)&&It.length===3,"uniform "+ae,Z.commandStr),Ue="3f";break;case H1:se.command(Li(It)&&It.length===4,"uniform "+ae,Z.commandStr),Ue="4f";break;case j1:se.commandType(It,"boolean","uniform "+ae,Z.commandStr),Ue="1i";break;case Dp:se.commandType(It,"number","uniform "+ae,Z.commandStr),Ue="1i";break;case hl:se.command(Li(It)&&It.length===2,"uniform "+ae,Z.commandStr),Ue="2i";break;case G1:se.command(Li(It)&&It.length===2,"uniform "+ae,Z.commandStr),Ue="2i";break;case fl:se.command(Li(It)&&It.length===3,"uniform "+ae,Z.commandStr),Ue="3i";break;case Ui:se.command(Li(It)&&It.length===3,"uniform "+ae,Z.commandStr),Ue="3i";break;case Op:se.command(Li(It)&&It.length===4,"uniform "+ae,Z.commandStr),Ue="4i";break;case yl:se.command(Li(It)&&It.length===4,"uniform "+ae,Z.commandStr),Ue="4i";break}ue(Ne,".uniform",Ue,"(",St,",",Li(It)?Array.prototype.slice.call(It):It,");")}continue}else xt=nt.append(Z,ue)}else{if(!qe($y))continue;xt=ue.def(Se.uniforms,"[",ie.id(ae),"]")}Me===ml?ue("if(",xt,"&&",xt,'._reglType==="framebuffer"){',xt,"=",xt,".color[0];","}"):Me===_l&&ue("if(",xt,"&&",xt,'._reglType==="framebufferCube"){',xt,"=",xt,".color[0];","}"),se.optional(function(){function au(pp,ud){Z.assert(ue,pp,'bad data or missing for uniform "'+ae+'". '+ud)}function sd(pp){au("typeof "+xt+'==="'+pp+'"',"invalid type, expected "+pp)}function Ns(pp,ud){au(Se.isArrayLike+"("+xt+")&&"+xt+".length==="+pp,"invalid vector, should have length "+pp,Z.commandStr)}function oh(pp){au("typeof "+xt+'==="function"&&'+xt+'._reglType==="texture'+(pp===k1?"2d":"Cube")+'"',"invalid texture type",Z.commandStr)}switch(Me){case Dp:sd("number");break;case G1:Ns(2);break;case Ui:Ns(3);break;case yl:Ns(4);break;case ed:sd("number");break;case V1:Ns(2);break;case ac:Ns(3);break;case H1:Ns(4);break;case j1:sd("boolean");break;case hl:Ns(2);break;case fl:Ns(3);break;case Op:Ns(4);break;case sc:Ns(4);break;case uc:Ns(9);break;case sp:Ns(16);break;case ml:oh(k1);break;case _l:oh(rm);break}});var Hr=1;switch(Me){case ml:case _l:var Qr=ue.def(xt,"._texture");ue(Ne,".uniform1i(",St,",",Qr,".bind());"),ue.exit(Qr,".unbind();");continue;case Dp:case j1:Ue="1i";break;case G1:case hl:Ue="2i",Hr=2;break;case Ui:case fl:Ue="3i",Hr=3;break;case yl:case Op:Ue="4i",Hr=4;break;case ed:Ue="1f";break;case V1:Ue="2f",Hr=2;break;case ac:Ue="3f",Hr=3;break;case H1:Ue="4f",Hr=4;break;case sc:Ue="Matrix2fv";break;case uc:Ue="Matrix3fv";break;case sp:Ue="Matrix4fv";break}if(ue(Ne,".uniform",Ue,"(",St,","),Ue.charAt(0)==="M"){var Yo=Math.pow(Me-sc+2,2),vn=Z.global.def("new Float32Array(",Yo,")");ue("false,(Array.isArray(",xt,")||",xt," instanceof Float32Array)?",xt,":(",Go(Yo,function(au){return vn+"["+au+"]="+xt+"["+au+"]"}),",",vn,")")}else Hr>1?ue(Go(Hr,function(au){return xt+"["+au+"]"})):ue(xt);ue(");")}}function Vr(Z,ue,Pe,Qe){var qe=Z.shared,Se=qe.gl,Ne=qe.draw,Ue=Qe.draw;function me(){var Qr=Ue.elements,Yo,vn=ue;return Qr?((Qr.contextDep&&Qe.contextDynamic||Qr.propDep)&&(vn=Pe),Yo=Qr.append(Z,vn)):Yo=vn.def(Ne,".",Io),Yo&&vn("if("+Yo+")"+Se+".bindBuffer("+Jf+","+Yo+".buffer.buffer);"),Yo}function Ce(){var Qr=Ue.count,Yo,vn=ue;return Qr?((Qr.contextDep&&Qe.contextDynamic||Qr.propDep)&&(vn=Pe),Yo=Qr.append(Z,vn),se.optional(function(){Qr.MISSING&&Z.assert(ue,"false","missing vertex count"),Qr.DYNAMIC&&Z.assert(vn,Yo+">=0","missing vertex count")})):(Yo=vn.def(Ne,".",Ki),se.optional(function(){Z.assert(vn,Yo+">=0","missing vertex count")})),Yo}var ae=me();function Me(Qr){var Yo=Ue[Qr];return Yo?Yo.contextDep&&Qe.contextDynamic||Yo.propDep?Yo.append(Z,Pe):Yo.append(Z,ue):ue.def(Ne,".",Qr)}var nt=Me(Cn),yt=Me(Ms),St=Ce();if(typeof St=="number"){if(St===0)return}else Pe("if(",St,"){"),Pe.exit("}");var xt,It;Lt&&(xt=Me(oc),It=Z.instancing);var Tr=ae+".type",fr=Ue.elements&&ia(Ue.elements);function vr(){function Qr(){Pe(It,".drawElementsInstancedANGLE(",[nt,St,Tr,yt+"<<(("+Tr+"-"+Ht+")>>1)",xt],");")}function Yo(){Pe(It,".drawArraysInstancedANGLE(",[nt,yt,St,xt],");")}ae?fr?Qr():(Pe("if(",ae,"){"),Qr(),Pe("}else{"),Yo(),Pe("}")):Yo()}function Hr(){function Qr(){Pe(Se+".drawElements("+[nt,St,Tr,yt+"<<(("+Tr+"-"+Ht+")>>1)"]+");")}function Yo(){Pe(Se+".drawArrays("+[nt,yt,St]+");")}ae?fr?Qr():(Pe("if(",ae,"){"),Qr(),Pe("}else{"),Yo(),Pe("}")):Yo()}Lt&&(typeof xt!="number"||xt>=0)?typeof xt=="string"?(Pe("if(",xt,">0){"),vr(),Pe("}else if(",xt,"<0){"),Hr(),Pe("}")):vr():Hr()}function To(Z,ue,Pe,Qe,qe){var Se=Lr(),Ne=Se.proc("body",qe);return se.optional(function(){Se.commandStr=ue.commandStr,Se.command=Se.link(ue.commandStr)}),Lt&&(Se.instancing=Ne.def(Se.shared.extensions,".angle_instanced_arrays")),Z(Se,Ne,Pe,Qe),Se.compile().body}function zo(Z,ue,Pe,Qe){gn(Z,ue),Pe.useVAO?Pe.drawVAO?ue(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,ue),");"):ue(Z.shared.vao,".setVAO(",Z.shared.vao,".targetVAO);"):(ue(Z.shared.vao,".setVAO(null);"),Yn(Z,ue,Pe,Qe.attributes,function(){return!0})),Zo(Z,ue,Pe,Qe.uniforms,function(){return!0}),Vr(Z,ue,ue,Pe)}function en(Z,ue){var Pe=Z.proc("draw",1);gn(Z,Pe),_n(Z,Pe,ue.context),ki(Z,Pe,ue.framebuffer),In(Z,Pe,ue),na(Z,Pe,ue.state),yo(Z,Pe,ue,!1,!0);var Qe=ue.shader.progVar.append(Z,Pe);if(Pe(Z.shared.gl,".useProgram(",Qe,".program);"),ue.shader.program)zo(Z,Pe,ue,ue.shader.program);else{Pe(Z.shared.vao,".setVAO(null);");var qe=Z.global.def("{}"),Se=Pe.def(Qe,".id"),Ne=Pe.def(qe,"[",Se,"]");Pe(Z.cond(Ne).then(Ne,".call(this,a0);").else(Ne,"=",qe,"[",Se,"]=",Z.link(function(Ue){return To(zo,Z,ue,Ue,1)}),"(",Qe,");",Ne,".call(this,a0);"))}Object.keys(ue.state).length>0&&Pe(Z.shared.current,".dirty=true;")}function nu(Z,ue,Pe,Qe){Z.batchId="a1",gn(Z,ue);function qe(){return!0}Yn(Z,ue,Pe,Qe.attributes,qe),Zo(Z,ue,Pe,Qe.uniforms,qe),Vr(Z,ue,ue,Pe)}function fe(Z,ue,Pe,Qe){gn(Z,ue);var qe=Pe.contextDep,Se=ue.def(),Ne="a0",Ue="a1",me=ue.def();Z.shared.props=me,Z.batchId=Se;var Ce=Z.scope(),ae=Z.scope();ue(Ce.entry,"for(",Se,"=0;",Se,"<",Ue,";++",Se,"){",me,"=",Ne,"[",Se,"];",ae,"}",Ce.exit);function Me(Tr){return Tr.contextDep&&qe||Tr.propDep}function nt(Tr){return!Me(Tr)}if(Pe.needsContext&&_n(Z,ae,Pe.context),Pe.needsFramebuffer&&ki(Z,ae,Pe.framebuffer),na(Z,ae,Pe.state,Me),Pe.profile&&Me(Pe.profile)&&yo(Z,ae,Pe,!1,!0),Qe)Pe.useVAO?Pe.drawVAO?Me(Pe.drawVAO)?ae(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,ae),");"):Ce(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,Ce),");"):Ce(Z.shared.vao,".setVAO(",Z.shared.vao,".targetVAO);"):(Ce(Z.shared.vao,".setVAO(null);"),Yn(Z,Ce,Pe,Qe.attributes,nt),Yn(Z,ae,Pe,Qe.attributes,Me)),Zo(Z,Ce,Pe,Qe.uniforms,nt),Zo(Z,ae,Pe,Qe.uniforms,Me),Vr(Z,Ce,ae,Pe);else{var yt=Z.global.def("{}"),St=Pe.shader.progVar.append(Z,ae),xt=ae.def(St,".id"),It=ae.def(yt,"[",xt,"]");ae(Z.shared.gl,".useProgram(",St,".program);","if(!",It,"){",It,"=",yt,"[",xt,"]=",Z.link(function(Tr){return To(nu,Z,Pe,Tr,2)}),"(",St,");}",It,".call(this,a0[",Se,"],",Se,");")}}function ot(Z,ue){var Pe=Z.proc("batch",2);Z.batchId="0",gn(Z,Pe);var Qe=!1,qe=!0;Object.keys(ue.context).forEach(function(yt){Qe=Qe||ue.context[yt].propDep}),Qe||(_n(Z,Pe,ue.context),qe=!1);var Se=ue.framebuffer,Ne=!1;Se?(Se.propDep?Qe=Ne=!0:Se.contextDep&&Qe&&(Ne=!0),Ne||ki(Z,Pe,Se)):ki(Z,Pe,null),ue.state.viewport&&ue.state.viewport.propDep&&(Qe=!0);function Ue(yt){return yt.contextDep&&Qe||yt.propDep}In(Z,Pe,ue),na(Z,Pe,ue.state,function(yt){return!Ue(yt)}),(!ue.profile||!Ue(ue.profile))&&yo(Z,Pe,ue,!1,"a1"),ue.contextDep=Qe,ue.needsContext=qe,ue.needsFramebuffer=Ne;var me=ue.shader.progVar;if(me.contextDep&&Qe||me.propDep)fe(Z,Pe,ue,null);else{var Ce=me.append(Z,Pe);if(Pe(Z.shared.gl,".useProgram(",Ce,".program);"),ue.shader.program)fe(Z,Pe,ue,ue.shader.program);else{Pe(Z.shared.vao,".setVAO(null);");var ae=Z.global.def("{}"),Me=Pe.def(Ce,".id"),nt=Pe.def(ae,"[",Me,"]");Pe(Z.cond(nt).then(nt,".call(this,a0,a1);").else(nt,"=",ae,"[",Me,"]=",Z.link(function(yt){return To(fe,Z,ue,yt,2)}),"(",Ce,");",nt,".call(this,a0,a1);"))}}Object.keys(ue.state).length>0&&Pe(Z.shared.current,".dirty=true;")}function Ke(Z,ue){var Pe=Z.proc("scope",3);Z.batchId="a2";var Qe=Z.shared,qe=Qe.current;_n(Z,Pe,ue.context),ue.framebuffer&&ue.framebuffer.append(Z,Pe),Z1(Object.keys(ue.state)).forEach(function(Ne){var Ue=ue.state[Ne],me=Ue.append(Z,Pe);Li(me)?me.forEach(function(Ce,ae){Pe.set(Z.next[Ne],"["+ae+"]",Ce)}):Pe.set(Qe.next,"."+Ne,me)}),yo(Z,Pe,ue,!0,!0),[Io,Ms,Ki,oc,Cn].forEach(function(Ne){var Ue=ue.draw[Ne];Ue&&Pe.set(Qe.draw,"."+Ne,""+Ue.append(Z,Pe))}),Object.keys(ue.uniforms).forEach(function(Ne){Pe.set(Qe.uniforms,"["+ie.id(Ne)+"]",ue.uniforms[Ne].append(Z,Pe))}),Object.keys(ue.attributes).forEach(function(Ne){var Ue=ue.attributes[Ne].append(Z,Pe),me=Z.scopeAttrib(Ne);Object.keys(new je).forEach(function(Ce){Pe.set(me,"."+Ce,Ue[Ce])})}),ue.scopeVAO&&Pe.set(Qe.vao,".targetVAO",ue.scopeVAO.append(Z,Pe));function Se(Ne){var Ue=ue.shader[Ne];Ue&&Pe.set(Qe.shader,"."+Ne,Ue.append(Z,Pe))}Se(es),Se(ys),Object.keys(ue.state).length>0&&(Pe(qe,".dirty=true;"),Pe.exit(qe,".dirty=true;")),Pe("a1(",Z.shared.context,",a0,",Z.batchId,");")}function ur(Z){if(!(typeof Z!="object"||Li(Z))){for(var ue=Object.keys(Z),Pe=0;Pe<ue.length;++Pe)if(zi.isDynamic(Z[ue[Pe]]))return!0;return!1}}function fo(Z,ue,Pe){var Qe=ue.static[Pe];if(!Qe||!ur(Qe))return;var qe=Z.global,Se=Object.keys(Qe),Ne=!1,Ue=!1,me=!1,Ce=Z.global.def("{}");Se.forEach(function(Me){var nt=Qe[Me];if(zi.isDynamic(nt)){typeof nt=="function"&&(nt=Qe[Me]=zi.unbox(nt));var yt=ts(nt,null);Ne=Ne||yt.thisDep,me=me||yt.propDep,Ue=Ue||yt.contextDep}else{switch(qe(Ce,".",Me,"="),typeof nt){case"number":qe(nt);break;case"string":qe('"',nt,'"');break;case"object":Array.isArray(nt)&&qe("[",nt.join(),"]");break;default:qe(Z.link(nt));break}qe(";")}});function ae(Me,nt){Se.forEach(function(yt){var St=Qe[yt];if(zi.isDynamic(St)){var xt=Me.invoke(nt,St);nt(Ce,".",yt,"=",xt,";")}})}ue.dynamic[Pe]=new zi.DynamicVariable(cr,{thisDep:Ne,contextDep:Ue,propDep:me,ref:Ce,append:ae}),delete ue.static[Pe]}function ii(Z,ue,Pe,Qe,qe){var Se=Lr();Se.stats=Se.link(qe),Object.keys(ue.static).forEach(function(Ue){fo(Se,ue,Ue)}),Vy.forEach(function(Ue){fo(Se,Z,Ue)});var Ne=mn(Z,ue,Pe,Qe,Se);return en(Se,Ne),Ke(Se,Ne),ot(Se,Ne),Se.compile()}return{next:ar,current:At,procs:function(){var Z=Lr(),ue=Z.proc("poll"),Pe=Z.proc("refresh"),Qe=Z.block();ue(Qe),Pe(Qe);var qe=Z.shared,Se=qe.gl,Ne=qe.next,Ue=qe.current;Qe(Ue,".dirty=false;"),ki(Z,ue),ki(Z,Pe,null,!0);var me;Lt&&(me=Z.link(Lt)),xe.oes_vertex_array_object&&Pe(Z.link(xe.oes_vertex_array_object),".bindVertexArrayOES(null);");for(var Ce=0;Ce<et.maxAttributes;++Ce){var ae=Pe.def(qe.attributes,"[",Ce,"]"),Me=Z.cond(ae,".buffer");Me.then(Se,".enableVertexAttribArray(",Ce,");",Se,".bindBuffer(",nc,",",ae,".buffer.buffer);",Se,".vertexAttribPointer(",Ce,",",ae,".size,",ae,".type,",ae,".normalized,",ae,".stride,",ae,".offset);").else(Se,".disableVertexAttribArray(",Ce,");",Se,".vertexAttrib4f(",Ce,",",ae,".x,",ae,".y,",ae,".z,",ae,".w);",ae,".buffer=null;"),Pe(Me),Lt&&Pe(me,".vertexAttribDivisorANGLE(",Ce,",",ae,".divisor);")}return Pe(Z.shared.vao,".currentVAO=null;",Z.shared.vao,".setVAO(",Z.shared.vao,".targetVAO);"),Object.keys(rr).forEach(function(nt){var yt=rr[nt],St=Qe.def(Ne,".",nt),xt=Z.block();xt("if(",St,"){",Se,".enable(",yt,")}else{",Se,".disable(",yt,")}",Ue,".",nt,"=",St,";"),Pe(xt),ue("if(",St,"!==",Ue,".",nt,"){",xt,"}")}),Object.keys(Tt).forEach(function(nt){var yt=Tt[nt],St=At[nt],xt,It,Tr=Z.block();if(Tr(Se,".",yt,"("),Li(St)){var fr=St.length;xt=Z.global.def(Ne,".",nt),It=Z.global.def(Ue,".",nt),Tr(Go(fr,function(vr){return xt+"["+vr+"]"}),");",Go(fr,function(vr){return It+"["+vr+"]="+xt+"["+vr+"];"}).join("")),ue("if(",Go(fr,function(vr){return xt+"["+vr+"]!=="+It+"["+vr+"]"}).join("||"),"){",Tr,"}")}else xt=Qe.def(Ne,".",nt),It=Qe.def(Ue,".",nt),Tr(xt,");",Ue,".",nt,"=",xt,";"),ue("if(",xt,"!==",It,"){",Tr,"}");Pe(Tr)}),Z.compile()}(),compile:ii}}function qy(){return{vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0}}var pm=34918,lm=34919,Ky=35007,cm=function(N,ie){if(!ie.ext_disjoint_timer_query)return null;var xe=[];function et(){return xe.pop()||ie.ext_disjoint_timer_query.createQueryEXT()}function gt(Lt){xe.push(Lt)}var tt=[];function Ye(Lt){var tr=et();ie.ext_disjoint_timer_query.beginQueryEXT(Ky,tr),tt.push(tr),Ct(tt.length-1,tt.length,Lt)}function Ot(){ie.ext_disjoint_timer_query.endQueryEXT(Ky)}function Rt(){this.startQueryIndex=-1,this.endQueryIndex=-1,this.sum=0,this.stats=null}var Xt=[];function Ut(){return Xt.pop()||new Rt}function Gt(Lt){Xt.push(Lt)}var $t=[];function Ct(Lt,tr,At){var ar=Ut();ar.startQueryIndex=Lt,ar.endQueryIndex=tr,ar.sum=0,ar.stats=At,$t.push(ar)}var jt=[],je=[];function pt(){var Lt,tr,At=tt.length;if(At!==0){je.length=Math.max(je.length,At+1),jt.length=Math.max(jt.length,At+1),jt[0]=0,je[0]=0;var ar=0;for(Lt=0,tr=0;tr<tt.length;++tr){var Mt=tt[tr];ie.ext_disjoint_timer_query.getQueryObjectEXT(Mt,lm)?(ar+=ie.ext_disjoint_timer_query.getQueryObjectEXT(Mt,pm),gt(Mt)):tt[Lt++]=Mt,jt[tr+1]=ar,je[tr+1]=Lt}for(tt.length=Lt,Lt=0,tr=0;tr<$t.length;++tr){var rr=$t[tr],Tt=rr.startQueryIndex,Qt=rr.endQueryIndex;rr.sum+=jt[Qt]-jt[Tt];var Or=je[Tt],ro=je[Qt];ro===Or?(rr.stats.gpuTime+=rr.sum/1e6,Gt(rr)):(rr.startQueryIndex=Or,rr.endQueryIndex=ro,$t[Lt++]=rr)}$t.length=Lt}}return{beginQuery:Ye,endQuery:Ot,pushScopeStats:Ct,update:pt,getNumPendingQueries:function(){return tt.length},clear:function(){xe.push.apply(xe,tt);for(var Lt=0;Lt<xe.length;Lt++)ie.ext_disjoint_timer_query.deleteQueryEXT(xe[Lt]);tt.length=0,xe.length=0},restore:function(){tt.length=0,xe.length=0}}},Qy=16384,fa=256,dm=1024,Jy=34962,nd="webglcontextlost",eh="webglcontextrestored",ad=1,ym=2,hm=3;function th(N,ie){for(var xe=0;xe<N.length;++xe)if(N[xe]===ie)return xe;return-1}function rh(N){var ie=Es(N);if(!ie)return null;var xe=ie.gl,et=xe.getContextAttributes(),gt=xe.isContextLost(),tt=Yu(xe,ie);if(!tt)return null;var Ye=Hs(),Ot=qy(),Rt=tt.extensions,Xt=cm(xe,Rt),Ut=xa(),Gt=xe.drawingBufferWidth,$t=xe.drawingBufferHeight,Ct={tick:0,time:0,viewportWidth:Gt,viewportHeight:$t,framebufferWidth:Gt,framebufferHeight:$t,drawingBufferWidth:Gt,drawingBufferHeight:$t,pixelRatio:ie.pixelRatio},jt={},je={elements:null,primitive:4,count:-1,offset:0,instances:-1},pt=Rc(xe,Rt),Lt=Ic(xe,Ot,ie,At),tr=z(xe,Rt,pt,Ot,Lt);function At(Vr){return tr.destroyBuffer(Vr)}var ar=D1(xe,Rt,Lt,Ot),Mt=de(xe,Ye,Ot,ie),rr=Ba(xe,Rt,pt,function(){Or.procs.poll()},Ct,Ot,ie),Tt=ls(xe,Rt,pt,Ot,ie),Qt=A(xe,Rt,pt,rr,Tt,Ot),Or=Jc(xe,Ye,Rt,pt,Lt,ar,rr,Qt,jt,tr,Mt,je,Ct,Xt,ie),ro=Xe(xe,Qt,Or.procs.poll,Ct,et,Rt,pt),Jt=Or.next,Dt=xe.canvas,vt=[],Lr=[],xo=[],sr=[ie.onDestroy],ho=null;function eo(){if(vt.length===0){Xt&&Xt.update(),ho=null;return}ho=us.next(eo),na();for(var Vr=vt.length-1;Vr>=0;--Vr){var To=vt[Vr];To&&To(Ct,null,0)}xe.flush(),Xt&&Xt.update()}function Wr(){!ho&&vt.length>0&&(ho=us.next(eo))}function jo(){ho&&(us.cancel(eo),ho=null)}function Qi(Vr){Vr.preventDefault(),gt=!0,jo(),Lr.forEach(function(To){To()})}function zn(Vr){xe.getError(),gt=!1,tt.restore(),Mt.restore(),Lt.restore(),rr.restore(),Tt.restore(),Qt.restore(),tr.restore(),Xt&&Xt.restore(),Or.procs.refresh(),Wr(),xo.forEach(function(To){To()})}Dt&&(Dt.addEventListener(nd,Qi,!1),Dt.addEventListener(eh,zn,!1));function Ro(){vt.length=0,jo(),Dt&&(Dt.removeEventListener(nd,Qi),Dt.removeEventListener(eh,zn)),Mt.clear(),Qt.clear(),Tt.clear(),rr.clear(),ar.clear(),Lt.clear(),tr.clear(),Xt&&Xt.clear(),sr.forEach(function(Vr){Vr()})}function Ji(Vr){se(!!Vr,"invalid args to regl({...})"),se.type(Vr,"object","invalid args to regl({...})");function To(qe){var Se=i({},qe);delete Se.uniforms,delete Se.attributes,delete Se.context,delete Se.vao,"stencil"in Se&&Se.stencil.op&&(Se.stencil.opBack=Se.stencil.opFront=Se.stencil.op,delete Se.stencil.op);function Ne(Ue){if(Ue in Se){var me=Se[Ue];delete Se[Ue],Object.keys(me).forEach(function(Ce){Se[Ue+"."+Ce]=me[Ce]})}}return Ne("blend"),Ne("depth"),Ne("cull"),Ne("stencil"),Ne("polygonOffset"),Ne("scissor"),Ne("sample"),"vao"in qe&&(Se.vao=qe.vao),Se}function zo(qe){var Se={},Ne={};return Object.keys(qe).forEach(function(Ue){var me=qe[Ue];zi.isDynamic(me)?Ne[Ue]=zi.unbox(me,Ue):Se[Ue]=me}),{dynamic:Ne,static:Se}}var en=zo(Vr.context||{}),nu=zo(Vr.uniforms||{}),fe=zo(Vr.attributes||{}),ot=zo(To(Vr)),Ke={gpuTime:0,cpuTime:0,count:0},ur=Or.compile(ot,fe,nu,en,Ke),fo=ur.draw,ii=ur.batch,Z=ur.scope,ue=[];function Pe(qe){for(;ue.length<qe;)ue.push(null);return ue}function Qe(qe,Se){var Ne;if(gt&&se.raise("context lost"),typeof qe=="function")return Z.call(this,null,qe,0);if(typeof Se=="function")if(typeof qe=="number")for(Ne=0;Ne<qe;++Ne)Z.call(this,null,Se,Ne);else if(Array.isArray(qe))for(Ne=0;Ne<qe.length;++Ne)Z.call(this,qe[Ne],Se,Ne);else return Z.call(this,qe,Se,0);else if(typeof qe=="number"){if(qe>0)return ii.call(this,Pe(qe|0),qe|0)}else if(Array.isArray(qe)){if(qe.length)return ii.call(this,qe,qe.length)}else return fo.call(this,qe)}return i(Qe,{stats:Ke})}var mi=Qt.setFBO=Ji({framebuffer:zi.define.call(null,ad,"framebuffer")});function mn(Vr,To){var zo=0;Or.procs.poll();var en=To.color;en&&(xe.clearColor(+en[0]||0,+en[1]||0,+en[2]||0,+en[3]||0),zo|=Qy),"depth"in To&&(xe.clearDepth(+To.depth),zo|=fa),"stencil"in To&&(xe.clearStencil(To.stencil|0),zo|=dm),se(!!zo,"called regl.clear with no buffer specified"),xe.clear(zo)}function _n(Vr){if(se(typeof Vr=="object"&&Vr,"regl.clear() takes an object as input"),"framebuffer"in Vr)if(Vr.framebuffer&&Vr.framebuffer_reglType==="framebufferCube")for(var To=0;To<6;++To)mi(i({framebuffer:Vr.framebuffer.faces[To]},Vr),mn);else mi(Vr,mn);else mn(null,Vr)}function ki(Vr){se.type(Vr,"function","regl.frame() callback must be a function"),vt.push(Vr);function To(){var zo=th(vt,Vr);se(zo>=0,"cannot cancel a frame twice");function en(){var nu=th(vt,en);vt[nu]=vt[vt.length-1],vt.length-=1,vt.length<=0&&jo()}vt[zo]=en}return Wr(),{cancel:To}}function In(){var Vr=Jt.viewport,To=Jt.scissor_box;Vr[0]=Vr[1]=To[0]=To[1]=0,Ct.viewportWidth=Ct.framebufferWidth=Ct.drawingBufferWidth=Vr[2]=To[2]=xe.drawingBufferWidth,Ct.viewportHeight=Ct.framebufferHeight=Ct.drawingBufferHeight=Vr[3]=To[3]=xe.drawingBufferHeight}function na(){Ct.tick+=1,Ct.time=yo(),In(),Or.procs.poll()}function gn(){In(),Or.procs.refresh(),Xt&&Xt.update()}function yo(){return(xa()-Ut)/1e3}gn();function Yn(Vr,To){se.type(To,"function","listener callback must be a function");var zo;switch(Vr){case"frame":return ki(To);case"lost":zo=Lr;break;case"restore":zo=xo;break;case"destroy":zo=sr;break;default:se.raise("invalid event, must be one of frame,lost,restore,destroy")}return zo.push(To),{cancel:function(){for(var en=0;en<zo.length;++en)if(zo[en]===To){zo[en]=zo[zo.length-1],zo.pop();return}}}}var Zo=i(Ji,{clear:_n,prop:zi.define.bind(null,ad),context:zi.define.bind(null,ym),this:zi.define.bind(null,hm),draw:Ji({}),buffer:function(Vr){return Lt.create(Vr,Jy,!1,!1)},elements:function(Vr){return ar.create(Vr,!1)},texture:rr.create2D,cube:rr.createCube,renderbuffer:Tt.create,framebuffer:Qt.create,framebufferCube:Qt.createCube,vao:tr.createVAO,attributes:et,frame:ki,on:Yn,limits:pt,hasExtension:function(Vr){return pt.extensions.indexOf(Vr.toLowerCase())>=0},read:ro,destroy:Ro,_gl:xe,_refresh:gn,poll:function(){na(),Xt&&Xt.update()},now:yo,stats:Ot});return ie.onDone(null,Zo),Zo}return rh})})(z7);var kB=z7.exports;const zB=_p(kB);var VB=class{constructor(e,t){const{buffer:r,offset:i,stride:s,normalized:u,size:n,divisor:y}=t;this.buffer=r,this.attribute={buffer:r.get(),offset:i||0,stride:s||0,normalized:u||!1,divisor:y||0},n&&(this.attribute.size=n)}get(){return this.attribute}updateBuffer(e){this.buffer.subData(e)}destroy(){this.buffer.destroy()}},HB={[L.POINTS]:"points",[L.LINES]:"lines",[L.LINE_LOOP]:"line loop",[L.LINE_STRIP]:"line strip",[L.TRIANGLES]:"triangles",[L.TRIANGLE_FAN]:"triangle fan",[L.TRIANGLE_STRIP]:"triangle strip"},V7={[L.STATIC_DRAW]:"static",[L.DYNAMIC_DRAW]:"dynamic",[L.STREAM_DRAW]:"stream"},W6={[L.BYTE]:"int8",[L.INT]:"int32",[L.UNSIGNED_BYTE]:"uint8",[L.UNSIGNED_SHORT]:"uint16",[L.UNSIGNED_INT]:"uint32",[L.FLOAT]:"float"},GB={[L.ALPHA]:"alpha",[L.LUMINANCE]:"luminance",[L.LUMINANCE_ALPHA]:"luminance alpha",[L.RGB]:"rgb",[L.RGBA]:"rgba",[L.RGBA4]:"rgba4",[L.RGB5_A1]:"rgb5 a1",[L.RGB565]:"rgb565",[L.DEPTH_COMPONENT]:"depth",[L.DEPTH_STENCIL]:"depth stencil"},jB={[L.DONT_CARE]:"dont care",[L.NICEST]:"nice",[L.FASTEST]:"fast"},Ng={[L.NEAREST]:"nearest",[L.LINEAR]:"linear",[L.LINEAR_MIPMAP_LINEAR]:"mipmap",[L.NEAREST_MIPMAP_LINEAR]:"nearest mipmap linear",[L.LINEAR_MIPMAP_NEAREST]:"linear mipmap nearest",[L.NEAREST_MIPMAP_NEAREST]:"nearest mipmap nearest"},Dg={[L.REPEAT]:"repeat",[L.CLAMP_TO_EDGE]:"clamp",[L.MIRRORED_REPEAT]:"mirror"},WB={[L.NONE]:"none",[L.BROWSER_DEFAULT_WEBGL]:"browser"},XB={[L.NEVER]:"never",[L.ALWAYS]:"always",[L.LESS]:"less",[L.LEQUAL]:"lequal",[L.GREATER]:"greater",[L.GEQUAL]:"gequal",[L.EQUAL]:"equal",[L.NOTEQUAL]:"notequal"},Og={[L.FUNC_ADD]:"add",[L.MIN_EXT]:"min",[L.MAX_EXT]:"max",[L.FUNC_SUBTRACT]:"subtract",[L.FUNC_REVERSE_SUBTRACT]:"reverse subtract"},Gh={[L.ZERO]:"zero",[L.ONE]:"one",[L.SRC_COLOR]:"src color",[L.ONE_MINUS_SRC_COLOR]:"one minus src color",[L.SRC_ALPHA]:"src alpha",[L.ONE_MINUS_SRC_ALPHA]:"one minus src alpha",[L.DST_COLOR]:"dst color",[L.ONE_MINUS_DST_COLOR]:"one minus dst color",[L.DST_ALPHA]:"dst alpha",[L.ONE_MINUS_DST_ALPHA]:"one minus dst alpha",[L.CONSTANT_COLOR]:"constant color",[L.ONE_MINUS_CONSTANT_COLOR]:"one minus constant color",[L.CONSTANT_ALPHA]:"constant alpha",[L.ONE_MINUS_CONSTANT_ALPHA]:"one minus constant alpha",[L.SRC_ALPHA_SATURATE]:"src alpha saturate"},ZB={[L.NEVER]:"never",[L.ALWAYS]:"always",[L.LESS]:"less",[L.LEQUAL]:"lequal",[L.GREATER]:"greater",[L.GEQUAL]:"gequal",[L.EQUAL]:"equal",[L.NOTEQUAL]:"notequal"},g0={[L.ZERO]:"zero",[L.KEEP]:"keep",[L.REPLACE]:"replace",[L.INVERT]:"invert",[L.INCR]:"increment",[L.DECR]:"decrement",[L.INCR_WRAP]:"increment wrap",[L.DECR_WRAP]:"decrement wrap"},YB={[L.FRONT]:"front",[L.BACK]:"back"},$B=class{constructor(e,t){this.isDestroyed=!1;const{data:r,usage:i,type:s}=t;this.buffer=e.buffer({data:r,usage:V7[i||L.STATIC_DRAW],type:W6[s||L.UNSIGNED_BYTE]})}get(){return this.buffer}destroy(){this.isDestroyed||this.buffer.destroy(),this.isDestroyed=!0}subData({data:e,offset:t}){this.buffer.subdata(e,t)}},qB=class{constructor(e,t){const{data:r,usage:i,type:s,count:u}=t;this.elements=e.elements({data:r,usage:V7[i||L.STATIC_DRAW],type:W6[s||L.UNSIGNED_BYTE],count:u})}get(){return this.elements}subData({data:e}){this.elements.subdata(e)}destroy(){}},KB=class{constructor(e,t){const{width:r,height:i,color:s,colors:u}=t,n={width:r,height:i};Array.isArray(u)&&(n.colors=u.map(y=>y.get())),s&&typeof s!="boolean"&&(n.color=s.get()),this.framebuffer=e.framebuffer(n)}get(){return this.framebuffer}destroy(){this.framebuffer.destroy()}resize({width:e,height:t}){this.framebuffer.resize(e,t)}},QB=Object.defineProperty,JB=Object.defineProperties,eU=Object.getOwnPropertyDescriptors,Lg=Object.getOwnPropertySymbols,tU=Object.prototype.hasOwnProperty,rU=Object.prototype.propertyIsEnumerable,Bg=(e,t,r)=>t in e?QB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Zd=(e,t)=>{for(var r in t||(t={}))tU.call(t,r)&&Bg(e,r,t[r]);if(Lg)for(var r of Lg(t))rU.call(t,r)&&Bg(e,r,t[r]);return e},oU=(e,t)=>JB(e,eU(t)),{isPlainObject:iU,isTypedArray:nU}=Qn,aU=class{constructor(e,t){this.destroyed=!1,this.uniforms={},this.reGl=e;const{vs:r,fs:i,attributes:s,uniforms:u,primitive:n,count:y,elements:m,depth:g,cull:x,instances:b}=t,F={glslVersion:"#version 100",explicitBindingLocations:!1,separateSamplerTextures:!1,viewportOrigin:fp.LOWER_LEFT,clipSpaceNearZ:V0.NEGATIVE_ONE},R={};this.options=t,u&&(this.uniforms=this.extractUniforms(u),Object.keys(u).forEach(Q=>{R[Q]=e.prop(Q)}));const I={};Object.keys(s).forEach(Q=>{I[Q]=s[Q].get()});const U=M_(W0(F,"frag",i,null,!1)),V=M_(W0(F,"vert",r,null,!1)),J={attributes:I,frag:U,uniforms:R,vert:V,colorMask:e.prop("colorMask"),lineWidth:1,blend:{enable:e.prop("blend.enable"),func:e.prop("blend.func"),equation:e.prop("blend.equation"),color:e.prop("blend.color")},stencil:{enable:e.prop("stencil.enable"),mask:e.prop("stencil.mask"),func:e.prop("stencil.func"),opFront:e.prop("stencil.opFront"),opBack:e.prop("stencil.opBack")},primitive:HB[n===void 0?L.TRIANGLES:n]};b&&(J.instances=b),y?J.count=y:m&&(J.elements=m.get()),this.initDepthDrawParams({depth:g},J),this.initCullDrawParams({cull:x},J),this.drawCommand=e(J),this.drawParams=J}updateAttributesAndElements(e,t){const r={};Object.keys(e).forEach(i=>{r[i]=e[i].get()}),this.drawParams.attributes=r,this.drawParams.elements=t.get(),this.drawCommand=this.reGl(this.drawParams)}updateAttributes(e){const t={};Object.keys(e).forEach(r=>{t[r]=e[r].get()}),this.drawParams.attributes=t,this.drawCommand=this.reGl(this.drawParams)}addUniforms(e){this.uniforms=Zd(Zd({},this.uniforms),this.extractUniforms(e))}draw(e,t){if(this.drawParams.attributes&&Object.keys(this.drawParams.attributes).length===0)return;const r=Zd(Zd({},this.uniforms),this.extractUniforms(e.uniforms||{})),i={};Object.keys(r).forEach(s=>{const u=typeof r[s];u==="boolean"||u==="number"||Array.isArray(r[s])||r[s].BYTES_PER_ELEMENT?i[s]=r[s]:i[s]=r[s].get()}),i.blend=t?this.getBlendDrawParams({blend:{enable:!1}}):this.getBlendDrawParams(e),i.stencil=this.getStencilDrawParams(e),i.colorMask=this.getColorMaskDrawParams(e,t),this.drawCommand(i)}destroy(){var e,t;(t=(e=this.drawParams)==null?void 0:e.elements)==null||t.destroy(),this.options.attributes&&Object.values(this.options.attributes).forEach(r=>{r==null||r.destroy()}),this.destroyed=!0}initDepthDrawParams({depth:e},t){e&&(t.depth={enable:e.enable===void 0?!0:!!e.enable,mask:e.mask===void 0?!0:!!e.mask,func:XB[e.func||L.LESS],range:e.range||[0,1]})}getBlendDrawParams({blend:e}){const{enable:t,func:r,equation:i,color:s=[0,0,0,0]}=e||{};return{enable:!!t,func:{srcRGB:Gh[r&&r.srcRGB||L.SRC_ALPHA],srcAlpha:Gh[r&&r.srcAlpha||L.SRC_ALPHA],dstRGB:Gh[r&&r.dstRGB||L.ONE_MINUS_SRC_ALPHA],dstAlpha:Gh[r&&r.dstAlpha||L.ONE_MINUS_SRC_ALPHA]},equation:{rgb:Og[i&&i.rgb||L.FUNC_ADD],alpha:Og[i&&i.alpha||L.FUNC_ADD]},color:s}}getStencilDrawParams({stencil:e}){const{enable:t,mask:r=-1,func:i={cmp:L.ALWAYS,ref:0,mask:-1},opFront:s={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP},opBack:u={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP}}=e||{};return{enable:!!t,mask:r,func:oU(Zd({},i),{cmp:ZB[i.cmp]}),opFront:{fail:g0[s.fail],zfail:g0[s.zfail],zpass:g0[s.zpass]},opBack:{fail:g0[u.fail],zfail:g0[u.zfail],zpass:g0[u.zpass]}}}getColorMaskDrawParams({stencil:e},t){return e!=null&&e.enable&&e.opFront&&!t?[!1,!1,!1,!1]:[!0,!0,!0,!0]}initCullDrawParams({cull:e},t){if(e){const{enable:r,face:i=L.BACK}=e;t.cull={enable:!!r,face:YB[i]}}}extractUniforms(e){const t={};return Object.keys(e).forEach(r=>{this.extractUniformsRecursively(r,e[r],t,"")}),t}extractUniformsRecursively(e,t,r,i){if(t===null||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)&&typeof t[0]=="number"||nU(t)||t===""||"resize"in t){r[`${i&&i+"."}${e}`]=t;return}iU(t)&&Object.keys(t).forEach(s=>{this.extractUniformsRecursively(s,t[s],r,`${i&&i+"."}${e}`)}),Array.isArray(t)&&t.forEach((s,u)=>{Object.keys(s).forEach(n=>{this.extractUniformsRecursively(n,s[n],r,`${i&&i+"."}${e}[${u}]`)})})}},sU=class{constructor(e,t){this.isDestroy=!1;const{data:r,type:i=L.UNSIGNED_BYTE,width:s,height:u,flipY:n=!1,format:y=L.RGBA,mipmap:m=!1,wrapS:g=L.CLAMP_TO_EDGE,wrapT:x=L.CLAMP_TO_EDGE,aniso:b=0,alignment:F=1,premultiplyAlpha:R=!1,mag:I=L.NEAREST,min:U=L.NEAREST,colorSpace:V=L.BROWSER_DEFAULT_WEBGL,x:J=0,y:Q=0,copy:te=!1}=t;this.width=s,this.height=u;const ne={width:s,height:u,type:W6[i],format:GB[y],wrapS:Dg[g],wrapT:Dg[x],mag:Ng[I],min:Ng[U],alignment:F,flipY:n,colorSpace:WB[V],premultiplyAlpha:R,aniso:b,x:J,y:Q,copy:te};r&&(ne.data=r),typeof m=="number"?ne.mipmap=jB[m]:typeof m=="boolean"&&(ne.mipmap=m),this.texture=e.texture(ne)}get(){return this.texture}update(e={}){this.texture(e)}bind(){this.texture._texture.bind()}resize({width:e,height:t}){this.texture.resize(e,t),this.width=e,this.height=t}getSize(){return[this.width,this.height]}destroy(){var e;this.isDestroy||(e=this.texture)==null||e.destroy(),this.isDestroy=!0}},a2=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),uU=class{constructor(){this.uniformBuffers=[],this.queryVerdorInfo=()=>"WebGL1",this.createModel=e=>new aU(this.gl,e),this.createAttribute=e=>new VB(this.gl,e),this.createBuffer=e=>new $B(this.gl,e),this.createElements=e=>new qB(this.gl,e),this.createTexture2D=e=>new sU(this.gl,e),this.createFramebuffer=e=>new KB(this.gl,e),this.useFramebuffer=(e,t)=>{this.gl({framebuffer:e?e.get():null})(t)},this.useFramebufferAsync=(e,t)=>a2(this,null,function*(){this.gl({framebuffer:e?e.get():null})(t)}),this.clear=e=>{var t;const{color:r,depth:i,stencil:s,framebuffer:u=null}=e,n={color:r,depth:i,stencil:s};n.framebuffer=u===null?u:u.get(),(t=this.gl)==null||t.clear(n)},this.viewport=({x:e,y:t,width:r,height:i})=>{this.gl._gl.viewport(e,t,r,i),this.width=r,this.height=i,this.gl._refresh()},this.readPixels=e=>{const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n={x:r,y:i,width:s,height:u};return t&&(n.framebuffer=t.get()),this.gl.read(n)},this.readPixelsAsync=e=>a2(this,null,function*(){return this.readPixels(e)}),this.getViewportSize=()=>({width:this.gl._gl.drawingBufferWidth,height:this.gl._gl.drawingBufferHeight}),this.getContainer=()=>{var e;return(e=this.canvas)==null?void 0:e.parentElement},this.getCanvas=()=>this.canvas,this.getGLContext=()=>this.gl._gl,this.destroy=()=>{var e,t,r;this.canvas=null,(r=(t=(e=this.gl)==null?void 0:e._gl)==null?void 0:t.getExtension("WEBGL_lose_context"))==null||r.loseContext(),this.gl.destroy(),this.gl=null}}init(e,t,r){return a2(this,null,function*(){this.canvas=e,r?this.gl=r:this.gl=yield new Promise((i,s)=>{zB({canvas:this.canvas,attributes:{alpha:!0,antialias:t.antialias,premultipliedAlpha:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,stencil:t.stencil},extensions:["OES_element_index_uint","OES_standard_derivatives","ANGLE_instanced_arrays"],optionalExtensions:["oes_texture_float_linear","OES_texture_float","EXT_texture_filter_anisotropic","EXT_blend_minmax","WEBGL_depth_texture","WEBGL_lose_context"],profile:!0,onDone:(u,n)=>{(u||!n)&&s(u),i(n)}})}),this.extensionObject={OES_texture_float:this.testExtension("OES_texture_float")}})}getPointSizeRange(){return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE)}testExtension(e){return!!this.getGLContext().getExtension(e)}setState(){this.gl({cull:{enable:!1,face:"back"},viewport:{x:0,y:0,height:this.width,width:this.height},blend:{enable:!0,equation:"add"},framebuffer:null}),this.gl._refresh()}setBaseState(){this.gl({cull:{enable:!1,face:"back"},viewport:{x:0,y:0,height:this.width,width:this.height},blend:{enable:!1,equation:"add"},framebuffer:null}),this.gl._refresh()}setCustomLayerDefaults(){const e=this.getGLContext();e.disable(e.CULL_FACE)}setDirty(e){this.isDirty=e}getDirty(){return this.isDirty}beginFrame(){}endFrame(){}},s2=["selectstart","selecting","selectend"],pU=class extends du.EventEmitter{constructor(e,t={}){super(),this.isEnable=!1,this.onDragStart=r=>{this.box.style.display="block",this.startEvent=this.endEvent=r,this.syncBoxBound(),this.emit("selectstart",this.getLngLatBox(),this.startEvent,this.endEvent)},this.onDragging=r=>{this.endEvent=r,this.syncBoxBound(),this.emit("selecting",this.getLngLatBox(),this.startEvent,this.endEvent)},this.onDragEnd=r=>{this.endEvent=r,this.box.style.display="none",this.emit("selectend",this.getLngLatBox(),this.startEvent,this.endEvent)},this.scene=e,this.options=t}get container(){return this.scene.getMapService().getMarkerContainer()}enable(){if(this.isEnable)return;const{className:e}=this.options;if(this.scene.setMapStatus({dragEnable:!1}),this.container.style.cursor="crosshair",!this.box){const t=lu("div",void 0,this.container);t.classList.add("l7-select-box"),e&&t.classList.add(e),t.style.display="none",this.box=t}this.scene.on("dragstart",this.onDragStart),this.scene.on("dragging",this.onDragging),this.scene.on("dragend",this.onDragEnd),this.isEnable=!0}disable(){this.isEnable&&(this.scene.setMapStatus({dragEnable:!0}),this.container.style.cursor="auto",this.scene.off("dragstart",this.onDragStart),this.scene.off("dragging",this.onDragging),this.scene.off("dragend",this.onDragEnd),this.isEnable=!1)}syncBoxBound(){const{x:e,y:t}=this.startEvent,{x:r,y:i}=this.endEvent,s=Math.min(e,r),u=Math.min(t,i),n=Math.abs(e-r),y=Math.abs(t-i);this.box.style.top=`${u}px`,this.box.style.left=`${s}px`,this.box.style.width=`${n}px`,this.box.style.height=`${y}px`}getLngLatBox(){const{lngLat:{lng:e,lat:t}}=this.startEvent,{lngLat:{lng:r,lat:i}}=this.endEvent;return zE([[e,t],[r,i]])}},lU=Object.defineProperty,cU=Object.defineProperties,dU=Object.getOwnPropertyDescriptors,Ug=Object.getOwnPropertySymbols,yU=Object.prototype.hasOwnProperty,hU=Object.prototype.propertyIsEnumerable,kg=(e,t,r)=>t in e?lU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fU=(e,t)=>{for(var r in t||(t={}))yU.call(t,r)&&kg(e,r,t[r]);if(Ug)for(var r of Ug(t))hU.call(t,r)&&kg(e,r,t[r]);return e},mU=(e,t)=>cU(e,dU(t)),Yd=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),_U=class{constructor(e){const{id:t,map:r,renderer:i="device"}=e,s=hT();this.container=s,r.setContainer(s,t),i==="regl"?s.rendererService=new uU:s.rendererService=new UB,this.sceneService=s.sceneService,this.mapService=s.mapService,this.iconService=s.iconService,this.fontService=s.fontService,this.controlService=s.controlService,this.layerService=s.layerService,this.debugService=s.debugService,this.debugService.setEnable(e.debug),this.markerService=s.markerService,this.interactionService=s.interactionService,this.popupService=s.popupService,this.boxSelect=new pU(this,{}),this.initComponent(t),this.sceneService.init(e),this.initControl()}get map(){return this.mapService.map}get loaded(){return this.sceneService.loaded}getServiceContainer(){return this.container}getSize(){return this.mapService.getSize()}getMinZoom(){return this.mapService.getMinZoom()}getMaxZoom(){return this.mapService.getMaxZoom()}getType(){return this.mapService.getType()}getMapContainer(){return this.mapService.getMapContainer()}getMapCanvasContainer(){return this.mapService.getMapCanvasContainer()}getMapService(){return this.mapService}getDebugService(){return this.debugService}exportPng(e){return Yd(this,null,function*(){return this.sceneService.exportPng(e)})}exportMap(e){return Yd(this,null,function*(){return this.sceneService.exportPng(e)})}registerRenderService(e){this.sceneService.loaded?new e(this).init():this.on("loaded",()=>{new e(this).init()})}setBgColor(e){this.mapService.setBgColor(e)}addLayer(e){this.loaded?this.preAddLayer(e):this.once("loaded",()=>{this.preAddLayer(e)})}preAddLayer(e){const t=ly(this.container);if(e.setContainer(t),this.sceneService.addLayer(e),e.inited){this.initTileLayer(e);const r=this.initMask(e);this.addMask(r,e.id)}else e.on("inited",()=>{this.initTileLayer(e);const r=this.initMask(e);this.addMask(r,e.id)})}initMask(e){const{mask:t,maskfence:r,maskColor:i="#000",maskOpacity:s=0}=e.getLayerConfig();return!t||!r?void 0:new y7().source(r).shape("fill").style({color:i,opacity:s})}addMask(e,t){if(!e)return;const r=this.getLayer(t);if(r){const i=ly(this.container);e.setContainer(i),r.addMaskLayer(e),this.sceneService.addMask(e)}else console.warn("parent layer not find!")}getPickedLayer(){return this.layerService.pickedLayerId}getLayers(){return this.layerService.getLayers()}getLayer(e){return this.layerService.getLayer(e)}getLayerByName(e){return this.layerService.getLayerByName(e)}removeLayer(e,t){return Yd(this,null,function*(){yield this.layerService.remove(e,t)})}removeAllLayer(){return Yd(this,null,function*(){yield this.layerService.removeAllLayers()})}render(){this.sceneService.render()}setEnableRender(e){this.layerService.setEnableRender(e)}addIconFont(e,t){this.fontService.addIconFont(e,t)}addIconFonts(e){e.forEach(([t,r])=>{this.fontService.addIconFont(t,r)})}addFontFace(e,t){this.fontService.once("fontloaded",r=>{this.emit("fontloaded",r)}),this.fontService.addFontFace(e,t)}addImage(e,t){return Yd(this,null,function*(){yield this.iconService.addImage(e,t)})}hasImage(e){return this.iconService.hasImage(e)}removeImage(e){this.iconService.removeImage(e)}addIconFontGlyphs(e,t){this.fontService.addIconGlyphs(t)}addControl(e){this.controlService.addControl(e,this.container)}removeControl(e){this.controlService.removeControl(e)}getControlByName(e){return this.controlService.getControlByName(e)}addMarker(e){this.markerService.addMarker(e)}addMarkerLayer(e){this.markerService.addMarkerLayer(e)}removeMarkerLayer(e){this.markerService.removeMarkerLayer(e)}removeAllMarkers(){this.markerService.removeAllMarkers()}removeAllMakers(){console.warn("removeAllMakers 已废弃,请使用 removeAllMarkers"),this.markerService.removeAllMarkers()}addPopup(e){this.popupService.addPopup(e)}removePopup(e){this.popupService.removePopup(e)}on(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.on(e,t):Sh.includes(e)?this.sceneService.on(e,t):this.mapService.on(e,t)}once(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.once(e,t):Sh.includes(e)?this.sceneService.once(e,t):this.mapService.once(e,t)}emit(e,t){Sh.indexOf(e)===-1?this.mapService.on(e,t):this.sceneService.emit(e,t)}off(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.off(e,t):Sh.includes(e)?this.sceneService.off(e,t):this.mapService.off(e,t)}getZoom(){return this.mapService.getZoom()}getCenter(e){return this.mapService.getCenter(e)}setCenter(e,t){return this.mapService.setCenter(e,t)}getPitch(){return this.mapService.getPitch()}setPitch(e){return this.mapService.setPitch(e)}getRotation(){return this.mapService.getRotation()}getBounds(){return this.mapService.getBounds()}setRotation(e){this.mapService.setRotation(e)}zoomIn(){this.mapService.zoomIn()}zoomOut(){this.mapService.zoomOut()}panTo(e){this.mapService.panTo(e)}panBy(e,t){this.mapService.panBy(e,t)}getContainer(){return this.mapService.getContainer()}setZoom(e){this.mapService.setZoom(e)}fitBounds(e,t){const{fitBoundsOptions:r,animate:i}=this.sceneService.getSceneConfig();this.mapService.fitBounds(e,t||mU(fU({},r),{animate:i}))}setZoomAndCenter(e,t){this.mapService.setZoomAndCenter(e,t)}setMapStyle(e){this.mapService.setMapStyle(e)}setMapStatus(e){this.mapService.setMapStatus(e)}pixelToLngLat(e){return this.mapService.pixelToLngLat(e)}lngLatToPixel(e){return this.mapService.lngLatToPixel(e)}containerToLngLat(e){return this.mapService.containerToLngLat(e)}lngLatToContainer(e){return this.mapService.lngLatToContainer(e)}destroy(){this.sceneService.destroy()}registerPostProcessingPass(e){this.container.postProcessingPass.name=new e}enableShaderPick(){this.layerService.enableShaderPick()}diasbleShaderPick(){this.layerService.disableShaderPick()}enableBoxSelect(e=!0){this.boxSelect.enable(),e&&this.boxSelect.once("selectend",()=>{this.disableBoxSelect()})}disableBoxSelect(){this.boxSelect.disable()}static addProtocol(e,t){jh.REGISTERED_PROTOCOLS[e]=t}static removeProtocol(e){delete jh.REGISTERED_PROTOCOLS[e]}getProtocol(e){return jh.REGISTERED_PROTOCOLS[e]}startAnimate(){this.layerService.startAnimate()}stopAnimate(){this.layerService.stopAnimate()}getPointSizeRange(){return this.sceneService.getPointSizeRange()}initComponent(e){this.controlService.init({container:PE(e)},this.container),this.markerService.init(this.container),this.popupService.init(this.container)}initControl(){const{logoVisible:e,logoPosition:t}=this.sceneService.getSceneConfig();e&&this.addControl(new uw({position:t}))}initTileLayer(e){e.getSource().isTile&&(e.tileLayer=new BD(e))}};const gU={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-170.92701563138777,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-166.43543921079018,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-166.43543921079018,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-49.73343622702246]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-49.73343622702246]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-53.89470068992965]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-53.89470068992965]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-55.19723063288941]}}]},vU={type:"FeatureCollection",features:[{type:"Feature",id:161792,geometry:{type:"Point",coordinates:[103.893473101,36.51870146]},properties:{ADM0_NAME:"China",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:83005,cum_clin:null,cum_susp:null,cum_death:3340,EPIWeek:15,EPIYear:2020,Comment:null,ID:161792,GUID:"af40da08-eeb3-40e9-bd59-41c06c17191f",CENTER_LON:103.8934731,CENTER_LAT:36.51870146,ADM0_VIZ_NAME:"China",Short_Name_ZH:"中国",Short_Name_FR:"Chine",Short_Name_ES:"China",Short_Name_RU:"Китай",Short_Name_AR:"الصين"}},{type:"Feature",id:161793,geometry:{type:"Point",coordinates:[127.829343915,36.367702276]},properties:{ADM0_NAME:"Republic of Korea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10284,cum_clin:null,cum_susp:null,cum_death:186,EPIWeek:15,EPIYear:2020,Comment:null,ID:161793,GUID:"8d331366-4bc7-4313-8e11-dea0054e7ad4",CENTER_LON:127.82934392,CENTER_LAT:36.36770228,ADM0_VIZ_NAME:"Republic of Korea",Short_Name_ZH:"大韩民国",Short_Name_FR:"République de Corée",Short_Name_ES:"República de Corea",Short_Name_RU:"Республика Корея",Short_Name_AR:"جمهورية كوريا"}},{type:"Feature",id:161794,geometry:{type:"Point",coordinates:[134.490975946,-25.733260232]},properties:{ADM0_NAME:"Australia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5795,cum_clin:null,cum_susp:null,cum_death:39,EPIWeek:15,EPIYear:2020,Comment:null,ID:161794,GUID:"bb79d7c7-29b4-45f2-93e6-2df1acc709ad",CENTER_LON:134.49097595,CENTER_LAT:-25.73326023,ADM0_VIZ_NAME:"Australia",Short_Name_ZH:"澳大利亚",Short_Name_FR:"Australie",Short_Name_ES:"Australia",Short_Name_RU:"Австралия",Short_Name_AR:"أستراليا"}},{type:"Feature",id:161795,geometry:{type:"Point",coordinates:[113.252212273,2.36614385200005]},properties:{ADM0_NAME:"Malaysia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3662,cum_clin:null,cum_susp:null,cum_death:61,EPIWeek:15,EPIYear:2020,Comment:null,ID:161795,GUID:"305e146d-efa9-43e5-a000-688bef88a933",CENTER_LON:109.7115743,CENTER_LAT:3.79382045,ADM0_VIZ_NAME:"Malaysia",Short_Name_ZH:"马来西亚",Short_Name_FR:"Malaisie",Short_Name_ES:"Malasia",Short_Name_RU:"Малайзия",Short_Name_AR:"ماليزيا"}},{type:"Feature",id:161796,geometry:{type:"Point",coordinates:[138.756881,36.466956]},properties:{ADM0_NAME:"Japan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3654,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161796,GUID:"9cba65ba-ddfd-418e-8501-21b13e24e90e",CENTER_LON:137.97387026,CENTER_LAT:37.53982621,ADM0_VIZ_NAME:"Japan",Short_Name_ZH:"日本",Short_Name_FR:"Japon",Short_Name_ES:"Japón",Short_Name_RU:"Япония",Short_Name_AR:"اليابان"}},{type:"Feature",id:161797,geometry:{type:"Point",coordinates:[122.873607427,11.747402026]},properties:{ADM0_NAME:"Philippines",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3246,cum_clin:null,cum_susp:null,cum_death:152,EPIWeek:15,EPIYear:2020,Comment:null,ID:161797,GUID:"73f7c9bf-ebf4-48dd-b4a8-ce2005c7b2fd",CENTER_LON:122.87360743,CENTER_LAT:11.74740203,ADM0_VIZ_NAME:"Philippines",Short_Name_ZH:"菲律宾",Short_Name_FR:"Philippines",Short_Name_ES:"Filipinas",Short_Name_RU:"Филиппины",Short_Name_AR:"الفلبين"}},{type:"Feature",id:161798,geometry:{type:"Point",coordinates:[103.807653591,1.35118038100006]},properties:{ADM0_NAME:"Singapore",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1309,cum_clin:null,cum_susp:null,cum_death:6,EPIWeek:15,EPIYear:2020,Comment:null,ID:161798,GUID:"f701475b-b12e-4647-8747-5f066797615a",CENTER_LON:103.80765359,CENTER_LAT:1.35118038,ADM0_VIZ_NAME:"Singapore",Short_Name_ZH:"新加坡",Short_Name_FR:"Singapour",Short_Name_ES:"Singapur",Short_Name_RU:"Сингапур",Short_Name_AR:"سنغافورة"}},{type:"Feature",id:161799,geometry:{type:"Point",coordinates:[171.603971284,-41.837106886]},properties:{ADM0_NAME:"New Zealand",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:911,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161799,GUID:"4b1c43e1-ae35-4d9a-9cc7-86b92722c762",CENTER_LON:171.60397128,CENTER_LAT:-41.83710689,ADM0_VIZ_NAME:"New Zealand",Short_Name_ZH:"新西兰",Short_Name_FR:"Nouvelle-Zélande",Short_Name_ES:"Nueva Zelandia",Short_Name_RU:"Новая Зеландия",Short_Name_AR:"نيوزيلندا"}},{type:"Feature",id:161800,geometry:{type:"Point",coordinates:[108.371477,15.8749560000001]},properties:{ADM0_NAME:"Viet Nam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:241,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161800,GUID:"7306ccbf-f0ee-4f1b-8c7e-516065fe2ae1",CENTER_LON:106.30403531,CENTER_LAT:16.65160342,ADM0_VIZ_NAME:"Viet Nam",Short_Name_ZH:"越南",Short_Name_FR:"Viet Nam",Short_Name_ES:"Viet Nam",Short_Name_RU:"Вьетнам",Short_Name_AR:"فييت نام"}},{type:"Feature",id:161801,geometry:{type:"Point",coordinates:[114.761320882,4.52147838100007]},properties:{ADM0_NAME:"Brunei Darussalam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:135,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161801,GUID:"688a16e9-73e3-4495-8eec-a9ef51d28b4a",CENTER_LON:114.76132088,CENTER_LAT:4.52147838,ADM0_VIZ_NAME:"Brunei Darussalam",Short_Name_ZH:"文莱达鲁萨兰国",Short_Name_FR:"Brunéi Darussalam",Short_Name_ES:"Brunei Darussalam",Short_Name_RU:"Бруней-Даруссалам ",Short_Name_AR:"بروني دار السلام"}},{type:"Feature",id:161802,geometry:{type:"Point",coordinates:[104.92123962,12.714029941]},properties:{ADM0_NAME:"Cambodia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:114,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161802,GUID:"752bbf3c-e667-405f-a381-64dc3d7250e9",CENTER_LON:104.92123962,CENTER_LAT:12.71402994,ADM0_VIZ_NAME:"Cambodia",Short_Name_ZH:"柬埔寨",Short_Name_FR:"Cambodge",Short_Name_ES:"Camboya",Short_Name_RU:"Камбоджа",Short_Name_AR:"كمبوديا"}},{type:"Feature",id:161803,geometry:{type:"Point",coordinates:[144.775856782,13.4440310690001]},properties:{ADM0_NAME:"Guam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:112,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161803,GUID:"07a13d36-90ef-4597-8599-bce2894a8a50",CENTER_LON:144.77585678,CENTER_LAT:13.44403107,ADM0_VIZ_NAME:"Guam",Short_Name_ZH:`关岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161804,geometry:{type:"Point",coordinates:[-149.567999999,-17.5319999979999]},properties:{ADM0_NAME:"French Polynesia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:41,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161804,GUID:"5b4d9703-49bb-40f3-8f1a-426055d3630e",CENTER_LON:-149.568,CENTER_LAT:-17.532,ADM0_VIZ_NAME:"French Polynesia",Short_Name_ZH:`法属波利尼西亚\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161805,geometry:{type:"Point",coordinates:[165.671849774,-21.2946141899999]},properties:{ADM0_NAME:"New Caledonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161805,GUID:"0c2acf2b-a803-4fdb-af96-dd5eba270bd3",CENTER_LON:165.67184977,CENTER_LAT:-21.29461419,ADM0_VIZ_NAME:"New Caledonia",Short_Name_ZH:`新喀里多尼亚\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161806,geometry:{type:"Point",coordinates:[103.083031076,46.8352087220001]},properties:{ADM0_NAME:"Mongolia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:15,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161806,GUID:"62c58dff-1d74-40b7-8bb4-fb2d4ea17224",CENTER_LON:103.08303108,CENTER_LAT:46.83520872,ADM0_VIZ_NAME:"Mongolia",Short_Name_ZH:"蒙古",Short_Name_FR:"Mongolie",Short_Name_ES:"Mongolia",Short_Name_RU:"Монголия",Short_Name_AR:"منغوليا"}},{type:"Feature",id:161807,geometry:{type:"Point",coordinates:[178.182000002,-17.8549999969999]},properties:{ADM0_NAME:"Fiji",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161807,GUID:"10a110c7-9bca-41a2-8665-e967984c4f31",CENTER_LON:178.182,CENTER_LAT:-17.855,ADM0_VIZ_NAME:"Fiji",Short_Name_ZH:"斐济",Short_Name_FR:"Fidji",Short_Name_ES:"Fiji",Short_Name_RU:"Фиджи ",Short_Name_AR:"فيجي"}},{type:"Feature",id:161808,geometry:{type:"Point",coordinates:[103.763405594,18.5024505710001]},properties:{ADM0_NAME:"Lao People's Democratic Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161808,GUID:"ab453840-eb7a-431c-b52f-e79d58df4850",CENTER_LON:103.76340559,CENTER_LAT:18.50245057,ADM0_VIZ_NAME:"Lao People's Democratic Republic",Short_Name_ZH:"老挝人民民主共和国",Short_Name_FR:"République démocratique populaire lao",Short_Name_ES:"República Democrática Popular Lao",Short_Name_RU:"Лаосская Народно-Демократическая Республика",Short_Name_AR:"جمهورية لاوس الديمقراطية الشعبية"}},{type:"Feature",id:161809,geometry:{type:"Point",coordinates:[145.587832112,16.255704635]},properties:{ADM0_NAME:"Northern Mariana Islands (Commonwealth of the)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:8,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161809,GUID:"b6207b55-8d8b-4599-9ea6-714cad3be598",CENTER_LON:145.58783211,CENTER_LAT:16.25570464,ADM0_VIZ_NAME:"Northern Mariana Islands (Commonwealth of the)",Short_Name_ZH:`北马里亚纳群岛自由邦\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161810,geometry:{type:"Point",coordinates:[145.253687589,-6.47589334999998]},properties:{ADM0_NAME:"Papua New Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161810,GUID:"d4e68089-5dc0-41e2-baf9-f9ba4bf31fa1",CENTER_LON:145.25368759,CENTER_LAT:-6.47589335,ADM0_VIZ_NAME:"Papua New Guinea",Short_Name_ZH:"巴布亚新几内亚",Short_Name_FR:"Papouasie-Nouvelle-Guinée",Short_Name_ES:"Papua Nueva Guinea",Short_Name_RU:"Папуа-Новая Гвинея",Short_Name_AR:"بابوا غينيا الجديدة"}},{type:"Feature",id:161811,geometry:{type:"Point",coordinates:[-3.64931117899994,40.2274959580001]},properties:{ADM0_NAME:"Spain",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:130759,cum_clin:null,cum_susp:null,cum_death:12418,EPIWeek:15,EPIYear:2020,Comment:null,ID:161811,GUID:"a2915e2f-0d93-4ee6-8e41-1fa268228580",CENTER_LON:-3.64931118,CENTER_LAT:40.22749596,ADM0_VIZ_NAME:"Spain",Short_Name_ZH:"西班牙",Short_Name_FR:"Espagne",Short_Name_ES:"España",Short_Name_RU:"Испания",Short_Name_AR:"إسبانيا"}},{type:"Feature",id:161812,geometry:{type:"Point",coordinates:[12.071655591,42.7911916680001]},properties:{ADM0_NAME:"Italy",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:128948,cum_clin:null,cum_susp:null,cum_death:15889,EPIWeek:15,EPIYear:2020,Comment:null,ID:161812,GUID:"e595e984-0e40-4363-aa46-5e7decf832f6",CENTER_LON:12.07165559,CENTER_LAT:42.79119167,ADM0_VIZ_NAME:"Italy",Short_Name_ZH:"意大利",Short_Name_FR:"Italie",Short_Name_ES:"Italia",Short_Name_RU:"Италия",Short_Name_AR:"إيطاليا"}},{type:"Feature",id:161813,geometry:{type:"Point",coordinates:[10.392329666,51.110153956]},properties:{ADM0_NAME:"Germany",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:95391,cum_clin:null,cum_susp:null,cum_death:1434,EPIWeek:15,EPIYear:2020,Comment:null,ID:161813,GUID:"a46bc45e-bcab-46d8-a50b-5008714077c0",CENTER_LON:10.39232967,CENTER_LAT:51.11015396,ADM0_VIZ_NAME:"Germany",Short_Name_ZH:"德国",Short_Name_FR:"Allemagne",Short_Name_ES:"Alemania",Short_Name_RU:"Германия",Short_Name_AR:"ألمانيا"}},{type:"Feature",id:161814,geometry:{type:"Point",coordinates:[2.55042645600003,46.5648740250001]},properties:{ADM0_NAME:"France",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:69607,cum_clin:null,cum_susp:null,cum_death:8064,EPIWeek:15,EPIYear:2020,Comment:null,ID:161814,GUID:"4c308a42-4e33-4d8f-a408-0746862545c7",CENTER_LON:2.55042646,CENTER_LAT:46.56487403,ADM0_VIZ_NAME:"France",Short_Name_ZH:"法国",Short_Name_FR:"France",Short_Name_ES:"Francia",Short_Name_RU:"Франция",Short_Name_AR:"فرنسا"}},{type:"Feature",id:161815,geometry:{type:"Point",coordinates:[-2.90049476399997,54.160179204]},properties:{ADM0_NAME:"The United Kingdom",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:47810,cum_clin:null,cum_susp:null,cum_death:4934,EPIWeek:15,EPIYear:2020,Comment:null,ID:161815,GUID:"50626e89-e145-4d23-8cc4-911240017430",CENTER_LON:-2.90049476,CENTER_LAT:54.1601792,ADM0_VIZ_NAME:"The United Kingdom",Short_Name_ZH:"大不列颠及北爱尔兰联合王国",Short_Name_FR:"Royaume-Uni de Grande-Bretagne et d'Irlande du Nord",Short_Name_ES:"Reino Unido de Gran Bretaña e Irlanda del Norte",Short_Name_RU:"Соединенное Королевство Великобритании и Северной Ирландии",Short_Name_AR:"المملكة المتحدة لبريطانيا العظمى وآيرلندا الشمالية "}},{type:"Feature",id:161816,geometry:{type:"Point",coordinates:[35.1792181100001,39.0606185600001]},properties:{ADM0_NAME:"Turkey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:27069,cum_clin:null,cum_susp:null,cum_death:574,EPIWeek:15,EPIYear:2020,Comment:null,ID:161816,GUID:"a135ad5a-5f50-44c3-bcca-18554926127a",CENTER_LON:35.17921811,CENTER_LAT:39.06061856,ADM0_VIZ_NAME:"Turkey",Short_Name_ZH:"土耳其",Short_Name_FR:"Turquie",Short_Name_ES:"Turquía",Short_Name_RU:"Турция",Short_Name_AR:"تركيا"}},{type:"Feature",id:161817,geometry:{type:"Point",coordinates:[8.23458738300008,46.8025828]},properties:{ADM0_NAME:"Switzerland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21065,cum_clin:null,cum_susp:null,cum_death:715,EPIWeek:15,EPIYear:2020,Comment:null,ID:161817,GUID:"3af18dcb-7d8a-4b6e-bc45-84611b8b6ecc",CENTER_LON:8.23458738,CENTER_LAT:46.8025828,ADM0_VIZ_NAME:"Switzerland",Short_Name_ZH:"瑞士",Short_Name_FR:"Suisse",Short_Name_ES:"Suiza",Short_Name_RU:"Швейцария",Short_Name_AR:"سويسرا"}},{type:"Feature",id:161818,geometry:{type:"Point",coordinates:[4.66434840900007,50.6429517600001]},properties:{ADM0_NAME:"Belgium",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19691,cum_clin:null,cum_susp:null,cum_death:1447,EPIWeek:15,EPIYear:2020,Comment:null,ID:161818,GUID:"effea6fa-d758-4860-ad26-41cdc15c23fb",CENTER_LON:4.66434841,CENTER_LAT:50.64295176,ADM0_VIZ_NAME:"Belgium",Short_Name_ZH:"比利时",Short_Name_FR:"Belgique",Short_Name_ES:"Bélgica",Short_Name_RU:"Бельгия",Short_Name_AR:"بلجيكا"}},{type:"Feature",id:161819,geometry:{type:"Point",coordinates:[5.60099775900005,52.253576303]},properties:{ADM0_NAME:"Netherlands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:17851,cum_clin:null,cum_susp:null,cum_death:1766,EPIWeek:15,EPIYear:2020,Comment:null,ID:161819,GUID:"f4139dd7-53a2-45a3-8e8c-c82b9323a391",CENTER_LON:5.60099776,CENTER_LAT:52.2535763,ADM0_VIZ_NAME:"Netherlands",Short_Name_ZH:"荷兰",Short_Name_FR:"Pays-Bas",Short_Name_ES:"Países Bajos",Short_Name_RU:"Нидерланды",Short_Name_AR:"هولندا"}},{type:"Feature",id:161820,geometry:{type:"Point",coordinates:[14.1399883120001,47.59295768]},properties:{ADM0_NAME:"Austria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11983,cum_clin:null,cum_susp:null,cum_death:204,EPIWeek:15,EPIYear:2020,Comment:null,ID:161820,GUID:"8608cb86-e05d-483d-8eda-8d1b03069602",CENTER_LON:14.13998831,CENTER_LAT:47.59295768,ADM0_VIZ_NAME:"Austria",Short_Name_ZH:"奥地利",Short_Name_FR:"Autriche",Short_Name_ES:"Austria",Short_Name_RU:"Австрия",Short_Name_AR:"النمسا"}},{type:"Feature",id:161821,geometry:{type:"Point",coordinates:[-8.46736074199993,39.6026951090001]},properties:{ADM0_NAME:"Portugal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11278,cum_clin:null,cum_susp:null,cum_death:295,EPIWeek:15,EPIYear:2020,Comment:null,ID:161821,GUID:"48a4e6f7-f991-43b0-a27c-22d79e1a36bd",CENTER_LON:-8.46736074,CENTER_LAT:39.60269511,ADM0_VIZ_NAME:"Portugal",Short_Name_ZH:"葡萄牙",Short_Name_FR:"Portugal",Short_Name_ES:"Portugal",Short_Name_RU:"Португалия",Short_Name_AR:"البرتغال"}},{type:"Feature",id:161822,geometry:{type:"Point",coordinates:[34.9659827130001,31.3580565250001]},properties:{ADM0_NAME:"Israel",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:8018,cum_clin:null,cum_susp:null,cum_death:46,EPIWeek:15,EPIYear:2020,Comment:null,ID:161822,GUID:"81d5bb84-8e84-4830-9fa3-f29e9b09fda8",CENTER_LON:34.96598271,CENTER_LAT:31.35805652,ADM0_VIZ_NAME:"Israel",Short_Name_ZH:"以色列",Short_Name_FR:"Israël",Short_Name_ES:"Israel",Short_Name_RU:"Израиль",Short_Name_AR:"إسرائيل"}},{type:"Feature",id:161823,geometry:{type:"Point",coordinates:[16.741155258,62.7877422610001]},properties:{ADM0_NAME:"Sweden",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6830,cum_clin:null,cum_susp:null,cum_death:401,EPIWeek:15,EPIYear:2020,Comment:null,ID:161823,GUID:"35ec511a-2e1c-4483-a917-1f67a1342382",CENTER_LON:16.74115526,CENTER_LAT:62.78774226,ADM0_VIZ_NAME:"Sweden",Short_Name_ZH:"瑞典",Short_Name_FR:"Suède",Short_Name_ES:"Suecia",Short_Name_RU:"Швеция",Short_Name_AR:"السويد"}},{type:"Feature",id:161824,geometry:{type:"Point",coordinates:[14.0750891050001,64.447848874]},properties:{ADM0_NAME:"Norway",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5640,cum_clin:null,cum_susp:null,cum_death:58,EPIWeek:15,EPIYear:2020,Comment:null,ID:161824,GUID:"82efba96-e610-4592-a329-95d7c3a57b4f",CENTER_LON:14.07508911,CENTER_LAT:64.44784887,ADM0_VIZ_NAME:"Norway",Short_Name_ZH:"挪威",Short_Name_FR:"Norvège",Short_Name_ES:"Noruega",Short_Name_RU:"Норвегия",Short_Name_AR:"النرويج"}},{type:"Feature",id:161825,geometry:{type:"Point",coordinates:[96.689442146,61.9882456010001]},properties:{ADM0_NAME:"Russian Federation",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5389,cum_clin:null,cum_susp:null,cum_death:45,EPIWeek:15,EPIYear:2020,Comment:null,ID:161825,GUID:"58afb040-3a74-491b-809d-00b145c55577",CENTER_LON:96.68944215,CENTER_LAT:61.9882456,ADM0_VIZ_NAME:"Russian Federation",Short_Name_ZH:"俄罗斯联邦",Short_Name_FR:"Fédération de Russie",Short_Name_ES:"Federación de Rusia",Short_Name_RU:"Российская Федерация",Short_Name_AR:"الاتحاد الروسي"}},{type:"Feature",id:161826,geometry:{type:"Point",coordinates:[-8.15157629999993,53.1770868180001]},properties:{ADM0_NAME:"Ireland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5111,cum_clin:null,cum_susp:null,cum_death:158,EPIWeek:15,EPIYear:2020,Comment:null,ID:161826,GUID:"f5d664d0-c086-4d71-8874-044e3d094c5d",CENTER_LON:-8.1515763,CENTER_LAT:53.17708682,ADM0_VIZ_NAME:"Ireland",Short_Name_ZH:"爱尔兰",Short_Name_FR:"Irlande",Short_Name_ES:"Irlanda",Short_Name_RU:"Ирландия",Short_Name_AR:"آيرلندا"}},{type:"Feature",id:161827,geometry:{type:"Point",coordinates:[15.338339951,49.743036139]},properties:{ADM0_NAME:"Czechia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4587,cum_clin:null,cum_susp:null,cum_death:67,EPIWeek:15,EPIYear:2020,Comment:null,ID:161827,GUID:"8cf681ef-d988-4d5d-86c7-5483977059e7",CENTER_LON:15.33833995,CENTER_LAT:49.74303614,ADM0_VIZ_NAME:"Czechia",Short_Name_ZH:"捷克",Short_Name_FR:"Tchéquie",Short_Name_ES:"Chequia",Short_Name_RU:"Чехия",Short_Name_AR:"تشيكيا"}},{type:"Feature",id:161828,geometry:{type:"Point",coordinates:[10.0508208200001,55.962332802]},properties:{ADM0_NAME:"Denmark",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4369,cum_clin:null,cum_susp:null,cum_death:179,EPIWeek:15,EPIYear:2020,Comment:null,ID:161828,GUID:"39dcd44b-aa79-48a8-9840-3179a28a35a9",CENTER_LON:10.05082082,CENTER_LAT:55.9623328,ADM0_VIZ_NAME:"Denmark",Short_Name_ZH:"丹麦",Short_Name_FR:"Danemark",Short_Name_ES:"Dinamarca",Short_Name_RU:"Дания",Short_Name_AR:"الدانمرك"}},{type:"Feature",id:161829,geometry:{type:"Point",coordinates:[19.4009201690001,52.1247240530001]},properties:{ADM0_NAME:"Poland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4102,cum_clin:null,cum_susp:null,cum_death:94,EPIWeek:15,EPIYear:2020,Comment:null,ID:161829,GUID:"1c04cb3c-08f6-47a3-bb42-dd9da35e226c",CENTER_LON:19.40092017,CENTER_LAT:52.12472405,ADM0_VIZ_NAME:"Poland",Short_Name_ZH:"波兰",Short_Name_FR:"Pologne",Short_Name_ES:"Polonia",Short_Name_RU:"Польша",Short_Name_AR:"بولندا"}},{type:"Feature",id:161830,geometry:{type:"Point",coordinates:[24.96990758,45.843605584]},properties:{ADM0_NAME:"Romania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3864,cum_clin:null,cum_susp:null,cum_death:148,EPIWeek:15,EPIYear:2020,Comment:null,ID:161830,GUID:"26eaed41-b340-4f38-90e3-9392e04420c6",CENTER_LON:24.96990758,CENTER_LAT:45.84360558,ADM0_VIZ_NAME:"Romania",Short_Name_ZH:"罗马尼亚",Short_Name_FR:"Roumanie",Short_Name_ES:"Rumania",Short_Name_RU:"Румыния",Short_Name_AR:"رومانيا"}},{type:"Feature",id:161831,geometry:{type:"Point",coordinates:[6.08754415700002,49.7709639620001]},properties:{ADM0_NAME:"Luxembourg",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2804,cum_clin:null,cum_susp:null,cum_death:36,EPIWeek:15,EPIYear:2020,Comment:null,ID:161831,GUID:"05241edc-00fd-47ec-ba71-800dbf3f853d",CENTER_LON:6.08754416,CENTER_LAT:49.77096396,ADM0_VIZ_NAME:"Luxembourg",Short_Name_ZH:"卢森堡",Short_Name_FR:"Luxembourg",Short_Name_ES:"Luxemburgo",Short_Name_RU:"Люксембург",Short_Name_AR:"لكسمبرغ"}},{type:"Feature",id:161832,geometry:{type:"Point",coordinates:[26.258842304,64.4943312920001]},properties:{ADM0_NAME:"Finland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1927,cum_clin:null,cum_susp:null,cum_death:28,EPIWeek:15,EPIYear:2020,Comment:null,ID:161832,GUID:"e3fd3d41-feaa-443f-a135-08a80552525c",CENTER_LON:26.2588423,CENTER_LAT:64.49433129,ADM0_VIZ_NAME:"Finland",Short_Name_ZH:"芬兰",Short_Name_FR:"Finlande",Short_Name_ES:"Finlandia",Short_Name_RU:"Финляндия",Short_Name_AR:"فنلندا"}},{type:"Feature",id:161833,geometry:{type:"Point",coordinates:[20.8113308580001,44.0338722170001]},properties:{ADM0_NAME:"Serbia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1908,cum_clin:null,cum_susp:null,cum_death:51,EPIWeek:15,EPIYear:2020,Comment:"145",ID:161833,GUID:"c2a1295d-39bf-42fa-89ed-cadee2ea50c0",CENTER_LON:20.81133086,CENTER_LAT:44.03387222,ADM0_VIZ_NAME:"Serbia",Short_Name_ZH:"塞尔维亚",Short_Name_FR:"Serbie",Short_Name_ES:"Serbia",Short_Name_RU:"Сербия",Short_Name_AR:"صربيا"}},{type:"Feature",id:161834,geometry:{type:"Point",coordinates:[22.9879848,39.0445287420001]},properties:{ADM0_NAME:"Greece",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1735,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161834,GUID:"89efdcec-75e3-4185-83a8-d2cb7f6beff6",CENTER_LON:22.9879848,CENTER_LAT:39.04452874,ADM0_VIZ_NAME:"Greece",Short_Name_ZH:"希腊",Short_Name_FR:"Grèce",Short_Name_ES:"Grecia",Short_Name_RU:"Греция",Short_Name_AR:"اليونان"}},{type:"Feature",id:161835,geometry:{type:"Point",coordinates:[-18.6057025969999,64.9976499840001]},properties:{ADM0_NAME:"Iceland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1486,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161835,GUID:"66510a15-4a49-4fb4-9400-6e6fd0d1d259",CENTER_LON:-18.6057026,CENTER_LAT:64.99764998,ADM0_VIZ_NAME:"Iceland",Short_Name_ZH:"冰岛",Short_Name_FR:"Islande",Short_Name_ES:"Islandia",Short_Name_RU:"Исландия",Short_Name_AR:"آيسلندا"}},{type:"Feature",id:161836,geometry:{type:"Point",coordinates:[31.3878455180001,49.0160942850001]},properties:{ADM0_NAME:"Ukraine",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1319,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161836,GUID:"95185552-2b03-429c-8efb-c5779d556529",CENTER_LON:31.38784552,CENTER_LAT:49.01609429,ADM0_VIZ_NAME:"Ukraine",Short_Name_ZH:"乌克兰",Short_Name_FR:"Ukraine",Short_Name_ES:"Ucrania",Short_Name_RU:"Украина",Short_Name_AR:"أوكرانيا"}},{type:"Feature",id:161837,geometry:{type:"Point",coordinates:[16.409342489,45.043636959]},properties:{ADM0_NAME:"Croatia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1182,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161837,GUID:"0632bd7c-fa87-4b49-847e-747eb322c506",CENTER_LON:16.40934249,CENTER_LAT:45.04363696,ADM0_VIZ_NAME:"Croatia",Short_Name_ZH:"克罗地亚",Short_Name_FR:"Croatie",Short_Name_ES:"Croacia",Short_Name_RU:"Хорватия",Short_Name_AR:"كرواتيا"}},{type:"Feature",id:161838,geometry:{type:"Point",coordinates:[25.525770902,58.674007869]},properties:{ADM0_NAME:"Estonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1097,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161838,GUID:"465ebc0d-dc95-4d49-8c01-58d7e2a9629f",CENTER_LON:25.5257709,CENTER_LAT:58.67400787,ADM0_VIZ_NAME:"Estonia",Short_Name_ZH:"爱沙尼亚",Short_Name_FR:"Estonie",Short_Name_ES:"Estonia",Short_Name_RU:"Эстония",Short_Name_AR:"إستونيا"}},{type:"Feature",id:161839,geometry:{type:"Point",coordinates:[14.8270744380001,46.123550256]},properties:{ADM0_NAME:"Slovenia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:997,cum_clin:null,cum_susp:null,cum_death:28,EPIWeek:15,EPIYear:2020,Comment:null,ID:161839,GUID:"a1f8bec8-8628-4e46-9c7e-238a386177b5",CENTER_LON:14.82707444,CENTER_LAT:46.12355026,ADM0_VIZ_NAME:"Slovenia",Short_Name_ZH:"斯洛文尼亚",Short_Name_FR:"Slovénie",Short_Name_ES:"Eslovenia",Short_Name_RU:"Словения",Short_Name_AR:"سلوفينيا"}},{type:"Feature",id:161840,geometry:{type:"Point",coordinates:[28.4743431700001,47.1933256130001]},properties:{ADM0_NAME:"Republic of Moldova",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:864,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161840,GUID:"2e685fb5-826d-4cda-8f11-ab4e215115c8",CENTER_LON:28.47434317,CENTER_LAT:47.19332561,ADM0_VIZ_NAME:"Republic of Moldova",Short_Name_ZH:"摩尔多瓦共和国",Short_Name_FR:"République de Moldova",Short_Name_ES:"la República de Moldova",Short_Name_RU:"Республика Молдова",Short_Name_AR:" جمهورية مولدوفا"}},{type:"Feature",id:161841,geometry:{type:"Point",coordinates:[23.8968307550001,55.3358501330001]},properties:{ADM0_NAME:"Lithuania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:811,cum_clin:null,cum_susp:null,cum_death:13,EPIWeek:15,EPIYear:2020,Comment:null,ID:161841,GUID:"9dedcb14-a08f-4f9c-9248-f3e734fe9026",CENTER_LON:23.89683075,CENTER_LAT:55.33585013,ADM0_VIZ_NAME:"Lithuania",Short_Name_ZH:"立陶宛",Short_Name_FR:"Lituanie",Short_Name_ES:"Lituania",Short_Name_RU:"Литва",Short_Name_AR:"ليتوانيا"}},{type:"Feature",id:161842,geometry:{type:"Point",coordinates:[44.947934237,40.2864168850001]},properties:{ADM0_NAME:"Armenia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:746,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161842,GUID:"eacf41cc-aa5e-48c9-a3db-386fce22497f",CENTER_LON:44.94793424,CENTER_LAT:40.28641688,ADM0_VIZ_NAME:"Armenia",Short_Name_ZH:"亚美尼亚",Short_Name_FR:"Arménie",Short_Name_ES:"Armenia",Short_Name_RU:"Армения",Short_Name_AR:"أرمينيا"}},{type:"Feature",id:161843,geometry:{type:"Point",coordinates:[19.413428132,47.166479059]},properties:{ADM0_NAME:"Hungary",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:744,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161843,GUID:"dd6f8b0d-73f4-4afc-889e-185c363755bd",CENTER_LON:19.41342813,CENTER_LAT:47.16647906,ADM0_VIZ_NAME:"Hungary",Short_Name_ZH:"匈牙利",Short_Name_FR:"Hongrie",Short_Name_ES:"Hungría",Short_Name_RU:"Венгрия",Short_Name_AR:"هنغاريا"}},{type:"Feature",id:161844,geometry:{type:"Point",coordinates:[17.788588722,44.166459531]},properties:{ADM0_NAME:"Bosnia and Herzegovina",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:662,cum_clin:null,cum_susp:null,cum_death:21,EPIWeek:15,EPIYear:2020,Comment:null,ID:161844,GUID:"e72216b1-90ca-4ef3-8ca5-334dc566e491",CENTER_LON:17.78861095,CENTER_LAT:44.16643966,ADM0_VIZ_NAME:"Bosnia and Herzegovina",Short_Name_ZH:"波斯尼亚和黑塞哥维那",Short_Name_FR:"Bosnie-Herzégovine",Short_Name_ES:"Bosnia y Herzegovina",Short_Name_RU:"Босния и Герцеговина",Short_Name_AR:"البوسنة والهرسك"}},{type:"Feature",id:161845,geometry:{type:"Point",coordinates:[67.3013001780001,48.160042703]},properties:{ADM0_NAME:"Kazakhstan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:604,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161845,GUID:"4977dd2e-53da-4f6e-8b28-b232665dce70",CENTER_LON:67.30130018,CENTER_LAT:48.1600427,ADM0_VIZ_NAME:"Kazakhstan",Short_Name_ZH:"哈萨克斯坦",Short_Name_FR:"Kazakhstan",Short_Name_ES:"Kazajstán",Short_Name_RU:"Казахстан",Short_Name_AR:"كازاخستان"}},{type:"Feature",id:161846,geometry:{type:"Point",coordinates:[47.5323268120001,40.292219501]},properties:{ADM0_NAME:"Azerbaijan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:584,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161846,GUID:"7c545b04-b947-4d2a-94f1-af4010981973",CENTER_LON:47.53232681,CENTER_LAT:40.2922195,ADM0_VIZ_NAME:"Azerbaijan",Short_Name_ZH:"阿塞拜疆",Short_Name_FR:"Azerbaïdjan",Short_Name_ES:"Azerbaiyán",Short_Name_RU:"Азербайджан",Short_Name_AR:"أذربيجان"}},{type:"Feature",id:161847,geometry:{type:"Point",coordinates:[28.046964476,53.5402195120001]},properties:{ADM0_NAME:"Belarus",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:562,cum_clin:null,cum_susp:null,cum_death:8,EPIWeek:15,EPIYear:2020,Comment:null,ID:161847,GUID:"b0db3eb1-014d-4f19-ad8a-0d42e84400bc",CENTER_LON:28.04696448,CENTER_LAT:53.54021951,ADM0_VIZ_NAME:"Belarus",Short_Name_ZH:"白俄罗斯",Short_Name_FR:"Bélarus",Short_Name_ES:"Belarús",Short_Name_RU:"Беларусь",Short_Name_AR:"بيلاروس"}},{type:"Feature",id:161848,geometry:{type:"Point",coordinates:[21.699148501,41.5992207530001]},properties:{ADM0_NAME:"North Macedonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:555,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161848,GUID:"3e3320e9-1f0d-44fb-9ca7-59fcb032f585",CENTER_LON:21.6991485,CENTER_LAT:41.59922075,ADM0_VIZ_NAME:"North Macedonia",Short_Name_ZH:"北马其顿",Short_Name_FR:"Macédoine du Nord",Short_Name_ES:"Macedonia del Norte",Short_Name_RU:"Северная Македония",Short_Name_AR:"مقدونيا الشمالية"}},{type:"Feature",id:161849,geometry:{type:"Point",coordinates:[24.9291533160001,56.857669393]},properties:{ADM0_NAME:"Latvia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:533,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161849,GUID:"0c31644b-8d04-4f24-aca0-d49b0523a771",CENTER_LON:24.92915332,CENTER_LAT:56.85766939,ADM0_VIZ_NAME:"Latvia",Short_Name_ZH:"拉脱维亚",Short_Name_FR:"Lettonie",Short_Name_ES:"Letonia",Short_Name_RU:"Латвия",Short_Name_AR:"لاتفيا"}},{type:"Feature",id:161850,geometry:{type:"Point",coordinates:[25.234757556,42.7603214050001]},properties:{ADM0_NAME:"Bulgaria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:531,cum_clin:null,cum_susp:null,cum_death:20,EPIWeek:15,EPIYear:2020,Comment:null,ID:161850,GUID:"9ec1719f-edd7-42af-8988-ed246a25ff6e",CENTER_LON:25.23475756,CENTER_LAT:42.76032141,ADM0_VIZ_NAME:"Bulgaria",Short_Name_ZH:"保加利亚",Short_Name_FR:"Bulgarie",Short_Name_ES:"Bulgaria",Short_Name_RU:"Болгария",Short_Name_AR:"بلغاريا"}},{type:"Feature",id:161851,geometry:{type:"Point",coordinates:[1.57568832800007,42.548582966]},properties:{ADM0_NAME:"Andorra",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:523,cum_clin:null,cum_susp:null,cum_death:17,EPIWeek:15,EPIYear:2020,Comment:null,ID:161851,GUID:"066f0f3c-d111-4a65-afdd-5f86e5ac8ddc",CENTER_LON:1.57568833,CENTER_LAT:42.54858297,ADM0_VIZ_NAME:"Andorra",Short_Name_ZH:"安道尔",Short_Name_FR:"Andorre",Short_Name_ES:"Andorra",Short_Name_RU:"Андорра",Short_Name_AR:"أندورا"}},{type:"Feature",id:161852,geometry:{type:"Point",coordinates:[19.4914502780001,48.7073588010001]},properties:{ADM0_NAME:"Slovakia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:485,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161852,GUID:"7ec96ad8-a352-4125-af49-b14e8cb9876b",CENTER_LON:19.49145028,CENTER_LAT:48.7073588,ADM0_VIZ_NAME:"Slovakia",Short_Name_ZH:"斯洛伐克",Short_Name_FR:"Slovaquie",Short_Name_ES:"Eslovaquia",Short_Name_RU:"Словакия",Short_Name_AR:"سلوفاكيا"}},{type:"Feature",id:161853,geometry:{type:"Point",coordinates:[33.2186370790001,35.042991746]},properties:{ADM0_NAME:"Cyprus",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:446,cum_clin:null,cum_susp:null,cum_death:14,EPIWeek:15,EPIYear:2020,Comment:null,ID:161853,GUID:"21711ed5-ad84-4f8f-af93-6e4d12e558bf",CENTER_LON:33.21863708,CENTER_LAT:35.04299175,ADM0_VIZ_NAME:"Cyprus",Short_Name_ZH:"塞浦路斯",Short_Name_FR:"Chypre",Short_Name_ES:"Chipre",Short_Name_RU:"Кипр",Short_Name_AR:"قبرص"}},{type:"Feature",id:161854,geometry:{type:"Point",coordinates:[63.169505783,41.750416607]},properties:{ADM0_NAME:"Uzbekistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:390,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161854,GUID:"6041dd4d-0f77-4e28-8d46-cc9afc8dbf9a",CENTER_LON:63.16950578,CENTER_LAT:41.75041661,ADM0_VIZ_NAME:"Uzbekistan",Short_Name_ZH:"乌兹别克斯坦",Short_Name_FR:"Ouzbékistan",Short_Name_ES:"Uzbekistán",Short_Name_RU:"Узбекистан",Short_Name_AR:"أوزبكستان"}},{type:"Feature",id:161855,geometry:{type:"Point",coordinates:[20.0691781670001,41.145958029]},properties:{ADM0_NAME:"Albania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:377,cum_clin:null,cum_susp:null,cum_death:21,EPIWeek:15,EPIYear:2020,Comment:null,ID:161855,GUID:"c7192fcc-f547-44ed-a758-3d8e48420cef",CENTER_LON:20.06917817,CENTER_LAT:41.14595803,ADM0_VIZ_NAME:"Albania",Short_Name_ZH:"阿尔巴尼亚",Short_Name_FR:"Albanie",Short_Name_ES:"Albania",Short_Name_RU:"Албания",Short_Name_AR:"ألبانيا"}},{type:"Feature",id:161856,geometry:{type:"Point",coordinates:[12.4603576160001,43.9419147360001]},properties:{ADM0_NAME:"San Marino",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:266,cum_clin:null,cum_susp:null,cum_death:32,EPIWeek:15,EPIYear:2020,Comment:null,ID:161856,GUID:"1e7562c6-655a-4a6d-879f-7f80ff842b20",CENTER_LON:12.46035762,CENTER_LAT:43.94191474,ADM0_VIZ_NAME:"San Marino",Short_Name_ZH:"圣马力诺",Short_Name_FR:"Saint-Marin",Short_Name_ES:"San Marino",Short_Name_RU:"Сан-Марино",Short_Name_AR:"سان مارينو"}},{type:"Feature",id:161857,geometry:{type:"Point",coordinates:[14.404573585,35.9203665150001]},properties:{ADM0_NAME:"Malta",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:234,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161857,GUID:"fbafb313-9be5-49cc-9633-26c40e77d9d9",CENTER_LON:14.40457358,CENTER_LAT:35.92036651,ADM0_VIZ_NAME:"Malta",Short_Name_ZH:"马耳他",Short_Name_FR:"Malte",Short_Name_ES:"Malta",Short_Name_RU:"Мальта",Short_Name_AR:"مالطة"}},{type:"Feature",id:161858,geometry:{type:"Point",coordinates:[74.555492998,41.464907168]},properties:{ADM0_NAME:"Kyrgyzstan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:216,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161858,GUID:"874ef90d-615d-4ad3-8893-17d62ecda937",CENTER_LON:74.555493,CENTER_LAT:41.46490717,ADM0_VIZ_NAME:"Kyrgyzstan",Short_Name_ZH:"吉尔吉斯斯坦",Short_Name_FR:"Kirghizistan",Short_Name_ES:"Kirguistán",Short_Name_RU:"Кыргызстан",Short_Name_AR:"قيرغيزستان"}},{type:"Feature",id:161859,geometry:{type:"Point",coordinates:[19.264632787,42.796243544]},properties:{ADM0_NAME:"Montenegro",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:203,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161859,GUID:"09650ef3-8793-4a1f-b8a2-b6c1da8c2bef",CENTER_LON:19.26458919,CENTER_LAT:42.79659203,ADM0_VIZ_NAME:"Montenegro",Short_Name_ZH:"黑山",Short_Name_FR:"Monténégro",Short_Name_ES:"Montenegro",Short_Name_RU:"Черногория",Short_Name_AR:"الجبل الأسود"}},{type:"Feature",id:161860,geometry:{type:"Point",coordinates:[43.517571151,42.1763258280001]},properties:{ADM0_NAME:"Georgia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:188,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161860,GUID:"e75c6929-6252-4e54-af0f-83798afe3123",CENTER_LON:43.51757115,CENTER_LAT:42.17632583,ADM0_VIZ_NAME:"Georgia",Short_Name_ZH:"格鲁吉亚",Short_Name_FR:"Géorgie",Short_Name_ES:"Georgia",Short_Name_RU:"Грузия",Short_Name_AR:"جورجيا"}},{type:"Feature",id:161861,geometry:{type:"Point",coordinates:[-6.86363601799997,62.050314004]},properties:{ADM0_NAME:"Faroe Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:181,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161861,GUID:"53f56a27-5297-4c05-a47b-b2033e95db63",CENTER_LON:-6.86363602,CENTER_LAT:62.050314,ADM0_VIZ_NAME:"Faroe Islands",Short_Name_ZH:`法罗群岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161862,geometry:{type:"Point",coordinates:[-2.12891773399997,49.2194981580001]},properties:{ADM0_NAME:"Jersey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:155,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161862,GUID:"82a7eebf-4858-4ad8-b68f-1b7bd7b719bc",CENTER_LON:-2.12891773,CENTER_LAT:49.21949816,ADM0_VIZ_NAME:"Jersey",Short_Name_ZH:`泽西岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161863,geometry:{type:"Point",coordinates:[-2.57582282299995,49.459046304]},properties:{ADM0_NAME:"Guernsey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:154,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161863,GUID:"2cb7929d-d72e-4129-83c9-c293fc73d996",CENTER_LON:-2.57582282,CENTER_LAT:49.4590463,ADM0_VIZ_NAME:"Guernsey",Short_Name_ZH:`根西岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161864,geometry:{type:"Point",coordinates:[20.9369550000001,42.568695]},properties:{ADM0_NAME:"Kosovo[1]",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:145,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:"1908",ID:161864,GUID:"71d5bb45-bba6-4305-a423-19927e9f4c53",CENTER_LON:20.936955,CENTER_LAT:42.568695,ADM0_VIZ_NAME:"Kosovo[1]",Short_Name_ZH:"科索沃[1]",Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161865,geometry:{type:"Point",coordinates:[-4.52652992499998,54.2288332950001]},properties:{ADM0_NAME:"Isle of Man",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:127,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161865,GUID:"45b3fcba-3667-474b-8081-b17737d8cb5f",CENTER_LON:-4.52652992,CENTER_LAT:54.2288333,ADM0_VIZ_NAME:"Isle of Man",Short_Name_ZH:`马恩岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161866,geometry:{type:"Point",coordinates:[-5.34488893099996,36.1381932030001]},properties:{ADM0_NAME:"Gibraltar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:103,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161866,GUID:"6e156108-e9e8-4087-b89c-37e5851bd8d0",CENTER_LON:-5.34488893,CENTER_LAT:36.1381932,ADM0_VIZ_NAME:"Gibraltar",Short_Name_ZH:`直布罗陀\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161867,geometry:{type:"Point",coordinates:[9.55526492600006,47.1525954850001]},properties:{ADM0_NAME:"Liechtenstein",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:78,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161867,GUID:"8b38ed63-f4bf-4683-96b5-e8c2eb7bd7e7",CENTER_LON:9.55526493,CENTER_LAT:47.15259548,ADM0_VIZ_NAME:"Liechtenstein",Short_Name_ZH:`列支敦士登\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161868,geometry:{type:"Point",coordinates:[7.41201715200003,43.7503461470001]},properties:{ADM0_NAME:"Monaco",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:37,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161868,GUID:"ac716d7e-26d7-46d8-a1a2-4222f42042f3",CENTER_LON:7.41201715,CENTER_LAT:43.75034615,ADM0_VIZ_NAME:"Monaco",Short_Name_ZH:"摩纳哥",Short_Name_FR:"Monaco",Short_Name_ES:"Mónaco",Short_Name_RU:"Монако",Short_Name_AR:"موناكو"}},{type:"Feature",id:161869,geometry:{type:"Point",coordinates:[-41.39096667,74.7189535310001]},properties:{ADM0_NAME:"Greenland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161869,GUID:"e7d73b5c-27bf-451c-be96-73de13560e8c",CENTER_LON:-41.39096667,CENTER_LAT:74.71895353,ADM0_VIZ_NAME:"Greenland",Short_Name_ZH:`格陵兰岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161870,geometry:{type:"Point",coordinates:[12.4857111430001,41.893241947]},properties:{ADM0_NAME:"Holy See",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161870,GUID:"38144504-0224-4815-a545-5c8d34bb44d8",CENTER_LON:12.48571114,CENTER_LAT:41.89324195,ADM0_VIZ_NAME:"Holy See",Short_Name_ZH:`梵蒂冈\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161871,geometry:{type:"Point",coordinates:[79.6188182980001,22.881320567]},properties:{ADM0_NAME:"India",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4067,cum_clin:null,cum_susp:null,cum_death:109,EPIWeek:15,EPIYear:2020,Comment:null,ID:161871,GUID:"e75886d8-11ce-4563-bd85-86bcb9312cee",CENTER_LON:79.6188183,CENTER_LAT:22.88132057,ADM0_VIZ_NAME:"India",Short_Name_ZH:"印度",Short_Name_FR:"Inde",Short_Name_ES:"India",Short_Name_RU:"Индия",Short_Name_AR:"الهند"}},{type:"Feature",id:161872,geometry:{type:"Point",coordinates:[113.355162997,-.950074241999971]},properties:{ADM0_NAME:"Indonesia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2491,cum_clin:null,cum_susp:null,cum_death:209,EPIWeek:15,EPIYear:2020,Comment:null,ID:161872,GUID:"9350b806-04ca-4c8f-926e-7c5f644a13c7",CENTER_LON:117.31101692,CENTER_LAT:-2.22903453,ADM0_VIZ_NAME:"Indonesia",Short_Name_ZH:"印度尼西亚",Short_Name_FR:"Indonésie",Short_Name_ES:"Indonesia",Short_Name_RU:"Индонезия",Short_Name_AR:"إندونيسيا"}},{type:"Feature",id:161873,geometry:{type:"Point",coordinates:[101.014907816,15.1198987560001]},properties:{ADM0_NAME:"Thailand",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2220,cum_clin:null,cum_susp:null,cum_death:26,EPIWeek:15,EPIYear:2020,Comment:null,ID:161873,GUID:"3d1f17d7-1553-476a-a8d8-62dcd54d4779",CENTER_LON:101.01490782,CENTER_LAT:15.11989876,ADM0_VIZ_NAME:"Thailand",Short_Name_ZH:"泰国",Short_Name_FR:"Thaïlande",Short_Name_ES:"Tailandia",Short_Name_RU:"Таиланд",Short_Name_AR:"تايلند"}},{type:"Feature",id:161874,geometry:{type:"Point",coordinates:[80.7042626200001,7.61236242700005]},properties:{ADM0_NAME:"Sri Lanka",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:176,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161874,GUID:"12d0a30e-4c87-4a62-b124-c751e10cacac",CENTER_LON:80.70426262,CENTER_LAT:7.61236243,ADM0_VIZ_NAME:"Sri Lanka",Short_Name_ZH:"斯里兰卡",Short_Name_FR:"Sri Lanka",Short_Name_ES:"Sri Lanka",Short_Name_RU:"Шри-Ланка",Short_Name_AR:"سري لانكا"}},{type:"Feature",id:161875,geometry:{type:"Point",coordinates:[90.2709257590001,23.833007201]},properties:{ADM0_NAME:"Bangladesh",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:123,cum_clin:null,cum_susp:null,cum_death:12,EPIWeek:15,EPIYear:2020,Comment:null,ID:161875,GUID:"c4d7552f-faa1-4bf4-a22e-c9b5d9ee14c2",CENTER_LON:90.27092576,CENTER_LAT:23.8330072,ADM0_VIZ_NAME:"Bangladesh",Short_Name_ZH:"孟加拉国",Short_Name_FR:"Bangladesh",Short_Name_ES:"Bangladesh",Short_Name_RU:"Бангладеш",Short_Name_AR:"بنغلاديش"}},{type:"Feature",id:161876,geometry:{type:"Point",coordinates:[96.508682057,21.1400953610001]},properties:{ADM0_NAME:"Myanmar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161876,GUID:"a8c48537-a6ee-4d80-83f8-b3dda8858d94",CENTER_LON:96.50868206,CENTER_LAT:21.14009536,ADM0_VIZ_NAME:"Myanmar",Short_Name_ZH:"缅甸",Short_Name_FR:"Myanmar",Short_Name_ES:"Myanmar",Short_Name_RU:"Мьянма",Short_Name_AR:"ميانمار"}},{type:"Feature",id:161877,geometry:{type:"Point",coordinates:[73.2517847770001,3.37481931800005]},properties:{ADM0_NAME:"Maldives",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161877,GUID:"65914a49-5435-4cda-b916-f9ee5e14147b",CENTER_LON:73.25178478,CENTER_LAT:3.37481932,ADM0_VIZ_NAME:"Maldives",Short_Name_ZH:"马尔代夫",Short_Name_FR:"Maldives",Short_Name_ES:"Maldivas",Short_Name_RU:"Мальдивские Острова",Short_Name_AR:"ملديف"}},{type:"Feature",id:161878,geometry:{type:"Point",coordinates:[83.9385170750001,28.253007847]},properties:{ADM0_NAME:"Nepal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161878,GUID:"da7d5887-ee15-421c-8ad9-b785996b0536",CENTER_LON:83.93851707,CENTER_LAT:28.25300785,ADM0_VIZ_NAME:"Nepal",Short_Name_ZH:"尼泊尔",Short_Name_FR:"Népal",Short_Name_ES:"Nepal",Short_Name_RU:"Непал",Short_Name_AR:"نيبال"}},{type:"Feature",id:161879,geometry:{type:"Point",coordinates:[90.4294327480001,27.415460823]},properties:{ADM0_NAME:"Bhutan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161879,GUID:"0d97d3e1-4ba2-431a-8404-f13231d663bd",CENTER_LON:90.42943275,CENTER_LAT:27.41546082,ADM0_VIZ_NAME:"Bhutan",Short_Name_ZH:"不丹",Short_Name_FR:"Bhoutan",Short_Name_ES:"Bhután",Short_Name_RU:"Бутан",Short_Name_AR:"بوتان"}},{type:"Feature",id:161880,geometry:{type:"Point",coordinates:[125.860996098,-8.82052123499994]},properties:{ADM0_NAME:"Timor-Leste",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161880,GUID:"57acee0b-5cc0-45d5-b65c-1d928ac08d16",CENTER_LON:125.8609961,CENTER_LAT:-8.82052123,ADM0_VIZ_NAME:"Timor-Leste",Short_Name_ZH:"东帝汶",Short_Name_FR:"Timor-Leste",Short_Name_ES:"Timor-Leste",Short_Name_RU:"Тимор-Лешти",Short_Name_AR:"تيمور- ليشتي"}},{type:"Feature",id:161881,geometry:{type:"Point",coordinates:[54.301413763,32.564799586]},properties:{ADM0_NAME:"Iran (Islamic Republic of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:60500,cum_clin:null,cum_susp:null,cum_death:3739,EPIWeek:15,EPIYear:2020,Comment:null,ID:161881,GUID:"2eea3a5c-8a36-4a18-a7ab-1b927a092a60",CENTER_LON:54.30141376,CENTER_LAT:32.56479959,ADM0_VIZ_NAME:"Iran (Islamic Republic of)",Short_Name_ZH:"伊朗(伊斯兰共和国)",Short_Name_FR:"Iran (République islamique d')",Short_Name_ES:"Irán (República Islámica del)",Short_Name_RU:"Иран (Исламская Республика)",Short_Name_AR:"إيران (جمهورية - الإسلامية)"}},{type:"Feature",id:161882,geometry:{type:"Point",coordinates:[69.3858188080001,29.966788981]},properties:{ADM0_NAME:"Pakistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3424,cum_clin:null,cum_susp:null,cum_death:50,EPIWeek:15,EPIYear:2020,Comment:null,ID:161882,GUID:"30ee6f01-1785-4ecb-b194-ba3becf5fd33",CENTER_LON:69.38581881,CENTER_LAT:29.96678898,ADM0_VIZ_NAME:"Pakistan",Short_Name_ZH:"巴基斯坦",Short_Name_FR:"Pakistan",Short_Name_ES:"Pakistán",Short_Name_RU:"Пакистан",Short_Name_AR:"باكستان"}},{type:"Feature",id:161883,geometry:{type:"Point",coordinates:[44.5704496550001,24.0808819160001]},properties:{ADM0_NAME:"Saudi Arabia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2523,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161883,GUID:"fa5a7f77-0dca-4f91-9571-3b8a44607f74",CENTER_LON:44.57044965,CENTER_LAT:24.08088192,ADM0_VIZ_NAME:"Saudi Arabia",Short_Name_ZH:"沙特阿拉伯",Short_Name_FR:"Arabie saoudite",Short_Name_ES:"Arabia Saudita",Short_Name_RU:"Саудовская Аравия",Short_Name_AR:"المملكة العربية السعودية"}},{type:"Feature",id:161884,geometry:{type:"Point",coordinates:[54.3321987830001,23.912672544]},properties:{ADM0_NAME:"United Arab Emirates",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2076,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:161884,GUID:"549ed949-4c36-4ab0-b37c-ec9f84ee8e14",CENTER_LON:54.33219878,CENTER_LAT:23.91267254,ADM0_VIZ_NAME:"United Arab Emirates",Short_Name_ZH:"阿拉伯联合酋长国",Short_Name_FR:"Émirats arabes unis",Short_Name_ES:"Emiratos Árabes Unidos",Short_Name_RU:"Объединенные Арабские Эмираты",Short_Name_AR:"الإمارات العربية المتحدة"}},{type:"Feature",id:161885,geometry:{type:"Point",coordinates:[51.1912008290001,25.3158099720001]},properties:{ADM0_NAME:"Qatar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1604,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161885,GUID:"d5c3fdc5-6328-4dc7-a12c-27f168944d11",CENTER_LON:51.19120083,CENTER_LAT:25.31580997,ADM0_VIZ_NAME:"Qatar",Short_Name_ZH:"卡塔尔",Short_Name_FR:"Qatar",Short_Name_ES:"Qatar",Short_Name_RU:"Катар",Short_Name_AR:"قطر"}},{type:"Feature",id:161886,geometry:{type:"Point",coordinates:[29.7821070850001,26.5565645950001]},properties:{ADM0_NAME:"Egypt",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1173,cum_clin:null,cum_susp:null,cum_death:78,EPIWeek:15,EPIYear:2020,Comment:null,ID:161886,GUID:"598e205c-5683-49e0-b61e-4b279e6c2082",CENTER_LON:29.78210708,CENTER_LAT:26.5565646,ADM0_VIZ_NAME:"Egypt",Short_Name_ZH:"埃及",Short_Name_FR:"Égypte",Short_Name_ES:"Egipto",Short_Name_RU:"Египет",Short_Name_AR:"مصر"}},{type:"Feature",id:161887,geometry:{type:"Point",coordinates:[-6.31780294899994,31.8835569710001]},properties:{ADM0_NAME:"Morocco",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1113,cum_clin:null,cum_susp:null,cum_death:71,EPIWeek:15,EPIYear:2020,Comment:null,ID:161887,GUID:"8b881b86-2b79-4d8d-992d-01d939e1cdb9",CENTER_LON:-6.31780295,CENTER_LAT:31.88355697,ADM0_VIZ_NAME:"Morocco",Short_Name_ZH:"摩洛哥",Short_Name_FR:"Maroc",Short_Name_ES:"Marruecos",Short_Name_RU:"Марокко",Short_Name_AR:"المغرب"}},{type:"Feature",id:161888,geometry:{type:"Point",coordinates:[43.7722455160001,33.048006538]},properties:{ADM0_NAME:"Iraq",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1031,cum_clin:null,cum_susp:null,cum_death:64,EPIWeek:15,EPIYear:2020,Comment:null,ID:161888,GUID:"1ffa0200-4cdb-47df-ba42-2e687224b89d",CENTER_LON:43.77224552,CENTER_LAT:33.04800654,ADM0_VIZ_NAME:"Iraq",Short_Name_ZH:"伊拉克",Short_Name_FR:"Iraq",Short_Name_ES:"Iraq",Short_Name_RU:"Ирак",Short_Name_AR:"العراق"}},{type:"Feature",id:161889,geometry:{type:"Point",coordinates:[50.5624891480001,26.0194739230001]},properties:{ADM0_NAME:"Bahrain",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:723,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161889,GUID:"9c36e72c-28fe-463f-8d8a-43ec9be45bc6",CENTER_LON:50.56248915,CENTER_LAT:26.01947392,ADM0_VIZ_NAME:"Bahrain",Short_Name_ZH:"巴林",Short_Name_FR:"Bahreïn",Short_Name_ES:"Bahrein",Short_Name_RU:"Бахрейн",Short_Name_AR:"البحرين"}},{type:"Feature",id:161890,geometry:{type:"Point",coordinates:[47.5935512790001,29.342509057]},properties:{ADM0_NAME:"Kuwait",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:665,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161890,GUID:"3b548ca2-357e-4c78-b4b8-9ed0205e0d29",CENTER_LON:47.59355128,CENTER_LAT:29.34250906,ADM0_VIZ_NAME:"Kuwait",Short_Name_ZH:"科威特",Short_Name_FR:"Koweït",Short_Name_ES:"Kuwait",Short_Name_RU:"Кувейт",Short_Name_AR:"الكويت"}},{type:"Feature",id:161891,geometry:{type:"Point",coordinates:[9.56156142200007,34.1112491690001]},properties:{ADM0_NAME:"Tunisia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:574,cum_clin:null,cum_susp:null,cum_death:22,EPIWeek:15,EPIYear:2020,Comment:null,ID:161891,GUID:"9e2fe46a-7ed9-4eda-9a6d-91dfb3d70d34",CENTER_LON:9.56156142,CENTER_LAT:34.11124917,ADM0_VIZ_NAME:"Tunisia",Short_Name_ZH:"突尼斯",Short_Name_FR:"Tunisie",Short_Name_ES:"Túnez",Short_Name_RU:"Тунис",Short_Name_AR:"تونس"}},{type:"Feature",id:161892,geometry:{type:"Point",coordinates:[35.8880612290001,33.920393044]},properties:{ADM0_NAME:"Lebanon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:541,cum_clin:null,cum_susp:null,cum_death:19,EPIWeek:15,EPIYear:2020,Comment:null,ID:161892,GUID:"3611afe5-e2e8-4576-aa04-e9516c701991",CENTER_LON:35.88806123,CENTER_LAT:33.92039304,ADM0_VIZ_NAME:"Lebanon",Short_Name_ZH:"黎巴嫩",Short_Name_FR:"Liban",Short_Name_ES:"Líbano",Short_Name_RU:"Ливан",Short_Name_AR:"لبنان"}},{type:"Feature",id:161893,geometry:{type:"Point",coordinates:[36.786941142,31.253381786]},properties:{ADM0_NAME:"Jordan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:345,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161893,GUID:"79882e66-3900-4c94-b9e1-fa2de8a2a6f0",CENTER_LON:36.78694114,CENTER_LAT:31.25338179,ADM0_VIZ_NAME:"Jordan",Short_Name_ZH:"约旦",Short_Name_FR:"Jordanie",Short_Name_ES:"Jordania",Short_Name_RU:"Иордания",Short_Name_AR:"الأردن"}},{type:"Feature",id:161894,geometry:{type:"Point",coordinates:[66.0265297700001,33.8389011570001]},properties:{ADM0_NAME:"Afghanistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:337,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161894,GUID:"bf4e1516-20f9-4d0b-afee-15fb1fbbbbbe",CENTER_LON:66.02652977,CENTER_LAT:33.83890116,ADM0_VIZ_NAME:"Afghanistan",Short_Name_ZH:"阿富汗",Short_Name_FR:"Afghanistan",Short_Name_ES:"Afganistán",Short_Name_RU:"Афганистан",Short_Name_AR:"أفغانستان"}},{type:"Feature",id:161895,geometry:{type:"Point",coordinates:[56.1098174690001,20.6020836820001]},properties:{ADM0_NAME:"Oman",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:331,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161895,GUID:"5585e0a1-3071-45dd-9b00-1d4c91cb2c36",CENTER_LON:56.10981747,CENTER_LAT:20.60208368,ADM0_VIZ_NAME:"Oman",Short_Name_ZH:"阿曼",Short_Name_FR:"Oman",Short_Name_ES:"Omán",Short_Name_RU:"Оман",Short_Name_AR:"عمان"}},{type:"Feature",id:161896,geometry:{type:"Point",coordinates:[35.2037687770001,31.9139511390001]},properties:{ADM0_NAME:"occupied Palestinian territory",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:253,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161896,GUID:"34239be2-e939-4309-b18d-36cc81ef3230",CENTER_LON:35.20376878,CENTER_LAT:31.91395114,ADM0_VIZ_NAME:"occupied Palestinian territory",Short_Name_ZH:`巴勒斯坦被占领土\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161897,geometry:{type:"Point",coordinates:[42.5779402960001,11.7498128010001]},properties:{ADM0_NAME:"Djibouti",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:90,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161897,GUID:"01f29008-138c-45c3-a1e0-68200f08e1e9",CENTER_LON:42.5779403,CENTER_LAT:11.7498128,ADM0_VIZ_NAME:"Djibouti",Short_Name_ZH:"吉布提",Short_Name_FR:"Djibouti",Short_Name_ES:"Djibouti",Short_Name_RU:"Джибути",Short_Name_AR:"جيبوتي"}},{type:"Feature",id:161898,geometry:{type:"Point",coordinates:[38.5058474360001,35.0130727170001]},properties:{ADM0_NAME:"Syrian Arab Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161898,GUID:"cc57a348-8512-41f0-a924-29bce5e06948",CENTER_LON:38.50584744,CENTER_LAT:35.01307272,ADM0_VIZ_NAME:"Syrian Arab Republic",Short_Name_ZH:"阿拉伯叙利亚共和国",Short_Name_FR:"République arabe syrienne",Short_Name_ES:"República Árabe Siria",Short_Name_RU:"Сирийская Арабская Республика",Short_Name_AR:"الجمهورية العربية السورية"}},{type:"Feature",id:161899,geometry:{type:"Point",coordinates:[18.0231862690001,27.0440452400001]},properties:{ADM0_NAME:"Libya",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161899,GUID:"767c2628-8079-4eba-8899-55f29cfafb83",CENTER_LON:18.02318627,CENTER_LAT:27.04404524,ADM0_VIZ_NAME:"Libya",Short_Name_ZH:"利比亚",Short_Name_FR:"Libye",Short_Name_ES:"Libia",Short_Name_RU:"Ливия",Short_Name_AR:"ليبيا"}},{type:"Feature",id:161900,geometry:{type:"Point",coordinates:[30.004381349,16.048838211]},properties:{ADM0_NAME:"Sudan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:12,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161900,GUID:"3050873e-f010-4c4f-82d1-541e3c4fd887",CENTER_LON:30.00438135,CENTER_LAT:16.04883821,ADM0_VIZ_NAME:"Sudan",Short_Name_ZH:"苏丹",Short_Name_FR:"Soudan",Short_Name_ES:"Sudán",Short_Name_RU:"Судан",Short_Name_AR:"السودان"}},{type:"Feature",id:161901,geometry:{type:"Point",coordinates:[47.9564849590001,5.73058895600008]},properties:{ADM0_NAME:"Somalia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161901,GUID:"b5ff48b9-7282-445c-8cd2-befce4e0bda7",CENTER_LON:45.86255927,CENTER_LAT:6.0637135,ADM0_VIZ_NAME:"Somalia",Short_Name_ZH:"索马里",Short_Name_FR:"Somalie",Short_Name_ES:"Somalia",Short_Name_RU:"Сомали",Short_Name_AR:"الصومال"}},{type:"Feature",id:161903,geometry:{type:"Point",coordinates:[-101.433248,39.8897640000001]},properties:{ADM0_NAME:"United States of America",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:307318,cum_clin:null,cum_susp:null,cum_death:8358,EPIWeek:15,EPIYear:2020,Comment:null,ID:161903,GUID:"686f0da6-9025-4eb1-8f95-b164936ce382",CENTER_LON:-112.49356447,CENTER_LAT:45.6954816,ADM0_VIZ_NAME:"United States of America",Short_Name_ZH:"美利坚合众国",Short_Name_FR:"États-Unis d'Amérique",Short_Name_ES:"Estados Unidos de América",Short_Name_RU:"Соединенные Штаты Америки",Short_Name_AR:"الولايات المتحدة الأمريكية "}},{type:"Feature",id:161904,geometry:{type:"Point",coordinates:[-101.433248,57.393067]},properties:{ADM0_NAME:"Canada",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:13904,cum_clin:null,cum_susp:null,cum_death:231,EPIWeek:15,EPIYear:2020,Comment:null,ID:161904,GUID:"3c3c3405-35c5-4143-a7ab-738cf519268d",CENTER_LON:-98.26094698,CENTER_LAT:61.3930667,ADM0_VIZ_NAME:"Canada",Short_Name_ZH:"加拿大",Short_Name_FR:"Canada",Short_Name_ES:"Canadá",Short_Name_RU:"Канада",Short_Name_AR:"كندا"}},{type:"Feature",id:161905,geometry:{type:"Point",coordinates:[-53.088754363,-10.772282796]},properties:{ADM0_NAME:"Brazil",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10278,cum_clin:null,cum_susp:null,cum_death:432,EPIWeek:15,EPIYear:2020,Comment:null,ID:161905,GUID:"dbe63621-0172-44aa-a620-596915232432",CENTER_LON:-53.08875436,CENTER_LAT:-10.7722828,ADM0_VIZ_NAME:"Brazil",Short_Name_ZH:"巴西",Short_Name_FR:"Brésil",Short_Name_ES:"Brasil",Short_Name_RU:"Бразилия",Short_Name_AR:"البرازيل"}},{type:"Feature",id:161906,geometry:{type:"Point",coordinates:[-71.380093845,-37.868119222]},properties:{ADM0_NAME:"Chile",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4471,cum_clin:null,cum_susp:null,cum_death:34,EPIWeek:15,EPIYear:2020,Comment:null,ID:161906,GUID:"b359383b-d629-4086-b6b3-2bb5380272dc",CENTER_LON:-71.38009385,CENTER_LAT:-37.86811922,ADM0_VIZ_NAME:"Chile",Short_Name_ZH:"智利",Short_Name_FR:"Chili",Short_Name_ES:"Chile",Short_Name_RU:"Чили",Short_Name_AR:"شيلي"}},{type:"Feature",id:161907,geometry:{type:"Point",coordinates:[-78.780961767,-1.42528336599997]},properties:{ADM0_NAME:"Ecuador",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3465,cum_clin:null,cum_susp:null,cum_death:172,EPIWeek:15,EPIYear:2020,Comment:null,ID:161907,GUID:"41c1d495-2f62-42c7-a9be-16e90c179973",CENTER_LON:-78.78096177,CENTER_LAT:-1.42528337,ADM0_VIZ_NAME:"Ecuador",Short_Name_ZH:"厄瓜多尔",Short_Name_FR:"Équateur",Short_Name_ES:"Ecuador",Short_Name_RU:"Эквадор",Short_Name_AR:"إكوادور"}},{type:"Feature",id:161908,geometry:{type:"Point",coordinates:[-102.534990927,23.950928413]},properties:{ADM0_NAME:"Mexico",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1890,cum_clin:null,cum_susp:null,cum_death:79,EPIWeek:15,EPIYear:2020,Comment:null,ID:161908,GUID:"6c394d8d-8acc-4369-a7ee-c367dc533fdf",CENTER_LON:-102.53499093,CENTER_LAT:23.95092841,ADM0_VIZ_NAME:"Mexico",Short_Name_ZH:"墨西哥",Short_Name_FR:"Mexique",Short_Name_ES:"México",Short_Name_RU:"Мексика",Short_Name_AR:"المكسيك"}},{type:"Feature",id:161909,geometry:{type:"Point",coordinates:[-80.1090688369999,8.50544318000004]},properties:{ADM0_NAME:"Panama",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1801,cum_clin:null,cum_susp:null,cum_death:46,EPIWeek:15,EPIYear:2020,Comment:null,ID:161909,GUID:"91321513-fa2a-4cf9-a076-9b4e7d336306",CENTER_LON:-80.10906884,CENTER_LAT:8.50544318,ADM0_VIZ_NAME:"Panama",Short_Name_ZH:"巴拿马",Short_Name_FR:"Panama",Short_Name_ES:"Panamá",Short_Name_RU:"Панама",Short_Name_AR:"بنما"}},{type:"Feature",id:161910,geometry:{type:"Point",coordinates:[-74.375406681,-9.16377132599996]},properties:{ADM0_NAME:"Peru",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1746,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161910,GUID:"aec1089a-a796-4ccb-bba0-bffde1eda7ee",CENTER_LON:-74.37540668,CENTER_LAT:-9.16377133,ADM0_VIZ_NAME:"Peru",Short_Name_ZH:"秘鲁",Short_Name_FR:"Pérou",Short_Name_ES:"Perú",Short_Name_RU:"Перу",Short_Name_AR:"بيرو"}},{type:"Feature",id:161911,geometry:{type:"Point",coordinates:[-70.485434472,18.8930938570001]},properties:{ADM0_NAME:"Dominican Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1488,cum_clin:null,cum_susp:null,cum_death:68,EPIWeek:15,EPIYear:2020,Comment:null,ID:161911,GUID:"29bca7cc-63a9-4125-aba4-d9d7ffaec4f8",CENTER_LON:-70.48543447,CENTER_LAT:18.89309386,ADM0_VIZ_NAME:"Dominican Republic",Short_Name_ZH:"多米尼加 ",Short_Name_FR:"République dominicaine",Short_Name_ES:"República Dominicana",Short_Name_RU:"Доминиканская Республика",Short_Name_AR:"الجمهورية الدومينيكية"}},{type:"Feature",id:161912,geometry:{type:"Point",coordinates:[-65.167484744,-35.376672529]},properties:{ADM0_NAME:"Argentina",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1451,cum_clin:null,cum_susp:null,cum_death:44,EPIWeek:15,EPIYear:2020,Comment:null,ID:161912,GUID:"61ea4a3a-5a12-410e-8af0-0d59d828a9dd",CENTER_LON:-65.16748474,CENTER_LAT:-35.37667253,ADM0_VIZ_NAME:"Argentina",Short_Name_ZH:"阿根廷 ",Short_Name_FR:"Argentine",Short_Name_ES:"Argentina",Short_Name_RU:"Аргентина",Short_Name_AR:"الأرجنتين"}},{type:"Feature",id:161913,geometry:{type:"Point",coordinates:[-73.075763345,3.90037400800003]},properties:{ADM0_NAME:"Colombia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1406,cum_clin:null,cum_susp:null,cum_death:32,EPIWeek:15,EPIYear:2020,Comment:null,ID:161913,GUID:"140398f0-b719-4865-aa11-f3dd7a3e137b",CENTER_LON:-73.07576335,CENTER_LAT:3.90037401,ADM0_VIZ_NAME:"Colombia",Short_Name_ZH:"哥伦比亚",Short_Name_FR:"Colombie",Short_Name_ES:"Colombia",Short_Name_RU:"Колумбия",Short_Name_AR:"كولومبيا"}},{type:"Feature",id:161914,geometry:{type:"Point",coordinates:[-66.466127479,18.220930739]},properties:{ADM0_NAME:"Puerto Rico",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:452,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161914,GUID:"d6d8a819-df69-4d1d-9773-210daee6fa94",CENTER_LON:-66.46612748,CENTER_LAT:18.22093074,ADM0_VIZ_NAME:"Puerto Rico",Short_Name_ZH:`波多黎各\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161915,geometry:{type:"Point",coordinates:[-84.189038674,9.97052135000007]},properties:{ADM0_NAME:"Costa Rica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:435,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161915,GUID:"6a30141b-1259-45ef-9303-9b3087a67606",CENTER_LON:-84.18903867,CENTER_LAT:9.97052135,ADM0_VIZ_NAME:"Costa Rica",Short_Name_ZH:"哥斯达黎加",Short_Name_FR:"Costa Rica",Short_Name_ES:"Costa Rica",Short_Name_RU:"Коста-Рика",Short_Name_AR:"كوستاريكا"}},{type:"Feature",id:161916,geometry:{type:"Point",coordinates:[-56.012173616,-32.7995699159999]},properties:{ADM0_NAME:"Uruguay",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:400,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161916,GUID:"6c459166-4e08-4ab6-8ada-b4509dbc38d8",CENTER_LON:-56.01217362,CENTER_LAT:-32.79956992,ADM0_VIZ_NAME:"Uruguay",Short_Name_ZH:"乌拉圭",Short_Name_FR:"Uruguay",Short_Name_ES:"Uruguay",Short_Name_RU:"Уругвай",Short_Name_AR:"أوروغواي"}},{type:"Feature",id:161917,geometry:{type:"Point",coordinates:[-79.0381997969999,21.621420958]},properties:{ADM0_NAME:"Cuba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:320,cum_clin:null,cum_susp:null,cum_death:8,EPIWeek:15,EPIYear:2020,Comment:null,ID:161917,GUID:"57e6170d-3eb1-4cfe-9335-a61c5f2ff534",CENTER_LON:-79.0381998,CENTER_LAT:21.62142096,ADM0_VIZ_NAME:"Cuba",Short_Name_ZH:"古巴",Short_Name_FR:"Cuba",Short_Name_ES:"Cuba",Short_Name_RU:"Куба",Short_Name_AR:"كوبا"}},{type:"Feature",id:161918,geometry:{type:"Point",coordinates:[-86.619658987,14.819348125]},properties:{ADM0_NAME:"Honduras",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:268,cum_clin:null,cum_susp:null,cum_death:22,EPIWeek:15,EPIYear:2020,Comment:null,ID:161918,GUID:"8d033cd7-4b1e-4c4c-87f0-879f94799ca2",CENTER_LON:-86.61965899,CENTER_LAT:14.81934813,ADM0_VIZ_NAME:"Honduras",Short_Name_ZH:"洪都拉斯",Short_Name_FR:"Honduras",Short_Name_ES:"Honduras",Short_Name_RU:"Гондурас",Short_Name_AR:"هندوراس"}},{type:"Feature",id:161919,geometry:{type:"Point",coordinates:[-64.6705484729999,-16.7151098919999]},properties:{ADM0_NAME:"Bolivia (Plurinational State of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:157,cum_clin:null,cum_susp:null,cum_death:10,EPIWeek:15,EPIYear:2020,Comment:null,ID:161919,GUID:"500e72b0-dbef-4fea-b333-bcd8fd377eb9",CENTER_LON:-64.67054847,CENTER_LAT:-16.71510989,ADM0_VIZ_NAME:"Bolivia (Plurinational State of)",Short_Name_ZH:"玻利维亚(多民族国)",Short_Name_FR:"Bolivie (État plurinational de)",Short_Name_ES:"Bolivia (Estado Plurinacional de) ",Short_Name_RU:"Боливия (Многонациональное Государство)",Short_Name_AR:"بوليفيا (دولة - المتعددة القوميات)"}},{type:"Feature",id:161920,geometry:{type:"Point",coordinates:[-61.021473822,14.6527741950001]},properties:{ADM0_NAME:"Martinique",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:145,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161920,GUID:"91fe4643-e623-462d-a9ae-d704c5ea52c1",CENTER_LON:-61.02147382,CENTER_LAT:14.65277419,ADM0_VIZ_NAME:"Martinique",Short_Name_ZH:`马提尼克岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161921,geometry:{type:"Point",coordinates:[-66.1662151469999,7.12493711500002]},properties:{ADM0_NAME:"Venezuela (Bolivarian Republic of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:144,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161921,GUID:"64a39a4b-9812-43f6-861e-d1f31045aced",CENTER_LON:-66.16621515,CENTER_LAT:7.12493711,ADM0_VIZ_NAME:"Venezuela (Bolivarian Republic of)",Short_Name_ZH:"委内瑞拉(玻利瓦尔共和国)",Short_Name_FR:"Venezuela (République bolivarienne du)",Short_Name_ES:"Venezuela (República Bolivariana de)",Short_Name_RU:"Венесуэла (Боливарианская Республика)",Short_Name_AR:"فنزويلا"}},{type:"Feature",id:161922,geometry:{type:"Point",coordinates:[-61.530392424,16.2012635740001]},properties:{ADM0_NAME:"Guadeloupe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:134,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161922,GUID:"899b5328-c489-48c0-b77d-536f26908563",CENTER_LON:-61.53039242,CENTER_LAT:16.20126357,ADM0_VIZ_NAME:"Guadeloupe",Short_Name_ZH:`瓜德罗普岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161923,geometry:{type:"Point",coordinates:[-58.390951781,-23.236128874]},properties:{ADM0_NAME:"Paraguay",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:104,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161923,GUID:"7e78b4f3-d231-444c-a8ab-c82373666a3f",CENTER_LON:-58.39095178,CENTER_LAT:-23.23612887,ADM0_VIZ_NAME:"Paraguay",Short_Name_ZH:"巴拉圭",Short_Name_FR:"Paraguay",Short_Name_ES:"Paraguay",Short_Name_RU:"Парагвай",Short_Name_AR:"باراغواي"}},{type:"Feature",id:161924,geometry:{type:"Point",coordinates:[-61.2526372249999,10.4683642860001]},properties:{ADM0_NAME:"Trinidad and Tobago",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:103,cum_clin:null,cum_susp:null,cum_death:6,EPIWeek:15,EPIYear:2020,Comment:null,ID:161924,GUID:"f78fa74a-5f4e-4e3d-870e-aad4ac4fcc6c",CENTER_LON:-61.25263722,CENTER_LAT:10.46836429,ADM0_VIZ_NAME:"Trinidad and Tobago",Short_Name_ZH:"特立尼达和多巴哥",Short_Name_FR:"Trinité-et-Tobago",Short_Name_ES:"Trinidad y Tabago",Short_Name_RU:"Тринидад и Тобаго ",Short_Name_AR:"ترينيداد وتوباغو"}},{type:"Feature",id:161925,geometry:{type:"Point",coordinates:[-53.2412669619999,3.92438820100006]},properties:{ADM0_NAME:"French Guiana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:66,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161925,GUID:"31ab5f81-ad33-43ce-8491-1fa569d46c57",CENTER_LON:-53.24126696,CENTER_LAT:3.9243882,ADM0_VIZ_NAME:"French Guiana",Short_Name_ZH:`法属圭亚那\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161926,geometry:{type:"Point",coordinates:[-69.977133134,12.5166873650001]},properties:{ADM0_NAME:"Aruba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:64,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161926,GUID:"a5ca2f77-2705-4a8f-baee-ce6df1770224",CENTER_LON:-69.97713313,CENTER_LAT:12.51668736,ADM0_VIZ_NAME:"Aruba",Short_Name_ZH:`阿鲁巴\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161927,geometry:{type:"Point",coordinates:[-88.8656067429999,13.736145316]},properties:{ADM0_NAME:"El Salvador",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:62,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161927,GUID:"fa42353f-8656-4bc4-8ef4-19ba8a07848c",CENTER_LON:-88.86560674,CENTER_LAT:13.73614532,ADM0_VIZ_NAME:"El Salvador",Short_Name_ZH:"萨尔瓦多",Short_Name_FR:"El Salvador",Short_Name_ES:"El Salvador",Short_Name_RU:"Сальвадор",Short_Name_AR:"السلفادور"}},{type:"Feature",id:161928,geometry:{type:"Point",coordinates:[-90.356949304,15.7023025980001]},properties:{ADM0_NAME:"Guatemala",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:61,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161928,GUID:"7c9c0379-abf3-47b2-be97-0f40ded5f732",CENTER_LON:-90.3569493,CENTER_LAT:15.7023026,ADM0_VIZ_NAME:"Guatemala",Short_Name_ZH:"危地马拉",Short_Name_FR:"Guatemala",Short_Name_ES:"Guatemala",Short_Name_RU:"Гватемала",Short_Name_AR:"غواتيمالا"}},{type:"Feature",id:161929,geometry:{type:"Point",coordinates:[-77.3197508119999,18.151330639]},properties:{ADM0_NAME:"Jamaica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:55,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161929,GUID:"203d9c03-8c32-4506-8ae0-abfc176c586f",CENTER_LON:-77.31975081,CENTER_LAT:18.15133064,ADM0_VIZ_NAME:"Jamaica",Short_Name_ZH:"牙买加",Short_Name_FR:"Jamaïque",Short_Name_ES:"Jamaica",Short_Name_RU:"Ямайка",Short_Name_AR:"جامايكا"}},{type:"Feature",id:161930,geometry:{type:"Point",coordinates:[-59.5621269649999,13.1787990180001]},properties:{ADM0_NAME:"Barbados",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:51,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161930,GUID:"7c810b1f-298c-4f95-a84d-ce460e6e593d",CENTER_LON:-59.56212696,CENTER_LAT:13.17879902,ADM0_VIZ_NAME:"Barbados",Short_Name_ZH:"巴巴多斯",Short_Name_FR:"Barbade",Short_Name_ES:"Barbados",Short_Name_RU:"Барбадос",Short_Name_AR:"بربادوس"}},{type:"Feature",id:161931,geometry:{type:"Point",coordinates:[-64.7869272139999,17.967889896]},properties:{ADM0_NAME:"United States Virgin Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:42,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161931,GUID:"446c32b0-82a6-46a6-896d-731014da7e78",CENTER_LON:-64.78692721,CENTER_LAT:17.9678899,ADM0_VIZ_NAME:"United States Virgin Islands",Short_Name_ZH:`美属维尔京群岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161932,geometry:{type:"Point",coordinates:[-64.7563772199999,32.3134949820001]},properties:{ADM0_NAME:"Bermuda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:37,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161932,GUID:"52405a96-0ce0-44d8-9634-3d0585d5e7fa",CENTER_LON:-64.75637722,CENTER_LAT:32.31349498,ADM0_VIZ_NAME:"Bermuda",Short_Name_ZH:`百慕大\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161933,geometry:{type:"Point",coordinates:[-80.82909683,19.4315249970001]},properties:{ADM0_NAME:"Cayman Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:35,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161933,GUID:"5e1bff1e-8435-4bf8-ae33-bea5d4269c84",CENTER_LON:-80.82909683,CENTER_LAT:19.431525,ADM0_VIZ_NAME:"Cayman Islands",Short_Name_ZH:`开曼群岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161934,geometry:{type:"Point",coordinates:[-63.064572292,18.0876049020001]},properties:{ADM0_NAME:"Saint Martin",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:29,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161934,GUID:"17c12ab2-0c7d-412b-b525-3f740cbc3e6c",CENTER_LON:-63.06457229,CENTER_LAT:18.0876049,ADM0_VIZ_NAME:"Saint Martin",Short_Name_ZH:`圣马丁岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161935,geometry:{type:"Point",coordinates:[-76.5004385,24.166682904]},properties:{ADM0_NAME:"Bahamas",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:28,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161935,GUID:"33b1cbcb-fe87-4a85-95cb-6da429e96a44",CENTER_LON:-76.5004385,CENTER_LAT:24.1666829,ADM0_VIZ_NAME:"Bahamas",Short_Name_ZH:"巴哈马",Short_Name_FR:"Bahamas",Short_Name_ES:"Bahamas",Short_Name_RU:"Багамские Острова",Short_Name_AR:"جزر البهاما"}},{type:"Feature",id:161936,geometry:{type:"Point",coordinates:[-58.9741634929999,4.79237827200006]},properties:{ADM0_NAME:"Guyana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:24,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161936,GUID:"b663554a-3aa6-47a6-ba74-453b3ef0dcd1",CENTER_LON:-58.97416349,CENTER_LAT:4.79237827,ADM0_VIZ_NAME:"Guyana",Short_Name_ZH:"圭亚那",Short_Name_FR:"Guyana",Short_Name_ES:"Guyana",Short_Name_RU:"Гайана",Short_Name_AR:"غيانا"}},{type:"Feature",id:161937,geometry:{type:"Point",coordinates:[-63.061943376,18.046835238]},properties:{ADM0_NAME:"Sint Maarten",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:23,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161937,GUID:"7974e7a0-7846-4685-946a-da7f5315015d",CENTER_LON:-63.06194338,CENTER_LAT:18.04683524,ADM0_VIZ_NAME:"Sint Maarten",Short_Name_ZH:`圣马丁\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161938,geometry:{type:"Point",coordinates:[-72.683580138,18.9390013620001]},properties:{ADM0_NAME:"Haiti",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161938,GUID:"45438a36-15d1-416a-b380-1606669af4c7",CENTER_LON:-72.68358014,CENTER_LAT:18.93900136,ADM0_VIZ_NAME:"Haiti",Short_Name_ZH:"海地",Short_Name_FR:"Haïti",Short_Name_ES:"Haití",Short_Name_RU:"Гаити",Short_Name_AR:"هايتي"}},{type:"Feature",id:161939,geometry:{type:"Point",coordinates:[-60.968690838,13.8981151830001]},properties:{ADM0_NAME:"Saint Lucia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161939,GUID:"4f023367-6b34-4f1f-9570-0a3fb3983ca5",CENTER_LON:-60.96869084,CENTER_LAT:13.89811518,ADM0_VIZ_NAME:"Saint Lucia",Short_Name_ZH:"圣卢西亚",Short_Name_FR:"Sainte-Lucie",Short_Name_ES:"Santa Lucía",Short_Name_RU:"Сент-Люсия",Short_Name_AR:"سانت لوسيا"}},{type:"Feature",id:161940,geometry:{type:"Point",coordinates:[-61.650039087,12.162515732]},properties:{ADM0_NAME:"Grenada",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:12,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161940,GUID:"4b754e02-4287-4b40-9237-7e13fb010e05",CENTER_LON:-61.65003909,CENTER_LAT:12.16251573,ADM0_VIZ_NAME:"Grenada",Short_Name_ZH:"格林纳达",Short_Name_FR:"Grenade",Short_Name_ES:"Granada",Short_Name_RU:"Гренада",Short_Name_AR:"غرينادا"}},{type:"Feature",id:161941,geometry:{type:"Point",coordinates:[-68.967490546,12.187797523]},properties:{ADM0_NAME:"Curaçao",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161941,GUID:"9ebcf8c2-5724-465e-93ee-b30f90cc72d2",CENTER_LON:-68.96749055,CENTER_LAT:12.18779752,ADM0_VIZ_NAME:"Curaçao",Short_Name_ZH:`库拉索岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161942,geometry:{type:"Point",coordinates:[-61.355493849,15.4366125190001]},properties:{ADM0_NAME:"Dominica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161942,GUID:"1c6dac95-666f-4994-abdc-7d788e9d27cd",CENTER_LON:-61.35549385,CENTER_LAT:15.43661252,ADM0_VIZ_NAME:"Dominica",Short_Name_ZH:"多米尼克",Short_Name_FR:"Dominique",Short_Name_ES:"Dominica",Short_Name_RU:"Доминика",Short_Name_AR:"دومينيكا"}},{type:"Feature",id:161943,geometry:{type:"Point",coordinates:[-55.9115812429999,4.12671321000005]},properties:{ADM0_NAME:"Suriname",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161943,GUID:"33662fcb-6959-4784-a877-29e3781477c2",CENTER_LON:-55.91158124,CENTER_LAT:4.12671321,ADM0_VIZ_NAME:"Suriname",Short_Name_ZH:"苏里南",Short_Name_FR:"Suriname",Short_Name_ES:"Suriname",Short_Name_RU:"Суринам",Short_Name_AR:"سورينام"}},{type:"Feature",id:161944,geometry:{type:"Point",coordinates:[-62.696173968,17.2658565570001]},properties:{ADM0_NAME:"Saint Kitts and Nevis",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161944,GUID:"f6334680-79c9-450c-bddb-95facb6af2b9",CENTER_LON:-62.69617397,CENTER_LAT:17.26585656,ADM0_VIZ_NAME:"Saint Kitts and Nevis",Short_Name_ZH:"圣基茨和尼维斯",Short_Name_FR:"Saint-Kitts-et-Nevis",Short_Name_ES:"Saint Kitts y Nevis",Short_Name_RU:"Сент-Китс и Невис",Short_Name_AR:"سانت كيتس ونيفس"}},{type:"Feature",id:161945,geometry:{type:"Point",coordinates:[-61.791127591,17.280137]},properties:{ADM0_NAME:"Antigua and Barbuda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161945,GUID:"2debcae0-be57-4212-8b92-8a0be7da51a4",CENTER_LON:-61.79112759,CENTER_LAT:17.280137,ADM0_VIZ_NAME:"Antigua and Barbuda",Short_Name_ZH:"安提瓜和巴布达",Short_Name_FR:"Antigua-et-Barbuda",Short_Name_ES:"Antigua y Barbuda",Short_Name_RU:"Антигуа и Барбуда",Short_Name_AR:"أنتيغوا وبربودا"}},{type:"Feature",id:161946,geometry:{type:"Point",coordinates:[-62.186921449,16.7357596900001]},properties:{ADM0_NAME:"Montserrat",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161946,GUID:"9a351f16-f468-4e6a-925e-03db8fbd4ba7",CENTER_LON:-62.18692145,CENTER_LAT:16.73575969,ADM0_VIZ_NAME:"Montserrat",Short_Name_ZH:`蒙特塞拉特岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161947,geometry:null,properties:{ADM0_NAME:"Saint Bathélemy",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161947,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:null,Short_Name_ZH:null,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161948,geometry:{type:"Point",coordinates:[-88.682785445,17.218528292]},properties:{ADM0_NAME:"Belize",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161948,GUID:"a4d24382-fdc3-4d00-9100-b548a6242d22",CENTER_LON:-88.68278545,CENTER_LAT:17.21852829,ADM0_VIZ_NAME:"Belize",Short_Name_ZH:"伯利兹",Short_Name_FR:"Belize",Short_Name_ES:"Belice",Short_Name_RU:"Белиз",Short_Name_AR:"بليز"}},{type:"Feature",id:161949,geometry:{type:"Point",coordinates:[-85.033750249,12.8400697610001]},properties:{ADM0_NAME:"Nicaragua",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161949,GUID:"85203b89-a328-4d85-b6e4-c9596a5c5a6f",CENTER_LON:-85.03375025,CENTER_LAT:12.84006976,ADM0_VIZ_NAME:"Nicaragua",Short_Name_ZH:"尼加拉瓜",Short_Name_FR:"Nicaragua",Short_Name_ES:"Nicaragua",Short_Name_RU:"Никарагуа",Short_Name_AR:"نيكاراغوا"}},{type:"Feature",id:161950,geometry:{type:"Point",coordinates:[-71.882079172,21.8086929190001]},properties:{ADM0_NAME:"Turks and Caicos Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161950,GUID:"370668bf-3302-4cb1-928d-261a3fdd09ee",CENTER_LON:-71.88207917,CENTER_LAT:21.80869292,ADM0_VIZ_NAME:"Turks and Caicos Islands",Short_Name_ZH:`特克斯和凯科斯群岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161951,geometry:{type:"Point",coordinates:[-63.057956094,18.2242329370001]},properties:{ADM0_NAME:"Anguilla",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161951,GUID:"a4e72e84-00bb-4ad5-890e-a9e6734a28ee",CENTER_LON:-63.05795609,CENTER_LAT:18.22423294,ADM0_VIZ_NAME:"Anguilla",Short_Name_ZH:`安圭拉\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161952,geometry:{type:"Point",coordinates:[-64.481892015,18.5099570350001]},properties:{ADM0_NAME:"British Virgin Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161952,GUID:"81eb8a93-1c6f-46a7-8927-543258b1b974",CENTER_LON:-64.48189201,CENTER_LAT:18.50995704,ADM0_VIZ_NAME:"British Virgin Islands",Short_Name_ZH:`英属维尔京群岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161953,geometry:{type:"Point",coordinates:[-61.2075300889999,13.2020546800001]},properties:{ADM0_NAME:"Saint Vincent and the Grenadines",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161953,GUID:"e0de017e-24ec-454f-aee3-57443de5b7d2",CENTER_LON:-61.20753009,CENTER_LAT:13.20205468,ADM0_VIZ_NAME:"Saint Vincent and the Grenadines",Short_Name_ZH:"圣文森特和格林纳丁斯",Short_Name_FR:"Saint-Vincent-et-les Grenadines",Short_Name_ES:"San Vicente y las Granadinas",Short_Name_RU:"Сент-Винсент и Гренадины",Short_Name_AR:"سانت فنسنت وجزر غرينادين"}},{type:"Feature",id:161954,geometry:{type:"Point",coordinates:[-67.6837091749999,12.801902598]},properties:{ADM0_NAME:"Bonaire, Sint Eustatius and Saba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161954,GUID:"03d049e6-6b6d-40e8-8be7-c2d0bf288b51",CENTER_LON:-67.68370917,CENTER_LAT:12.8019026,ADM0_VIZ_NAME:"Bonaire, Sint Eustatius and Saba",Short_Name_ZH:`博内尔、圣尤斯特歇斯和萨巴\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161955,geometry:{type:"Point",coordinates:[-59.3723460369999,-51.739824397]},properties:{ADM0_NAME:"Falkland Islands (Malvinas)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161955,GUID:"769ffe65-df8d-4c93-aae9-abb20ae84439",CENTER_LON:-59.37234604,CENTER_LAT:-51.7398244,ADM0_VIZ_NAME:"Falkland Islands (Malvinas)",Short_Name_ZH:`福克兰群岛(马尔维纳斯群岛)\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161956,geometry:{type:"Point",coordinates:[25.0887119870001,-28.993213517]},properties:{ADM0_NAME:"South Africa",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1655,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:161956,GUID:"36a8fa2c-5b69-47e3-bac8-dc657e44de43",CENTER_LON:25.08871199,CENTER_LAT:-28.99321352,ADM0_VIZ_NAME:"South Africa",Short_Name_ZH:"南非",Short_Name_FR:"Afrique du Sud",Short_Name_ES:"Sudáfrica",Short_Name_RU:"Южная Африка",Short_Name_AR:"جنوب أفريقيا"}},{type:"Feature",id:161957,geometry:{type:"Point",coordinates:[2.63236594700004,28.1633574140001]},properties:{ADM0_NAME:"Algeria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1251,cum_clin:null,cum_susp:null,cum_death:130,EPIWeek:15,EPIYear:2020,Comment:null,ID:161957,GUID:"74e60ac9-fe75-4273-9483-536bb1dd9f64",CENTER_LON:2.63236595,CENTER_LAT:28.16335741,ADM0_VIZ_NAME:"Algeria",Short_Name_ZH:"阿尔及利亚",Short_Name_FR:"Algérie",Short_Name_ES:"Argelia",Short_Name_RU:"Алжир",Short_Name_AR:"الجزائر"}},{type:"Feature",id:161958,geometry:{type:"Point",coordinates:[12.7432535040001,5.68580436000002]},properties:{ADM0_NAME:"Cameroon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:555,cum_clin:null,cum_susp:null,cum_death:9,EPIWeek:15,EPIYear:2020,Comment:null,ID:161958,GUID:"5cdb6bf4-89ce-457e-9c53-fb9142d71ba0",CENTER_LON:12.7432535,CENTER_LAT:5.68580436,ADM0_VIZ_NAME:"Cameroon",Short_Name_ZH:"喀麦隆",Short_Name_FR:"Cameroun",Short_Name_ES:"Camerún",Short_Name_RU:"Камерун",Short_Name_AR:"الكاميرون"}},{type:"Feature",id:161959,geometry:{type:"Point",coordinates:[-1.73983521099996,12.277937148]},properties:{ADM0_NAME:"Burkina Faso",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:345,cum_clin:null,cum_susp:null,cum_death:17,EPIWeek:15,EPIYear:2020,Comment:null,ID:161959,GUID:"9612ac85-d7cd-4b88-b2b9-c7b6db8ab6de",CENTER_LON:-1.73983521,CENTER_LAT:12.27793715,ADM0_VIZ_NAME:"Burkina Faso",Short_Name_ZH:"布基纳法索",Short_Name_FR:"Burkina Faso",Short_Name_ES:"Burkina Faso",Short_Name_RU:"Буркина-Фасо",Short_Name_AR:"بوركينا فاسو"}},{type:"Feature",id:161960,geometry:{type:"Point",coordinates:[55.538212738,-21.1216294619999]},properties:{ADM0_NAME:"Réunion",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:344,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161960,GUID:"be01a35a-ea31-4453-bb23-5a01330a658f",CENTER_LON:55.53821274,CENTER_LAT:-21.12162946,ADM0_VIZ_NAME:"Réunion",Short_Name_ZH:`留尼汪岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161961,geometry:null,properties:{ADM0_NAME:"Côte d'Ivoire",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:261,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161961,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:null,Short_Name_ZH:null,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161962,geometry:{type:"Point",coordinates:[8.10527725500003,9.59360399500002]},properties:{ADM0_NAME:"Nigeria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:232,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161962,GUID:"3eba1f03-98d4-4335-804e-6c3f9e7d5da1",CENTER_LON:8.10527726,CENTER_LAT:9.59360399,ADM0_VIZ_NAME:"Nigeria",Short_Name_ZH:"尼日利亚",Short_Name_FR:"Nigéria",Short_Name_ES:"Nigeria",Short_Name_RU:"Нигерия",Short_Name_AR:"نيجيريا"}},{type:"Feature",id:161963,geometry:{type:"Point",coordinates:[57.868475995,-20.1700677979999]},properties:{ADM0_NAME:"Mauritius",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:227,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161963,GUID:"2094fffc-8af7-4e5e-8bcd-176608114177",CENTER_LON:57.868476,CENTER_LAT:-20.1700678,ADM0_VIZ_NAME:"Mauritius",Short_Name_ZH:"毛里求斯",Short_Name_FR:"Maurice",Short_Name_ES:"Mauricio",Short_Name_RU:"Маврикий",Short_Name_AR:"موريشيوس"}},{type:"Feature",id:161964,geometry:{type:"Point",coordinates:[-14.4681770789999,14.3669795380001]},properties:{ADM0_NAME:"Senegal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:226,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161964,GUID:"08acdf4e-cc04-46d9-b4c1-75f6ef39b685",CENTER_LON:-14.46817708,CENTER_LAT:14.36697954,ADM0_VIZ_NAME:"Senegal",Short_Name_ZH:"塞内加尔",Short_Name_FR:"Sénégal",Short_Name_ES:"Senegal",Short_Name_RU:"Сенегал",Short_Name_AR:"السنغال"}},{type:"Feature",id:161965,geometry:{type:"Point",coordinates:[-1.20704618899993,7.95964382200003]},properties:{ADM0_NAME:"Ghana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:214,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161965,GUID:"f582ca2f-9b52-4cea-ac99-2ae687930d8e",CENTER_LON:-1.20704619,CENTER_LAT:7.95964382,ADM0_VIZ_NAME:"Ghana",Short_Name_ZH:"加纳",Short_Name_FR:"Ghana",Short_Name_ES:"Ghana",Short_Name_RU:"Гана",Short_Name_AR:"غانا"}},{type:"Feature",id:161966,geometry:{type:"Point",coordinates:[9.39765753500006,17.4263228230001]},properties:{ADM0_NAME:"Niger",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:184,cum_clin:null,cum_susp:null,cum_death:10,EPIWeek:15,EPIYear:2020,Comment:null,ID:161966,GUID:"bb6da46b-2209-45c4-b51a-fb815b957eee",CENTER_LON:9.39765754,CENTER_LAT:17.42632282,ADM0_VIZ_NAME:"Niger",Short_Name_ZH:"尼日尔",Short_Name_FR:"Niger",Short_Name_ES:"Níger",Short_Name_RU:"Нигер",Short_Name_AR:"النيجر"}},{type:"Feature",id:161967,geometry:{type:"Point",coordinates:[23.6544653930001,-2.87619975299998]},properties:{ADM0_NAME:"Democratic Republic of the Congo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:161,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161967,GUID:"39cf5edd-97d7-4d13-a724-a5d098782320",CENTER_LON:23.65431545,CENTER_LAT:-2.87622576,ADM0_VIZ_NAME:"Democratic Republic of the Congo",Short_Name_ZH:"刚果民主共和国",Short_Name_FR:"République démocratique du Congo",Short_Name_ES:"República Democrática del Congo",Short_Name_RU:"Демократическая Республика Конго",Short_Name_AR:"جمهورية الكونغو الديمقراطية "}},{type:"Feature",id:161968,geometry:{type:"Point",coordinates:[45.139261742,-12.8183500609999]},properties:{ADM0_NAME:"Mayotte",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:147,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161968,GUID:"54c780ec-3aa8-442e-987f-6589116a3f57",CENTER_LON:45.13926174,CENTER_LAT:-12.81835006,ADM0_VIZ_NAME:"Mayotte",Short_Name_ZH:`马约特岛\r
- `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161969,geometry:{type:"Point",coordinates:[37.857864416,.529780176000031]},properties:{ADM0_NAME:"Kenya",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:142,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161969,GUID:"2198ecc4-8b3b-4003-9ea9-874348df3de0",CENTER_LON:37.85786442,CENTER_LAT:.52978018,ADM0_VIZ_NAME:"Kenya",Short_Name_ZH:"肯尼亚",Short_Name_FR:"Kenya",Short_Name_ES:"Kenya",Short_Name_RU:"Кения",Short_Name_AR:"كينيا"}},{type:"Feature",id:161970,geometry:{type:"Point",coordinates:[-10.9418254249999,10.438540941]},properties:{ADM0_NAME:"Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:111,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161970,GUID:"3740a605-5160-4f27-bd0d-d8f08466011a",CENTER_LON:-10.94182542,CENTER_LAT:10.43854094,ADM0_VIZ_NAME:"Guinea",Short_Name_ZH:"几内亚",Short_Name_FR:"Guinée",Short_Name_ES:"Guinea",Short_Name_RU:"Гвинея",Short_Name_AR:"غينيا"}},{type:"Feature",id:161971,geometry:{type:"Point",coordinates:[29.917205531,-1.99796797799996]},properties:{ADM0_NAME:"Rwanda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:102,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161971,GUID:"895ea23f-dbcd-467f-bf1e-54aa4d3f2c45",CENTER_LON:29.91720553,CENTER_LAT:-1.99796798,ADM0_VIZ_NAME:"Rwanda",Short_Name_ZH:"卢旺达",Short_Name_FR:"Rwanda",Short_Name_ES:"Rwanda",Short_Name_RU:"Руанда",Short_Name_AR:"رواندا"}},{type:"Feature",id:161972,geometry:{type:"Point",coordinates:[46.7059924820001,-19.373521329]},properties:{ADM0_NAME:"Madagascar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:77,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161972,GUID:"820b442d-b7ed-4c39-ab5a-51b0babbeecf",CENTER_LON:46.70599248,CENTER_LAT:-19.37352133,ADM0_VIZ_NAME:"Madagascar",Short_Name_ZH:"马达加斯加",Short_Name_FR:"Madagascar",Short_Name_ES:"Madagascar",Short_Name_RU:"Мадагаскар",Short_Name_AR:"مدغشقر"}},{type:"Feature",id:161973,geometry:{type:"Point",coordinates:[32.386266425,1.28002949000006]},properties:{ADM0_NAME:"Uganda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:48,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161973,GUID:"1be45e1a-dfcd-4b79-870d-92166cf43e82",CENTER_LON:32.38622999,CENTER_LAT:1.28008463,ADM0_VIZ_NAME:"Uganda",Short_Name_ZH:"乌干达",Short_Name_FR:"Ouganda",Short_Name_ES:"Uganda",Short_Name_RU:"Уганда",Short_Name_AR:"أوغندا"}},{type:"Feature",id:161974,geometry:{type:"Point",coordinates:[15.224282988,-.839998298999944]},properties:{ADM0_NAME:"Congo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:45,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161974,GUID:"a32af07d-abed-484a-b1e9-4b7b0785c3dc",CENTER_LON:15.22427459,CENTER_LAT:-.84006603,ADM0_VIZ_NAME:"Congo",Short_Name_ZH:"刚果",Short_Name_FR:"Congo",Short_Name_ES:"Congo (el)",Short_Name_RU:"Конго",Short_Name_AR:"الكونغو"}},{type:"Feature",id:161975,geometry:{type:"Point",coordinates:[.97584596400003,8.53491037400005]},properties:{ADM0_NAME:"Togo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:44,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161975,GUID:"19b27a13-b30b-4a0a-b085-084cddf5db4b",CENTER_LON:.97584596,CENTER_LAT:8.53491037,ADM0_VIZ_NAME:"Togo",Short_Name_ZH:"多哥",Short_Name_FR:"Togo",Short_Name_ES:"Togo (el)",Short_Name_RU:"Того",Short_Name_AR:"توغو"}},{type:"Feature",id:161976,geometry:{type:"Point",coordinates:[39.6160189350001,8.62613927100006]},properties:{ADM0_NAME:"Ethiopia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:43,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161976,GUID:"e9f231cb-35e1-467b-8b7c-067df2b9b8f5",CENTER_LON:39.61601894,CENTER_LAT:8.62613927,ADM0_VIZ_NAME:"Ethiopia",Short_Name_ZH:"埃塞俄比亚",Short_Name_FR:"Éthiopie",Short_Name_ES:"Etiopía",Short_Name_RU:"Эфиопия",Short_Name_AR:"إثيوبيا"}},{type:"Feature",id:161977,geometry:{type:"Point",coordinates:[-3.52433671799997,17.350369329]},properties:{ADM0_NAME:"Mali",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:39,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161977,GUID:"77642364-9b1b-46c8-aaf4-d9ffd8f62712",CENTER_LON:-3.52433672,CENTER_LAT:17.35036933,ADM0_VIZ_NAME:"Mali",Short_Name_ZH:"马里",Short_Name_FR:"Mali",Short_Name_ES:"Malí",Short_Name_RU:"Мали",Short_Name_AR:"مالي"}},{type:"Feature",id:161978,geometry:{type:"Point",coordinates:[27.7978489400001,-13.453075312]},properties:{ADM0_NAME:"Zambia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:39,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161978,GUID:"125935a9-188d-4b78-86a8-ffbf546077e0",CENTER_LON:27.79788004,CENTER_LAT:-13.45307543,ADM0_VIZ_NAME:"Zambia",Short_Name_ZH:"赞比亚",Short_Name_FR:"Zambie",Short_Name_ES:"Zambia",Short_Name_RU:"Замбия",Short_Name_AR:"زامبيا"}},{type:"Feature",id:161979,geometry:{type:"Point",coordinates:[38.852925552,15.3588410250001]},properties:{ADM0_NAME:"Eritrea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:29,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161979,GUID:"7b9e18fe-ff3c-44de-9b50-b91a8311dddf",CENTER_LON:38.85292555,CENTER_LAT:15.35884102,ADM0_VIZ_NAME:"Eritrea",Short_Name_ZH:"厄立特里亚",Short_Name_FR:"Érythrée",Short_Name_ES:"Eritrea",Short_Name_RU:"Эритрея",Short_Name_AR:"إريتريا"}},{type:"Feature",id:161980,geometry:{type:"Point",coordinates:[2.34326270500003,9.64764996800005]},properties:{ADM0_NAME:"Benin",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:22,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161980,GUID:"27d0edf7-b070-4943-bb9b-dcee5a4d216e",CENTER_LON:2.34326271,CENTER_LAT:9.64764997,ADM0_VIZ_NAME:"Benin",Short_Name_ZH:"贝宁",Short_Name_FR:"Bénin",Short_Name_ES:"Benin",Short_Name_RU:"Бенин",Short_Name_AR:"بنن"}},{type:"Feature",id:161981,geometry:{type:"Point",coordinates:[34.8234035560001,-6.27020075299993]},properties:{ADM0_NAME:"United Republic of Tanzania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:22,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161981,GUID:"a09fda23-b91a-49e4-ba7d-02cb8540b936",CENTER_LON:34.82340201,CENTER_LAT:-6.27019905,ADM0_VIZ_NAME:"United Republic of Tanzania",Short_Name_ZH:"坦桑尼亚联合共和国",Short_Name_FR:"République-Unie de Tanzanie",Short_Name_ES:"República Unida de Tanzanía",Short_Name_RU:"Объединенная Республика Танзания",Short_Name_AR:"جمهورية تنزانيا المتحدة"}},{type:"Feature",id:161982,geometry:{type:"Point",coordinates:[11.797157624,-.590677967999966]},properties:{ADM0_NAME:"Gabon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161982,GUID:"cbf1734a-37f7-4691-bb44-0123114cb49e",CENTER_LON:11.79715762,CENTER_LAT:-.59067797,ADM0_VIZ_NAME:"Gabon",Short_Name_ZH:"加蓬",Short_Name_FR:"Gabon",Short_Name_ES:"Gabón",Short_Name_RU:"Габон",Short_Name_AR:"غابون"}},{type:"Feature",id:161983,geometry:{type:"Point",coordinates:[-14.987484013,12.016198296]},properties:{ADM0_NAME:"Guinea-Bissau",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161983,GUID:"0334af86-91ef-485e-805f-a204ef2764ab",CENTER_LON:-14.98748401,CENTER_LAT:12.0161983,ADM0_VIZ_NAME:"Guinea-Bissau",Short_Name_ZH:"几内亚比绍",Short_Name_FR:"Guinée-Bissau",Short_Name_ES:"Guinea-Bissau",Short_Name_RU:"Гвинея-Бисау",Short_Name_AR:"غينيا - بيساو"}},{type:"Feature",id:161984,geometry:{type:"Point",coordinates:[10.3384962750001,1.71016859900004]},properties:{ADM0_NAME:"Equatorial Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:16,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161984,GUID:"af7e3138-b823-4063-8a50-4408c8527cc9",CENTER_LON:10.33849628,CENTER_LAT:1.7101686,ADM0_VIZ_NAME:"Equatorial Guinea",Short_Name_ZH:"赤道几内亚",Short_Name_FR:"Guinée équatoriale",Short_Name_ES:"Guinea Ecuatorial",Short_Name_RU:"Экваториальная Гвинея",Short_Name_AR:"غينيا الاستوائية"}},{type:"Feature",id:161985,geometry:{type:"Point",coordinates:[17.218450277,-22.133293291]},properties:{ADM0_NAME:"Namibia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:16,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161985,GUID:"60026c01-d644-439e-beda-ec2c280304a7",CENTER_LON:17.21845028,CENTER_LAT:-22.13329329,ADM0_VIZ_NAME:"Namibia",Short_Name_ZH:"纳米比亚",Short_Name_FR:"Namibie",Short_Name_ES:"Namibia",Short_Name_RU:"Намибия",Short_Name_AR:"ناميبيا"}},{type:"Feature",id:161986,geometry:{type:"Point",coordinates:[17.543777778,-12.2957307139999]},properties:{ADM0_NAME:"Angola",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161986,GUID:"2a5aaf40-e526-4778-a1e2-204d26254d21",CENTER_LON:17.54379621,CENTER_LAT:-12.29575318,ADM0_VIZ_NAME:"Angola",Short_Name_ZH:"安哥拉",Short_Name_FR:"Angola",Short_Name_ES:"Angola",Short_Name_RU:"Ангола",Short_Name_AR:"أنغولا"}},{type:"Feature",id:161987,geometry:{type:"Point",coordinates:[-9.30784656399993,6.44811846300007]},properties:{ADM0_NAME:"Liberia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:13,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161987,GUID:"78dbdf5d-226b-4be4-b853-5a58d9da21a6",CENTER_LON:-9.30784656,CENTER_LAT:6.44811846,ADM0_VIZ_NAME:"Liberia",Short_Name_ZH:"利比里亚",Short_Name_FR:"Libéria",Short_Name_ES:"Liberia",Short_Name_RU:"Либерия",Short_Name_AR:"ليبريا"}},{type:"Feature",id:161988,geometry:{type:"Point",coordinates:[35.552260533,-17.260193924]},properties:{ADM0_NAME:"Mozambique",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161988,GUID:"b09a5bf6-36d9-4abd-9d4a-793639ac9457",CENTER_LON:35.55226053,CENTER_LAT:-17.26019392,ADM0_VIZ_NAME:"Mozambique",Short_Name_ZH:"莫桑比克",Short_Name_FR:"Mozambique",Short_Name_ES:"Mozambique",Short_Name_RU:"Мозамбик",Short_Name_AR:"موزامبيق"}},{type:"Feature",id:161989,geometry:{type:"Point",coordinates:[52.2300590070001,-6.39906405099993]},properties:{ADM0_NAME:"Seychelles",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161989,GUID:"17e46d71-5bc2-479c-8d3a-0d966592ac32",CENTER_LON:52.23005901,CENTER_LAT:-6.39906405,ADM0_VIZ_NAME:"Seychelles",Short_Name_ZH:"塞舌尔",Short_Name_FR:"Seychelles",Short_Name_ES:"Seychelles",Short_Name_RU:"Сейшельские Острова",Short_Name_AR:"سيشيل"}},{type:"Feature",id:161990,geometry:{type:"Point",coordinates:[20.482782022,6.57145244100008]},properties:{ADM0_NAME:"Central African Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161990,GUID:"5a37f024-c6e9-444e-832a-57db29915f70",CENTER_LON:20.48278081,CENTER_LAT:6.57145342,ADM0_VIZ_NAME:"Central African Republic",Short_Name_ZH:"中非共和国",Short_Name_FR:"République centrafricaine",Short_Name_ES:"República Centroafricana",Short_Name_RU:"Центральноафриканская Республика",Short_Name_AR:"جمهورية أفريقيا الوسطى"}},{type:"Feature",id:161991,geometry:{type:"Point",coordinates:[18.6646033860001,15.361145703]},properties:{ADM0_NAME:"Chad",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161991,GUID:"aef0e5a2-d0cb-4074-82c0-39f932bd297a",CENTER_LON:18.66460339,CENTER_LAT:15.3611457,ADM0_VIZ_NAME:"Chad",Short_Name_ZH:"乍得",Short_Name_FR:"Tchad",Short_Name_ES:"Chad (el)",Short_Name_RU:"Чад",Short_Name_AR:"تشاد"}},{type:"Feature",id:161992,geometry:{type:"Point",coordinates:[31.497188798,-26.562116744]},properties:{ADM0_NAME:"Eswatini",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161992,GUID:"393f6615-8c13-42ca-9bdd-1594735cbdcf",CENTER_LON:31.4971888,CENTER_LAT:-26.56211674,ADM0_VIZ_NAME:"Eswatini",Short_Name_ZH:"斯威士兰",Short_Name_FR:"Eswatini",Short_Name_ES:"Eswatini",Short_Name_RU:"Эсватини",Short_Name_AR:"إسواتيني"}},{type:"Feature",id:161993,geometry:{type:"Point",coordinates:[29.871759825,-19.0000057739999]},properties:{ADM0_NAME:"Zimbabwe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161993,GUID:"a125fc97-acbd-43f1-add2-1e5d11d2570a",CENTER_LON:29.87175983,CENTER_LAT:-19.00000577,ADM0_VIZ_NAME:"Zimbabwe",Short_Name_ZH:"津巴布韦",Short_Name_FR:"Zimbabwe",Short_Name_ES:"Zimbabwe",Short_Name_RU:"Зимбабве",Short_Name_AR:"زمبابوي"}},{type:"Feature",id:161994,geometry:{type:"Point",coordinates:[-10.3322604099999,20.259903606]},properties:{ADM0_NAME:"Mauritania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161994,GUID:"c2aa3415-b740-47f3-8abc-c5ccbb14d5b0",CENTER_LON:-10.33226041,CENTER_LAT:20.25990361,ADM0_VIZ_NAME:"Mauritania",Short_Name_ZH:"毛里塔尼亚",Short_Name_FR:"Mauritanie",Short_Name_ES:"Mauritania",Short_Name_RU:"Мавритания",Short_Name_AR:"موريتانيا"}},{type:"Feature",id:161995,geometry:{type:"Point",coordinates:[-11.792102896,8.56034092400006]},properties:{ADM0_NAME:"Sierra Leone",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161995,GUID:"e1cd65ea-4261-4a92-a8af-1709465c2cd3",CENTER_LON:-11.7921029,CENTER_LAT:8.56034092,ADM0_VIZ_NAME:"Sierra Leone",Short_Name_ZH:"塞拉利昂",Short_Name_FR:"Sierra Leone",Short_Name_ES:"Sierra Leona",Short_Name_RU:"Сьерра-Леоне",Short_Name_AR:"سيراليون"}},{type:"Feature",id:161996,geometry:{type:"Point",coordinates:[-23.544999999,14.9280000000001]},properties:{ADM0_NAME:"Cabo Verde",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161996,GUID:"b6d5830a-0a76-4c5e-9b69-9bbc651c6fee",CENTER_LON:-23.545,CENTER_LAT:14.928,ADM0_VIZ_NAME:"Cabo Verde",Short_Name_ZH:"佛得角",Short_Name_FR:"Cabo Verde",Short_Name_ES:"Cabo Verde",Short_Name_RU:"Кабо-Верде",Short_Name_AR:"كابو فيردي"}},{type:"Feature",id:161997,geometry:{type:"Point",coordinates:[23.815077504,-22.182042021]},properties:{ADM0_NAME:"Botswana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161997,GUID:"689dde45-4727-4b7b-9e35-5ddcc5ef2791",CENTER_LON:23.8150775,CENTER_LAT:-22.18204202,ADM0_VIZ_NAME:"Botswana",Short_Name_ZH:"博茨瓦纳",Short_Name_FR:"Botswana",Short_Name_ES:"Botswana",Short_Name_RU:"Ботсвана",Short_Name_AR:"بوتسوانا"}},{type:"Feature",id:161998,geometry:{type:"Point",coordinates:[-15.385619595,13.452944399]},properties:{ADM0_NAME:"Gambia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161998,GUID:"71d4622e-3ccd-4650-9e66-ee0421f0f2b3",CENTER_LON:-15.3856196,CENTER_LAT:13.4529444,ADM0_VIZ_NAME:"Gambia",Short_Name_ZH:"冈比亚",Short_Name_FR:"Gambie",Short_Name_ES:"Gambia",Short_Name_RU:"Гамбия",Short_Name_AR:"غامبيا"}},{type:"Feature",id:161999,geometry:{type:"Point",coordinates:[34.3069850380001,-13.21510424]},properties:{ADM0_NAME:"Malawi",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161999,GUID:"895071fb-8240-4b2d-bfac-a51f8243d620",CENTER_LON:34.30698504,CENTER_LAT:-13.21510424,ADM0_VIZ_NAME:"Malawi",Short_Name_ZH:"马拉维",Short_Name_FR:"Malawi",Short_Name_ES:"Malawi",Short_Name_RU:"Малави",Short_Name_AR:"ملاوي"}},{type:"Feature",id:162e3,geometry:{type:"Point",coordinates:[6.71649314900003,.436446692000061]},properties:{ADM0_NAME:"Sao Tome and Principe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162e3,GUID:"8d36d705-3e3e-412e-a13b-1ee158a07c36",CENTER_LON:6.73729084,CENTER_LAT:.45825363,ADM0_VIZ_NAME:"Sao Tome and Principe",Short_Name_ZH:"圣多美和普林西比",Short_Name_FR:"Sao Tomé-et-Principe",Short_Name_ES:"Santo Tomé y Príncipe",Short_Name_RU:"Сан-Томе и Принсипи",Short_Name_AR:"سان تومي وبرينسيبي"}},{type:"Feature",id:162001,geometry:{type:"Point",coordinates:[29.8868213920001,-3.35629711799993]},properties:{ADM0_NAME:"Burundi",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162001,GUID:"bf20d4f1-d25b-4be3-b8f5-7a2a94a20ecf",CENTER_LON:29.88682139,CENTER_LAT:-3.35629712,ADM0_VIZ_NAME:"Burundi",Short_Name_ZH:"布隆迪",Short_Name_FR:"Burundi",Short_Name_ES:"Burundi",Short_Name_RU:"Бурунди",Short_Name_AR:"بوروندي"}},{type:"Feature",id:162002,geometry:{type:"Point",coordinates:[30.340676547,7.27961187200003]},properties:{ADM0_NAME:"South Sudan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162002,GUID:"322068a7-b312-4393-b5d1-fe2dc7a5c78a",CENTER_LON:30.34067655,CENTER_LAT:7.27961187,ADM0_VIZ_NAME:"South Sudan",Short_Name_ZH:"南苏丹",Short_Name_FR:"Soudan du Sud",Short_Name_ES:" Sudán del Sur ",Short_Name_RU:"Южный Судан",Short_Name_AR:"جنوب السودان"}},{type:"Feature",id:162006,geometry:null,properties:{ADM0_NAME:"International conveyance (Diamond Princess)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:712,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:162006,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:"International conveyance (Diamond Princess)",Short_Name_ZH:"国际交通工具(“钻石公主号”邮轮))",Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}}]},EU={id:"map"},xU={__name:"custom-map",setup(e){let t,r,i,s;return Mv(()=>{t=new _U({id:"map",map:new dO({style:{position:"relative",width:"100%",height:"452px",version:8,sources:{},layers:[]},center:[110.19382669582967,50.258134],pitch:0,zoom:1})});const u=gU,n=vU;r=new jI({}),r.source(u,{transforms:[{type:"hexagon",size:8e5,field:"capacity",method:"sum"}]}).shape("hexagon").color("#ddd").style({coverage:.7,opacity:.8}),t.addLayer(r),i=new wy({autoFit:!0}),i.source(n).shape("circle").size("cum_conf",[0,17]).scale("cum_conf",{type:"quantile"}).color("cum_conf",["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"]).active({color:"#0c2c84"}).style({opacity:.8}),s=new wy({autoFit:!0}),s.source(n).shape("Short_Name_ZH","text").filter("cum_conf",y=>y>2e3).size(12).active(!0).color("#fff").style({opacity:1,strokeOpacity:1,strokeWidth:0}),t.addLayer(i),t.addLayer(s)}),Nv(()=>{var u,n,y,m;(u=r.destroy)==null||u.call(r),(n=s==null?void 0:s.destroy)==null||n.call(s),(y=i==null?void 0:i.destroy)==null||y.call(i),(m=t.destroy)==null||m.call(t)}),(u,n)=>(Ov(),Dv("div",EU))}},LU=Fv(xU,[["__scopeId","data-v-99a4c5a7"]]);export{LU as default};
|