1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495 |
- var bbe=Object.create;var EX=Object.defineProperty;var Tbe=Object.getOwnPropertyDescriptor;var Abe=Object.getOwnPropertyNames;var Cbe=Object.getPrototypeOf,Ebe=Object.prototype.hasOwnProperty;var WI=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Uc=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Sbe=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Abe(t))!Ebe.call(e,o)&&o!==n&&EX(e,o,{get:()=>t[o],enumerable:!(i=Tbe(t,o))||i.enumerable});return e};var or=(e,t,n)=>(n=e!=null?bbe(Cbe(e)):{},Sbe(t||!e||!e.__esModule?EX(n,"default",{value:e,enumerable:!0}):n,e));var jI=Uc((O0t,wX)=>{var Em=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};Em.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};Em.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};Em.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};Em.prototype.random_int31=function(){return this.random_int()>>>1};Em.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};Em.prototype.random=function(){return this.random_int()*(1/4294967296)};Em.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};Em.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};wX.exports=Em});var jK=Uc((Sb,wb)=>{(function(e){var t=typeof Sb=="object"&&Sb&&!Sb.nodeType&&Sb,n=typeof wb=="object"&&wb&&!wb.nodeType&&wb,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,l=38,f=700,d=72,p=128,g="-",m=/^xn--/,x=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=s-a,C=Math.floor,S=String.fromCharCode,w;function D(U){throw new RangeError(T[U])}function O(U,G){for(var k=U.length,Y=[];k--;)Y[k]=G(U[k]);return Y}function R(U,G){var k=U.split("@"),Y="";k.length>1&&(Y=k[0]+"@",U=k[1]),U=U.replace(b,".");var q=U.split("."),Q=O(q,G).join(".");return Y+Q}function N(U){for(var G=[],k=0,Y=U.length,q,Q;k<Y;)q=U.charCodeAt(k++),q>=55296&&q<=56319&&k<Y?(Q=U.charCodeAt(k++),(Q&64512)==56320?G.push(((q&1023)<<10)+(Q&1023)+65536):(G.push(q),k--)):G.push(q);return G}function F(U){return O(U,function(G){var k="";return G>65535&&(G-=65536,k+=S(G>>>10&1023|55296),G=56320|G&1023),k+=S(G),k}).join("")}function _(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:s}function E(U,G){return U+22+75*(U<26)-((G!=0)<<5)}function v(U,G,k){var Y=0;for(U=k?C(U/f):U>>1,U+=C(U/G);U>A*c>>1;Y+=s)U=C(U/A);return C(Y+(A+1)*U/(U+l))}function I(U){var G=[],k=U.length,Y,q=0,Q=p,W=d,K,Z,me,xe,re,ge,ye,Ae,De;for(K=U.lastIndexOf(g),K<0&&(K=0),Z=0;Z<K;++Z)U.charCodeAt(Z)>=128&&D("not-basic"),G.push(U.charCodeAt(Z));for(me=K>0?K+1:0;me<k;){for(xe=q,re=1,ge=s;me>=k&&D("invalid-input"),ye=_(U.charCodeAt(me++)),(ye>=s||ye>C((r-q)/re))&&D("overflow"),q+=ye*re,Ae=ge<=W?a:ge>=W+c?c:ge-W,!(ye<Ae);ge+=s)De=s-Ae,re>C(r/De)&&D("overflow"),re*=De;Y=G.length+1,W=v(q-xe,Y,xe==0),C(q/Y)>r-Q&&D("overflow"),Q+=C(q/Y),q%=Y,G.splice(q++,0,Q)}return F(G)}function M(U){var G,k,Y,q,Q,W,K,Z,me,xe,re,ge=[],ye,Ae,De,Fe;for(U=N(U),ye=U.length,G=p,k=0,Q=d,W=0;W<ye;++W)re=U[W],re<128&&ge.push(S(re));for(Y=q=ge.length,q&&ge.push(g);Y<ye;){for(K=r,W=0;W<ye;++W)re=U[W],re>=G&&re<K&&(K=re);for(Ae=Y+1,K-G>C((r-k)/Ae)&&D("overflow"),k+=(K-G)*Ae,G=K,W=0;W<ye;++W)if(re=U[W],re<G&&++k>r&&D("overflow"),re==G){for(Z=k,me=s;xe=me<=Q?a:me>=Q+c?c:me-Q,!(Z<xe);me+=s)Fe=Z-xe,De=s-xe,ge.push(S(E(xe+Fe%De,0))),Z=C(Fe/De);ge.push(S(E(Z,0))),Q=v(k,Ae,Y==q),k=0,++Y}++k,++G}return ge.join("")}function B(U){return R(U,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function H(U){return R(U,function(G){return x.test(G)?"xn--"+M(G):G})}if(o={version:"1.3.2",ucs2:{decode:N,encode:F},decode:I,encode:M,toASCII:H,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(wb.exports==t)n.exports=o;else for(w in o)o.hasOwnProperty(w)&&(t[w]=o[w]);else e.punycode=o})(Sb)});var YK=Uc((qK,AP)=>{
- (function(e,t){"use strict";typeof AP=="object"&&AP.exports?AP.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(qK,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var l;for(l=0;l<a&&s[l]!=="";l++);if(l<c)for(s.splice(l,1,"0000");s.length<c;)s.splice(l,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,m=0,x=0,b=-1,T=!1;for(d=0;d<c;d++)T?s[d]==="0"?x+=1:(T=!1,x>m&&(g=b,m=x)):s[d]==="0"&&(T=!0,b=d,x=1);x>m&&(g=b,m=x),m>1&&s.splice(g,m,""),a=s.length;var A="";for(s[0]===""&&(A=":"),d=0;d<a&&(A+=s[d],d!==a-1);d++)A+=":";return s[a-1]===""&&(A+=":"),A}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var KK=Uc((XK,CP)=>{
- (function(e,t){"use strict";typeof CP=="object"&&CP.exports?CP.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(XK,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var Sl=Uc((ZK,EP)=>{
- (function(e,t){"use strict";typeof EP=="object"&&EP.exports?EP.exports=t(jK(),YK(),KK()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(ZK,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(E,v){var I=arguments.length>=1,M=arguments.length>=2;if(!(this instanceof r))return I?M?new r(E,v):new r(E):new r;if(E===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?E=location.href+"":E=""}if(E===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(E),v!==void 0?this.absoluteTo(v):this}function s(E){return/^[0-9]+$/.test(E)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function l(E){return E.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(E){return E===void 0?"Undefined":String(Object.prototype.toString.call(E)).slice(8,-1)}function d(E){return f(E)==="Array"}function p(E,v){var I={},M,B;if(f(v)==="RegExp")I=null;else if(d(v))for(M=0,B=v.length;M<B;M++)I[v[M]]=!0;else I[v]=!0;for(M=0,B=E.length;M<B;M++){var H=I&&I[E[M]]!==void 0||!I&&v.test(E[M]);H&&(E.splice(M,1),B--,M--)}return E}function g(E,v){var I,M;if(d(v)){for(I=0,M=v.length;I<M;I++)if(!g(E,v[I]))return!1;return!0}var B=f(v);for(I=0,M=E.length;I<M;I++)if(B==="RegExp"){if(typeof E[I]=="string"&&E[I].match(v))return!0}else if(E[I]===v)return!0;return!1}function m(E,v){if(!d(E)||!d(v)||E.length!==v.length)return!1;E.sort(),v.sort();for(var I=0,M=E.length;I<M;I++)if(E[I]!==v[I])return!1;return!0}function x(E){var v=/^\/+|\/+$/g;return E.replace(v,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(E){if(!(!E||!E.nodeName)){var v=E.nodeName.toLowerCase();if(!(v==="input"&&E.type!=="image"))return r.domAttributes[v]}};function b(E){return escape(E)}function T(E){return encodeURIComponent(E).replace(/[!'()*]/g,b).replace(/\*/g,"%2A")}r.encode=T,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=T,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(E,v){var I=r.encode(E+"");return v===void 0&&(v=r.escapeQuerySpace),v?I.replace(/%20/g,"+"):I},r.decodeQuery=function(E,v){E+="",v===void 0&&(v=r.escapeQuerySpace);try{return r.decode(v?E.replace(/\+/g,"%20"):E)}catch{return E}};var A={encode:"encode",decode:"decode"},C,S=function(E,v){return function(I){try{return r[v](I+"").replace(r.characters[E][v].expression,function(M){return r.characters[E][v].map[M]})}catch{return I}}};for(C in A)r[C+"PathSegment"]=S("pathname",A[C]),r[C+"UrnPathSegment"]=S("urnpath",A[C]);var w=function(E,v,I){return function(M){var B;I?B=function(k){return r[v](r[I](k))}:B=r[v];for(var H=(M+"").split(E),U=0,G=H.length;U<G;U++)H[U]=B(H[U]);return H.join(E)}};r.decodePath=w("/","decodePathSegment"),r.decodeUrnPath=w(":","decodeUrnPathSegment"),r.recodePath=w("/","encodePathSegment","decode"),r.recodeUrnPath=w(":","encodeUrnPathSegment","decode"),r.encodeReserved=S("reserved","encode"),r.parse=function(E,v){var I;return v||(v={preventInvalidHostname:r.preventInvalidHostname}),E=E.replace(r.leading_whitespace_expression,""),E=E.replace(r.ascii_tab_whitespace,""),I=E.indexOf("#"),I>-1&&(v.fragment=E.substring(I+1)||null,E=E.substring(0,I)),I=E.indexOf("?"),I>-1&&(v.query=E.substring(I+1)||null,E=E.substring(0,I)),E=E.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),E=E.replace(/^[/\\]{2,}/i,"//"),E.substring(0,2)==="//"?(v.protocol=null,E=E.substring(2),E=r.parseAuthority(E,v)):(I=E.indexOf(":"),I>-1&&(v.protocol=E.substring(0,I)||null,v.protocol&&!v.protocol.match(r.protocol_expression)?v.protocol=void 0:E.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(E=E.substring(I+3),E=r.parseAuthority(E,v)):(E=E.substring(I+1),v.urn=!0))),v.path=E,v},r.parseHost=function(E,v){E||(E=""),E=E.replace(/\\/g,"/");var I=E.indexOf("/"),M,B;if(I===-1&&(I=E.length),E.charAt(0)==="[")M=E.indexOf("]"),v.hostname=E.substring(1,M)||null,v.port=E.substring(M+2,I)||null,v.port==="/"&&(v.port=null);else{var H=E.indexOf(":"),U=E.indexOf("/"),G=E.indexOf(":",H+1);G!==-1&&(U===-1||G<U)?(v.hostname=E.substring(0,I)||null,v.port=null):(B=E.substring(0,I).split(":"),v.hostname=B[0]||null,v.port=B[1]||null)}return v.hostname&&E.substring(I).charAt(0)!=="/"&&(I++,E="/"+E),v.preventInvalidHostname&&r.ensureValidHostname(v.hostname,v.protocol),v.port&&r.ensureValidPort(v.port),E.substring(I)||"/"},r.parseAuthority=function(E,v){return E=r.parseUserinfo(E,v),r.parseHost(E,v)},r.parseUserinfo=function(E,v){var I=E,M=E.indexOf("\\");M!==-1&&(E=E.replace(/\\/g,"/"));var B=E.indexOf("/"),H=E.lastIndexOf("@",B>-1?B:E.length-1),U;return H>-1&&(B===-1||H<B)?(U=E.substring(0,H).split(":"),v.username=U[0]?r.decode(U[0]):null,U.shift(),v.password=U[0]?r.decode(U.join(":")):null,E=I.substring(H+1)):(v.username=null,v.password=null),E},r.parseQuery=function(E,v){if(!E)return{};if(E=E.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!E)return{};for(var I={},M=E.split("&"),B=M.length,H,U,G,k=0;k<B;k++)H=M[k].split("="),U=r.decodeQuery(H.shift(),v),G=H.length?r.decodeQuery(H.join("="),v):null,U!=="__proto__"&&(c.call(I,U)?((typeof I[U]=="string"||I[U]===null)&&(I[U]=[I[U]]),I[U].push(G)):I[U]=G);return I},r.build=function(E){var v="",I=!1;return E.protocol&&(v+=E.protocol+":"),!E.urn&&(v||E.hostname)&&(v+="//",I=!0),v+=r.buildAuthority(E)||"",typeof E.path=="string"&&(E.path.charAt(0)!=="/"&&I&&(v+="/"),v+=E.path),typeof E.query=="string"&&E.query&&(v+="?"+E.query),typeof E.fragment=="string"&&E.fragment&&(v+="#"+E.fragment),v},r.buildHost=function(E){var v="";if(E.hostname)r.ip6_expression.test(E.hostname)?v+="["+E.hostname+"]":v+=E.hostname;else return"";return E.port&&(v+=":"+E.port),v},r.buildAuthority=function(E){return r.buildUserinfo(E)+r.buildHost(E)},r.buildUserinfo=function(E){var v="";return E.username&&(v+=r.encode(E.username)),E.password&&(v+=":"+r.encode(E.password)),v&&(v+="@"),v},r.buildQuery=function(E,v,I){var M="",B,H,U,G;for(H in E)if(H!=="__proto__"&&c.call(E,H))if(d(E[H]))for(B={},U=0,G=E[H].length;U<G;U++)E[H][U]!==void 0&&B[E[H][U]+""]===void 0&&(M+="&"+r.buildQueryParameter(H,E[H][U],I),v!==!0&&(B[E[H][U]+""]=!0));else E[H]!==void 0&&(M+="&"+r.buildQueryParameter(H,E[H],I));return M.substring(1)},r.buildQueryParameter=function(E,v,I){return r.encodeQuery(E,I)+(v!==null?"="+r.encodeQuery(v,I):"")},r.addQuery=function(E,v,I){if(typeof v=="object")for(var M in v)c.call(v,M)&&r.addQuery(E,M,v[M]);else if(typeof v=="string"){if(E[v]===void 0){E[v]=I;return}else typeof E[v]=="string"&&(E[v]=[E[v]]);d(I)||(I=[I]),E[v]=(E[v]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(E,v,I){if(typeof v=="object")for(var M in v)c.call(v,M)&&r.setQuery(E,M,v[M]);else if(typeof v=="string")E[v]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(E,v,I){var M,B,H;if(d(v))for(M=0,B=v.length;M<B;M++)E[v[M]]=void 0;else if(f(v)==="RegExp")for(H in E)v.test(H)&&(E[H]=void 0);else if(typeof v=="object")for(H in v)c.call(v,H)&&r.removeQuery(E,H,v[H]);else if(typeof v=="string")I!==void 0?f(I)==="RegExp"?!d(E[v])&&I.test(E[v])?E[v]=void 0:E[v]=p(E[v],I):E[v]===String(I)&&(!d(I)||I.length===1)?E[v]=void 0:d(E[v])&&(E[v]=p(E[v],I)):E[v]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(E,v,I,M){switch(f(v)){case"String":break;case"RegExp":for(var B in E)if(c.call(E,B)&&v.test(B)&&(I===void 0||r.hasQuery(E,B,I)))return!0;return!1;case"Object":for(var H in v)if(c.call(v,H)&&!r.hasQuery(E,H,v[H]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return v in E;case"Boolean":var U=!!(d(E[v])?E[v].length:E[v]);return I===U;case"Function":return!!I(E[v],v,E);case"Array":if(!d(E[v]))return!1;var G=M?g:m;return G(E[v],I);case"RegExp":return d(E[v])?M?g(E[v],I):!1:!!(E[v]&&E[v].match(I));case"Number":I=String(I);case"String":return d(E[v])?M?g(E[v],I):!1:E[v]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var E=[],v=[],I=0,M=0;M<arguments.length;M++){var B=new r(arguments[M]);E.push(B);for(var H=B.segment(),U=0;U<H.length;U++)typeof H[U]=="string"&&v.push(H[U]),H[U]&&I++}if(!v.length||!I)return new r("");var G=new r("").segment(v);return(E[0].path()===""||E[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(E,v){var I=Math.min(E.length,v.length),M;for(M=0;M<I;M++)if(E.charAt(M)!==v.charAt(M)){M--;break}return M<1?E.charAt(0)===v.charAt(0)&&E.charAt(0)==="/"?"/":"":((E.charAt(M)!=="/"||v.charAt(M)!=="/")&&(M=E.substring(0,M).lastIndexOf("/")),E.substring(0,M+1))},r.withinString=function(E,v,I){I||(I={});var M=I.start||r.findUri.start,B=I.end||r.findUri.end,H=I.trim||r.findUri.trim,U=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(M.lastIndex=0;;){var k=M.exec(E);if(!k)break;var Y=k.index;if(I.ignoreHtml){var q=E.slice(Math.max(Y-3,0),Y);if(q&&G.test(q))continue}for(var Q=Y+E.slice(Y).search(B),W=E.slice(Y,Q),K=-1;;){var Z=U.exec(W);if(!Z)break;var me=Z.index+Z[0].length;K=Math.max(K,me)}if(K>-1?W=W.slice(0,K)+W.slice(K).replace(H,""):W=W.replace(H,""),!(W.length<=k[0].length)&&!(I.ignore&&I.ignore.test(W))){Q=Y+W.length;var xe=v(W,Y,Q,E);if(xe===void 0){M.lastIndex=Q;continue}xe=String(xe),E=E.slice(0,Y)+xe+E.slice(Q),M.lastIndex=Y+xe.length}}return M.lastIndex=0,E},r.ensureValidHostname=function(E,v){var I=!!E,M=!!v,B=!1;if(M&&(B=g(r.hostProtocols,v)),B&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+v);if(E&&E.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(E).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(E){if(E){var v=Number(E);if(!(s(v)&&v>0&&v<65536))throw new TypeError('Port "'+E+'" is not a valid port')}},r.noConflict=function(E){if(E){var v={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(v.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(v.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(v.SecondLevelDomains=i.SecondLevelDomains.noConflict()),v}else i.URI===this&&(i.URI=o);return this},a.build=function(E){return E===!0?this._deferred_build=!0:(E===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(E){return function(v,I){return v===void 0?this._parts[E]||"":(this._parts[E]=v||null,this.build(!I),this)}}function O(E,v){return function(I,M){return I===void 0?this._parts[E]||"":(I!==null&&(I=I+"",I.charAt(0)===v&&(I=I.substring(1))),this._parts[E]=I,this.build(!M),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(E,v){var I=this.query(E,v);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(E,v){var I=this.fragment(E,v);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(E,v){if(E===void 0||E===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return E?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=E?r.recodeUrnPath(E):"":this._parts.path=E?r.recodePath(E):"/",this.build(!v),this},a.path=a.pathname,a.href=function(E,v){var I;if(E===void 0)return this.toString();this._string="",this._parts=r._parts();var M=E instanceof r,B=typeof E=="object"&&(E.hostname||E.path||E.pathname);if(E.nodeName){var H=r.getDomAttribute(E);E=E[H]||"",B=!1}if(!M&&B&&E.pathname!==void 0&&(E=E.toString()),typeof E=="string"||E instanceof String)this._parts=r.parse(String(E),this._parts);else if(M||B){var U=M?E._parts:E;for(I in U)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=U[I]);U.query&&this.query(U.query,!1)}else throw new TypeError("invalid input");return this.build(!v),this},a.is=function(E){var v=!1,I=!1,M=!1,B=!1,H=!1,U=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,I=r.ip4_expression.test(this._parts.hostname),M=r.ip6_expression.test(this._parts.hostname),v=I||M,B=!v,H=B&&n&&n.has(this._parts.hostname),U=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),E.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return H;case"ip":return v;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return M;case"idn":return U;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var R=a.protocol,N=a.port,F=a.hostname;a.protocol=function(E,v){if(E&&(E=E.replace(/:(\/\/)?$/,""),!E.match(r.protocol_expression)))throw new TypeError('Protocol "'+E+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return R.call(this,E,v)},a.scheme=a.protocol,a.port=function(E,v){return this._parts.urn?E===void 0?"":this:(E!==void 0&&(E===0&&(E=null),E&&(E+="",E.charAt(0)===":"&&(E=E.substring(1)),r.ensureValidPort(E))),N.call(this,E,v))},a.hostname=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},M=r.parseHost(E,I);if(M!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');E=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(E,this._parts.protocol)}return F.call(this,E,v)},a.origin=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=this.protocol(),M=this.authority();return M?(I?I+"://":"")+this.authority():""}else{var B=r(E);return this.protocol(B.protocol()).authority(B.authority()).build(!v),this}},a.host=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!v),this},a.authority=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!v),this},a.userinfo=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return E[E.length-1]!=="@"&&(E+="@"),r.parseUserinfo(E,this._parts),this.build(!v),this},a.resource=function(E,v){var I;return E===void 0?this.path()+this.search()+this.hash():(I=r.parse(E),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!v),this)},a.subdomain=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var M=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,M),H=new RegExp("^"+l(B));if(E&&E.charAt(E.length-1)!=="."&&(E+="."),E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return E&&r.ensureValidHostname(E,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(H,E),this.build(!v),this}},a.domain=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(v=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var M=this._parts.hostname.length-this.tld(v).length-1;return M=this._parts.hostname.lastIndexOf(".",M-1)+1,this._parts.hostname.substring(M)||""}else{if(!E)throw new TypeError("cannot set domain empty");if(E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(E,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=E;else{var B=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,E)}return this.build(!v),this}},a.tld=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(v=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),M=this._parts.hostname.substring(I+1);return v!==!0&&n&&n.list[M.toLowerCase()]&&n.get(this._parts.hostname)||M}else{var B;if(E)if(E.match(/[^a-zA-Z0-9-]/))if(n&&n.is(E))B=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E);else throw new TypeError('TLD "'+E+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");B=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E)}else throw new TypeError("cannot set TLD empty");return this.build(!v),this}},a.directory=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,M=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return E?r.decodePath(M):M}else{var B=this._parts.path.length-this.filename().length,H=this._parts.path.substring(0,B),U=new RegExp("^"+l(H));return this.is("relative")||(E||(E="/"),E.charAt(0)!=="/"&&(E="/"+E)),E&&E.charAt(E.length-1)!=="/"&&(E+="/"),E=r.recodePath(E),this._parts.path=this._parts.path.replace(U,E),this.build(!v),this}},a.filename=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(typeof E!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),M=this._parts.path.substring(I+1);return E?r.decodePathSegment(M):M}else{var B=!1;E.charAt(0)==="/"&&(E=E.substring(1)),E.match(/\.?\//)&&(B=!0);var H=new RegExp(l(this.filename())+"$");return E=r.recodePath(E),this._parts.path=this._parts.path.replace(H,E),B?this.normalizePath(v):this.build(!v),this}},a.suffix=function(E,v){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),M=I.lastIndexOf("."),B,H;return M===-1?"":(B=I.substring(M+1),H=/^[a-z0-9%]+$/i.test(B)?B:"",E?r.decodePathSegment(H):H)}else{E.charAt(0)==="."&&(E=E.substring(1));var U=this.suffix(),G;if(U)E?G=new RegExp(l(U)+"$"):G=new RegExp(l("."+U)+"$");else{if(!E)return this;this._parts.path+="."+r.recodePath(E)}return G&&(E=r.recodePath(E),this._parts.path=this._parts.path.replace(G,E)),this.build(!v),this}},a.segment=function(E,v,I){var M=this._parts.urn?":":"/",B=this.path(),H=B.substring(0,1)==="/",U=B.split(M);if(E!==void 0&&typeof E!="number"&&(I=v,v=E,E=void 0),E!==void 0&&typeof E!="number")throw new Error('Bad segment "'+E+'", must be 0-based integer');if(H&&U.shift(),E<0&&(E=Math.max(U.length+E,0)),v===void 0)return E===void 0?U:U[E];if(E===null||U[E]===void 0)if(d(v)){U=[];for(var G=0,k=v.length;G<k;G++)!v[G].length&&(!U.length||!U[U.length-1].length)||(U.length&&!U[U.length-1].length&&U.pop(),U.push(x(v[G])))}else(v||typeof v=="string")&&(v=x(v),U[U.length-1]===""?U[U.length-1]=v:U.push(v));else v?U[E]=x(v):U.splice(E,1);return H&&U.unshift(""),this.path(U.join(M),I)},a.segmentCoded=function(E,v,I){var M,B,H;if(typeof E!="number"&&(I=v,v=E,E=void 0),v===void 0){if(M=this.segment(E,v,I),!d(M))M=M!==void 0?r.decode(M):void 0;else for(B=0,H=M.length;B<H;B++)M[B]=r.decode(M[B]);return M}if(!d(v))v=typeof v=="string"||v instanceof String?r.encode(v):v;else for(B=0,H=v.length;B<H;B++)v[B]=r.encode(v[B]);return this.segment(E,v,I)};var _=a.query;return a.query=function(E,v){if(E===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),M=E.call(this,I);return this._parts.query=r.buildQuery(M||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!v),this}else return E!==void 0&&typeof E!="string"?(this._parts.query=r.buildQuery(E,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!v),this):_.call(this,E,v)},a.setQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="string"||E instanceof String)M[E]=v!==void 0?v:null;else if(typeof E=="object")for(var B in E)c.call(E,B)&&(M[B]=E[B]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=v),this.build(!I),this},a.addQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(M,E,v===void 0?null:v),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=v),this.build(!I),this},a.removeQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(M,E,v),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=v),this.build(!I),this},a.hasQuery=function(E,v,I){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(M,E,v,I)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(E){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!E)),this},a.normalizeHostname=function(E){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!E)),this},a.normalizePort=function(E){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!E)),this},a.normalizePath=function(E){var v=this._parts.path;if(!v)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!E),this;if(this._parts.path==="/")return this;v=r.recodePath(v);var I,M="",B,H;for(v.charAt(0)!=="/"&&(I=!0,v="/"+v),(v.slice(-3)==="/.."||v.slice(-2)==="/.")&&(v+="/"),v=v.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(M=v.substring(1).match(/^(\.\.\/)+/)||"",M&&(M=M[0]));B=v.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){v=v.substring(3);continue}H=v.substring(0,B).lastIndexOf("/"),H===-1&&(H=B),v=v.substring(0,H)+v.substring(B+3)}return I&&this.is("relative")&&(v=M+v.substring(1)),this._parts.path=v,this.build(!E),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(E){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!E)),this},a.normalizeFragment=function(E){return this._parts.fragment||(this._parts.fragment=null,this.build(!E)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var E=r.encode,v=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=E,r.decode=v}return this},a.unicode=function(){var E=r.encode,v=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=E,r.decode=v}return this},a.readable=function(){var E=this.clone();E.username("").password("").normalize();var v="";if(E._parts.protocol&&(v+=E._parts.protocol+"://"),E._parts.hostname&&(E.is("punycode")&&e?(v+=e.toUnicode(E._parts.hostname),E._parts.port&&(v+=":"+E._parts.port)):v+=E.host()),E._parts.hostname&&E._parts.path&&E._parts.path.charAt(0)!=="/"&&(v+="/"),v+=E.path(!0),E._parts.query){for(var I="",M=0,B=E._parts.query.split("&"),H=B.length;M<H;M++){var U=(B[M]||"").split("=");I+="&"+r.decodeQuery(U[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),U[1]!==void 0&&(I+="="+r.decodeQuery(U[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}v+="?"+I.substring(1)}return v+=r.decodeQuery(E.hash(),!0),v},a.absoluteTo=function(E){var v=this.clone(),I=["protocol","username","password","hostname","port"],M,B,H;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E instanceof r||(E=new r(E)),v._parts.protocol||(v._parts.protocol=E._parts.protocol,this._parts.hostname))return v;for(B=0;H=I[B];B++)v._parts[H]=E._parts[H];return v._parts.path?(v._parts.path.substring(-2)===".."&&(v._parts.path+="/"),v.path().charAt(0)!=="/"&&(M=E.directory(),M=M||(E.path().indexOf("/")===0?"/":""),v._parts.path=(M?M+"/":"")+v._parts.path,v.normalizePath())):(v._parts.path=E._parts.path,v._parts.query||(v._parts.query=E._parts.query)),v.build(),v},a.relativeTo=function(E){var v=this.clone().normalize(),I,M,B,H,U;if(v._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E=new r(E).normalize(),I=v._parts,M=E._parts,H=v.path(),U=E.path(),H.charAt(0)!=="/")throw new Error("URI is already relative");if(U.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===M.protocol&&(I.protocol=null),I.username!==M.username||I.password!==M.password||I.protocol!==null||I.username!==null||I.password!==null)return v.build();if(I.hostname===M.hostname&&I.port===M.port)I.hostname=null,I.port=null;else return v.build();if(H===U)return I.path="",v.build();if(B=r.commonPath(H,U),!B)return v.build();var G=M.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(B.length)||"./",v.build()},a.equals=function(E){var v=this.clone(),I=new r(E),M={},B={},H={},U,G,k;if(v.normalize(),I.normalize(),v.toString()===I.toString())return!0;if(U=v.query(),G=I.query(),v.query(""),I.query(""),v.toString()!==I.toString()||U.length!==G.length)return!1;M=r.parseQuery(U,this._parts.escapeQuerySpace),B=r.parseQuery(G,this._parts.escapeQuerySpace);for(k in M)if(c.call(M,k)){if(d(M[k])){if(!m(M[k],B[k]))return!1}else if(M[k]!==B[k])return!1;H[k]=!0}for(k in B)if(c.call(B,k)&&!H[k])return!1;return!0},a.preventInvalidHostname=function(E){return this._parts.preventInvalidHostname=!!E,this},a.duplicateQueryParameters=function(E){return this._parts.duplicateQueryParameters=!!E,this},a.escapeQuerySpace=function(E){return this._parts.escapeQuerySpace=!!E,this},r})});var qJ=Uc((nG,iG)=>{(function(e,t){typeof nG=="object"&&typeof iG<"u"?iG.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(nG,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:l}=typeof Reflect<"u"&&Reflect;r||(r=function(Ue){return Ue}),s||(s=function(Ue){return Ue}),c||(c=function(Ue,st,pt){return Ue.apply(st,pt)}),l||(l=function(Ue,st){return new Ue(...st)});let f=w(Array.prototype.forEach),d=w(Array.prototype.pop),p=w(Array.prototype.push),g=w(String.prototype.toLowerCase),m=w(String.prototype.toString),x=w(String.prototype.match),b=w(String.prototype.replace),T=w(String.prototype.indexOf),A=w(String.prototype.trim),C=w(RegExp.prototype.test),S=D(TypeError);function w(Re){return function(Ue){for(var st=arguments.length,pt=new Array(st>1?st-1:0),nt=1;nt<st;nt++)pt[nt-1]=arguments[nt];return c(Re,Ue,pt)}}function D(Re){return function(){for(var Ue=arguments.length,st=new Array(Ue),pt=0;pt<Ue;pt++)st[pt]=arguments[pt];return l(Re,st)}}function O(Re,Ue){let st=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g;t&&t(Re,null);let pt=Ue.length;for(;pt--;){let nt=Ue[pt];if(typeof nt=="string"){let sn=st(nt);sn!==nt&&(n(Ue)||(Ue[pt]=sn),nt=sn)}Re[nt]=!0}return Re}function R(Re){let Ue=a(null);for(let[st,pt]of e(Re))o(Re,st)!==void 0&&(Ue[st]=pt);return Ue}function N(Re,Ue){for(;Re!==null;){let pt=o(Re,Ue);if(pt){if(pt.get)return w(pt.get);if(typeof pt.value=="function")return w(pt.value)}Re=i(Re)}function st(pt){return console.warn("fallback value for",pt),null}return st}let F=r(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),_=r(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),E=r(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),v=r(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),I=r(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),M=r(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),B=r(["#text"]),H=r(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),U=r(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),G=r(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),k=r(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Y=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),q=s(/<%[\w\W]*|[\w\W]*%>/gm),Q=s(/\${[\w\W]*}/gm),W=s(/^data-[\-\w.\u00B7-\uFFFF]/),K=s(/^aria-[\-\w]+$/),Z=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),me=s(/^(?:\w+script|data):/i),xe=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),re=s(/^html$/i);var ge=Object.freeze({__proto__:null,MUSTACHE_EXPR:Y,ERB_EXPR:q,TMPLIT_EXPR:Q,DATA_ATTR:W,ARIA_ATTR:K,IS_ALLOWED_URI:Z,IS_SCRIPT_OR_DATA:me,ATTR_WHITESPACE:xe,DOCTYPE_NAME:re});let ye=function(){return typeof window>"u"?null:window},Ae=function(Ue,st){if(typeof Ue!="object"||typeof Ue.createPolicy!="function")return null;let pt=null,nt="data-tt-policy-suffix";st&&st.hasAttribute(nt)&&(pt=st.getAttribute(nt));let sn="dompurify"+(pt?"#"+pt:"");try{return Ue.createPolicy(sn,{createHTML(Rn){return Rn},createScriptURL(Rn){return Rn}})}catch{return console.warn("TrustedTypes policy "+sn+" could not be created."),null}};function De(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ye(),Ue=bn=>De(bn);if(Ue.version="3.0.6",Ue.removed=[],!Re||!Re.document||Re.document.nodeType!==9)return Ue.isSupported=!1,Ue;let{document:st}=Re,pt=st,nt=pt.currentScript,{DocumentFragment:sn,HTMLTemplateElement:Rn,Node:Ut,Element:Ft,NodeFilter:he,NamedNodeMap:be=Re.NamedNodeMap||Re.MozNamedAttrMap,HTMLFormElement:jt,DOMParser:lt,trustedTypes:ui}=Re,qi=Ft.prototype,ec=N(qi,"cloneNode"),fs=N(qi,"nextSibling"),ds=N(qi,"childNodes"),Xr=N(qi,"parentNode");if(typeof Rn=="function"){let bn=st.createElement("template");bn.content&&bn.content.ownerDocument&&(st=bn.content.ownerDocument)}let Me,Ke="",{implementation:Ze,createNodeIterator:Xe,createDocumentFragment:ht,getElementsByTagName:Vt}=st,{importNode:xn}=pt,ai={};Ue.isSupported=typeof e=="function"&&typeof Xr=="function"&&Ze&&Ze.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:uo,ERB_EXPR:Kr,TMPLIT_EXPR:Zr,DATA_ATTR:Mo,ARIA_ATTR:Ui,IS_SCRIPT_OR_DATA:$r,ATTR_WHITESPACE:Hn}=ge,{IS_ALLOWED_URI:Mn}=ge,cn=null,mi=O({},[...F,..._,...E,...I,...B]),ci=null,Ds=O({},[...H,...U,...G,...k]),fi=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),wr=null,Zd=null,ir=!0,Cu=!0,Fc=!1,Vy=!0,kr=!1,tc=!1,Eu=!1,xa=!1,$d=!1,fb=!1,VE=!1,sX=!0,aX=!1,fbe="user-content-",k8=!0,zE=!1,db={},hb=null,cX=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),lX=null,uX=O({},["audio","video","img","source","image","track"]),U8=null,fX=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),zI="http://www.w3.org/1998/Math/MathML",HI="http://www.w3.org/2000/svg",Am="http://www.w3.org/1999/xhtml",mb=Am,V8=!1,z8=null,dbe=O({},[zI,HI,Am],m),zy=null,hbe=["application/xhtml+xml","text/html"],mbe="text/html",Is=null,pb=null,pbe=st.createElement("form"),dX=function(we){return we instanceof RegExp||we instanceof Function},H8=function(){let we=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(pb&&pb===we)){if((!we||typeof we!="object")&&(we={}),we=R(we),zy=hbe.indexOf(we.PARSER_MEDIA_TYPE)===-1?zy=mbe:zy=we.PARSER_MEDIA_TYPE,Is=zy==="application/xhtml+xml"?m:g,cn="ALLOWED_TAGS"in we?O({},we.ALLOWED_TAGS,Is):mi,ci="ALLOWED_ATTR"in we?O({},we.ALLOWED_ATTR,Is):Ds,z8="ALLOWED_NAMESPACES"in we?O({},we.ALLOWED_NAMESPACES,m):dbe,U8="ADD_URI_SAFE_ATTR"in we?O(R(fX),we.ADD_URI_SAFE_ATTR,Is):fX,lX="ADD_DATA_URI_TAGS"in we?O(R(uX),we.ADD_DATA_URI_TAGS,Is):uX,hb="FORBID_CONTENTS"in we?O({},we.FORBID_CONTENTS,Is):cX,wr="FORBID_TAGS"in we?O({},we.FORBID_TAGS,Is):{},Zd="FORBID_ATTR"in we?O({},we.FORBID_ATTR,Is):{},db="USE_PROFILES"in we?we.USE_PROFILES:!1,ir=we.ALLOW_ARIA_ATTR!==!1,Cu=we.ALLOW_DATA_ATTR!==!1,Fc=we.ALLOW_UNKNOWN_PROTOCOLS||!1,Vy=we.ALLOW_SELF_CLOSE_IN_ATTR!==!1,kr=we.SAFE_FOR_TEMPLATES||!1,tc=we.WHOLE_DOCUMENT||!1,$d=we.RETURN_DOM||!1,fb=we.RETURN_DOM_FRAGMENT||!1,VE=we.RETURN_TRUSTED_TYPE||!1,xa=we.FORCE_BODY||!1,sX=we.SANITIZE_DOM!==!1,aX=we.SANITIZE_NAMED_PROPS||!1,k8=we.KEEP_CONTENT!==!1,zE=we.IN_PLACE||!1,Mn=we.ALLOWED_URI_REGEXP||Z,mb=we.NAMESPACE||Am,fi=we.CUSTOM_ELEMENT_HANDLING||{},we.CUSTOM_ELEMENT_HANDLING&&dX(we.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(fi.tagNameCheck=we.CUSTOM_ELEMENT_HANDLING.tagNameCheck),we.CUSTOM_ELEMENT_HANDLING&&dX(we.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(fi.attributeNameCheck=we.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),we.CUSTOM_ELEMENT_HANDLING&&typeof we.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(fi.allowCustomizedBuiltInElements=we.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),kr&&(Cu=!1),fb&&($d=!0),db&&(cn=O({},[...B]),ci=[],db.html===!0&&(O(cn,F),O(ci,H)),db.svg===!0&&(O(cn,_),O(ci,U),O(ci,k)),db.svgFilters===!0&&(O(cn,E),O(ci,U),O(ci,k)),db.mathMl===!0&&(O(cn,I),O(ci,G),O(ci,k))),we.ADD_TAGS&&(cn===mi&&(cn=R(cn)),O(cn,we.ADD_TAGS,Is)),we.ADD_ATTR&&(ci===Ds&&(ci=R(ci)),O(ci,we.ADD_ATTR,Is)),we.ADD_URI_SAFE_ATTR&&O(U8,we.ADD_URI_SAFE_ATTR,Is),we.FORBID_CONTENTS&&(hb===cX&&(hb=R(hb)),O(hb,we.FORBID_CONTENTS,Is)),k8&&(cn["#text"]=!0),tc&&O(cn,["html","head","body"]),cn.table&&(O(cn,["tbody"]),delete wr.tbody),we.TRUSTED_TYPES_POLICY){if(typeof we.TRUSTED_TYPES_POLICY.createHTML!="function")throw S('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof we.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw S('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Me=we.TRUSTED_TYPES_POLICY,Ke=Me.createHTML("")}else Me===void 0&&(Me=Ae(ui,nt)),Me!==null&&typeof Ke=="string"&&(Ke=Me.createHTML(""));r&&r(we),pb=we}},hX=O({},["mi","mo","mn","ms","mtext"]),mX=O({},["foreignobject","desc","title","annotation-xml"]),_be=O({},["title","style","font","a","script"]),GI=O({},_);O(GI,E),O(GI,v);let G8=O({},I);O(G8,M);let gbe=function(we){let Et=Xr(we);(!Et||!Et.tagName)&&(Et={namespaceURI:mb,tagName:"template"});let mn=g(we.tagName),Lo=g(Et.tagName);return z8[we.namespaceURI]?we.namespaceURI===HI?Et.namespaceURI===Am?mn==="svg":Et.namespaceURI===zI?mn==="svg"&&(Lo==="annotation-xml"||hX[Lo]):!!GI[mn]:we.namespaceURI===zI?Et.namespaceURI===Am?mn==="math":Et.namespaceURI===HI?mn==="math"&&mX[Lo]:!!G8[mn]:we.namespaceURI===Am?Et.namespaceURI===HI&&!mX[Lo]||Et.namespaceURI===zI&&!hX[Lo]?!1:!G8[mn]&&(_be[mn]||!GI[mn]):!!(zy==="application/xhtml+xml"&&z8[we.namespaceURI]):!1},Hy=function(we){p(Ue.removed,{element:we});try{we.parentNode.removeChild(we)}catch{we.remove()}},W8=function(we,Et){try{p(Ue.removed,{attribute:Et.getAttributeNode(we),from:Et})}catch{p(Ue.removed,{attribute:null,from:Et})}if(Et.removeAttribute(we),we==="is"&&!ci[we])if($d||fb)try{Hy(Et)}catch{}else try{Et.setAttribute(we,"")}catch{}},pX=function(we){let Et=null,mn=null;if(xa)we="<remove></remove>"+we;else{let Ta=x(we,/^[\r\n\t ]+/);mn=Ta&&Ta[0]}zy==="application/xhtml+xml"&&mb===Am&&(we='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+we+"</body></html>");let Lo=Me?Me.createHTML(we):we;if(mb===Am)try{Et=new lt().parseFromString(Lo,zy)}catch{}if(!Et||!Et.documentElement){Et=Ze.createDocument(mb,"template",null);try{Et.documentElement.innerHTML=V8?Ke:Lo}catch{}}let ba=Et.body||Et.documentElement;return we&&mn&&ba.insertBefore(st.createTextNode(mn),ba.childNodes[0]||null),mb===Am?Vt.call(Et,tc?"html":"body")[0]:tc?Et.documentElement:ba},_X=function(we){return Xe.call(we.ownerDocument||we,we,he.SHOW_ELEMENT|he.SHOW_COMMENT|he.SHOW_TEXT,null)},ybe=function(we){return we instanceof jt&&(typeof we.nodeName!="string"||typeof we.textContent!="string"||typeof we.removeChild!="function"||!(we.attributes instanceof be)||typeof we.removeAttribute!="function"||typeof we.setAttribute!="function"||typeof we.namespaceURI!="string"||typeof we.insertBefore!="function"||typeof we.hasChildNodes!="function")},gX=function(we){return typeof Ut=="function"&&we instanceof Ut},Cm=function(we,Et,mn){ai[we]&&f(ai[we],Lo=>{Lo.call(Ue,Et,mn,pb)})},yX=function(we){let Et=null;if(Cm("beforeSanitizeElements",we,null),ybe(we))return Hy(we),!0;let mn=Is(we.nodeName);if(Cm("uponSanitizeElement",we,{tagName:mn,allowedTags:cn}),we.hasChildNodes()&&!gX(we.firstElementChild)&&C(/<[/\w]/g,we.innerHTML)&&C(/<[/\w]/g,we.textContent))return Hy(we),!0;if(!cn[mn]||wr[mn]){if(!wr[mn]&&bX(mn)&&(fi.tagNameCheck instanceof RegExp&&C(fi.tagNameCheck,mn)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(mn)))return!1;if(k8&&!hb[mn]){let Lo=Xr(we)||we.parentNode,ba=ds(we)||we.childNodes;if(ba&&Lo){let Ta=ba.length;for(let Bc=Ta-1;Bc>=0;--Bc)Lo.insertBefore(ec(ba[Bc],!0),fs(we))}}return Hy(we),!0}return we instanceof Ft&&!gbe(we)||(mn==="noscript"||mn==="noembed"||mn==="noframes")&&C(/<\/no(script|embed|frames)/i,we.innerHTML)?(Hy(we),!0):(kr&&we.nodeType===3&&(Et=we.textContent,f([uo,Kr,Zr],Lo=>{Et=b(Et,Lo," ")}),we.textContent!==Et&&(p(Ue.removed,{element:we.cloneNode()}),we.textContent=Et)),Cm("afterSanitizeElements",we,null),!1)},xX=function(we,Et,mn){if(sX&&(Et==="id"||Et==="name")&&(mn in st||mn in pbe))return!1;if(!(Cu&&!Zd[Et]&&C(Mo,Et))){if(!(ir&&C(Ui,Et))){if(!ci[Et]||Zd[Et]){if(!(bX(we)&&(fi.tagNameCheck instanceof RegExp&&C(fi.tagNameCheck,we)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(we))&&(fi.attributeNameCheck instanceof RegExp&&C(fi.attributeNameCheck,Et)||fi.attributeNameCheck instanceof Function&&fi.attributeNameCheck(Et))||Et==="is"&&fi.allowCustomizedBuiltInElements&&(fi.tagNameCheck instanceof RegExp&&C(fi.tagNameCheck,mn)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(mn))))return!1}else if(!U8[Et]){if(!C(Mn,b(mn,Hn,""))){if(!((Et==="src"||Et==="xlink:href"||Et==="href")&&we!=="script"&&T(mn,"data:")===0&&lX[we])){if(!(Fc&&!C($r,b(mn,Hn,"")))){if(mn)return!1}}}}}}return!0},bX=function(we){return we.indexOf("-")>0},TX=function(we){Cm("beforeSanitizeAttributes",we,null);let{attributes:Et}=we;if(!Et)return;let mn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ci},Lo=Et.length;for(;Lo--;){let ba=Et[Lo],{name:Ta,namespaceURI:Bc,value:Gy}=ba,HE=Is(Ta),kc=Ta==="value"?Gy:A(Gy);if(mn.attrName=HE,mn.attrValue=kc,mn.keepAttr=!0,mn.forceKeepAttr=void 0,Cm("uponSanitizeAttribute",we,mn),kc=mn.attrValue,mn.forceKeepAttr||(W8(Ta,we),!mn.keepAttr))continue;if(!Vy&&C(/\/>/i,kc)){W8(Ta,we);continue}kr&&f([uo,Kr,Zr],CX=>{kc=b(kc,CX," ")});let AX=Is(we.nodeName);if(xX(AX,HE,kc)){if(aX&&(HE==="id"||HE==="name")&&(W8(Ta,we),kc=fbe+kc),Me&&typeof ui=="object"&&typeof ui.getAttributeType=="function"&&!Bc)switch(ui.getAttributeType(AX,HE)){case"TrustedHTML":{kc=Me.createHTML(kc);break}case"TrustedScriptURL":{kc=Me.createScriptURL(kc);break}}try{Bc?we.setAttributeNS(Bc,Ta,kc):we.setAttribute(Ta,kc),d(Ue.removed)}catch{}}}Cm("afterSanitizeAttributes",we,null)},xbe=function bn(we){let Et=null,mn=_X(we);for(Cm("beforeSanitizeShadowDOM",we,null);Et=mn.nextNode();)Cm("uponSanitizeShadowNode",Et,null),!yX(Et)&&(Et.content instanceof sn&&bn(Et.content),TX(Et));Cm("afterSanitizeShadowDOM",we,null)};return Ue.sanitize=function(bn){let we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Et=null,mn=null,Lo=null,ba=null;if(V8=!bn,V8&&(bn="<!-->"),typeof bn!="string"&&!gX(bn))if(typeof bn.toString=="function"){if(bn=bn.toString(),typeof bn!="string")throw S("dirty is not a string, aborting")}else throw S("toString is not a function");if(!Ue.isSupported)return bn;if(Eu||H8(we),Ue.removed=[],typeof bn=="string"&&(zE=!1),zE){if(bn.nodeName){let Gy=Is(bn.nodeName);if(!cn[Gy]||wr[Gy])throw S("root node is forbidden and cannot be sanitized in-place")}}else if(bn instanceof Ut)Et=pX("<!---->"),mn=Et.ownerDocument.importNode(bn,!0),mn.nodeType===1&&mn.nodeName==="BODY"||mn.nodeName==="HTML"?Et=mn:Et.appendChild(mn);else{if(!$d&&!kr&&!tc&&bn.indexOf("<")===-1)return Me&&VE?Me.createHTML(bn):bn;if(Et=pX(bn),!Et)return $d?null:VE?Ke:""}Et&&xa&&Hy(Et.firstChild);let Ta=_X(zE?bn:Et);for(;Lo=Ta.nextNode();)yX(Lo)||(Lo.content instanceof sn&&xbe(Lo.content),TX(Lo));if(zE)return bn;if($d){if(fb)for(ba=ht.call(Et.ownerDocument);Et.firstChild;)ba.appendChild(Et.firstChild);else ba=Et;return(ci.shadowroot||ci.shadowrootmode)&&(ba=xn.call(pt,ba,!0)),ba}let Bc=tc?Et.outerHTML:Et.innerHTML;return tc&&cn["!doctype"]&&Et.ownerDocument&&Et.ownerDocument.doctype&&Et.ownerDocument.doctype.name&&C(re,Et.ownerDocument.doctype.name)&&(Bc="<!DOCTYPE "+Et.ownerDocument.doctype.name+`>
- `+Bc),kr&&f([uo,Kr,Zr],Gy=>{Bc=b(Bc,Gy," ")}),Me&&VE?Me.createHTML(Bc):Bc},Ue.setConfig=function(){let bn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};H8(bn),Eu=!0},Ue.clearConfig=function(){pb=null,Eu=!1},Ue.isValidAttribute=function(bn,we,Et){pb||H8({});let mn=Is(bn),Lo=Is(we);return xX(mn,Lo,Et)},Ue.addHook=function(bn,we){typeof we=="function"&&(ai[bn]=ai[bn]||[],p(ai[bn],we))},Ue.removeHook=function(bn){if(ai[bn])return d(ai[bn])},Ue.removeHooks=function(bn){ai[bn]&&(ai[bn]=[])},Ue.removeAllHooks=function(){ai={}},Ue}var Fe=De();return Fe})});var toe=Uc((ipn,eoe)=>{"use strict";eoe.exports=A8e;var Mw=1e20;function A8e(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,l,f,d,p,g,m,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(l=c,c=Array(r*s),m=0,x=Math.floor(l.length/f);m<x;m++)c[m]=l[m*f+o]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var b=Array(r*s),T=Array(r*s),A=Array(a),C=Array(a),S=Array(a+1),w=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?Mw:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?Mw:D===0?0:Math.pow(Math.max(0,D-.5),2)}Qie(b,r,s,A,C,w,S),Qie(T,r,s,A,C,w,S);var O=window.Float32Array?new Float32Array(r*s):new Array(r*s);for(m=0,x=r*s;m<x;m++)O[m]=Math.min(Math.max(1-((b[m]-T[m])/i+n),0),1);return O}function Qie(e,t,n,i,o,r,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(Jie(i,o,r,s,n),c=0;c<n;c++)e[c*t+a]=o[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(Jie(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function Jie(e,t,n,i,o){n[0]=0,i[0]=-Mw,i[1]=+Mw;for(var r=1,s=0;r<o;r++){for(var a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);a<=i[s];)s--,a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);s++,n[s]=r,i[s]=a,i[s+1]=+Mw}for(r=0,s=0;r<o;r++){for(;i[s+1]<r;)s++;t[r]=(r-n[s])*(r-n[s])+e[n[s]]}}});var soe=Uc((bpn,R2)=>{function M8e(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,l=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,A=0,C=1,S=2,w=3,D=4;function O(_,E){return 55296<=_.charCodeAt(E)&&_.charCodeAt(E)<=56319&&56320<=_.charCodeAt(E+1)&&_.charCodeAt(E+1)<=57343}function R(_,E){E===void 0&&(E=0);var v=_.charCodeAt(E);if(55296<=v&&v<=56319&&E<_.length-1){var I=v,M=_.charCodeAt(E+1);return 56320<=M&&M<=57343?(I-55296)*1024+(M-56320)+65536:I}if(56320<=v&&v<=57343&&E>=1){var I=_.charCodeAt(E-1),M=v;return 55296<=I&&I<=56319?(I-55296)*1024+(M-56320)+65536:M}return v}function N(_,E,v){var I=[_].concat(E).concat([v]),M=I[I.length-2],B=v,H=I.lastIndexOf(m);if(H>1&&I.slice(1,H).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return S;var U=I.lastIndexOf(o);if(U>0&&I.slice(1,U).every(function(k){return k==o})&&[p,o].indexOf(M)==-1)return I.filter(function(k){return k==o}).length%2==1?w:D;if(M==e&&B==t)return A;if(M==n||M==e||M==t)return B==m&&E.every(function(k){return k==i})?S:C;if(B==n||B==e||B==t)return C;if(M==s&&(B==s||B==a||B==l||B==f))return A;if((M==l||M==a)&&(B==a||B==c))return A;if((M==f||M==c)&&B==c)return A;if(B==i||B==x)return A;if(B==r)return A;if(M==p)return A;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,T].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(k){return k==i})&&B==m||M==x&&[b,T].indexOf(B)!=-1?A:E.indexOf(o)!=-1?S:M==o&&B==o?A:C}this.nextBreak=function(_,E){if(E===void 0&&(E=0),E<0)return 0;if(E>=_.length-1)return _.length;for(var v=F(R(_,E)),I=[],M=E+1;M<_.length;M++)if(!O(_,M-1)){var B=F(R(_,M));if(N(v,I,B))return M;I.push(B)}return _.length},this.splitGraphemes=function(_){for(var E=[],v=0,I;(I=this.nextBreak(_,v))<_.length;)E.push(_.slice(v,I)),v=I;return v<_.length&&E.push(_.slice(v)),E},this.iterateGraphemes=function(_){var E=0,v={next:function(){var I,M;return(M=this.nextBreak(_,E))<_.length?(I=_.slice(E,M),E=M,{value:I,done:!1}):E<_.length?(I=_.slice(E),E=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(v[Symbol.iterator]=function(){return v}),v},this.countGraphemes=function(_){for(var E=0,v=0,I;(I=this.nextBreak(_,v))<_.length;)v=I,E++;return v<_.length&&E++,E};function F(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?l:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?m:_==8205?x:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?b:128102<=_&&_<=128105?T:d}return this}typeof R2<"u"&&R2.exports&&(R2.exports=M8e)});var Hoe=Uc((rxn,H6)=>{"use strict";H6.exports=Q2;H6.exports.default=Q2;function Q2(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=Uoe(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,l,f,d,p,g;if(i&&(r=B5e(e,t,r,n)),e.length>80*n){a=l=e[0],c=f=e[1];for(var m=n;m<o;m+=n)d=e[m],p=e[m+1],d<a&&(a=d),p<c&&(c=p),d>l&&(l=d),p>f&&(f=p);g=Math.max(l-a,f-c),g=g!==0?32767/g:0}return jw(r,s,n,a,c,g,0),s}function Uoe(e,t,n,i,o){var r,s;if(o===z6(e,t,n,i)>0)for(r=t;r<n;r+=i)s=koe(r,e[r],e[r+1],s);else for(r=n-i;r>=t;r-=i)s=koe(r,e[r],e[r+1],s);return s&&J2(s,s.next)&&(Yw(s),s=s.next),s}function W0(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(J2(n,n.next)||xr(n.prev,n,n.next)===0)){if(Yw(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function jw(e,t,n,i,o,r,s){if(e){!s&&r&&H5e(e,i,o,r);for(var a=e,c,l;e.prev!==e.next;){if(c=e.prev,l=e.next,r?L5e(e,i,o,r):M5e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),Yw(e),e=l.next,a=l.next;continue}if(e=l,e===a){s?s===1?(e=N5e(W0(e),t,n),jw(e,t,n,i,o,r,2)):s===2&&F5e(e,t,n,i,o,r):jw(W0(e),t,n,i,o,r,1);break}}}}function M5e(e){var t=e.prev,n=e,i=e.next;if(xr(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,l=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<l?a:l:c<l?c:l,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>l?a:l:c>l?c:l,m=i.next;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&dA(o,a,r,c,s,l,m.x,m.y)&&xr(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function L5e(e,t,n,i){var o=e.prev,r=e,s=e.next;if(xr(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,l=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<l?a:l:c<l?c:l,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>l?a:l:c>l?c:l,b=f>d?f>p?f:p:d>p?d:p,T=U6(g,m,t,n,i),A=U6(x,b,t,n,i),C=e.prevZ,S=e.nextZ;C&&C.z>=T&&S&&S.z<=A;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&dA(a,f,c,d,l,p,C.x,C.y)&&xr(C.prev,C,C.next)>=0||(C=C.prevZ,S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&dA(a,f,c,d,l,p,S.x,S.y)&&xr(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;C&&C.z>=T;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&dA(a,f,c,d,l,p,C.x,C.y)&&xr(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;S&&S.z<=A;){if(S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&dA(a,f,c,d,l,p,S.x,S.y)&&xr(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function N5e(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!J2(o,r)&&Voe(o,i,i.next,r)&&qw(o,r)&&qw(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),Yw(i),Yw(i.next),i=e=r),i=i.next}while(i!==e);return W0(i)}function F5e(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&j5e(s,a)){var c=zoe(s,a);s=W0(s,s.next),c=W0(c,c.next),jw(s,t,n,i,o,r,0),jw(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function B5e(e,t,n,i){var o=[],r,s,a,c,l;for(r=0,s=t.length;r<s;r++)a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,l=Uoe(e,a,c,i,!1),l===l.next&&(l.steiner=!0),o.push(W5e(l));for(o.sort(k5e),r=0;r<o.length;r++)n=U5e(o[r],n);return n}function k5e(e,t){return e.x-t.x}function U5e(e,t){var n=V5e(e,t);if(!n)return t;var i=zoe(n,e);return W0(i,i.next),W0(n,n.next)}function V5e(e,t){var n=t,i=e.x,o=e.y,r=-1/0,s;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>r&&(r=a,s=n.x<n.next.x?n:n.next,a===i))return s}n=n.next}while(n!==t);if(!s)return null;var c=s,l=s.x,f=s.y,d=1/0,p;n=s;do i>=n.x&&n.x>=l&&i!==n.x&&dA(o<f?i:r,o,l,f,o<f?r:i,o,n.x,n.y)&&(p=Math.abs(o-n.y)/(i-n.x),qw(n,e)&&(p<d||p===d&&(n.x>s.x||n.x===s.x&&z5e(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function z5e(e,t){return xr(e.prev,e,t.prev)<0&&xr(t.next,e,e.next)<0}function H5e(e,t,n,i){var o=e;do o.z===0&&(o.z=U6(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,G5e(o)}function G5e(e){var t,n,i,o,r,s,a,c,l=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t<l&&(a++,i=i.nextZ,!!i);t++);for(c=l;a>0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(o=n,n=n.nextZ,a--):(o=i,i=i.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;n=i}r.nextZ=null,l*=2}while(s>1);return e}function U6(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|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 W5e(e){var t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function dA(e,t,n,i,o,r,s,a){return(o-s)*(t-a)>=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function j5e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!q5e(e,t)&&(qw(e,t)&&qw(t,e)&&Y5e(e,t)&&(xr(e.prev,e,t.prev)||xr(e,t.prev,t))||J2(e,t)&&xr(e.prev,e,e.next)>0&&xr(t.prev,t,t.next)>0)}function xr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function J2(e,t){return e.x===t.x&&e.y===t.y}function Voe(e,t,n,i){var o=$2(xr(e,t,n)),r=$2(xr(e,t,i)),s=$2(xr(n,i,e)),a=$2(xr(n,i,t));return!!(o!==r&&s!==a||o===0&&Z2(e,n,t)||r===0&&Z2(e,i,t)||s===0&&Z2(n,e,i)||a===0&&Z2(n,t,i))}function Z2(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function $2(e){return e>0?1:e<0?-1:0}function q5e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Voe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function qw(e,t){return xr(e.prev,e,e.next)<0?xr(e,t,e.next)>=0&&xr(e,e.prev,t)>=0:xr(e,t,e.prev)<0||xr(e,e.next,t)<0}function Y5e(e,t){var n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function zoe(e,t){var n=new V6(e.i,e.x,e.y),i=new V6(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function koe(e,t,n,i){var o=new V6(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function Yw(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 V6(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}Q2.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(z6(e,0,r,n));if(o)for(var a=0,c=t.length;a<c;a++){var l=t[a]*n,f=a<c-1?t[a+1]*n:e.length;s-=Math.abs(z6(e,l,f,n))}var d=0;for(a=0;a<i.length;a+=3){var p=i[a]*n,g=i[a+1]*n,m=i[a+2]*n;d+=Math.abs((e[p]-e[m])*(e[g+1]-e[p+1])-(e[p]-e[g])*(e[m+1]-e[p+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)};function z6(e,t,n,i){for(var o=0,r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}Q2.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},i=0,o=0;o<e.length;o++){for(var r=0;r<e[o].length;r++)for(var s=0;s<t;s++)n.vertices.push(e[o][r][s]);o>0&&(i+=e[o-1].length,n.holes.push(i))}return n}});var dle=Uc((pW,_W)=>{(function(e,t){typeof pW=="object"&&typeof _W<"u"?_W.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(pW,function(){"use strict";function e(b,T,A,C,S){(function w(D,O,R,N,F){for(;N>R;){if(N-R>600){var _=N-R+1,E=O-R+1,v=Math.log(_),I=.5*Math.exp(2*v/3),M=.5*Math.sqrt(v*I*(_-I)/_)*(E-_/2<0?-1:1),B=Math.max(R,Math.floor(O-E*I/_+M)),H=Math.min(N,Math.floor(O+(_-E)*I/_+M));w(D,O,B,H,F)}var U=D[O],G=R,k=N;for(t(D,R,O),F(D[N],U)>0&&t(D,R,N);G<k;){for(t(D,G,k),G++,k--;F(D[G],U)<0;)G++;for(;F(D[k],U)>0;)k--}F(D[R],U)===0?t(D,R,k):t(D,++k,N),k<=O&&(R=k+1),O<=k&&(N=k-1)}})(b,T,A||0,C||b.length-1,S||n)}function t(b,T,A){var C=b[T];b[T]=b[A],b[A]=C}function n(b,T){return b<T?-1:b>T?1:0}var i=function(b){b===void 0&&(b=9),this._maxEntries=Math.max(4,b),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(b,T,A){if(!A)return T.indexOf(b);for(var C=0;C<T.length;C++)if(A(b,T[C]))return C;return-1}function r(b,T){s(b,0,b.children.length,T,b)}function s(b,T,A,C,S){S||(S=m(null)),S.minX=1/0,S.minY=1/0,S.maxX=-1/0,S.maxY=-1/0;for(var w=T;w<A;w++){var D=b.children[w];a(S,b.leaf?C(D):D)}return S}function a(b,T){return b.minX=Math.min(b.minX,T.minX),b.minY=Math.min(b.minY,T.minY),b.maxX=Math.max(b.maxX,T.maxX),b.maxY=Math.max(b.maxY,T.maxY),b}function c(b,T){return b.minX-T.minX}function l(b,T){return b.minY-T.minY}function f(b){return(b.maxX-b.minX)*(b.maxY-b.minY)}function d(b){return b.maxX-b.minX+(b.maxY-b.minY)}function p(b,T){return b.minX<=T.minX&&b.minY<=T.minY&&T.maxX<=b.maxX&&T.maxY<=b.maxY}function g(b,T){return T.minX<=b.maxX&&T.minY<=b.maxY&&T.maxX>=b.minX&&T.maxY>=b.minY}function m(b){return{children:b,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function x(b,T,A,C,S){for(var w=[T,A];w.length;)if(!((A=w.pop())-(T=w.pop())<=C)){var D=T+Math.ceil((A-T)/C/2)*C;e(b,D,T,A,S),w.push(T,D,D,A)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(b){var T=this.data,A=[];if(!g(b,T))return A;for(var C=this.toBBox,S=[];T;){for(var w=0;w<T.children.length;w++){var D=T.children[w],O=T.leaf?C(D):D;g(b,O)&&(T.leaf?A.push(D):p(b,O)?this._all(D,A):S.push(D))}T=S.pop()}return A},i.prototype.collides=function(b){var T=this.data;if(!g(b,T))return!1;for(var A=[];T;){for(var C=0;C<T.children.length;C++){var S=T.children[C],w=T.leaf?this.toBBox(S):S;if(g(b,w)){if(T.leaf||p(b,w))return!0;A.push(S)}}T=A.pop()}return!1},i.prototype.load=function(b){if(!b||!b.length)return this;if(b.length<this._minEntries){for(var T=0;T<b.length;T++)this.insert(b[T]);return this}var A=this._build(b.slice(),0,b.length-1,0);if(this.data.children.length)if(this.data.height===A.height)this._splitRoot(this.data,A);else{if(this.data.height<A.height){var C=this.data;this.data=A,A=C}this._insert(A,this.data.height-A.height-1,!0)}else this.data=A;return this},i.prototype.insert=function(b){return b&&this._insert(b,this.data.height-1),this},i.prototype.clear=function(){return this.data=m([]),this},i.prototype.remove=function(b,T){if(!b)return this;for(var A,C,S,w=this.data,D=this.toBBox(b),O=[],R=[];w||O.length;){if(w||(w=O.pop(),C=O[O.length-1],A=R.pop(),S=!0),w.leaf){var N=o(b,w.children,T);if(N!==-1)return w.children.splice(N,1),O.push(w),this._condense(O),this}S||w.leaf||!p(w,D)?C?(A++,w=C.children[A],S=!1):w=null:(O.push(w),R.push(A),A=0,C=w,w=w.children[0])}return this},i.prototype.toBBox=function(b){return b},i.prototype.compareMinX=function(b,T){return b.minX-T.minX},i.prototype.compareMinY=function(b,T){return b.minY-T.minY},i.prototype.toJSON=function(){return this.data},i.prototype.fromJSON=function(b){return this.data=b,this},i.prototype._all=function(b,T){for(var A=[];b;)b.leaf?T.push.apply(T,b.children):A.push.apply(A,b.children),b=A.pop();return T},i.prototype._build=function(b,T,A,C){var S,w=A-T+1,D=this._maxEntries;if(w<=D)return r(S=m(b.slice(T,A+1)),this.toBBox),S;C||(C=Math.ceil(Math.log(w)/Math.log(D)),D=Math.ceil(w/Math.pow(D,C-1))),(S=m([])).leaf=!1,S.height=C;var O=Math.ceil(w/D),R=O*Math.ceil(Math.sqrt(D));x(b,T,A,R,this.compareMinX);for(var N=T;N<=A;N+=R){var F=Math.min(N+R-1,A);x(b,N,F,O,this.compareMinY);for(var _=N;_<=F;_+=O){var E=Math.min(_+O-1,F);S.children.push(this._build(b,_,E,C-1))}}return r(S,this.toBBox),S},i.prototype._chooseSubtree=function(b,T,A,C){for(;C.push(T),!T.leaf&&C.length-1!==A;){for(var S=1/0,w=1/0,D=void 0,O=0;O<T.children.length;O++){var R=T.children[O],N=f(R),F=(_=b,E=R,(Math.max(E.maxX,_.maxX)-Math.min(E.minX,_.minX))*(Math.max(E.maxY,_.maxY)-Math.min(E.minY,_.minY))-N);F<w?(w=F,S=N<S?N:S,D=R):F===w&&N<S&&(S=N,D=R)}T=D||T.children[0]}var _,E;return T},i.prototype._insert=function(b,T,A){var C=A?b:this.toBBox(b),S=[],w=this._chooseSubtree(C,this.data,T,S);for(w.children.push(b),a(w,C);T>=0&&S[T].children.length>this._maxEntries;)this._split(S,T),T--;this._adjustParentBBoxes(C,S,T)},i.prototype._split=function(b,T){var A=b[T],C=A.children.length,S=this._minEntries;this._chooseSplitAxis(A,S,C);var w=this._chooseSplitIndex(A,S,C),D=m(A.children.splice(w,A.children.length-w));D.height=A.height,D.leaf=A.leaf,r(A,this.toBBox),r(D,this.toBBox),T?b[T-1].children.push(D):this._splitRoot(A,D)},i.prototype._splitRoot=function(b,T){this.data=m([b,T]),this.data.height=b.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(b,T,A){for(var C,S,w,D,O,R,N,F=1/0,_=1/0,E=T;E<=A-T;E++){var v=s(b,0,E,this.toBBox),I=s(b,E,A,this.toBBox),M=(S=v,w=I,D=void 0,O=void 0,R=void 0,N=void 0,D=Math.max(S.minX,w.minX),O=Math.max(S.minY,w.minY),R=Math.min(S.maxX,w.maxX),N=Math.min(S.maxY,w.maxY),Math.max(0,R-D)*Math.max(0,N-O)),B=f(v)+f(I);M<F?(F=M,C=E,_=B<_?B:_):M===F&&B<_&&(_=B,C=E)}return C||A-T},i.prototype._chooseSplitAxis=function(b,T,A){var C=b.leaf?this.compareMinX:c,S=b.leaf?this.compareMinY:l;this._allDistMargin(b,T,A,C)<this._allDistMargin(b,T,A,S)&&b.children.sort(C)},i.prototype._allDistMargin=function(b,T,A,C){b.children.sort(C);for(var S=this.toBBox,w=s(b,0,T,S),D=s(b,A-T,A,S),O=d(w)+d(D),R=T;R<A-T;R++){var N=b.children[R];a(w,b.leaf?S(N):N),O+=d(w)}for(var F=A-T-1;F>=T;F--){var _=b.children[F];a(D,b.leaf?S(_):_),O+=d(D)}return O},i.prototype._adjustParentBBoxes=function(b,T,A){for(var C=A;C>=0;C--)a(T[C],b)},i.prototype._condense=function(b){for(var T=b.length-1,A=void 0;T>=0;T--)b[T].children.length===0?T>0?(A=b[T-1].children).splice(A.indexOf(b[T]),1):this.clear():r(b[T],this.toBBox)},i})});var nY=Uc((exports,module)=>{
- (function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,l=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(l)if(l=!1,m)p(m);else{for(var x=new Array(arguments.length-1),b=0;b<x.length;)x[b++]=arguments[b];d.apply(null,x)}};try{o.apply(r||null,s)}catch(g){l&&(l=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(l){var f=l.length;if(!f)return 0;for(var d=0;--f%4>1&&l.charAt(f)==="=";)++d;return Math.ceil(l.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(l,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=l[f++];switch(x){case 0:g[m++]=o[T>>2],b=(T&3)<<4,x=1;break;case 1:g[m++]=o[b|T>>4],b=(T&15)<<2,x=2;break;case 2:g[m++]=o[b|T>>6],g[m++]=o[T&63],x=0;break}m>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),m=0)}return x&&(g[m++]=o[b],g[m++]=61,x===1&&(g[m++]=61)),p?(m&&p.push(String.fromCharCode.apply(String,g.slice(0,m))),p.join("")):String.fromCharCode.apply(String,g.slice(0,m))};var a="invalid encoding";i.decode=function(l,f,d){for(var p=d,g=0,m,x=0;x<l.length;){var b=l.charCodeAt(x++);if(b===61&&g>1)break;if((b=r[b])===undefined)throw Error(a);switch(g){case 0:m=b,g=1;break;case 1:f[d++]=m<<2|(b&48)>>4,m=b,g=2;break;case 2:f[d++]=(m&15)<<4|(b&60)>>2,m=b,g=3;break;case 3:f[d++]=(m&3)<<6|b,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(r){var s=this._listeners[r];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var l=new Float32Array([-0]),f=new Uint8Array(l.buffer),d=f[3]===128;function p(b,T,A){l[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3]}function g(b,T,A){l[0]=b,T[A]=f[3],T[A+1]=f[2],T[A+2]=f[1],T[A+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],l[0]}function x(b,T){return f[3]=b[T],f[2]=b[T+1],f[1]=b[T+2],f[0]=b[T+3],l[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function l(d,p,g,m){var x=p<0?1:0;if(x&&(p=-p),p===0)d(1/p>0?0:2147483648,g,m);else if(isNaN(p))d(2143289344,g,m);else if(p>34028234663852886e22)d((x<<31|2139095040)>>>0,g,m);else if(p<11754943508222875e-54)d((x<<31|Math.round(p/1401298464324817e-60))>>>0,g,m);else{var b=Math.floor(Math.log(p)/Math.LN2),T=Math.round(p*Math.pow(2,-b)*8388608)&8388607;d((x<<31|b+127<<23|T)>>>0,g,m)}}c.writeFloatLE=l.bind(null,o),c.writeFloatBE=l.bind(null,r);function f(d,p,g){var m=d(p,g),x=(m>>31)*2+1,b=m>>>23&255,T=m&8388607;return b===255?T?NaN:x*(1/0):b===0?x*1401298464324817e-60*T:x*Math.pow(2,b-150)*(T+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var l=new Float64Array([-0]),f=new Uint8Array(l.buffer),d=f[7]===128;function p(b,T,A){l[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3],T[A+4]=f[4],T[A+5]=f[5],T[A+6]=f[6],T[A+7]=f[7]}function g(b,T,A){l[0]=b,T[A]=f[7],T[A+1]=f[6],T[A+2]=f[5],T[A+3]=f[4],T[A+4]=f[3],T[A+5]=f[2],T[A+6]=f[1],T[A+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],f[4]=b[T+4],f[5]=b[T+5],f[6]=b[T+6],f[7]=b[T+7],l[0]}function x(b,T){return f[7]=b[T],f[6]=b[T+1],f[5]=b[T+2],f[4]=b[T+3],f[3]=b[T+4],f[2]=b[T+5],f[1]=b[T+6],f[0]=b[T+7],l[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function l(d,p,g,m,x,b){var T=m<0?1:0;if(T&&(m=-m),m===0)d(0,x,b+p),d(1/m>0?0:2147483648,x,b+g);else if(isNaN(m))d(0,x,b+p),d(2146959360,x,b+g);else if(m>17976931348623157e292)d(0,x,b+p),d((T<<31|2146435072)>>>0,x,b+g);else{var A;if(m<22250738585072014e-324)A=m/5e-324,d(A>>>0,x,b+p),d((T<<31|A/4294967296)>>>0,x,b+g);else{var C=Math.floor(Math.log(m)/Math.LN2);C===1024&&(C=1023),A=m*Math.pow(2,-C),d(A*4503599627370496>>>0,x,b+p),d((T<<31|C+1023<<20|A*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=l.bind(null,o,0,4),c.writeDoubleBE=l.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),A=(T>>31)*2+1,C=T>>>20&2047,S=4294967296*(T&1048575)+b;return C===2047?S?NaN:A*(1/0):C===0?A*5e-324*S:A*Math.pow(2,C-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,l,f){l[f]=c&255,l[f+1]=c>>>8&255,l[f+2]=c>>>16&255,l[f+3]=c>>>24}function r(c,l,f){l[f]=c>>>24,l[f+1]=c>>>16&255,l[f+2]=c>>>8&255,l[f+3]=c&255}function s(c,l){return(c[l]|c[l+1]<<8|c[l+2]<<16|c[l+3]<<24)>>>0}function a(c,l){return(c[l]<<24|c[l+1]<<16|c[l+2]<<8|c[l+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,l=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(l=o(a),f=0);var g=r.call(l,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c<r.length;++c)a=r.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(r.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(r,s,a){var c=a-s;if(c<1)return"";for(var l=null,f=[],d=0,p;s<a;)p=r[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,f)),d=0);return l?(d&&l.push(String.fromCharCode.apply(String,f.slice(0,d))),l.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,l,f,d=0;d<r.length;++d)l=r.charCodeAt(d),l<128?s[a++]=l:l<2048?(s[a++]=l>>6|192,s[a++]=l&63|128):(l&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(l=65536+((l&1023)<<10)+(f&1023),++d,s[a++]=l>>18|240,s[a++]=l>>12&63|128,s[a++]=l>>6&63|128,s[a++]=l&63|128):(s[a++]=l>>12|224,s[a++]=l>>6&63|128,s[a++]=l&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(m,x){return RangeError("index out of range: "+m.pos+" + "+(x||1)+" > "+m.len)}function c(m){this.buf=m,this.pos=0,this.len=m.length}var l=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},f=function(){return i.Buffer?function(b){return(c.create=function(A){return i.Buffer.isBuffer(A)?new o(A):l(A)})(b)}:l};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function d(){var m=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m;if(m.lo=(m.lo|(this.buf[this.pos]&127)<<28)>>>0,m.hi=(m.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return m;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m}return m.lo=(m.lo|(this.buf[this.pos++]&127)<<x*7)>>>0,m}if(this.len-this.pos>4){for(;x<5;++x)if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(m,x){return(m[x-4]|m[x-3]<<8|m[x-2]<<16|m[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),b=this.pos,T=this.pos+x;if(T>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(b,T);if(b===T){var A=i.Buffer;return A?A.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,b,T)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(m){switch(m){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(m=this.uint32()&7)!==4;)this.skipType(m);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+m+" at offset "+this.pos)}return this},c._configure=function(m){o=m,c.create=f(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[x](!1)},uint64:function(){return d.call(this)[x](!0)},sint64:function(){return d.call(this).zzDecode()[x](!1)},fixed64:function(){return g.call(this)[x](!0)},sfixed64:function(){return g.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,l,f){if(!l)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,l);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](l).finish(),function(g,m){if(g)return d.emit("error",g,s),f(g);if(m===null)return d.end(!0),undefined;if(!(m instanceof c))try{m=c[d.responseDelimited?"decodeDelimited":"decode"](m)}catch(x){return d.emit("error",x,s),f(x)}return d.emit("data",m,s),f(null,m)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,l){this.lo=c>>>0,this.hi=l>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(l){if(l===0)return r;var f=l<0;f&&(l=-l);var d=l>>>0,p=(l-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(l){if(typeof l=="number")return o.fromNumber(l);if(i.isString(l))if(i.Long)l=i.Long.fromString(l);else return o.fromNumber(parseInt(l,10));return l.low||l.high?new o(l.low>>>0,l.high>>>0):r},o.prototype.toNumber=function(l){if(!l&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(l){return i.Long?new i.Long(this.lo|0,this.hi|0,!!l):{low:this.lo|0,high:this.hi|0,unsigned:!!l}};var a=String.prototype.charCodeAt;o.fromHash=function(l){return l===s?r:new o((a.call(l,0)|a.call(l,1)<<8|a.call(l,2)<<16|a.call(l,3)<<24)>>>0,(a.call(l,4)|a.call(l,5)<<8|a.call(l,6)<<16|a.call(l,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var l=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^l)>>>0,this.lo=(this.lo<<1^l)>>>0,this},o.prototype.zzDecode=function(){var l=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^l)>>>0,this.hi=(this.hi>>>1^l)>>>0,this},o.prototype.length=function(){var l=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?l<16384?l<128?1:2:l<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var l=a[c];return l!=null&&a.hasOwnProperty(c)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var l=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(l.lo,l.hi,c):l.toNumber(!!c)};function o(s,a,c){for(var l=Object.keys(a),f=0;f<l.length;++f)(s[l[f]]===undefined||!c)&&(s[l[f]]=a[l[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,l){if(!(this instanceof a))return new a(c,l);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&o(this,l)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=r,i.ProtocolError=r("ProtocolError"),i.oneOfGetter=function(a){for(var c={},l=0;l<a.length;++l)c[a[l]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var l=0;l<a.length;++l)a[l]!==c&&delete this[a[l]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,l){return new s(c,l)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),o,r=i.LongBits,s=i.base64,a=i.utf8;function c(C,S,w){this.fn=C,this.len=S,this.next=undefined,this.val=w}function l(){}function f(C){this.head=C.head,this.tail=C.tail,this.len=C.len,this.next=C.states}function d(){this.len=0,this.head=new c(l,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new o})()}:function(){return new d}};d.create=p(),d.alloc=function(S){return new i.Array(S)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(S,w,D){return this.tail=this.tail.next=new c(S,w,D),this.len+=w,this};function g(C,S,w){S[w]=C&255}function m(C,S,w){for(;C>127;)S[w++]=C&127|128,C>>>=7;S[w]=C}function x(C,S){this.len=C,this.next=undefined,this.val=S}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new x((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(b,10,r.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function b(C,S,w){for(;C.hi;)S[w++]=C.lo&127|128,C.lo=(C.lo>>>7|C.hi<<25)>>>0,C.hi>>>=7;for(;C.lo>127;)S[w++]=C.lo&127|128,C.lo=C.lo>>>7;S[w++]=C.lo}d.prototype.uint64=function(S){var w=r.from(S);return this._push(b,w.length(),w)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var w=r.from(S).zzEncode();return this._push(b,w.length(),w)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function T(C,S,w){S[w]=C&255,S[w+1]=C>>>8&255,S[w+2]=C>>>16&255,S[w+3]=C>>>24}d.prototype.fixed32=function(S){return this._push(T,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var w=r.from(S);return this._push(T,4,w.lo)._push(T,4,w.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var A=i.Array.prototype.set?function(S,w,D){w.set(S,D)}:function(S,w,D){for(var O=0;O<S.length;++O)w[D+O]=S[O]};d.prototype.bytes=function(S){var w=S.length>>>0;if(!w)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(w=s.length(S));s.decode(S,D,0),S=D}return this.uint32(w)._push(A,w,S)},d.prototype.string=function(S){var w=a.length(S);return w?this.uint32(w)._push(a.write,w,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(l,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(l,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,w=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=w,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,w=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,w,D),D+=S.len,S=S.next;return w},d._configure=function(C){o=C,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,l,f){l.set(c,f)}:function(c,l,f){if(c.copy)c.copy(l,f,0,c.length);else for(var d=0;d<c.length;)l[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var l=c.length>>>0;return this.uint32(l),l&&this._push(r.writeBytesBuffer,l,c),this};function s(a,c,l){a.length<40?o.utf8.write(a,c,l):c.utf8Write?c.utf8Write(a,l):c.write(a,l)}r.prototype.string=function(c){var l=o.Buffer.byteLength(c);return this.uint32(l),l&&this._push(s,l,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var y0e=Uc((fSi,Zz)=>{(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),m=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,x=r(g,d.pixelType||Float32Array,d.encodedMaskData,m,d.returnMask),b={width:g.width,height:g.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:g.pixels.maxValue,noDataValue:m};return x.resultMask&&(b.maskData=x.resultMask),d.returnEncodedMask&&g.mask&&(b.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(b.fileInfo=s(g),d.computeUsedBitDepths&&(b.fileInfo.bitDepths=a(g))),b};var r=function(f,d,p,g,m){var x=0,b=f.pixels.numBlocksX,T=f.pixels.numBlocksY,A=Math.floor(f.width/b),C=Math.floor(f.height/T),S=2*f.maxZError,w=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,R;O=new d(f.width*f.height),m&&p&&(R=new Uint8Array(f.width*f.height));for(var N=new Float32Array(A*C),F,_,E=0;E<=T;E++){var v=E!==T?C:f.height%T;if(v!==0)for(var I=0;I<=b;I++){var M=I!==b?A:f.width%b;if(M!==0){var B=E*f.width*C+I*A,H=f.width-M,U=f.pixels.blocks[x],G,k,Y;U.encoding<2?(U.encoding===0?G=U.rawData:(l(U.stuffedData,U.bitsPerPixel,U.numValidPixels,U.offset,S,N,f.pixels.maxValue),G=N),k=0):U.encoding===2?Y=0:Y=U.offset;var q;if(p)for(_=0;_<v;_++){for(B&7&&(q=p[B>>3],q<<=B&7),F=0;F<M;F++)B&7||(q=p[B>>3]),q&128?(R&&(R[B]=1),D=U.encoding<2?G[k++]:Y,w=w>D?D:w,O[B++]=D):(R&&(R[B]=0),O[B++]=g),q<<=1;B+=H}else if(U.encoding<2)for(_=0;_<v;_++){for(F=0;F<M;F++)D=G[k++],w=w>D?D:w,O[B++]=D;B+=H}else for(w=w>Y?Y:w,_=0;_<v;_++){for(F=0;F<M;F++)O[B++]=Y;B+=H}if(U.encoding===1&&k!==U.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:R,minValue:w}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var m=f.pixels.blocks[g];m.encoding===0?p.float32=!0:m.encoding===1?p[m.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},m=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,m),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var x=new DataView(f,d,24);if(g.fileVersion=x.getInt32(0,!0),g.imageType=x.getInt32(4,!0),g.height=x.getUint32(8,!0),g.width=x.getUint32(12,!0),g.maxZError=x.getFloat64(16,!0),d+=24,!p)if(x=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=x.getUint32(0,!0),g.mask.numBlocksX=x.getUint32(4,!0),g.mask.numBytes=x.getUint32(8,!0),g.mask.maxValue=x.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var b=new Uint8Array(Math.ceil(g.width*g.height/8));x=new DataView(f,d,g.mask.numBytes);var T=x.getInt16(0,!0),A=2,C=0;do{if(T>0)for(;T--;)b[C++]=x.getUint8(A++);else{var S=x.getUint8(A++);for(T=-T;T--;)b[C++]=S}T=x.getInt16(A,!0),A+=2}while(A<g.mask.numBytes);if(T!==-32768||C<b.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=b,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));x=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=x.getUint32(0,!0),g.pixels.numBlocksX=x.getUint32(4,!0),g.pixels.numBytes=x.getUint32(8,!0),g.pixels.maxValue=x.getFloat32(12,!0),d+=16;var w=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=w+(g.width%w>0?1:0),R=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*R);for(var N=0,F=0;F<R;F++)for(var _=0;_<O;_++){var E=0,v=f.byteLength-d;x=new DataView(f,d,Math.min(10,v));var I={};g.pixels.blocks[N++]=I;var M=x.getUint8(0);if(E++,I.encoding=M&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(M!==0&&M!==2){if(M>>=6,I.offsetType=M,M===2)I.offset=x.getInt8(1),E++;else if(M===1)I.offset=x.getInt16(1,!0),E+=2;else if(M===0)I.offset=x.getFloat32(1,!0),E+=4;else throw"Invalid block offset type";if(I.encoding===1)if(M=x.getUint8(E),E++,I.bitsPerPixel=M&63,M>>=6,I.numValidPixelsType=M,M===2)I.numValidPixels=x.getUint8(E),E++;else if(M===1)I.numValidPixels=x.getUint16(E,!0),E+=2;else if(M===0)I.numValidPixels=x.getUint32(E,!0),E+=4;else throw"Invalid valid pixel count type"}if(d+=E,I.encoding!==3){var B,H;if(I.encoding===0){var U=(g.pixels.numBytes-1)/4;if(U!==Math.floor(U))throw"uncompressed block has invalid length";B=new ArrayBuffer(U*4),H=new Uint8Array(B),H.set(new Uint8Array(f,d,U*4));var G=new Float32Array(B);I.rawData=G,d+=U*4}else if(I.encoding===1){var k=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),Y=Math.ceil(k/4);B=new ArrayBuffer(Y*4),H=new Uint8Array(B),H.set(new Uint8Array(f,d,k)),I.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},l=function(f,d,p,g,m,x,b){var T=(1<<d)-1,A=0,C,S=0,w,D,O=Math.ceil((b-g)/m),R=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*R,C=0;C<p;C++){if(S===0&&(D=f[A++],S=32),S>=d)w=D>>>S-d&T,S-=d;else{var N=d-S;w=(D&T)<<N&T,D=f[A++],S=32-N,w+=D>>>S}x[C]=w<O?g+w*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,l,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S,w,D,O,R=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*R,p)for(A=0;A<d;A++)C===0&&(w=c[T++],C=32),C>=f?(S=w>>>C-f&b,C-=f):(D=f-C,S=(w&b)<<D&b,w=c[T++],C=32-D,S+=w>>>C),l[A]=p[S];else for(O=Math.ceil((x-g)/m),A=0;A<d;A++)C===0&&(w=c[T++],C=32),C>=f?(S=w>>>C-f&b,C-=f):(D=f-C,S=(w&b)<<D&b,w=c[T++],C=32-D,S+=w>>>C),l[A]=S<O?g+S*m:x},unstuffLUT:function(c,l,f,d,p,g){var m=(1<<l)-1,x=0,b=0,T=0,A=0,C=0,S,w=[],D=c.length*4-Math.ceil(l*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(S=c[x++],A=32),A>=l?(C=S>>>A-l&m,A-=l):(T=l-A,C=(S&m)<<T&m,S=c[x++],A=32-T,C+=S>>>A),w[b]=C<O?d+C*p:g;return w.unshift(d),w},unstuff2:function(c,l,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S=0,w,D,O;if(p)for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(w=D>>>S&b,C-=f,S+=f):(O=f-C,w=D>>>S&b,D=c[T++],C=32-O,w|=(D&(1<<O)-1)<<f-O,S=O),l[A]=p[w];else{var R=Math.ceil((x-g)/m);for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(w=D>>>S&b,C-=f,S+=f):(O=f-C,w=D>>>S&b,D=c[T++],C=32-O,w|=(D&(1<<O)-1)<<f-O,S=O),l[A]=w<R?g+w*m:x}return l},unstuffLUT2:function(c,l,f,d,p,g){var m=(1<<l)-1,x=0,b=0,T=0,A=0,C=0,S=0,w,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(w=c[x++],A=32,S=0),A>=l?(C=w>>>S&m,A-=l,S+=l):(T=l-A,C=w>>>S&m,w=c[x++],A=32-T,C|=(w&(1<<T)-1)<<l-T,S=T),D[b]=C<O?d+C*p:g;return D.unshift(d),D},originalUnstuff:function(c,l,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,A,C=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*C,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(A=f-x,b=(T&p)<<A&p,T=c[g++],x=32-A,b+=T>>>x),l[m]=b;return l},originalUnstuff2:function(c,l,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,A,C;for(m=0;m<d;m++)x===0&&(A=c[g++],x=32,b=0),x>=f?(T=A>>>b&p,x-=f,b+=f):(C=f-x,T=A>>>b&p,A=c[g++],x=32-C,T|=(A&(1<<C)-1)<<f-C,b=C),l[m]=T;return l}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var l=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do l+=c[g++]<<8,f+=l+=c[g++];while(--m);l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=l+=c[g]<<8),l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16),(f<<16|l)>>>0},readHeaderInfo:function(c,l){var f=l.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),m=g.getInt32(0,!0);p.fileVersion=m,f+=4,m>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,m>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,l.headerInfo=p,l.ptr=f;var x,b;if(m>=3&&(b=m>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,f-b,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,l){var f=l.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,l.ptr,d,p),m=this.readSubArray(c,l.ptr+p,d,p);l.ptr+=2*p;var x,b=!0;for(x=0;x<f.numDims;x++)if(g[x]!==m[x]){b=!1;break}return f.minValues=g,f.maxValues=m,b},readSubArray:function(c,l,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,l,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,l,d)),p=new f(g)}return p},readMask:function(c,l){var f=l.ptr,d=l.headerInfo,p=d.width*d.height,g=d.numValidPixel,m=new DataView(c,f,4),x={};if(x.numBytes=m.getUint32(0,!0),f+=4,(g===0||p===g)&&x.numBytes!==0)throw"invalid mask";var b,T;if(g===0)b=new Uint8Array(Math.ceil(p/8)),x.bitset=b,T=new Uint8Array(p),l.pixels.resultMask=T,f+=x.numBytes;else if(x.numBytes>0){b=new Uint8Array(Math.ceil(p/8)),m=new DataView(c,f,x.numBytes);var A=m.getInt16(0,!0),C=2,S=0,w=0;do{if(A>0)for(;A--;)b[S++]=m.getUint8(C++);else for(w=m.getUint8(C++),A=-A;A--;)b[S++]=w;A=m.getInt16(C,!0),C+=2}while(C<x.numBytes);if(A!==-32768||S<b.length)throw"Unexpected end of mask RLE encoding";T=new Uint8Array(p);var D=0,O=0;for(O=0;O<p;O++)O&7?(D=b[O>>3],D<<=O&7):D=b[O>>3],D&128&&(T[O]=1);l.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return l.ptr=f,l.mask=x,!0},readDataOneSweep:function(c,l,f){var d=l.ptr,p=l.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,A=l.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var C=new ArrayBuffer(b),S=new Uint8Array(C);S.set(new Uint8Array(c,d,b)),T=new f(C)}if(T.length===m*g)l.pixels.resultPixels=T;else{l.pixels.resultPixels=new f(m*g);var w=0,D=0,O=0,R=0;if(g>1)for(O=0;O<g;O++)for(R=O*m,D=0;D<m;D++)A[D]&&(l.pixels.resultPixels[R+D]=T[w++]);else for(D=0;D<m;D++)A[D]&&(l.pixels.resultPixels[D]=T[w++])}return d+=b,l.ptr=d,!0},readHuffmanTree:function(c,l){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,l.ptr,16);l.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),m=d.getInt32(8,!0),x=d.getInt32(12,!0);if(m>=x)return!1;var b=new Uint32Array(x-m);r.decodeBits(c,l,b);var T=[],A,C,S,w;for(A=m;A<x;A++)C=A-(A<g?0:g),T[C]={first:b[A-m],second:null};var D=c.byteLength-l.ptr,O=Math.ceil(D/4),R=new ArrayBuffer(O*4),N=new Uint8Array(R);N.set(new Uint8Array(c,l.ptr,D));var F=new Uint32Array(R),_=0,E,v=0;for(E=F[0],A=m;A<x;A++)C=A-(A<g?0:g),w=T[C].first,w>0&&(T[C].second=E<<_>>>32-w,32-_>=w?(_+=w,_===32&&(_=0,v++,E=F[v])):(_+=w-32,v++,E=F[v],T[C].second|=E>>>32-_));var I=0,M=0,B=new s;for(A=0;A<T.length;A++)T[A]!==void 0&&(I=Math.max(I,T[A].first));I>=f?M=f:M=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var H=[],U,G,k,Y,q,Q;for(A=m;A<x;A++)if(C=A-(A<g?0:g),w=T[C].first,w>0)if(U=[w,C],w<=M)for(G=T[C].second<<M-w,k=1<<M-w,S=0;S<k;S++)H[G|S]=U;else for(G=T[C].second,Q=B,Y=w-1;Y>=0;Y--)q=G>>>Y&1,q?(Q.right||(Q.right=new s),Q=Q.right):(Q.left||(Q.left=new s),Q=Q.left),Y===0&&!Q.val&&(Q.val=U[1]);return{decodeLut:H,numBitsLUTQick:M,numBitsLUT:I,tree:B,stuffedData:F,srcPtr:v,bitPos:_}},readHuffman:function(c,l,f){var d=l.headerInfo,p=d.numDims,g=l.headerInfo.height,m=l.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,l),T=b.decodeLut,A=b.tree,C=b.stuffedData,S=b.srcPtr,w=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,R=l.headerInfo.imageType===0?128:0,N,F,_,E=l.pixels.resultMask,v,I,M,B,H,U,G,k=0;w>0&&(S++,w=0);var Y=C[S],q=l.encodeMode===1,Q=new f(x*p),W=Q,K;for(K=0;K<d.numDims;K++){if(p>1&&(W=new f(Q.buffer,x*K,x),k=0),l.headerInfo.numValidPixel===m*g)for(U=0,B=0;B<g;B++)for(H=0;H<m;H++,U++){if(F=0,v=Y<<w>>>32-D,I=v,32-w<D&&(v|=C[S+1]>>>64-w-D,I=v),T[I])F=T[I][1],w+=T[I][0];else for(v=Y<<w>>>32-O,I=v,32-w<O&&(v|=C[S+1]>>>64-w-O,I=v),N=A,G=0;G<O;G++)if(M=v>>>O-G-1&1,N=M?N.right:N.left,!(N.left||N.right)){F=N.val,w=w+G+1;break}w>=32&&(w-=32,S++,Y=C[S]),_=F-R,q?(H>0?_+=k:B>0?_+=W[U-m]:_+=k,_&=255,W[U]=_,k=_):W[U]=_}else for(U=0,B=0;B<g;B++)for(H=0;H<m;H++,U++)if(E[U]){if(F=0,v=Y<<w>>>32-D,I=v,32-w<D&&(v|=C[S+1]>>>64-w-D,I=v),T[I])F=T[I][1],w+=T[I][0];else for(v=Y<<w>>>32-O,I=v,32-w<O&&(v|=C[S+1]>>>64-w-O,I=v),N=A,G=0;G<O;G++)if(M=v>>>O-G-1&1,N=M?N.right:N.left,!(N.left||N.right)){F=N.val,w=w+G+1;break}w>=32&&(w-=32,S++,Y=C[S]),_=F-R,q?(H>0&&E[U-1]?_+=k:B>0&&E[U-m]?_+=W[U-m]:_+=k,_&=255,W[U]=_,k=_):W[U]=_}l.ptr=l.ptr+(S+1)*4+(w>0?4:0)}l.pixels.resultPixels=Q},decodeBits:function(c,l,f,d,p){{var g=l.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,l.ptr,5),T=b.getUint8(0);x++;var A=T>>6,C=A===0?4:3-A,S=(T&32)>0,w=T&31,D=0;if(C===1)D=b.getUint8(x),x++;else if(C===2)D=b.getUint16(x,!0),x+=2;else if(C===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,R,N,F,_,E,v,I,M,B,H,U=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(l.counter.lut++,M=b.getUint8(x),B=w,x++,_=Math.ceil((M-1)*w/8),E=Math.ceil(_/4),N=new ArrayBuffer(E*4),F=new Uint8Array(N),l.ptr+=x,F.set(new Uint8Array(c,l.ptr,_)),I=new Uint32Array(N),l.ptr+=_,H=0;M-1>>>H;)H++;_=Math.ceil(D*H/8),E=Math.ceil(_/4),N=new ArrayBuffer(E*4),F=new Uint8Array(N),F.set(new Uint8Array(c,l.ptr,_)),R=new Uint32Array(N),l.ptr+=_,m>=3?v=o.unstuffLUT2(I,w,M-1,d,O,U):v=o.unstuffLUT(I,w,M-1,d,O,U),m>=3?o.unstuff2(R,f,H,D,v):o.unstuff(R,f,H,D,v)}else l.counter.bitstuffer++,H=w,l.ptr+=x,H>0&&(_=Math.ceil(D*H/8),E=Math.ceil(_/4),N=new ArrayBuffer(E*4),F=new Uint8Array(N),F.set(new Uint8Array(c,l.ptr,_)),R=new Uint32Array(N),l.ptr+=_,m>=3?d==null?o.originalUnstuff2(R,f,H,D):o.unstuff2(R,f,H,D,!1,d,O,U):d==null?o.originalUnstuff(R,f,H,D):o.unstuff(R,f,H,D,!1,d,O,U))}},readTiles:function(c,l,f){var d=l.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),A=Math.ceil(g/m);l.pixels.numBlocksY=A,l.pixels.numBlocksX=T,l.pixels.ptr=0;var C=0,S=0,w=0,D=0,O=0,R=0,N=0,F=0,_=0,E=0,v=0,I=0,M=0,B=0,H=0,U=0,G,k,Y,q,Q,W,K=new f(m*m),Z=g%m||m,me=p%m||m,xe,re,ge=d.numDims,ye,Ae=l.pixels.resultMask,De=l.pixels.resultPixels;for(w=0;w<A;w++)for(O=w!==A-1?m:Z,D=0;D<T;D++)for(R=D!==T-1?m:me,v=w*p*m+D*m,I=p-R,ye=0;ye<ge;ye++){if(ge>1&&(De=new f(l.pixels.resultPixels.buffer,p*g*ye*b,p*g)),N=c.byteLength-l.ptr,G=new DataView(c,l.ptr,Math.min(10,N)),k={},U=0,F=G.getUint8(0),U++,_=F>>6&255,E=F>>2&15,E!==(D*m>>3&15))throw"integrity issue";if(W=F&3,W>3)throw l.ptr+=U,"Invalid block encoding ("+W+")";if(W===2){l.counter.constant++,l.ptr+=U;continue}else if(W===0){if(l.counter.uncompressed++,l.ptr+=U,M=O*R*b,B=c.byteLength-l.ptr,M=M<B?M:B,Y=new ArrayBuffer(M%b===0?M:M+b-M%b),q=new Uint8Array(Y),q.set(new Uint8Array(c,l.ptr,M)),Q=new f(Y),H=0,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=Q[H++]),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=Q[H++];v+=I}l.ptr+=H*b}else if(xe=r.getDataTypeUsed(x,_),re=r.getOnePixel(k,U,xe,G),U+=r.getDataTypeSize(xe),W===3)if(l.ptr+=U,l.counter.constantoffset++,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=re),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=re;v+=I}else if(l.ptr+=U,r.decodeBits(c,l,K,re,ye),U=0,Ae)for(C=0;C<O;C++){for(S=0;S<R;S++)Ae[v]&&(De[v]=K[U++]),v++;v+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)De[v++]=K[U++];v+=I}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:r.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var l=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,m=0,x=0,b=c.pixels.resultMask;if(b)if(f>1)for(g=0;g<f;g++)for(x=g*d,m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[x+m]=l);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=l);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(l);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=l},getDataTypeArray:function(c){var l;switch(c){case 0:l=Int8Array;break;case 1:l=Uint8Array;break;case 2:l=Int16Array;break;case 3:l=Uint16Array;break;case 4:l=Int32Array;break;case 5:l=Uint32Array;break;case 6:l=Float32Array;break;case 7:l=Float64Array;break;default:l=Float32Array}return l},getPixelType:function(c){var l;switch(c){case 0:l="S8";break;case 1:l="U8";break;case 2:l="S16";break;case 3:l="U16";break;case 4:l="S32";break;case 5:l="U32";break;case 6:l="F32";break;case 7:l="F64";break;default:l="F32"}return l},isValidPixelValue:function(c,l){if(l==null)return!1;var f;switch(c){case 0:f=l>=-128&&l<=127;break;case 1:f=l>=0&&l<=255;break;case 2:f=l>=-32768&&l<=32767;break;case 3:f=l>=0&&l<=65536;break;case 4:f=l>=-2147483648&&l<=2147483647;break;case 5:f=l>=0&&l<=4294967296;break;case 6:f=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:f=l>=5e-324&&l<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var l=0;switch(c){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=c}return l},getDataTypeUsed:function(c,l){var f=c;switch(c){case 2:case 4:f=c-l;break;case 3:case 5:f=c-2*l;break;case 6:l===0?f=c:l===1?f=2:f=1;break;case 7:l===0?f=c:f=c-2*l+1;break;default:f=c;break}return f},getOnePixel:function(c,l,f,d){var p=0;switch(f){case 0:p=d.getInt8(l);break;case 1:p=d.getUint8(l);break;case 2:p=d.getInt16(l,!0);break;case 3:p=d.getUint16(l,!0);break;case 4:p=d.getInt32(l,!0);break;case 5:p=d.getUInt32(l,!0);break;case 6:p=d.getFloat32(l,!0);break;case 7:p=d.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,l,f){this.val=c,this.left=l,this.right=f},a={decode:function(c,l){l=l||{};var f=l.noDataValue,d=0,p={};if(p.ptr=l.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,m=g.fileVersion,x=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=l.maskData);var b=g.width*g.height;if(p.pixels.resultPixels=new x(b*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(m>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var T=new DataView(c,p.ptr,2),A=T.getUint8(0);if(p.ptr++,A)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var C=T.getUint8(1);if(p.ptr++,p.encodeMode=C,C>2||m<4&&C>1)throw"Invalid Huffman flag "+C;C?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var S;l.inputOffset?(S=p.headerInfo.blobSize+l.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=l.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var w={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<b;d++)D[d]||(w.pixelData[d]=f);w.noDataValue=f}return p.noDataValue=f,l.returnFileInfo&&(w.fileInfo=r.formatFileInfo(p)),w}},getBandCount:function(c){var l=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,l++,d.ptr=f;return l}};return a}(),n=function(){var o=new ArrayBuffer(4),r=new Uint8Array(o),s=new Uint32Array(o);return s[0]=1,r[0]===1}(),i={decode:function(o,r){if(!n)throw"Big endian system is not supported.";r=r||{};var s=r.inputOffset||0,a=new Uint8Array(o,s,10),c=String.fromCharCode.apply(null,a),l,f;if(c.trim()==="CntZImage")l=e,f=1;else if(c.substring(0,5)==="Lerc2")l=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=o.byteLength-10,g,m=[],x,b,T={width:0,height:0,pixels:[],pixelType:r.pixelType,mask:null,statistics:[]};s<p;){var A=l.decode(o,{inputOffset:s,encodedMaskData:g,maskData:b,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:r.pixelType||null,noDataValue:r.noDataValue||null});s=A.fileInfo.eofOffset,d===0&&(g=A.encodedMaskData,b=A.maskData,T.width=A.width,T.height=A.height,T.dimCount=A.dimCount||1,T.pixelType=A.pixelType||A.fileInfo.pixelType,T.mask=A.maskData),f>1&&A.fileInfo.mask&&A.fileInfo.mask.numBytes>0&&m.push(A.maskData),d++,T.pixels.push(A.pixelData),T.statistics.push({minValue:A.minValue,maxValue:A.maxValue,noDataValue:A.noDataValue,dimStats:A.dimStats})}var C,S,w;if(f>1&&m.length>1){for(w=T.width*T.height,T.bandMasks=m,b=new Uint8Array(w),b.set(m[0]),C=1;C<m.length;C++)for(x=m[C],S=0;S<w;S++)b[S]=b[S]&x[S];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof Zz<"u"&&Zz.exports?Zz.exports=i:this.Lerc=i})()});var Yxe=Uc((Hqi,qxe)=>{qxe.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}});var Kxe=Uc((Gqi,Xxe)=>{var{webm:Qyt,mp4:Jyt}=Yxe(),tX=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,nX=()=>"wakeLock"in navigator,iX=class{constructor(){if(this.enabled=!1,nX()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else tX()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",Qyt),this._addSourceToVideo(this.noSleepVideo,"mp4",Jyt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return nX()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):tX()?(this.disable(),console.warn(`
- NoSleep enabled for older iOS devices. This can interrupt
- active or long-running network requests from completing successfully.
- See https://github.com/richtr/NoSleep.js/issues/15 for more details.
- `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){nX()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):tX()?this.noSleepTimer&&(console.warn(`
- NoSleep now disabled for older iOS devices.
- `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};Xxe.exports=iX});function wbe(e){return e!=null}var u=wbe;function Wy(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(Wy.prototype=Object.create(Error.prototype),Wy.prototype.constructor=Wy);Wy.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=`
- ${this.stack.toString()}`),e};Wy.throwInstantiationError=function(){throw new Wy("This function defines an interface and should not be called directly.")};var de=Wy;var Qr={};Qr.typeOf={};function vbe(e){return`${e} is required, actual value was undefined`}function _b(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}Qr.defined=function(e,t){if(!u(t))throw new de(vbe(e))};Qr.typeOf.func=function(e,t){if(typeof t!="function")throw new de(_b(typeof t,"function",e))};Qr.typeOf.string=function(e,t){if(typeof t!="string")throw new de(_b(typeof t,"string",e))};Qr.typeOf.number=function(e,t){if(typeof t!="number")throw new de(_b(typeof t,"number",e))};Qr.typeOf.number.lessThan=function(e,t,n){if(Qr.typeOf.number(e,t),t>=n)throw new de(`Expected ${e} to be less than ${n}, actual value was ${t}`)};Qr.typeOf.number.lessThanOrEquals=function(e,t,n){if(Qr.typeOf.number(e,t),t>n)throw new de(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};Qr.typeOf.number.greaterThan=function(e,t,n){if(Qr.typeOf.number(e,t),t<=n)throw new de(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};Qr.typeOf.number.greaterThanOrEquals=function(e,t,n){if(Qr.typeOf.number(e,t),t<n)throw new de(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};Qr.typeOf.object=function(e,t){if(typeof t!="object")throw new de(_b(typeof t,"object",e))};Qr.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new de(_b(typeof t,"boolean",e))};Qr.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new de(_b(typeof t,"bigint",e))};Qr.typeOf.number.equals=function(e,t,n,i){if(Qr.typeOf.number(e,n),Qr.typeOf.number(t,i),n!==i)throw new de(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var El=Qr;function SX(e,t){return e??t}SX.EMPTY_OBJECT=Object.freeze({});var y=SX;var j8=or(jI(),1);var ot={};ot.EPSILON1=.1;ot.EPSILON2=.01;ot.EPSILON3=.001;ot.EPSILON4=1e-4;ot.EPSILON5=1e-5;ot.EPSILON6=1e-6;ot.EPSILON7=1e-7;ot.EPSILON8=1e-8;ot.EPSILON9=1e-9;ot.EPSILON10=1e-10;ot.EPSILON11=1e-11;ot.EPSILON12=1e-12;ot.EPSILON13=1e-13;ot.EPSILON14=1e-14;ot.EPSILON15=1e-15;ot.EPSILON16=1e-16;ot.EPSILON17=1e-17;ot.EPSILON18=1e-18;ot.EPSILON19=1e-19;ot.EPSILON20=1e-20;ot.EPSILON21=1e-21;ot.GRAVITATIONALPARAMETER=3986004418e5;ot.SOLAR_RADIUS=6955e5;ot.LUNAR_RADIUS=1737400;ot.SIXTY_FOUR_KILOBYTES=64*1024;ot.FOUR_GIGABYTES=4*1024*1024*1024;ot.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});ot.signNotZero=function(e){return e<0?-1:1};ot.toSNorm=function(e,t){return t=y(t,255),Math.round((ot.clamp(e,-1,1)*.5+.5)*t)};ot.fromSNorm=function(e,t){return t=y(t,255),ot.clamp(e,0,t)/t*2-1};ot.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:ot.clamp((e-t)/n,0,1)};ot.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});ot.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});ot.lerp=function(e,t,n){return(1-n)*e+n*t};ot.PI=Math.PI;ot.ONE_OVER_PI=1/Math.PI;ot.PI_OVER_TWO=Math.PI/2;ot.PI_OVER_THREE=Math.PI/3;ot.PI_OVER_FOUR=Math.PI/4;ot.PI_OVER_SIX=Math.PI/6;ot.THREE_PI_OVER_TWO=3*Math.PI/2;ot.TWO_PI=2*Math.PI;ot.ONE_OVER_TWO_PI=1/(2*Math.PI);ot.RADIANS_PER_DEGREE=Math.PI/180;ot.DEGREES_PER_RADIAN=180/Math.PI;ot.RADIANS_PER_ARCSECOND=ot.RADIANS_PER_DEGREE/3600;ot.toRadians=function(e){return e*ot.RADIANS_PER_DEGREE};ot.toDegrees=function(e){return e*ot.DEGREES_PER_RADIAN};ot.convertLongitudeRange=function(e){let t=ot.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};ot.clampToLatitudeRange=function(e){return ot.clamp(e,-1*ot.PI_OVER_TWO,ot.PI_OVER_TWO)};ot.negativePiToPi=function(e){return e>=-ot.PI&&e<=ot.PI?e:ot.zeroToTwoPi(e+ot.PI)-ot.PI};ot.zeroToTwoPi=function(e){if(e>=0&&e<=ot.TWO_PI)return e;let t=ot.mod(e,ot.TWO_PI);return Math.abs(t)<ot.EPSILON14&&Math.abs(e)>ot.EPSILON14?ot.TWO_PI:t};ot.mod=function(e,t){return ot.sign(e)===ot.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};ot.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))};ot.lessThan=function(e,t,n){return e-t<-n};ot.lessThanOrEquals=function(e,t,n){return e-t<n};ot.greaterThan=function(e,t,n){return e-t>n};ot.greaterThanOrEquals=function(e,t,n){return e-t>-n};var qI=[1];ot.factorial=function(e){let t=qI.length;if(e>=t){let n=qI[t-1];for(let i=t;i<=e;i++){let o=n*i;qI.push(o),n=o}}return qI[e]};ot.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};ot.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};ot.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};ot.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};ot.clamp=function(e,t,n){return e<t?t:e>n?n:e};var vX=new j8.default;ot.setRandomNumberSeed=function(e){vX=new j8.default(e)};ot.nextRandomNumber=function(){return vX.random()};ot.randomBetween=function(e,t){return ot.nextRandomNumber()*(t-e)+e};ot.acosClamped=function(e){return Math.acos(ot.clamp(e,-1,1))};ot.asinClamped=function(e){return Math.asin(ot.clamp(e,-1,1))};ot.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};ot.logBase=function(e,t){return Math.log(e)/Math.log(t)};ot.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});ot.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});ot.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};ot.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};ot.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=ot.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?ot.PI_OVER_TWO-i:i,i=e<0?ot.PI-i:i,i=t<0?-i:i,i};var P=ot;function Qe(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}Qe.fromSpherical=function(e,t){u(t)||(t=new Qe);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};Qe.fromElements=function(e,t,n,i){return u(i)?(i.x=e,i.y=t,i.z=n,i):new Qe(e,t,n)};Qe.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new Qe(e.x,e.y,e.z)};Qe.fromCartesian4=Qe.clone;Qe.packedLength=3;Qe.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};Qe.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Qe),n.x=e[t++],n.y=e[t++],n.z=e[t],n};Qe.packArray=function(e,t){let n=e.length,i=n*3;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Qe.pack(e[o],t,o*3);return t};Qe.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=Qe.unpack(e,i,t[o])}return t};Qe.fromArray=Qe.unpack;Qe.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};Qe.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};Qe.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};Qe.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};Qe.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};Qe.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};Qe.magnitude=function(e){return Math.sqrt(Qe.magnitudeSquared(e))};var XI=new Qe;Qe.distance=function(e,t){return Qe.subtract(e,t,XI),Qe.magnitude(XI)};Qe.distanceSquared=function(e,t){return Qe.subtract(e,t,XI),Qe.magnitudeSquared(XI)};Qe.normalize=function(e,t){let n=Qe.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};Qe.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};Qe.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};Qe.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};Qe.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};Qe.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};Qe.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};Qe.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};Qe.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};Qe.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var DX=new Qe;Qe.lerp=function(e,t,n,i){return Qe.multiplyByScalar(t,n,DX),i=Qe.multiplyByScalar(e,1-n,i),Qe.add(DX,i,i)};var YI=new Qe,q8=new Qe;Qe.angleBetween=function(e,t){Qe.normalize(e,YI),Qe.normalize(t,q8);let n=Qe.dot(YI,q8),i=Qe.magnitude(Qe.cross(YI,q8,YI));return Math.atan2(i,n)};var Dbe=new Qe;Qe.mostOrthogonalAxis=function(e,t){let n=Qe.normalize(e,Dbe);return Qe.abs(n,n),n.x<=n.y?n.x<=n.z?t=Qe.clone(Qe.UNIT_X,t):t=Qe.clone(Qe.UNIT_Z,t):n.y<=n.z?t=Qe.clone(Qe.UNIT_Y,t):t=Qe.clone(Qe.UNIT_Z,t),t};Qe.projectVector=function(e,t,n){let i=Qe.dot(e,t)/Qe.dot(t,t);return Qe.multiplyByScalar(t,i,n)};Qe.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};Qe.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};Qe.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};Qe.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,l=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=l,n.y=f,n.z=d,n};Qe.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};Qe.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),Qe.fromRadians(e,t,n,i,o)};var Su=new Qe,gb=new Qe,Ibe=new Qe(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);Qe.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=u(i)?i.radiiSquared:Ibe,s=Math.cos(t);Su.x=s*Math.cos(e),Su.y=s*Math.sin(e),Su.z=Math.sin(t),Su=Qe.normalize(Su,Su),Qe.multiplyComponents(r,Su,gb);let a=Math.sqrt(Qe.dot(Su,gb));return gb=Qe.divideByScalar(gb,a,gb),Su=Qe.multiplyByScalar(Su,n,Su),u(o)||(o=new Qe),Qe.add(gb,Su,o)};Qe.fromDegreesArray=function(e,t,n){let i=e.length;u(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Qe.fromDegrees(r,s,0,t,n[a])}return n};Qe.fromRadiansArray=function(e,t,n){let i=e.length;u(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Qe.fromRadians(r,s,0,t,n[a])}return n};Qe.fromDegreesArrayHeights=function(e,t,n){let i=e.length;u(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Qe.fromDegrees(r,s,a,t,n[c])}return n};Qe.fromRadiansArrayHeights=function(e,t,n){let i=e.length;u(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Qe.fromRadians(r,s,a,t,n[c])}return n};Qe.ZERO=Object.freeze(new Qe(0,0,0));Qe.ONE=Object.freeze(new Qe(1,1,1));Qe.UNIT_X=Object.freeze(new Qe(1,0,0));Qe.UNIT_Y=Object.freeze(new Qe(0,1,0));Qe.UNIT_Z=Object.freeze(new Qe(0,0,1));Qe.prototype.clone=function(e){return Qe.clone(this,e)};Qe.prototype.equals=function(e){return Qe.equals(this,e)};Qe.prototype.equalsEpsilon=function(e,t,n){return Qe.equalsEpsilon(this,e,t,n)};Qe.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=Qe;function mt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}mt.fromElements=function(e,t,n,i,o){return u(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new mt(e,t,n,i)};mt.fromColor=function(e,t){return u(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new mt(e.red,e.green,e.blue,e.alpha)};mt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new mt(e.x,e.y,e.z,e.w)};mt.packedLength=4;mt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};mt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new mt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};mt.packArray=function(e,t){let n=e.length,i=n*4;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)mt.pack(e[o],t,o*4);return t};mt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=mt.unpack(e,i,t[o])}return t};mt.fromArray=mt.unpack;mt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};mt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};mt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};mt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};mt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.clamp(e.w,t.w,n.w);return i.x=o,i.y=r,i.z=s,i.w=a,i};mt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};mt.magnitude=function(e){return Math.sqrt(mt.magnitudeSquared(e))};var KI=new mt;mt.distance=function(e,t){return mt.subtract(e,t,KI),mt.magnitude(KI)};mt.distanceSquared=function(e,t){return mt.subtract(e,t,KI),mt.magnitudeSquared(KI)};mt.normalize=function(e,t){let n=mt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};mt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};mt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};mt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};mt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};mt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};mt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};mt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};mt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};mt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var IX=new mt;mt.lerp=function(e,t,n,i){return mt.multiplyByScalar(t,n,IX),i=mt.multiplyByScalar(e,1-n,i),mt.add(IX,i,i)};var Pbe=new mt;mt.mostOrthogonalAxis=function(e,t){let n=mt.normalize(e,Pbe);return mt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=mt.clone(mt.UNIT_X,t):t=mt.clone(mt.UNIT_W,t):n.z<=n.w?t=mt.clone(mt.UNIT_Z,t):t=mt.clone(mt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=mt.clone(mt.UNIT_Y,t):t=mt.clone(mt.UNIT_W,t):n.z<=n.w?t=mt.clone(mt.UNIT_Z,t):t=mt.clone(mt.UNIT_W,t),t};mt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};mt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};mt.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.equalsEpsilon(e.w,t.w,n,i)};mt.ZERO=Object.freeze(new mt(0,0,0,0));mt.ONE=Object.freeze(new mt(1,1,1,1));mt.UNIT_X=Object.freeze(new mt(1,0,0,0));mt.UNIT_Y=Object.freeze(new mt(0,1,0,0));mt.UNIT_Z=Object.freeze(new mt(0,0,1,0));mt.UNIT_W=Object.freeze(new mt(0,0,0,1));mt.prototype.clone=function(e){return mt.clone(this,e)};mt.prototype.equals=function(e){return mt.equals(this,e)};mt.prototype.equalsEpsilon=function(e,t,n){return mt.equalsEpsilon(this,e,t,n)};mt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Y8=new Float32Array(1),Aa=new Uint8Array(Y8.buffer),Obe=new Uint32Array([287454020]),Rbe=new Uint8Array(Obe.buffer),PX=Rbe[0]===68;mt.packFloat=function(e,t){return u(t)||(t=new mt),Y8[0]=e,PX?(t.x=Aa[0],t.y=Aa[1],t.z=Aa[2],t.w=Aa[3]):(t.x=Aa[3],t.y=Aa[2],t.z=Aa[1],t.w=Aa[0]),t};mt.unpackFloat=function(e){return PX?(Aa[0]=e.x,Aa[1]=e.y,Aa[2]=e.z,Aa[3]=e.w):(Aa[0]=e.w,Aa[1]=e.z,Aa[2]=e.y,Aa[3]=e.x),Y8[0]};var oe=mt;function Je(e,t,n,i,o,r,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(o,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(r,0),this[8]=y(c,0)}Je.packedLength=9;Je.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};Je.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Je),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};Je.packArray=function(e,t){let n=e.length,i=n*9;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Je.pack(e[o],t,o*9);return t};Je.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=Je.unpack(e,i,t[o])}return t};Je.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new Je(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};Je.fromArray=Je.unpack;Je.fromColumnMajorArray=function(e,t){return Je.clone(e,t)};Je.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new Je(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};Je.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,o=e.x*e.z,r=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,l=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-l+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-l+d,T=2*(a-r),A=2*(o-c),C=2*(a+r),S=-n-s+l+d;return u(t)?(t[0]=p,t[1]=x,t[2]=A,t[3]=g,t[4]=b,t[5]=C,t[6]=m,t[7]=T,t[8]=S,t):new Je(p,g,m,x,b,T,A,C,S)};Je.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),r=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,l=-o*s+a*r*i,f=a*s+o*r*i,d=n*s,p=o*i+a*r*s,g=-a*i+o*r*s,m=-r,x=a*n,b=o*n;return u(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=l,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new Je(c,l,f,d,p,g,m,x,b)};Je.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new Je(e.x,0,0,0,e.y,0,0,0,e.z)};Je.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new Je(e,0,0,0,e,0,0,0,e)};Je.fromCrossProduct=function(e,t){return u(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new Je(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};Je.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new Je(1,0,0,0,n,-i,0,i,n)};Je.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new Je(n,0,i,0,1,0,-i,0,n)};Je.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new Je(n,-i,0,i,n,0,0,0,1)};Je.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};Je.getElementIndex=function(e,t){return e*3+t};Je.getColumn=function(e,t,n){let i=t*3,o=e[i],r=e[i+1],s=e[i+2];return n.x=o,n.y=r,n.z=s,n};Je.setColumn=function(e,t,n,i){i=Je.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};Je.getRow=function(e,t,n){let i=e[t],o=e[t+3],r=e[t+6];return n.x=i,n.y=o,n.z=r,n};Je.setRow=function(e,t,n,i){return i=Je.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var Mbe=new h;Je.setScale=function(e,t,n){let i=Je.getScale(e,Mbe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var Lbe=new h;Je.setUniformScale=function(e,t,n){let i=Je.getScale(e,Lbe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var X8=new h;Je.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],X8)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],X8)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],X8)),t};var OX=new h;Je.getMaximumScale=function(e){return Je.getScale(e,OX),h.maximumComponent(OX)};var Nbe=new h;Je.setRotation=function(e,t,n){let i=Je.getScale(e,Nbe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var Fbe=new h;Je.getRotation=function(e,t){let n=Je.getScale(e,Fbe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};Je.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],r=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],l=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n[4]=a,n[5]=c,n[6]=l,n[7]=f,n[8]=d,n};Je.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};Je.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};Je.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[3]*o+e[6]*r,a=e[1]*i+e[4]*o+e[7]*r,c=e[2]*i+e[5]*o+e[8]*r;return n.x=s,n.y=a,n.z=c,n};Je.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};Je.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};Je.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};Je.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};Je.transpose=function(e,t){let n=e[0],i=e[3],o=e[6],r=e[1],s=e[4],a=e[7],c=e[2],l=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t[4]=s,t[5]=a,t[6]=c,t[7]=l,t[8]=f,t};function Bbe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var K8=[1,0,0],Z8=[2,2,1];function kbe(e){let t=0;for(let n=0;n<3;++n){let i=e[Je.getElementIndex(Z8[n],K8[n])];t+=2*i*i}return Math.sqrt(t)}function Ube(e,t){let n=P.EPSILON15,i=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(e[Je.getElementIndex(Z8[l],K8[l])]);f>i&&(o=l,i=f)}let r=1,s=0,a=K8[o],c=Z8[o];if(Math.abs(e[Je.getElementIndex(c,a)])>n){let l=e[Je.getElementIndex(c,c)],f=e[Je.getElementIndex(a,a)],d=e[Je.getElementIndex(c,a)],p=(l-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=Je.clone(Je.IDENTITY,t),t[Je.getElementIndex(a,a)]=t[Je.getElementIndex(c,c)]=r,t[Je.getElementIndex(c,a)]=s,t[Je.getElementIndex(a,c)]=-s,t}var ZI=new Je,RX=new Je;Je.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;u(t)||(t={});let s=t.unitary=Je.clone(Je.IDENTITY,t.unitary),a=t.diagonal=Je.clone(e,t.diagonal),c=n*Bbe(a);for(;r<i&&kbe(a)>c;)Ube(a,ZI),Je.transpose(ZI,RX),Je.multiply(a,ZI,a),Je.multiply(RX,a,a),Je.multiply(s,ZI,s),++o>2&&(++r,o=0);return t};Je.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};Je.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],l=e[8];return t*(r*l-c*s)+o*(c*i-n*l)+a*(n*s-r*i)};Je.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],l=e[7],f=e[8],d=Je.determinant(e);t[0]=s*f-l*a,t[1]=l*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*l-c*s,t[7]=c*i-n*l,t[8]=n*s-r*i;let p=1/d;return Je.multiplyByScalar(t,p,t)};var Vbe=new Je;Je.inverseTranspose=function(e,t){return Je.inverse(Je.transpose(e,Vbe),t)};Je.equals=function(e,t){return e===t||u(e)&&u(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};Je.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};Je.IDENTITY=Object.freeze(new Je(1,0,0,0,1,0,0,0,1));Je.ZERO=Object.freeze(new Je(0,0,0,0,0,0,0,0,0));Je.COLUMN0ROW0=0;Je.COLUMN0ROW1=1;Je.COLUMN0ROW2=2;Je.COLUMN1ROW0=3;Je.COLUMN1ROW1=4;Je.COLUMN1ROW2=5;Je.COLUMN2ROW0=6;Je.COLUMN2ROW1=7;Je.COLUMN2ROW2=8;Object.defineProperties(Je.prototype,{length:{get:function(){return Je.packedLength}}});Je.prototype.clone=function(e){return Je.clone(this,e)};Je.prototype.equals=function(e){return Je.equals(this,e)};Je.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};Je.prototype.equalsEpsilon=function(e,t){return Je.equalsEpsilon(this,e,t)};Je.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]})
- (${this[1]}, ${this[4]}, ${this[7]})
- (${this[2]}, ${this[5]}, ${this[8]})`};var $=Je;function GE(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(GE.prototype=Object.create(Error.prototype),GE.prototype.constructor=GE);GE.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=`
- ${this.stack.toString()}`),e};var ue=GE;function $e(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(l,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(m,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(x,0)}$e.packedLength=16;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};$e.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new $e),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*16;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)$e.pack(e[o],t,o*16);return t};$e.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=$e.unpack(e,i,t[o])}return t};$e.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new $e(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};$e.fromArray=$e.unpack;$e.fromColumnMajorArray=function(e,t){return $e.clone(e,t)};$e.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new $e(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};$e.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),u(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new $e(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};$e.fromTranslationQuaternionRotationScale=function(e,t,n,i){u(i)||(i=new $e);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,l=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,m=t.z*t.z,x=t.z*t.w,b=t.w*t.w,T=a-d-m+b,A=2*(c-x),C=2*(l+g),S=2*(c+x),w=-a+d-m+b,D=2*(p-f),O=2*(l-g),R=2*(p+f),N=-a-d+m+b;return i[0]=T*o,i[1]=S*o,i[2]=O*o,i[3]=0,i[4]=A*r,i[5]=w*r,i[6]=R*r,i[7]=0,i[8]=C*s,i[9]=D*s,i[10]=N*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};$e.fromTranslationRotationScale=function(e,t){return $e.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};$e.fromTranslation=function(e,t){return $e.fromRotationTranslation($.IDENTITY,e,t)};$e.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};$e.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};$e.fromRotation=function(e,t){return u(t)||(t=new $e),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var yb=new h,xb=new h,WE=new h;$e.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,yb),h.normalize(h.cross(yb,o,xb),xb),h.normalize(h.cross(xb,yb,WE),WE);let r=xb.x,s=xb.y,a=xb.z,c=yb.x,l=yb.y,f=yb.z,d=WE.x,p=WE.y,g=WE.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,A=d*-m+p*-x+g*-b,C=c*m+l*x+f*b;return u(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-l,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=A,t[14]=C,t[15]=1,t):new $e(r,s,a,T,d,p,g,A,-c,-l,-f,C,0,0,0,1)};$e.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),l=2*i*n/(n-i);return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=-1,o[12]=0,o[13]=0,o[14]=l,o[15]=0,o};$e.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),l=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*l;return a*=2,c*=2,l*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=l,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};$e.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),l=(t+e)/(t-e),f=(i+n)/(i-n),d=-(r+o)/(r-o),p=-1,g=-2*r*o/(r-o);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=l,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};$e.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),l=(i+n)/(i-n),f=-1,d=-1,p=-2*o;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=c,r[9]=l,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};$e.computeViewportTransformation=function(e,t,n,i){u(i)||(i=new $e),e=y(e,y.EMPTY_OBJECT);let o=y(e.x,0),r=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,l=a*.5,f=(n-t)*.5,d=c,p=l,g=f,m=o+c,x=r+l,b=t+f,T=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=m,i[13]=x,i[14]=b,i[15]=T,i};$e.computeView=function(e,t,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-t.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-t.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-t.z,o[11]=0,o[12]=-h.dot(i,e),o[13]=-h.dot(n,e),o[14]=h.dot(t,e),o[15]=1,o};$e.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};$e.getElementIndex=function(e,t){return e*4+t};$e.getColumn=function(e,t,n){let i=t*4,o=e[i],r=e[i+1],s=e[i+2],a=e[i+3];return n.x=o,n.y=r,n.z=s,n.w=a,n};$e.setColumn=function(e,t,n,i){i=$e.clone(e,i);let o=t*4;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i[o+3]=n.w,i};$e.getRow=function(e,t,n){let i=e[t],o=e[t+4],r=e[t+8],s=e[t+12];return n.x=i,n.y=o,n.z=r,n.w=s,n};$e.setRow=function(e,t,n,i){return i=$e.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};$e.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var zbe=new h;$e.setScale=function(e,t,n){let i=$e.getScale(e,zbe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Hbe=new h;$e.setUniformScale=function(e,t,n){let i=$e.getScale(e,Hbe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var $8=new h;$e.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],$8)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],$8)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],$8)),t};var MX=new h;$e.getMaximumScale=function(e){return $e.getScale(e,MX),h.maximumComponent(MX)};var Gbe=new h;$e.setRotation=function(e,t,n){let i=$e.getScale(e,Gbe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Wbe=new h;$e.getRotation=function(e,t){let n=$e.getScale(e,Wbe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};$e.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],l=e[6],f=e[7],d=e[8],p=e[9],g=e[10],m=e[11],x=e[12],b=e[13],T=e[14],A=e[15],C=t[0],S=t[1],w=t[2],D=t[3],O=t[4],R=t[5],N=t[6],F=t[7],_=t[8],E=t[9],v=t[10],I=t[11],M=t[12],B=t[13],H=t[14],U=t[15],G=i*C+a*S+d*w+x*D,k=o*C+c*S+p*w+b*D,Y=r*C+l*S+g*w+T*D,q=s*C+f*S+m*w+A*D,Q=i*O+a*R+d*N+x*F,W=o*O+c*R+p*N+b*F,K=r*O+l*R+g*N+T*F,Z=s*O+f*R+m*N+A*F,me=i*_+a*E+d*v+x*I,xe=o*_+c*E+p*v+b*I,re=r*_+l*E+g*v+T*I,ge=s*_+f*E+m*v+A*I,ye=i*M+a*B+d*H+x*U,Ae=o*M+c*B+p*H+b*U,De=r*M+l*B+g*H+T*U,Fe=s*M+f*B+m*H+A*U;return n[0]=G,n[1]=k,n[2]=Y,n[3]=q,n[4]=Q,n[5]=W,n[6]=K,n[7]=Z,n[8]=me,n[9]=xe,n[10]=re,n[11]=ge,n[12]=ye,n[13]=Ae,n[14]=De,n[15]=Fe,n};$e.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};$e.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};$e.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],l=e[8],f=e[9],d=e[10],p=e[12],g=e[13],m=e[14],x=t[0],b=t[1],T=t[2],A=t[4],C=t[5],S=t[6],w=t[8],D=t[9],O=t[10],R=t[12],N=t[13],F=t[14],_=i*x+s*b+l*T,E=o*x+a*b+f*T,v=r*x+c*b+d*T,I=i*A+s*C+l*S,M=o*A+a*C+f*S,B=r*A+c*C+d*S,H=i*w+s*D+l*O,U=o*w+a*D+f*O,G=r*w+c*D+d*O,k=i*R+s*N+l*F+p,Y=o*R+a*N+f*F+g,q=r*R+c*N+d*F+m;return n[0]=_,n[1]=E,n[2]=v,n[3]=0,n[4]=I,n[5]=M,n[6]=B,n[7]=0,n[8]=H,n[9]=U,n[10]=G,n[11]=0,n[12]=k,n[13]=Y,n[14]=q,n[15]=1,n};$e.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],l=e[8],f=e[9],d=e[10],p=t[0],g=t[1],m=t[2],x=t[3],b=t[4],T=t[5],A=t[6],C=t[7],S=t[8],w=i*p+s*g+l*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,R=i*x+s*b+l*T,N=o*x+a*b+f*T,F=r*x+c*b+d*T,_=i*A+s*C+l*S,E=o*A+a*C+f*S,v=r*A+c*C+d*S;return n[0]=w,n[1]=D,n[2]=O,n[3]=0,n[4]=R,n[5]=N,n[6]=F,n[7]=0,n[8]=_,n[9]=E,n[10]=v,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByTranslation=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=i*e[0]+o*e[4]+r*e[8]+e[12],a=i*e[1]+o*e[5]+r*e[9]+e[13],c=i*e[2]+o*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};$e.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?$e.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=o*e[4],n[5]=o*e[5],n[6]=o*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};$e.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=t.w,a=e[0]*i+e[4]*o+e[8]*r+e[12]*s,c=e[1]*i+e[5]*o+e[9]*r+e[13]*s,l=e[2]*i+e[6]*o+e[10]*r+e[14]*s,f=e[3]*i+e[7]*o+e[11]*r+e[15]*s;return n.x=a,n.y=c,n.z=l,n.w=f,n};$e.multiplyByPointAsVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r,a=e[1]*i+e[5]*o+e[9]*r,c=e[2]*i+e[6]*o+e[10]*r;return n.x=s,n.y=a,n.z=c,n};$e.multiplyByPoint=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r+e[12],a=e[1]*i+e[5]*o+e[9]*r+e[13],c=e[2]*i+e[6]*o+e[10]*r+e[14];return n.x=s,n.y=a,n.z=c,n};$e.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};$e.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};$e.transpose=function(e,t){let n=e[1],i=e[2],o=e[3],r=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=s,t[14]=a,t[15]=e[15],t};$e.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};$e.equals=function(e,t){return e===t||u(e)&&u(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};$e.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};$e.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};$e.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var jbe=new $,qbe=new $,Ybe=new oe,Xbe=new oe(0,0,0,1);$e.inverse=function(e,t){let n=e[0],i=e[4],o=e[8],r=e[12],s=e[1],a=e[5],c=e[9],l=e[13],f=e[2],d=e[6],p=e[10],g=e[14],m=e[3],x=e[7],b=e[11],T=e[15],A=p*T,C=g*b,S=d*T,w=g*x,D=d*b,O=p*x,R=f*T,N=g*m,F=f*b,_=p*m,E=f*x,v=d*m,I=A*a+w*c+D*l-(C*a+S*c+O*l),M=C*s+R*c+_*l-(A*s+N*c+F*l),B=S*s+N*a+E*l-(w*s+R*a+v*l),H=O*s+F*a+v*c-(D*s+_*a+E*c),U=C*i+S*o+O*r-(A*i+w*o+D*r),G=A*n+N*o+F*r-(C*n+R*o+_*r),k=w*n+R*i+v*r-(S*n+N*i+E*r),Y=D*n+_*i+E*o-(O*n+F*i+v*o);A=o*l,C=r*c,S=i*l,w=r*a,D=i*c,O=o*a,R=n*l,N=r*s,F=n*c,_=o*s,E=n*a,v=i*s;let q=A*x+w*b+D*T-(C*x+S*b+O*T),Q=C*m+R*b+_*T-(A*m+N*b+F*T),W=S*m+N*x+E*T-(w*m+R*x+v*T),K=O*m+F*x+v*b-(D*m+_*x+E*b),Z=S*p+O*g+C*d-(D*g+A*d+w*p),me=F*g+A*f+N*p-(R*p+_*g+C*f),xe=R*d+v*g+w*f-(E*g+S*f+N*d),re=E*p+D*f+_*d-(F*d+v*p+O*f),ge=n*I+i*M+o*B+r*H;if(Math.abs(ge)<P.EPSILON21){if($.equalsEpsilon($e.getMatrix3(e,jbe),qbe,P.EPSILON7)&&oe.equals($e.getRow(e,3,Ybe),Xbe))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new ue("matrix is not invertible because its determinate is zero.")}return ge=1/ge,t[0]=I*ge,t[1]=M*ge,t[2]=B*ge,t[3]=H*ge,t[4]=U*ge,t[5]=G*ge,t[6]=k*ge,t[7]=Y*ge,t[8]=q*ge,t[9]=Q*ge,t[10]=W*ge,t[11]=K*ge,t[12]=Z*ge,t[13]=me*ge,t[14]=xe*ge,t[15]=re*ge,t};$e.inverseTransformation=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[4],s=e[5],a=e[6],c=e[8],l=e[9],f=e[10],d=e[12],p=e[13],g=e[14],m=-n*d-i*p-o*g,x=-r*d-s*p-a*g,b=-c*d-l*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=l,t[7]=0,t[8]=o,t[9]=a,t[10]=f,t[11]=0,t[12]=m,t[13]=x,t[14]=b,t[15]=1,t};var Kbe=new $e;$e.inverseTranspose=function(e,t){return $e.inverse($e.transpose(e,Kbe),t)};$e.IDENTITY=Object.freeze(new $e(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));$e.ZERO=Object.freeze(new $e(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));$e.COLUMN0ROW0=0;$e.COLUMN0ROW1=1;$e.COLUMN0ROW2=2;$e.COLUMN0ROW3=3;$e.COLUMN1ROW0=4;$e.COLUMN1ROW1=5;$e.COLUMN1ROW2=6;$e.COLUMN1ROW3=7;$e.COLUMN2ROW0=8;$e.COLUMN2ROW1=9;$e.COLUMN2ROW2=10;$e.COLUMN2ROW3=11;$e.COLUMN3ROW0=12;$e.COLUMN3ROW1=13;$e.COLUMN3ROW2=14;$e.COLUMN3ROW3=15;Object.defineProperties($e.prototype,{length:{get:function(){return $e.packedLength}}});$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};$e.prototype.equalsEpsilon=function(e,t){return $e.equalsEpsilon(this,e,t)};$e.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]})
- (${this[1]}, ${this[5]}, ${this[9]}, ${this[13]})
- (${this[2]}, ${this[6]}, ${this[10]}, ${this[14]})
- (${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var L=$e;var Zbe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},ee=Object.freeze(Zbe);var $be=new h;function Ht(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var Ps={};Ps[ee.FLOAT]="float";Ps[ee.FLOAT_VEC2]="vec2";Ps[ee.FLOAT_VEC3]="vec3";Ps[ee.FLOAT_VEC4]="vec4";Ps[ee.INT]="int";Ps[ee.INT_VEC2]="ivec2";Ps[ee.INT_VEC3]="ivec3";Ps[ee.INT_VEC4]="ivec4";Ps[ee.BOOL]="bool";Ps[ee.BOOL_VEC2]="bvec2";Ps[ee.BOOL_VEC3]="bvec3";Ps[ee.BOOL_VEC4]="bvec4";Ps[ee.FLOAT_MAT2]="mat2";Ps[ee.FLOAT_MAT3]="mat3";Ps[ee.FLOAT_MAT4]="mat4";Ps[ee.SAMPLER_2D]="sampler2D";Ps[ee.SAMPLER_CUBE]="samplerCube";Ht.prototype.getDeclaration=function(e){let t=`uniform ${Ps[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var Qbe={czm_viewport:new Ht({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new Ht({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new Ht({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new Ht({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_entireFrustum:new Ht({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new Ht({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new Ht({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return L.getTranslation(e.inverseView,$be)}}),czm_frameNumber:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new Ht({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new Ht({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new Ht({size:1,datatype:ee.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new Ht({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new Ht({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new Ht({size:9,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new Ht({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.fogDensity}}),czm_splitPosition:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new Ht({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new Ht({size:1,datatype:ee.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new Ht({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},t_=Qbe;function Jbe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Gn=Jbe;function eTe(){return!0}function tTe(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=eTe}var le=tTe;var hs={UNSIGNED_BYTE:ee.UNSIGNED_BYTE,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,UNSIGNED_INT:ee.UNSIGNED_INT};hs.getSizeInBytes=function(e){switch(e){case hs.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case hs.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case hs.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};hs.fromSizeInBytes=function(e){switch(e){case 2:return hs.UNSIGNED_SHORT;case 4:return hs.UNSIGNED_INT;case 1:return hs.UNSIGNED_BYTE}};hs.validate=function(e){return u(e)&&(e===hs.UNSIGNED_BYTE||e===hs.UNSIGNED_SHORT||e===hs.UNSIGNED_INT)};hs.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};hs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};hs.fromTypedArray=function(e){if(e instanceof Uint8Array)return hs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return hs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return hs.UNSIGNED_INT};var ke=Object.freeze(hs);var $I={STREAM_DRAW:ee.STREAM_DRAW,STATIC_DRAW:ee.STATIC_DRAW,DYNAMIC_DRAW:ee.DYNAMIC_DRAW,validate:function(e){return e===$I.STREAM_DRAW||e===$I.STATIC_DRAW||e===$I.DYNAMIC_DRAW}},Be=Object.freeze($I);function wu(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=u(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Gn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}wu.createVertexBuffer=function(e){return new wu({context:e.context,bufferTarget:ee.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};wu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=ke.getSizeInBytes(n),o=new wu({context:t,bufferTarget:ee.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(wu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});wu.prototype._getBuffer=function(){return this._buffer};wu.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};wu.prototype.copyFromBuffer=function(e,t,n,i){let o=ee.COPY_READ_BUFFER,r=ee.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};wu.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=ee.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};wu.prototype.isDestroyed=function(){return!1};wu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),le(this)};var ut=wu;var n_,dr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},Vc={};Object.defineProperties(Vc,{element:{get:function(){if(Vc.supportsFullscreen())return document[dr.fullscreenElement]}},changeEventName:{get:function(){if(Vc.supportsFullscreen())return dr.fullscreenchange}},errorEventName:{get:function(){if(Vc.supportsFullscreen())return dr.fullscreenerror}},enabled:{get:function(){if(Vc.supportsFullscreen())return document[dr.fullscreenEnabled]}},fullscreen:{get:function(){if(Vc.supportsFullscreen())return Vc.element!==null}}});Vc.supportsFullscreen=function(){if(u(n_))return n_;n_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return dr.requestFullscreen="requestFullscreen",dr.exitFullscreen="exitFullscreen",dr.fullscreenEnabled="fullscreenEnabled",dr.fullscreenElement="fullscreenElement",dr.fullscreenchange="fullscreenchange",dr.fullscreenerror="fullscreenerror",n_=!0,n_;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i<o;++i){let r=t[i];n=`${r}RequestFullscreen`,typeof e[n]=="function"?(dr.requestFullscreen=n,n_=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(dr.requestFullscreen=n,n_=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?dr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(dr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?dr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(dr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?dr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(dr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),dr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),dr.fullscreenerror=n)}return n_};Vc.requestFullscreen=function(e,t){Vc.supportsFullscreen()&&e[dr.requestFullscreen]({vrDisplay:t})};Vc.exitFullscreen=function(){Vc.supportsFullscreen()&&document[dr.exitFullscreen]()};Vc._names=dr;var hr=Vc;var Ca;typeof navigator<"u"?Ca=navigator:Ca={};function jy(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var QI,LX;function iH(){if(!u(QI)&&(QI=!1,!oP())){let e=/ Chrome\/([\.0-9]+)/.exec(Ca.userAgent);e!==null&&(QI=!0,LX=jy(e[1]))}return QI}function nTe(){return iH()&&LX}var JI,NX;function FX(){if(!u(JI)&&(JI=!1,!iH()&&!oP()&&/ Safari\/[\.0-9]+/.test(Ca.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Ca.userAgent);e!==null&&(JI=!0,NX=jy(e[1]))}return JI}function iTe(){return FX()&&NX}var eP,tH;function BX(){if(!u(eP)){eP=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Ca.userAgent);e!==null&&(eP=!0,tH=jy(e[1]),tH.isNightly=!!e[2])}return eP}function oTe(){return BX()&&tH}var jE,nH;function kX(){if(!u(jE)){jE=!1;let e;Ca.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Ca.userAgent),e!==null&&(jE=!0,nH=jy(e[1]))):Ca.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Ca.userAgent),e!==null&&(jE=!0,nH=jy(e[1])))}return jE}function rTe(){return kX()&&nH}var tP,UX;function oP(){if(!u(tP)){tP=!1;let e=/ Edg\/([\.0-9]+)/.exec(Ca.userAgent);e!==null&&(tP=!0,UX=jy(e[1]))}return tP}function sTe(){return oP()&&UX}var nP,oH;function rP(){if(!u(nP)){nP=!1;let e=/Firefox\/([\.0-9]+)/.exec(Ca.userAgent);e!==null&&(nP=!0,oH=jy(e[1]))}return nP}var Q8;function aTe(){return u(Q8)||(Q8=/Windows/i.test(Ca.appVersion)),Q8}var J8;function cTe(){return u(J8)||(J8=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),J8}function lTe(){return rP()&&oH}var eH;function uTe(){return u(eH)||(eH=!rP()&&typeof PointerEvent<"u"&&(!u(Ca.pointerEnabled)||Ca.pointerEnabled)),eH}var VX,iP;function zX(){if(!u(iP)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;iP=u(t)&&t!=="",iP&&(VX=t)}return iP}function fTe(){return zX()?VX:void 0}function nc(){return nc._result}nc._promise=void 0;nc._result=void 0;nc.initialize=function(){return u(nc._promise)||(nc._promise=new Promise(e=>{let t=new Image;t.onload=function(){nc._result=t.width>0&&t.height>0,e(nc._result)},t.onerror=function(){nc._result=!1,e(nc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),nc._promise};Object.defineProperties(nc,{initialized:{get:function(){return u(nc._result)}}});var bb=[];typeof ArrayBuffer<"u"&&(bb.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&bb.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&bb.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&bb.push(BigInt64Array),typeof BigUint64Array<"u"&&bb.push(BigUint64Array));var vu={isChrome:iH,chromeVersion:nTe,isSafari:FX,safariVersion:iTe,isWebkit:BX,webkitVersion:oTe,isInternetExplorer:kX,internetExplorerVersion:rTe,isEdge:oP,edgeVersion:sTe,isFirefox:rP,firefoxVersion:lTe,isWindows:aTe,isIPadOrIOS:cTe,hardwareConcurrency:y(Ca.hardwareConcurrency,3),supportsPointerEvents:uTe,supportsImageRenderingPixelated:zX,supportsWebP:nc,imageRenderingValue:fTe,typedArrayTypes:bb};vu.supportsBasis=function(e){return vu.supportsWebAssembly()&&e.context.supportsBasis};vu.supportsFullscreen=function(){return hr.supportsFullscreen()};vu.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};vu.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};vu.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};vu.supportsBigInt=function(){return typeof BigInt<"u"};vu.supportsWebWorkers=function(){return typeof Worker<"u"};vu.supportsWebAssembly=function(){return typeof WebAssembly<"u"};vu.supportsWebgl2=function(e){return e.context.webgl2};vu.supportsEsmWebWorkers=function(){return!rP()||parseInt(oH)>=114};var Bt=vu;function rH(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ne(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ne.fromCartesian4=function(e,t){return u(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ne(e.x,e.y,e.z,e.w)};ne.fromBytes=function(e,t,n,i,o){return e=ne.byteToFloat(y(e,255)),t=ne.byteToFloat(y(t,255)),n=ne.byteToFloat(y(n,255)),i=ne.byteToFloat(y(i,255)),u(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ne(e,t,n,i)};ne.fromAlpha=function(e,t,n){return u(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ne(e.red,e.green,e.blue,t)};var sH,aH,Sm;Bt.supportsTypedArrays()&&(sH=new ArrayBuffer(4),aH=new Uint32Array(sH),Sm=new Uint8Array(sH));ne.fromRgba=function(e,t){return aH[0]=e,ne.fromBytes(Sm[0],Sm[1],Sm[2],Sm[3],t)};ne.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let l=2*n-c;r=rH(l,c,e+1/3),s=rH(l,c,e),a=rH(l,c,e-1/3)}return u(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ne(r,s,a,i)};ne.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!u(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!u(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!u(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!u(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return u(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ne(n,i,o,r)};var dTe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,hTe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,mTe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,pTe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ne.fromCssColorString=function(e,t){u(t)||(t=new ne),e=e.trim();let n=ne[e.toUpperCase()];if(u(n))return ne.clone(n,t),t;let i=dTe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=hTe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=mTe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=pTe.exec(e),i!==null?ne.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ne.packedLength=4;ne.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ne.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ne),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ne.byteToFloat=function(e){return e/255};ne.floatToByte=function(e){return e===1?255:e*256|0};ne.clone=function(e,t){if(u(e))return u(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ne(e.red,e.green,e.blue,e.alpha)};ne.equals=function(e,t){return e===t||u(e)&&u(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ne.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ne.prototype.clone=function(e){return ne.clone(this,e)};ne.prototype.equals=function(e){return ne.equals(this,e)};ne.prototype.equalsEpsilon=function(e,t){return this===e||u(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ne.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ne.prototype.toCssColorString=function(){let e=ne.floatToByte(this.red),t=ne.floatToByte(this.green),n=ne.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ne.prototype.toCssHexString=function(){let e=ne.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ne.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ne.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ne.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ne.prototype.toBytes=function(e){let t=ne.floatToByte(this.red),n=ne.floatToByte(this.green),i=ne.floatToByte(this.blue),o=ne.floatToByte(this.alpha);return u(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ne.prototype.toRgba=function(){return Sm[0]=ne.floatToByte(this.red),Sm[1]=ne.floatToByte(this.green),Sm[2]=ne.floatToByte(this.blue),Sm[3]=ne.floatToByte(this.alpha),aH[0]};ne.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ne.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ne.prototype.withAlpha=function(e,t){return ne.fromAlpha(this,e,t)};ne.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ne.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ne.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ne.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ne.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ne.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ne.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ne.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ne.ALICEBLUE=Object.freeze(ne.fromCssColorString("#F0F8FF"));ne.ANTIQUEWHITE=Object.freeze(ne.fromCssColorString("#FAEBD7"));ne.AQUA=Object.freeze(ne.fromCssColorString("#00FFFF"));ne.AQUAMARINE=Object.freeze(ne.fromCssColorString("#7FFFD4"));ne.AZURE=Object.freeze(ne.fromCssColorString("#F0FFFF"));ne.BEIGE=Object.freeze(ne.fromCssColorString("#F5F5DC"));ne.BISQUE=Object.freeze(ne.fromCssColorString("#FFE4C4"));ne.BLACK=Object.freeze(ne.fromCssColorString("#000000"));ne.BLANCHEDALMOND=Object.freeze(ne.fromCssColorString("#FFEBCD"));ne.BLUE=Object.freeze(ne.fromCssColorString("#0000FF"));ne.BLUEVIOLET=Object.freeze(ne.fromCssColorString("#8A2BE2"));ne.BROWN=Object.freeze(ne.fromCssColorString("#A52A2A"));ne.BURLYWOOD=Object.freeze(ne.fromCssColorString("#DEB887"));ne.CADETBLUE=Object.freeze(ne.fromCssColorString("#5F9EA0"));ne.CHARTREUSE=Object.freeze(ne.fromCssColorString("#7FFF00"));ne.CHOCOLATE=Object.freeze(ne.fromCssColorString("#D2691E"));ne.CORAL=Object.freeze(ne.fromCssColorString("#FF7F50"));ne.CORNFLOWERBLUE=Object.freeze(ne.fromCssColorString("#6495ED"));ne.CORNSILK=Object.freeze(ne.fromCssColorString("#FFF8DC"));ne.CRIMSON=Object.freeze(ne.fromCssColorString("#DC143C"));ne.CYAN=Object.freeze(ne.fromCssColorString("#00FFFF"));ne.DARKBLUE=Object.freeze(ne.fromCssColorString("#00008B"));ne.DARKCYAN=Object.freeze(ne.fromCssColorString("#008B8B"));ne.DARKGOLDENROD=Object.freeze(ne.fromCssColorString("#B8860B"));ne.DARKGRAY=Object.freeze(ne.fromCssColorString("#A9A9A9"));ne.DARKGREEN=Object.freeze(ne.fromCssColorString("#006400"));ne.DARKGREY=ne.DARKGRAY;ne.DARKKHAKI=Object.freeze(ne.fromCssColorString("#BDB76B"));ne.DARKMAGENTA=Object.freeze(ne.fromCssColorString("#8B008B"));ne.DARKOLIVEGREEN=Object.freeze(ne.fromCssColorString("#556B2F"));ne.DARKORANGE=Object.freeze(ne.fromCssColorString("#FF8C00"));ne.DARKORCHID=Object.freeze(ne.fromCssColorString("#9932CC"));ne.DARKRED=Object.freeze(ne.fromCssColorString("#8B0000"));ne.DARKSALMON=Object.freeze(ne.fromCssColorString("#E9967A"));ne.DARKSEAGREEN=Object.freeze(ne.fromCssColorString("#8FBC8F"));ne.DARKSLATEBLUE=Object.freeze(ne.fromCssColorString("#483D8B"));ne.DARKSLATEGRAY=Object.freeze(ne.fromCssColorString("#2F4F4F"));ne.DARKSLATEGREY=ne.DARKSLATEGRAY;ne.DARKTURQUOISE=Object.freeze(ne.fromCssColorString("#00CED1"));ne.DARKVIOLET=Object.freeze(ne.fromCssColorString("#9400D3"));ne.DEEPPINK=Object.freeze(ne.fromCssColorString("#FF1493"));ne.DEEPSKYBLUE=Object.freeze(ne.fromCssColorString("#00BFFF"));ne.DIMGRAY=Object.freeze(ne.fromCssColorString("#696969"));ne.DIMGREY=ne.DIMGRAY;ne.DODGERBLUE=Object.freeze(ne.fromCssColorString("#1E90FF"));ne.FIREBRICK=Object.freeze(ne.fromCssColorString("#B22222"));ne.FLORALWHITE=Object.freeze(ne.fromCssColorString("#FFFAF0"));ne.FORESTGREEN=Object.freeze(ne.fromCssColorString("#228B22"));ne.FUCHSIA=Object.freeze(ne.fromCssColorString("#FF00FF"));ne.GAINSBORO=Object.freeze(ne.fromCssColorString("#DCDCDC"));ne.GHOSTWHITE=Object.freeze(ne.fromCssColorString("#F8F8FF"));ne.GOLD=Object.freeze(ne.fromCssColorString("#FFD700"));ne.GOLDENROD=Object.freeze(ne.fromCssColorString("#DAA520"));ne.GRAY=Object.freeze(ne.fromCssColorString("#808080"));ne.GREEN=Object.freeze(ne.fromCssColorString("#008000"));ne.GREENYELLOW=Object.freeze(ne.fromCssColorString("#ADFF2F"));ne.GREY=ne.GRAY;ne.HONEYDEW=Object.freeze(ne.fromCssColorString("#F0FFF0"));ne.HOTPINK=Object.freeze(ne.fromCssColorString("#FF69B4"));ne.INDIANRED=Object.freeze(ne.fromCssColorString("#CD5C5C"));ne.INDIGO=Object.freeze(ne.fromCssColorString("#4B0082"));ne.IVORY=Object.freeze(ne.fromCssColorString("#FFFFF0"));ne.KHAKI=Object.freeze(ne.fromCssColorString("#F0E68C"));ne.LAVENDER=Object.freeze(ne.fromCssColorString("#E6E6FA"));ne.LAVENDAR_BLUSH=Object.freeze(ne.fromCssColorString("#FFF0F5"));ne.LAWNGREEN=Object.freeze(ne.fromCssColorString("#7CFC00"));ne.LEMONCHIFFON=Object.freeze(ne.fromCssColorString("#FFFACD"));ne.LIGHTBLUE=Object.freeze(ne.fromCssColorString("#ADD8E6"));ne.LIGHTCORAL=Object.freeze(ne.fromCssColorString("#F08080"));ne.LIGHTCYAN=Object.freeze(ne.fromCssColorString("#E0FFFF"));ne.LIGHTGOLDENRODYELLOW=Object.freeze(ne.fromCssColorString("#FAFAD2"));ne.LIGHTGRAY=Object.freeze(ne.fromCssColorString("#D3D3D3"));ne.LIGHTGREEN=Object.freeze(ne.fromCssColorString("#90EE90"));ne.LIGHTGREY=ne.LIGHTGRAY;ne.LIGHTPINK=Object.freeze(ne.fromCssColorString("#FFB6C1"));ne.LIGHTSEAGREEN=Object.freeze(ne.fromCssColorString("#20B2AA"));ne.LIGHTSKYBLUE=Object.freeze(ne.fromCssColorString("#87CEFA"));ne.LIGHTSLATEGRAY=Object.freeze(ne.fromCssColorString("#778899"));ne.LIGHTSLATEGREY=ne.LIGHTSLATEGRAY;ne.LIGHTSTEELBLUE=Object.freeze(ne.fromCssColorString("#B0C4DE"));ne.LIGHTYELLOW=Object.freeze(ne.fromCssColorString("#FFFFE0"));ne.LIME=Object.freeze(ne.fromCssColorString("#00FF00"));ne.LIMEGREEN=Object.freeze(ne.fromCssColorString("#32CD32"));ne.LINEN=Object.freeze(ne.fromCssColorString("#FAF0E6"));ne.MAGENTA=Object.freeze(ne.fromCssColorString("#FF00FF"));ne.MAROON=Object.freeze(ne.fromCssColorString("#800000"));ne.MEDIUMAQUAMARINE=Object.freeze(ne.fromCssColorString("#66CDAA"));ne.MEDIUMBLUE=Object.freeze(ne.fromCssColorString("#0000CD"));ne.MEDIUMORCHID=Object.freeze(ne.fromCssColorString("#BA55D3"));ne.MEDIUMPURPLE=Object.freeze(ne.fromCssColorString("#9370DB"));ne.MEDIUMSEAGREEN=Object.freeze(ne.fromCssColorString("#3CB371"));ne.MEDIUMSLATEBLUE=Object.freeze(ne.fromCssColorString("#7B68EE"));ne.MEDIUMSPRINGGREEN=Object.freeze(ne.fromCssColorString("#00FA9A"));ne.MEDIUMTURQUOISE=Object.freeze(ne.fromCssColorString("#48D1CC"));ne.MEDIUMVIOLETRED=Object.freeze(ne.fromCssColorString("#C71585"));ne.MIDNIGHTBLUE=Object.freeze(ne.fromCssColorString("#191970"));ne.MINTCREAM=Object.freeze(ne.fromCssColorString("#F5FFFA"));ne.MISTYROSE=Object.freeze(ne.fromCssColorString("#FFE4E1"));ne.MOCCASIN=Object.freeze(ne.fromCssColorString("#FFE4B5"));ne.NAVAJOWHITE=Object.freeze(ne.fromCssColorString("#FFDEAD"));ne.NAVY=Object.freeze(ne.fromCssColorString("#000080"));ne.OLDLACE=Object.freeze(ne.fromCssColorString("#FDF5E6"));ne.OLIVE=Object.freeze(ne.fromCssColorString("#808000"));ne.OLIVEDRAB=Object.freeze(ne.fromCssColorString("#6B8E23"));ne.ORANGE=Object.freeze(ne.fromCssColorString("#FFA500"));ne.ORANGERED=Object.freeze(ne.fromCssColorString("#FF4500"));ne.ORCHID=Object.freeze(ne.fromCssColorString("#DA70D6"));ne.PALEGOLDENROD=Object.freeze(ne.fromCssColorString("#EEE8AA"));ne.PALEGREEN=Object.freeze(ne.fromCssColorString("#98FB98"));ne.PALETURQUOISE=Object.freeze(ne.fromCssColorString("#AFEEEE"));ne.PALEVIOLETRED=Object.freeze(ne.fromCssColorString("#DB7093"));ne.PAPAYAWHIP=Object.freeze(ne.fromCssColorString("#FFEFD5"));ne.PEACHPUFF=Object.freeze(ne.fromCssColorString("#FFDAB9"));ne.PERU=Object.freeze(ne.fromCssColorString("#CD853F"));ne.PINK=Object.freeze(ne.fromCssColorString("#FFC0CB"));ne.PLUM=Object.freeze(ne.fromCssColorString("#DDA0DD"));ne.POWDERBLUE=Object.freeze(ne.fromCssColorString("#B0E0E6"));ne.PURPLE=Object.freeze(ne.fromCssColorString("#800080"));ne.RED=Object.freeze(ne.fromCssColorString("#FF0000"));ne.ROSYBROWN=Object.freeze(ne.fromCssColorString("#BC8F8F"));ne.ROYALBLUE=Object.freeze(ne.fromCssColorString("#4169E1"));ne.SADDLEBROWN=Object.freeze(ne.fromCssColorString("#8B4513"));ne.SALMON=Object.freeze(ne.fromCssColorString("#FA8072"));ne.SANDYBROWN=Object.freeze(ne.fromCssColorString("#F4A460"));ne.SEAGREEN=Object.freeze(ne.fromCssColorString("#2E8B57"));ne.SEASHELL=Object.freeze(ne.fromCssColorString("#FFF5EE"));ne.SIENNA=Object.freeze(ne.fromCssColorString("#A0522D"));ne.SILVER=Object.freeze(ne.fromCssColorString("#C0C0C0"));ne.SKYBLUE=Object.freeze(ne.fromCssColorString("#87CEEB"));ne.SLATEBLUE=Object.freeze(ne.fromCssColorString("#6A5ACD"));ne.SLATEGRAY=Object.freeze(ne.fromCssColorString("#708090"));ne.SLATEGREY=ne.SLATEGRAY;ne.SNOW=Object.freeze(ne.fromCssColorString("#FFFAFA"));ne.SPRINGGREEN=Object.freeze(ne.fromCssColorString("#00FF7F"));ne.STEELBLUE=Object.freeze(ne.fromCssColorString("#4682B4"));ne.TAN=Object.freeze(ne.fromCssColorString("#D2B48C"));ne.TEAL=Object.freeze(ne.fromCssColorString("#008080"));ne.THISTLE=Object.freeze(ne.fromCssColorString("#D8BFD8"));ne.TOMATO=Object.freeze(ne.fromCssColorString("#FF6347"));ne.TURQUOISE=Object.freeze(ne.fromCssColorString("#40E0D0"));ne.VIOLET=Object.freeze(ne.fromCssColorString("#EE82EE"));ne.WHEAT=Object.freeze(ne.fromCssColorString("#F5DEB3"));ne.WHITE=Object.freeze(ne.fromCssColorString("#FFFFFF"));ne.WHITESMOKE=Object.freeze(ne.fromCssColorString("#F5F5F5"));ne.YELLOW=Object.freeze(ne.fromCssColorString("#FFFF00"));ne.YELLOWGREEN=Object.freeze(ne.fromCssColorString("#9ACD32"));ne.TRANSPARENT=Object.freeze(new ne(0,0,0,0));var z=ne;function sP(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}sP.ALL=Object.freeze(new sP({color:new z(0,0,0,0),depth:1,stencil:0}));sP.prototype.execute=function(e,t){e.clear(this,t)};var ei=sP;var _Te={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},Ee=Object.freeze(_Te);function HX(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=Ee.COMPUTE,this.owner=e.owner}HX.prototype.execute=function(e){e.execute(this)};var Mf=HX;function Dt(e,t){this.x=y(e,0),this.y=y(t,0)}Dt.fromElements=function(e,t,n){return u(n)?(n.x=e,n.y=t,n):new Dt(e,t)};Dt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t):new Dt(e.x,e.y)};Dt.fromCartesian3=Dt.clone;Dt.fromCartesian4=Dt.clone;Dt.packedLength=2;Dt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Dt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Dt),n.x=e[t++],n.y=e[t],n};Dt.packArray=function(e,t){let n=e.length,i=n*2;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Dt.pack(e[o],t,o*2);return t};Dt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=Dt.unpack(e,i,t[o])}return t};Dt.fromArray=Dt.unpack;Dt.maximumComponent=function(e){return Math.max(e.x,e.y)};Dt.minimumComponent=function(e){return Math.min(e.x,e.y)};Dt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Dt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Dt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};Dt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Dt.magnitude=function(e){return Math.sqrt(Dt.magnitudeSquared(e))};var aP=new Dt;Dt.distance=function(e,t){return Dt.subtract(e,t,aP),Dt.magnitude(aP)};Dt.distanceSquared=function(e,t){return Dt.subtract(e,t,aP),Dt.magnitudeSquared(aP)};Dt.normalize=function(e,t){let n=Dt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Dt.dot=function(e,t){return e.x*t.x+e.y*t.y};Dt.cross=function(e,t){return e.x*t.y-e.y*t.x};Dt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Dt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Dt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Dt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Dt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Dt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Dt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Dt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var GX=new Dt;Dt.lerp=function(e,t,n,i){return Dt.multiplyByScalar(t,n,GX),i=Dt.multiplyByScalar(e,1-n,i),Dt.add(GX,i,i)};var WX=new Dt,jX=new Dt;Dt.angleBetween=function(e,t){return Dt.normalize(e,WX),Dt.normalize(t,jX),P.acosClamped(Dt.dot(WX,jX))};var gTe=new Dt;Dt.mostOrthogonalAxis=function(e,t){let n=Dt.normalize(e,gTe);return Dt.abs(n,n),n.x<=n.y?t=Dt.clone(Dt.UNIT_X,t):t=Dt.clone(Dt.UNIT_Y,t),t};Dt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y};Dt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Dt.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};Dt.ZERO=Object.freeze(new Dt(0,0));Dt.ONE=Object.freeze(new Dt(1,1));Dt.UNIT_X=Object.freeze(new Dt(1,0));Dt.UNIT_Y=Object.freeze(new Dt(0,1));Dt.prototype.clone=function(e){return Dt.clone(this,e)};Dt.prototype.equals=function(e){return Dt.equals(this,e)};Dt.prototype.equalsEpsilon=function(e,t,n){return Dt.equalsEpsilon(this,e,t,n)};Dt.prototype.toString=function(){return`(${this.x}, ${this.y})`};var V=Dt;var yTe=new h,xTe=new h;function bTe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,l=t.y,f=t.z,d=r*r*c*c,p=s*s*l*l,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,yTe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,A=n.y,C=n.z,S=xTe;S.x=b.x*T*2,S.y=b.y*A*2,S.z=b.z*C*2;let w=(1-x)*h.magnitude(e)/(.5*h.magnitude(S)),D=0,O,R,N,F,_,E,v,I,M,B,H;do{w-=D,N=1/(1+w*T),F=1/(1+w*A),_=1/(1+w*C),E=N*N,v=F*F,I=_*_,M=E*N,B=v*F,H=I*_,O=d*E+p*v+g*I-1,R=d*M*T+p*B*A+g*H*C;let U=-2*R;D=O/U}while(Math.abs(O)>P.EPSILON12);return u(o)?(o.x=r*N,o.y=s*F,o.z=a*_,o):new h(r*N,s*F,a*_)}var Tb=bTe;function Ur(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Ur.fromRadians=function(e,t,n,i){return n=y(n,0),u(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Ur(e,t,n)};Ur.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Ur.fromRadians(e,t,n,i)};var TTe=new h,ATe=new h,CTe=new h,ETe=new h(1/6378137,1/6378137,1/6356752314245179e-9),STe=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),wTe=P.EPSILON1;Ur.fromCartesian=function(e,t,n){let i=u(t)?t.oneOverRadii:ETe,o=u(t)?t.oneOverRadiiSquared:STe,r=u(t)?t._centerToleranceSquared:wTe,s=Tb(e,i,o,r,ATe);if(!u(s))return;let a=h.multiplyComponents(s,o,TTe);a=h.normalize(a,a);let c=h.subtract(e,s,CTe),l=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return u(n)?(n.longitude=l,n.latitude=f,n.height=d,n):new Ur(l,f,d)};Ur.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Ur.clone=function(e,t){if(u(e))return u(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Ur(e.longitude,e.latitude,e.height)};Ur.equals=function(e,t){return e===t||u(e)&&u(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Ur.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Ur.ZERO=Object.freeze(new Ur(0,0,0));Ur.prototype.clone=function(e){return Ur.clone(this,e)};Ur.prototype.equals=function(e){return Ur.equals(this,e)};Ur.prototype.equalsEpsilon=function(e,t){return Ur.equalsEpsilon(this,e,t)};Ur.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=Ur;function YX(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function Yi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,YX(this,e,t,n)}Object.defineProperties(Yi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});Yi.clone=function(e,t){if(!u(e))return;let n=e._radii;return u(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new Yi(n.x,n.y,n.z)};Yi.fromCartesian3=function(e,t){return u(t)||(t=new Yi),u(e)&&YX(t,e.x,e.y,e.z),t};Yi.WGS84=Object.freeze(new Yi(6378137,6378137,6356752314245179e-9));Yi.UNIT_SPHERE=Object.freeze(new Yi(1,1,1));Yi.MOON=Object.freeze(new Yi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));Yi.prototype.clone=function(e){return Yi.clone(this,e)};Yi.packedLength=h.packedLength;Yi.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};Yi.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return Yi.fromCartesian3(i,n)};Yi.prototype.geocentricSurfaceNormal=h.normalize;Yi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return u(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};Yi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return u(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var vTe=new h,DTe=new h;Yi.prototype.cartographicToCartesian=function(e,t){let n=vTe,i=DTe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),u(t)||(t=new h),h.add(i,n,t)};Yi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var ITe=new h,PTe=new h,OTe=new h;Yi.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,PTe);if(!u(n))return;let i=this.geodeticSurfaceNormal(n,ITe),o=h.subtract(e,n,OTe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(o,e))*h.magnitude(o);return u(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};Yi.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};Yi.prototype.scaleToGeodeticSurface=function(e,t){return Tb(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};Yi.prototype.scaleToGeocentricSurface=function(e,t){u(t)||(t=new h);let n=e.x,i=e.y,o=e.z,r=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*r.x+i*i*r.y+o*o*r.z);return h.multiplyByScalar(e,s,t)};Yi.prototype.transformPositionToScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};Yi.prototype.transformPositionFromScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};Yi.prototype.equals=function(e){return this===e||u(e)&&h.equals(this._radii,e._radii)};Yi.prototype.toString=function(){return this._radii.toString()};Yi.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(u(n)||(n=new h),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var RTe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],MTe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function qX(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*RTe[s];r+=MTe[s]*(n(i+a)+n(i-a))}return r*=o,r}Yi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=P.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,l=s*a;return qX(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*qX(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(l*p*p+c*(a*m*m+s*x*x)*d*d)})})};var ie=Yi;function cP(e){this._ellipsoid=y(e,ie.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(cP.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});cP.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return u(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};cP.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return u(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Ii=cP;var LTe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Zt=Object.freeze(LTe);function Nn(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(Nn.prototype,{width:{get:function(){return Nn.computeWidth(this)}},height:{get:function(){return Nn.computeHeight(this)}}});Nn.packedLength=4;Nn.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};Nn.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Nn),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};Nn.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};Nn.computeHeight=function(e){return e.north-e.south};Nn.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),u(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new Nn(e,t,n,i)};Nn.fromRadians=function(e,t,n,i,o){return u(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new Nn(e,t,n,i)};Nn.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,l=e.length;c<l;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),u(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Nn(n,s,i,a)};Nn.fromCartesianArray=function(e,t,n){t=y(t,ie.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let l=0,f=e.length;l<f;l++){let d=t.cartesianToCartographic(e[l]);i=Math.min(i,d.longitude),o=Math.max(o,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),u(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Nn(i,a,o,c)};Nn.clone=function(e,t){if(u(e))return u(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Nn(e.west,e.south,e.east,e.north)};Nn.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Nn.prototype.clone=function(e){return Nn.clone(this,e)};Nn.prototype.equals=function(e){return Nn.equals(this,e)};Nn.equals=function(e,t){return e===t||u(e)&&u(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Nn.prototype.equalsEpsilon=function(e,t){return Nn.equalsEpsilon(this,e,t)};Nn.validate=function(e){};Nn.southwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};Nn.northwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};Nn.northeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};Nn.southeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};Nn.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let o=P.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return u(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};Nn.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.max(o,s)),c=P.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let l=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(l>=f))return u(n)?(n.west=a,n.south=l,n.east=c,n.north=f,n):new Nn(a,l,c,f)};Nn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return u(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Nn(i,o,r,s)};Nn.union=function(e,t,n){u(n)||(n=new Nn);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.min(o,s)),c=P.negativePiToPi(Math.max(i,r));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};Nn.expand=function(e,t,n){return u(n)||(n=new Nn),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};Nn.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>o||P.equalsEpsilon(n,o,P.EPSILON14))&&(n<r||P.equalsEpsilon(n,r,P.EPSILON14))&&i>=e.south&&i<=e.north};var NTe=new fe;Nn.subsample=function(e,t,n,i){t=y(t,ie.WGS84),n=y(n,0),u(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,l=NTe;l.height=n,l.longitude=c,l.latitude=r,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.latitude=s,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,r<0?l.latitude=r:s>0?l.latitude=s:l.latitude=0;for(let f=1;f<8;++f)l.longitude=-Math.PI+f*P.PI_OVER_TWO,Nn.contains(e,l)&&(i[o]=t.cartographicToCartesian(l,i[o]),o++);return l.latitude===0&&(l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++),i.length=o,i};Nn.subsection=function(e,t,n,i,o,r){if(u(r)||(r=new Nn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Nn.MAX_VALUE=Object.freeze(new Nn(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var ce=Nn;function mr(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}mr.packedLength=4;mr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};mr.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new mr),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};mr.fromPoints=function(e,t){if(u(t)||(t=new mr),!u(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],l=c.x,f=c.y;i=Math.min(l,i),r=Math.max(l,r),o=Math.min(f,o),s=Math.max(f,s)}return t.x=i,t.y=o,t.width=r-i,t.height=s-o,t};var FTe=new Ii,BTe=new fe,kTe=new fe;mr.fromRectangle=function(e,t,n){if(u(n)||(n=new mr),!u(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;t=y(t,FTe);let i=t.project(ce.southwest(e,BTe)),o=t.project(ce.northeast(e,kTe));return V.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};mr.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new mr(e.x,e.y,e.width,e.height)};mr.union=function(e,t,n){u(n)||(n=new mr);let i=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=o,n.width=r-i,n.height=s-o,n};mr.expand=function(e,t,n){n=mr.clone(e,n);let i=t.x-n.x,o=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};mr.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.width<o||i+e.height<r||i>r+t.height?Zt.OUTSIDE:Zt.INTERSECTING};mr.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};mr.prototype.clone=function(e){return mr.clone(this,e)};mr.prototype.intersect=function(e){return mr.intersect(this,e)};mr.prototype.equals=function(e){return mr.equals(this,e)};var qe=mr;var ea={POINTS:ee.POINTS,LINES:ee.LINES,LINE_LOOP:ee.LINE_LOOP,LINE_STRIP:ee.LINE_STRIP,TRIANGLES:ee.TRIANGLES,TRIANGLE_STRIP:ee.TRIANGLE_STRIP,TRIANGLE_FAN:ee.TRIANGLE_FAN};ea.isLines=function(e){return e===ea.LINES||e===ea.LINE_LOOP||e===ea.LINE_STRIP};ea.isTriangles=function(e){return e===ea.TRIANGLES||e===ea.TRIANGLE_STRIP||e===ea.TRIANGLE_FAN};ea.validate=function(e){return e===ea.POINTS||e===ea.LINES||e===ea.LINE_LOOP||e===ea.LINE_STRIP||e===ea.TRIANGLES||e===ea.TRIANGLE_STRIP||e===ea.TRIANGLE_FAN};var Le=Object.freeze(ea);var Ab=`in vec4 position;
- in vec2 textureCoordinates;
- out vec2 v_textureCoordinates;
- void main()
- {
- gl_Position = position;
- v_textureCoordinates = textureCoordinates;
- }
- `;var rr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function qE(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Le.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function Ea(e,t){return(e._flags&t)===t}function i_(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(qE.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return Ea(this,rr.CULL)},set:function(e){Ea(this,rr.CULL)!==e&&(i_(this,rr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Ea(this,rr.OCCLUDE)},set:function(e){Ea(this,rr.OCCLUDE)!==e&&(i_(this,rr.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return Ea(this,rr.CAST_SHADOWS)},set:function(e){Ea(this,rr.CAST_SHADOWS)!==e&&(i_(this,rr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Ea(this,rr.RECEIVE_SHADOWS)},set:function(e){Ea(this,rr.RECEIVE_SHADOWS)!==e&&(i_(this,rr.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return Ea(this,rr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Ea(this,rr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(i_(this,rr.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return Ea(this,rr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Ea(this,rr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(i_(this,rr.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return Ea(this,rr.PICK_ONLY)},set:function(e){Ea(this,rr.PICK_ONLY)!==e&&(i_(this,rr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Ea(this,rr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Ea(this,rr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(i_(this,rr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});qE.shallowClone=function(e,t){if(u(e))return u(t)||(t=new qE),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};qE.prototype.execute=function(e,t){e.draw(this,t)};var et=qE;var Ai={UNSIGNED_BYTE:ee.UNSIGNED_BYTE,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,UNSIGNED_INT:ee.UNSIGNED_INT,FLOAT:ee.FLOAT,HALF_FLOAT:ee.HALF_FLOAT_OES,UNSIGNED_INT_24_8:ee.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:ee.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:ee.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:ee.UNSIGNED_SHORT_5_6_5};Ai.toWebGLConstant=function(e,t){switch(e){case Ai.UNSIGNED_BYTE:return ee.UNSIGNED_BYTE;case Ai.UNSIGNED_SHORT:return ee.UNSIGNED_SHORT;case Ai.UNSIGNED_INT:return ee.UNSIGNED_INT;case Ai.FLOAT:return ee.FLOAT;case Ai.HALF_FLOAT:return t.webgl2?ee.HALF_FLOAT:ee.HALF_FLOAT_OES;case Ai.UNSIGNED_INT_24_8:return ee.UNSIGNED_INT_24_8;case Ai.UNSIGNED_SHORT_4_4_4_4:return ee.UNSIGNED_SHORT_4_4_4_4;case Ai.UNSIGNED_SHORT_5_5_5_1:return ee.UNSIGNED_SHORT_5_5_5_1;case Ai.UNSIGNED_SHORT_5_6_5:return Ai.UNSIGNED_SHORT_5_6_5}};Ai.isPacked=function(e){return e===Ai.UNSIGNED_INT_24_8||e===Ai.UNSIGNED_SHORT_4_4_4_4||e===Ai.UNSIGNED_SHORT_5_5_5_1||e===Ai.UNSIGNED_SHORT_5_6_5};Ai.sizeInBytes=function(e){switch(e){case Ai.UNSIGNED_BYTE:return 1;case Ai.UNSIGNED_SHORT:case Ai.UNSIGNED_SHORT_4_4_4_4:case Ai.UNSIGNED_SHORT_5_5_5_1:case Ai.UNSIGNED_SHORT_5_6_5:case Ai.HALF_FLOAT:return 2;case Ai.UNSIGNED_INT:case Ai.FLOAT:case Ai.UNSIGNED_INT_24_8:return 4}};Ai.validate=function(e){return e===Ai.UNSIGNED_BYTE||e===Ai.UNSIGNED_SHORT||e===Ai.UNSIGNED_INT||e===Ai.FLOAT||e===Ai.HALF_FLOAT||e===Ai.UNSIGNED_INT_24_8||e===Ai.UNSIGNED_SHORT_4_4_4_4||e===Ai.UNSIGNED_SHORT_5_5_5_1||e===Ai.UNSIGNED_SHORT_5_6_5};var Ye=Object.freeze(Ai);var it={DEPTH_COMPONENT:ee.DEPTH_COMPONENT,DEPTH_STENCIL:ee.DEPTH_STENCIL,ALPHA:ee.ALPHA,RED:ee.RED,RG:ee.RG,RGB:ee.RGB,RGBA:ee.RGBA,LUMINANCE:ee.LUMINANCE,LUMINANCE_ALPHA:ee.LUMINANCE_ALPHA,RGB_DXT1:ee.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:ee.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:ee.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:ee.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:ee.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:ee.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:ee.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:ee.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:ee.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:ee.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:ee.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:ee.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:ee.COMPRESSED_RGBA_BPTC_UNORM};it.componentsLength=function(e){switch(e){case it.RGB:return 3;case it.RGBA:return 4;case it.LUMINANCE_ALPHA:case it.RG:return 2;case it.ALPHA:case it.RED:case it.LUMINANCE:return 1;default:return 1}};it.validate=function(e){return e===it.DEPTH_COMPONENT||e===it.DEPTH_STENCIL||e===it.ALPHA||e===it.RED||e===it.RG||e===it.RGB||e===it.RGBA||e===it.LUMINANCE||e===it.LUMINANCE_ALPHA||e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5||e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1||e===it.RGBA_ASTC||e===it.RGB_ETC1||e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC||e===it.RGBA_BC7};it.isColorFormat=function(e){return e===it.ALPHA||e===it.RGB||e===it.RGBA||e===it.LUMINANCE||e===it.LUMINANCE_ALPHA};it.isDepthFormat=function(e){return e===it.DEPTH_COMPONENT||e===it.DEPTH_STENCIL};it.isCompressedFormat=function(e){return e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5||e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1||e===it.RGBA_ASTC||e===it.RGB_ETC1||e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC||e===it.RGBA_BC7};it.isDXTFormat=function(e){return e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5};it.isPVRTCFormat=function(e){return e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1};it.isASTCFormat=function(e){return e===it.RGBA_ASTC};it.isETC1Format=function(e){return e===it.RGB_ETC1};it.isETC2Format=function(e){return e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC};it.isBC7Format=function(e){return e===it.RGBA_BC7};it.compressedTextureSizeInBytes=function(e,t,n){switch(e){case it.RGB_DXT1:case it.RGBA_DXT1:case it.RGB_ETC1:case it.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case it.RGBA_DXT3:case it.RGBA_DXT5:case it.RGBA_ASTC:case it.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case it.RGB_PVRTC_4BPPV1:case it.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case it.RGB_PVRTC_2BPPV1:case it.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case it.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};it.textureSizeInBytes=function(e,t,n,i){let o=it.componentsLength(e);return Ye.isPacked(t)&&(o=1),o*Ye.sizeInBytes(t)*n*i};it.alignmentInBytes=function(e,t,n){let i=it.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};it.createTypedArray=function(e,t,n,i){let o,r=Ye.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===Ye.FLOAT?o=Float32Array:o=Uint32Array;let s=it.componentsLength(e)*n*i;return new o(s)};it.flipY=function(e,t,n,i,o){if(o===1)return e;let r=it.createTypedArray(t,n,i,o),s=it.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let l=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[l+d]}return r};it.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===it.DEPTH_STENCIL)return ee.DEPTH24_STENCIL8;if(e===it.DEPTH_COMPONENT){if(t===Ye.UNSIGNED_SHORT)return ee.DEPTH_COMPONENT16;if(t===Ye.UNSIGNED_INT)return ee.DEPTH_COMPONENT24}if(t===Ye.FLOAT)switch(e){case it.RGBA:return ee.RGBA32F;case it.RGB:return ee.RGB32F;case it.RG:return ee.RG32F;case it.RED:return ee.R32F}if(t===Ye.HALF_FLOAT)switch(e){case it.RGBA:return ee.RGBA16F;case it.RGB:return ee.RGB16F;case it.RG:return ee.RG16F;case it.RED:return ee.R16F}return e};var rt=Object.freeze(it);var sr={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(sr,{maximumCombinedTextureImageUnits:{get:function(){return sr._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return sr._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return sr._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return sr._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return sr._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return sr._maximumTextureSize}},maximumVaryingVectors:{get:function(){return sr._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return sr._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return sr._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return sr._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return sr._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return sr._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return sr._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return sr._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return sr._maximumViewportWidth}},maximumViewportHeight:{get:function(){return sr._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return sr._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return sr._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return sr._maximumColorAttachments}},maximumSamples:{get:function(){return sr._maximumSamples}},highpFloatSupported:{get:function(){return sr._highpFloatSupported}},highpIntSupported:{get:function(){return sr._highpIntSupported}}});var zt=sr;function cH(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function lP(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function Lf(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumColorAttachments;this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0);let o=u(e.depthTexture)||u(e.depthRenderbuffer),r=u(e.depthStencilTexture)||u(e.depthStencilRenderbuffer);this._bind();let s,a,c,l,f;if(u(e.colorTextures)){let d=e.colorTextures;for(l=this._colorTextures.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)s=d[c],f=this._gl.COLOR_ATTACHMENT0+c,cH(this,f,s),this._activeColorAttachments[c]=f,this._colorTextures[c]=s}if(u(e.colorRenderbuffers)){let d=e.colorRenderbuffers;for(l=this._colorRenderbuffers.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)a=d[c],f=this._gl.COLOR_ATTACHMENT0+c,lP(this,f,a),this._activeColorAttachments[c]=f,this._colorRenderbuffers[c]=a}u(e.depthTexture)&&(s=e.depthTexture,cH(this,this._gl.DEPTH_ATTACHMENT,s),this._depthTexture=s),u(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,lP(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),u(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,lP(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),u(e.depthStencilTexture)&&(s=e.depthStencilTexture,cH(this,this._gl.DEPTH_STENCIL_ATTACHMENT,s),this._depthStencilTexture=s),u(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,lP(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}Object.defineProperties(Lf.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});Lf.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};Lf.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};Lf.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};Lf.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};Lf.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};Lf.prototype.getColorTexture=function(e){return this._colorTextures[e]};Lf.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){if(this.destroyAttachments){let e=0,t=this._colorTextures,n=t.length;for(;e<n;++e){let o=t[e];u(o)&&o.destroy()}let i=this._colorRenderbuffers;for(n=i.length,e=0;e<n;++e){let o=i[e];u(o)&&o.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),le(this)};var ta=Lf;var uP={CLOCKWISE:ee.CW,COUNTER_CLOCKWISE:ee.CCW};uP.validate=function(e){return e===uP.CLOCKWISE||e===uP.COUNTER_CLOCKWISE};var Jr=Object.freeze(uP);function XX(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=XX(e[t]));return Object.freeze(e)}var KX=XX;function Jd(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),o=y(t.scissorTest,y.EMPTY_OBJECT),r=y(o.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),l=y(t.blending,y.EMPTY_OBJECT),f=y(l.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),m=y(t.sampleCoverage,y.EMPTY_OBJECT),x=t.viewport;this.frontFace=y(t.frontFace,Jr.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,ee.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(o.enabled,!1),rectangle:qe.clone(r)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,ee.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(l.enabled,!1),color:new z(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(l.equationRgb,ee.FUNC_ADD),equationAlpha:y(l.equationAlpha,ee.FUNC_ADD),functionSourceRgb:y(l.functionSourceRgb,ee.ONE),functionSourceAlpha:y(l.functionSourceAlpha,ee.ONE),functionDestinationRgb:y(l.functionDestinationRgb,ee.ZERO),functionDestinationAlpha:y(l.functionDestinationAlpha,ee.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,ee.ALWAYS),backFunction:y(d.backFunction,ee.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,ee.KEEP),zFail:y(p.zFail,ee.KEEP),zPass:y(p.zPass,ee.KEEP)},backOperation:{fail:y(g.fail,ee.KEEP),zFail:y(g.zFail,ee.KEEP),zPass:y(g.zPass,ee.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=u(x)?new qe(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var UTe=0,Qd={};Jd.fromCache=function(e){let t=JSON.stringify(e),n=Qd[t];if(u(n))return++n.referenceCount,n.state;let i=new Jd(e),o=JSON.stringify(i);return n=Qd[o],u(n)||(i.id=UTe++,n={referenceCount:0,state:i},Qd[o]=n),++n.referenceCount,Qd[t]={referenceCount:1,state:n.state},n.state};Jd.removeFromCache=function(e){let t=new Jd(e),n=JSON.stringify(t),i=Qd[n],o=JSON.stringify(e),r=Qd[o];u(r)&&(--r.referenceCount,r.referenceCount===0&&(delete Qd[o],u(i)&&--i.referenceCount)),u(i)&&i.referenceCount===0&&delete Qd[n]};Jd.getCache=function(){return Qd};Jd.clearCache=function(){Qd={}};function qy(e,t,n){n?e.enable(t):e.disable(t)}function ZX(e,t){e.frontFace(t.frontFace)}function $X(e,t){let n=t.cull,i=n.enabled;qy(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function QX(e,t){e.lineWidth(t.lineWidth)}function JX(e,t){let n=t.polygonOffset,i=n.enabled;qy(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function eK(e,t,n){let i=t.scissorTest,o=u(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(qy(e,e.SCISSOR_TEST,o),o){let r=u(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function tK(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function nK(e,t){let n=t.depthTest,i=n.enabled;qy(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function iK(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function oK(e,t){e.depthMask(t.depthMask)}function rK(e,t){e.stencilMask(t.stencilMask)}function VTe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function sK(e,t,n){let i=t.blending,o=u(n.blendingEnabled)?n.blendingEnabled:i.enabled;qy(e,e.BLEND,o),o&&(VTe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function aK(e,t){let n=t.stencilTest,i=n.enabled;if(qy(e,e.STENCIL_TEST,i),i){let o=n.frontFunction,r=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(o,s,a),e.stencilFuncSeparate(e.BACK,r,s,a),e.stencilFuncSeparate(e.FRONT,o,s,a);let c=n.frontOperation,l=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,l,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function cK(e,t){let n=t.sampleCoverage,i=n.enabled;qy(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var zTe=new qe;function lK(e,t,n){let i=y(t.viewport,n.viewport);u(i)||(i=zTe,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}Jd.apply=function(e,t,n){ZX(e,t),$X(e,t),QX(e,t),JX(e,t),tK(e,t),nK(e,t),iK(e,t),oK(e,t),rK(e,t),aK(e,t),cK(e,t),eK(e,t,n),sK(e,t,n),lK(e,t,n)};function HTe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(ZX),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push($X),e.lineWidth!==t.lineWidth&&n.push(QX),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(JX),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(tK),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(nK),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(iK),e.depthMask!==t.depthMask&&n.push(oK),e.stencilMask!==t.stencilMask&&n.push(rK),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(aK),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(cK),n}Jd.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];u(f)||(f=HTe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=u(i.scissorTest)?i.scissorTest:t.scissorTest,a=u(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&eK(e,n,o);let c=u(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,l=u(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==l||l&&t.blending!==n.blending)&&sK(e,n,o),(t!==n||i!==o||i.context!==o.context)&&lK(e,n,o)};Jd.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:qe.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:z.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:u(e.viewport)?qe.clone(e.viewport):void 0}};var Ve=Jd;function qt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}qt.packedLength=4;qt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};qt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new qt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};qt.packArray=function(e,t){let n=e.length,i=n*4;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)qt.pack(e[o],t,o*4);return t};qt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=qt.unpack(e,i,t[o])}return t};qt.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new qt(e[0],e[2],e[1],e[3])};qt.fromArray=qt.unpack;qt.fromColumnMajorArray=function(e,t){return qt.clone(e,t)};qt.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new qt(e[0],e[1],e[2],e[3])};qt.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new qt(e.x,0,0,e.y)};qt.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new qt(e,0,0,e)};qt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new qt(n,-i,i,n)};qt.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};qt.getElementIndex=function(e,t){return e*2+t};qt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};qt.setColumn=function(e,t,n,i){i=qt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};qt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};qt.setRow=function(e,t,n,i){return i=qt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var GTe=new V;qt.setScale=function(e,t,n){let i=qt.getScale(e,GTe),o=t.x/i.x,r=t.y/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var WTe=new V;qt.setUniformScale=function(e,t,n){let i=qt.getScale(e,WTe),o=t/i.x,r=t/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var uK=new V;qt.getScale=function(e,t){return t.x=V.magnitude(V.fromElements(e[0],e[1],uK)),t.y=V.magnitude(V.fromElements(e[2],e[3],uK)),t};var fK=new V;qt.getMaximumScale=function(e){return qt.getScale(e,fK),V.maximumComponent(fK)};var jTe=new V;qt.setRotation=function(e,t,n){let i=qt.getScale(e,jTe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var qTe=new V;qt.getRotation=function(e,t){let n=qt.getScale(e,qTe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};qt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n};qt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};qt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};qt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=o,n};qt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};qt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};qt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};qt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};qt.transpose=function(e,t){let n=e[0],i=e[2],o=e[1],r=e[3];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t};qt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};qt.equals=function(e,t){return e===t||u(e)&&u(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};qt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};qt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};qt.IDENTITY=Object.freeze(new qt(1,0,0,1));qt.ZERO=Object.freeze(new qt(0,0,0,0));qt.COLUMN0ROW0=0;qt.COLUMN0ROW1=1;qt.COLUMN1ROW0=2;qt.COLUMN1ROW1=3;Object.defineProperties(qt.prototype,{length:{get:function(){return qt.packedLength}}});qt.prototype.clone=function(e){return qt.clone(this,e)};qt.prototype.equals=function(e){return qt.equals(this,e)};qt.prototype.equalsEpsilon=function(e,t){return qt.equalsEpsilon(this,e,t)};qt.prototype.toString=function(){return`(${this[0]}, ${this[2]})
- (${this[1]}, ${this[3]})`};var Ji=qt;function YTe(e,t,n,i){switch(t.type){case e.FLOAT:return new dK(e,t,n,i);case e.FLOAT_VEC2:return new hK(e,t,n,i);case e.FLOAT_VEC3:return new mK(e,t,n,i);case e.FLOAT_VEC4:return new pK(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new lH(e,t,n,i);case e.INT:case e.BOOL:return new _K(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new gK(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new yK(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new xK(e,t,n,i);case e.FLOAT_MAT2:return new bK(e,t,n,i);case e.FLOAT_MAT3:return new TK(e,t,n,i);case e.FLOAT_MAT4:return new AK(e,t,n,i);default:throw new ue(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function dK(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}dK.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function hK(e,t,n,i){this.name=n,this.value=void 0,this._value=new V,this._gl=e,this._location=i}hK.prototype.set=function(){let e=this.value;V.equals(e,this._value)||(V.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function mK(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}mK.prototype.set=function(){let e=this.value;u(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):u(e.x)&&(h.equals(e,this._value)||(this._value=h.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function pK(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}pK.prototype.set=function(){let e=this.value;u(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):u(e.x)&&(oe.equals(e,this._value)||(this._value=oe.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function lH(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}lH.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};lH.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function _K(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}_K.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function gK(e,t,n,i){this.name=n,this.value=void 0,this._value=new V,this._gl=e,this._location=i}gK.prototype.set=function(){let e=this.value;V.equals(e,this._value)||(V.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function yK(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}yK.prototype.set=function(){let e=this.value;h.equals(e,this._value)||(h.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function xK(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}xK.prototype.set=function(){let e=this.value;oe.equals(e,this._value)||(oe.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var XTe=new Float32Array(4);function bK(e,t,n,i){this.name=n,this.value=void 0,this._value=new Ji,this._gl=e,this._location=i}bK.prototype.set=function(){if(!Ji.equalsArray(this.value,this._value,0)){Ji.clone(this.value,this._value);let e=Ji.toArray(this.value,XTe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var KTe=new Float32Array(9);function TK(e,t,n,i){this.name=n,this.value=void 0,this._value=new $,this._gl=e,this._location=i}TK.prototype.set=function(){if(!$.equalsArray(this.value,this._value,0)){$.clone(this.value,this._value);let e=$.toArray(this.value,KTe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var ZTe=new Float32Array(16);function AK(e,t,n,i){this.name=n,this.value=void 0,this._value=new L,this._gl=e,this._location=i}AK.prototype.set=function(){if(!L.equalsArray(this.value,this._value,0)){L.clone(this.value,this._value);let e=L.toArray(this.value,ZTe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var fP=YTe;function $Te(e,t,n,i){switch(t.type){case e.FLOAT:return new CK(e,t,n,i);case e.FLOAT_VEC2:return new EK(e,t,n,i);case e.FLOAT_VEC3:return new SK(e,t,n,i);case e.FLOAT_VEC4:return new wK(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new uH(e,t,n,i);case e.INT:case e.BOOL:return new vK(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new DK(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new IK(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new PK(e,t,n,i);case e.FLOAT_MAT2:return new OK(e,t,n,i);case e.FLOAT_MAT3:return new RK(e,t,n,i);case e.FLOAT_MAT4:return new MK(e,t,n,i);default:throw new ue(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function CK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._location=i[0]}CK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function EK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*2),this._gl=e,this._location=i[0]}EK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];V.equalsArray(s,n,o)||(V.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function SK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*3),this._gl=e,this._location=i[0]}SK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];u(s.red)?(s.red!==n[o]||s.green!==n[o+1]||s.blue!==n[o+2])&&(n[o]=s.red,n[o+1]=s.green,n[o+2]=s.blue,i=!0):u(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function wK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}wK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];u(s.red)?z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0):u(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function uH(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}uH.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let o=0;o<i;++o){let r=n[o];e.activeTexture(t+o),e.bindTexture(r._target,r._texture)}};uH.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let o=e+i;this._gl.uniform1i(t[i],o)}return e+n};function vK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o),this._gl=e,this._location=i[0]}vK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function DK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*2),this._gl=e,this._location=i[0]}DK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];V.equalsArray(s,n,o)||(V.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function IK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*3),this._gl=e,this._location=i[0]}IK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0),o+=3}i&&this._gl.uniform3iv(this._location,n)};function PK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*4),this._gl=e,this._location=i[0]}PK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniform4iv(this._location,n)};function OK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}OK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];Ji.equalsArray(s,n,o)||(Ji.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function RK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*9),this._gl=e,this._location=i[0]}RK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];$.equalsArray(s,n,o)||($.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function MK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*16),this._gl=e,this._location=i[0]}MK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];L.equalsArray(s,n,o)||(L.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var dP=$Te;var QTe=0;function wm(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=JTe(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=QTe++}wm.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};wm.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(wm.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return hP(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return hP(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return hP(this),this._uniformsByName}}});function LK(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(u(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o].trim(),s=r.slice(r.lastIndexOf(" ")+1);t.push(s)}}return t}function JTe(e,t){let n={};if(!zt.highpFloatSupported||!zt.highpIntSupported){let i,o,r,s,a=LK(e),c=LK(t),l=a.length,f=c.length;for(i=0;i<l;i++)for(o=0;o<f;o++)if(a[i]===c[o]){r=a[i],s=`czm_mediump_${r}`;let d=new RegExp(`${r}\\b`,"g");t=t.replace(d,s),n[s]=r}}return{fragmentShaderText:t,duplicateUniformNames:n}}var eh="[Cesium WebGL] ";function eAe(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,n),e.compileShader(o);let r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r);let s=e.createProgram();e.attachShader(s,o),e.attachShader(s,r);let a=t._attributeLocations;if(u(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(o),u(c)&&c.length>0&&console.log(`${eh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),u(c)&&c.length>0&&console.log(`${eh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),u(c)&&c.length>0&&console.log(`${eh}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let l,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${eh}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),l=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${eh}Vertex shader compile log: ${c}`),console.error(`${eh} Vertex shader source:
- ${n}`),l=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${eh}Fragment shader compile log: ${c}`),console.error(`${eh} Fragment shader source:
- ${i}`),l=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ue(l);function d(p,g){if(!u(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${eh}${g} shader translation failed.`);return}console.error(`${eh}Translated ${g} shaderSource:
- ${m}`)}}function tAe(e,t,n){let i={};for(let o=0;o<n;++o){let r=e.getActiveAttrib(t,o),s=e.getAttribLocation(t,r.name);i[r.name]={name:r.name,type:r.type,index:s}}return i}function nAe(e,t){let n={},i=[],o=[],r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<r;++s){let a=e.getActiveUniform(t,s),c="[0]",l=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(l.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,l);if(f!==null){let d=fP(e,a,l,f);n[l]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=l.indexOf("[");if(m>=0){if(f=n[l.slice(0,m)],!u(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,l),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let x=0;x<a.size;++x)g=e.getUniformLocation(t,`${l}[${x}]`),g!==null&&d.push(g);f=dP(e,a,l,d),n[l]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function iAe(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];u(a)&&(r.name=a,s=a);let c=t_[s];u(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function oAe(e,t,n){e.useProgram(t);let i=0,o=n.length;for(let r=0;r<o;++r)i=n[r]._setSampler(i);return e.useProgram(null),i}function hP(e){u(e._program)||NK(e)}function NK(e){let t=e._program,n=e._gl,i=eAe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=nAe(n,i),s=iAe(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=tAe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=oAe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,l,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{NK(e),l(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}wm.prototype._bind=function(){hP(this),this._gl.useProgram(this._program)};wm.prototype._setUniforms=function(e,t,n){let i,o;if(u(e)){let a=this._manualUniforms;for(i=a.length,o=0;o<i;++o){let c=a[o];c.value=e[c.name]()}}let r=this._automaticUniforms;for(i=r.length,o=0;o<i;++o){let a=r[o];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,o=0;o<i;++o)s[o].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};wm.prototype.isDestroyed=function(){return!1};wm.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};wm.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),le(this)};var Kt=wm;function mP(e){this._context=e}var YE,rAe=new et({primitiveType:Le.TRIANGLES}),sAe=new ei({color:new z(0,0,0,0)});function aAe(e,t){return new ta({context:e,colorTextures:[t],destroyAttachments:!1})}function cAe(e,t){return Kt.fromCache({context:e,vertexShaderSource:Ab,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function lAe(e,t){return(!u(YE)||YE.viewport.width!==e||YE.viewport.height!==t)&&(YE=Ve.fromCache({viewport:new qe(0,0,e,t)})),YE}mP.prototype.execute=function(e){u(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=u(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=u(e.shaderProgram)?e.shaderProgram:cAe(o,e.fragmentShaderSource),a=aAe(o,t),c=lAe(n,i),l=e.uniformMap,f=sAe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=rAe;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=l,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),u(e.vertexArray)&&r.destroy()),u(e.postExecute)&&e.postExecute(t)};mP.prototype.isDestroyed=function(){return!1};mP.prototype.destroy=function(){return le(this)};var pP=mP;var Tn={BYTE:ee.BYTE,UNSIGNED_BYTE:ee.UNSIGNED_BYTE,SHORT:ee.SHORT,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,INT:ee.INT,UNSIGNED_INT:ee.UNSIGNED_INT,FLOAT:ee.FLOAT,DOUBLE:ee.DOUBLE};Tn.getSizeInBytes=function(e){switch(e){case Tn.BYTE:return Int8Array.BYTES_PER_ELEMENT;case Tn.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Tn.SHORT:return Int16Array.BYTES_PER_ELEMENT;case Tn.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Tn.INT:return Int32Array.BYTES_PER_ELEMENT;case Tn.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Tn.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case Tn.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};Tn.fromTypedArray=function(e){if(e instanceof Int8Array)return Tn.BYTE;if(e instanceof Uint8Array)return Tn.UNSIGNED_BYTE;if(e instanceof Int16Array)return Tn.SHORT;if(e instanceof Uint16Array)return Tn.UNSIGNED_SHORT;if(e instanceof Int32Array)return Tn.INT;if(e instanceof Uint32Array)return Tn.UNSIGNED_INT;if(e instanceof Float32Array)return Tn.FLOAT;if(e instanceof Float64Array)return Tn.DOUBLE};Tn.validate=function(e){return u(e)&&(e===Tn.BYTE||e===Tn.UNSIGNED_BYTE||e===Tn.SHORT||e===Tn.UNSIGNED_SHORT||e===Tn.INT||e===Tn.UNSIGNED_INT||e===Tn.FLOAT||e===Tn.DOUBLE)};Tn.createTypedArray=function(e,t){switch(e){case Tn.BYTE:return new Int8Array(t);case Tn.UNSIGNED_BYTE:return new Uint8Array(t);case Tn.SHORT:return new Int16Array(t);case Tn.UNSIGNED_SHORT:return new Uint16Array(t);case Tn.INT:return new Int32Array(t);case Tn.UNSIGNED_INT:return new Uint32Array(t);case Tn.FLOAT:return new Float32Array(t);case Tn.DOUBLE:return new Float64Array(t)}};Tn.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/Tn.getSizeInBytes(e)),e){case Tn.BYTE:return new Int8Array(t,n,i);case Tn.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case Tn.SHORT:return new Int16Array(t,n,i);case Tn.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case Tn.INT:return new Int32Array(t,n,i);case Tn.UNSIGNED_INT:return new Uint32Array(t,n,i);case Tn.FLOAT:return new Float32Array(t,n,i);case Tn.DOUBLE:return new Float64Array(t,n,i)}};Tn.fromName=function(e){switch(e){case"BYTE":return Tn.BYTE;case"UNSIGNED_BYTE":return Tn.UNSIGNED_BYTE;case"SHORT":return Tn.SHORT;case"UNSIGNED_SHORT":return Tn.UNSIGNED_SHORT;case"INT":return Tn.INT;case"UNSIGNED_INT":return Tn.UNSIGNED_INT;case"FLOAT":return Tn.FLOAT;case"DOUBLE":return Tn.DOUBLE}};var X=Object.freeze(Tn);var FK={};function XE(e,t){u(FK[e])||(FK[e]=!0,console.warn(y(t,e)))}XE.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";XE.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";XE.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";XE.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var It=XE;function uAe(e,t){It(e,t)}var es=uAe;var fAe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},Nf=Object.freeze(fAe);function tt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var KE=new h;tt.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);KE=h.normalize(e,KE);let r=KE.x*o,s=KE.y*o,a=KE.z*o,c=Math.cos(i);return u(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new tt(r,s,a,c)};var dAe=[1,2,0],hAe=new Array(3);tt.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],l=e[$.COLUMN2ROW2],f=a+c+l;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let d=dAe,p=0;c>a&&(p=1),l>a&&l>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(g,g)]-e[$.getElementIndex(m,m)]+1);let x=hAe;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(m,g)]-e[$.getElementIndex(g,m)])*n,x[g]=(e[$.getElementIndex(g,p)]+e[$.getElementIndex(p,g)])*n,x[m]=(e[$.getElementIndex(m,p)]+e[$.getElementIndex(p,m)])*n,i=-x[0],o=-x[1],r=-x[2]}return u(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new tt(i,o,r,s)};var BK=new tt,kK=new tt,fH=new tt,UK=new tt;tt.fromHeadingPitchRoll=function(e,t){return UK=tt.fromAxisAngle(h.UNIT_X,e.roll,BK),fH=tt.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=tt.multiply(fH,UK,fH),kK=tt.fromAxisAngle(h.UNIT_Z,-e.heading,BK),tt.multiply(kK,t,t)};var _P=new h,dH=new h,Ff=new tt,VK=new tt,gP=new tt;tt.packedLength=4;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};tt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new tt),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};tt.packedInterpolationLength=3;tt.convertPackedArrayForInterpolation=function(e,t,n,i){tt.unpack(e,n*4,gP),tt.conjugate(gP,gP);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;tt.unpack(e,(t+o)*4,Ff),tt.multiply(Ff,gP,Ff),Ff.w<0&&tt.negate(Ff,Ff),tt.computeAxis(Ff,_P);let a=tt.computeAngle(Ff);u(i)||(i=[]),i[s]=_P.x*a,i[s+1]=_P.y*a,i[s+2]=_P.z*a}};tt.unpackInterpolationResult=function(e,t,n,i,o){u(o)||(o=new tt),h.fromArray(e,0,dH);let r=h.magnitude(dH);return tt.unpack(t,i*4,VK),r===0?tt.clone(tt.IDENTITY,Ff):tt.fromAxisAngle(dH,r,Ff),tt.multiply(Ff,VK,o)};tt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new tt(e.x,e.y,e.z,e.w)};tt.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};tt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};tt.magnitude=function(e){return Math.sqrt(tt.magnitudeSquared(e))};tt.normalize=function(e,t){let n=1/tt.magnitude(e),i=e.x*n,o=e.y*n,r=e.z*n,s=e.w*n;return t.x=i,t.y=o,t.z=r,t.w=s,t};tt.inverse=function(e,t){let n=tt.magnitudeSquared(e);return t=tt.conjugate(e,t),tt.multiplyByScalar(t,1/n,t)};tt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};tt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};tt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};tt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};tt.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,l=t.z,f=t.w,d=s*a+i*f+o*l-r*c,p=s*c-i*l+o*f+r*a,g=s*l+i*c-o*a+r*f,m=s*f-i*a-o*c-r*l;return n.x=d,n.y=p,n.z=g,n.w=m,n};tt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};tt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};tt.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6)return t.x=t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};tt.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var hH=new tt;tt.lerp=function(e,t,n,i){return hH=tt.multiplyByScalar(t,n,hH),i=tt.multiplyByScalar(e,1-n,i),tt.add(hH,i,i)};var zK=new tt,mH=new tt,pH=new tt;tt.slerp=function(e,t,n,i){let o=tt.dot(e,t),r=t;if(o<0&&(o=-o,r=zK=tt.negate(t,zK)),1-o<P.EPSILON6)return tt.lerp(e,r,n,i);let s=Math.acos(o);return mH=tt.multiplyByScalar(e,Math.sin((1-n)*s),mH),pH=tt.multiplyByScalar(r,Math.sin(n*s),pH),i=tt.add(mH,pH,i),tt.multiplyByScalar(i,1/Math.sin(s),i)};tt.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};tt.exp=function(e,t){let n=h.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var mAe=new h,pAe=new h,ZE=new tt,Cb=new tt;tt.computeInnerQuadrangle=function(e,t,n,i){let o=tt.conjugate(t,ZE);tt.multiply(o,n,Cb);let r=tt.log(Cb,mAe);tt.multiply(o,e,Cb);let s=tt.log(Cb,pAe);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),tt.exp(r,ZE),tt.multiply(t,ZE,i)};tt.squad=function(e,t,n,i,o,r){let s=tt.slerp(e,t,o,ZE),a=tt.slerp(n,i,o,Cb);return tt.slerp(s,a,2*o*(1-o),r)};var _Ae=new tt,HK=1.9011074535173003,yP=Bt.supportsTypedArrays()?new Float32Array(8):[],xP=Bt.supportsTypedArrays()?new Float32Array(8):[],vm=Bt.supportsTypedArrays()?new Float32Array(8):[],Dm=Bt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;yP[e]=1/(t*n),xP[e]=t/n}yP[7]=HK/(8*17);xP[7]=HK*8/17;tt.fastSlerp=function(e,t,n,i){let o=tt.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,l=a*a;for(let g=7;g>=0;--g)vm[g]=(yP[g]*c-xP[g])*s,Dm[g]=(yP[g]*l-xP[g])*s;let f=r*n*(1+vm[0]*(1+vm[1]*(1+vm[2]*(1+vm[3]*(1+vm[4]*(1+vm[5]*(1+vm[6]*(1+vm[7])))))))),d=a*(1+Dm[0]*(1+Dm[1]*(1+Dm[2]*(1+Dm[3]*(1+Dm[4]*(1+Dm[5]*(1+Dm[6]*(1+Dm[7])))))))),p=tt.multiplyByScalar(e,d,_Ae);return tt.multiplyByScalar(t,f,i),tt.add(p,i,i)};tt.fastSquad=function(e,t,n,i,o,r){let s=tt.fastSlerp(e,t,o,ZE),a=tt.fastSlerp(n,i,o,Cb);return tt.fastSlerp(s,a,2*o*(1-o),r)};tt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};tt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};tt.ZERO=Object.freeze(new tt(0,0,0,0));tt.IDENTITY=Object.freeze(new tt(0,0,0,1));tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.prototype.equalsEpsilon=function(e,t){return tt.equalsEpsilon(this,e,t)};tt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Ne=tt;function gAe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Eo=gAe;function yAe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Yy=yAe;function xAe(e,t,n,i,o,r,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a}var o_=xAe;function bAe(e){return e%4===0&&e%100!==0||e%400===0}var r_=bAe;function TAe(e,t){this.julianDate=e,this.offset=t}var Vi=TAe;var AAe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Xn=Object.freeze(AAe);var CAe={UTC:0,TAI:1},Yn=Object.freeze(CAe);var WK=new o_,_H=[31,28,31,30,31,30,31,31,30,31,30,31],gH=29;function yH(e,t){return Ct.compare(e.julianDate,t.julianDate)}var Eb=new Vi;function TP(e){Eb.julianDate=e;let t=Ct.leapSeconds,n=Eo(t,Eb,yH);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Ct.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Ct.addSeconds(e,i,e)}function GK(e,t){Eb.julianDate=e;let n=Ct.leapSeconds,i=Eo(n,Eb,yH);if(i<0&&(i=~i),i===0)return Ct.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Ct.addSeconds(e,-n[i-1].offset,t);let o=Ct.secondsDifference(n[i].julianDate,e);if(o===0)return Ct.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Ct.addSeconds(e,-n[--i].offset,t)}function s_(e,t,n){let i=t/Xn.SECONDS_PER_DAY|0;return e+=i,t-=Xn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Xn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function xH(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,l=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*Xn.SECONDS_PER_HOUR+o*Xn.SECONDS_PER_MINUTE+s*Xn.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}var EAe=/^(\d{4})$/,SAe=/^(\d{4})-(\d{2})$/,wAe=/^(\d{4})-?(\d{3})$/,vAe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,DAe=/^(\d{4})-?(\d{2})-?(\d{2})$/,bH=/([Z+\-])?(\d{2})?:?(\d{2})?$/,IAe=/^(\d{2})(\.\d+)?/.source+bH.source,PAe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+bH.source,OAe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+bH.source;function Ct(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Yn.UTC);let i=e|0;t=t+(e-i)*Xn.SECONDS_PER_DAY,s_(i,t,this),n===Yn.UTC&&TP(this)}Ct.fromGregorianDate=function(e,t){let n=xH(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return u(t)?(s_(n[0],n[1],t),TP(t),t):new Ct(n[0],n[1],Yn.UTC)};Ct.fromDate=function(e,t){let n=xH(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return u(t)?(s_(n[0],n[1],t),TP(t),t):new Ct(n[0],n[1],Yn.UTC)};Ct.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,l=0,f=n[0],d=n[1],p,g;if(n=f.match(DAe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(SAe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(EAe),n!==null)i=+n[1];else{let T;if(n=f.match(wAe),n!==null)i=+n[1],T=+n[2],g=r_(i);else if(n=f.match(vAe),n!==null){i=+n[1];let A=+n[2],C=+n[3]||0,S=new Date(Date.UTC(i,0,4));T=A*7+C-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=r_(i);let m;if(u(d)){n=d.match(OAe),n!==null?(s=+n[1],a=+n[2],c=+n[3],l=+(n[4]||0)*1e3,m=5):(n=d.match(PAe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match(IAe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],A=+n[m+1],C=+(n[m+2]||0);switch(T){case"+":s=s-A,a=a-C;break;case"-":s=s+A,a=a+C;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?gH:_H[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?gH:_H[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?gH:_H[o-1],r+=p;let b=xH(i,o,r,s,a,c,l);return u(t)?(s_(b[0],b[1],t),TP(t)):t=new Ct(b[0],b[1],Yn.UTC),x&&Ct.addSeconds(t,1,t),t};Ct.now=function(e){return Ct.fromDate(new Date,e)};var bP=new Ct(0,0,Yn.TAI);Ct.toGregorianDate=function(e,t){let n=!1,i=GK(e,bP);u(i)||(Ct.addSeconds(e,-1,bP),i=GK(bP,bP),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let l=80*s/2447|0,f=s-(2447*l/80|0)|0;s=l/11|0;let d=l+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Xn.SECONDS_PER_HOUR|0,m=r-g*Xn.SECONDS_PER_HOUR,x=m/Xn.SECONDS_PER_MINUTE|0;m=m-x*Xn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/Xn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),u(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=x,t.second=b,t.millisecond=T,t.isLeapSecond=n,t):new o_(p,d,f,g,x,b,T,n)};Ct.toDate=function(e){let t=Ct.toGregorianDate(e,WK),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};Ct.toIso8601=function(e,t){let n=Ct.toGregorianDate(e,WK),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,l=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&l===0&&(i=9999,o=12,r=31,s=24);let f;return!u(t)&&l!==0?(f=(l*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!u(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(l*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};Ct.clone=function(e,t){if(u(e))return u(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Ct(e.dayNumber,e.secondsOfDay,Yn.TAI)};Ct.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Ct.equals=function(e,t){return e===t||u(e)&&u(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Ct.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(Ct.secondsDifference(e,t))<=n};Ct.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Xn.SECONDS_PER_DAY};Ct.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Xn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Ct.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Xn.SECONDS_PER_DAY;return n+i};Ct.computeTaiMinusUtc=function(e){Eb.julianDate=e;let t=Ct.leapSeconds,n=Eo(t,Eb,yH);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Ct.addSeconds=function(e,t,n){return s_(e.dayNumber,e.secondsOfDay+t,n)};Ct.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Xn.SECONDS_PER_MINUTE;return s_(e.dayNumber,i,n)};Ct.addHours=function(e,t,n){let i=e.secondsOfDay+t*Xn.SECONDS_PER_HOUR;return s_(e.dayNumber,i,n)};Ct.addDays=function(e,t,n){let i=e.dayNumber+t;return s_(i,e.secondsOfDay,n)};Ct.lessThan=function(e,t){return Ct.compare(e,t)<0};Ct.lessThanOrEquals=function(e,t){return Ct.compare(e,t)<=0};Ct.greaterThan=function(e,t){return Ct.compare(e,t)>0};Ct.greaterThanOrEquals=function(e,t){return Ct.compare(e,t)>=0};Ct.prototype.clone=function(e){return Ct.clone(this,e)};Ct.prototype.equals=function(e){return Ct.equals(this,e)};Ct.prototype.equalsEpsilon=function(e,t){return Ct.equalsEpsilon(this,e,t)};Ct.prototype.toString=function(){return Ct.toIso8601(this)};Ct.leapSeconds=[new Vi(new Ct(2441317,43210,Yn.TAI),10),new Vi(new Ct(2441499,43211,Yn.TAI),11),new Vi(new Ct(2441683,43212,Yn.TAI),12),new Vi(new Ct(2442048,43213,Yn.TAI),13),new Vi(new Ct(2442413,43214,Yn.TAI),14),new Vi(new Ct(2442778,43215,Yn.TAI),15),new Vi(new Ct(2443144,43216,Yn.TAI),16),new Vi(new Ct(2443509,43217,Yn.TAI),17),new Vi(new Ct(2443874,43218,Yn.TAI),18),new Vi(new Ct(2444239,43219,Yn.TAI),19),new Vi(new Ct(2444786,43220,Yn.TAI),20),new Vi(new Ct(2445151,43221,Yn.TAI),21),new Vi(new Ct(2445516,43222,Yn.TAI),22),new Vi(new Ct(2446247,43223,Yn.TAI),23),new Vi(new Ct(2447161,43224,Yn.TAI),24),new Vi(new Ct(2447892,43225,Yn.TAI),25),new Vi(new Ct(2448257,43226,Yn.TAI),26),new Vi(new Ct(2448804,43227,Yn.TAI),27),new Vi(new Ct(2449169,43228,Yn.TAI),28),new Vi(new Ct(2449534,43229,Yn.TAI),29),new Vi(new Ct(2450083,43230,Yn.TAI),30),new Vi(new Ct(2450630,43231,Yn.TAI),31),new Vi(new Ct(2451179,43232,Yn.TAI),32),new Vi(new Ct(2453736,43233,Yn.TAI),33),new Vi(new Ct(2454832,43234,Yn.TAI),34),new Vi(new Ct(2456109,43235,Yn.TAI),35),new Vi(new Ct(2457204,43236,Yn.TAI),36),new Vi(new Ct(2457754,43237,Yn.TAI),37)];var J=Ct;var uZ=or(Sl(),1);function RAe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var SP=RAe;function $K(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=$K(o,t)),n[i]=o}return n}var Ge=$K;function QK(e,t,n){n=y(n,!1);let i={},o=u(e),r=u(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=QK(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var gt=QK;function MAe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var wl=MAe;var JK=or(Sl(),1);function TH(e,t){let n;return typeof document<"u"&&(n=document),TH._implementation(e,t,n)}TH._implementation=function(e,t,n){if(!u(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new JK.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var Im=TH;var eZ=or(Sl(),1);function LAe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new eZ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var wP=LAe;var tZ=or(Sl(),1);function NAe(e){let t=new tZ.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var vb=NAe;var nZ={};function FAe(e,t,n){u(t)||(t=e.width),u(n)||(n=e.height);let i=nZ[t];u(i)||(i={},nZ[t]=i);let o=i[n];if(!u(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var th=FAe;var BAe=/^blob:/i;function kAe(e){return BAe.test(e)}var Db=kAe;var nh;function UAe(e){u(nh)||(nh=document.createElement("a")),nh.href=window.location.href;let t=nh.host,n=nh.protocol;return nh.href=e,nh.href=nh.href,n!==nh.protocol||t!==nh.host}var Ib=UAe;var VAe=/^data:/i;function zAe(e){return VAe.test(e)}var a_=zAe;function HAe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var Pb=HAe;function GAe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r<s;++r)t+=`${o+encodeURIComponent(i[r])}&`;else t+=`${o+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var Ob=GAe;function WAe(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,o=n.length;i<o;++i){let r=n[i].split("="),s=decodeURIComponent(r[0]),a=r[1];u(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var Du=WAe;var jAe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},Qn=Object.freeze(jAe);var qAe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},ts=Object.freeze(qAe);function vP(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,ts.OTHER),this.serverKey=e.serverKey,this.state=Qn.UNISSUED,this.deferred=void 0,this.cancelled=!1}vP.prototype.cancel=function(){this.cancelled=!0};vP.prototype.clone=function(e){return u(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=Qn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new vP(this)};var Ko=vP;function YAe(e){let t={};if(!e)return t;let n=e.split(`\r
- `);for(let i=0;i<n.length;++i){let o=n[i],r=o.indexOf(": ");if(r>0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var DP=YAe;function iZ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=DP(this.responseHeaders))}iZ.prototype.toString=function(){let e="Request has failed.";return u(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Pm=iZ;var PP=or(Sl(),1);function $E(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties($E.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});$E.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};$E.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&i[r]===t){o=r;break}return o!==-1?(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,i[o]=void 0):(n.splice(o,1),i.splice(o,1)),!0):!1};function XAe(e,t){return t-e}$E.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let r=t[e];u(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(XAe),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var pe=$E;function Xy(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(Xy.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function AH(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}Xy.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};Xy.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,o=-1,r=!0;for(;r;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?o=a:o=e,s<t&&n(i[s],i[o])<0&&(o=s),o!==e?(AH(i,o,e),e=o):r=!1}};Xy.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};Xy.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);o!==0;){let s=Math.floor((o-1)/2);if(n(t[o],t[s])<0)AH(t,o,s),o=s;else break}let r;return u(i)&&this._length>i&&(r=t[i],this._length=i),r};Xy.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return AH(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var IP=Xy;function KAe(e,t){return e.priority-t.priority}var Xi={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},Rb=20,Sa=new IP({comparator:KAe});Sa.maximumLength=Rb;Sa.reserve(Rb);var ih=[],Om={},ZAe=typeof document<"u"?new PP.default(document.location.href):new PP.default,OP=new pe;function No(){}No.maximumRequests=50;No.maximumRequestsPerServer=6;No.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18,"tile.googleapis.com:443":18,"tile.openstreetmap.org:443":18};No.throttleRequests=!0;No.debugShowStatistics=!1;No.requestCompletedEvent=OP;Object.defineProperties(No,{statistics:{get:function(){return Xi}},priorityHeapLength:{get:function(){return Rb},set:function(e){if(e<Rb)for(;Sa.length>e;){let t=Sa.pop();Ky(t)}Rb=e,Sa.maximumLength=e,Sa.reserve(e)}}});function oZ(e){u(e.priorityFunction)&&(e.priority=e.priorityFunction())}No.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(No.requestsByServer[e],No.maximumRequestsPerServer);return Om[e]+t<=n};No.heapHasOpenSlots=function(e){return Sa.length+e<=Rb};function rZ(e){return e.state===Qn.UNISSUED&&(e.state=Qn.ISSUED,e.deferred=wl()),e.deferred.promise}function $Ae(e){return function(t){if(e.state===Qn.CANCELLED)return;let n=e.deferred;--Xi.numberOfActiveRequests,--Om[e.serverKey],OP.raiseEvent(),e.state=Qn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function QAe(e){return function(t){e.state!==Qn.CANCELLED&&(++Xi.numberOfFailedRequests,--Xi.numberOfActiveRequests,--Om[e.serverKey],OP.raiseEvent(t),e.state=Qn.FAILED,e.deferred.reject(t))}}function sZ(e){let t=rZ(e);return e.state=Qn.ACTIVE,ih.push(e),++Xi.numberOfActiveRequests,++Xi.numberOfActiveRequestsEver,++Om[e.serverKey],e.requestFunction().then($Ae(e)).catch(QAe(e)),t}function Ky(e){let t=e.state===Qn.ACTIVE;if(e.state=Qn.CANCELLED,++Xi.numberOfCancelledRequests,u(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--Xi.numberOfActiveRequests,--Om[e.serverKey],++Xi.numberOfCancelledActiveRequests),u(e.cancelFunction)&&e.cancelFunction()}No.update=function(){let e,t,n=0,i=ih.length;for(e=0;e<i;++e){if(t=ih[e],t.cancelled&&Ky(t),t.state!==Qn.ACTIVE){++n;continue}n>0&&(ih[e-n]=t)}ih.length-=n;let o=Sa.internalArray,r=Sa.length;for(e=0;e<r;++e)oZ(o[e]);Sa.resort();let s=Math.max(No.maximumRequests-ih.length,0),a=0;for(;a<s&&Sa.length>0;){if(t=Sa.pop(),t.cancelled){Ky(t);continue}if(t.throttleByServer&&!No.serverHasOpenSlots(t.serverKey)){Ky(t);continue}sZ(t),++a}JAe()};No.getServerKey=function(e){let t=new PP.default(e);t.scheme()===""&&(t=t.absoluteTo(ZAe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=Om[n];return u(i)||(Om[n]=0),n};No.request=function(e){if(a_(e.url)||Db(e.url))return OP.raiseEvent(),e.state=Qn.RECEIVED,e.requestFunction();if(++Xi.numberOfAttemptedRequests,u(e.serverKey)||(e.serverKey=No.getServerKey(e.url)),No.throttleRequests&&e.throttleByServer&&!No.serverHasOpenSlots(e.serverKey))return;if(!No.throttleRequests||!e.throttle)return sZ(e);if(ih.length>=No.maximumRequests)return;oZ(e);let t=Sa.insert(e);if(u(t)){if(t===e)return;Ky(t)}return rZ(e)};function JAe(){No.debugShowStatistics&&(Xi.numberOfActiveRequests===0&&Xi.lastNumberOfActiveRequests>0&&(Xi.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${Xi.numberOfAttemptedRequests}`),Xi.numberOfAttemptedRequests=0),Xi.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${Xi.numberOfCancelledRequests}`),Xi.numberOfCancelledRequests=0),Xi.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${Xi.numberOfCancelledActiveRequests}`),Xi.numberOfCancelledActiveRequests=0),Xi.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${Xi.numberOfFailedRequests}`),Xi.numberOfFailedRequests=0)),Xi.lastNumberOfActiveRequests=Xi.numberOfActiveRequests)}No.clearForSpecs=function(){for(;Sa.length>0;){let t=Sa.pop();Ky(t)}let e=ih.length;for(let t=0;t<e;++t)Ky(ih[t]);ih.length=0,Om={},Xi.numberOfAttemptedRequests=0,Xi.numberOfActiveRequests=0,Xi.numberOfCancelledRequests=0,Xi.numberOfCancelledActiveRequests=0,Xi.numberOfFailedRequests=0,Xi.numberOfActiveRequestsEver=0,Xi.lastNumberOfActiveRequests=0};No.numberOfActiveRequestsByServer=function(e){return Om[e]};No.requestHeap=Sa;var ic=No;var aZ=or(Sl(),1);var QE={},Mb={};QE.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(Mb[n])||(Mb[n]=!0)};QE.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(Mb[n])&&delete Mb[n]};function eCe(e){let t=new aZ.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}QE.contains=function(e){let t=eCe(e);return!!(u(t)&&u(Mb[t]))};QE.clear=function(){Mb={}};var JE=QE;var fZ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function At(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=oh(e.templateValues,{}),this._queryParameters=oh(e.queryParameters,{}),this.headers=oh(e.headers,{}),this.request=y(e.request,new Ko),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function oh(e,t){return u(e)?Ge(e):t}At.createIfNeeded=function(e){return e instanceof At?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new At({url:e})};var Lb;At.supportsImageBitmapOptions=function(){if(u(Lb))return Lb;if(typeof createImageBitmap!="function")return Lb=Promise.resolve(!1),Lb;let e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";return Lb=At.fetchBlob({url:e}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=th(t[0]),i=th(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),Lb};Object.defineProperties(At,{isBlobSupported:{get:function(){return fZ}}});Object.defineProperties(At.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return vb(this._url)}},isDataUri:{get:function(){return a_(this._url)}},isBlobUri:{get:function(){return Db(this._url)}},isCrossOriginUrl:{get:function(){return Ib(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});At.prototype.toString=function(){return this.getUrlComponent(!0,!0)};At.prototype.parseUrl=function(e,t,n,i){let o=new uZ.default(e),r=tCe(o.query());this._queryParameters=t?MP(r,this.queryParameters,n):r,o.search(""),o.fragment(""),u(i)&&o.scheme()===""&&(o=o.absoluteTo(Im(i))),this._url=o.toString()};function tCe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Du(e)}function MP(e,t,n){if(!n)return gt(e,t);let i=Ge(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];u(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}At.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${nCe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return u(s)?encodeURIComponent(s):o})),t&&u(this.proxy)&&(n=this.proxy.getURL(n)),n};function nCe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!u(e[t[0]])?`?${t[0]}`:`?${Ob(e)}`}At.prototype.setQueryParameters=function(e,t){t?this._queryParameters=MP(this._queryParameters,e,!1):this._queryParameters=MP(e,this._queryParameters,!1)};At.prototype.appendQueryParameters=function(e){this._queryParameters=MP(e,this._queryParameters,!0)};At.prototype.setTemplateValues=function(e,t){t?this._templateValues=gt(this._templateValues,e):this._templateValues=gt(e,this._templateValues)};At.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,u(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return u(e.queryParameters)&&(t._queryParameters=gt(e.queryParameters,t.queryParameters)),u(e.templateValues)&&(t._templateValues=gt(e.templateValues,t.templateValues)),u(e.headers)&&(t.headers=gt(e.headers,t.headers)),u(e.proxy)&&(t.proxy=e.proxy),u(e.request)&&(t.request=e.request),u(e.retryCallback)&&(t.retryCallback=e.retryCallback),u(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};At.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};At.prototype.clone=function(e){return u(e)?(e._url=this._url,e._queryParameters=Ge(this._queryParameters),e._templateValues=Ge(this._templateValues),e.headers=Ge(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new At({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:u(this.credits)?this.credits.slice():void 0})};At.prototype.getBaseUri=function(e){return wP(this.getUrlComponent(e),e)};At.prototype.appendForwardSlash=function(){this._url=SP(this._url)};At.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};At.fetchArrayBuffer=function(e){return new At(e).fetchArrayBuffer()};At.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};At.fetchBlob=function(e){return new At(e).fetchBlob()};At.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(EH(this.request),!fZ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return CH({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!u(r))return;let s,a,c,l;return At.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!u(f))return;if(l=f,a)return At.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new At({url:d}),CH({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(u(f))return f.blob=l,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return u(c)&&window.URL.revokeObjectURL(c.url),f.blob=l,Promise.reject(f)})};function CH(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=wl();return At._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=ic.request(r);if(u(s))return s.catch(function(a){return r.state!==Qn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=Qn.UNISSUED,r.deferred=void 0,CH({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}At.fetchImage=function(e){return new At(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};At.prototype.fetchText=function(){return this.fetch({responseType:"text"})};At.fetchText=function(e){return new At(e).fetchText()};At.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(t){if(u(t))return JSON.parse(t)})};At.fetchJson=function(e){return new At(e).fetchJson()};At.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};At.fetchXML=function(e){return new At(e).fetchXML()};At.prototype.fetchJsonp=function(e){e=y(e,"callback"),EH(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(u(window[t]));return dZ(this,e,t)};function dZ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=wl();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},At._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=ic.request(o);if(u(s))return s.catch(function(a){return o.state!==Qn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=Qn.UNISSUED,o.deferred=void 0,dZ(e,t,n)):Promise.reject(a)})})}At.fetchJsonp=function(e){return new At(e).fetchJsonp(e.callbackParameterName)};At.prototype._makeRequest=function(e){let t=this;EH(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=gt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,l=e.data,f=wl(),d=At._Implementations.loadWithXhr(i,r,c,l,s,f,a);return u(d)&&u(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=ic.request(n);if(u(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==Qn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=Qn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function EH(e){if(e.state===Qn.ISSUED||e.state===Qn.ACTIVE)throw new ue("The Resource is already being fetched.");e.state=Qn.UNISSUED,e.deferred=void 0}var iCe=/^data:(.*?)(;base64)?,(.*)$/;function RP(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function cZ(e,t){let n=RP(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return i}function oCe(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return RP(i,o);case"arraybuffer":return cZ(i,o);case"blob":return r=cZ(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(RP(i,o),n);case"json":return JSON.parse(RP(i,o));default:}}At.prototype.fetch=function(e){return e=oh(e,{}),e.method="GET",this._makeRequest(e)};At.fetch=function(e){return new At(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.delete=function(e){return e=oh(e,{}),e.method="DELETE",this._makeRequest(e)};At.delete=function(e){return new At(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};At.prototype.head=function(e){return e=oh(e,{}),e.method="HEAD",this._makeRequest(e)};At.head=function(e){return new At(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.options=function(e){return e=oh(e,{}),e.method="OPTIONS",this._makeRequest(e)};At.options=function(e){return new At(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.post=function(e,t){return El.defined("data",e),t=oh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};At.post=function(e){return new At(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.put=function(e,t){return El.defined("data",e),t=oh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};At.put=function(e){return new At(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At.prototype.patch=function(e,t){return El.defined("data",e),t=oh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};At.patch=function(e){return new At(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};At._Implementations={};At._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(o){n.reject(o)},t&&(JE.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};At._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;At.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){At._Implementations.loadImageElement(s,t,n);return}let c="blob",l="GET",f=wl(),d=At._Implementations.loadWithXhr(s,c,l,void 0,void 0,f,void 0,void 0,void 0);return u(d)&&u(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!u(p)){n.reject(new ue(`Successfully retrieved ${s} but it contained no content.`));return}return At.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};At.createImageBitmapFromBlob=function(e,t){return El.defined("options",t),El.typeOf.bool("options.flipY",t.flipY),El.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),El.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function lZ(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function rCe(e,t,n,i,o,r,s){let a,c;Promise.all([import("url"),import("zlib")]).then(([l,f])=>(a=l.parse(e),c=f,a.protocol==="https:"?import("https"):import("http"))).then(l=>{let f={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:o};l.request(f).on("response",function(d){if(d.statusCode<200||d.statusCode>=300){r.reject(new Pm(d.statusCode,d,d.headers));return}let p=[];d.on("data",function(g){p.push(g)}),d.on("end",function(){let g=Buffer.concat(p);d.headers["content-encoding"]==="gzip"?c.gunzip(g,function(m,x){m?r.reject(new ue("Error decompressing response.")):r.resolve(lZ(x,t))}):r.resolve(lZ(g,t))})}).on("error",function(d){r.reject(new Pm)}).end()})}var sCe=typeof XMLHttpRequest>"u";At._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=iCe.exec(e);if(a!==null){r.resolve(oCe(a,t));return}if(sCe){rCe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(JE.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(s)&&u(c.overrideMimeType)&&c.overrideMimeType(s),u(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);u(t)&&(c.responseType=t);let l=!1;return typeof e=="string"&&(l=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(l&&c.status===0)){r.reject(new Pm(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};g.forEach(function(x){let b=x.split(": "),T=b.shift();m[T]=b.join(": ")}),r.resolve(m);return}if(c.status===204)r.resolve();else if(u(f)&&(!u(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&u(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&u(c.responseText)?r.resolve(c.responseText):r.reject(new ue("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Pm)},c.send(i),c};At._Implementations.loadAndExecuteScript=function(e,t,n){return Pb(e,t).catch(function(i){n.reject(i)})};At._DefaultImplementations={};At._DefaultImplementations.createImage=At._Implementations.createImage;At._DefaultImplementations.loadWithXhr=At._Implementations.loadWithXhr;At._DefaultImplementations.loadAndExecuteScript=At._Implementations.loadAndExecuteScript;At.DEFAULT=Object.freeze(new At({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var ve=At;function tS(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),u(e.data)?hZ(this,e.data):hZ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}tS.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ue(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new tS({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};tS.NONE=Object.freeze({compute:function(e,t){return u(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Yy(0,0,0,0,0),t}});tS.prototype.compute=function(e,t){if(!u(this._samples))return;if(u(t)||(t=new Yy(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(u(i)){let a=n[i],c=n[i+1],l=J.lessThanOrEquals(a,e),f=!u(c),d=f||J.greaterThanOrEquals(c,e);if(l&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,pZ(this,n,this._samples,e,o,r,t),t}let s=Eo(n,e,J.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,o=s,r=s):(r=~s,o=r-1,o<0&&(o=0)),this._lastIndex=o,pZ(this,n,this._samples,e,o,r,t),t};function aCe(e,t){return J.compare(e.julianDate,t)}function hZ(e,t){if(!u(t.columnNames))throw new ue("Error in loaded EOP data: The columnNames property is required.");if(!u(t.samples))throw new ue("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),o=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||o<0||r<0||s<0||a<0||c<0)throw new ue("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let l=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=o,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,m=l.length;g<m;g+=e._columnCount){let x=l[g+n],b=l[g+c],T=x+Xn.MODIFIED_JULIAN_DATE_DIFFERENCE,A=new J(T,b,Yn.TAI);if(f.push(A),p){if(b!==d&&u(d)){let C=J.leapSeconds,S=Eo(C,A,aCe);if(S<0){let w=new Vi(A,b);C.splice(~S,0,w)}}d=b}}}function mZ(e,t,n,i,o){let r=n*i;o.xPoleWander=t[r+e._xPoleWanderRadiansColumn],o.yPoleWander=t[r+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function eS(e,t,n){return t+e*(n-t)}function pZ(e,t,n,i,o,r,s){let a=e._columnCount;if(r>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],l=t[r];if(c.equals(l)||i.equals(c))return mZ(e,n,o,a,s),s;if(i.equals(l))return mZ(e,n,r,a,s),s;let f=J.secondsDifference(i,c)/J.secondsDifference(l,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],m=n[p+e._ut1MinusUtcSecondsColumn],x=m-g;if(x>.5||x<-.5){let b=n[d+e._taiMinusUtcSecondsColumn],T=n[p+e._taiMinusUtcSecondsColumn];b!==T&&(l.equals(i)?g=m:m-=T-b)}return s.xPoleWander=eS(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=eS(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=eS(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=eS(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=eS(f,g,m),s}var LP=tS;function wa(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}wa.fromQuaternion=function(e,t){u(t)||(t=new wa);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-P.asinClamped(n),t};wa.fromDegrees=function(e,t,n,i){return u(i)||(i=new wa),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};wa.clone=function(e,t){if(u(e))return u(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new wa(e.heading,e.pitch,e.roll)};wa.equals=function(e,t){return e===t||u(e)&&u(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};wa.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};wa.prototype.clone=function(e){return wa.clone(this,e)};wa.prototype.equals=function(e){return wa.equals(this,e)};wa.prototype.equalsEpsilon=function(e,t,n){return wa.equalsEpsilon(this,e,t,n)};wa.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var oc=wa;var _Z=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function cCe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=_Z.exec(i);if(o!==null)return o[1]}}var NP;function gZ(e){return typeof document>"u"?e:(u(NP)||(NP=document.createElement("a")),NP.href=e,NP.href)}var Zy;function yZ(){if(u(Zy))return Zy;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:u(import.meta?.url)?e=Im(".",import.meta.url):typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(WI.toUrl)?e=Im("..",$y("Core/buildModuleUrl.js")):e=cCe(),Zy=new ve({url:gZ(e)}),Zy.appendForwardSlash(),Zy}function lCe(e){return gZ(WI.toUrl(`../${e}`))}function xZ(e){return yZ().getDerivedResource({url:e}).url}var FP;function $y(e){return u(FP)||(typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(WI.toUrl)?FP=lCe:FP=xZ),FP(e)}$y._cesiumScriptRegex=_Z;$y._buildModuleUrlFromBaseUrl=xZ;$y._clearBaseResource=function(){Zy=void 0};$y.setBaseUrl=function(e){Zy=ve.DEFAULT.getDerivedResource({url:e})};$y.getCesiumBaseUrl=yZ;var $t=$y;function uCe(e,t,n){this.x=e,this.y=t,this.s=n}var Nb=uCe;function vH(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=ve.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new J(this._sampleZeroJulianEphemerisDate,0,Yn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var fCe=new J(0,0,Yn.TAI);function SH(e,t,n){let i=fCe;return i.dayNumber=t,i.secondsOfDay=n,J.daysDifference(i,e._sampleZeroDateTT)}vH.prototype.preload=function(e,t,n,i){let o=SH(this,e,t),r=SH(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,l=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=l;++d)f.push(wH(this,d));return Promise.all(f)};vH.prototype.computeXysRadians=function(e,t,n){let i=SH(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,l=this._samples;if(u(l[s*3])||(wH(this,s/this._samplesPerXysFile|0),c=!0),u(l[a*3])||(wH(this,a/this._samplesPerXysFile|0),c=!0),c)return;u(n)?(n.x=0,n.y=0,n.s=0):n=new Nb(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,m=this._xTable,x,b;for(x=0;x<=r;++x)d[x]=f-m[x];for(x=0;x<=r;++x){for(g[x]=1,b=0;b<=r;++b)b!==x&&(g[x]*=d[b]);g[x]*=p[x];let T=(s+x)*3;n.x+=g[x]*l[T++],n.y+=g[x]*l[T++],n.s+=g[x]*l[T]}return n};function wH(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;u(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new ve({url:$t(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let l=0,f=a.length;l<f;++l)s[c+l]=a[l]});return e._chunkDownloadsInProgress[t]=o,o}var BP=vH;var zi={},DH={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},Fb={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},IH={},zc={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},c_=new h,l_=new h,u_=new h;zi.localFrameToFixedFrameGenerator=function(e,t){if(!DH.hasOwnProperty(e)||!DH[e].hasOwnProperty(t))throw new de("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=DH[e][t],i,o=e+t;return u(IH[o])?i=IH[o]:(i=function(r,s,a){if(u(a)||(a=new L),h.equalsEpsilon(r,h.ZERO,P.EPSILON14))h.unpack(Fb[e],0,c_),h.unpack(Fb[t],0,l_),h.unpack(Fb[n],0,u_);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);h.unpack(Fb[e],0,c_),e!=="east"&&e!=="west"&&h.multiplyByScalar(c_,c,c_),h.unpack(Fb[t],0,l_),t!=="east"&&t!=="west"&&h.multiplyByScalar(l_,c,l_),h.unpack(Fb[n],0,u_),n!=="east"&&n!=="west"&&h.multiplyByScalar(u_,c,u_)}else{s=y(s,ie.WGS84),s.geodeticSurfaceNormal(r,zc.up);let c=zc.up,l=zc.east;l.x=-r.y,l.y=r.x,l.z=0,h.normalize(l,zc.east),h.cross(c,l,zc.north),h.multiplyByScalar(zc.up,-1,zc.down),h.multiplyByScalar(zc.east,-1,zc.west),h.multiplyByScalar(zc.north,-1,zc.south),c_=zc[e],l_=zc[t],u_=zc[n]}return a[0]=c_.x,a[1]=c_.y,a[2]=c_.z,a[3]=0,a[4]=l_.x,a[5]=l_.y,a[6]=l_.z,a[7]=0,a[8]=u_.x,a[9]=u_.y,a[10]=u_.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},IH[o]=i),i};zi.eastNorthUpToFixedFrame=zi.localFrameToFixedFrameGenerator("east","north");zi.northEastDownToFixedFrame=zi.localFrameToFixedFrameGenerator("north","east");zi.northUpEastToFixedFrame=zi.localFrameToFixedFrameGenerator("north","up");zi.northWestUpToFixedFrame=zi.localFrameToFixedFrameGenerator("north","west");var dCe=new Ne,hCe=new h(1,1,1),mCe=new L;zi.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,zi.eastNorthUpToFixedFrame);let r=Ne.fromHeadingPitchRoll(t,dCe),s=L.fromTranslationQuaternionRotationScale(h.ZERO,r,hCe,mCe);return o=i(e,n,o),L.multiply(o,s,o)};var pCe=new L,_Ce=new $;zi.headingPitchRollQuaternion=function(e,t,n,i,o){let r=zi.headingPitchRollToFixedFrame(e,t,n,i,pCe),s=L.getMatrix3(r,_Ce);return Ne.fromRotationMatrix(s,o)};var gCe=new h(1,1,1),yCe=new h,bZ=new L,xCe=new L,bCe=new $,TCe=new Ne;zi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ie.WGS84),n=y(n,zi.eastNorthUpToFixedFrame),u(i)||(i=new oc);let o=L.getTranslation(e,yCe);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=L.inverseTransformation(n(o,t,bZ),bZ),s=L.setScale(e,gCe,xCe);s=L.setTranslation(s,h.ZERO,s),r=L.multiply(r,s,r);let a=Ne.fromRotationMatrix(L.getMatrix3(r,bCe),TCe);return a=Ne.normalize(a,a),oc.fromQuaternion(a,i)};var ACe=6*3600+41*60+50.54841,CCe=8640184812866e-6,ECe=.093104,SCe=-62e-7,wCe=11772758384668e-32,vCe=72921158553e-15,DCe=P.TWO_PI/86400,kP=new J;zi.computeTemeToPseudoFixedMatrix=function(e,t){kP=J.addSeconds(e,-J.computeTaiMinusUtc(e),kP);let n=kP.dayNumber,i=kP.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Xn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Xn.DAYS_PER_JULIAN_CENTURY;let a=(ACe+o*(CCe+o*(ECe+o*SCe)))*DCe%P.TWO_PI,c=vCe+wCe*(n-24515455e-1),l=(i+Xn.SECONDS_PER_DAY*.5)%Xn.SECONDS_PER_DAY,f=a+c*l,d=Math.cos(f),p=Math.sin(f);return u(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(d,p,0,-p,d,0,0,0,1)};zi.iau2006XysData=new BP;zi.earthOrientationParameters=LP.NONE;var RH=32.184,ICe=2451545;zi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+RH,i=e.stop.dayNumber,o=e.stop.secondsOfDay+RH;return zi.iau2006XysData.preload(t,n,i,o)};zi.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new $);let n=zi.computeFixedToIcrfMatrix(e,t);if(u(n))return $.transpose(n,t)};var PCe=new Nb(0,0,0),OCe=new Yy(0,0,0,0,0,0),PH=new $,OH=new $;zi.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new $);let n=zi.earthOrientationParameters.compute(e,OCe);if(!u(n))return;let i=e.dayNumber,o=e.secondsOfDay+RH,r=zi.iau2006XysData.computeXysRadians(i,o,PCe);if(!u(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),l=PH;l[0]=1-c*s*s,l[3]=-c*s*a,l[6]=s,l[1]=-c*s*a,l[4]=1-c*a*a,l[7]=a,l[2]=-s,l[5]=-a,l[8]=1-c*(s*s+a*a);let f=$.fromRotationZ(-r.s,OH),d=$.multiply(l,f,PH),p=e.dayNumber,g=e.secondsOfDay-J.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/Xn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*P.TWO_PI;let T=$.fromRotationZ(b,OH),A=$.multiply(d,T,PH),C=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),w=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-ICe+o/Xn.SECONDS_PER_DAY;O/=36525;let R=-47e-6*O*P.RADIANS_PER_DEGREE/3600,N=Math.cos(R),F=Math.sin(R),_=OH;return _[0]=C*N,_[1]=C*F,_[2]=w,_[3]=-S*F+D*w*N,_[4]=S*N+D*w*F,_[5]=-D*C,_[6]=-D*F-S*w*N,_[7]=D*N-S*w*F,_[8]=S*C,$.multiply(A,_,t)};var RCe=new oe;zi.pointToWindowCoordinates=function(e,t,n,i){return i=zi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};zi.pointToGLWindowCoordinates=function(e,t,n,i){u(i)||(i=new V);let o=RCe;return L.multiplyByVector(e,oe.fromElements(n.x,n.y,n.z,1,o),o),oe.multiplyByScalar(o,1/o.w,o),L.multiplyByVector(t,o,o),V.fromCartesian4(o,i)};var MCe=new h,LCe=new h,NCe=new h;zi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ie.WGS84).geodeticSurfaceNormal(e,MCe),r=h.cross(t,o,LCe);h.equalsEpsilon(r,h.ZERO,P.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,NCe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),u(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var TZ=new L(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),AZ=new fe,CZ=new h,FCe=new h,BCe=new $,MH=new L,EZ=new L;zi.basisTo2D=function(e,t,n){let i=L.getTranslation(t,FCe),o=e.ellipsoid,r=o.cartesianToCartographic(i,AZ),s=e.project(r,CZ);h.fromElements(s.z,s.x,s.y,s);let a=zi.eastNorthUpToFixedFrame(i,o,MH),c=L.inverseTransformation(a,EZ),l=L.getMatrix3(t,BCe),f=L.multiplyByMatrix3(c,l,n);return L.multiply(TZ,f,n),L.setTranslation(n,s,n),n};zi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=zi.eastNorthUpToFixedFrame(t,i,MH),r=L.inverseTransformation(o,EZ),s=i.cartesianToCartographic(t,AZ),a=e.project(s,CZ);h.fromElements(a.z,a.x,a.y,a);let c=L.fromTranslation(a,MH);return L.multiply(TZ,r,n),L.multiply(c,n,n),n};var Rt=zi;function LH(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Le.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,Nf.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}LH.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&u(e.attributes[n])&&u(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var kCe=new fe,UCe=new h,SZ=new L,VCe=[new fe,new fe,new fe],zCe=[new V,new V,new V],HCe=[new V,new V,new V],GCe=new h,WCe=new Ne,jCe=new L,qCe=new Ji;LH._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=ce.center(i,kCe),s=fe.toCartesian(r,n,UCe),a=Rt.eastNorthUpToFixedFrame(s,n,SZ),c=L.inverse(a,SZ),l=zCe,f=VCe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=GCe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=L.multiplyByPointAsVector(c,d,d),l[o].x=d.x,l[o].y=d.y;let p=Ne.fromAxisAngle(h.UNIT_Z,-t,WCe),g=$.fromQuaternion(p,jCe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,A=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=L.multiplyByPointAsVector(c,e[o],d),d=$.multiplyByVector(g,d,d),x=Math.min(x,d.x),b=Math.min(b,d.y),T=Math.max(T,d.x),A=Math.max(A,d.y);let C=Ji.fromRotation(t,qCe),S=HCe;S[0].x=x,S[0].y=b,S[1].x=x,S[1].y=A,S[2].x=T,S[2].y=b;let w=l[0],D=l[2].x-w.x,O=l[1].y-w.y;for(o=0;o<3;o++){let E=S[o];Ji.multiplyByVector(C,E,E),E.x=(E.x-w.x)/D,E.y=(E.y-w.y)/O}let R=S[0],N=S[1],F=S[2],_=new Array(6);return V.pack(R,_),V.pack(N,_,2),V.pack(F,_,4),_};var ct=LH;function YCe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var Se=YCe;function Bb(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(Bb.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}});Bb.clone=function(e){if(u(e))return new Bb(e._format,e._datatype,e._width,e._height,e._buffer)};Bb.prototype.clone=function(){return Bb.clone(this)};var UP=Bb;var wZ=or(Sl(),1);function vZ(){if(!u(na._canTransferArrayBuffer)){let e=BH("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return na._canTransferArrayBuffer=!1,na._canTransferArrayBuffer}na._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=u(r)&&r[0]===t;i(s),e.terminate(),na._canTransferArrayBuffer=s}})}return na._canTransferArrayBuffer}var FH=new pe;function NH(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function BH(e){let t=new wZ.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i={},o;if(Ib(e)){let s=`importScripts("${e}");`;return o=NH(s),new Worker(o,i)}let r=e.replace(/\.js$/,"");if(!n&&typeof CESIUM_WORKERS<"u"){let s=`
- importScripts("${NH(CESIUM_WORKERS)}");
- CesiumWorkers["${r}"]();
- `;return o=NH(s),new Worker(o,i)}if(o=e,n||(o=$t(`${na._workerModulePrefix+r}.js`)),!Bt.supportsEsmWebWorkers())throw new ue("This browser is not supported. Please update your browser to continue.");return i.type="module",new Worker(o,i)}async function XCe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Bt.supportsWebAssembly()){if(!u(t.fallbackModulePath))throw new ue(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=$t(t.fallbackModulePath),n}n.wasmBinaryFile=$t(t.wasmBinaryFile);let i=await ve.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function na(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var KCe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(u(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ue(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new de(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),FH.raiseEvent(s),i(s)}else FH.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},ZCe=[];async function $Ce(e,t,n){let i=await Promise.resolve(vZ());u(n)?i||(n.length=0):n=ZCe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",KCe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:$t.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function QCe(e,t,n){++e._activeTasks;try{let i=await $Ce(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}na.prototype.scheduleTask=function(e,t){if(u(this._worker)||(this._worker=BH(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return QCe(this,e,t)};na.prototype.initWebAssemblyModule=async function(e){if(u(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=BH(this._workerPath),i=await XCe(this,e),o=await Promise.resolve(vZ()),r,s=i.wasmBinary;u(s)&&o&&(r=[s]);let a=new Promise((c,l)=>{n.onmessage=function({data:f}){u(f)?c(f.result):l(new ue("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};na.prototype.isDestroyed=function(){return!1};na.prototype.destroy=function(){return u(this._worker)&&this._worker.terminate(),le(this)};na.taskCompletedEvent=FH;na._defaultWorkerModulePrefix="Workers/";na._workerModulePrefix=na._defaultWorkerModulePrefix;na._canTransferArrayBuffer=void 0;var pi=na;function Rm(){}Rm._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);Rm._readyPromise=void 0;function JCe(){let e=Rm._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return Rm._transcodeTaskProcessor;throw new ue("KTX2 transcoder could not be initialized.")});Rm._readyPromise=e}Rm.transcode=function(e,t){return u(Rm._readyPromise)||JCe(),Rm._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let o=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:o},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]),r=o.length,s;for(s=0;s<i;s++){let a=n[s];for(let c=0;c<r;c++){let l=a[o[c]];a[o[c]]=new UP(l.internalFormat,l.datatype,l.width,l.height,l.levelBuffer)}}if(r===1){for(s=0;s<i;++s)n[s]=n[s][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var VP=Rm;var DZ;IZ.setKTX2SupportedFormats=function(e,t,n,i,o,r){DZ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function IZ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=ve.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return VP.transcode(n,DZ)})}var vl=IZ;function zP(e,t,n,i,o,r,s,a,c,l,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=l,this._initialized=f}Object.defineProperties(zP.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});zP.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context._gl,r=this._textureTarget,s=this._targetFace;o.activeTexture(o.TEXTURE0),o.bindTexture(r,this._texture);let a=i.width,c=i.height,l=i.arrayBufferView,f=this._size,d=this._pixelFormat,p=this._internalFormat,g=this._pixelDatatype,m=this._preMultiplyAlpha,x=this._flipY,b=y(e.skipColorSpaceConversion,!1),T=4;u(l)&&(T=rt.alignmentInBytes(d,g,a)),o.pixelStorei(o.UNPACK_ALIGNMENT,T),b?o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.NONE):o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.BROWSER_DEFAULT_WEBGL);let A=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===f)u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=rt.flipY(l,d,g,f,f)),o.texImage2D(s,0,p,f,f,0,d,Ye.toWebGLConstant(g,this._context),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texImage2D(s,0,p,d,Ye.toWebGLConstant(g,this._context),i)),A=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);let C=rt.createTypedArray(d,g,f,f);o.texImage2D(s,0,p,f,f,0,d,Ye.toWebGLConstant(g,this._context),C)}this._initialized=!0}A||(u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=rt.flipY(l,d,g,a,c)),o.texSubImage2D(s,0,t,n,a,c,d,Ye.toWebGLConstant(g,this._context),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texSubImage2D(s,0,t,n,d,Ye.toWebGLConstant(g,this._context),i))),o.bindTexture(r,null)};zP.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};var Mm=zP;var HP={DONT_CARE:ee.DONT_CARE,FASTEST:ee.FASTEST,NICEST:ee.NICEST,validate:function(e){return e===HP.DONT_CARE||e===HP.FASTEST||e===HP.NICEST}},Lm=Object.freeze(HP);var GP={NEAREST:ee.NEAREST,LINEAR:ee.LINEAR};GP.validate=function(e){return e===GP.NEAREST||e===GP.LINEAR};var Ci=Object.freeze(GP);var f_={NEAREST:ee.NEAREST,LINEAR:ee.LINEAR,NEAREST_MIPMAP_NEAREST:ee.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:ee.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:ee.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:ee.LINEAR_MIPMAP_LINEAR};f_.validate=function(e){return e===f_.NEAREST||e===f_.LINEAR||e===f_.NEAREST_MIPMAP_NEAREST||e===f_.LINEAR_MIPMAP_NEAREST||e===f_.NEAREST_MIPMAP_LINEAR||e===f_.LINEAR_MIPMAP_LINEAR};var an=Object.freeze(f_);var WP={CLAMP_TO_EDGE:ee.CLAMP_TO_EDGE,REPEAT:ee.REPEAT,MIRRORED_REPEAT:ee.MIRRORED_REPEAT,validate:function(e){return e===WP.CLAMP_TO_EDGE||e===WP.REPEAT||e===WP.MIRRORED_REPEAT}},vn=Object.freeze(WP);function nS(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.wrapS,vn.CLAMP_TO_EDGE),n=y(e.wrapT,vn.CLAMP_TO_EDGE),i=y(e.minificationFilter,an.LINEAR),o=y(e.magnificationFilter,Ci.LINEAR),r=u(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(nS.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});nS.equals=function(e,t){return e===t||u(e)&&u(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};nS.NEAREST=Object.freeze(new nS({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:an.NEAREST,magnificationFilter:Ci.NEAREST}));var ln=nS;function iS(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.source,i,o;if(u(n)){let A=[n.positiveX,n.negativeX,n.positiveY,n.negativeY,n.positiveZ,n.negativeZ];i=A[0].width,o=A[0].height}else i=e.width,o=e.height;let r=i,s=y(e.pixelDatatype,Ye.UNSIGNED_BYTE),a=y(e.pixelFormat,rt.RGBA),c=rt.toInternalFormat(a,s,t),l=rt.textureSizeInBytes(a,s,r,r)*6,f=e.preMultiplyAlpha||a===rt.RGB||a===rt.LUMINANCE,d=y(e.flipY,!0),p=y(e.skipColorSpaceConversion,!1),g=t._gl,m=g.TEXTURE_CUBE_MAP,x=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,x);function b(A,C,S,w,D){let O=C.arrayBufferView;u(O)||(O=C.bufferView);let R=4;u(O)&&(R=rt.alignmentInBytes(a,s,i)),g.pixelStorei(g.UNPACK_ALIGNMENT,R),D?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),u(O)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),w&&(O=rt.flipY(O,a,s,r,r)),g.texImage2D(A,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),O)):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,S),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,w),g.texImage2D(A,0,c,a,Ye.toWebGLConstant(s,t),C))}u(n)?(b(g.TEXTURE_CUBE_MAP_POSITIVE_X,n.positiveX,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_X,n.negativeX,f,d,p),b(g.TEXTURE_CUBE_MAP_POSITIVE_Y,n.positiveY,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.negativeY,f,d,p),b(g.TEXTURE_CUBE_MAP_POSITIVE_Z,n.positiveZ,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,n.negativeZ,f,d,p)):(g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_X,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Y,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Z,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,c,r,r,0,a,Ye.toWebGLConstant(s,t),null)),g.bindTexture(m,null),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=x,this._pixelFormat=a,this._pixelDatatype=s,this._size=r,this._hasMipmap=!1,this._sizeInBytes=l,this._preMultiplyAlpha=f,this._flipY=d,this._sampler=void 0;let T=u(n);this._positiveX=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_X,c,a,s,r,f,d,T),this._negativeX=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_X,c,a,s,r,f,d,T),this._positiveY=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Y,c,a,s,r,f,d,T),this._negativeY=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Y,c,a,s,r,f,d,T),this._positiveZ=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Z,c,a,s,r,f,d,T),this._negativeZ=new Mm(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Z,c,a,s,r,f,d,T),this.sampler=u(e.sampler)?e.sampler:new ln}Object.defineProperties(iS.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=t===an.NEAREST_MIPMAP_NEAREST||t===an.NEAREST_MIPMAP_LINEAR||t===an.LINEAR_MIPMAP_NEAREST||t===an.LINEAR_MIPMAP_LINEAR,o=this._context,r=this._pixelDatatype;(r===Ye.FLOAT&&!o.textureFloatLinear||r===Ye.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=i?an.NEAREST_MIPMAP_NEAREST:an.NEAREST,n=Ci.NEAREST);let s=o._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.texParameteri(a,s.TEXTURE_MIN_FILTER,t),s.texParameteri(a,s.TEXTURE_MAG_FILTER,n),s.texParameteri(a,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(a,s.TEXTURE_WRAP_T,e.wrapT),u(this._textureFilterAnisotropic)&&s.texParameteri(a,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(a,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});iS.prototype.generateMipmap=function(e){e=y(e,Lm.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};iS.prototype.isDestroyed=function(){return!1};iS.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=le(this._positiveX),this._negativeX=le(this._negativeX),this._positiveY=le(this._positiveY),this._negativeY=le(this._negativeY),this._positiveZ=le(this._positiveZ),this._negativeZ=le(this._negativeZ),le(this)};var rc=iS;function eEe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var sc=eEe;var jP=`/**
- * A built-in GLSL floating-point constant for converting radians to degrees.
- *
- * @alias czm_degreesPerRadian
- * @glslConstant
- *
- * @see CesiumMath.DEGREES_PER_RADIAN
- *
- * @example
- * // GLSL declaration
- * const float czm_degreesPerRadian = ...;
- *
- * // Example
- * float deg = czm_degreesPerRadian * rad;
- */
- const float czm_degreesPerRadian = 57.29577951308232;
- `;var qP=`/**
- * A built-in GLSL vec2 constant for defining the depth range.
- * This is a workaround to a bug where IE11 does not implement gl_DepthRange.
- *
- * @alias czm_depthRange
- * @glslConstant
- *
- * @example
- * // GLSL declaration
- * float depthRangeNear = czm_depthRange.near;
- * float depthRangeFar = czm_depthRange.far;
- *
- */
- const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0);
- `;var YP=`/**
- * 0.1
- *
- * @name czm_epsilon1
- * @glslConstant
- */
- const float czm_epsilon1 = 0.1;
- `;var XP=`/**
- * 0.01
- *
- * @name czm_epsilon2
- * @glslConstant
- */
- const float czm_epsilon2 = 0.01;
- `;var KP=`/**
- * 0.001
- *
- * @name czm_epsilon3
- * @glslConstant
- */
- const float czm_epsilon3 = 0.001;
- `;var ZP=`/**
- * 0.0001
- *
- * @name czm_epsilon4
- * @glslConstant
- */
- const float czm_epsilon4 = 0.0001;
- `;var $P=`/**
- * 0.00001
- *
- * @name czm_epsilon5
- * @glslConstant
- */
- const float czm_epsilon5 = 0.00001;
- `;var QP=`/**
- * 0.000001
- *
- * @name czm_epsilon6
- * @glslConstant
- */
- const float czm_epsilon6 = 0.000001;
- `;var JP=`/**
- * 0.0000001
- *
- * @name czm_epsilon7
- * @glslConstant
- */
- const float czm_epsilon7 = 0.0000001;
- `;var e1=`/**
- * DOC_TBA
- *
- * @name czm_infinity
- * @glslConstant
- */
- const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp?
- `;var t1=`/**
- * A built-in GLSL floating-point constant for <code>1/pi</code>.
- *
- * @alias czm_oneOverPi
- * @glslConstant
- *
- * @see CesiumMath.ONE_OVER_PI
- *
- * @example
- * // GLSL declaration
- * const float czm_oneOverPi = ...;
- *
- * // Example
- * float pi = 1.0 / czm_oneOverPi;
- */
- const float czm_oneOverPi = 0.3183098861837907;
- `;var n1=`/**
- * A built-in GLSL floating-point constant for <code>1/2pi</code>.
- *
- * @alias czm_oneOverTwoPi
- * @glslConstant
- *
- * @see CesiumMath.ONE_OVER_TWO_PI
- *
- * @example
- * // GLSL declaration
- * const float czm_oneOverTwoPi = ...;
- *
- * // Example
- * float pi = 2.0 * czm_oneOverTwoPi;
- */
- const float czm_oneOverTwoPi = 0.15915494309189535;
- `;var i1=`/**
- * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE}
- *
- * @name czm_passCesium3DTile
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passCesium3DTile = 4.0;
- `;var o1=`/**
- * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION}
- *
- * @name czm_passCesium3DTileClassification
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passCesium3DTileClassification = 5.0;
- `;var r1=`/**
- * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW}
- *
- * @name czm_passCesium3DTileClassificationIgnoreShow
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passCesium3DTileClassificationIgnoreShow = 6.0;
- `;var s1=`/**
- * The automatic GLSL constant for {@link Pass#CLASSIFICATION}
- *
- * @name czm_passClassification
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passClassification = 7.0;
- `;var a1=`/**
- * The automatic GLSL constant for {@link Pass#COMPUTE}
- *
- * @name czm_passCompute
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passCompute = 1.0;
- `;var c1=`/**
- * The automatic GLSL constant for {@link Pass#ENVIRONMENT}
- *
- * @name czm_passEnvironment
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passEnvironment = 0.0;
- `;var l1=`/**
- * The automatic GLSL constant for {@link Pass#GLOBE}
- *
- * @name czm_passGlobe
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passGlobe = 2.0;
- `;var u1=`/**
- * The automatic GLSL constant for {@link Pass#OPAQUE}
- *
- * @name czm_passOpaque
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passOpaque = 7.0;
- `;var f1=`/**
- * The automatic GLSL constant for {@link Pass#OVERLAY}
- *
- * @name czm_passOverlay
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passOverlay = 10.0;
- `;var d1=`/**
- * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION}
- *
- * @name czm_passTerrainClassification
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passTerrainClassification = 3.0;
- `;var h1=`/**
- * The automatic GLSL constant for {@link Pass#TRANSLUCENT}
- *
- * @name czm_passTranslucent
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passTranslucent = 8.0;
- `;var m1=`/**
- * The automatic GLSL constant for {@link Pass#VOXELS}
- *
- * @name czm_passVoxels
- * @glslConstant
- *
- * @see czm_pass
- */
- const float czm_passVoxels = 9.0;
- `;var p1=`/**
- * A built-in GLSL floating-point constant for <code>Math.PI</code>.
- *
- * @alias czm_pi
- * @glslConstant
- *
- * @see CesiumMath.PI
- *
- * @example
- * // GLSL declaration
- * const float czm_pi = ...;
- *
- * // Example
- * float twoPi = 2.0 * czm_pi;
- */
- const float czm_pi = 3.141592653589793;
- `;var _1=`/**
- * A built-in GLSL floating-point constant for <code>pi/4</code>.
- *
- * @alias czm_piOverFour
- * @glslConstant
- *
- * @see CesiumMath.PI_OVER_FOUR
- *
- * @example
- * // GLSL declaration
- * const float czm_piOverFour = ...;
- *
- * // Example
- * float pi = 4.0 * czm_piOverFour;
- */
- const float czm_piOverFour = 0.7853981633974483;
- `;var g1=`/**
- * A built-in GLSL floating-point constant for <code>pi/6</code>.
- *
- * @alias czm_piOverSix
- * @glslConstant
- *
- * @see CesiumMath.PI_OVER_SIX
- *
- * @example
- * // GLSL declaration
- * const float czm_piOverSix = ...;
- *
- * // Example
- * float pi = 6.0 * czm_piOverSix;
- */
- const float czm_piOverSix = 0.5235987755982988;
- `;var y1=`/**
- * A built-in GLSL floating-point constant for <code>pi/3</code>.
- *
- * @alias czm_piOverThree
- * @glslConstant
- *
- * @see CesiumMath.PI_OVER_THREE
- *
- * @example
- * // GLSL declaration
- * const float czm_piOverThree = ...;
- *
- * // Example
- * float pi = 3.0 * czm_piOverThree;
- */
- const float czm_piOverThree = 1.0471975511965976;
- `;var x1=`/**
- * A built-in GLSL floating-point constant for <code>pi/2</code>.
- *
- * @alias czm_piOverTwo
- * @glslConstant
- *
- * @see CesiumMath.PI_OVER_TWO
- *
- * @example
- * // GLSL declaration
- * const float czm_piOverTwo = ...;
- *
- * // Example
- * float pi = 2.0 * czm_piOverTwo;
- */
- const float czm_piOverTwo = 1.5707963267948966;
- `;var b1=`/**
- * A built-in GLSL floating-point constant for converting degrees to radians.
- *
- * @alias czm_radiansPerDegree
- * @glslConstant
- *
- * @see CesiumMath.RADIANS_PER_DEGREE
- *
- * @example
- * // GLSL declaration
- * const float czm_radiansPerDegree = ...;
- *
- * // Example
- * float rad = czm_radiansPerDegree * deg;
- */
- const float czm_radiansPerDegree = 0.017453292519943295;
- `;var T1=`/**
- * The constant identifier for the 2D {@link SceneMode}
- *
- * @name czm_sceneMode2D
- * @glslConstant
- * @see czm_sceneMode
- * @see czm_sceneModeColumbusView
- * @see czm_sceneMode3D
- * @see czm_sceneModeMorphing
- */
- const float czm_sceneMode2D = 2.0;
- `;var A1=`/**
- * The constant identifier for the 3D {@link SceneMode}
- *
- * @name czm_sceneMode3D
- * @glslConstant
- * @see czm_sceneMode
- * @see czm_sceneMode2D
- * @see czm_sceneModeColumbusView
- * @see czm_sceneModeMorphing
- */
- const float czm_sceneMode3D = 3.0;
- `;var C1=`/**
- * The constant identifier for the Columbus View {@link SceneMode}
- *
- * @name czm_sceneModeColumbusView
- * @glslConstant
- * @see czm_sceneMode
- * @see czm_sceneMode2D
- * @see czm_sceneMode3D
- * @see czm_sceneModeMorphing
- */
- const float czm_sceneModeColumbusView = 1.0;
- `;var E1=`/**
- * The constant identifier for the Morphing {@link SceneMode}
- *
- * @name czm_sceneModeMorphing
- * @glslConstant
- * @see czm_sceneMode
- * @see czm_sceneMode2D
- * @see czm_sceneModeColumbusView
- * @see czm_sceneMode3D
- */
- const float czm_sceneModeMorphing = 0.0;
- `;var S1=`/**
- * A built-in GLSL floating-point constant for one solar radius.
- *
- * @alias czm_solarRadius
- * @glslConstant
- *
- * @see CesiumMath.SOLAR_RADIUS
- *
- * @example
- * // GLSL declaration
- * const float czm_solarRadius = ...;
- */
- const float czm_solarRadius = 695500000.0;
- `;var w1=`/**
- * A built-in GLSL floating-point constant for <code>3pi/2</code>.
- *
- * @alias czm_threePiOver2
- * @glslConstant
- *
- * @see CesiumMath.THREE_PI_OVER_TWO
- *
- * @example
- * // GLSL declaration
- * const float czm_threePiOver2 = ...;
- *
- * // Example
- * float pi = (2.0 / 3.0) * czm_threePiOver2;
- */
- const float czm_threePiOver2 = 4.71238898038469;
- `;var v1=`/**
- * A built-in GLSL floating-point constant for <code>2pi</code>.
- *
- * @alias czm_twoPi
- * @glslConstant
- *
- * @see CesiumMath.TWO_PI
- *
- * @example
- * // GLSL declaration
- * const float czm_twoPi = ...;
- *
- * // Example
- * float pi = czm_twoPi / 2.0;
- */
- const float czm_twoPi = 6.283185307179586;
- `;var D1=`/**
- * The maximum latitude, in radians, both North and South, supported by a Web Mercator
- * (EPSG:3857) projection. Technically, the Mercator projection is defined
- * for any latitude up to (but not including) 90 degrees, but it makes sense
- * to cut it off sooner because it grows exponentially with increasing latitude.
- * The logic behind this particular cutoff value, which is the one used by
- * Google Maps, Bing Maps, and Esri, is that it makes the projection
- * square. That is, the rectangle is equal in the X and Y directions.
- *
- * The constant value is computed as follows:
- * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi)))
- *
- * @name czm_webMercatorMaxLatitude
- * @glslConstant
- */
- const float czm_webMercatorMaxLatitude = 1.4844222297453324;
- `;var I1=`/**
- * @name czm_depthRangeStruct
- * @glslStruct
- */
- struct czm_depthRangeStruct
- {
- float near;
- float far;
- };
- `;var P1=`/**
- * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions.
- *
- * @name czm_material
- * @glslStruct
- *
- * @property {vec3} diffuse Incoming light that scatters evenly in all directions.
- * @property {float} specular Intensity of incoming light reflecting in a single direction.
- * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight.
- * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal.
- * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light.
- * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque.
- */
- struct czm_material
- {
- vec3 diffuse;
- float specular;
- float shininess;
- vec3 normal;
- vec3 emission;
- float alpha;
- };
- `;var O1=`/**
- * Used as input to every material's czm_getMaterial function.
- *
- * @name czm_materialInput
- * @glslStruct
- *
- * @property {float} s 1D texture coordinates.
- * @property {vec2} st 2D texture coordinates.
- * @property {vec3} str 3D texture coordinates.
- * @property {vec3} normalEC Unperturbed surface normal in eye coordinates.
- * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space.
- * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye.
- * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials.
- * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials.
- * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials.
- */
- struct czm_materialInput
- {
- float s;
- vec2 st;
- vec3 str;
- vec3 normalEC;
- mat3 tangentToEyeMatrix;
- vec3 positionToEyeEC;
- float height;
- float slope;
- float aspect;
- };
- `;var R1=`/**
- * Struct for representing a material for a {@link Model}. The model
- * rendering pipeline will pass this struct between material, custom shaders,
- * and lighting stages. This is not to be confused with {@link czm_material}
- * which is used by the older Fabric materials system, although they are similar.
- * <p>
- * All color values (diffuse, specular, emissive) are in linear color space.
- * </p>
- *
- * @name czm_modelMaterial
- * @glslStruct
- *
- * @property {vec3} diffuse Incoming light that scatters evenly in all directions.
- * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque.
- * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature.
- * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces.
- * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal.
- * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded.
- * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light.
- */
- struct czm_modelMaterial {
- vec3 diffuse;
- float alpha;
- vec3 specular;
- float roughness;
- vec3 normalEC;
- float occlusion;
- vec3 emissive;
- };
- `;var M1=`/**
- * Struct for representing the output of a custom vertex shader.
- *
- * @name czm_modelVertexOutput
- * @glslStruct
- *
- * @see {@link CustomShader}
- * @see {@link Model}
- *
- * @property {vec3} positionMC The position of the vertex in model coordinates
- * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives.
- */
- struct czm_modelVertexOutput {
- vec3 positionMC;
- float pointSize;
- };
- `;var L1=`/**
- * Parameters for {@link czm_pbrLighting}
- *
- * @name czm_material
- * @glslStruct
- *
- * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation
- * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is.
- * @property {vec3} f0 The reflectance of the material at normal incidence
- */
- struct czm_pbrParameters
- {
- vec3 diffuseColor;
- float roughness;
- vec3 f0;
- };
- `;var N1=`/**
- * DOC_TBA
- *
- * @name czm_ray
- * @glslStruct
- */
- struct czm_ray
- {
- vec3 origin;
- vec3 direction;
- };
- `;var F1=`/**
- * DOC_TBA
- *
- * @name czm_raySegment
- * @glslStruct
- */
- struct czm_raySegment
- {
- float start;
- float stop;
- };
- /**
- * DOC_TBA
- *
- * @name czm_emptyRaySegment
- * @glslConstant
- */
- const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity);
- /**
- * DOC_TBA
- *
- * @name czm_fullRaySegment
- * @glslConstant
- */
- const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity);
- `;var B1=`struct czm_shadowParameters
- {
- #ifdef USE_CUBE_MAP_SHADOW
- vec3 texCoords;
- #else
- vec2 texCoords;
- #endif
- float depthBias;
- float depth;
- float nDotL;
- vec2 texelStepSize;
- float normalShadingSmooth;
- float darkness;
- };
- `;var k1=`/**
- * Converts an HSB color (hue, saturation, brightness) to RGB
- * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl}
- *
- * @name czm_HSBToRGB
- * @glslFunction
- *
- * @param {vec3} hsb The color in HSB.
- *
- * @returns {vec3} The color in RGB.
- *
- * @example
- * vec3 hsb = czm_RGBToHSB(rgb);
- * hsb.z *= 0.1;
- * rgb = czm_HSBToRGB(hsb);
- */
- const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 czm_HSBToRGB(vec3 hsb)
- {
- vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www);
- return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y);
- }
- `;var U1=`/**
- * Converts an HSL color (hue, saturation, lightness) to RGB
- * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html}
- *
- * @name czm_HSLToRGB
- * @glslFunction
- *
- * @param {vec3} rgb The color in HSL.
- *
- * @returns {vec3} The color in RGB.
- *
- * @example
- * vec3 hsl = czm_RGBToHSL(rgb);
- * hsl.z *= 0.1;
- * rgb = czm_HSLToRGB(hsl);
- */
- vec3 hueToRGB(float hue)
- {
- float r = abs(hue * 6.0 - 3.0) - 1.0;
- float g = 2.0 - abs(hue * 6.0 - 2.0);
- float b = 2.0 - abs(hue * 6.0 - 4.0);
- return clamp(vec3(r, g, b), 0.0, 1.0);
- }
- vec3 czm_HSLToRGB(vec3 hsl)
- {
- vec3 rgb = hueToRGB(hsl.x);
- float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;
- return (rgb - 0.5) * c + hsl.z;
- }
- `;var V1=`/**
- * Converts an RGB color to HSB (hue, saturation, brightness)
- * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl}
- *
- * @name czm_RGBToHSB
- * @glslFunction
- *
- * @param {vec3} rgb The color in RGB.
- *
- * @returns {vec3} The color in HSB.
- *
- * @example
- * vec3 hsb = czm_RGBToHSB(rgb);
- * hsb.z *= 0.1;
- * rgb = czm_HSBToRGB(hsb);
- */
- const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec3 czm_RGBToHSB(vec3 rgb)
- {
- vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g));
- vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r));
- float d = q.x - min(q.w, q.y);
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x);
- }
- `;var z1=`/**
- * Converts an RGB color to HSL (hue, saturation, lightness)
- * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html}
- *
- * @name czm_RGBToHSL
- * @glslFunction
- *
- * @param {vec3} rgb The color in RGB.
- *
- * @returns {vec3} The color in HSL.
- *
- * @example
- * vec3 hsl = czm_RGBToHSL(rgb);
- * hsl.z *= 0.1;
- * rgb = czm_HSLToRGB(hsl);
- */
-
- vec3 RGBtoHCV(vec3 rgb)
- {
- // Based on work by Sam Hocevar and Emil Persson
- vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0);
- vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);
- float c = q.x - min(q.w, q.y);
- float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z);
- return vec3(h, c, q.x);
- }
- vec3 czm_RGBToHSL(vec3 rgb)
- {
- vec3 hcv = RGBtoHCV(rgb);
- float l = hcv.z - hcv.y * 0.5;
- float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7);
- return vec3(hcv.x, s, l);
- }
- `;var H1=`/**
- * Converts an RGB color to CIE Yxy.
- * <p>The conversion is described in
- * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform}
- * </p>
- *
- * @name czm_RGBToXYZ
- * @glslFunction
- *
- * @param {vec3} rgb The color in RGB.
- *
- * @returns {vec3} The color in CIE Yxy.
- *
- * @example
- * vec3 xyz = czm_RGBToXYZ(rgb);
- * xyz.x = max(xyz.x - luminanceThreshold, 0.0);
- * rgb = czm_XYZToRGB(xyz);
- */
- vec3 czm_RGBToXYZ(vec3 rgb)
- {
- const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193,
- 0.3576, 0.7152, 0.1192,
- 0.1805, 0.0722, 0.9505);
- vec3 xyz = RGB2XYZ * rgb;
- vec3 Yxy;
- Yxy.r = xyz.g;
- float temp = dot(vec3(1.0), xyz);
- Yxy.gb = xyz.rg / temp;
- return Yxy;
- }
- `;var G1=`/**
- * Converts a CIE Yxy color to RGB.
- * <p>The conversion is described in
- * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform}
- * </p>
- *
- * @name czm_XYZToRGB
- * @glslFunction
- *
- * @param {vec3} Yxy The color in CIE Yxy.
- *
- * @returns {vec3} The color in RGB.
- *
- * @example
- * vec3 xyz = czm_RGBToXYZ(rgb);
- * xyz.x = max(xyz.x - luminanceThreshold, 0.0);
- * rgb = czm_XYZToRGB(xyz);
- */
- vec3 czm_XYZToRGB(vec3 Yxy)
- {
- const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556,
- -1.5371, 1.8760, -0.2040,
- -0.4985, 0.0416, 1.0572);
- vec3 xyz;
- xyz.r = Yxy.r * Yxy.g / Yxy.b;
- xyz.g = Yxy.r;
- xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b;
-
- return XYZ2RGB * xyz;
- }
- `;var W1=`// See:
- // https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
- vec3 czm_acesTonemapping(vec3 color) {
- float g = 0.985;
- float a = 0.065;
- float b = 0.0001;
- float c = 0.433;
- float d = 0.238;
- color = (color * (color + a) - b) / (color * (g * color + c) + d);
- color = clamp(color, 0.0, 1.0);
- return color;
- }
- `;var j1=`/**
- * @private
- */
- float czm_alphaWeight(float a)
- {
- float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];
- // See Weighted Blended Order-Independent Transparency for examples of different weighting functions:
- // http://jcgt.org/published/0002/02/09/
- return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0))));
- }
- `;var q1=`/**
- * Procedural anti-aliasing by blurring two colors that meet at a sharp edge.
- *
- * @name czm_antialias
- * @glslFunction
- *
- * @param {vec4} color1 The color on one side of the edge.
- * @param {vec4} color2 The color on the other side of the edge.
- * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>.
- * @param {float} dist The distance to the edge in texture coordinates.
- * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors.
- * @returns {vec4} The anti-aliased color.
- *
- * @example
- * // GLSL declarations
- * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor);
- * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist);
- *
- * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space
- * float dist = abs(textureCoordinates.t - 0.5);
- * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t));
- * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1);
- */
- vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor)
- {
- float val1 = clamp(dist / fuzzFactor, 0.0, 1.0);
- float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0);
- val1 = val1 * (1.0 - val2);
- val1 = val1 * val1 * (3.0 - (2.0 * val1));
- val1 = pow(val1, 0.5); //makes the transition nicer
-
- vec4 midColor = (color1 + color2) * 0.5;
- return mix(midColor, currentColor, val1);
- }
- vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist)
- {
- return czm_antialias(color1, color2, currentColor, dist, 0.1);
- }
- `;var Y1=`/**
- * Approximately computes spherical coordinates given a normal.
- * Uses approximate inverse trigonometry for speed and consistency,
- * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU.
- *
- * @name czm_approximateSphericalCoordinates
- * @glslFunction
- *
- * @param {vec3} normal arbitrary-length normal.
- *
- * @returns {vec2} Approximate latitude and longitude spherical coordinates.
- */
- vec2 czm_approximateSphericalCoordinates(vec3 normal) {
- // Project into plane with vertical for latitude
- float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z);
- float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y);
- return vec2(latitudeApproximation, longitudeApproximation);
- }
- `;var X1=`/**
- * Determines if the fragment is back facing
- *
- * @name czm_backFacing
- * @glslFunction
- *
- * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>.
- */
- bool czm_backFacing()
- {
- // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494.
- return gl_FrontFacing == false;
- }
- `;var K1=`/**
- * Branchless ternary operator to be used when it's inexpensive to explicitly
- * evaluate both possibilities for a float expression.
- *
- * @name czm_branchFreeTernary
- * @glslFunction
- *
- * @param {bool} comparison A comparison statement
- * @param {float} a Value to return if the comparison is true.
- * @param {float} b Value to return if the comparison is false.
- *
- * @returns {float} equivalent of comparison ? a : b
- */
- float czm_branchFreeTernary(bool comparison, float a, float b) {
- float useA = float(comparison);
- return a * useA + b * (1.0 - useA);
- }
- /**
- * Branchless ternary operator to be used when it's inexpensive to explicitly
- * evaluate both possibilities for a vec2 expression.
- *
- * @name czm_branchFreeTernary
- * @glslFunction
- *
- * @param {bool} comparison A comparison statement
- * @param {vec2} a Value to return if the comparison is true.
- * @param {vec2} b Value to return if the comparison is false.
- *
- * @returns {vec2} equivalent of comparison ? a : b
- */
- vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) {
- float useA = float(comparison);
- return a * useA + b * (1.0 - useA);
- }
- /**
- * Branchless ternary operator to be used when it's inexpensive to explicitly
- * evaluate both possibilities for a vec3 expression.
- *
- * @name czm_branchFreeTernary
- * @glslFunction
- *
- * @param {bool} comparison A comparison statement
- * @param {vec3} a Value to return if the comparison is true.
- * @param {vec3} b Value to return if the comparison is false.
- *
- * @returns {vec3} equivalent of comparison ? a : b
- */
- vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) {
- float useA = float(comparison);
- return a * useA + b * (1.0 - useA);
- }
- /**
- * Branchless ternary operator to be used when it's inexpensive to explicitly
- * evaluate both possibilities for a vec4 expression.
- *
- * @name czm_branchFreeTernary
- * @glslFunction
- *
- * @param {bool} comparison A comparison statement
- * @param {vec3} a Value to return if the comparison is true.
- * @param {vec3} b Value to return if the comparison is false.
- *
- * @returns {vec3} equivalent of comparison ? a : b
- */
- vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) {
- float useA = float(comparison);
- return a * useA + b * (1.0 - useA);
- }
- `;var Z1=`
- vec4 czm_cascadeColor(vec4 weights)
- {
- return vec4(1.0, 0.0, 0.0, 1.0) * weights.x +
- vec4(0.0, 1.0, 0.0, 1.0) * weights.y +
- vec4(0.0, 0.0, 1.0, 1.0) * weights.z +
- vec4(1.0, 0.0, 1.0, 1.0) * weights.w;
- }
- `;var $1=`
- uniform vec4 shadowMap_cascadeDistances;
- float czm_cascadeDistance(vec4 weights)
- {
- return dot(shadowMap_cascadeDistances, weights);
- }
- `;var Q1=`
- uniform mat4 shadowMap_cascadeMatrices[4];
- mat4 czm_cascadeMatrix(vec4 weights)
- {
- return shadowMap_cascadeMatrices[0] * weights.x +
- shadowMap_cascadeMatrices[1] * weights.y +
- shadowMap_cascadeMatrices[2] * weights.z +
- shadowMap_cascadeMatrices[3] * weights.w;
- }
- `;var J1=`
- uniform vec4 shadowMap_cascadeSplits[2];
- vec4 czm_cascadeWeights(float depthEye)
- {
- // One component is set to 1.0 and all others set to 0.0.
- vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye));
- vec4 far = step(depthEye, shadowMap_cascadeSplits[1]);
- return near * far;
- }
- `;var eO=`/**
- * DOC_TBA
- *
- * @name czm_columbusViewMorph
- * @glslFunction
- */
- vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time)
- {
- // Just linear for now.
- vec3 p = mix(position2D.xyz, position3D.xyz, time);
- return vec4(p, 1.0);
- }
- `;var tO=`/**
- * Returns a position in model coordinates relative to eye taking into
- * account the current scene mode: 3D, 2D, or Columbus view.
- * <p>
- * This uses standard position attributes, <code>position3DHigh</code>,
- * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>,
- * and should be used when writing a vertex shader for an {@link Appearance}.
- * </p>
- *
- * @name czm_computePosition
- * @glslFunction
- *
- * @returns {vec4} The position relative to eye.
- *
- * @example
- * vec4 p = czm_computePosition();
- * v_positionEC = (czm_modelViewRelativeToEye * p).xyz;
- * gl_Position = czm_modelViewProjectionRelativeToEye * p;
- *
- * @see czm_translateRelativeToEye
- */
- vec4 czm_computePosition();
- `;var nO=`/**
- * @private
- */
- vec2 cordic(float angle)
- {
- // Scale the vector by the appropriate factor for the 24 iterations to follow.
- vec2 vector = vec2(6.0725293500888267e-1, 0.0);
- // Iteration 1
- float sense = (angle < 0.0) ? -1.0 : 1.0;
- // float factor = sense * 1.0; // 2^-0
- mat2 rotation = mat2(1.0, sense, -sense, 1.0);
- vector = rotation * vector;
- angle -= sense * 7.8539816339744828e-1; // atan(2^-0)
- // Iteration 2
- sense = (angle < 0.0) ? -1.0 : 1.0;
- float factor = sense * 5.0e-1; // 2^-1
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 4.6364760900080609e-1; // atan(2^-1)
- // Iteration 3
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 2.5e-1; // 2^-2
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 2.4497866312686414e-1; // atan(2^-2)
- // Iteration 4
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.25e-1; // 2^-3
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.2435499454676144e-1; // atan(2^-3)
- // Iteration 5
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 6.25e-2; // 2^-4
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 6.2418809995957350e-2; // atan(2^-4)
- // Iteration 6
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 3.125e-2; // 2^-5
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 3.1239833430268277e-2; // atan(2^-5)
- // Iteration 7
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.5625e-2; // 2^-6
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.5623728620476831e-2; // atan(2^-6)
- // Iteration 8
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 7.8125e-3; // 2^-7
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 7.8123410601011111e-3; // atan(2^-7)
- // Iteration 9
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 3.90625e-3; // 2^-8
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 3.9062301319669718e-3; // atan(2^-8)
- // Iteration 10
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.953125e-3; // 2^-9
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.9531225164788188e-3; // atan(2^-9)
- // Iteration 11
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 9.765625e-4; // 2^-10
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 9.7656218955931946e-4; // atan(2^-10)
- // Iteration 12
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 4.8828125e-4; // 2^-11
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 4.8828121119489829e-4; // atan(2^-11)
- // Iteration 13
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 2.44140625e-4; // 2^-12
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 2.4414062014936177e-4; // atan(2^-12)
- // Iteration 14
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.220703125e-4; // 2^-13
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.2207031189367021e-4; // atan(2^-13)
- // Iteration 15
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 6.103515625e-5; // 2^-14
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 6.1035156174208773e-5; // atan(2^-14)
- // Iteration 16
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 3.0517578125e-5; // 2^-15
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 3.0517578115526096e-5; // atan(2^-15)
- // Iteration 17
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.52587890625e-5; // 2^-16
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.5258789061315762e-5; // atan(2^-16)
- // Iteration 18
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 7.62939453125e-6; // 2^-17
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 7.6293945311019700e-6; // atan(2^-17)
- // Iteration 19
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 3.814697265625e-6; // 2^-18
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 3.8146972656064961e-6; // atan(2^-18)
- // Iteration 20
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.9073486328125e-6; // 2^-19
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 1.9073486328101870e-6; // atan(2^-19)
- // Iteration 21
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 9.5367431640625e-7; // 2^-20
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 9.5367431640596084e-7; // atan(2^-20)
- // Iteration 22
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 4.76837158203125e-7; // 2^-21
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 4.7683715820308884e-7; // atan(2^-21)
- // Iteration 23
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 2.384185791015625e-7; // 2^-22
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- angle -= sense * 2.3841857910155797e-7; // atan(2^-22)
- // Iteration 24
- sense = (angle < 0.0) ? -1.0 : 1.0;
- factor = sense * 1.1920928955078125e-7; // 2^-23
- rotation[0][1] = factor;
- rotation[1][0] = -factor;
- vector = rotation * vector;
- // angle -= sense * 1.1920928955078068e-7; // atan(2^-23)
- return vector;
- }
- /**
- * Computes the cosine and sine of the provided angle using the CORDIC algorithm.
- *
- * @name czm_cosineAndSine
- * @glslFunction
- *
- * @param {float} angle The angle in radians.
- *
- * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate).
- *
- * @example
- * vec2 v = czm_cosineAndSine(czm_piOverSix);
- * float cosine = v.x;
- * float sine = v.y;
- */
- vec2 czm_cosineAndSine(float angle)
- {
- if (angle < -czm_piOverTwo || angle > czm_piOverTwo)
- {
- if (angle < 0.0)
- {
- return -cordic(angle + czm_pi);
- }
- else
- {
- return -cordic(angle - czm_pi);
- }
- }
- else
- {
- return cordic(angle);
- }
- }
- `;var iO=`/**
- * Decompresses texture coordinates that were packed into a single float.
- *
- * @name czm_decompressTextureCoordinates
- * @glslFunction
- *
- * @param {float} encoded The compressed texture coordinates.
- * @returns {vec2} The decompressed texture coordinates.
- */
- vec2 czm_decompressTextureCoordinates(float encoded)
- {
- float temp = encoded / 4096.0;
- float xZeroTo4095 = floor(temp);
- float stx = xZeroTo4095 / 4095.0;
- float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0;
- return vec2(stx, sty);
- }
- `;var oO=`/**
- * Get default parameters for physically based rendering. These defaults
- * describe a rough dielectric (non-metal) surface (e.g. rough plastic).
- *
- * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting}
- */
- czm_pbrParameters czm_defaultPbrMaterial()
- {
- czm_pbrParameters results;
- results.diffuseColor = vec3(1.0);
- results.roughness = 1.0;
- const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04);
- results.f0 = REFLECTANCE_DIELECTRIC;
- return results;
- }
- `;var rO=`// emulated noperspective
- #if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH)
- out float v_WindowZ;
- #endif
- /**
- * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2.
- * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes,
- * capping the shadow volume. More information here:
- * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt.
- *
- * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring
- * no geometry gets clipped by setting the clip space z value to 0.0 and then
- * sending the unaltered screen space z value (using emulated noperspective
- * interpolation) to the frag shader where it is clamped to [0,1] and then
- * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on:
- * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv.
- *
- * When GL_EXT_frag_depth is not available, which is the case on some mobile
- * devices, we must attempt to fix this only in the vertex shader.
- * The approach is to clamp the z value to the far plane, which closes the
- * shadow volume but also distorts the geometry, so there can still be artifacts
- * on frustum seams.
- *
- * @name czm_depthClamp
- * @glslFunction
- *
- * @param {vec4} coords The vertex in clip coordinates.
- * @returns {vec4} The modified vertex.
- *
- * @example
- * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0));
- *
- * @see czm_writeDepthClamp
- */
- vec4 czm_depthClamp(vec4 coords)
- {
- #ifndef LOG_DEPTH
- #if __VERSION__ == 300 || defined(GL_EXT_frag_depth)
- v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w;
- coords.z = 0.0;
- #else
- coords.z = min(coords.z, coords.w);
- #endif
- #endif
- return coords;
- }
- `;var sO=`/**
- * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system
- * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the
- * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping.
- * <br /><br />
- * The ellipsoid is assumed to be centered at the model coordinate's origin.
- *
- * @name czm_eastNorthUpToEyeCoordinates
- * @glslFunction
- *
- * @param {vec3} positionMC The position on the ellipsoid in model coordinates.
- * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates.
- *
- * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates.
- *
- * @example
- * // Transform a vector defined in the east-north-up coordinate
- * // system, (0, 0, 1) which is the surface normal, to eye
- * // coordinates.
- * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC);
- * vec3 normalEC = m * vec3(0.0, 0.0, 1.0);
- */
- mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC)
- {
- vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates
- vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates
- vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates
- return mat3(
- tangentEC.x, tangentEC.y, tangentEC.z,
- bitangentEC.x, bitangentEC.y, bitangentEC.z,
- normalEC.x, normalEC.y, normalEC.z);
- }
- `;var aO=`/**
- * DOC_TBA
- *
- * @name czm_ellipsoidContainsPoint
- * @glslFunction
- *
- */
- bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point)
- {
- vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz;
- return (dot(scaled, scaled) <= 1.0);
- }
- `;var cO=`/**
- * DOC_TBA
- *
- * @name czm_ellipsoidWgs84TextureCoordinates
- * @glslFunction
- */
- vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal)
- {
- return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5);
- }
- `;var lO=`/**
- * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code>
- * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs
- * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s,
- * <code>vec3</code>s, or <code>vec4</code>s.
- *
- * @name czm_equalsEpsilon
- * @glslFunction
- *
- * @param {} left The first vector.
- * @param {} right The second vector.
- * @param {float} epsilon The epsilon to use for equality testing.
- * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise.
- *
- * @example
- * // GLSL declarations
- * bool czm_equalsEpsilon(float left, float right, float epsilon);
- * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon);
- * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon);
- * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon);
- */
- bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) {
- return all(lessThanEqual(abs(left - right), vec4(epsilon)));
- }
- bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) {
- return all(lessThanEqual(abs(left - right), vec3(epsilon)));
- }
- bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) {
- return all(lessThanEqual(abs(left - right), vec2(epsilon)));
- }
- bool czm_equalsEpsilon(float left, float right, float epsilon) {
- return (abs(left - right) <= epsilon);
- }
- `;var uO=`/**
- * DOC_TBA
- *
- * @name czm_eyeOffset
- * @glslFunction
- *
- * @param {vec4} positionEC DOC_TBA.
- * @param {vec3} eyeOffset DOC_TBA.
- *
- * @returns {vec4} DOC_TBA.
- */
- vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset)
- {
- // This equation is approximate in x and y.
- vec4 p = positionEC;
- vec4 zEyeOffset = normalize(p) * eyeOffset.z;
- p.xy += eyeOffset.xy + zEyeOffset.xy;
- p.z += zEyeOffset.z;
- return p;
- }
- `;var fO=`/**
- * Transforms a position from eye to window coordinates. The transformation
- * from eye to clip coordinates is done using {@link czm_projection}.
- * The transform from normalized device coordinates to window coordinates is
- * done using {@link czm_viewportTransformation}, which assumes a depth range
- * of <code>near = 0</code> and <code>far = 1</code>.
- * <br /><br />
- * This transform is useful when there is a need to manipulate window coordinates
- * in a vertex shader as done by {@link BillboardCollection}.
- *
- * @name czm_eyeToWindowCoordinates
- * @glslFunction
- *
- * @param {vec4} position The position in eye coordinates to transform.
- *
- * @returns {vec4} The transformed position in window coordinates.
- *
- * @see czm_modelToWindowCoordinates
- * @see czm_projection
- * @see czm_viewportTransformation
- * @see BillboardCollection
- *
- * @example
- * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
- */
- vec4 czm_eyeToWindowCoordinates(vec4 positionEC)
- {
- vec4 q = czm_projection * positionEC; // clip coordinates
- q.xyz /= q.w; // normalized device coordinates
- q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates
- return q;
- }
- `;var dO=`/**
- * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input.
- *
- * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on
- * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006.
- * Adapted from ShaderFastLibs under MIT License.
- *
- * Chosen for the following characteristics over range [0, 1]:
- * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan)
- * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator)
- *
- * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301);
- * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2.
- *
- * @name czm_fastApproximateAtan
- * @glslFunction
- *
- * @param {float} x Value between 0 and 1 inclusive.
- *
- * @returns {float} Approximation of atan(x)
- */
- float czm_fastApproximateAtan(float x) {
- return x * (-0.1784 * x - 0.0663 * x * x + 1.0301);
- }
- /**
- * Approximation of atan2.
- *
- * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html
- * However, we replaced their atan curve with Michael Drobot's (see above).
- *
- * @name czm_fastApproximateAtan
- * @glslFunction
- *
- * @param {float} x Value between -1 and 1 inclusive.
- * @param {float} y Value between -1 and 1 inclusive.
- *
- * @returns {float} Approximation of atan2(x, y)
- */
- float czm_fastApproximateAtan(float x, float y) {
- // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications.
- // So range-reduce using abs and by flipping whether x or y is on top.
- float t = abs(x); // t used as swap and atan result.
- float opposite = abs(y);
- float adjacent = max(t, opposite);
- opposite = min(t, opposite);
- t = czm_fastApproximateAtan(opposite / adjacent);
- // Undo range reduction
- t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t);
- t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t);
- t = czm_branchFreeTernary(y < 0.0, -t, t);
- return t;
- }
- `;var hO=`/**
- * Gets the color with fog at a distance from the camera.
- *
- * @name czm_fog
- * @glslFunction
- *
- * @param {float} distanceToCamera The distance to the camera in meters.
- * @param {vec3} color The original color.
- * @param {vec3} fogColor The color of the fog.
- *
- * @returns {vec3} The color adjusted for fog at the distance from the camera.
- */
- vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor)
- {
- float scalar = distanceToCamera * czm_fogDensity;
- float fog = 1.0 - exp(-(scalar * scalar));
- return mix(color, fogColor, fog);
- }
- /**
- * Gets the color with fog at a distance from the camera.
- *
- * @name czm_fog
- * @glslFunction
- *
- * @param {float} distanceToCamera The distance to the camera in meters.
- * @param {vec3} color The original color.
- * @param {vec3} fogColor The color of the fog.
- * @param {float} fogModifierConstant A constant to modify the appearance of fog.
- *
- * @returns {vec3} The color adjusted for fog at the distance from the camera.
- */
- vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant)
- {
- float scalar = distanceToCamera * czm_fogDensity;
- float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant))));
- return mix(color, fogColor, fog);
- }
- `;var mO=`/**
- * Converts a color from RGB space to linear space.
- *
- * @name czm_gammaCorrect
- * @glslFunction
- *
- * @param {vec3} color The color in RGB space.
- * @returns {vec3} The color in linear space.
- */
- vec3 czm_gammaCorrect(vec3 color) {
- #ifdef HDR
- color = pow(color, vec3(czm_gamma));
- #endif
- return color;
- }
- vec4 czm_gammaCorrect(vec4 color) {
- #ifdef HDR
- color.rgb = pow(color.rgb, vec3(czm_gamma));
- #endif
- return color;
- }
- `;var pO=`/**
- * DOC_TBA
- *
- * @name czm_geodeticSurfaceNormal
- * @glslFunction
- *
- * @param {vec3} positionOnEllipsoid DOC_TBA
- * @param {vec3} ellipsoidCenter DOC_TBA
- * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA
- *
- * @returns {vec3} DOC_TBA.
- */
- vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared)
- {
- return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared);
- }
- `;var _O=`/**
- * An czm_material with default values. Every material's czm_getMaterial
- * should use this default material as a base for the material it returns.
- * The default normal value is given by materialInput.normalEC.
- *
- * @name czm_getDefaultMaterial
- * @glslFunction
- *
- * @param {czm_materialInput} input The input used to construct the default material.
- *
- * @returns {czm_material} The default material.
- *
- * @see czm_materialInput
- * @see czm_material
- * @see czm_getMaterial
- */
- czm_material czm_getDefaultMaterial(czm_materialInput materialInput)
- {
- czm_material material;
- material.diffuse = vec3(0.0);
- material.specular = 0.0;
- material.shininess = 1.0;
- material.normal = materialInput.normalEC;
- material.emission = vec3(0.0);
- material.alpha = 1.0;
- return material;
- }
- `;var gO=`/**
- * Calculates the intensity of diffusely reflected light.
- *
- * @name czm_getLambertDiffuse
- * @glslFunction
- *
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
- * @param {vec3} normalEC The surface normal in eye coordinates.
- *
- * @returns {float} The intensity of the diffuse reflection.
- *
- * @see czm_phong
- *
- * @example
- * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC);
- * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200);
- * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity);
- */
- float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC)
- {
- return max(dot(lightDirectionEC, normalEC), 0.0);
- }
- `;var yO=`/**
- * Calculates the specular intensity of reflected light.
- *
- * @name czm_getSpecular
- * @glslFunction
- *
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
- * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates.
- * @param {vec3} normalEC The surface normal in eye coordinates.
- * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight.
- *
- * @returns {float} The intensity of the specular highlight.
- *
- * @see czm_phong
- *
- * @example
- * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC);
- * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200);
- * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity);
- */
- float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess)
- {
- vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC);
- float specular = max(dot(toReflectedLight, toEyeEC), 0.0);
- // pow has undefined behavior if both parameters <= 0.
- // Prevent this by making sure shininess is at least czm_epsilon2.
- return pow(specular, max(shininess, czm_epsilon2));
- }
- `;var xO=`/**
- * @private
- */
- vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians)
- {
- float cosAngle = cos(angleInRadians);
- float sinAngle = sin(angleInRadians);
- // time dependent sampling directions
- vec2 s0 = vec2(1.0/17.0, 0.0);
- vec2 s1 = vec2(-1.0/29.0, 0.0);
- vec2 s2 = vec2(1.0/101.0, 1.0/59.0);
- vec2 s3 = vec2(-1.0/109.0, -1.0/57.0);
- // rotate sampling direction by specified angle
- s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y));
- s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y));
- s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y));
- s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y));
- vec2 uv0 = (uv/103.0) + (time * s0);
- vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23);
- vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51);
- vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71);
- uv0 = fract(uv0);
- uv1 = fract(uv1);
- uv2 = fract(uv2);
- uv3 = fract(uv3);
- vec4 noise = (texture(normalMap, uv0)) +
- (texture(normalMap, uv1)) +
- (texture(normalMap, uv2)) +
- (texture(normalMap, uv3));
- // average and scale to between -1 and 1
- return ((noise / 4.0) - 0.5) * 2.0;
- }
- `;var bO=`/**
- * Adjusts the hue of a color.
- *
- * @name czm_hue
- * @glslFunction
- *
- * @param {vec3} rgb The color.
- * @param {float} adjustment The amount to adjust the hue of the color in radians.
- *
- * @returns {float} The color with the hue adjusted.
- *
- * @example
- * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi)
- */
- vec3 czm_hue(vec3 rgb, float adjustment)
- {
- const mat3 toYIQ = mat3(0.299, 0.587, 0.114,
- 0.595716, -0.274453, -0.321263,
- 0.211456, -0.522591, 0.311135);
- const mat3 toRGB = mat3(1.0, 0.9563, 0.6210,
- 1.0, -0.2721, -0.6474,
- 1.0, -1.107, 1.7046);
-
- vec3 yiq = toYIQ * rgb;
- float hue = atan(yiq.z, yiq.y) + adjustment;
- float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y);
-
- vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue));
- return toRGB * color;
- }
- `;var TO=`/**
- * Converts a color in linear space to RGB space.
- *
- * @name czm_inverseGamma
- * @glslFunction
- *
- * @param {vec3} color The color in linear space.
- * @returns {vec3} The color in RGB space.
- */
- vec3 czm_inverseGamma(vec3 color) {
- return pow(color, vec3(1.0 / czm_gamma));
- }
- `;var AO=`/**
- * Determines if a time interval is empty.
- *
- * @name czm_isEmpty
- * @glslFunction
- *
- * @param {czm_raySegment} interval The interval to test.
- *
- * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>.
- *
- * @example
- * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true
- * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false
- * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0.
- */
- bool czm_isEmpty(czm_raySegment interval)
- {
- return (interval.stop < 0.0);
- }
- `;var CO=`/**
- * Determines if a time interval is empty.
- *
- * @name czm_isFull
- * @glslFunction
- *
- * @param {czm_raySegment} interval The interval to test.
- *
- * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>.
- *
- * @example
- * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true
- * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false
- * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0.
- */
- bool czm_isFull(czm_raySegment interval)
- {
- return (interval.start == 0.0 && interval.stop == czm_infinity);
- }
- `;var EO=`/**
- * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located.
- *
- * @name czm_latitudeToWebMercatorFraction
- * @glslFunction
- *
- * @param {float} latitude The geodetic latitude, in radians.
- * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle.
- * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates.
- *
- * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern
- * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return
- * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection.
- */
- float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight)
- {
- float sinLatitude = sin(latitude);
- float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude));
-
- return (mercatorY - southMercatorY) * oneOverMercatorHeight;
- }
- `;var SO=`/**
- * Computes distance from an point in 2D to a line in 2D.
- *
- * @name czm_lineDistance
- * @glslFunction
- *
- * param {vec2} point1 A point along the line.
- * param {vec2} point2 A point along the line.
- * param {vec2} point A point that may or may not be on the line.
- * returns {float} The distance from the point to the line.
- */
- float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) {
- return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1);
- }
- `;var wO=`/**
- * Converts a linear RGB color to an sRGB color.
- *
- * @param {vec3|vec4} linearIn The color in linear color space.
- * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input.
- */
- vec3 czm_linearToSrgb(vec3 linearIn)
- {
- return pow(linearIn, vec3(1.0/2.2));
- }
- vec4 czm_linearToSrgb(vec4 linearIn)
- {
- vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2));
- return vec4(srgbOut, linearIn.a);
- }
- `;var vO=`/**
- * Computes the luminance of a color.
- *
- * @name czm_luminance
- * @glslFunction
- *
- * @param {vec3} rgb The color.
- *
- * @returns {float} The luminance.
- *
- * @example
- * float light = czm_luminance(vec3(0.0)); // 0.0
- * float dark = czm_luminance(vec3(1.0)); // ~1.0
- */
- float czm_luminance(vec3 rgb)
- {
- // Algorithm from Chapter 10 of Graphics Shaders.
- const vec3 W = vec3(0.2125, 0.7154, 0.0721);
- return dot(rgb, W);
- }
- `;var DO=`/**
- * Computes the size of a pixel in meters at a distance from the eye.
- * <p>
- * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel.
- * </p>
- * @name czm_metersPerPixel
- * @glslFunction
- *
- * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates.
- * @param {float} pixelRatio The scaling factor from pixel space to coordinate space
- *
- * @returns {float} The meters per pixel at positionEC.
- */
- float czm_metersPerPixel(vec4 positionEC, float pixelRatio)
- {
- float width = czm_viewport.z;
- float height = czm_viewport.w;
- float pixelWidth;
- float pixelHeight;
- float top = czm_frustumPlanes.x;
- float bottom = czm_frustumPlanes.y;
- float left = czm_frustumPlanes.z;
- float right = czm_frustumPlanes.w;
- if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0)
- {
- float frustumWidth = right - left;
- float frustumHeight = top - bottom;
- pixelWidth = frustumWidth / width;
- pixelHeight = frustumHeight / height;
- }
- else
- {
- float distanceToPixel = -positionEC.z;
- float inverseNear = 1.0 / czm_currentFrustum.x;
- float tanTheta = top * inverseNear;
- pixelHeight = 2.0 * distanceToPixel * tanTheta / height;
- tanTheta = right * inverseNear;
- pixelWidth = 2.0 * distanceToPixel * tanTheta / width;
- }
- return max(pixelWidth, pixelHeight) * pixelRatio;
- }
- /**
- * Computes the size of a pixel in meters at a distance from the eye.
- * <p>
- * Use this version when scaling by pixel ratio.
- * </p>
- * @name czm_metersPerPixel
- * @glslFunction
- *
- * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates.
- *
- * @returns {float} The meters per pixel at positionEC.
- */
- float czm_metersPerPixel(vec4 positionEC)
- {
- return czm_metersPerPixel(positionEC, czm_pixelRatio);
- }
- `;var IO=`/**
- * Transforms a position from model to window coordinates. The transformation
- * from model to clip coordinates is done using {@link czm_modelViewProjection}.
- * The transform from normalized device coordinates to window coordinates is
- * done using {@link czm_viewportTransformation}, which assumes a depth range
- * of <code>near = 0</code> and <code>far = 1</code>.
- * <br /><br />
- * This transform is useful when there is a need to manipulate window coordinates
- * in a vertex shader as done by {@link BillboardCollection}.
- * <br /><br />
- * This function should not be confused with {@link czm_viewportOrthographic},
- * which is an orthographic projection matrix that transforms from window
- * coordinates to clip coordinates.
- *
- * @name czm_modelToWindowCoordinates
- * @glslFunction
- *
- * @param {vec4} position The position in model coordinates to transform.
- *
- * @returns {vec4} The transformed position in window coordinates.
- *
- * @see czm_eyeToWindowCoordinates
- * @see czm_modelViewProjection
- * @see czm_viewportTransformation
- * @see czm_viewportOrthographic
- * @see BillboardCollection
- *
- * @example
- * vec4 positionWC = czm_modelToWindowCoordinates(positionMC);
- */
- vec4 czm_modelToWindowCoordinates(vec4 position)
- {
- vec4 q = czm_modelViewProjection * position; // clip coordinates
- q.xyz /= q.w; // normalized device coordinates
- q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates
- return q;
- }
- `;var PO=`/**
- * DOC_TBA
- *
- * @name czm_multiplyWithColorBalance
- * @glslFunction
- */
- vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right)
- {
- // Algorithm from Chapter 10 of Graphics Shaders.
- const vec3 W = vec3(0.2125, 0.7154, 0.0721);
-
- vec3 target = left * right;
- float leftLuminance = dot(left, W);
- float rightLuminance = dot(right, W);
- float targetLuminance = dot(target, W);
-
- return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target;
- }
- `;var OO=`/**
- * Computes a value that scales with distance. The scaling is clamped at the near and
- * far distances, and does not extrapolate. This function works with the
- * {@link NearFarScalar} JavaScript class.
- *
- * @name czm_nearFarScalar
- * @glslFunction
- *
- * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w).
- * @param {float} cameraDistSq The square of the current distance from the camera.
- *
- * @returns {float} The value at this distance.
- */
- float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq)
- {
- float valueAtMin = nearFarScalar.y;
- float valueAtMax = nearFarScalar.w;
- float nearDistanceSq = nearFarScalar.x * nearFarScalar.x;
- float farDistanceSq = nearFarScalar.z * nearFarScalar.z;
- float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq);
- t = pow(clamp(t, 0.0, 1.0), 0.2);
- return mix(valueAtMin, valueAtMax, t);
- }
- `;var RO=` /**
- * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector.
- * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
- * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
- *
- * @name czm_octDecode
- * @param {vec2} encoded The oct-encoded, unit-length vector
- * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.
- * @returns {vec3} The decoded and normalized vector
- */
- vec3 czm_octDecode(vec2 encoded, float range)
- {
- if (encoded.x == 0.0 && encoded.y == 0.0) {
- return vec3(0.0, 0.0, 0.0);
- }
- encoded = encoded / range * 2.0 - 1.0;
- vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));
- if (v.z < 0.0)
- {
- v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy);
- }
- return normalize(v);
- }
- /**
- * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector.
- * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
- * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
- *
- * @name czm_octDecode
- * @param {vec2} encoded The oct-encoded, unit-length vector
- * @returns {vec3} The decoded and normalized vector
- */
- vec3 czm_octDecode(vec2 encoded)
- {
- return czm_octDecode(encoded, 255.0);
- }
- /**
- * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector.
- * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
- * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
- *
- * @name czm_octDecode
- * @param {float} encoded The oct-encoded, unit-length vector
- * @returns {vec3} The decoded and normalized vector
- */
- vec3 czm_octDecode(float encoded)
- {
- float temp = encoded / 256.0;
- float x = floor(temp);
- float y = (temp - x) * 256.0;
- return czm_octDecode(vec2(x, y));
- }
- /**
- * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors.
- * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors",
- * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/
- *
- * @name czm_octDecode
- * @param {vec2} encoded The packed oct-encoded, unit-length vectors.
- * @param {vec3} vector1 One decoded and normalized vector.
- * @param {vec3} vector2 One decoded and normalized vector.
- * @param {vec3} vector3 One decoded and normalized vector.
- */
- void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3)
- {
- float temp = encoded.x / 65536.0;
- float x = floor(temp);
- float encodedFloat1 = (temp - x) * 65536.0;
- temp = encoded.y / 65536.0;
- float y = floor(temp);
- float encodedFloat2 = (temp - y) * 65536.0;
- vector1 = czm_octDecode(encodedFloat1);
- vector2 = czm_octDecode(encodedFloat2);
- vector3 = czm_octDecode(vec2(x, y));
- }
- `;var MO=`/**
- * Packs a depth value into a vec3 that can be represented by unsigned bytes.
- *
- * @name czm_packDepth
- * @glslFunction
- *
- * @param {float} depth The floating-point depth.
- * @returns {vec3} The packed depth.
- */
- vec4 czm_packDepth(float depth)
- {
- // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA
- // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
- vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;
- enc = fract(enc);
- enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);
- return enc;
- }
- `;var LO=`vec3 lambertianDiffuse(vec3 diffuseColor)
- {
- return diffuseColor / czm_pi;
- }
- vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH)
- {
- return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);
- }
- float smithVisibilityG1(float NdotV, float roughness)
- {
- // this is the k value for direct lighting.
- // for image based lighting it will be roughness^2 / 2
- float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;
- return NdotV / (NdotV * (1.0 - k) + k);
- }
- float smithVisibilityGGX(float roughness, float NdotL, float NdotV)
- {
- return (
- smithVisibilityG1(NdotL, roughness) *
- smithVisibilityG1(NdotV, roughness)
- );
- }
- float GGX(float roughness, float NdotH)
- {
- float roughnessSquared = roughness * roughness;
- float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0;
- return roughnessSquared / (czm_pi * f * f);
- }
- /**
- * Compute the diffuse and specular contributions using physically based
- * rendering. This function only handles direct lighting.
- * <p>
- * This function only handles the lighting calculations. Metallic/roughness
- * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial}
- * </p>
- *
- * @name czm_pbrlighting
- * @glslFunction
- *
- * @param {vec3} positionEC The position of the fragment in eye coordinates
- * @param {vec3} normalEC The surface normal in eye coordinates
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
- * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value.
- * @param {czm_pbrParameters} The computed PBR parameters.
- * @return {vec3} The computed HDR color
- *
- * @example
- * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial(
- * baseColor,
- * metallic,
- * roughness
- * );
- * vec3 color = czm_pbrlighting(
- * positionEC,
- * normalEC,
- * lightDirectionEC,
- * lightColorHdr,
- * pbrParameters);
- */
- vec3 czm_pbrLighting(
- vec3 positionEC,
- vec3 normalEC,
- vec3 lightDirectionEC,
- vec3 lightColorHdr,
- czm_pbrParameters pbrParameters
- )
- {
- vec3 v = -normalize(positionEC);
- vec3 l = normalize(lightDirectionEC);
- vec3 h = normalize(v + l);
- vec3 n = normalEC;
- float NdotL = clamp(dot(n, l), 0.001, 1.0);
- float NdotV = abs(dot(n, v)) + 0.001;
- float NdotH = clamp(dot(n, h), 0.0, 1.0);
- float LdotH = clamp(dot(l, h), 0.0, 1.0);
- float VdotH = clamp(dot(v, h), 0.0, 1.0);
- vec3 f0 = pbrParameters.f0;
- float reflectance = max(max(f0.r, f0.g), f0.b);
- vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));
- vec3 F = fresnelSchlick2(f0, f90, VdotH);
- float alpha = pbrParameters.roughness;
- float G = smithVisibilityGGX(alpha, NdotL, NdotV);
- float D = GGX(alpha, NdotH);
- vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV);
- vec3 diffuseColor = pbrParameters.diffuseColor;
- // F here represents the specular contribution
- vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);
- // Lo = (diffuse + specular) * Li * NdotL
- return (diffuseContribution + specularContribution) * NdotL * lightColorHdr;
- }
- `;var NO=`/**
- * Compute parameters for physically based rendering using the
- * metallic/roughness workflow. All inputs are linear; sRGB texture values must
- * be decoded beforehand
- *
- * @name czm_pbrMetallicRoughnessMaterial
- * @glslFunction
- *
- * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence)
- * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt);
- * @param {float} roughness A value between 0.0 and 1.0
- * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting}
- */
- czm_pbrParameters czm_pbrMetallicRoughnessMaterial(
- vec3 baseColor,
- float metallic,
- float roughness
- )
- {
- czm_pbrParameters results;
- // roughness is authored as perceptual roughness
- // square it to get material roughness
- roughness = clamp(roughness, 0.0, 1.0);
- results.roughness = roughness * roughness;
- // dielectrics use f0 = 0.04, metals use albedo as f0
- metallic = clamp(metallic, 0.0, 1.0);
- const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04);
- vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic);
- results.f0 = f0;
- // diffuse only applies to dielectrics.
- results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic);
- return results;
- }
- `;var FO=`/**
- * Compute parameters for physically based rendering using the
- * specular/glossy workflow. All inputs are linear; sRGB texture values must
- * be decoded beforehand
- *
- * @name czm_pbrSpecularGlossinessMaterial
- * @glslFunction
- *
- * @param {vec3} diffuse The diffuse color for dielectrics (non-metals)
- * @param {vec3} specular The reflectance at normal incidence (f0)
- * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is.
- * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting}
- */
- czm_pbrParameters czm_pbrSpecularGlossinessMaterial(
- vec3 diffuse,
- vec3 specular,
- float glossiness
- )
- {
- czm_pbrParameters results;
- // glossiness is the opposite of roughness, but easier for artists to use.
- float roughness = 1.0 - glossiness;
- results.roughness = roughness * roughness;
- results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b));
- results.f0 = specular;
- return results;
- }
- `;var BO=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material)
- {
- return czm_getLambertDiffuse(lightDirectionEC, material.normal);
- }
- float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material)
- {
- return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess);
- }
- /**
- * Computes a color using the Phong lighting model.
- *
- * @name czm_phong
- * @glslFunction
- *
- * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates.
- * @param {czm_material} material The fragment's material.
- *
- * @returns {vec4} The computed color.
- *
- * @example
- * vec3 positionToEyeEC = // ...
- * czm_material material = // ...
- * vec3 lightDirectionEC = // ...
- * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC);
- *
- * @see czm_getMaterial
- */
- vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
- {
- // Diffuse from directional light sources at eye (for top-down)
- float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material);
- if (czm_sceneMode == czm_sceneMode3D) {
- // (and horizon views in 3D)
- diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material);
- }
- float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material);
- // Temporary workaround for adding ambient.
- vec3 materialDiffuse = material.diffuse * 0.5;
- vec3 ambient = materialDiffuse;
- vec3 color = ambient + material.emission;
- color += materialDiffuse * diffuse * czm_lightColor;
- color += material.specular * specular * czm_lightColor;
- return vec4(color, material.alpha);
- }
- vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
- {
- float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material);
- float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material);
- vec3 ambient = vec3(0.0);
- vec3 color = ambient + material.emission;
- color += material.diffuse * diffuse * czm_lightColor;
- color += material.specular * specular * czm_lightColor;
- return vec4(color, material.alpha);
- }
- `;var kO=`/**
- * Computes distance from a point to a plane.
- *
- * @name czm_planeDistance
- * @glslFunction
- *
- * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js
- * param {vec3} point A point in the same space as the plane.
- * returns {float} The distance from the point to the plane.
- */
- float czm_planeDistance(vec4 plane, vec3 point) {
- return (dot(plane.xyz, point) + plane.w);
- }
- /**
- * Computes distance from a point to a plane.
- *
- * @name czm_planeDistance
- * @glslFunction
- *
- * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js
- * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js
- * param {vec3} point A point in the same space as the plane.
- * returns {float} The distance from the point to the plane.
- */
- float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) {
- return (dot(planeNormal, point) + planeDistance);
- }
- `;var UO=`/**
- * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero.
- *
- * @name czm_pointAlongRay
- * @glslFunction
- *
- * @param {czm_ray} ray The ray to compute the point along.
- * @param {float} time The time along the ray.
- *
- * @returns {vec3} The point along the ray at the given time.
- *
- * @example
- * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction
- * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0)
- */
- vec3 czm_pointAlongRay(czm_ray ray, float time)
- {
- return ray.origin + (time * ray.direction);
- }
- `;var VO=`/**
- * DOC_TBA
- *
- * @name czm_rayEllipsoidIntersectionInterval
- * @glslFunction
- */
- czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii)
- {
- // ray and ellipsoid center in eye coordinates. radii in model coordinates.
- vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz;
- vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz;
- q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz;
- float q2 = dot(q, q);
- float qw = dot(q, w);
- if (q2 > 1.0) // Outside ellipsoid.
- {
- if (qw >= 0.0) // Looking outward or tangent (0 intersections).
- {
- return czm_emptyRaySegment;
- }
- else // qw < 0.0.
- {
- float qw2 = qw * qw;
- float difference = q2 - 1.0; // Positively valued.
- float w2 = dot(w, w);
- float product = w2 * difference;
- if (qw2 < product) // Imaginary roots (0 intersections).
- {
- return czm_emptyRaySegment;
- }
- else if (qw2 > product) // Distinct roots (2 intersections).
- {
- float discriminant = qw * qw - product;
- float temp = -qw + sqrt(discriminant); // Avoid cancellation.
- float root0 = temp / w2;
- float root1 = difference / temp;
- if (root0 < root1)
- {
- czm_raySegment i = czm_raySegment(root0, root1);
- return i;
- }
- else
- {
- czm_raySegment i = czm_raySegment(root1, root0);
- return i;
- }
- }
- else // qw2 == product. Repeated roots (2 intersections).
- {
- float root = sqrt(difference / w2);
- czm_raySegment i = czm_raySegment(root, root);
- return i;
- }
- }
- }
- else if (q2 < 1.0) // Inside ellipsoid (2 intersections).
- {
- float difference = q2 - 1.0; // Negatively valued.
- float w2 = dot(w, w);
- float product = w2 * difference; // Negatively valued.
- float discriminant = qw * qw - product;
- float temp = -qw + sqrt(discriminant); // Positively valued.
- czm_raySegment i = czm_raySegment(0.0, temp / w2);
- return i;
- }
- else // q2 == 1.0. On ellipsoid.
- {
- if (qw < 0.0) // Looking inward.
- {
- float w2 = dot(w, w);
- czm_raySegment i = czm_raySegment(0.0, -qw / w2);
- return i;
- }
- else // qw >= 0.0. Looking outward or tangent.
- {
- return czm_emptyRaySegment;
- }
- }
- }
- `;var zO=`/**
- * Compute the intersection interval of a ray with a sphere.
- *
- * @name czm_raySphereIntersectionInterval
- * @glslFunction
- *
- * @param {czm_ray} ray The ray.
- * @param {vec3} center The center of the sphere.
- * @param {float} radius The radius of the sphere.
- * @return {czm_raySegment} The intersection interval of the ray with the sphere.
- */
- czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius)
- {
- vec3 o = ray.origin;
- vec3 d = ray.direction;
- vec3 oc = o - center;
- float a = dot(d, d);
- float b = 2.0 * dot(d, oc);
- float c = dot(oc, oc) - (radius * radius);
- float det = (b * b) - (4.0 * a * c);
- if (det < 0.0) {
- return czm_emptyRaySegment;
- }
- float sqrtDet = sqrt(det);
- float t0 = (-b - sqrtDet) / (2.0 * a);
- float t1 = (-b + sqrtDet) / (2.0 * a);
- czm_raySegment result = czm_raySegment(t0, t1);
- return result;
- }
- `;var HO=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords)
- {
- return czm_reverseLogDepth(texture(depthTexture, texCoords).r);
- }
- `;var GO=`/**
- * Reads a value previously transformed with {@link czm_writeNonPerspective}
- * by dividing it by \`w\`, the value used in the perspective divide.
- * This function is intended to be called in a fragment shader to access a
- * \`varying\` that should not be subject to perspective interpolation.
- * For example, screen-space texture coordinates. The value should have been
- * previously written in the vertex shader with a call to
- * {@link czm_writeNonPerspective}.
- *
- * @name czm_readNonPerspective
- * @glslFunction
- *
- * @param {float|vec2|vec3|vec4} value The non-perspective value to be read.
- * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`.
- * @returns {float|vec2|vec3|vec4} The usable value.
- */
- float czm_readNonPerspective(float value, float oneOverW) {
- return value * oneOverW;
- }
- vec2 czm_readNonPerspective(vec2 value, float oneOverW) {
- return value * oneOverW;
- }
- vec3 czm_readNonPerspective(vec3 value, float oneOverW) {
- return value * oneOverW;
- }
- vec4 czm_readNonPerspective(vec4 value, float oneOverW) {
- return value * oneOverW;
- }
- `;var WO=`float czm_reverseLogDepth(float logZ)
- {
- #ifdef LOG_DEPTH
- float near = czm_currentFrustum.x;
- float far = czm_currentFrustum.y;
- float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne;
- float depthFromNear = pow(2.0, log2Depth) - 1.0;
- return far * (1.0 - near / (depthFromNear + near)) / (far - near);
- #endif
- return logZ;
- }
- `;var jO=`/**
- * Round a floating point value. This function exists because round() doesn't
- * exist in GLSL 1.00.
- *
- * @param {float|vec2|vec3|vec4} value The value to round
- * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input.
- */
- float czm_round(float value) {
- return floor(value + 0.5);
- }
- vec2 czm_round(vec2 value) {
- return floor(value + 0.5);
- }
- vec3 czm_round(vec3 value) {
- return floor(value + 0.5);
- }
- vec4 czm_round(vec4 value) {
- return floor(value + 0.5);
- }
- `;var qO=`/**
- * Samples the 4 neighboring pixels and return the weighted average.
- *
- * @private
- */
- vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod)
- {
- direction /= dot(vec3(1.0), abs(direction));
- vec2 rev = abs(direction.zx) - vec2(1.0);
- vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x,
- direction.z < 0.0 ? rev.y : -rev.y);
- vec2 uv = direction.y < 0.0 ? neg : direction.xz;
- vec2 coord = 0.5 * uv + vec2(0.5);
- vec2 pixel = 1.0 / textureSize;
- if (lod > 0.0)
- {
- // Each subseqeuent mip level is half the size
- float scale = 1.0 / pow(2.0, lod);
- float offset = ((textureSize.y + 1.0) / textureSize.x);
- coord.x *= offset;
- coord *= scale;
- coord.x += offset + pixel.x;
- coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0;
- }
- else
- {
- coord.x *= (textureSize.y / textureSize.x);
- }
- // Do bilinear filtering
- #ifndef OES_texture_float_linear
- vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb;
- vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb;
- vec3 color3 = texture(projectedMap, coord + pixel).rgb;
- vec3 color4 = texture(projectedMap, coord).rgb;
- vec2 texturePosition = coord * textureSize;
- float fu = fract(texturePosition.x);
- float fv = fract(texturePosition.y);
- vec3 average1 = mix(color4, color2, fu);
- vec3 average2 = mix(color1, color3, fu);
- vec3 color = mix(average1, average2, fv);
- #else
- vec3 color = texture(projectedMap, coord).rgb;
- #endif
- return color;
- }
- /**
- * Samples from a cube map that has been projected using an octahedral projection from the given direction.
- *
- * @name czm_sampleOctahedralProjection
- * @glslFunction
- *
- * @param {sampler2D} projectedMap The texture with the octahedral projected cube map.
- * @param {vec2} textureSize The width and height dimensions in pixels of the projected map.
- * @param {vec3} direction The normalized direction used to sample the cube map.
- * @param {float} lod The level of detail to sample.
- * @param {float} maxLod The maximum level of detail.
- * @returns {vec3} The color of the cube map at the direction.
- */
- vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) {
- float currentLod = floor(lod + 0.5);
- float nextLod = min(currentLod + 1.0, maxLod);
- vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod);
- vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod);
- return mix(colorNextLod, colorCurrentLod, nextLod - lod);
- }
- `;var YO=`/**
- * Adjusts the saturation of a color.
- *
- * @name czm_saturation
- * @glslFunction
- *
- * @param {vec3} rgb The color.
- * @param {float} adjustment The amount to adjust the saturation of the color.
- *
- * @returns {float} The color with the saturation adjusted.
- *
- * @example
- * vec3 greyScale = czm_saturation(color, 0.0);
- * vec3 doubleSaturation = czm_saturation(color, 2.0);
- */
- vec3 czm_saturation(vec3 rgb, float adjustment)
- {
- // Algorithm from Chapter 16 of OpenGL Shading Language
- const vec3 W = vec3(0.2125, 0.7154, 0.0721);
- vec3 intensity = vec3(dot(rgb, W));
- return mix(intensity, rgb, adjustment);
- }
- `;var XO=`
- float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d)
- {
- return czm_unpackDepth(czm_textureCube(shadowMap, d));
- }
- float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv)
- {
- #ifdef USE_SHADOW_DEPTH_TEXTURE
- return texture(shadowMap, uv).r;
- #else
- return czm_unpackDepth(texture(shadowMap, uv));
- #endif
- }
- float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth)
- {
- return step(depth, czm_sampleShadowMap(shadowMap, uv));
- }
- float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth)
- {
- return step(depth, czm_sampleShadowMap(shadowMap, uv));
- }
- `;var KO=`
- float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness)
- {
- #ifdef USE_NORMAL_SHADING
- #ifdef USE_NORMAL_SHADING_SMOOTH
- float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0);
- #else
- float strength = step(0.0, nDotL);
- #endif
- visibility *= strength;
- #endif
- visibility = max(visibility, darkness);
- return visibility;
- }
- #ifdef USE_CUBE_MAP_SHADOW
- float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters)
- {
- float depthBias = shadowParameters.depthBias;
- float depth = shadowParameters.depth;
- float nDotL = shadowParameters.nDotL;
- float normalShadingSmooth = shadowParameters.normalShadingSmooth;
- float darkness = shadowParameters.darkness;
- vec3 uvw = shadowParameters.texCoords;
- depth -= depthBias;
- float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth);
- return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);
- }
- #else
- float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters)
- {
- float depthBias = shadowParameters.depthBias;
- float depth = shadowParameters.depth;
- float nDotL = shadowParameters.nDotL;
- float normalShadingSmooth = shadowParameters.normalShadingSmooth;
- float darkness = shadowParameters.darkness;
- vec2 uv = shadowParameters.texCoords;
- depth -= depthBias;
- #ifdef USE_SOFT_SHADOWS
- vec2 texelStepSize = shadowParameters.texelStepSize;
- float radius = 1.0;
- float dx0 = -texelStepSize.x * radius;
- float dy0 = -texelStepSize.y * radius;
- float dx1 = texelStepSize.x * radius;
- float dy1 = texelStepSize.y * radius;
- float visibility = (
- czm_shadowDepthCompare(shadowMap, uv, depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) +
- czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth)
- ) * (1.0 / 9.0);
- #else
- float visibility = czm_shadowDepthCompare(shadowMap, uv, depth);
- #endif
- return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);
- }
- #endif
- `;var ZO=`/**
- * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL
- * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0.
- *
- * @name czm_signNotZero
- * @glslFunction
- *
- * @param {} value The value for which to determine the sign.
- * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative.
- */
- float czm_signNotZero(float value)
- {
- return value >= 0.0 ? 1.0 : -1.0;
- }
- vec2 czm_signNotZero(vec2 value)
- {
- return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y));
- }
- vec3 czm_signNotZero(vec3 value)
- {
- return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z));
- }
- vec4 czm_signNotZero(vec4 value)
- {
- return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w));
- }
- `;var $O=`/**
- * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector.
- * <p>
- * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22].
- * </p>
- *
- * @name czm_sphericalHarmonics
- * @glslFunction
- *
- * @param {vec3} normal The normalized direction.
- * @param {vec3[9]} coefficients The third order spherical harmonic coefficients.
- * @returns {vec3} The color at the direction.
- *
- * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf
- */
- vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9])
- {
- vec3 L00 = coefficients[0];
- vec3 L1_1 = coefficients[1];
- vec3 L10 = coefficients[2];
- vec3 L11 = coefficients[3];
- vec3 L2_2 = coefficients[4];
- vec3 L2_1 = coefficients[5];
- vec3 L20 = coefficients[6];
- vec3 L21 = coefficients[7];
- vec3 L22 = coefficients[8];
- float x = normal.x;
- float y = normal.y;
- float z = normal.z;
- return
- L00
- + L1_1 * y
- + L10 * z
- + L11 * x
- + L2_2 * (y * x)
- + L2_1 * (y * z)
- + L20 * (3.0 * z * z - 1.0)
- + L21 * (z * x)
- + L22 * (x * x - y * y);
- }
- `;var QO=`/**
- * Converts an sRGB color to a linear RGB color.
- *
- * @param {vec3|vec4} srgbIn The color in sRGB space
- * @returns {vec3|vec4} The color in linear color space. The vector type matches the input.
- */
- vec3 czm_srgbToLinear(vec3 srgbIn)
- {
- return pow(srgbIn, vec3(2.2));
- }
- vec4 czm_srgbToLinear(vec4 srgbIn)
- {
- vec3 linearOut = pow(srgbIn.rgb, vec3(2.2));
- return vec4(linearOut, srgbIn.a);
- }
- `;var JO=`/**
- * Creates a matrix that transforms vectors from tangent space to eye space.
- *
- * @name czm_tangentToEyeSpaceMatrix
- * @glslFunction
- *
- * @param {vec3} normalEC The normal vector in eye coordinates.
- * @param {vec3} tangentEC The tangent vector in eye coordinates.
- * @param {vec3} bitangentEC The bitangent vector in eye coordinates.
- *
- * @returns {mat3} The matrix that transforms from tangent space to eye space.
- *
- * @example
- * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC);
- * vec3 normal = tangentToEye * texture(normalMap, st).xyz;
- */
- mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC)
- {
- vec3 normal = normalize(normalEC);
- vec3 tangent = normalize(tangentEC);
- vec3 bitangent = normalize(bitangentEC);
- return mat3(tangent.x , tangent.y , tangent.z,
- bitangent.x, bitangent.y, bitangent.z,
- normal.x , normal.y , normal.z);
- }
- `;var eR=`/**
- * A wrapper around the texture (WebGL2) / textureCube (WebGL1)
- * function to allow for WebGL 1 support.
- *
- * @name czm_textureCube
- * @glslFunction
- *
- * @param {samplerCube} sampler The sampler.
- * @param {vec3} p The coordinates to sample the texture at.
- */
- vec4 czm_textureCube(samplerCube sampler, vec3 p) {
- #if __VERSION__ == 300
- return texture(sampler, p);
- #else
- return textureCube(sampler, p);
- #endif
- }`;var tR=`/**
- * Transforms a plane.
- *
- * @name czm_transformPlane
- * @glslFunction
- *
- * @param {vec4} plane The plane in Hessian Normal Form.
- * @param {mat4} transform The inverse-transpose of a transformation matrix.
- */
- vec4 czm_transformPlane(vec4 plane, mat4 transform) {
- vec4 transformedPlane = transform * plane;
- // Convert the transformed plane to Hessian Normal Form
- float normalMagnitude = length(transformedPlane.xyz);
- return transformedPlane / normalMagnitude;
- }
- `;var nR=`/**
- * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3},
- * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to
- * be relative to the eye. As shown in the example, the position can then be transformed in eye
- * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye},
- * respectively.
- * <p>
- * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as
- * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}.
- * </p>
- *
- * @name czm_translateRelativeToEye
- * @glslFunction
- *
- * @param {vec3} high The position's high bits.
- * @param {vec3} low The position's low bits.
- * @returns {vec3} The position translated to be relative to the camera's position.
- *
- * @example
- * in vec3 positionHigh;
- * in vec3 positionLow;
- *
- * void main()
- * {
- * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
- * gl_Position = czm_modelViewProjectionRelativeToEye * p;
- * }
- *
- * @see czm_modelViewRelativeToEye
- * @see czm_modelViewProjectionRelativeToEye
- * @see czm_computePosition
- * @see EncodedCartesian3
- */
- vec4 czm_translateRelativeToEye(vec3 high, vec3 low)
- {
- vec3 highDifference = high - czm_encodedCameraPositionMCHigh;
- vec3 lowDifference = low - czm_encodedCameraPositionMCLow;
- return vec4(highDifference + lowDifference, 1.0);
- }
- `;var iR=`/**
- * @private
- */
- vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC)
- {
- // Diffuse from directional light sources at eye (for top-down and horizon views)
- float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal);
- if (czm_sceneMode == czm_sceneMode3D) {
- // (and horizon views in 3D)
- diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal);
- }
- diffuse = clamp(diffuse, 0.0, 1.0);
- float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess);
- // Temporary workaround for adding ambient.
- vec3 materialDiffuse = material.diffuse * 0.5;
- vec3 ambient = materialDiffuse;
- vec3 color = ambient + material.emission;
- color += materialDiffuse * diffuse * czm_lightColor;
- color += material.specular * specular * czm_lightColor;
- return vec4(color, material.alpha);
- }
- `;var oR=`/**
- * Returns the transpose of the matrix. The input <code>matrix</code> can be
- * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>.
- *
- * @name czm_transpose
- * @glslFunction
- *
- * @param {} matrix The matrix to transpose.
- *
- * @returns {} The transposed matrix.
- *
- * @example
- * // GLSL declarations
- * mat2 czm_transpose(mat2 matrix);
- * mat3 czm_transpose(mat3 matrix);
- * mat4 czm_transpose(mat4 matrix);
- *
- * // Transpose a 3x3 rotation matrix to find its inverse.
- * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates(
- * positionMC, normalEC);
- * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye);
- */
- mat2 czm_transpose(mat2 matrix)
- {
- return mat2(
- matrix[0][0], matrix[1][0],
- matrix[0][1], matrix[1][1]);
- }
- mat3 czm_transpose(mat3 matrix)
- {
- return mat3(
- matrix[0][0], matrix[1][0], matrix[2][0],
- matrix[0][1], matrix[1][1], matrix[2][1],
- matrix[0][2], matrix[1][2], matrix[2][2]);
- }
- mat4 czm_transpose(mat4 matrix)
- {
- return mat4(
- matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0],
- matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1],
- matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2],
- matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]);
- }
- `;var rR=`/**
- * Unpacks a vec4 depth value to a float in [0, 1) range.
- *
- * @name czm_unpackDepth
- * @glslFunction
- *
- * @param {vec4} packedDepth The packed depth.
- *
- * @returns {float} The floating-point depth in [0, 1) range.
- */
- float czm_unpackDepth(vec4 packedDepth)
- {
- // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA
- // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
- return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));
- }
- `;var sR=`/**
- * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4.
- *
- * @name czm_unpackFloat
- * @glslFunction
- *
- * @param {vec4} packedFloat The packed float.
- *
- * @returns {float} The floating-point depth in arbitrary range.
- */
- float czm_unpackFloat(vec4 packedFloat)
- {
- // Convert to [0.0, 255.0] and round to integer
- packedFloat = floor(packedFloat * 255.0 + 0.5);
- float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;
- float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;
- if (exponent == -127.0)
- {
- return 0.0;
- }
- float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);
- float result = sign * exp2(exponent - 23.0) * mantissa;
- return result;
- }
- `;var aR=`/**
- * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type,
- * so the return value is an int.
- * <p>
- * There are also precision limitations in WebGL 1. highp int is still limited
- * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur.
- * </p>
- *
- * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order.
- *
- * @return {int} The unpacked value.
- */
- int czm_unpackUint(float packedValue) {
- float rounded = czm_round(packedValue * 255.0);
- return int(rounded);
- }
- int czm_unpackUint(vec2 packedValue) {
- vec2 rounded = czm_round(packedValue * 255.0);
- return int(dot(rounded, vec2(1.0, 256.0)));
- }
- int czm_unpackUint(vec3 packedValue) {
- vec3 rounded = czm_round(packedValue * 255.0);
- return int(dot(rounded, vec3(1.0, 256.0, 65536.0)));
- }
- int czm_unpackUint(vec4 packedValue) {
- vec4 rounded = czm_round(packedValue * 255.0);
- return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0)));
- }
- `;var cR=`/**
- * Transform metadata values following the EXT_structural_metadata spec
- * by multiplying by scale and adding the offset. Operations are always
- * performed component-wise, even for matrices.
- *
- * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add
- * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply
- * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value.
- *
- * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input.
- */
- float czm_valueTransform(float offset, float scale, float value) {
- return scale * value + offset;
- }
- vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) {
- return scale * value + offset;
- }
- vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) {
- return scale * value + offset;
- }
- vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) {
- return scale * value + offset;
- }
- mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) {
- return matrixCompMult(scale, value) + offset;
- }
- mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) {
- return matrixCompMult(scale, value) + offset;
- }
- mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) {
- return matrixCompMult(scale, value) + offset;
- }
- `;var lR=`#ifdef LOG_DEPTH
- // 1.0 at the near plane, increasing linearly from there.
- out float v_depthFromNearPlusOne;
- #ifdef SHADOW_MAP
- out vec3 v_logPositionEC;
- #endif
- #endif
- vec4 czm_updatePositionDepth(vec4 coords) {
- #if defined(LOG_DEPTH)
- #ifdef SHADOW_MAP
- vec3 logPositionEC = (czm_inverseProjection * coords).xyz;
- v_logPositionEC = logPositionEC;
- #endif
- // With the very high far/near ratios used with the logarithmic depth
- // buffer, floating point rounding errors can cause linear depth values
- // to end up on the wrong side of the far plane, even for vertices that
- // are really nowhere near it. Since we always write a correct logarithmic
- // depth value in the fragment shader anyway, we just need to make sure
- // such errors don't cause the primitive to be clipped entirely before
- // we even get to the fragment shader.
- coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w;
- #endif
- return coords;
- }
- /**
- * Writes the logarithmic depth to gl_Position using the already computed gl_Position.
- *
- * @name czm_vertexLogDepth
- * @glslFunction
- */
- void czm_vertexLogDepth()
- {
- #ifdef LOG_DEPTH
- v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0;
- gl_Position = czm_updatePositionDepth(gl_Position);
- #endif
- }
- /**
- * Writes the logarithmic depth to gl_Position using the provided clip coordinates.
- * <p>
- * An example use case for this function would be moving the vertex in window coordinates
- * before converting back to clip coordinates. Use the original vertex clip coordinates.
- * </p>
- * @name czm_vertexLogDepth
- * @glslFunction
- *
- * @param {vec4} clipCoords The vertex in clip coordinates.
- *
- * @example
- * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0));
- */
- void czm_vertexLogDepth(vec4 clipCoords)
- {
- #ifdef LOG_DEPTH
- v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0;
- czm_updatePositionDepth(clipCoords);
- #endif
- }
- `;var uR=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate)
- {
- // Reconstruct NDC coordinates
- float x = 2.0 * screenCoordinate.x - 1.0;
- float y = 2.0 * screenCoordinate.y - 1.0;
- float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];
- vec4 q = vec4(x, y, z, 1.0);
- // Reverse the perspective division to obtain clip coordinates.
- q /= screenCoordinate.w;
- // Reverse the projection transformation to obtain eye coordinates.
- if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s
- {
- q = czm_inverseProjection * q;
- }
- else
- {
- float top = czm_frustumPlanes.x;
- float bottom = czm_frustumPlanes.y;
- float left = czm_frustumPlanes.z;
- float right = czm_frustumPlanes.w;
- float near = czm_currentFrustum.x;
- float far = czm_currentFrustum.y;
- q.x = (q.x * (right - left) + left + right) * 0.5;
- q.y = (q.y * (top - bottom) + bottom + top) * 0.5;
- q.z = (q.z * (near - far) - near - far) * 0.5;
- q.w = 1.0;
- }
- return q;
- }
- /**
- * Transforms a position from window to eye coordinates.
- * The transform from window to normalized device coordinates is done using components
- * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating
- * the inverse of <code>czm_viewportTransformation</code>. The transformation from
- * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>,
- * which is expected to be the scalar used in the perspective divide. The transformation
- * from clip to eye coordinates is done using {@link czm_inverseProjection}.
- *
- * @name czm_windowToEyeCoordinates
- * @glslFunction
- *
- * @param {vec4} fragmentCoordinate The position in window coordinates to transform.
- *
- * @returns {vec4} The transformed position in eye coordinates.
- *
- * @see czm_modelToWindowCoordinates
- * @see czm_eyeToWindowCoordinates
- * @see czm_inverseProjection
- * @see czm_viewport
- * @see czm_viewportTransformation
- *
- * @example
- * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord);
- */
- vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate)
- {
- vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw;
- return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw));
- }
- vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth)
- {
- // See reverseLogDepth.glsl. This is separate to re-use the pow.
- #if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY)
- float near = czm_currentFrustum.x;
- float far = czm_currentFrustum.y;
- float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne;
- float depthFromNear = pow(2.0, log2Depth) - 1.0;
- float depthFromCamera = depthFromNear + near;
- vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0);
- vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);
- eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision
- return eyeCoordinate;
- #else
- vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0);
- vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);
- #endif
- return eyeCoordinate;
- }
- /**
- * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates.
- * This function produces more accurate results for window positions with log depth than
- * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version
- * of czm_windowToEyeCoordinates.
- *
- * @name czm_windowToEyeCoordinates
- * @glslFunction
- *
- * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform.
- * @param {float} depthOrLogDepth A depth or log depth for the fragment.
- *
- * @see czm_modelToWindowCoordinates
- * @see czm_eyeToWindowCoordinates
- * @see czm_inverseProjection
- * @see czm_viewport
- * @see czm_viewportTransformation
- *
- * @returns {vec4} The transformed position in eye coordinates.
- */
- vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth)
- {
- vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw;
- return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth);
- }
- `;var fR=`// emulated noperspective
- #if !defined(LOG_DEPTH)
- in float v_WindowZ;
- #endif
- /**
- * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane
- * by writing the fragment's depth. See czm_depthClamp for more details.
- *
- * @name czm_writeDepthClamp
- * @glslFunction
- *
- * @example
- * out_FragColor = color;
- * czm_writeDepthClamp();
- *
- * @see czm_depthClamp
- */
- void czm_writeDepthClamp()
- {
- #if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
- gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0);
- #endif
- }
- `;var dR=`#ifdef LOG_DEPTH
- in float v_depthFromNearPlusOne;
- #ifdef POLYGON_OFFSET
- uniform vec2 u_polygonOffset;
- #endif
- #endif
- /**
- * Writes the fragment depth to the logarithmic depth buffer.
- * <p>
- * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when
- * ray-casting geometry using a full screen quad.
- * </p>
- * @name czm_writeLogDepth
- * @glslFunction
- *
- * @param {float} depth The depth coordinate, where 1.0 is on the near plane and
- * depth increases in eye-space units from there
- *
- * @example
- * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0);
- */
- void czm_writeLogDepth(float depth)
- {
- #if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
- // Discard the vertex if it's not between the near and far planes.
- // We allow a bit of epsilon on the near plane comparison because a 1.0
- // from the vertex shader (indicating the vertex should be _on_ the near
- // plane) will not necessarily come here as exactly 1.0.
- if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) {
- discard;
- }
- #ifdef POLYGON_OFFSET
- // Polygon offset: m * factor + r * units
- float factor = u_polygonOffset[0];
- float units = u_polygonOffset[1];
- #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
- // This factor doesn't work in IE 10
- if (factor != 0.0) {
- // m = sqrt(dZdX^2 + dZdY^2);
- float x = dFdx(depth);
- float y = dFdy(depth);
- float m = sqrt(x * x + y * y);
- // Apply the factor before computing the log depth.
- depth += m * factor;
- }
- #endif
- #endif
- gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne;
- #ifdef POLYGON_OFFSET
- // Apply the units after the log depth.
- gl_FragDepth += czm_epsilon7 * units;
- #endif
- #endif
- }
- /**
- * Writes the fragment depth to the logarithmic depth buffer.
- * <p>
- * Use this when the vertex shader calls {@link czm_vertexlogDepth}.
- * </p>
- *
- * @name czm_writeLogDepth
- * @glslFunction
- */
- void czm_writeLogDepth() {
- #ifdef LOG_DEPTH
- czm_writeLogDepth(v_depthFromNearPlusOne);
- #endif
- }
- `;var hR=`/**
- * Transforms a value for non-perspective interpolation by multiplying
- * it by w, the value used in the perspective divide. This function is
- * intended to be called in a vertex shader to compute the value of a
- * \`varying\` that should not be subject to perspective interpolation.
- * For example, screen-space texture coordinates. The fragment shader
- * must call {@link czm_readNonPerspective} to retrieve the final
- * non-perspective value.
- *
- * @name czm_writeNonPerspective
- * @glslFunction
- *
- * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective.
- * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`.
- * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the
- * fragment shader with {@link czm_readNonPerspective}.
- */
- float czm_writeNonPerspective(float value, float w) {
- return value * w;
- }
- vec2 czm_writeNonPerspective(vec2 value, float w) {
- return value * w;
- }
- vec3 czm_writeNonPerspective(vec3 value, float w) {
- return value * w;
- }
- vec4 czm_writeNonPerspective(vec4 value, float w) {
- return value * w;
- }
- `;var kb={czm_degreesPerRadian:jP,czm_depthRange:qP,czm_epsilon1:YP,czm_epsilon2:XP,czm_epsilon3:KP,czm_epsilon4:ZP,czm_epsilon5:$P,czm_epsilon6:QP,czm_epsilon7:JP,czm_infinity:e1,czm_oneOverPi:t1,czm_oneOverTwoPi:n1,czm_passCesium3DTile:i1,czm_passCesium3DTileClassification:o1,czm_passCesium3DTileClassificationIgnoreShow:r1,czm_passClassification:s1,czm_passCompute:a1,czm_passEnvironment:c1,czm_passGlobe:l1,czm_passOpaque:u1,czm_passOverlay:f1,czm_passTerrainClassification:d1,czm_passTranslucent:h1,czm_passVoxels:m1,czm_pi:p1,czm_piOverFour:_1,czm_piOverSix:g1,czm_piOverThree:y1,czm_piOverTwo:x1,czm_radiansPerDegree:b1,czm_sceneMode2D:T1,czm_sceneMode3D:A1,czm_sceneModeColumbusView:C1,czm_sceneModeMorphing:E1,czm_solarRadius:S1,czm_threePiOver2:w1,czm_twoPi:v1,czm_webMercatorMaxLatitude:D1,czm_depthRangeStruct:I1,czm_material:P1,czm_materialInput:O1,czm_modelMaterial:R1,czm_modelVertexOutput:M1,czm_pbrParameters:L1,czm_ray:N1,czm_raySegment:F1,czm_shadowParameters:B1,czm_HSBToRGB:k1,czm_HSLToRGB:U1,czm_RGBToHSB:V1,czm_RGBToHSL:z1,czm_RGBToXYZ:H1,czm_XYZToRGB:G1,czm_acesTonemapping:W1,czm_alphaWeight:j1,czm_antialias:q1,czm_approximateSphericalCoordinates:Y1,czm_backFacing:X1,czm_branchFreeTernary:K1,czm_cascadeColor:Z1,czm_cascadeDistance:$1,czm_cascadeMatrix:Q1,czm_cascadeWeights:J1,czm_columbusViewMorph:eO,czm_computePosition:tO,czm_cosineAndSine:nO,czm_decompressTextureCoordinates:iO,czm_defaultPbrMaterial:oO,czm_depthClamp:rO,czm_eastNorthUpToEyeCoordinates:sO,czm_ellipsoidContainsPoint:aO,czm_ellipsoidWgs84TextureCoordinates:cO,czm_equalsEpsilon:lO,czm_eyeOffset:uO,czm_eyeToWindowCoordinates:fO,czm_fastApproximateAtan:dO,czm_fog:hO,czm_gammaCorrect:mO,czm_geodeticSurfaceNormal:pO,czm_getDefaultMaterial:_O,czm_getLambertDiffuse:gO,czm_getSpecular:yO,czm_getWaterNoise:xO,czm_hue:bO,czm_inverseGamma:TO,czm_isEmpty:AO,czm_isFull:CO,czm_latitudeToWebMercatorFraction:EO,czm_lineDistance:SO,czm_linearToSrgb:wO,czm_luminance:vO,czm_metersPerPixel:DO,czm_modelToWindowCoordinates:IO,czm_multiplyWithColorBalance:PO,czm_nearFarScalar:OO,czm_octDecode:RO,czm_packDepth:MO,czm_pbrLighting:LO,czm_pbrMetallicRoughnessMaterial:NO,czm_pbrSpecularGlossinessMaterial:FO,czm_phong:BO,czm_planeDistance:kO,czm_pointAlongRay:UO,czm_rayEllipsoidIntersectionInterval:VO,czm_raySphereIntersectionInterval:zO,czm_readDepth:HO,czm_readNonPerspective:GO,czm_reverseLogDepth:WO,czm_round:jO,czm_sampleOctahedralProjection:qO,czm_saturation:YO,czm_shadowDepthCompare:XO,czm_shadowVisibility:KO,czm_signNotZero:ZO,czm_sphericalHarmonics:$O,czm_srgbToLinear:QO,czm_tangentToEyeSpaceMatrix:JO,czm_textureCube:eR,czm_transformPlane:tR,czm_translateRelativeToEye:nR,czm_translucentPhong:iR,czm_transpose:oR,czm_unpackDepth:rR,czm_unpackFloat:sR,czm_unpackUint:aR,czm_valueTransform:cR,czm_vertexLogDepth:lR,czm_windowToEyeCoordinates:uR,czm_writeDepthClamp:fR,czm_writeLogDepth:dR,czm_writeNonPerspective:hR};function tEe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable
- ${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable
- ${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_OES_standard_derivatives
- #extension GL_OES_standard_derivatives : enable
- #endif
- ${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100
- ${n}`,n}var mR=tEe;function PZ(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o<n;++o)i+=`
- `;return i})}function OZ(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return u(i)||(t=PZ(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function RZ(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);u(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&ms._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=OZ(i,ms._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),RZ(o,t)}}))}function nEe(e){let t=[],n=[];for(;e.length>0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r<o.dependsOn.length;++r){let s=o.dependsOn[r],a=s.requiredBy.indexOf(o);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let o=0;o<n.length;++o)n[o].requiredBy.length!==0&&i.push(n[o])}function iEe(e){let t=[],n=OZ("main",e,t);RZ(n,t),nEe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource}
- `;return i.replace(n.glslSource,"")}function MZ(e,t,n){let i,o,r="",s=e.sources;if(u(s))for(i=0,o=s.length;i<o;++i)r+=`
- #line 0
- ${s[i]}`;r=PZ(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(x,b){return a=b,`
- `});let c=[];r=r.replace(/#extension.*\n/gm,function(x){return c.push(x),`
- `}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let l=e.pickColorQualifier;u(l)&&(r=ms.createPickFragmentShaderSource(r,l));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH
- precision highp float;
- precision highp int;
- #else
- precision mediump float;
- precision mediump int;
- #define highp mediump
- #endif
- `);let p=e.defines;if(u(p))for(i=0,o=p.length;i<o;++i){let x=p[i];x.length!==0&&(f+=`#define ${x}
- `)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear
- `),n.floatingPointTexture&&(f+=`#define OES_texture_float
- `);let g="";e.includeBuiltIns&&(g=iEe(r)),f+=`
- #line 0
- `;let m=g+r;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(m)&&!/czm_out_FragColor/g.test(m)&&/out_FragColor/g.test(m)&&(f+=`layout(location = 0) out vec4 out_FragColor;
- `),f+=g,f+=r,n.webgl2?f=`#version 300 es
- ${f}`:f=mR(f,t),f}function ms(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=u(e.defines)?e.defines.slice(0):[],this.sources=u(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}ms.prototype.clone=function(){return new ms({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};ms.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};ms.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(`
- `);return`${t}:${n}:${i}:${o}`};ms.prototype.createCombinedVertexShader=function(e){return MZ(this,!1,e)};ms.prototype.createCombinedFragmentShader=function(e){return MZ(this,!0,e)};ms._czmBuiltinsAndUniforms={};for(let e in kb)kb.hasOwnProperty(e)&&(ms._czmBuiltinsAndUniforms[e]=kb[e]);for(let e in t_)if(t_.hasOwnProperty(e)){let t=t_[e];typeof t.getDeclaration=="function"&&(ms._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}ms.createPickVertexShaderSource=function(e){return`${ms.replaceMain(e,"czm_old_main")}
- in vec4 pickColor;
- out vec4 czm_pickColor;
- void main()
- {
- czm_old_main();
- czm_pickColor = pickColor;
- }`};ms.createPickFragmentShaderSource=function(e,t){let n=ms.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor;
- void main()
- {
- czm_old_main();
- if (out_FragColor.a == 0.0) {
- discard;
- }
- out_FragColor = czm_pickColor;
- }`;return`${n}
- ${i}`};function oEe(e,t){let n=e.defines,i=n.length;for(let o=0;o<i;++o)if(n[o]===t)return!0;return!1}function LZ(e,t){let n=e.sources,i=n.length;for(let o=0;o<i;++o)if(n[o].indexOf(t)!==-1)return!0;return!1}function NZ(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(LZ(e,o))return o}}var rEe=["v_normalEC","v_normal"];ms.findNormalVarying=function(e){return LZ(e,"#ifdef HAS_NORMALS")?oEe(e,"HAS_NORMALS")?"v_normalEC":void 0:NZ(e,rEe)};var sEe=["v_positionEC"];ms.findPositionVarying=function(e){return NZ(e,sEe)};var ze=ms;function Bf(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Bf.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Bf.prototype.replaceShaderProgram=function(e){return u(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function aEe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Bf.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new ze({sources:[t]})),typeof n=="string"&&(n=new ze({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=u(i)?aEe(i):"",a=`${o}:${r}:${s}`,c;if(u(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let l=this._context,f=t.createCombinedVertexShader(l),d=n.createCombinedFragmentShader(l),p=new Kt({gl:l._gl,logShaderCompilation:l.logShaderCompilation,debugShaders:l.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};Bf.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(u(r)){kH(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Bf.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(u(o))return o.shaderProgram};Bf.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new ze({sources:[r]})),typeof s=="string"&&(s=new ze({sources:[s]}));let c=this._context,l=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Kt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:l,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function kH(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];kH(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Bf.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];kH(this,n),--this._numberOfShaders}this._shadersToRelease={}};Bf.prototype.releaseShaderProgram=function(e){if(u(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Bf.prototype.isDestroyed=function(){return!1};Bf.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return le(this)};var pR=Bf;function kf(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height,o=e.source;u(o)&&(u(n)||(n=y(o.videoWidth,o.width)),u(i)||(i=y(o.videoHeight,o.height)));let r=y(e.pixelFormat,rt.RGBA),s=y(e.pixelDatatype,Ye.UNSIGNED_BYTE),a=rt.toInternalFormat(r,s,t),c=rt.isCompressedFormat(a),l=e.preMultiplyAlpha||r===rt.RGB||r===rt.LUMINANCE,f=y(e.flipY,!0),d=y(e.skipColorSpaceConversion,!1),p=!0,g=t._gl,m=g.TEXTURE_2D,x=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,x);let b=4;if(u(o)&&u(o.arrayBufferView)&&!c&&(b=rt.alignmentInBytes(r,s,n)),g.pixelStorei(g.UNPACK_ALIGNMENT,b),d?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),u(o))if(u(o.arrayBufferView)){g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1);let A=o.arrayBufferView,C,S,w;if(c){if(g.compressedTexImage2D(m,0,a,n,i,0,A),u(o.mipLevels))for(S=n,w=i,C=0;C<o.mipLevels.length;++C)S=Math.floor(S/2)|0,S<1&&(S=1),w=Math.floor(w/2)|0,w<1&&(w=1),g.compressedTexImage2D(m,C+1,a,S,w,0,o.mipLevels[C])}else if(f&&(A=rt.flipY(A,r,s,n,i)),g.texImage2D(m,0,a,n,i,0,r,Ye.toWebGLConstant(s,t),A),u(o.mipLevels))for(S=n,w=i,C=0;C<o.mipLevels.length;++C)S=Math.floor(S/2)|0,S<1&&(S=1),w=Math.floor(w/2)|0,w<1&&(w=1),g.texImage2D(m,C+1,a,S,w,0,r,Ye.toWebGLConstant(s,t),o.mipLevels[C])}else u(o.framebuffer)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._bind(),g.copyTexImage2D(m,0,a,o.xOffset,o.yOffset,n,i,0),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._unBind()):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,l),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,f),g.texImage2D(m,0,a,r,Ye.toWebGLConstant(s,t),o));else g.texImage2D(m,0,a,n,i,0,r,Ye.toWebGLConstant(s,t),null),p=!1;g.bindTexture(m,null);let T;c?T=rt.compressedTextureSizeInBytes(r,n,i):T=rt.textureSizeInBytes(r,s,n,i),this._id=Gn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=x,this._internalFormat=a,this._pixelFormat=r,this._pixelDatatype=s,this._width=n,this._height=i,this._dimensions=new V(n,i),this._hasMipmap=!1,this._sizeInBytes=T,this._preMultiplyAlpha=l,this._flipY=f,this._initialized=p,this._sampler=void 0,this.sampler=u(e.sampler)?e.sampler:new ln}kf.create=function(e){return new kf(e)};kf.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=y(e.pixelFormat,rt.RGB),o=y(e.framebufferXOffset,0),r=y(e.framebufferYOffset,0),s=y(e.width,n.drawingBufferWidth),a=y(e.height,n.drawingBufferHeight),c=e.framebuffer;return new kf({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:u(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(kf.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=this._context,o=this._pixelFormat,r=this._pixelDatatype,s=t===an.NEAREST_MIPMAP_NEAREST||t===an.NEAREST_MIPMAP_LINEAR||t===an.LINEAR_MIPMAP_NEAREST||t===an.LINEAR_MIPMAP_LINEAR;(r===Ye.FLOAT&&!i.textureFloatLinear||r===Ye.HALF_FLOAT&&!i.textureHalfFloatLinear)&&(t=s?an.NEAREST_MIPMAP_NEAREST:an.NEAREST,n=Ci.NEAREST),i.webgl2&&rt.isDepthFormat(o)&&(t=an.NEAREST,n=Ci.NEAREST);let a=i._gl,c=this._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,t),a.texParameteri(c,a.TEXTURE_MAG_FILTER,n),a.texParameteri(c,a.TEXTURE_WRAP_S,e.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,e.wrapT),u(this._textureFilterAnisotropic)&&a.texParameteri(c,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),a.bindTexture(c,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});kf.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context,r=o._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture);let a=i.width,c=i.height,l=i.arrayBufferView,f=this._width,d=this._height,p=this._internalFormat,g=this._pixelFormat,m=this._pixelDatatype,x=this._preMultiplyAlpha,b=this._flipY,T=y(e.skipColorSpaceConversion,!1),A=4;u(l)&&(A=rt.alignmentInBytes(g,m,a)),r.pixelStorei(r.UNPACK_ALIGNMENT,A),T?r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.NONE):r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===d)u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(l=rt.flipY(l,g,m,f,d)),r.texImage2D(s,0,p,f,d,0,g,Ye.toWebGLConstant(m,o),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texImage2D(s,0,p,g,Ye.toWebGLConstant(m,o),i)),C=!0;else{r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);let S=rt.createTypedArray(g,m,f,d);r.texImage2D(s,0,p,f,d,0,g,Ye.toWebGLConstant(m,o),S)}this._initialized=!0}C||(u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(l=rt.flipY(l,g,m,a,c)),r.texSubImage2D(s,0,t,n,a,c,g,Ye.toWebGLConstant(m,o),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texSubImage2D(s,0,t,n,g,Ye.toWebGLConstant(m,o),i))),r.bindTexture(s,null)};kf.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._width),r=y(r,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};kf.prototype.generateMipmap=function(e){e=y(e,Lm.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};kf.prototype.isDestroyed=function(){return!1};kf.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),le(this)};var Pt=kf;function Qy(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(Qy.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});Qy.prototype.getTexture=function(e){let t=this._textures[e];if(u(t))return delete this._texturesToRelease[e],++t.count,t.texture};Qy.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};Qy.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};Qy.prototype.isDestroyed=function(){return!1};Qy.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return le(this)};var _R=Qy;function rh(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}rh.encode=function(e,t){u(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Nm={high:0,low:0};rh.fromCartesian=function(e,t){u(t)||(t=new rh);let n=t.high,i=t.low;return rh.encode(e.x,Nm),n.x=Nm.high,i.x=Nm.low,rh.encode(e.y,Nm),n.y=Nm.high,i.y=Nm.low,rh.encode(e.z,Nm),n.z=Nm.high,i.z=Nm.low,t};var UH=new rh;rh.writeElements=function(e,t,n){rh.fromCartesian(e,UH);let i=UH.high,o=UH.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Wn=rh;function ps(e,t){this.normal=h.clone(e),this.distance=t}ps.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return u(n)?(h.clone(t,n.normal),n.distance=i,n):new ps(t,i)};var cEe=new h;ps.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,cEe),i=e.w;return u(t)?(h.clone(n,t.normal),t.distance=i,t):new ps(n,i)};ps.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var lEe=new h;ps.projectPointOntoPlane=function(e,t,n){u(n)||(n=new h);let i=ps.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,lEe);return h.subtract(t,o,n)};var uEe=new L,fEe=new oe,dEe=new h;ps.transform=function(e,t,n){let i=e.normal,o=e.distance,r=L.inverseTranspose(t,uEe),s=oe.fromElements(i.x,i.y,i.z,o,fEe);s=L.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,dEe);return s=oe.divideByScalar(s,h.magnitude(a),s),ps.fromCartesian4(s,n)};ps.clone=function(e,t){return u(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new ps(e.normal,e.distance)};ps.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};ps.ORIGIN_XY_PLANE=Object.freeze(new ps(h.UNIT_Z,0));ps.ORIGIN_YZ_PLANE=Object.freeze(new ps(h.UNIT_X,0));ps.ORIGIN_ZX_PLANE=Object.freeze(new ps(h.UNIT_Y,0));var tn=ps;function Iu(e){this.planes=y(e,[])}var oS=[new h,new h,new h];h.clone(h.UNIT_X,oS[0]);h.clone(h.UNIT_Y,oS[1]);h.clone(h.UNIT_Z,oS[2]);var d_=new h,hEe=new h,FZ=new tn(new h(1,0,0),0);Iu.fromBoundingSphere=function(e,t){u(t)||(t=new Iu);let n=oS.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a<n;++a){let c=oS[a],l=i[s],f=i[s+1];u(l)||(l=i[s]=new oe),u(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,d_),h.add(o,d_,d_),l.x=c.x,l.y=c.y,l.z=c.z,l.w=-h.dot(c,d_),h.multiplyByScalar(c,r,d_),h.add(o,d_,d_),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,hEe),d_),s+=2}return t};Iu.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(tn.fromCartesian4(t[i],FZ));if(r===Zt.OUTSIDE)return Zt.OUTSIDE;r===Zt.INTERSECTING&&(n=!0)}return n?Zt.INTERSECTING:Zt.INSIDE};Iu.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===Iu.MASK_OUTSIDE||t===Iu.MASK_INSIDE)return t;let n=Iu.MASK_INSIDE,i=this.planes;for(let o=0,r=i.length;o<r;++o){let s=o<31?1<<o:0;if(o<31&&!(t&s))continue;let a=e.intersectPlane(tn.fromCartesian4(i[o],FZ));if(a===Zt.OUTSIDE)return Iu.MASK_OUTSIDE;a===Zt.INTERSECTING&&(n|=s)}return n};Iu.MASK_OUTSIDE=4294967295;Iu.MASK_INSIDE=0;Iu.MASK_INDETERMINATE=2147483647;var ns=Iu;function sh(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ns,this._orthographicMatrix=new L}function BZ(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=L.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(sh.prototype,{projectionMatrix:{get:function(){return BZ(this),this._orthographicMatrix}}});var mEe=new h,pEe=new h,_Ee=new h,VH=new h;sh.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,l=this.far,f=h.cross(t,n,mEe);h.normalize(f,f);let d=pEe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=_Ee;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return u(g)||(g=i[0]=new oe),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-h.dot(f,p),h.multiplyByScalar(f,s,p),h.add(d,p,p),g=i[1],u(g)||(g=i[1]=new oe),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-h.dot(h.negate(f,VH),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],u(g)||(g=i[2]=new oe),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-h.dot(n,p),h.multiplyByScalar(n,o,p),h.add(d,p,p),g=i[3],u(g)||(g=i[3]=new oe),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-h.dot(h.negate(n,VH),p),g=i[4],u(g)||(g=i[4]=new oe),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-h.dot(t,d),h.multiplyByScalar(t,l,p),h.add(e,p,p),g=i[5],u(g)||(g=i[5]=new oe),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-h.dot(h.negate(t,VH),p),this._cullingVolume};sh.prototype.getPixelDimensions=function(e,t,n,i,o){BZ(this);let r=this.right-this.left,s=this.top-this.bottom,a=i*r/e,c=i*s/t;return o.x=a,o.y=c,o};sh.prototype.clone=function(e){return u(e)||(e=new sh),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};sh.prototype.equals=function(e){return u(e)&&e instanceof sh&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};sh.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof sh&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var vr=sh;function Hc(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new vr,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}Hc.packedLength=4;Hc.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};Hc.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Hc),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function h_(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(Hc.prototype,{projectionMatrix:{get:function(){return h_(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return h_(this),this._offCenterFrustum}}});Hc.prototype.computeCullingVolume=function(e,t,n){return h_(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Hc.prototype.getPixelDimensions=function(e,t,n,i,o){return h_(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Hc.prototype.clone=function(e){return u(e)||(e=new Hc),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Hc.prototype.equals=function(e){return!u(e)||!(e instanceof Hc)?!1:(h_(this),h_(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Hc.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof Hc)?!1:(h_(this),h_(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Qt=Hc;var zH={};function gEe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var yEe=32.184,xEe=2451545;function n$(e,t){t=J.addSeconds(e,yEe,t);let n=J.totalDays(t)-xEe;return t=J.addSeconds(t,gEe(n),t),t}var gR=new J(2451545,0,Yn.TAI),bEe=1e3,Pu=P.RADIANS_PER_DEGREE,Dl=P.RADIANS_PER_ARCSECOND,ia=14959787e4,kZ=new $;function i$(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,l=o,f=AEe(r-i,t),d=TEe(t,0);vEe(c,n,l,kZ);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return u(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),$.multiplyByVector(kZ,s,s)}function TEe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function AEe(e,t){let n=SEe(e,t);return wEe(n,t)}var CEe=50,EEe=P.EPSILON8;function SEe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<CEe&&Math.abs(o-i)>EEe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*P.TWO_PI,o}function wEe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function vEe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),l=Math.sin(n);return u(i)?(i[0]=c*o-l*r*s,i[1]=l*o+c*r*s,i[2]=r*a,i[3]=-c*r-l*o*s,i[4]=-l*r+c*o*s,i[5]=o*a,i[6]=l*a,i[7]=-c*a,i[8]=s):i=new $(c*o-l*r*s,-c*r-l*o*s,l*a,l*o+c*r*s,-l*r+c*o*s,-c*a,r*a,o*a,s),i}var DEe=1.0000010178*ia,IEe=100.46645683*Pu,PEe=129597742283429e-5*Dl,UZ=16002,VZ=21863,zZ=32004,HZ=10931,GZ=14529,WZ=16368,jZ=15318,qZ=32794,OEe=64*1e-7*ia,REe=-152*1e-7*ia,MEe=62*1e-7*ia,LEe=-8*1e-7*ia,NEe=32*1e-7*ia,FEe=-41*1e-7*ia,BEe=19*1e-7*ia,kEe=-11*1e-7*ia,UEe=-150*1e-7*ia,VEe=-46*1e-7*ia,zEe=68*1e-7*ia,HEe=54*1e-7*ia,GEe=14*1e-7*ia,WEe=24*1e-7*ia,jEe=-28*1e-7*ia,qEe=22*1e-7*ia,YZ=10,XZ=16002,KZ=21863,ZZ=10931,$Z=1473,QZ=32004,JZ=4387,e$=73,YEe=-325*1e-7,XEe=-322*1e-7,KEe=-79*1e-7,ZEe=232*1e-7,$Ee=-52*1e-7,QEe=97*1e-7,JEe=55*1e-7,eSe=-41*1e-7,tSe=-105*1e-7,nSe=-137*1e-7,iSe=258*1e-7,oSe=35*1e-7,rSe=-116*1e-7,sSe=-88*1e-7,aSe=-112*1e-7,cSe=-80*1e-7,Ub=new J(0,0,Yn.TAI);function lSe(e,t){n$(e,Ub);let i=(Ub.dayNumber-gR.dayNumber+(Ub.secondsOfDay-gR.secondsOfDay)/Xn.SECONDS_PER_DAY)/(Xn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=DEe+OEe*Math.cos(UZ*o)+UEe*Math.sin(UZ*o)+REe*Math.cos(VZ*o)+VEe*Math.sin(VZ*o)+MEe*Math.cos(zZ*o)+zEe*Math.sin(zZ*o)+LEe*Math.cos(HZ*o)+HEe*Math.sin(HZ*o)+NEe*Math.cos(GZ*o)+GEe*Math.sin(GZ*o)+FEe*Math.cos(WZ*o)+WEe*Math.sin(WZ*o)+BEe*Math.cos(jZ*o)+jEe*Math.sin(jZ*o)+kEe*Math.cos(qZ*o)+qEe*Math.sin(qZ*o),s=IEe+PEe*i+YEe*Math.cos(YZ*o)+tSe*Math.sin(YZ*o)+XEe*Math.cos(XZ*o)+nSe*Math.sin(XZ*o)+KEe*Math.cos(KZ*o)+iSe*Math.sin(KZ*o)+ZEe*Math.cos(ZZ*o)+oSe*Math.sin(ZZ*o)+$Ee*Math.cos($Z*o)+rSe*Math.sin($Z*o)+QEe*Math.cos(QZ*o)+sSe*Math.sin(QZ*o)+JEe*Math.cos(JZ*o)+aSe*Math.sin(JZ*o)+eSe*Math.cos(e$*o)+cSe*Math.sin(e$*o),a=.0167086342-.0004203654*i,c=102.93734808*Pu+11612.3529*Dl*i,l=469.97289*Dl*i,f=174.87317577*Pu-8679.27034*Dl*i;return i$(r,a,l,c,f,s,t)}function o$(e,t){n$(e,Ub);let i=(Ub.dayNumber-gR.dayNumber+(Ub.secondsOfDay-gR.secondsOfDay)/Xn.SECONDS_PER_DAY)/Xn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,l=5.15668983*Pu,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*Pu,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*Pu,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*Pu,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*Pu+Dl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),A=93.27209062*Pu+Dl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),C=134.96340251*Pu+Dl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),S=357.52910918*Pu+Dl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),w=310.17137918*Pu-Dl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,R=6*T,N=2*C,F=3*C,_=4*C,E=2*A;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-C)-235.6*Math.cos(C)+218.1*Math.cos(D-S)+181*Math.cos(D+C),c+=.014216*Math.cos(D-C)+.008551*Math.cos(D-N)-.001383*Math.cos(C)+.001356*Math.cos(D+C)-.001147*Math.cos(O-F)-914e-6*Math.cos(O-N)+869e-6*Math.cos(D-S-C)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-S-N)-279e-6*Math.cos(T-C)-236e-6*Math.cos(N)+231e-6*Math.cos(O)+229e-6*Math.cos(R-_)-201e-6*Math.cos(N-E),f+=486.26*Math.cos(D-E)-40.13*Math.cos(D)+37.51*Math.cos(E)+25.73*Math.cos(N-E)+19.97*Math.cos(D-S-E),p+=-55609*Math.sin(D-C)-34711*Math.sin(D-N)-9792*Math.sin(C)+9385*Math.sin(O-F)+7505*Math.sin(O-N)+5318*Math.sin(D+C)+3484*Math.sin(O-_)-3417*Math.sin(D-S-C)-2530*Math.sin(R-_)-2376*Math.sin(D)-2075*Math.sin(D-F)-1883*Math.sin(N)-1736*Math.sin(R-5*C)+1626*Math.sin(S)-1370*Math.sin(R-F),m+=-5392*Math.sin(D-E)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(E)-288*Math.sin(N-E),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-C)-662.5*Math.sin(S)+396.3*Math.sin(C)-218*Math.sin(D-S);let v=2*w,I=3*w;f+=46.997*Math.cos(w)*i-.614*Math.cos(D-E+w)*i+.614*Math.cos(D-E-w)*i-.0297*Math.cos(v)*o-.0335*Math.cos(w)*o+.0012*Math.cos(D-E+v)*o-16e-5*Math.cos(w)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(v)*r;let M=2.116*Math.sin(w)*i-.111*Math.sin(D-E-w)*i-.0015*Math.sin(w)*o;p+=M,b+=M,m+=-520.77*Math.sin(w)*i+13.66*Math.sin(D-E+w)*i+1.12*Math.sin(D-w)*i-1.06*Math.sin(E-w)*i+.66*Math.sin(v)*o+.371*Math.sin(w)*o-.035*Math.sin(D-E+v)*o-.015*Math.sin(D-E+w)*o+.0014*Math.sin(w)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(v)*r,a*=bEe;let B=l+f*Dl,H=d+p*Dl,U=x+b*Dl,G=g+m*Dl;return i$(a,c,B,H,G,U,t)}var t$=.012300034,uSe=t$/(t$+1)*-1;function fSe(e,t){return t=o$(e,t),h.multiplyByScalar(t,uSe,t)}var r$=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),rS=new h;zH.computeSunPositionInEarthInertialFrame=function(e,t){return u(e)||(e=J.now()),u(t)||(t=new h),rS=lSe(e,rS),t=h.negate(rS,t),fSe(e,rS),h.subtract(t,rS,t),$.multiplyByVector(r$,t,t),t};zH.computeMoonPositionInEarthInertialFrame=function(e,t){return u(e)||(e=J.now()),t=o$(e,t),$.multiplyByVector(r$,t,t),t};var Jy=zH;var yR={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};yR.getMorphTime=function(e){return e===yR.SCENE3D?1:e===yR.MORPHING?void 0:0};var te=Object.freeze(yR);function dSe(e){e=y(e,y.EMPTY_OBJECT),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,2)}var m_=dSe;function Vb(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new qe,this._viewportCartesian4=new oe,this._viewportDirty=!1,this._viewportOrthographicMatrix=L.clone(L.IDENTITY),this._viewportTransformation=L.clone(L.IDENTITY),this._model=L.clone(L.IDENTITY),this._view=L.clone(L.IDENTITY),this._inverseView=L.clone(L.IDENTITY),this._projection=L.clone(L.IDENTITY),this._infiniteProjection=L.clone(L.IDENTITY),this._entireFrustum=new V,this._currentFrustum=new V,this._frustumPlanes=new oe,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(L.IDENTITY),this._view3DDirty=!0,this._view3D=new L,this._inverseView3DDirty=!0,this._inverseView3D=new L,this._inverseModelDirty=!0,this._inverseModel=new L,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new L,this._modelViewDirty=!0,this._modelView=new L,this._modelView3DDirty=!0,this._modelView3D=new L,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new L,this._inverseModelViewDirty=!0,this._inverseModelView=new L,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new L,this._viewProjectionDirty=!0,this._viewProjection=new L,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new L,this._modelViewProjectionDirty=!0,this._modelViewProjection=new L,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new L,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new L,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new L,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Wn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new V,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new z,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new V,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(Vb.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!qe.equals(e,this._viewport)){qe.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return s$(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return s$(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){L.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,L.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,L.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return HH(this),this._view3D}},viewRotation:{get:function(){return HH(this),this._viewRotation}},viewRotation3D:{get:function(){return HH(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return l$(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return l$(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return ASe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return CSe(this),this._modelView}},modelView3D:{get:function(){return ESe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return PSe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return SSe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return wSe(this),this._inverseModelView3D}},viewProjection:{get:function(){return vSe(this),this._viewProjection}},inverseViewProjection:{get:function(){return DSe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return ISe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return OSe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return RSe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return MSe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return LSe(this),this._normal}},normal3D:{get:function(){return NSe(this),this._normal3D}},inverseNormal:{get:function(){return FSe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return BSe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return c$(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return c$(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,ie.WGS84)}}});function hSe(e,t){L.clone(t,e._view),L.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function mSe(e,t){L.clone(t,e._inverseView),L.getMatrix3(t,e._inverseViewRotation)}function pSe(e,t){L.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function _Se(e,t){L.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function gSe(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=t.positionCartographic;u(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var sS=new $,ySe=new fe;function xSe(e,t){u(Rt.computeIcrfToFixedMatrix(t.time,sS))||(sS=Rt.computeTemeToPseudoFixedMatrix(t.time,sS));let n=Jy.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(sS,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=Jy.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(sS,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,ySe);i.project(r,e._sunPositionColumbusView)}Vb.prototype.updateCamera=function(e){hSe(this,e.viewMatrix),mSe(this,e.inverseViewMatrix),gSe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==te.SCENE2D&&e.frustum instanceof Qt};Vb.prototype.updateFrustum=function(e){pSe(this,e.projectionMatrix),u(e.infiniteProjectionMatrix)&&_Se(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;u(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};Vb.prototype.updatePass=function(e){this._pass=e};var bSe=[],TSe=new m_;Vb.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===te.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),xSe(this,e);let n=y(e.light,TSe);n instanceof m_?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=u(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,bSe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,u(this._specularEnvironmentMaps)&&V.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Rt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,l=this._viewport,f;u(c)?l.height>l.width?f=Math.tan(.5*c)*2/l.height:f=Math.tan(.5*c)*2/l.width:f=1/Math.max(l.width,l.height),this._geometricToleranceOverMeter=f*e.maximumScreenSpaceError,z.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function s$(e){if(e._viewportDirty){let t=e._viewport;L.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),L.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function ASe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==te.SCENE2D&&e._mode!==te.MORPHING&&!e._orthographicIn3D?L.inverse(e._projection,e._inverseProjection):L.clone(L.ZERO,e._inverseProjection))}function CSe(e){e._modelViewDirty&&(e._modelViewDirty=!1,L.multiplyTransformation(e._view,e._model,e._modelView))}function ESe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,L.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function SSe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,L.inverse(e.modelView,e._inverseModelView))}function wSe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,L.inverse(e.modelView3D,e._inverseModelView3D))}function vSe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,L.multiply(e._projection,e._view,e._viewProjection))}function DSe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,L.inverse(e.viewProjection,e._inverseViewProjection))}function ISe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,L.multiply(e._projection,e.modelView,e._modelViewProjection))}function PSe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function OSe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,L.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function RSe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,L.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function MSe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,L.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function LSe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;L.getMatrix3(e.inverseModelView,t),$.getRotation(t,t),$.transpose(t,t)}}function NSe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;L.getMatrix3(e.inverseModelView3D,t),$.getRotation(t,t),$.transpose(t,t)}}function FSe(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,L.getMatrix3(e.inverseModelView,e._inverseNormal),$.getRotation(e._inverseNormal,e._inverseNormal))}function BSe(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,L.getMatrix3(e.inverseModelView3D,e._inverseNormal3D),$.getRotation(e._inverseNormal3D,e._inverseNormal3D))}var a$=new h;function c$(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,L.multiplyByPoint(e.inverseModel,e._cameraPosition,a$),Wn.fromCartesian(a$,e._encodedCameraPositionMC))}var kSe=new h,USe=new h,VSe=new h,zSe=new h,HSe=new fe,GSe=new h,WSe=new L;function jSe(e,t,n,i,o,r,s,a){let c=kSe;c.x=e.y,c.y=e.z,c.z=e.x;let l=USe;l.x=n.y,l.y=n.z,l.z=n.x;let f=VSe;f.x=i.y,f.y=i.z,f.z=i.x;let d=zSe;d.x=t.y,d.y=t.z,d.z=t.x,r===te.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,HSe);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,GSe),x=Rt.eastNorthUpToFixedFrame(m,g,WSe);return L.multiplyByPointAsVector(x,l,l),L.multiplyByPointAsVector(x,f,f),L.multiplyByPointAsVector(x,d,d),u(a)||(a=new L),a[0]=l.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=l.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=l.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(l,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function HH(e){e._view3DDirty&&(e._mode===te.SCENE3D?L.clone(e._view,e._view3D):jSe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),L.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function l$(e){e._inverseView3DDirty&&(L.inverseTransformation(e.view3D,e._inverseView3D),L.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var xR=Vb;function qSe(e,t,n,i){let o=u(t.vertexBuffer),r=u(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let l=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(l,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(l),this.instanceDivisor>0&&(i.glVertexAttribDivisor(l,this.instanceDivisor),i._vertexAttribDivisors[l]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function f$(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}u(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function Fm(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,o=e.indexBuffer,r,s=[],a=1,c=!1,l=!1,f=i.length;for(r=0;r<f;++r)qSe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(u(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(r=0;r<f;++r)s[r].instanceDivisor>0&&(c=!0),u(s[r].value)&&(l=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),f$(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=l,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function u$(e){return e.values.length/e.componentsPerAttribute}function YSe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function XSe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&u(e[n])&&u(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=u$(e[o[0]]),t=1;t<s;++t){let l=u$(e[o[t]]);if(l!==r)throw new ue(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${l.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(l,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[l].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=YSe(i);if(a>0){let l=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%l;f!==0&&(a+=l-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=o[t];let m=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/m,strideInComponentType:a/m}}for(t=0;t<r;++t)for(let m=0;m<s;++m){n=o[m],i=e[n];let x=i.values,b=g[n],T=b.pointer,A=i.componentsPerAttribute;for(let C=0;C<A;++C)T[b.index+C]=x[t*A+C];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}Fm.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Be.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,l,f=u(s)?s:[],d=n.attributes;if(r){let m=XSe(d);if(u(m)){l=ut.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&u(d[a])&&(c=d[a],u(c.values)?f.push({index:o[a],vertexBuffer:l,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:x[a],strideInBytes:b}):f.push({index:o[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&u(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),l=void 0,u(c.values)&&(l=ut.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:l,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return u(g)&&(ct.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=ut.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:ke.UNSIGNED_INT}):p=ut.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:ke.UNSIGNED_SHORT})),new Fm({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(Fm.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});Fm.prototype.getAttribute=function(e){return this._attributes[e]};function KSe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=zt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let l=c.instanceDivisor,f=c.index;l!==i[f]&&(t.glVertexAttribDivisor(f,l),i[f]=l)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function ZSe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&u(r.value)&&r.vertexAttrib(t)}}Fm.prototype._bind=function(){u(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&KSe(this),this._hasConstantAttributes&&ZSe(this,this._gl)):f$(this._gl,this._attributes,this._indexBuffer)};Fm.prototype._unBind=function(){if(u(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};Fm.prototype.isDestroyed=function(){return!1};Fm.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;u(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return u(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),u(this._vao)&&this._context.glDeleteVertexArray(this._vao),le(this)};var ti=Fm;function Il(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=u(n)?n(e,o):$Se(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Gn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new pR(this),this._textureCache=new _R;let l=s;this._stencilBits=l.getParameter(l.STENCIL_BITS),zt._maximumCombinedTextureImageUnits=l.getParameter(l.MAX_COMBINED_TEXTURE_IMAGE_UNITS),zt._maximumCubeMapSize=l.getParameter(l.MAX_CUBE_MAP_TEXTURE_SIZE),zt._maximumFragmentUniformVectors=l.getParameter(l.MAX_FRAGMENT_UNIFORM_VECTORS),zt._maximumTextureImageUnits=l.getParameter(l.MAX_TEXTURE_IMAGE_UNITS),zt._maximumRenderbufferSize=l.getParameter(l.MAX_RENDERBUFFER_SIZE),zt._maximumTextureSize=l.getParameter(l.MAX_TEXTURE_SIZE),zt._maximumVaryingVectors=l.getParameter(l.MAX_VARYING_VECTORS),zt._maximumVertexAttributes=l.getParameter(l.MAX_VERTEX_ATTRIBS),zt._maximumVertexTextureImageUnits=l.getParameter(l.MAX_VERTEX_TEXTURE_IMAGE_UNITS),zt._maximumVertexUniformVectors=l.getParameter(l.MAX_VERTEX_UNIFORM_VECTORS),zt._maximumSamples=this._webgl2?l.getParameter(l.MAX_SAMPLES):0;let f=l.getParameter(l.ALIASED_LINE_WIDTH_RANGE);zt._minimumAliasedLineWidth=f[0],zt._maximumAliasedLineWidth=f[1];let d=l.getParameter(l.ALIASED_POINT_SIZE_RANGE);zt._minimumAliasedPointSize=d[0],zt._maximumAliasedPointSize=d[1];let p=l.getParameter(l.MAX_VIEWPORT_DIMS);zt._maximumViewportWidth=p[0],zt._maximumViewportHeight=p[1];let g=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_FLOAT);zt._highpFloatSupported=g.precision!==0;let m=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_INT);zt._highpIntSupported=m.rangeMax!==0,this._antialias=l.getContextAttributes().antialias,this._standardDerivatives=!!pr(l,["OES_standard_derivatives"]),this._blendMinmax=!!pr(l,["EXT_blend_minmax"]),this._elementIndexUint=!!pr(l,["OES_element_index_uint"]),this._depthTexture=!!pr(l,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!pr(l,["EXT_frag_depth"]),this._debugShaders=pr(l,["WEBGL_debug_shaders"]),this._textureFloat=!!pr(l,["OES_texture_float"]),this._textureHalfFloat=!!pr(l,["OES_texture_half_float"]),this._textureFloatLinear=!!pr(l,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!pr(l,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!pr(l,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!pr(l,["EXT_float_blend"]),this._colorBufferHalfFloat=!!pr(l,["EXT_color_buffer_half_float"]),this._s3tc=!!pr(l,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!pr(l,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!pr(l,["WEBGL_compressed_texture_astc"]),this._etc=!!pr(l,["WEBG_compressed_texture_etc"]),this._etc1=!!pr(l,["WEBGL_compressed_texture_etc1"]),this._bc7=!!pr(l,["EXT_texture_compression_bptc"]),vl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?pr(l,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,zt._maximumTextureFilterAnisotropy=u(x)?l.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,A,C,S,w,D,O,R,N;if(c){let v=this;b=function(){return v._gl.createVertexArray()},T=function(I){v._gl.bindVertexArray(I)},A=function(I){v._gl.deleteVertexArray(I)},C=function(I,M,B,H,U){l.drawElementsInstanced(I,M,B,H,U)},S=function(I,M,B,H){l.drawArraysInstanced(I,M,B,H)},w=function(I,M){l.vertexAttribDivisor(I,M)},D=function(I){l.drawBuffers(I)}}else O=pr(l,["OES_vertex_array_object"]),u(O)&&(b=function(){return O.createVertexArrayOES()},T=function(v){O.bindVertexArrayOES(v)},A=function(v){O.deleteVertexArrayOES(v)}),R=pr(l,["ANGLE_instanced_arrays"]),u(R)&&(C=function(v,I,M,B,H){R.drawElementsInstancedANGLE(v,I,M,B,H)},S=function(v,I,M,B){R.drawArraysInstancedANGLE(v,I,M,B)},w=function(v,I){R.vertexAttribDivisorANGLE(v,I)}),N=pr(l,["WEBGL_draw_buffers"]),u(N)&&(D=function(v){N.drawBuffersWEBGL(v)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=A,this.glDrawElementsInstanced=C,this.glDrawArraysInstanced=S,this.glVertexAttribDivisor=w,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!R,this._drawBuffers=!!N,zt._maximumDrawBuffers=this.drawBuffers?l.getParameter(ee.MAX_DRAW_BUFFERS):1,zt._maximumColorAttachments=this.drawBuffers?l.getParameter(ee.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new z(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let F=new xR,_=new sc(this),E=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=E,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=F,this._currentRenderState=E,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let v=0;v<zt._maximumVertexAttributes;v++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},Ve.apply(l,E,_)}function $Se(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ue("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!u(r))throw new ue("The browser supports WebGL, but initialization failed.");return r}function QSe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function JSe(e,t,n,i){let o=`${QSe(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function ewe(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ue(JSe(e,t,n,i))}function twe(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function nwe(e,t){if(!u(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,twe(e,o,t))}return i}function pr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var iwe={};Object.defineProperties(Il.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=nwe(this._originalGLContext,e?ewe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Pt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Pt({context:this,pixelFormat:rt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Pt({context:this,pixelFormat:rt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new rc({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return iwe}}});function d$(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ve.partialApply(e._gl,o,t,r,n,i)}var GH;typeof WebGLRenderingContext<"u"&&(GH=[ee.BACK]);function WH(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=GH;if(u(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var owe=new ei;Il.prototype.clear=function(e,t){e=y(e,owe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;u(o)&&(z.equals(this._clearColor,o)||(z.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),u(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),u(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);d$(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);WH(this,c),n.clear(i)};function rwe(e,t,n,i,o){WH(e,t),d$(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function swe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,L.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let l=r.indexBuffer;u(l)?(s=s*l.bytesPerIndex,u(a)?a=Math.min(a,l.numberOfIndices):a=l.numberOfIndices,c===0?e._gl.drawElements(o,a,l.indexDatatype,s):e.glDrawElementsInstanced(o,a,l.indexDatatype,s,c)):(u(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}Il.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),rwe(this,o,t,n,r),swe(this,e,n,i)};Il.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=GH;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};Il.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),o=y(e.width,t.drawingBufferWidth),r=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=Ye.UNSIGNED_BYTE;u(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=rt.createTypedArray(rt.RGBA,a,o,r);return WH(this,s),t.readPixels(n,i,o,r,rt.RGBA,Ye.toWebGLConstant(a,this),c),c};var h$={position:0,textureCoordinates:1};Il.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!u(e)){let t=new ct({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Le.TRIANGLES});e=ti.fromGeometry({context:this,geometry:t,attributeLocations:h$,bufferUsage:Be.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Il.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new et({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Le.TRIANGLES,renderState:t.renderState,shaderProgram:Kt.fromCache({context:this,vertexShaderSource:Ab,fragmentShaderSource:e,attributeLocations:h$}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Il.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function jH(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(jH.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});jH.prototype.destroy=function(){delete this._pickObjects[this.key]};Il.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ue("Out of unique Pick IDs.");return this._pickObjects[t]=e,new jH(this._pickObjects,t,z.fromRgba(t))};Il.prototype.isDestroyed=function(){return!1};Il.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];u(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),le(this)};Il._deprecationWarning=es;var bR=Il;function zb(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let o=e.colorRenderbuffers,r=e.colorTextures;if(u(o)!==u(r))throw new de("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(u(s)!==u(a))throw new de("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new ta({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new ta({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}zb.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};zb.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};zb.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),u(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};zb.prototype.isDestroyed=function(){return!1};zb.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),le(this)};var TR=zb;var Gc={RGBA4:ee.RGBA4,RGBA8:ee.RGBA8,RGBA16F:ee.RGBA16F,RGBA32F:ee.RGBA32F,RGB5_A1:ee.RGB5_A1,RGB565:ee.RGB565,DEPTH_COMPONENT16:ee.DEPTH_COMPONENT16,STENCIL_INDEX8:ee.STENCIL_INDEX8,DEPTH_STENCIL:ee.DEPTH_STENCIL,DEPTH24_STENCIL8:ee.DEPTH24_STENCIL8,validate:function(e){return e===Gc.RGBA4||e===Gc.RGBA8||e===Gc.RGBA16F||e===Gc.RGBA32F||e===Gc.RGB5_A1||e===Gc.RGB565||e===Gc.DEPTH_COMPONENT16||e===Gc.STENCIL_INDEX8||e===Gc.DEPTH_STENCIL||e===Gc.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ee.FLOAT?Gc.RGBA32F:e===ee.HALF_FLOAT_OES?Gc.RGBA16F:Gc.RGBA8}},Wc=Object.freeze(Gc);function aS(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumRenderbufferSize,o=y(e.format,Wc.RGBA4),r=u(e.width)?e.width:n.drawingBufferWidth,s=u(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(aS.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});aS.prototype._getRenderbuffer=function(){return this._renderbuffer};aS.prototype.isDestroyed=function(){return!1};aS.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),le(this)};var Ou=aS;function is(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(is.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});is.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=u(i)&&this._pixelDatatype!==i||u(o)&&this._pixelFormat!==o,c=n===1?u(this._framebuffer):u(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!u(this._colorTextures[0])};is.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,Ye.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,rt.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Pt({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:ln.NEAREST}),this._numSamples>1){let a=Wc.getColorFormat(o);this._colorRenderbuffers[s]=new Ou({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Pt({context:e,width:t,height:n,pixelFormat:rt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Ou({context:e,width:t,height:n,format:Wc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Ou({context:e,width:t,height:n,format:Wc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Pt({context:e,width:t,height:n,pixelFormat:rt.DEPTH_COMPONENT,pixelDatatype:Ye.UNSIGNED_INT,sampler:ln.NEAREST}):this._depthRenderbuffer=new Ou({context:e,width:t,height:n,format:Wc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new TR({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new ta({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};is.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};is.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};is.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};is.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};is.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};is.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};is.prototype.getDepthTexture=function(){return this._depthTexture};is.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};is.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};is.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};is.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};is.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};is.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};is.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};is.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};is.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e<t;++e){let n=this._colorTextures[e];this._createColorAttachments&&u(n)&&!n.isDestroyed()&&(this._colorTextures[e].destroy(),this._colorTextures[e]=void 0),u(n)&&n.isDestroyed()&&(this._colorTextures[e]=void 0);let i=this._colorRenderbuffers[e];this._createColorAttachments&&u(i)&&!i.isDestroyed()&&(this._colorRenderbuffers[e].destroy(),this._colorRenderbuffers[e]=void 0),u(i)&&i.isDestroyed()&&(this._colorRenderbuffers[e]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),u(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),u(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),u(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),u(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var di=is;var e0={VERTEX:0,FRAGMENT:1,BOTH:2};e0.includesVertexShader=function(e){return e===e0.VERTEX||e===e0.BOTH};e0.includesFragmentShader=function(e){return e===e0.FRAGMENT||e===e0.BOTH};var Ce=Object.freeze(e0);function qH(e){this.name=e,this.fields=[]}qH.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};qH.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var AR=qH;function YH(e){this.signature=e,this.body=[]}YH.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};YH.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var CR=YH;function ac(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(ac.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});ac.prototype.addDefine=function(e,t,n){n=y(n,Ce.BOTH);let i=e;u(t)&&(i+=` ${t.toString()}`),Ce.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};ac.prototype.addStruct=function(e,t,n){this._structs[e]=new AR(t),Ce.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};ac.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};ac.prototype.addFunction=function(e,t,n){this._functions[e]=new CR(t),Ce.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};ac.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};ac.prototype.addUniform=function(e,t,n){n=y(n,Ce.BOTH);let i=`uniform ${e} ${t};`;Ce.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),Ce.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};ac.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};ac.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=cwe(e),i};ac.prototype.addVarying=function(e,t){let n=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`out ${n}`),this._fragmentShaderParts.varyingLines.push(`in ${n}`)};ac.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};ac.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};ac.prototype.buildShaderProgram=function(e){let t=u(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=awe(this),i=lwe(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(`
- `),r=new ze({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(`
- `),a=new ze({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Kt.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};ac.prototype.clone=function(){return Ge(this,!0)};function awe(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function cwe(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function lwe(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var Hb=ac;function _s(e,t,n,i){let o=_s._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,l=o.length;for(let d=0;d<l;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],u(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=_s._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:_s._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}_s._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:y(o.index,i),enabled:y(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:y(o.componentDatatype,X.FLOAT),normalize:y(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:y(o.usage,Be.STATIC_DRAW)};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};_s._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};_s._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};_s.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];_s._resize(o,this._size),_s._appendWriters(this.writers,o)}XH(this)};_s._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(u(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var uwe=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];_s._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=uwe[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};_s.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=fwe(this,i)||t;if(t||!u(this.va)){XH(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=u(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let l=0;l<c;++l){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=l*(i.vertexSizeInBytes*a);_s._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ti({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(l!==c-1?a:this._size%a)})}}};function fwe(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=u(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=ut.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}_s._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};_s.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)dwe(n[i],e,t)};function dwe(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}_s.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function XH(e){let t=e.va;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}_s.prototype.isDestroyed=function(){return!1};_s.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return XH(this),le(this)};var p_=_s;function hwe(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[ve.createIfNeeded(t.positiveX).fetchImage(i),ve.createIfNeeded(t.negativeX).fetchImage(i),ve.createIfNeeded(t.positiveY).fetchImage(i),ve.createIfNeeded(t.negativeY).fetchImage(i),ve.createIfNeeded(t.positiveZ).fetchImage(i),ve.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new rc({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var ER=hwe;function __(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new pe,this.setValue(e)}Object.defineProperties(__.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});__.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};__.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=u(e),i=n&&typeof e.clone=="function",o=n&&typeof e.equals=="function";(!o||!e.equals(t))&&(this._hasClone=i,this._hasEquals=o,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};__.prototype.equals=function(e){return this===e||e instanceof __&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};__.prototype.valueOf=function(){return this._value};__.prototype.toString=function(){return String(this._value)};var Zn=__;function mwe(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];u(a)&&(a(),this[n]=void 0),r!==void 0&&(!u(r)||!u(r.getValue))&&u(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),u(r)&&u(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function pwe(e){return new Zn(e)}function _we(e,t,n){return mwe(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,pwe))}var ae=_we;function cS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(cS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),image:ae("image"),scale:ae("scale"),pixelOffset:ae("pixelOffset"),eyeOffset:ae("eyeOffset"),horizontalOrigin:ae("horizontalOrigin"),verticalOrigin:ae("verticalOrigin"),heightReference:ae("heightReference"),color:ae("color"),rotation:ae("rotation"),alignedAxis:ae("alignedAxis"),sizeInMeters:ae("sizeInMeters"),width:ae("width"),height:ae("height"),scaleByDistance:ae("scaleByDistance"),translucencyByDistance:ae("translucencyByDistance"),pixelOffsetScaleByDistance:ae("pixelOffsetScaleByDistance"),imageSubRegion:ae("imageSubRegion"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});cS.prototype.clone=function(e){return u(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e):new cS(this)};cS.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance)};var cc=cS;function t0(){this._array=[],this._hash={}}Object.defineProperties(t0.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});t0.prototype.contains=function(e){return u(this._hash[e])};t0.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};t0.prototype.get=function(e){return this._hash[e]};t0.prototype.remove=function(e){let t=this._hash[e],n=u(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};t0.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var xt=t0;function Pl(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Pl.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Pl.packedLength=2;Pl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Pl.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Pl),n.near=e[t++],n.far=e[t],n};Pl.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.far===t.far};Pl.clone=function(e,t){if(u(e))return u(t)||(t=new Pl),t.near=e.near,t.far=e.far,t};Pl.prototype.clone=function(e){return Pl.clone(this,e)};Pl.prototype.equals=function(e){return Pl.equals(this,e)};var wt=Pl;function Ru(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Ru.clone=function(e,t){if(u(e))return u(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Ru(e.near,e.nearValue,e.far,e.farValue)};Ru.packedLength=4;Ru.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Ru.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ru),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Ru.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Ru.prototype.clone=function(e){return Ru.clone(this,e)};Ru.prototype.equals=function(e){return Ru.equals(this,e)};var Ot=Ru;var gwe={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},We=Object.freeze(gwe);var ywe={CENTER:0,LEFT:1,RIGHT:-1},_i=Object.freeze(ywe);var xwe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Pn=Object.freeze(xwe);var bwe={DONE:0,PENDING:1,FAILED:2},at=Object.freeze(bwe);function Uf(){de.throwInstantiationError()}Object.defineProperties(Uf.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});Uf.prototype.getValue=de.throwInstantiationError;Uf.prototype.equals=de.throwInstantiationError;Uf.equals=function(e,t){return e===t||u(e)&&e.equals(t)};Uf.arrayEquals=function(e,t){if(e===t)return!0;if(!u(e)||!u(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!Uf.equals(e[i],t[i]))return!1;return!0};Uf.isConstant=function(e){return!u(e)||e.isConstant};Uf.getValueOrUndefined=function(e,t,n){return u(e)?e.getValue(t,n):void 0};Uf.getValueOrDefault=function(e,t,n,i){return u(e)?y(e.getValue(t,i),n):n};Uf.getValueOrClonedDefault=function(e,t,n,i){let o;return u(e)&&(o=e.getValue(t,i)),u(o)||(o=n.clone(o)),o};var j=Uf;var Twe=z.WHITE,Awe=h.ZERO,Cwe=We.NONE,Ewe=V.ZERO,Swe=1,wwe=0,vwe=h.ZERO,Dwe=_i.CENTER,Iwe=Pn.CENTER,Pwe=!1,Owe=new h,Rwe=new z,Mwe=new h,Lwe=new V,Nwe=new Ot,Fwe=new Ot,Bwe=new Ot,kwe=new qe,Uwe=new wt;function m$(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function g_(e,t){t.collectionChanged.addEventListener(g_.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}g_.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._billboard,c,l=r.billboard,f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=j.getValueOrUndefined(s._position,e,Owe),c=j.getValueOrUndefined(a._image,e),f=u(d)&&u(c)),!f){KH(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0),u(l)||(l=n.getBillboard(s),l.id=s,l.image=void 0,r.billboard=l),l.show=f,(!u(l.image)||r.textureValue!==c)&&(l.image=c,r.textureValue=c),l.position=d,l.color=j.getValueOrDefault(a._color,e,Twe,Rwe),l.eyeOffset=j.getValueOrDefault(a._eyeOffset,e,Awe,Mwe),l.heightReference=j.getValueOrDefault(a._heightReference,e,Cwe),l.pixelOffset=j.getValueOrDefault(a._pixelOffset,e,Ewe,Lwe),l.scale=j.getValueOrDefault(a._scale,e,Swe),l.rotation=j.getValueOrDefault(a._rotation,e,wwe),l.alignedAxis=j.getValueOrDefault(a._alignedAxis,e,vwe),l.horizontalOrigin=j.getValueOrDefault(a._horizontalOrigin,e,Dwe),l.verticalOrigin=j.getValueOrDefault(a._verticalOrigin,e,Iwe),l.width=j.getValueOrUndefined(a._width,e),l.height=j.getValueOrUndefined(a._height,e),l.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Nwe),l.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Fwe),l.pixelOffsetScaleByDistance=j.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,Bwe),l.sizeInMeters=j.getValueOrDefault(a._sizeInMeters,e,Pwe),l.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Uwe),l.disableDepthTestDistance=j.getValueOrUndefined(a._disableDepthTestDistance,e);let p=j.getValueOrUndefined(a._imageSubRegion,e,kwe);u(p)&&l.setImageSubRegion(l._imageId,p)}return!0};g_.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.billboard))return at.FAILED;let i=n.billboard;if(i.heightReference===We.NONE)t.center=h.clone(i.position,t.center);else{if(!u(i._clampedPosition))return at.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,at.DONE};g_.prototype.isDestroyed=function(){return!1};g_.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(g_.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return le(this)};g_.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],u(r._billboard)&&u(r._position)&&s.set(r.id,new m$(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._billboard)&&u(r._position)?s.contains(r.id)||s.set(r.id,new m$(r)):(KH(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],KH(s.get(r.id),r,a),s.remove(r.id)};function KH(e,t,n){u(e)&&(e.billboard=void 0,n.removeBillboard(t))}var SR=g_;function Vwe(e,t){this.start=y(e,0),this.stop=y(t,0)}var jc=Vwe;function dn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var QH=new h,JH=new h,e5=new h,t5=new h,n5=new h,i5=new h,o5=new h,Os=new h,r5=new h,s5=new h,a5=new h,c5=new h,zwe=4/3*P.PI;dn.fromPoints=function(e,t){if(u(t)||(t=new dn),!u(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],o5),i=h.clone(n,QH),o=h.clone(n,JH),r=h.clone(n,e5),s=h.clone(n,t5),a=h.clone(n,n5),c=h.clone(n,i5),l=e.length,f;for(f=1;f<l;f++){h.clone(e[f],n);let R=n.x,N=n.y,F=n.z;R<i.x&&h.clone(n,i),R>s.x&&h.clone(n,s),N<o.y&&h.clone(n,o),N>a.y&&h.clone(n,a),F<r.z&&h.clone(n,r),F>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,Os)),p=h.magnitudeSquared(h.subtract(a,o,Os)),g=h.magnitudeSquared(h.subtract(c,r,Os)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=r5;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let A=h.magnitudeSquared(h.subtract(x,T,Os)),C=Math.sqrt(A),S=s5;S.x=i.x,S.y=o.y,S.z=r.z;let w=a5;w.x=s.x,w.y=a.y,w.z=c.z;let D=h.midpoint(S,w,c5),O=0;for(f=0;f<l;f++){h.clone(e[f],n);let R=h.magnitude(h.subtract(n,D,Os));R>O&&(O=R);let N=h.magnitudeSquared(h.subtract(n,T,Os));if(N>A){let F=Math.sqrt(N);C=(C+F)*.5,A=C*C;let _=F-C;T.x=(C*T.x+_*n.x)/F,T.y=(C*T.y+_*n.y)/F,T.z=(C*T.z+_*n.z)/F}}return C<O?(h.clone(T,t.center),t.radius=C):(h.clone(D,t.center),t.radius=O),t};var Hwe=new Ii,Gwe=new h,Wwe=new h,ZH=new fe,$H=new fe;dn.fromRectangle2D=function(e,t,n){return dn.fromRectangleWithHeights2D(e,t,0,0,n)};dn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(u(o)||(o=new dn),!u(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;t=y(t,Hwe),ce.southwest(e,ZH),ZH.height=n,ce.northeast(e,$H),$H.height=i;let r=t.project(ZH,Gwe),s=t.project($H,Wwe),a=s.x-r.x,c=s.y-r.y,l=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+l*l)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+l*.5,o};var jwe=[];dn.fromRectangle3D=function(e,t,n,i){if(t=y(t,ie.WGS84),n=y(n,0),u(i)||(i=new dn),!u(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=ce.subsample(e,t,n,jwe);return dn.fromPoints(o,i)};dn.fromVertices=function(e,t,n,i){if(u(i)||(i=new dn),!u(e)||e.length===0)return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;t=y(t,h.ZERO),n=y(n,3);let o=o5;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,QH),s=h.clone(o,JH),a=h.clone(o,e5),c=h.clone(o,t5),l=h.clone(o,n5),f=h.clone(o,i5),d=e.length,p;for(p=0;p<d;p+=n){let F=e[p]+t.x,_=e[p+1]+t.y,E=e[p+2]+t.z;o.x=F,o.y=_,o.z=E,F<r.x&&h.clone(o,r),F>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>l.y&&h.clone(o,l),E<a.z&&h.clone(o,a),E>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,Os)),m=h.magnitudeSquared(h.subtract(l,s,Os)),x=h.magnitudeSquared(h.subtract(f,a,Os)),b=r,T=c,A=g;m>A&&(A=m,b=s,T=l),x>A&&(A=x,b=a,T=f);let C=r5;C.x=(b.x+T.x)*.5,C.y=(b.y+T.y)*.5,C.z=(b.z+T.z)*.5;let S=h.magnitudeSquared(h.subtract(T,C,Os)),w=Math.sqrt(S),D=s5;D.x=r.x,D.y=s.y,D.z=a.z;let O=a5;O.x=c.x,O.y=l.y,O.z=f.z;let R=h.midpoint(D,O,c5),N=0;for(p=0;p<d;p+=n){o.x=e[p]+t.x,o.y=e[p+1]+t.y,o.z=e[p+2]+t.z;let F=h.magnitude(h.subtract(o,R,Os));F>N&&(N=F);let _=h.magnitudeSquared(h.subtract(o,C,Os));if(_>S){let E=Math.sqrt(_);w=(w+E)*.5,S=w*w;let v=E-w;C.x=(w*C.x+v*o.x)/E,C.y=(w*C.y+v*o.y)/E,C.z=(w*C.z+v*o.z)/E}}return w<N?(h.clone(C,i.center),i.radius=w):(h.clone(R,i.center),i.radius=N),i};dn.fromEncodedCartesianVertices=function(e,t,n){if(u(n)||(n=new dn),!u(e)||!u(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=o5;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,QH),r=h.clone(i,JH),s=h.clone(i,e5),a=h.clone(i,t5),c=h.clone(i,n5),l=h.clone(i,i5),f=e.length,d;for(d=0;d<f;d+=3){let N=e[d]+t[d],F=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=N,i.y=F,i.z=_,N<o.x&&h.clone(i,o),N>a.x&&h.clone(i,a),F<r.y&&h.clone(i,r),F>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>l.z&&h.clone(i,l)}let p=h.magnitudeSquared(h.subtract(a,o,Os)),g=h.magnitudeSquared(h.subtract(c,r,Os)),m=h.magnitudeSquared(h.subtract(l,s,Os)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=l);let A=r5;A.x=(x.x+b.x)*.5,A.y=(x.y+b.y)*.5,A.z=(x.z+b.z)*.5;let C=h.magnitudeSquared(h.subtract(b,A,Os)),S=Math.sqrt(C),w=s5;w.x=o.x,w.y=r.y,w.z=s.z;let D=a5;D.x=a.x,D.y=c.y,D.z=l.z;let O=h.midpoint(w,D,c5),R=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let N=h.magnitude(h.subtract(i,O,Os));N>R&&(R=N);let F=h.magnitudeSquared(h.subtract(i,A,Os));if(F>C){let _=Math.sqrt(F);S=(S+_)*.5,C=S*S;let E=_-S;A.x=(S*A.x+E*i.x)/_,A.y=(S*A.y+E*i.y)/_,A.z=(S*A.z+E*i.z)/_}}return S<R?(h.clone(A,n.center),n.radius=S):(h.clone(O,n.center),n.radius=R),n};dn.fromCornerPoints=function(e,t,n){u(n)||(n=new dn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};dn.fromEllipsoid=function(e,t){return u(t)||(t=new dn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var qwe=new h;dn.fromBoundingSpheres=function(e,t){if(u(t)||(t=new dn),!u(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return dn.clone(e[0],t);if(n===2)return dn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=dn.fromPoints(i,t);let r=t.center,s=t.radius;for(o=0;o<n;o++){let a=e[o];s=Math.max(s,h.distance(r,a.center,qwe)+a.radius)}return t.radius=s,t};var Ywe=new h,Xwe=new h,Kwe=new h;dn.fromOrientedBoundingBox=function(e,t){u(t)||(t=new dn);let n=e.halfAxes,i=$.getColumn(n,0,Ywe),o=$.getColumn(n,1,Xwe),r=$.getColumn(n,2,Kwe);return h.add(i,o,i),h.add(i,r,i),t.center=h.clone(e.center,t.center),t.radius=h.magnitude(i),t};var Zwe=new h,$we=new h;dn.fromTransformation=function(e,t){u(t)||(t=new dn);let n=L.getTranslation(e,Zwe),i=L.getScale(e,$we),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};dn.clone=function(e,t){if(u(e))return u(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new dn(e.center,e.radius)};dn.packedLength=4;dn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};dn.unpack=function(e,t,n){t=y(t,0),u(n)||(n=new dn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var Qwe=new h,Jwe=new h;dn.union=function(e,t,n){u(n)||(n=new dn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,Qwe),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let l=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+l)/c,Jwe);return h.add(f,i,f),h.clone(f,n.center),n.radius=l,n};var eve=new h;dn.expand=function(e,t,n){n=dn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,eve));return i>n.radius&&(n.radius=i),n};dn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?Zt.OUTSIDE:r<i?Zt.INTERSECTING:Zt.INSIDE};dn.transform=function(e,t,n){return u(n)||(n=new dn),n.center=L.multiplyByPoint(t,e.center,n.center),n.radius=L.getMaximumScale(t)*e.radius,n};var tve=new h;dn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,tve),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};dn.transformWithoutScale=function(e,t,n){return u(n)||(n=new dn),n.center=L.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var nve=new h;dn.computePlaneDistances=function(e,t,n,i){u(i)||(i=new jc);let o=h.subtract(e.center,t,nve),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var p$=new h,ive=new h,ove=new h,rve=new h,sve=new h,ave=new fe,_$=new Array(8);for(let e=0;e<8;++e)_$[e]=new h;var cve=new Ii;dn.projectTo2D=function(e,t,n){t=y(t,cve);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,p$):s=i.geodeticSurfaceNormal(o,p$);let a=h.cross(h.UNIT_Z,s,ive);h.normalize(a,a);let c=h.cross(s,a,ove);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let l=h.negate(c,sve),f=h.negate(a,rve),d=_$,p=d[0];h.add(s,c,p),h.add(p,a,p),p=d[1],h.add(s,c,p),h.add(p,f,p),p=d[2],h.add(s,l,p),h.add(p,f,p),p=d[3],h.add(s,l,p),h.add(p,a,p),h.negate(s,s),p=d[4],h.add(s,c,p),h.add(p,a,p),p=d[5],h.add(s,c,p),h.add(p,f,p),p=d[6],h.add(s,l,p),h.add(p,f,p),p=d[7],h.add(s,l,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let A=d[T];h.add(o,A,A);let C=i.cartesianToCartographic(A,ave);t.project(C,A)}n=dn.fromPoints(d,n),o=n.center;let m=o.x,x=o.y,b=o.z;return o.x=b,o.y=m,o.z=x,n};dn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};dn.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};dn.prototype.intersectPlane=function(e){return dn.intersectPlane(this,e)};dn.prototype.distanceSquaredTo=function(e){return dn.distanceSquaredTo(this,e)};dn.prototype.computePlaneDistances=function(e,t,n){return dn.computePlaneDistances(this,e,t,n)};dn.prototype.isOccluded=function(e){return dn.isOccluded(this,e)};dn.prototype.equals=function(e){return dn.equals(this,e)};dn.prototype.clone=function(e){return dn.clone(this,e)};dn.prototype.volume=function(){let e=this.radius;return zwe*e*e*e};var se=dn;function lve(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var hn=lve;var uve={NONE:0,TOP:1,ALL:2},nn=Object.freeze(uve);function Vr(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}Vr.POSITION_ONLY=Object.freeze(new Vr({position:!0}));Vr.POSITION_AND_NORMAL=Object.freeze(new Vr({position:!0,normal:!0}));Vr.POSITION_NORMAL_AND_ST=Object.freeze(new Vr({position:!0,normal:!0,st:!0}));Vr.POSITION_AND_ST=Object.freeze(new Vr({position:!0,st:!0}));Vr.POSITION_AND_COLOR=Object.freeze(new Vr({position:!0,color:!0}));Vr.ALL=Object.freeze(new Vr({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));Vr.DEFAULT=Vr.POSITION_NORMAL_AND_ST;Vr.packedLength=6;Vr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};Vr.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Vr),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};Vr.clone=function(e,t){if(u(e))return u(t)||(t=new Vr),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Pe=Vr;var fve=new h;function Ol(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Pe.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}Ol.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new Ol({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};Ol.fromAxisAlignedBoundingBox=function(e){return new Ol({minimum:e.minimum,maximum:e.maximum})};Ol.packedLength=2*h.packedLength+Pe.packedLength+1;Ol.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Pe.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Pe.packedLength]=y(e._offsetAttribute,-1),t};var y$=new h,x$=new h,b$=new Pe,g$={minimum:y$,maximum:x$,vertexFormat:b$,offsetAttribute:void 0};Ol.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,y$),o=h.unpack(e,t+h.packedLength,x$),r=Pe.unpack(e,t+2*h.packedLength,b$),s=e[t+2*h.packedLength+Pe.packedLength];return u(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(g$.offsetAttribute=s===-1?void 0:s,new Ol(g$))};Ol.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let o=new hn,r,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let l=new Float32Array(72);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=0,l[5]=1,l[6]=0,l[7]=0,l[8]=1,l[9]=0,l[10]=0,l[11]=1,l[12]=0,l[13]=0,l[14]=-1,l[15]=0,l[16]=0,l[17]=-1,l[18]=0,l[19]=0,l[20]=-1,l[21]=0,l[22]=0,l[23]=-1,l[24]=1,l[25]=0,l[26]=0,l[27]=1,l[28]=0,l[29]=0,l[30]=1,l[31]=0,l[32]=0,l[33]=1,l[34]=0,l[35]=0,l[36]=-1,l[37]=0,l[38]=0,l[39]=-1,l[40]=0,l[41]=0,l[42]=-1,l[43]=0,l[44]=0,l[45]=-1,l[46]=0,l[47]=0,l[48]=0,l[49]=1,l[50]=0,l[51]=0,l[52]=1,l[53]=0,l[54]=0,l[55]=1,l[56]=0,l[57]=0,l[58]=1,l[59]=0,l[60]=0,l[61]=-1,l[62]=0,l[63]=0,l[64]=-1,l[65]=0,l[66]=0,l[67]=-1,l[68]=0,l[69]=0,l[70]=-1,l[71]=0,o.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.st){let l=new Float32Array(48);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=1,l[5]=1,l[6]=0,l[7]=1,l[8]=1,l[9]=0,l[10]=0,l[11]=0,l[12]=0,l[13]=1,l[14]=1,l[15]=1,l[16]=0,l[17]=0,l[18]=1,l[19]=0,l[20]=1,l[21]=1,l[22]=0,l[23]=1,l[24]=1,l[25]=0,l[26]=0,l[27]=0,l[28]=0,l[29]=1,l[30]=1,l[31]=1,l[32]=1,l[33]=0,l[34]=0,l[35]=0,l[36]=0,l[37]=1,l[38]=1,l[39]=1,l[40]=0,l[41]=0,l[42]=1,l[43]=0,l[44]=1,l[45]=1,l[46]=0,l[47]=1,o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:l})}if(i.tangent){let l=new Float32Array(72);l[0]=1,l[1]=0,l[2]=0,l[3]=1,l[4]=0,l[5]=0,l[6]=1,l[7]=0,l[8]=0,l[9]=1,l[10]=0,l[11]=0,l[12]=-1,l[13]=0,l[14]=0,l[15]=-1,l[16]=0,l[17]=0,l[18]=-1,l[19]=0,l[20]=0,l[21]=-1,l[22]=0,l[23]=0,l[24]=0,l[25]=1,l[26]=0,l[27]=0,l[28]=1,l[29]=0,l[30]=0,l[31]=1,l[32]=0,l[33]=0,l[34]=1,l[35]=0,l[36]=0,l[37]=-1,l[38]=0,l[39]=0,l[40]=-1,l[41]=0,l[42]=0,l[43]=-1,l[44]=0,l[45]=0,l[46]=-1,l[47]=0,l[48]=-1,l[49]=0,l[50]=0,l[51]=-1,l[52]=0,l[53]=0,l[54]=-1,l[55]=0,l[56]=0,l[57]=-1,l[58]=0,l[59]=0,l[60]=1,l[61]=0,l[62]=0,l[63]=1,l[64]=0,l[65]=0,l[66]=1,l[67]=0,l[68]=0,l[69]=1,l[70]=0,l[71]=0,o.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.bitangent){let l=new Float32Array(72);l[0]=0,l[1]=1,l[2]=0,l[3]=0,l[4]=1,l[5]=0,l[6]=0,l[7]=1,l[8]=0,l[9]=0,l[10]=1,l[11]=0,l[12]=0,l[13]=1,l[14]=0,l[15]=0,l[16]=1,l[17]=0,l[18]=0,l[19]=1,l[20]=0,l[21]=0,l[22]=1,l[23]=0,l[24]=0,l[25]=0,l[26]=1,l[27]=0,l[28]=0,l[29]=1,l[30]=0,l[31]=0,l[32]=1,l[33]=0,l[34]=0,l[35]=1,l[36]=0,l[37]=0,l[38]=1,l[39]=0,l[40]=0,l[41]=1,l[42]=0,l[43]=0,l[44]=1,l[45]=0,l[46]=0,l[47]=1,l[48]=0,l[49]=0,l[50]=1,l[51]=0,l[52]=0,l[53]=1,l[54]=0,l[55]=0,l[56]=1,l[57]=0,l[58]=0,l[59]=1,l[60]=0,l[61]=0,l[62]=1,l[63]=0,l[64]=0,l[65]=1,l[66]=0,l[67]=0,l[68]=1,l[69]=0,l[70]=0,l[71]=1,o.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}r=new Uint16Array(6*2*3),r[0]=0,r[1]=1,r[2]=2,r[3]=0,r[4]=2,r[5]=3,r[6]=4+2,r[7]=4+1,r[8]=4+0,r[9]=4+3,r[10]=4+2,r[11]=4+0,r[12]=8+0,r[13]=8+1,r[14]=8+2,r[15]=8+0,r[16]=8+2,r[17]=8+3,r[18]=12+2,r[19]=12+1,r[20]=12+0,r[21]=12+3,r[22]=12+2,r[23]=12+0,r[24]=16+2,r[25]=16+1,r[26]=16+0,r[27]=16+3,r[28]=16+2,r[29]=16+0,r[30]=20+0,r[31]=20+1,r[32]=20+2,r[33]=20+0,r[34]=20+2,r[35]=20+3}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),r=new Uint16Array(6*2*3),r[0]=4,r[1]=5,r[2]=6,r[3]=4,r[4]=6,r[5]=7,r[6]=1,r[7]=0,r[8]=3,r[9]=1,r[10]=3,r[11]=2,r[12]=1,r[13]=6,r[14]=5,r[15]=1,r[16]=2,r[17]=6,r[18]=2,r[19]=3,r[20]=7,r[21]=2,r[22]=7,r[23]=6,r[24]=3,r[25]=0,r[26]=4,r[27]=3,r[28]=4,r[29]=7,r[30]=0,r[31]=1,r[32]=5,r[33]=0,r[34]=5,r[35]=4;let a=h.subtract(n,t,fve),c=h.magnitude(a)*.5;if(u(e._offsetAttribute)){let l=s.length,f=e._offsetAttribute===nn.NONE?0:1,d=new Uint8Array(l/3).fill(f);o.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new ct({attributes:o,indices:r,primitiveType:Le.TRIANGLES,boundingSphere:new se(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var l5;Ol.getUnitBox=function(){return u(l5)||(l5=Ol.createGeometry(Ol.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),l5};var Rl=Ol;var dve=new h;function ah(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}ah.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new ah({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};ah.fromAxisAlignedBoundingBox=function(e){return new ah({minimum:e.minimum,maximum:e.maximum})};ah.packedLength=2*h.packedLength+1;ah.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var A$=new h,C$=new h,T$={minimum:A$,maximum:C$,offsetAttribute:void 0};ah.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,A$),o=h.unpack(e,t+h.packedLength,C$),r=e[t+h.packedLength*2];return u(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(T$.offsetAttribute=r===-1?void 0:r,new ah(T$))};ah.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new hn,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=h.subtract(n,t,dve),a=h.magnitude(s)*.5;if(u(e._offsetAttribute)){let c=r.length,l=e._offsetAttribute===nn.NONE?0:1,f=new Uint8Array(c/3).fill(l);i.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new ct({attributes:i,indices:o,primitiveType:Le.LINES,boundingSphere:new se(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var ch=ah;function Gb(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([z.floatToByte(e),z.floatToByte(t),z.floatToByte(n),z.floatToByte(i)])}Object.defineProperties(Gb.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});Gb.fromColor=function(e){return new Gb(e.red,e.green,e.blue,e.alpha)};Gb.toValue=function(e,t){return u(t)?e.toBytes(t):new Uint8Array(e.toBytes())};Gb.equals=function(e,t){return e===t||u(e)&&u(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var kt=Gb;function lS(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(lS.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});lS.fromDistanceDisplayCondition=function(e){return new lS(e.near,e.far)};lS.toValue=function(e,t){return u(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var kn=lS;function hve(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var yt=hve;function Fo(e){e=y(e,y.EMPTY_OBJECT),this.start=u(e.start)?J.clone(e.start):new J,this.stop=u(e.stop)?J.clone(e.stop):new J,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Fo.prototype,{isEmpty:{get:function(){let e=J.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var Wb={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Fo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new de("options.iso8601 is an invalid ISO 8601 interval.");let i=J.fromIso8601(n[0]),o=J.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return u(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(Wb.start=i,Wb.stop=o,Wb.isStartIncluded=r,Wb.isStopIncluded=s,Wb.data=a,new Fo(Wb))};Fo.toIso8601=function(e,t){return`${J.toIso8601(e.start,t)}/${J.toIso8601(e.stop,t)}`};Fo.clone=function(e,t){if(u(e))return u(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Fo(e)};Fo.equals=function(e,t,n){return e===t||u(e)&&u(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&J.equals(e.start,t.start)&&J.equals(e.stop,t.stop)&&(e.data===t.data||u(n)&&n(e.data,t.data)))};Fo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||u(e)&&u(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&J.equalsEpsilon(e.start,t.start,n)&&J.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||u(i)&&i(e.data,t.data)))};Fo.intersect=function(e,t,n,i){if(!u(t))return Fo.clone(Fo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=J.greaterThanOrEquals(s,o)&&J.greaterThanOrEquals(r,s),l=!c&&J.lessThanOrEquals(s,o)&&J.lessThanOrEquals(o,a);if(!c&&!l)return Fo.clone(Fo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=J.lessThan(r,a);return u(n)||(n=new Fo),n.start=c?s:o,n.isStartIncluded=f&&p||!J.equals(s,o)&&(c&&p||l&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!J.equals(a,r)&&g,n.data=u(i)?i(e.data,t.data):e.data,n};Fo.contains=function(e,t){if(e.isEmpty)return!1;let n=J.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=J.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Fo.prototype.clone=function(e){return Fo.clone(this,e)};Fo.prototype.equals=function(e,t){return Fo.equals(this,e,t)};Fo.prototype.equalsEpsilon=function(e,t,n){return Fo.equalsEpsilon(this,e,t,n)};Fo.prototype.toString=function(){return Fo.toIso8601(this)};Fo.EMPTY=Object.freeze(new Fo({start:new J,stop:new J,isStartIncluded:!1,isStopIncluded:!1}));var An=Fo;var E$=Object.freeze(J.fromIso8601("0000-01-01T00:00:00Z")),S$=Object.freeze(J.fromIso8601("9999-12-31T24:00:00Z")),mve=Object.freeze(new An({start:E$,stop:S$})),pve={MINIMUM_VALUE:E$,MAXIMUM_VALUE:S$,MAXIMUM_INTERVAL:mve},He=pve;function uS(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(uS.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});uS.fromCartesian3=function(e){return new uS(e.x,e.y,e.z)};uS.toValue=function(e,t){return u(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Ki=uS;function wR(e){e=y(e,!0),this.value=wR.toValue(e)}Object.defineProperties(wR.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});wR.toValue=function(e,t){return u(t)?(t[0]=e,t):new Uint8Array([e])};var _n=wR;var vR=`in vec3 v_positionEC;
- in vec3 v_normalEC;
- in vec3 v_tangentEC;
- in vec3 v_bitangentEC;
- in vec2 v_st;
- void main()
- {
- vec3 positionToEyeEC = -v_positionEC;
- mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC);
- vec3 normalEC = normalize(v_normalEC);
- #ifdef FACE_FORWARD
- normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
- #endif
- czm_materialInput materialInput;
- materialInput.normalEC = normalEC;
- materialInput.tangentToEyeMatrix = tangentToEyeMatrix;
- materialInput.positionToEyeEC = positionToEyeEC;
- materialInput.st = v_st;
- czm_material material = czm_getMaterial(materialInput);
- #ifdef FLAT
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #else
- out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
- #endif
- }
- `;var DR=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 normal;
- in vec3 tangent;
- in vec3 bitangent;
- in vec2 st;
- in float batchId;
- out vec3 v_positionEC;
- out vec3 v_normalEC;
- out vec3 v_tangentEC;
- out vec3 v_bitangentEC;
- out vec2 v_st;
- void main()
- {
- vec4 p = czm_computePosition();
- v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
- v_normalEC = czm_normal * normal; // normal in eye coordinates
- v_tangentEC = czm_normal * tangent; // tangent in eye coordinates
- v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates
- v_st = st;
- gl_Position = czm_modelViewProjectionRelativeToEye * p;
- }
- `;var IR=`in vec3 v_positionEC;
- in vec3 v_normalEC;
- void main()
- {
- vec3 positionToEyeEC = -v_positionEC;
- vec3 normalEC = normalize(v_normalEC);
- #ifdef FACE_FORWARD
- normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
- #endif
- czm_materialInput materialInput;
- materialInput.normalEC = normalEC;
- materialInput.positionToEyeEC = positionToEyeEC;
- czm_material material = czm_getMaterial(materialInput);
- #ifdef FLAT
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #else
- out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
- #endif
- }
- `;var PR=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 normal;
- in float batchId;
- out vec3 v_positionEC;
- out vec3 v_normalEC;
- void main()
- {
- vec4 p = czm_computePosition();
- v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
- v_normalEC = czm_normal * normal; // normal in eye coordinates
- gl_Position = czm_modelViewProjectionRelativeToEye * p;
- }
- `;var OR=`in vec3 v_positionEC;
- in vec3 v_normalEC;
- in vec2 v_st;
- void main()
- {
- vec3 positionToEyeEC = -v_positionEC;
- vec3 normalEC = normalize(v_normalEC);
- #ifdef FACE_FORWARD
- normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
- #endif
- czm_materialInput materialInput;
- materialInput.normalEC = normalEC;
- materialInput.positionToEyeEC = positionToEyeEC;
- materialInput.st = v_st;
- czm_material material = czm_getMaterial(materialInput);
- #ifdef FLAT
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #else
- out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
- #endif
- }
- `;var RR=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 normal;
- in vec2 st;
- in float batchId;
- out vec3 v_positionEC;
- out vec3 v_normalEC;
- out vec2 v_st;
- void main()
- {
- vec4 p = czm_computePosition();
- v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
- v_normalEC = czm_normal * normal; // normal in eye coordinates
- v_st = st;
- gl_Position = czm_modelViewProjectionRelativeToEye * p;
- }
- `;var _ve={ADD:ee.FUNC_ADD,SUBTRACT:ee.FUNC_SUBTRACT,REVERSE_SUBTRACT:ee.FUNC_REVERSE_SUBTRACT,MIN:ee.MIN,MAX:ee.MAX},va=Object.freeze(_ve);var gve={ZERO:ee.ZERO,ONE:ee.ONE,SOURCE_COLOR:ee.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:ee.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:ee.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:ee.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:ee.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:ee.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:ee.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:ee.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:ee.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:ee.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:ee.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:ee.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:ee.SRC_ALPHA_SATURATE},bo=Object.freeze(gve);var yve={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.SOURCE_ALPHA,functionSourceAlpha:bo.ONE,functionDestinationRgb:bo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:bo.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.ONE,functionSourceAlpha:bo.ONE,functionDestinationRgb:bo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:bo.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.SOURCE_ALPHA,functionSourceAlpha:bo.ONE,functionDestinationRgb:bo.ONE,functionDestinationAlpha:bo.ONE})},un=Object.freeze(yve);var xve={FRONT:ee.FRONT,BACK:ee.BACK,FRONT_AND_BACK:ee.FRONT_AND_BACK},gi=Object.freeze(xve);function jb(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(jb.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});jb.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),u(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(`
- `)};jb.prototype.isTranslucent=function(){return u(this.material)&&this.material.isTranslucent()||!u(this.material)&&this.translucent};jb.prototype.getRenderState=function(){let e=this.isTranslucent(),t=Ge(this.renderState,!1);return e?(t.depthMask=!1,t.blending=un.ALPHA_BLEND):t.depthMask=!0,t};jb.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=un.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:gi.BACK}),u(n)&&(i=gt(n,i,!0)),i};var eo=jb;var MR=`uniform sampler2D image;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5));
- rampColor = czm_gammaCorrect(rampColor);
- material.diffuse = rampColor.rgb;
- material.alpha = rampColor.a;
- return material;
- }
- `;var LR=`uniform sampler2D image;
- uniform float strength;
- uniform vec2 repeat;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- vec2 centerPixel = fract(repeat * st);
- float centerBump = texture(image, centerPixel).channel;
- float imageWidth = float(imageDimensions.x);
- vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0)));
- float rightBump = texture(image, rightPixel).channel;
- float imageHeight = float(imageDimensions.y);
- vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight)));
- float topBump = texture(image, leftPixel).channel;
- vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0)));
- vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;
- material.normal = normalEC;
- material.diffuse = vec3(0.01);
- return material;
- }
- `;var NR=`uniform vec4 lightColor;
- uniform vec4 darkColor;
- uniform vec2 repeat;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights
- float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0
- // Find the distance from the closest separator (region between two colors)
- float scaledWidth = fract(repeat.s * st.s);
- scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));
- float scaledHeight = fract(repeat.t * st.t);
- scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));
- float value = min(scaledWidth, scaledHeight);
- vec4 currentColor = mix(lightColor, darkColor, b);
- vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03);
- color = czm_gammaCorrect(color);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- return material;
- }
- `;var FR=`uniform vec4 lightColor;
- uniform vec4 darkColor;
- uniform vec2 repeat;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights
- float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0
- vec4 color = mix(lightColor, darkColor, b);
- color = czm_gammaCorrect(color);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- return material;
- }
- `;var BR=`uniform sampler2D heights;
- uniform sampler2D colors;
- // This material expects heights to be sorted from lowest to highest.
- float getHeight(int idx, float invTexSize)
- {
- vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5);
- #ifdef OES_texture_float
- return texture(heights, uv).x;
- #else
- return czm_unpackFloat(texture(heights, uv));
- #endif
- }
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- float height = materialInput.height;
- float invTexSize = 1.0 / float(heightsDimensions.x);
- float minHeight = getHeight(0, invTexSize);
- float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize);
- // early-out when outside the height range
- if (height < minHeight || height > maxHeight) {
- material.diffuse = vec3(0.0);
- material.alpha = 0.0;
- return material;
- }
- // Binary search to find heights above and below.
- int idxBelow = 0;
- int idxAbove = heightsDimensions.x;
- float heightBelow = minHeight;
- float heightAbove = maxHeight;
- // while loop not allowed, so use for loop with max iterations.
- // maxIterations of 16 supports a texture size up to 65536 (2^16).
- const int maxIterations = 16;
- for (int i = 0; i < maxIterations; i++) {
- if (idxBelow >= idxAbove - 1) {
- break;
- }
- int idxMid = (idxBelow + idxAbove) / 2;
- float heightTex = getHeight(idxMid, invTexSize);
- if (height > heightTex) {
- idxBelow = idxMid;
- heightBelow = heightTex;
- } else {
- idxAbove = idxMid;
- heightAbove = heightTex;
- }
- }
- float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow);
- vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5);
- vec4 color = texture(colors, colorUv);
- // undo preumultiplied alpha
- if (color.a > 0.0)
- {
- color.rgb /= color.a;
- }
-
- color.rgb = czm_gammaCorrect(color.rgb);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- return material;
- }
- `;var kR=`uniform vec4 color;
- uniform float spacing;
- uniform float width;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- float distanceToContour = mod(materialInput.height, spacing);
- #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
- float dxc = abs(dFdx(materialInput.height));
- float dyc = abs(dFdy(materialInput.height));
- float dF = max(dxc, dyc) * czm_pixelRatio * width;
- float alpha = (distanceToContour < dF) ? 1.0 : 0.0;
- #else
- // If no derivatives available (IE 10?), use pixel ratio
- float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0;
- #endif
- vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a));
- material.diffuse = outColor.rgb;
- material.alpha = outColor.a;
- return material;
- }
- `;var UR=`uniform sampler2D image;
- uniform float minimumHeight;
- uniform float maximumHeight;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0);
- vec4 rampColor = texture(image, vec2(scaledHeight, 0.5));
- rampColor = czm_gammaCorrect(rampColor);
- material.diffuse = rampColor.rgb;
- material.alpha = rampColor.a;
- return material;
- }
- `;var VR=`uniform vec4 fadeInColor;
- uniform vec4 fadeOutColor;
- uniform float maximumDistance;
- uniform bool repeat;
- uniform vec2 fadeDirection;
- uniform vec2 time;
- float getTime(float t, float coord)
- {
- float scalar = 1.0 / maximumDistance;
- float q = distance(t, coord) * scalar;
- if (repeat)
- {
- float r = distance(t, coord + 1.0) * scalar;
- float s = distance(t, coord - 1.0) * scalar;
- q = min(min(r, s), q);
- }
- return clamp(q, 0.0, 1.0);
- }
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- float s = getTime(time.x, st.s) * fadeDirection.s;
- float t = getTime(time.y, st.t) * fadeDirection.t;
- float u = length(vec2(s, t));
- vec4 color = mix(fadeInColor, fadeOutColor, u);
- color = czm_gammaCorrect(color);
- material.emission = color.rgb;
- material.alpha = color.a;
- return material;
- }
- `;var zR=`uniform vec4 color;
- uniform float cellAlpha;
- uniform vec2 lineCount;
- uniform vec2 lineThickness;
- uniform vec2 lineOffset;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- float scaledWidth = fract(lineCount.s * st.s - lineOffset.s);
- scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));
- float scaledHeight = fract(lineCount.t * st.t - lineOffset.t);
- scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));
- float value;
- // Fuzz Factor - Controls blurriness of lines
- #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
- const float fuzz = 1.2;
- vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0;
- // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13.
- vec2 dx = abs(dFdx(st));
- vec2 dy = abs(dFdy(st));
- vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount;
- value = min(
- smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth),
- smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight));
- #else
- // If no derivatives available (IE 10?), revert to view-dependent fuzz
- const float fuzz = 0.05;
- vec2 range = 0.5 - (lineThickness * 0.05);
- value = min(
- 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth),
- 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight));
- #endif
- // Edges taken from RimLightingMaterial.glsl
- // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html
- float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)));
- float sRim = smoothstep(0.8, 1.0, dRim);
- value *= (1.0 - sRim);
- vec4 halfColor;
- halfColor.rgb = color.rgb * 0.5;
- halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value));
- halfColor = czm_gammaCorrect(halfColor);
- material.diffuse = halfColor.rgb;
- material.emission = halfColor.rgb;
- material.alpha = halfColor.a;
- return material;
- }
- `;var HR=`uniform sampler2D image;
- uniform float strength;
- uniform vec2 repeat;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
-
- vec4 textureValue = texture(image, fract(repeat * materialInput.st));
- vec3 normalTangentSpace = textureValue.channels;
- normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0;
- normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0);
- normalTangentSpace = normalize(normalTangentSpace);
- vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;
-
- material.normal = normalEC;
-
- return material;
- }
- `;var GR=`uniform vec4 color;
- float getPointOnLine(vec2 p0, vec2 p1, float x)
- {
- float slope = (p0.y - p1.y) / (p0.x - p1.x);
- return slope * (x - p0.x) + p0.y;
- }
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
- float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio;
- #else
- // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head
- float base = 0.975;
- #endif
- vec2 center = vec2(1.0, 0.5);
- float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s);
- float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s);
- float halfWidth = 0.15;
- float s = step(0.5 - halfWidth, st.t);
- s *= 1.0 - step(0.5 + halfWidth, st.t);
- s *= 1.0 - step(base, st.s);
- float t = step(base, materialInput.st.s);
- t *= 1.0 - step(ptOnUpperLine, st.t);
- t *= step(ptOnLowerLine, st.t);
- // Find the distance from the closest separator (region between two colors)
- float dist;
- if (st.s < base)
- {
- float d1 = abs(st.t - (0.5 - halfWidth));
- float d2 = abs(st.t - (0.5 + halfWidth));
- dist = min(d1, d2);
- }
- else
- {
- float d1 = czm_infinity;
- if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth)
- {
- d1 = abs(st.s - base);
- }
- float d2 = abs(st.t - ptOnUpperLine);
- float d3 = abs(st.t - ptOnLowerLine);
- dist = min(min(d1, d2), d3);
- }
- vec4 outsideColor = vec4(0.0);
- vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0));
- vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist);
- outColor = czm_gammaCorrect(outColor);
- material.diffuse = outColor.rgb;
- material.alpha = outColor.a;
- return material;
- }
- `;var WR=`uniform vec4 color;
- uniform vec4 gapColor;
- uniform float dashLength;
- uniform float dashPattern;
- in float v_polylineAngle;
- const float maskLength = 16.0;
- mat2 rotate(float rad) {
- float c = cos(rad);
- float s = sin(rad);
- return mat2(
- c, s,
- -s, c
- );
- }
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy;
- // Get the relative position within the dash from 0 to 1
- float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio));
- // Figure out the mask index.
- float maskIndex = floor(dashPosition * maskLength);
- // Test the bit mask.
- float maskTest = floor(dashPattern / pow(2.0, maskIndex));
- vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color;
- if (fragColor.a < 0.005) { // matches 0/255 and 1/255
- discard;
- }
- fragColor = czm_gammaCorrect(fragColor);
- material.emission = fragColor.rgb;
- material.alpha = fragColor.a;
- return material;
- }
- `;var jR=`uniform vec4 color;
- uniform float glowPower;
- uniform float taperPower;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5);
- if (taperPower <= 0.99999) {
- glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5));
- }
- vec4 fragColor;
- fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb);
- fragColor.a = clamp(0.0, 1.0, glow) * color.a;
- fragColor = czm_gammaCorrect(fragColor);
- material.emission = fragColor.rgb;
- material.alpha = fragColor.a;
- return material;
- }
- `;var qR=`uniform vec4 color;
- uniform vec4 outlineColor;
- uniform float outlineWidth;
- in float v_width;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec2 st = materialInput.st;
- float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width;
- float b = step(0.5 - halfInteriorWidth, st.t);
- b *= 1.0 - step(0.5 + halfInteriorWidth, st.t);
- // Find the distance from the closest separator (region between two colors)
- float d1 = abs(st.t - (0.5 - halfInteriorWidth));
- float d2 = abs(st.t - (0.5 + halfInteriorWidth));
- float dist = min(d1, d2);
- vec4 currentColor = mix(outlineColor, color, b);
- vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist);
- outColor = czm_gammaCorrect(outColor);
- material.diffuse = outColor.rgb;
- material.alpha = outColor.a;
- return material;
- }
- `;var YR=`uniform vec4 color;
- uniform vec4 rimColor;
- uniform float width;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html
- float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC));
- float s = smoothstep(1.0 - width, 1.0, d);
- vec4 outColor = czm_gammaCorrect(color);
- vec4 outRimColor = czm_gammaCorrect(rimColor);
- material.diffuse = outColor.rgb;
- material.emission = outRimColor.rgb * s;
- material.alpha = mix(outColor.a, outRimColor.a, s);
- return material;
- }
- `;var XR=`uniform sampler2D image;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5));
- rampColor = czm_gammaCorrect(rampColor);
- material.diffuse = rampColor.rgb;
- material.alpha = rampColor.a;
- return material;
- }
- `;var KR=`uniform vec4 evenColor;
- uniform vec4 oddColor;
- uniform float offset;
- uniform float repeat;
- uniform bool horizontal;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- // Based on the Stripes Fragment Shader in the Orange Book (11.1.2)
- float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));
- float value = fract((coord - offset) * (repeat * 0.5));
- float dist = min(value, min(abs(value - 0.5), 1.0 - value));
- vec4 currentColor = mix(evenColor, oddColor, step(0.5, value));
- vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist);
- color = czm_gammaCorrect(color);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- return material;
- }
- `;var ZR=`// Thanks for the contribution Jonas
- // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog
- uniform sampler2D specularMap;
- uniform sampler2D normalMap;
- uniform vec4 baseWaterColor;
- uniform vec4 blendColor;
- uniform float frequency;
- uniform float animationSpeed;
- uniform float amplitude;
- uniform float specularIntensity;
- uniform float fadeFactor;
- czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- czm_material material = czm_getDefaultMaterial(materialInput);
- float time = czm_frameNumber * animationSpeed;
- // fade is a function of the distance from the fragment and the frequency of the waves
- float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor);
- float specularMapValue = texture(specularMap, materialInput.st).r;
- // note: not using directional motion at this time, just set the angle to 0.0;
- vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0);
- vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude));
- // fade out the normal perturbation as we move further from the water surface
- normalTangentSpace.xy /= fade;
- // attempt to fade out the normal perturbation as we approach non water areas (low specular map value)
- normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue);
- normalTangentSpace = normalize(normalTangentSpace);
- // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane
- float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0);
- // fade out water effect as specular map value decreases
- material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue;
- // base color is a blend of the water and non-water color based on the value from the specular map
- // may need a uniform blend factor to better control this
- material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue);
- // diffuse highlights are based on how perturbed the normal is
- material.diffuse += (0.1 * tsPerturbationRatio);
- material.diffuse = material.diffuse;
- material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace);
- material.specular = specularIntensity;
- material.shininess = 10.0;
- return material;
- }
- `;function je(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,an.LINEAR),this._magnificationFilter=y(e.magnificationFilter,Ci.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,bve(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),u(je._uniformList[this.type])||(je._uniformList[this.type]=Object.keys(this._uniforms))}je._uniformList={};je.fromType=function(e,t){let n=new je({fabric:{type:e}});if(u(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};je.prototype.isTranslucent=function(){if(u(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let o=t[i];if(typeof o=="function"?e=e&&o():e=e&&o,!e)break}return e};je.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,o=i.length;for(t=0;t<o;++t){let c=i[t];n=c.id;let l=c.image,f;Array.isArray(l)&&(f=l.slice(1,l.length).map(function(x){return x.bufferView}),l=l[0]);let d=new ln({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;u(l.internalFormat)?p=new Pt({context:e,pixelFormat:l.internalFormat,width:l.width,height:l.height,source:{arrayBufferView:l.bufferView,mipLevels:f},sampler:d}):p=new Pt({context:e,source:l,sampler:d});let g=this._textures[n];u(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let m=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(m)){let x=this.uniforms[m];x.x=p._width,x.y=p._height}}i.length=0;let r=this._loadedCubeMaps;for(o=r.length,t=0;t<o;++t){let c=r[t];n=c.id;let l=c.images,f=new rc({context:e,source:{positiveX:l[0],negativeX:l[1],positiveY:l[2],negativeY:l[3],positiveZ:l[4],negativeZ:l[5]},sampler:new ln({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}r.length=0;let s=this._updateFunctions;for(o=s.length,t=0;t<o;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};je.prototype.isDestroyed=function(){return!1};je.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return le(this)};function bve(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=Ge(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=Ge(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=Ge(y(t._template.materials,y.EMPTY_OBJECT)),t.type=u(t._template.type)?t._template.type:Gn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=je._materialCache.getMaterial(t.type);if(u(i)){let r=Ge(i.fabric,!0);t._template=gt(t._template,r,!0),n=i.translucent}Eve(t),u(i)||je._materialCache.addMaterial(t.type,t),wve(t),Pve(t),Rve(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),u(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function u5(e,t,n,i){if(u(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function w$(e,t){}function Tve(e,t){}var Ave=["type","materials","uniforms","components","source"],Cve=["diffuse","specular","shininess","normal","emission","alpha"];function Eve(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;u5(t,Ave,w$,!0),u5(o,Cve,w$,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);u5(n,r,Tve,!1)}function Sve(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function wve(e){let t=e._template.components,n=e._template.source;if(u(n))e.shaderSource+=`${n}
- `;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput)
- {
- `,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput);
- `,u(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&Sve(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s};
- `}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha};
- `:e.shaderSource+=`material.${o} = ${t[o]};
- `}e.shaderSource+=`return material;
- }
- `}}var v$={mat2:Ji,mat3:$,mat4:L},vve=/\.ktx2$/i;function Dve(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!u(r)||r===je.DefaultImageId;t=r;let c=n._textures[e],l,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&u(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!u(c)||c===i.defaultTexture){let p=new ln({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Pt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else u(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Pt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];u(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(f=o[l],f.x=r._width,f.y=r._height);return}if(s&&u(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),u(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(f=o[l],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof ve;if(!u(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:ve.createIfNeeded(r),g;vve.test(p.url)?g=vl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){u(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function Ive(e){return function(t,n){let i=t.uniforms[e];if(i instanceof rc){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(u(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===je.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[ve.createIfNeeded(i.positiveX).fetchImage(),ve.createIfNeeded(i.negativeX).fetchImage(),ve.createIfNeeded(i.positiveY).fetchImage(),ve.createIfNeeded(i.negativeY).fetchImage(),ve.createIfNeeded(i.positiveZ).fetchImage(),ve.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function Pve(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&D$(e,n)}function D$(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=Ove(o),s;if(r==="channels")s=fS(e,t,o,!1);else{if(r==="sampler2D"){let l=`${t}Dimensions`;Mve(e,l)>0&&(i[l]={type:"ivec3",x:1,y:1},D$(e,l))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let l=`uniform ${r} ${t};`;e.shaderSource=l+e.shaderSource}let c=`${t}_${e._count++}`;if(s=fS(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Dve(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Ive(t));else if(r.indexOf("mat")!==-1){let l=new v$[r];e._uniforms[c]=function(){return v$[r].fromColumnMajorArray(e.uniforms[t],l)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function Ove(e){let t=e.type;if(!u(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof ve||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===je.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function Rve(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new je({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=gt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;fS(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=fS(e,i,a)}}function fS(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,l,f){return l||f?c:(o+=1,n)}),o}function Mve(e,t,n){return fS(e,t,t,n)}je._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};je.DefaultImageId="czm_defaultImage";je.DefaultCubeMapId="czm_defaultCubeMap";je.ColorType="Color";je._materialCache.addMaterial(je.ColorType,{fabric:{type:je.ColorType,uniforms:{color:new z(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.ImageType="Image";je._materialCache.addMaterial(je.ImageType,{fabric:{type:je.ImageType,uniforms:{image:je.DefaultImageId,repeat:new V(1,1),color:new z(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.DiffuseMapType="DiffuseMap";je._materialCache.addMaterial(je.DiffuseMapType,{fabric:{type:je.DiffuseMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new V(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.AlphaMapType="AlphaMap";je._materialCache.addMaterial(je.AlphaMapType,{fabric:{type:je.AlphaMapType,uniforms:{image:je.DefaultImageId,channel:"a",repeat:new V(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});je.SpecularMapType="SpecularMap";je._materialCache.addMaterial(je.SpecularMapType,{fabric:{type:je.SpecularMapType,uniforms:{image:je.DefaultImageId,channel:"r",repeat:new V(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});je.EmissionMapType="EmissionMap";je._materialCache.addMaterial(je.EmissionMapType,{fabric:{type:je.EmissionMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new V(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.BumpMapType="BumpMap";je._materialCache.addMaterial(je.BumpMapType,{fabric:{type:je.BumpMapType,uniforms:{image:je.DefaultImageId,channel:"r",strength:.8,repeat:new V(1,1)},source:LR},translucent:!1});je.NormalMapType="NormalMap";je._materialCache.addMaterial(je.NormalMapType,{fabric:{type:je.NormalMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",strength:.8,repeat:new V(1,1)},source:HR},translucent:!1});je.GridType="Grid";je._materialCache.addMaterial(je.GridType,{fabric:{type:je.GridType,uniforms:{color:new z(0,1,0,1),cellAlpha:.1,lineCount:new V(8,8),lineThickness:new V(1,1),lineOffset:new V(0,0)},source:zR},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});je.StripeType="Stripe";je._materialCache.addMaterial(je.StripeType,{fabric:{type:je.StripeType,uniforms:{horizontal:!0,evenColor:new z(1,1,1,.5),oddColor:new z(0,0,1,.5),offset:0,repeat:5},source:KR},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});je.CheckerboardType="Checkerboard";je._materialCache.addMaterial(je.CheckerboardType,{fabric:{type:je.CheckerboardType,uniforms:{lightColor:new z(1,1,1,.5),darkColor:new z(0,0,0,.5),repeat:new V(5,5)},source:NR},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.DotType="Dot";je._materialCache.addMaterial(je.DotType,{fabric:{type:je.DotType,uniforms:{lightColor:new z(1,1,0,.75),darkColor:new z(0,1,1,.75),repeat:new V(5,5)},source:FR},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.WaterType="Water";je._materialCache.addMaterial(je.WaterType,{fabric:{type:je.WaterType,uniforms:{baseWaterColor:new z(.2,.3,.6,1),blendColor:new z(0,1,.699,1),specularMap:je.DefaultImageId,normalMap:je.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:ZR},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});je.RimLightingType="RimLighting";je._materialCache.addMaterial(je.RimLightingType,{fabric:{type:je.RimLightingType,uniforms:{color:new z(1,0,0,.7),rimColor:new z(1,1,1,.4),width:.3},source:YR},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});je.FadeType="Fade";je._materialCache.addMaterial(je.FadeType,{fabric:{type:je.FadeType,uniforms:{fadeInColor:new z(1,0,0,1),fadeOutColor:new z(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new V(.5,.5)},source:VR},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});je.PolylineArrowType="PolylineArrow";je._materialCache.addMaterial(je.PolylineArrowType,{fabric:{type:je.PolylineArrowType,uniforms:{color:new z(1,1,1,1)},source:GR},translucent:!0});je.PolylineDashType="PolylineDash";je._materialCache.addMaterial(je.PolylineDashType,{fabric:{type:je.PolylineDashType,uniforms:{color:new z(1,0,1,1),gapColor:new z(0,0,0,0),dashLength:16,dashPattern:255},source:WR},translucent:!0});je.PolylineGlowType="PolylineGlow";je._materialCache.addMaterial(je.PolylineGlowType,{fabric:{type:je.PolylineGlowType,uniforms:{color:new z(0,.5,1,1),glowPower:.25,taperPower:1},source:jR},translucent:!0});je.PolylineOutlineType="PolylineOutline";je._materialCache.addMaterial(je.PolylineOutlineType,{fabric:{type:je.PolylineOutlineType,uniforms:{color:new z(1,1,1,1),outlineColor:new z(1,0,0,1),outlineWidth:1},source:qR},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});je.ElevationContourType="ElevationContour";je._materialCache.addMaterial(je.ElevationContourType,{fabric:{type:je.ElevationContourType,uniforms:{spacing:100,color:new z(1,0,0,1),width:1},source:kR},translucent:!1});je.ElevationRampType="ElevationRamp";je._materialCache.addMaterial(je.ElevationRampType,{fabric:{type:je.ElevationRampType,uniforms:{image:je.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:UR},translucent:!1});je.SlopeRampMaterialType="SlopeRamp";je._materialCache.addMaterial(je.SlopeRampMaterialType,{fabric:{type:je.SlopeRampMaterialType,uniforms:{image:je.DefaultImageId},source:XR},translucent:!1});je.AspectRampMaterialType="AspectRamp";je._materialCache.addMaterial(je.AspectRampMaterialType,{fabric:{type:je.AspectRampMaterialType,uniforms:{image:je.DefaultImageId},source:MR},translucent:!1});je.ElevationBandType="ElevationBand";je._materialCache.addMaterial(je.ElevationBandType,{fabric:{type:je.ElevationBandType,uniforms:{heights:je.DefaultImageId,colors:je.DefaultImageId},source:BR},translucent:!0});var Hi=je;function n0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,n0.MaterialSupport.TEXTURED);this.material=u(e.material)?e.material:Hi.fromType(Hi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(n0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});n0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;n0.prototype.isTranslucent=eo.prototype.isTranslucent;n0.prototype.getRenderState=eo.prototype.getRenderState;n0.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:PR,fragmentShaderSource:IR}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:RR,fragmentShaderSource:OR}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:DR,fragmentShaderSource:vR})};var oo=n0;var $R=`in vec3 v_positionEC;
- in vec3 v_normalEC;
- in vec4 v_color;
- void main()
- {
- vec3 positionToEyeEC = -v_positionEC;
- vec3 normalEC = normalize(v_normalEC);
- #ifdef FACE_FORWARD
- normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
- #endif
- vec4 color = czm_gammaCorrect(v_color);
- czm_materialInput materialInput;
- materialInput.normalEC = normalEC;
- materialInput.positionToEyeEC = positionToEyeEC;
- czm_material material = czm_getDefaultMaterial(materialInput);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
- }
- `;var QR=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 normal;
- in vec4 color;
- in float batchId;
- out vec3 v_positionEC;
- out vec3 v_normalEC;
- out vec4 v_color;
- void main()
- {
- vec4 p = czm_computePosition();
- v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
- v_normalEC = czm_normal * normal; // normal in eye coordinates
- v_color = color;
- gl_Position = czm_modelViewProjectionRelativeToEye * p;
- }
- `;var qb=`in vec4 v_color;
- void main()
- {
- out_FragColor = czm_gammaCorrect(v_color);
- }
- `;var JR=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec4 color;
- in float batchId;
- out vec4 v_color;
- void main()
- {
- vec4 p = czm_computePosition();
- v_color = color;
- gl_Position = czm_modelViewProjectionRelativeToEye * p;
- }
- `;function Bm(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?JR:QR,r=i?qb:$R,s=i?Bm.FLAT_VERTEX_FORMAT:Bm.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Bm.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Bm.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;Bm.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;Bm.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;Bm.prototype.isTranslucent=eo.prototype.isTranslucent;Bm.prototype.getRenderState=eo.prototype.getRenderState;var on=Bm;function Yb(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(Yb.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color")});Yb.prototype.getType=function(e){return"Color"};Yb.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};Yb.prototype.equals=function(e){return this===e||e instanceof Yb&&j.equals(this._color,e._color)};var Nt=Yb;function y_(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._rectangle=y(e.rectangle,ce.MAX_VALUE),this._projection=new Ii(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(y_.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});y_.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};y_.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};y_.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),o=P.toDegrees(e.east),r=P.toDegrees(e.north);return u(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new ce(n,i,o,r)};y_.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=P.toDegrees(o.west),o.south=P.toDegrees(o.south),o.east=P.toDegrees(o.east),o.north=P.toDegrees(o.north),o};y_.prototype.tileXYToRectangle=function(e,t,n,i){let o=this._rectangle,r=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=o.width/r,c=e*a+o.west,l=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return u(i)||(i=new ce(c,p,l,d)),i.west=c,i.south=p,i.east=l,i.north=d,i};y_.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!ce.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),s=i.width/o,a=i.height/r,c=e.longitude;i.east<i.west&&(c+=P.TWO_PI);let l=(c-i.west)/s|0;l>=o&&(l=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),u(n)?(n.x=l,n.y=f,n):new V(l,f)};var Gi=y_;var I$=new h,P$=new h,O$=new fe,f5=new h,Lve=new h,R$=new se,Nve=new Gi,dS=[new fe,new fe,new fe,new fe],hS=new V,Dr={};Dr.initialize=function(){let e=Dr._initPromise;return u(e)||(e=ve.fetchJson($t("Assets/approximateTerrainHeights.json")).then(function(t){Dr._terrainHeights=t}),Dr._initPromise=e),e};Dr.getMinimumMaximumHeights=function(e,t){t=y(t,ie.WGS84);let n=M$(e),i=Dr._defaultMinTerrainHeight,o=Dr._defaultMaxTerrainHeight;if(u(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Dr._terrainHeights[r];u(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(ce.northeast(e,O$),I$),t.cartographicToCartesian(ce.southwest(e,O$),P$),h.midpoint(P$,I$,f5);let a=t.scaleToGeodeticSurface(f5,Lve);if(u(a)){let c=h.distance(f5,a);i=Math.min(i,-c)}else i=Dr._defaultMinTerrainHeight}return i=Math.max(Dr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Dr.getBoundingSphere=function(e,t){t=y(t,ie.WGS84);let n=M$(e),i=Dr._defaultMaxTerrainHeight;if(u(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Dr._terrainHeights[r];u(s)&&(i=s[1])}let o=se.fromRectangle3D(e,t,0);return se.fromRectangle3D(e,t,i,R$),se.union(o,R$,o)};function M$(e){fe.fromRadians(e.east,e.north,0,dS[0]),fe.fromRadians(e.west,e.north,0,dS[1]),fe.fromRadians(e.east,e.south,0,dS[2]),fe.fromRadians(e.west,e.south,0,dS[3]);let t=0,n=0,i=0,o=0,r=Dr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let l=dS[c];if(Nve.positionToTileXY(l,s,hS),c===0)i=hS.x,o=hS.y;else if(i!==hS.x||o!==hS.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Dr._terrainHeightsMaxLevel=6;Dr._defaultMaxTerrainHeight=9e3;Dr._defaultMinTerrainHeight=-1e5;Dr._terrainHeights=void 0;Dr._initPromise=void 0;Object.defineProperties(Dr,{initialized:{get:function(){return u(Dr._terrainHeights)}}});var li=Dr;function lc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),u(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}lc.fromCorners=function(e,t,n){return u(n)||(n=new lc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};lc.fromPoints=function(e,t){if(u(t)||(t=new lc),!u(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,m=p.y,x=p.z;n=Math.min(g,n),r=Math.max(g,r),i=Math.min(m,i),s=Math.max(m,s),o=Math.min(x,o),a=Math.max(x,a)}let l=t.minimum;l.x=n,l.y=i,l.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(l,f,t.center),t};lc.clone=function(e,t){if(u(e))return u(t)?(t.minimum=h.clone(e.minimum,t.minimum),t.maximum=h.clone(e.maximum,t.maximum),t.center=h.clone(e.center,t.center),t):new lc(e.minimum,e.maximum,e.center)};lc.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var eM=new h;lc.intersectPlane=function(e,t){eM=h.subtract(e.maximum,e.minimum,eM);let n=h.multiplyByScalar(eM,.5,eM),i=t.normal,o=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),r=h.dot(e.center,i)+t.distance;return r-o>0?Zt.INSIDE:r+o<0?Zt.OUTSIDE:Zt.INTERSECTING};lc.prototype.clone=function(e){return lc.clone(this,e)};lc.prototype.intersectPlane=function(e){return lc.intersectPlane(this,e)};lc.prototype.equals=function(e){return lc.equals(this,e)};var i0=lc;var d5={};d5.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function L$(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}d5.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),l=Math.abs(e);if(c<l&&c/l<P.EPSILON14)return[0,0];if(c>l&&l/c<P.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let o=t*t,r=4*e*n,s=L$(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*L$(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var qc=d5;var m5={};m5.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function h5(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,l=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,m=r*a-d,x=4*p*m-g*g,b,T;if(x<0){let Y,q,Q;f*l>=c*d?(Y=o,q=p,Q=-2*r*p+o*g):(Y=a,q=m,Q=-a*g+2*s*m);let K=-(Q<0?-1:1)*Math.abs(Y)*Math.sqrt(-x);T=-Q+K;let Z=T/2,me=Z<0?-Math.pow(-Z,1/3):Math.pow(Z,1/3),xe=T===K?-me:-q/me;return b=q<=0?me+xe:-Q/(me*me+xe*xe+q),f*l>=c*d?[(b-r)/o]:[-a/(b+s)]}let A=p,C=-2*r*p+o*g,S=m,w=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,R=Math.abs(Math.atan2(o*D,-C)/3);b=2*Math.sqrt(-A);let N=Math.cos(R);T=b*N;let F=b*(-N/2-O*Math.sin(R)),_=T+F>2*r?T-r:F-r,E=o,v=_/E;R=Math.abs(Math.atan2(a*D,-w)/3),b=2*Math.sqrt(-S),N=Math.cos(R),T=b*N,F=b*(-N/2-O*Math.sin(R));let I=-a,M=T+F<2*s?T+s:F+s,B=I/M,H=E*M,U=-_*M-E*I,G=_*I,k=(s*U-r*G)/(-r*U+s*H);return v<=k?v<=B?k<=B?[v,k,B]:[v,B,k]:[B,v,k]:v<=B?[k,v,B]:k<=B?[k,B,v]:[B,k,v]}m5.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return qc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=qc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return h5(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):h5(e,t,0,i);if(i===0)return o=qc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return h5(e,t,n,i)};var Xb=m5;var p5={};p5.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,l=n*n,f=l*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*l*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*m+o*(18*c*n*i-4*a*f+16*e*l*l-80*e*t*l*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*l-192*r*t*i)};function Vf(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=Xb.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let l=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=qc.computeRealRoots(1,r,a);if(d.length===2){let p=d[0],g=d[1],m;if(p>=0&&g>=0){let x=Math.sqrt(p),b=Math.sqrt(g);return[l-b,l-x,l+x,l+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[l-m,l+m];if(p<0&&g>=0)return m=Math.sqrt(g),[l-m,l+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=qc.computeRealRoots(1,d,p),x=qc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=l,m[1]+=l,x.length!==0?(x[0]+=l,x[1]+=l,m[1]<=x[0]?[m[0],m[1],x[0],x[1]]:x[1]<=m[0]?[x[0],x[1],m[0],m[1]]:m[0]>=x[0]&&m[1]<=x[1]?[x[0],m[0],m[1],x[1]]:x[0]>=m[0]&&x[1]<=m[1]?[m[0],x[0],x[1],m[1]]:m[0]>x[0]&&m[0]<x[1]?[x[0],m[0],x[1],m[1]]:[m[0],x[0],m[1],x[1]]):m):x.length!==0?(x[0]+=l,x[1]+=l,x):[]}}return[]}function mS(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,l=s*i-n*t*e+o,f=Xb.computeRealRoots(1,a,c,l);if(f.length>0){let d=f[0],p=t-d,g=p*p,m=e/2,x=p/2,b=g-4*i,T=g+4*Math.abs(i),A=s-4*d,C=s+4*Math.abs(d),S,w;if(d<0||b*C<A*T){let E=Math.sqrt(A);S=E/2,w=E===0?0:(e*x-n)/E}else{let E=Math.sqrt(b);S=E===0?0:(e*x-n)/E,w=E/2}let D,O;m===0&&S===0?(D=0,O=0):P.sign(m)===P.sign(S)?(D=m+S,O=d/D):(O=m-S,D=d/O);let R,N;x===0&&w===0?(R=0,N=0):P.sign(x)===P.sign(w)?(R=x+w,N=i/R):(N=x-w,R=i/N);let F=qc.computeRealRoots(1,D,R),_=qc.computeRealRoots(1,O,N);if(F.length!==0)return _.length!==0?F[1]<=_[0]?[F[0],F[1],_[0],_[1]]:_[1]<=F[0]?[_[0],_[1],F[0],F[1]]:F[0]>=_[0]&&F[1]<=_[1]?[_[0],F[0],F[1],_[1]]:_[0]>=F[0]&&_[1]<=F[1]?[F[0],_[0],_[1],F[1]]:F[0]>_[0]&&F[0]<_[1]?[_[0],F[0],_[1],F[1]]:[F[0],_[0],F[1],_[1]]:F;if(_.length!==0)return _}return[]}p5.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return Xb.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,l=r<0?1:0;switch(l+=s<0?l+1:l,l+=a<0?l+1:l,l+=c<0?l+1:l,l){case 0:return Vf(r,s,a,c);case 1:return mS(r,s,a,c);case 2:return mS(r,s,a,c);case 3:return Vf(r,s,a,c);case 4:return Vf(r,s,a,c);case 5:return mS(r,s,a,c);case 6:return Vf(r,s,a,c);case 7:return Vf(r,s,a,c);case 8:return mS(r,s,a,c);case 9:return Vf(r,s,a,c);case 10:return Vf(r,s,a,c);case 11:return mS(r,s,a,c);case 12:return Vf(r,s,a,c);case 13:return Vf(r,s,a,c);case 14:return Vf(r,s,a,c);case 15:return Vf(r,s,a,c);default:return}};var tM=p5;function nM(e,t){t=h.clone(y(t,h.ZERO)),h.equals(t,h.ZERO)||h.normalize(t,t),this.origin=h.clone(y(e,h.ZERO)),this.direction=t}nM.clone=function(e,t){if(u(e))return u(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new nM(e.origin,e.direction)};nM.getPoint=function(e,t,n){return u(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var Cn=nM;var Zo={};Zo.rayPlane=function(e,t,n){u(n)||(n=new h);let i=e.origin,o=e.direction,r=t.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON15)return;let a=(-t.distance-h.dot(r,i))/s;if(!(a<0))return n=h.multiplyByScalar(o,a,n),h.add(i,n,n)};var Fve=new h,Bve=new h,H$=new h,N$=new h,F$=new h;Zo.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=h.subtract(n,t,Fve),c=h.subtract(i,t,Bve),l=h.cross(s,c,H$),f=h.dot(a,l),d,p,g,m,x;if(o){if(f<P.EPSILON6||(d=h.subtract(r,t,N$),g=h.dot(d,l),g<0||g>f)||(p=h.cross(d,a,F$),m=h.dot(s,p),m<0||g+m>f))return;x=h.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let b=1/f;if(d=h.subtract(r,t,N$),g=h.dot(d,l)*b,g<0||g>1||(p=h.cross(d,a,F$),m=h.dot(s,p)*b,m<0||g+m>1))return;x=h.dot(c,p)*b}return x};Zo.rayTriangle=function(e,t,n,i,o,r){let s=Zo.rayTriangleParametric(e,t,n,i,o);if(!(!u(s)||s<0))return u(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var kve=new Cn;Zo.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=kve;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=Zo.rayTriangleParametric(a,n,i,o,r);if(!(!u(c)||c<0||c>h.distance(e,t)))return u(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function Uve(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,l=(-t-a)*s;return c<l?(i.root0=c,i.root1=l):(i.root0=l,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var Vve={root0:0,root1:0};function G$(e,t,n){u(n)||(n=new jc);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,H$),c=h.dot(o,o),l=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=Uve(c,l,f,Vve);if(u(d))return n.start=d.root0,n.stop=d.root1,n}Zo.raySphere=function(e,t,n){if(n=G$(e,t,n),!(!u(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var zve=new Cn;Zo.lineSegmentSphere=function(e,t,n,i){let o=zve;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=G$(o,n,i),!(!u(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var Hve=new h,Gve=new h;Zo.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,Hve),o=h.multiplyComponents(n,e.direction,Gve),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,l,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),l=c*a,p<l)return;if(p>l){f=s*s-l,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new jc(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new jc(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),l=c*a,f=s*s-l,d=-s+Math.sqrt(f),new jc(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new jc(0,-s/c)};function o0(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}function Wve(e,t,n,i,o){let r=i*i,s=o*o,a=(e[$.COLUMN1ROW1]-e[$.COLUMN2ROW2])*s,c=o*(i*o0(e[$.COLUMN1ROW0],e[$.COLUMN0ROW1],P.EPSILON15)+t.y),l=e[$.COLUMN0ROW0]*r+e[$.COLUMN2ROW2]*s+i*t.x+n,f=s*o0(e[$.COLUMN2ROW1],e[$.COLUMN1ROW2],P.EPSILON15),d=o*(i*o0(e[$.COLUMN2ROW0],e[$.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=qc.computeRealRoots(a,c,l),p.length===0)return g;let R=p[0],N=Math.sqrt(Math.max(1-R*R,0));if(g.push(new h(i,o*R,o*-N)),g.push(new h(i,o*R,o*N)),p.length===2){let F=p[1],_=Math.sqrt(Math.max(1-F*F,0));g.push(new h(i,o*F,o*-_)),g.push(new h(i,o*F,o*_))}return g}let m=d*d,x=f*f,b=a*a,T=d*f,A=b+x,C=2*(c*a+T),S=2*l*a+c*c-x+m,w=2*(l*c-T),D=l*l-m;if(A===0&&C===0&&S===0&&w===0)return g;p=tM.computeRealRoots(A,C,S,w,D);let O=p.length;if(O===0)return g;for(let R=0;R<O;++R){let N=p[R],F=N*N,_=Math.max(1-F,0),E=Math.sqrt(_),v;P.sign(a)===P.sign(l)?v=o0(a*F+l,c*N,P.EPSILON12):P.sign(l)===P.sign(c*N)?v=o0(a*F,c*N+l,P.EPSILON12):v=o0(a*F+c*N,l,P.EPSILON12);let I=o0(f*N,d,P.EPSILON15),M=v*I;M<0?g.push(new h(i,o*N,o*E)):M>0?g.push(new h(i,o*N,o*-E)):E!==0?(g.push(new h(i,o*N,o*-E)),g.push(new h(i,o*N,o*E)),++R):g.push(new h(i,o*N,o*E))}return g}var _5=new h,B$=new h,k$=new h,iM=new h,jve=new h,qve=new $,Yve=new $,Xve=new $,Kve=new $,Zve=new $,U$=new $,V$=new $,z$=new h,$ve=new h,Qve=new fe;Zo.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,_5);if(h.dot(i,D)>=0)return n}let o=u(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,_5),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,iM),c=h.normalize(h.cross(a,s,B$),B$),l=h.normalize(h.cross(s,c,k$),k$),f=qve;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=l.x,f[7]=l.y,f[8]=l.z;let d=$.transpose(f,Yve),p=$.fromScale(t.radii,Xve),g=$.fromScale(t.oneOverRadii,Kve),m=Zve;m[0]=0,m[1]=-i.z,m[2]=i.y,m[3]=i.z,m[4]=0,m[5]=-i.x,m[6]=-i.y,m[7]=i.x,m[8]=0;let x=$.multiply($.multiply(d,g,U$),m,U$),b=$.multiply($.multiply(x,p,V$),f,V$),T=$.multiplyByVector(x,n,jve),A=Wve(b,h.negate(T,_5),0,0,1),C,S,w=A.length;if(w>0){let D=h.clone(h.ZERO,$ve),O=Number.NEGATIVE_INFINITY;for(let N=0;N<w;++N){C=$.multiplyByVector(p,$.multiplyByVector(f,A[N],z$),z$);let F=h.normalize(h.subtract(C,n,iM),iM),_=h.dot(F,i);_>O&&(O=_,D=h.clone(C,D))}let R=t.cartesianToCartographic(D,Qve);return O=P.clamp(O,0,1),S=h.magnitude(h.subtract(D,n,iM))*Math.sqrt(1-O*O),S=o?-S:S,R.height=S,t.cartographicToCartesian(R,new h)}};var Jve=new h;Zo.lineSegmentPlane=function(e,t,n,i){u(i)||(i=new h);let o=h.subtract(t,e,Jve),r=n.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON6)return;let a=h.dot(r,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};Zo.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,l=0;l+=s?1:0,l+=a?1:0,l+=c?1:0;let f,d;if((l===1||l===2)&&(f=new h,d=new h),l===1){if(s)return Zo.lineSegmentPlane(e,t,i,f),Zo.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return Zo.lineSegmentPlane(t,n,i,f),Zo.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return Zo.lineSegmentPlane(n,e,i,f),Zo.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(l===2)if(s)if(a){if(!c)return Zo.lineSegmentPlane(e,n,i,f),Zo.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return Zo.lineSegmentPlane(n,t,i,f),Zo.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return Zo.lineSegmentPlane(t,e,i,f),Zo.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var Ei=Zo;var g5=new oe;function lh(e,t){t=y(t,ie.WGS84),e=t.scaleToGeodeticSurface(e);let n=Rt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(L.getColumn(n,0,g5)),this._yAxis=h.fromCartesian4(L.getColumn(n,1,g5));let i=h.fromCartesian4(L.getColumn(n,2,g5));this._plane=tn.fromPointNormal(e,i)}Object.defineProperties(lh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var eDe=new i0;lh.fromPoints=function(e,t){let n=i0.fromPoints(e,eDe);return new lh(n.center,t)};var W$=new Cn,oM=new h;lh.prototype.projectPointOntoPlane=function(e,t){let n=W$;n.origin=e,h.normalize(e,n.direction);let i=Ei.rayPlane(n,this._plane,oM);if(u(i)||(h.negate(n.direction,n.direction),i=Ei.rayPlane(n,this._plane,oM)),u(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return u(t)?(t.x=r,t.y=s,t):new V(r,s)}};lh.prototype.projectPointsOntoPlane=function(e,t){u(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);u(r)&&(t[n]=r,n++)}return t.length=n,t};lh.prototype.projectPointToNearestOnPlane=function(e,t){u(t)||(t=new V);let n=W$;n.origin=e,h.clone(this._plane.normal,n.direction);let i=Ei.rayPlane(n,this._plane,oM);u(i)||(h.negate(n.direction,n.direction),i=Ei.rayPlane(n,this._plane,oM));let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return t.x=r,t.y=s,t};lh.prototype.projectPointsToNearestOnPlane=function(e,t){u(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var tDe=new h;lh.prototype.projectPointOntoEllipsoid=function(e,t){u(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=tDe;return h.multiplyByScalar(o,e.x,s),t=h.add(i,s,t),h.multiplyByScalar(r,e.y,s),h.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};lh.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var Ir=lh;function Pi(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=$.clone(y(t,$.ZERO))}Pi.packedLength=h.packedLength+$.packedLength;Pi.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),$.pack(e.halfAxes,t,n+h.packedLength),t};Pi.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Pi),h.unpack(e,t,n.center),$.unpack(e,t+h.packedLength,n.halfAxes),n};var nDe=new h,iDe=new h,oDe=new h,rDe=new h,sDe=new h,aDe=new h,cDe=new $,lDe={unitary:new $,diagonal:new $};Pi.fromPoints=function(e,t){if(u(t)||(t=new Pi),!u(e)||e.length===0)return t.halfAxes=$.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],nDe);for(n=1;n<i;n++)h.add(o,e[n],o);let r=1/i;h.multiplyByScalar(o,r,o);let s=0,a=0,c=0,l=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,iDe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,l+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,l*=r,f*=r,d*=r;let g=cDe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=l,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=$.computeEigenDecomposition(g,lDe),x=$.clone(m.unitary,t.halfAxes),b=$.getColumn(x,0,rDe),T=$.getColumn(x,1,sDe),A=$.getColumn(x,2,aDe),C=-Number.MAX_VALUE,S=-Number.MAX_VALUE,w=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,R=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],C=Math.max(h.dot(b,p),C),S=Math.max(h.dot(T,p),S),w=Math.max(h.dot(A,p),w),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),R=Math.min(h.dot(A,p),R);b=h.multiplyByScalar(b,.5*(D+C),b),T=h.multiplyByScalar(T,.5*(O+S),T),A=h.multiplyByScalar(A,.5*(R+w),A);let N=h.add(b,T,t.center);h.add(N,A,N);let F=oDe;return F.x=C-D,F.y=S-O,F.z=w-R,h.multiplyByScalar(F,.5,F),$.multiplyByScale(t.halfAxes,F,t.halfAxes),t};var Z$=new h,uDe=new h;function j$(e,t,n,i,o,r,s,a,c,l,f){u(f)||(f=new Pi);let d=f.halfAxes;$.setColumn(d,0,t,d),$.setColumn(d,1,n,d),$.setColumn(d,2,i,d);let p=Z$;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+l)/2;let g=uDe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(l-c)/2;let m=f.center;return p=$.multiplyByVector(d,p,p),h.add(e,p,m),$.multiplyByScale(d,g,d),f}var q$=new fe,fDe=new h,dDe=new fe,hDe=new fe,mDe=new fe,pDe=new fe,_De=new fe,gDe=new h,Y$=new h,yDe=new h,X$=new h,xDe=new h,bDe=new V,TDe=new V,ADe=new V,CDe=new V,EDe=new V,SDe=new h,wDe=new h,vDe=new h,DDe=new h,IDe=new V,PDe=new h,ODe=new h,RDe=new h,MDe=new tn(h.UNIT_X,0);Pi.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,ie.WGS84);let r,s,a,c,l,f,d;if(e.width<=P.PI){let O=ce.center(e,q$),R=i.cartographicToCartesian(O,fDe),N=new Ir(R,i);d=N.plane;let F=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,E=fe.fromRadians(F,e.north,n,dDe),v=fe.fromRadians(e.west,e.north,n,hDe),I=fe.fromRadians(e.west,_,n,mDe),M=fe.fromRadians(e.west,e.south,n,pDe),B=fe.fromRadians(F,e.south,n,_De),H=i.cartographicToCartesian(E,gDe),U=i.cartographicToCartesian(v,Y$),G=i.cartographicToCartesian(I,yDe),k=i.cartographicToCartesian(M,X$),Y=i.cartographicToCartesian(B,xDe),q=N.projectPointToNearestOnPlane(H,bDe),Q=N.projectPointToNearestOnPlane(U,TDe),W=N.projectPointToNearestOnPlane(G,ADe),K=N.projectPointToNearestOnPlane(k,CDe),Z=N.projectPointToNearestOnPlane(Y,EDe);return r=Math.min(Q.x,W.x,K.x),s=-r,c=Math.max(Q.y,q.y),a=Math.min(K.y,Z.y),v.height=M.height=t,U=i.cartographicToCartesian(v,Y$),k=i.cartographicToCartesian(M,X$),l=Math.min(tn.getPointDistance(d,U),tn.getPointDistance(d,k)),f=n,j$(N.origin,N.xAxis,N.yAxis,N.zAxis,r,s,a,c,l,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=ce.center(e,q$).longitude,b=h.fromRadians(x,m,n,i,SDe);b.z=0;let A=Math.abs(b.x)<P.EPSILON10&&Math.abs(b.y)<P.EPSILON10?h.UNIT_X:h.normalize(b,wDe),C=h.UNIT_Z,S=h.cross(A,C,vDe);d=tn.fromPointNormal(b,A,MDe);let w=h.fromRadians(x+P.PI_OVER_TWO,m,n,i,DDe);s=h.dot(tn.projectPointOntoPlane(d,w,IDe),S),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,PDe).z,a=h.fromRadians(0,e.south,p?t:n,i,ODe).z;let D=h.fromRadians(e.east,m,n,i,RDe);return l=tn.getPointDistance(d,D),f=0,j$(b,S,C,A,r,s,a,c,l,f,o)};Pi.fromTransformation=function(e,t){return u(t)||(t=new Pi),t.center=L.getTranslation(e,t.center),t.halfAxes=L.getMatrix3(e,t.halfAxes),t.halfAxes=$.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Pi.clone=function(e,t){if(u(e))return u(t)?(h.clone(e.center,t.center),$.clone(e.halfAxes,t.halfAxes),t):new Pi(e.center,e.halfAxes)};Pi.intersectPlane=function(e,t){let n=e.center,i=t.normal,o=e.halfAxes,r=i.x,s=i.y,a=i.z,c=Math.abs(r*o[$.COLUMN0ROW0]+s*o[$.COLUMN0ROW1]+a*o[$.COLUMN0ROW2])+Math.abs(r*o[$.COLUMN1ROW0]+s*o[$.COLUMN1ROW1]+a*o[$.COLUMN1ROW2])+Math.abs(r*o[$.COLUMN2ROW0]+s*o[$.COLUMN2ROW1]+a*o[$.COLUMN2ROW2]),l=h.dot(i,n)+t.distance;return l<=-c?Zt.OUTSIDE:l>=c?Zt.INSIDE:Zt.INTERSECTING};var $$=new h,Q$=new h,J$=new h,LDe=new h,K$=new h,NDe=new h;Pi.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,Z$),i=e.halfAxes,o=$.getColumn(i,0,$$),r=$.getColumn(i,1,Q$),s=$.getColumn(i,2,J$),a=h.magnitude(o),c=h.magnitude(r),l=h.magnitude(s),f=!0,d=!0,p=!0;a>0?h.divideByScalar(o,a,o):f=!1,c>0?h.divideByScalar(r,c,r):d=!1,l>0?h.divideByScalar(s,l,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let S=o;m=r,x=s,d?p||(S=s,x=o):(S=r,m=o),b=h.cross(m,x,K$),S===o?o=b:S===r?r=b:S===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let S=h.UNIT_Y;S.equalsEpsilon(m,P.EPSILON3)&&(S=h.UNIT_X),x=h.cross(m,S,LDe),h.normalize(x,x),b=h.cross(m,x,K$),h.normalize(b,b),m===o?(r=x,s=b):m===r?(s=x,o=b):m===s&&(o=x,r=b)}else g===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let T=NDe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let A=0,C;return T.x<-a?(C=T.x+a,A+=C*C):T.x>a&&(C=T.x-a,A+=C*C),T.y<-c?(C=T.y+c,A+=C*C):T.y>c&&(C=T.y-c,A+=C*C),T.z<-l?(C=T.z+l,A+=C*C):T.z>l&&(C=T.z-l,A+=C*C),A};var FDe=new h,BDe=new h;Pi.computePlaneDistances=function(e,t,n,i){u(i)||(i=new jc);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,$$),l=$.getColumn(a,1,Q$),f=$.getColumn(a,2,J$),d=h.add(c,l,FDe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,BDe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var kDe=new h,UDe=new h,VDe=new h;Pi.computeCorners=function(e,t){u(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,kDe),r=$.getColumn(i,1,UDe),s=$.getColumn(i,2,VDe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var zDe=new $;Pi.computeTransformation=function(e,t){u(t)||(t=new L);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,zDe);return L.fromRotationTranslation(i,n,t)};var HDe=new se;Pi.isOccluded=function(e,t){let n=se.fromOrientedBoundingBox(e,HDe);return!t.isBoundingSphereVisible(n)};Pi.prototype.intersectPlane=function(e){return Pi.intersectPlane(this,e)};Pi.prototype.distanceSquaredTo=function(e){return Pi.distanceSquaredTo(this,e)};Pi.prototype.computePlaneDistances=function(e,t,n){return Pi.computePlaneDistances(this,e,t,n)};Pi.prototype.computeCorners=function(e){return Pi.computeCorners(this,e)};Pi.prototype.computeTransformation=function(e){return Pi.computeTransformation(this,e)};Pi.prototype.isOccluded=function(e){return Pi.isOccluded(this,e)};Pi.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};Pi.prototype.clone=function(e){return Pi.clone(this,e)};Pi.prototype.equals=function(e){return Pi.equals(this,e)};var On=Pi;var rM={};rM.getHeight=function(e,t,n){return(e-n)*t+n};var GDe=new h;rM.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,GDe),s=rM.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var Yc=rM;var sM=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in float batchId;
- #ifdef EXTRUDED_GEOMETRY
- in vec3 extrudeDirection;
- uniform float u_globeMinimumAltitude;
- #endif // EXTRUDED_GEOMETRY
- #ifdef PER_INSTANCE_COLOR
- out vec4 v_color;
- #endif // PER_INSTANCE_COLOR
- #ifdef TEXTURE_COORDINATES
- #ifdef SPHERICAL
- out vec4 v_sphericalExtents;
- #else // SPHERICAL
- out vec2 v_inversePlaneExtents;
- out vec4 v_westPlane;
- out vec4 v_southPlane;
- #endif // SPHERICAL
- out vec3 v_uvMinAndSphericalLongitudeRotation;
- out vec3 v_uMaxAndInverseDistance;
- out vec3 v_vMaxAndInverseDistance;
- #endif // TEXTURE_COORDINATES
- void main()
- {
- vec4 position = czm_computePosition();
- #ifdef EXTRUDED_GEOMETRY
- float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz));
- delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0;
- //extrudeDirection is zero for the top layer
- position = position + vec4(extrudeDirection * delta, 0.0);
- #endif
- #ifdef TEXTURE_COORDINATES
- #ifdef SPHERICAL
- v_sphericalExtents = czm_batchTable_sphericalExtents(batchId);
- v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId);
- #else // SPHERICAL
- #ifdef COLUMBUS_VIEW_2D
- vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId);
- vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId);
- // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w):
- // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts)
- // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w)
- // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow)
- vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w));
- bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0;
- planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w);
- planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w);
- // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0)
- // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x)
- // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow)
- idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0;
- idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x));
- planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x);
- planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x);
- vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz;
- vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz;
- vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz;
- #else // COLUMBUS_VIEW_2D
- // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction
- vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz;
- vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner;
- vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner;
- #endif // COLUMBUS_VIEW_2D
- vec3 eastWard = southEastCorner - southWestCorner;
- float eastExtent = length(eastWard);
- eastWard /= eastExtent;
- vec3 northWard = northWestCorner - southWestCorner;
- float northExtent = length(northWard);
- northWard /= northExtent;
- v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner));
- v_southPlane = vec4(northWard, -dot(northWard, southWestCorner));
- v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent);
- #endif // SPHERICAL
- vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId);
- vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId);
- v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z);
- v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w);
- v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy;
- #endif // TEXTURE_COORDINATES
- #ifdef PER_INSTANCE_COLOR
- v_color = czm_batchTable_color(batchId);
- #endif
- gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position);
- }
- `;var r0=`#ifdef VECTOR_TILE
- uniform vec4 u_highlightColor;
- #endif
- void main(void)
- {
- #ifdef VECTOR_TILE
- out_FragColor = czm_gammaCorrect(u_highlightColor);
- #else
- out_FragColor = vec4(1.0);
- #endif
- czm_writeDepthClamp();
- }
- `;var eQ={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};eQ.NUMBER_OF_CLASSIFICATION_TYPES=3;var Un=Object.freeze(eQ);var WDe={NEVER:ee.NEVER,LESS:ee.LESS,EQUAL:ee.EQUAL,LESS_OR_EQUAL:ee.LEQUAL,GREATER:ee.GREATER,NOT_EQUAL:ee.NOTEQUAL,GREATER_OR_EQUAL:ee.GEQUAL,ALWAYS:ee.ALWAYS},uc=Object.freeze(WDe);function jDe(e,t){let n=[],i=e.length,o=0;for(;o<i;){let r=Math.ceil((i-o)/t--);n.push(e.slice(o,o+r)),o+=r}return n}var aM=jDe;function km(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=qDe(t),o=e.floatingPointTexture,r=i===Ye.FLOAT&&!o,s=YDe(t,r),a=XDe(s,t,r),c=Math.floor(zt.maximumTextureSize/a),l=Math.min(n,c),f=a*l,d=Math.ceil(n/l),p=1/f,g=p*.5,m=1/d,x=m*.5;this._textureDimensions=new V(f,d),this._textureStep=new oe(p,g,m,x),this._pixelDatatype=r?Ye.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===Ye.FLOAT&&!r?new Float32Array(b):new Uint8Array(b),this._batchValuesDirty=!1}Object.defineProperties(km.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function qDe(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?Ye.FLOAT:Ye.UNSIGNED_BYTE}function nQ(e,t){let n=e[t].componentsPerAttribute;return n===2?V:n===3?h:n===4?oe:Number}function YDe(e,t){let n=new Array(e.length),i=0,o=e.length;for(let r=0;r<o;++r){let a=e[r].componentDatatype;n[r]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function XDe(e,t,n){let i=e.length,o=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?o+4:o+1}var pS=new oe;function KDe(e,t,n){let i=oe.unpack(e,t,pS),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,pS);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,pS);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,pS);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function ZDe(e,t,n){let i=oe.packFloat(e.x,pS);oe.pack(i,t,n),i=oe.packFloat(e.y,i),oe.pack(i,t,n+4),i=oe.packFloat(e.z,i),oe.pack(i,t,n+8),i=oe.packFloat(e.w,i),oe.pack(i,t,n+12)}var tQ=new oe;km.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,o=this._offsets[t],s=4*this._stride*e+4*o,a;this._packFloats&&i[t].componentDatatype!==Ye.UNSIGNED_BYTE?a=KDe(this._batchValues,s,tQ):a=oe.unpack(this._batchValues,s,tQ);let c=nQ(i,t);return u(c.fromCartesian4)?c.fromCartesian4(a,n):u(c.clone)?c.clone(a,n):a.x};var $De=[void 0,void 0,new V,new h,new oe],QDe=new oe;km.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=$De[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=nQ(this._attributes,t);if(u(s.equals)?s.equals(r,n):r===n)return;let c=QDe;c.x=u(n.x)?n.x:n,c.y=u(n.y)?n.y:0,c.z=u(n.z)?n.z:0,c.w=u(n.w)?n.w:0;let l=this._offsets[t],d=4*this._stride*e+4*l;this._packFloats&&i[t].componentDatatype!==Ye.UNSIGNED_BYTE?ZDe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function JDe(e,t){let n=e._textureDimensions;e._texture=new Pt({context:t,pixelFormat:rt.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:ln.NEAREST,flipY:!1})}function eIe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}km.prototype.update=function(e){u(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,u(this._texture)||JDe(this,e.context),eIe(this))};km.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:gt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function tIe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep;
- vec2 computeSt(float batchId)
- {
- float stepX = batchTextureStep.x;
- float centerX = batchTextureStep.y;
- float numberOfAttributes = float(${t});
- return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5);
- }
- `:`uniform vec4 batchTextureStep;
- uniform vec2 batchTextureDimensions;
- vec2 computeSt(float batchId)
- {
- float stepX = batchTextureStep.x;
- float centerX = batchTextureStep.y;
- float stepY = batchTextureStep.z;
- float centerY = batchTextureStep.w;
- float numberOfAttributes = float(${t});
- float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x);
- float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x);
- return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
- }
- `}function nIe(e){return e===1?"float":`vec${e}`}function iIe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function oIe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=nIe(o),a=iIe(o),c=e._offsets[t],l=`${s} ${r}(float batchId)
- {
- vec2 st = computeSt(batchId);
- st.x += batchTextureStep.x * float(${c});
- `;return e._packFloats&&i.componentDatatype!==Ye.UNSIGNED_BYTE?l+=`vec4 textureValue;
- textureValue.x = czm_unpackFloat(texture(batchTexture, st));
- textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0)));
- textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0)));
- textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0)));
- `:l+=` vec4 textureValue = texture(batchTexture, st);
- `,l+=` ${s} value = textureValue${a};
- `,e._pixelDatatype===Ye.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?l+=`value *= 255.0;
- `:e._pixelDatatype===Ye.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(l+=`value /= 255.0;
- `),l+=` return value;
- }
- `,l}km.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture;
- `;t+=`${tIe(this)}
- `;let n=e.length;for(let i=0;i<n;++i)t+=oIe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r}
- ${t}
- ${s}`}};km.prototype.isDestroyed=function(){return!1};km.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),le(this)};var Kb=km;var Zi={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};Zi.getMathType=function(e){switch(e){case Zi.SCALAR:return Number;case Zi.VEC2:return V;case Zi.VEC3:return h;case Zi.VEC4:return oe;case Zi.MAT2:return Ji;case Zi.MAT3:return $;case Zi.MAT4:return L}};Zi.getNumberOfComponents=function(e){switch(e){case Zi.SCALAR:return 1;case Zi.VEC2:return 2;case Zi.VEC3:return 3;case Zi.VEC4:case Zi.MAT2:return 4;case Zi.MAT3:return 9;case Zi.MAT4:return 16}};Zi.getAttributeLocationCount=function(e){switch(e){case Zi.SCALAR:case Zi.VEC2:case Zi.VEC3:case Zi.VEC4:return 1;case Zi.MAT2:return 2;case Zi.MAT3:return 3;case Zi.MAT4:return 4}};Zi.getGlslType=function(e){switch(e){case Zi.SCALAR:return"float";case Zi.VEC2:return"vec2";case Zi.VEC3:return"vec3";case Zi.VEC4:return"vec4";case Zi.MAT2:return"mat2";case Zi.MAT3:return"mat3";case Zi.MAT4:return"mat4"}};var rn=Object.freeze(Zi);var iQ=1/256,oQ=256,fo={};fo.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,o=n.y;n.x=(1-Math.abs(o))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(o)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};fo.octEncode=function(e,t){return fo.octEncodeInRange(e,255,t)};var _S=new V,rQ=new Uint8Array(1);function cM(e){return rQ[0]=e,rQ[0]}fo.octEncodeToCartesian4=function(e,t){return fo.octEncodeInRange(e,65535,_S),t.x=cM(_S.x*iQ),t.y=cM(_S.x),t.z=cM(_S.y*iQ),t.w=cM(_S.y),t};fo.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let o=i.x;i.x=(1-Math.abs(i.y))*P.signNotZero(o),i.y=(1-Math.abs(o))*P.signNotZero(i.y)}return h.normalize(i,i)};fo.octDecode=function(e,t,n){return fo.octDecodeInRange(e,t,255,n)};fo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*oQ+i,a=o*oQ+r;return fo.octDecodeInRange(s,a,65535,t)};fo.octPackFloat=function(e){return 256*e.x+e.y};var x5=new V;fo.octEncodeFloat=function(e){return fo.octEncode(e,x5),fo.octPackFloat(x5)};fo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return fo.octDecode(i,o,t)};fo.octPack=function(e,t,n,i){let o=fo.octEncodeFloat(e),r=fo.octEncodeFloat(t),s=fo.octEncode(n,x5);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};fo.octUnpack=function(e,t,n,i){let o=e.x/65536,r=Math.floor(o),s=(o-r)*65536;o=e.y/65536;let a=Math.floor(o),c=(o-a)*65536;fo.octDecodeFloat(s,t),fo.octDecodeFloat(c,n),fo.octDecode(r,a,i)};fo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};fo.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function y5(e){return e>>1^-(e&1)}fo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=y5(e[a]),r+=y5(t[a]),e[a]=o,t[a]=r,u(n)&&(s+=y5(n[a]),n[a]=s)};fo.dequantize=function(e,t,n,i){let o=rn.getNumberOfComponents(n),r;switch(t){case X.BYTE:r=127;break;case X.UNSIGNED_BYTE:r=255;break;case X.SHORT:r=32767;break;case X.UNSIGNED_SHORT:r=65535;break;case X.INT:r=2147483647;break;case X.UNSIGNED_INT:r=4294967295;break}let s=new Float32Array(i*o);for(let a=0;a<i;a++)for(let c=0;c<o;c++){let l=a*o+c;s[l]=Math.max(e[l]/r,-1)}return s};fo.decodeRGB565=function(e,t){let n=e.length;u(t)||(t=new Float32Array(n*3));let i=32-1,o=64-1,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],l=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=l*r,t[p+1]=f*s,t[p+2]=d*r}return t};var jn=fo;var sQ=new h,aQ=new h,cQ=new h;function rIe(e,t,n,i,o){u(o)||(o=new h);let r,s,a,c,l,f,d,p;if(u(t.z)){if(h.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,sQ),s=h.subtract(i,t,aQ),a=h.subtract(e,t,cQ),c=h.dot(r,r),l=h.dot(r,s),f=h.dot(r,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(V.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(V.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(V.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=V.subtract(n,t,sQ),s=V.subtract(i,t,aQ),a=V.subtract(e,t,cQ),c=V.dot(r,r),l=V.dot(r,s),f=V.dot(r,a),d=V.dot(s,s),p=V.dot(s,a)}o.y=d*f-l*p,o.z=c*p-l*f;let g=c*d-l*l;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var Zb=rIe;var b5={};b5.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!u(n)){n=0;let a=0,c=t[a];for(;a<o;)c>n&&(n=c),++a,c=t[a]}let r=[];for(let a=0;a<n+1;a++)r[a]=0;let s=i+1;for(let a=0;a<o;++a)s-r[t[a]]>i&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};b5.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,E,v,I){for(;E.length>=1;){let M=E[E.length-1];if(E.splice(E.length-1,1),_[M].numLiveTriangles>0)return M}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,E,v,I,M,B,H){let U=-1,G,k=-1,Y=0;for(;Y<v.length;){let q=v[Y];I[q].numLiveTriangles&&(G=0,M-I[q].timeStamp+2*I[q].numLiveTriangles<=E&&(G=M-I[q].timeStamp),(G>k||k===-1)&&(k=G,U=q)),++Y}return U===-1?r(I,B,_,H):U}let a=t.length,c=0,l=0,f=t[l],d=a;if(u(n))c=n+1;else{for(;l<d;)f>c&&(c=f),++l,f=t[l];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;let m=0;for(;l<d;)p[t[l]].vertexTriangles.push(m),++p[t[l]].numLiveTriangles,p[t[l+1]].vertexTriangles.push(m),++p[t[l+1]].numLiveTriangles,p[t[l+2]].vertexTriangles.push(m),++p[t[l+2]].numLiveTriangles,++m,l+=3;let x=0,b=i+1;o=1;let T=[],A=[],C,S,w=0,D=[],O=a/3,R=[];for(g=0;g<O;g++)R[g]=!1;let N,F;for(;x!==-1;){T=[],S=p[x],F=S.vertexTriangles.length;for(let _=0;_<F;++_)if(m=S.vertexTriangles[_],!R[m]){R[m]=!0,l=m+m+m;for(let E=0;E<3;++E)N=t[l],T.push(N),A.push(N),D[w]=N,++w,C=p[N],--C.numLiveTriangles,b-C.timeStamp>i&&(C.timeStamp=b,++b),++l}x=s(t,i,T,p,b,A,c)}return D};var lM=b5;var fc={};function _M(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function sIe(e){let t=e.length,n=t/3*6,i=ke.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)_M(i,o,e[r],e[r+1],e[r+2]);return i}function aIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=ke.createTypedArray(t,n);_M(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)_M(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function cIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=ke.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)_M(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}fc.toWireframe=function(e){let t=e.indices;if(u(t)){switch(e.primitiveType){case Le.TRIANGLES:e.indices=sIe(t);break;case Le.TRIANGLE_STRIP:e.indices=aIe(t);break;case Le.TRIANGLE_FAN:e.indices=cIe(t);break}e.primitiveType=Le.LINES}return e};fc.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,o=e.attributes[t].values,r=i.length,s=new Float64Array(2*r),a=0;for(let f=0;f<r;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+o[f]*n,s[a++]=i[f+1]+o[f+1]*n,s[a++]=i[f+2]+o[f+2]*n;let c,l=e.boundingSphere;return u(l)&&(c=new se(l.center,l.radius+n)),new ct({attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Le.LINES,boundingSphere:c})};fc.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},o=0,r,s=t.length;for(r=0;r<s;++r){let a=t[r];u(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!u(i[a])&&(i[a]=o++);return i};fc.reorderForPreVertexCache=function(e){let t=ct.computeNumberOfVertices(e),n=e.indices;if(u(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=ke.createTypedArray(t,r),a=0,c=0,l=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=l,s[c]=l,++l),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&u(d[p])&&u(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,l*b);for(;x<t;){let A=i[x];if(A!==-1)for(let C=0;C<b;C++)T[b*A+C]=m[b*x+C];++x}g.values=T}}return e};fc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Le.TRIANGLES&&u(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=lM.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function lQ(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&u(e[n])&&u(e[n].values)){let i=e[n];t[n]=new Se({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function lIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(t[i].values)){let o=t[i];for(let r=0;r<o.componentsPerAttribute;++r)e[i].values.push(o.values[n*o.componentsPerAttribute+r])}}fc.fitToUnsignedShortIndices=function(e){let t=[],n=ct.computeNumberOfVertices(e);if(u(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=lQ(e.attributes),a=e.indices,c=a.length,l;e.primitiveType===Le.TRIANGLES?l=3:e.primitiveType===Le.LINES?l=2:e.primitiveType===Le.POINTS&&(l=1);for(let f=0;f<c;f+=l){for(let d=0;d<l;++d){let p=a[f+d],g=i[p];u(g)||(g=r++,i[p]=g,lIe(s,e.attributes,p)),o.push(g)}r+l>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new ct({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=lQ(e.attributes))}o.length!==0&&t.push(new ct({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var uQ=new h,uIe=new fe;fc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=u(o)?o:new Ii;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),l=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,uQ),p=s.cartesianToCartographic(d,uIe),g=o.project(p,uQ);c[l++]=g.x,c[l++]=g.y,c[l++]=g.z}return e.attributes[n]=r,e.attributes[i]=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var T5={high:0,low:0};fc.encodeAttribute=function(e,t,n,i){let o=e.attributes[t],r=o.values,s=r.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)Wn.encode(r[f],T5),a[f]=T5.high,c[f]=T5.low;let l=o.componentsPerAttribute;return e.attributes[n]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:a}),e.attributes[i]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:c}),delete e.attributes[t],e};var Hf=new h;function A5(e,t){if(u(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Hf),L.multiplyByPoint(e,Hf,Hf),h.pack(Hf,n,o)}}function C5(e,t){if(u(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Hf),$.multiplyByVector(e,Hf,Hf),Hf=h.normalize(Hf,Hf),h.pack(Hf,n,o)}}var uM=new L,fM=new $;fc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(L.equals(t,L.IDENTITY))return e;let n=e.geometry.attributes;A5(t,n.position),A5(t,n.prevPosition),A5(t,n.nextPosition),(u(n.normal)||u(n.tangent)||u(n.bitangent))&&(L.inverse(t,uM),L.transpose(uM,uM),L.getMatrix3(uM,fM),C5(fM,n.normal),C5(fM,n.tangent),C5(fM,n.bitangent));let i=e.geometry.boundingSphere;return u(i)&&(e.geometry.boundingSphere=se.transform(i,t,i)),e.modelMatrix=L.clone(L.IDENTITY),e};function fIe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&u(o[r])&&u(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let l=1;l<n;++l){let f=e[l][t].attributes[r];if(!u(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new Se({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var dIe=new h;function E5(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=u(e[0][t].indices),l=e[0][t].primitiveType,f=fIe(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,o=0;o<n;++o)for(p=e[o][t].attributes[i].values,g=p.length,r=0;r<g;++r)d[s++]=p[r];let m;if(c){let A=0;for(o=0;o<n;++o)A+=e[o][t].indices.length;let C=ct.computeNumberOfVertices(new ct({attributes:f,primitiveType:Le.POINTS})),S=ke.createTypedArray(C,A),w=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,R=O.length;for(s=0;s<R;++s)S[w++]=D+O[s];D+=ct.computeNumberOfVertices(e[o][t])}m=S}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!u(T)){x=void 0;break}h.add(T.center,x,x)}if(u(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let A=h.magnitude(h.subtract(T.center,x,dIe))+T.radius;A>b&&(b=A)}return new ct({attributes:f,indices:m,primitiveType:l,boundingSphere:u(x)?new se(x,b):void 0})}fc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];u(s.geometry)?t.push(s):u(s.westHemisphereGeometry)&&u(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(E5(t,"geometry")),n.length>0&&(o.push(E5(n,"westHemisphereGeometry")),o.push(E5(n,"eastHemisphereGeometry"))),o};var Mu=new h,gS=new h,$b=new h,Qb=new h;fc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),l;for(l=0;l<o;l++)s[l]={indexOffset:0,count:0,currentCount:0};let f=0;for(l=0;l<r;l+=3){let m=t[l],x=t[l+1],b=t[l+2],T=m*3,A=x*3,C=b*3;gS.x=i[T],gS.y=i[T+1],gS.z=i[T+2],$b.x=i[A],$b.y=i[A+1],$b.z=i[A+2],Qb.x=i[C],Qb.y=i[C+1],Qb.z=i[C+2],s[m].count++,s[x].count++,s[b].count++,h.subtract($b,gS,$b),h.subtract(Qb,gS,Qb),a[f]=h.cross($b,Qb,new h),f++}let d=0;for(l=0;l<o;l++)s[l].indexOffset+=d,d+=s[l].count;f=0;let p;for(l=0;l<r;l+=3){p=s[t[l]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[l+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[l+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(l=0;l<o;l++){let m=l*3;if(p=s[l],h.clone(h.ZERO,Mu),p.count>0){for(f=0;f<p.count;f++)h.add(Mu,a[c[p.indexOffset+f]],Mu);h.equalsEpsilon(h.ZERO,Mu,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],Mu)}h.equalsEpsilon(h.ZERO,Mu,P.EPSILON10)&&(Mu.z=1),h.normalize(Mu,Mu),g[m]=Mu.x,g[m+1]=Mu.y,g[m+2]=Mu.z}return e.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var hIe=new h,fQ=new h,mIe=new h;fc.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,o=e.attributes.normal.values,r=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),l;for(l=0;l<c.length;l++)c[l]=0;let f,d,p;for(l=0;l<a;l+=3){let x=n[l],b=n[l+1],T=n[l+2];f=x*3,d=b*3,p=T*3;let A=x*2,C=b*2,S=T*2,w=i[f],D=i[f+1],O=i[f+2],R=r[A],N=r[A+1],F=r[C+1]-N,_=r[S+1]-N,E=1/((r[C]-R)*_-(r[S]-R)*F),v=(_*(i[d]-w)-F*(i[p]-w))*E,I=(_*(i[d+1]-D)-F*(i[p+1]-D))*E,M=(_*(i[d+2]-O)-F*(i[p+2]-O))*E;c[f]+=v,c[f+1]+=I,c[f+2]+=M,c[d]+=v,c[d+1]+=I,c[d+2]+=M,c[p]+=v,c[p+1]+=I,c[p+2]+=M}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(l=0;l<s;l++){f=l*3,d=f+1,p=f+2;let x=h.fromArray(o,f,hIe),b=h.fromArray(c,f,mIe),T=h.dot(x,b);h.multiplyByScalar(x,T,fQ),h.normalize(h.subtract(b,fQ,b),b),g[f]=b.x,g[d]=b.y,g[p]=b.z,h.normalize(h.cross(x,b,b),b),m[f]=b.x,m[d]=b.y,m[p]=b.z}return e.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var yS=new V,zf=new h,dQ=new h,hQ=new h,dM=new V;fc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(u(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),R=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,zf),h.equals(zf,h.ZERO)){R+=2;continue}dM=jn.octEncodeInRange(zf,65535,dM),O[R++]=dM.x,O[R++]=dM.y}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=u(o),a=u(r);if(!s&&!a)return e;let c=e.attributes.tangent,l=e.attributes.bitangent,f=u(c),d=u(l),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=l.values),i=(s?p.length:g.length)/(s?3:2);let A=i,C=a&&s?2:1;C+=f||d?1:0,A*=C;let S=new Float32Array(A),w=0;for(n=0;n<i;++n){a&&(V.fromArray(g,n*2,yS),S[w++]=jn.compressTextureCoordinates(yS));let D=n*3;s&&u(m)&&u(x)?(h.fromArray(p,D,zf),h.fromArray(m,D,dQ),h.fromArray(x,D,hQ),jn.octPack(zf,dQ,hQ,yS),S[w++]=yS.x,S[w++]=yS.y):(s&&(h.fromArray(p,D,zf),S[w++]=jn.octEncodeFloat(zf)),f&&(h.fromArray(m,D,zf),S[w++]=jn.octEncodeFloat(zf)),d&&(h.fromArray(x,D,zf),S[w++]=jn.octEncodeFloat(zf)))}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:C,values:S}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function pIe(e){if(u(e.indices))return e;let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function _Ie(e){let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let o=3;o<t;++o)n[i++]=o-1,n[i++]=0,n[i++]=o;return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function gIe(e){let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;o<t-1;o+=2)n[i++]=o,n[i++]=o-1,n[i++]=o+1,o+2<t&&(n[i++]=o,n[i++]=o+1,n[i++]=o+2);return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function yIe(e){if(u(e.indices))return e;let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function xIe(e){let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return e.indices=n,e.primitiveType=Le.LINES,e}function bIe(e){let t=ct.computeNumberOfVertices(e),n=ke.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Le.LINES,e}function TIe(e){switch(e.primitiveType){case Le.TRIANGLE_FAN:return _Ie(e);case Le.TRIANGLE_STRIP:return gIe(e);case Le.TRIANGLES:return pIe(e);case Le.LINE_STRIP:return xIe(e);case Le.LINE_LOOP:return bIe(e);case Le.LINES:return yIe(e)}return e}function x_(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function AIe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){x_(e,e.y<0),x_(t,t.y<0),x_(n,n.y<0);return}let i=Math.abs(e.y),o=Math.abs(t.y),r=Math.abs(n.y),s;i>o?i>r?s=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;x_(e,a),x_(t,a),x_(n,a)}var mQ=new h;function Lu(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,mQ),e.y/(e.y-t.y),mQ),n),h.clone(n,i),x_(n,!0),x_(i,!1)}var s0=new h,a0=new h,c0=new h,l0=new h,S5={positions:new Array(7),indices:new Array(3*3)};function CIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;AIe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=S5.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(Lu(e,t,s0,c0),Lu(e,n,a0,l0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(Lu(t,n,s0,c0),Lu(t,e,a0,l0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(Lu(n,e,s0,c0),Lu(n,t,a0,l0),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(Lu(n,e,s0,c0),Lu(n,t,a0,l0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(Lu(t,n,s0,c0),Lu(t,e,a0,l0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(Lu(e,t,s0,c0),Lu(e,n,a0,l0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=S5.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=s0,c[4]=a0,c[5]=c0,c[6]=l0,c.length=7),S5}function pQ(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&u(n[o])&&u(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=ct.computeNumberOfVertices(e);return e.indices=ke.createTypedArray(i,e.indices),t&&(e.boundingSphere=se.fromVertices(n.position.values)),e}function eT(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(t[i].values)){let o=t[i];n[i]=new Se({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new ct({attributes:n,indices:[],primitiveType:e.primitiveType})}function I5(e,t,n){let i=u(e.geometry.boundingSphere);t=pQ(t,i),n=pQ(n,i),u(n)&&!u(t)?e.geometry=n:!u(n)&&u(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function P5(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,l,f,d,p){let g=e.fromArray(l,r*t,n),m=e.fromArray(l,s*t,i),x=e.fromArray(l,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(m,c.y,m),e.multiplyByScalar(x,c.z,x);let b=e.add(g,m,g);e.add(b,x,b),p&&e.normalize(b,b),e.pack(b,f,d*t)}}var EIe=P5(oe,4),pM=P5(h,3),TQ=P5(V,2),SIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,l=o[n]*i.z;r[s]=a+c+l>P.EPSILON6?1:0},xS=new h,w5=new h,v5=new h,wIe=new h;function hM(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){if(!u(r)&&!u(s)&&!u(a)&&!u(c)&&!u(l)&&g===0)return;let b=h.fromArray(o,e*3,xS),T=h.fromArray(o,t*3,w5),A=h.fromArray(o,n*3,v5),C=Zb(i,b,T,A,wIe);if(u(C)){if(u(r)&&pM(e,t,n,C,r,d.normal.values,x,!0),u(l)){let S=h.fromArray(l,e*3,xS),w=h.fromArray(l,t*3,w5),D=h.fromArray(l,n*3,v5);h.multiplyByScalar(S,C.x,S),h.multiplyByScalar(w,C.y,w),h.multiplyByScalar(D,C.z,D);let O;!h.equals(S,h.ZERO)||!h.equals(w,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(S,w,S),h.add(O,D,O),h.normalize(O,O)):(O=xS,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(u(f)&&SIe(e,t,n,C,f,d.applyOffset.values,x),u(s)&&pM(e,t,n,C,s,d.tangent.values,x,!0),u(a)&&pM(e,t,n,C,a,d.bitangent.values,x,!0),u(c)&&TQ(e,t,n,C,c,d.st.values,x),g>0)for(let S=0;S<g;S++){let w=p[S];vIe(e,t,n,C,x,m[w],d[w])}}}function vIe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,l=s.values;switch(a){case 4:EIe(e,t,n,i,c,l,o,!1);break;case 3:pM(e,t,n,i,c,l,o,!1);break;case 2:TQ(e,t,n,i,c,l,o,!1);break;default:l[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function uh(e,t,n,i,o,r){let s=e.position.values.length/3;if(o!==-1){let a=i[o],c=n[a];return c===-1?(n[a]=s,e.position.values.push(r.x,r.y,r.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(r.x,r.y,r.z),t.push(s),s}var DIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function _Q(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=u(n.normal)?n.normal.values:void 0,r=u(n.bitangent)?n.bitangent.values:void 0,s=u(n.tangent)?n.tangent.values:void 0,a=u(n.st)?n.st.values:void 0,c=u(n.extrudeDirection)?n.extrudeDirection.values:void 0,l=u(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!DIe[O]&&u(n[O])&&d.push(O);let p=d.length,g=eT(t),m=eT(t),x,b,T,A,C,S=[];S.length=i.length/3;let w=[];for(w.length=i.length/3,C=0;C<S.length;++C)S[C]=-1,w[C]=-1;let D=f.length;for(C=0;C<D;C+=3){let O=f[C],R=f[C+1],N=f[C+2],F=h.fromArray(i,O*3),_=h.fromArray(i,R*3),E=h.fromArray(i,N*3),v=CIe(F,_,E);if(u(v)&&v.positions.length>3){let I=v.positions,M=v.indices,B=M.length;for(let H=0;H<B;++H){let U=M[H],G=I[U];G.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=w),A=uh(x,b,T,f,U<3?C+U:-1,G),hM(O,R,N,G,i,o,s,r,a,c,l,x,d,p,n,A)}}else u(v)&&(F=v.positions[0],_=v.positions[1],E=v.positions[2]),F.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=w),A=uh(x,b,T,f,C,F),hM(O,R,N,F,i,o,s,r,a,c,l,x,d,p,n,A),A=uh(x,b,T,f,C+1,_),hM(O,R,N,_,i,o,s,r,a,c,l,x,d,p,n,A),A=uh(x,b,T,f,C+2,E),hM(O,R,N,E,i,o,s,r,a,c,l,x,d,p,n,A)}I5(e,m,g)}var AQ=tn.fromPointNormal(h.ZERO,h.UNIT_Y),IIe=new h,PIe=new h;function Jb(e,t,n,i,o,r,s){if(!u(s))return;let a=h.fromArray(i,e*3,xS);h.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function gQ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=u(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=eT(t),a=eT(t),c,l=r.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<l;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,xS),x=h.fromArray(i,g*3,w5),b;Math.abs(m.y)<P.EPSILON6&&(m.y<0?m.y=-P.EPSILON6:m.y=P.EPSILON6),Math.abs(x.y)<P.EPSILON6&&(x.y<0?x.y=-P.EPSILON6:x.y=P.EPSILON6);let T=s.attributes,A=s.indices,C=d,S=a.attributes,w=a.indices,D=f,O=Ei.lineSegmentPlane(m,x,AQ,v5);if(u(O)){let R=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,IIe);m.y<0&&(h.negate(R,R),T=a.attributes,A=a.indices,C=f,S=s.attributes,w=s.indices,D=d);let N=h.add(O,R,PIe);b=uh(T,A,C,r,c,m),Jb(p,g,m,i,b,T,o),b=uh(T,A,C,r,-1,N),Jb(p,g,N,i,b,T,o),h.negate(R,R),h.add(O,R,N),b=uh(S,w,D,r,-1,N),Jb(p,g,N,i,b,S,o),b=uh(S,w,D,r,c+1,x),Jb(p,g,x,i,b,S,o)}else{let R,N,F;m.y<0?(R=a.attributes,N=a.indices,F=f):(R=s.attributes,N=s.indices,F=d),b=uh(R,N,F,r,c,m),Jb(p,g,m,i,b,R,o),b=uh(R,N,F,r,c+1,x),Jb(p,g,x,i,b,R,o)}}I5(e,a,s)}var yQ=new V,OIe=new V,CQ=new h,EQ=new h,D5=new h,RIe=new h,MIe=new h,LIe=new h,xQ=new oe;function bQ(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,o=t.nextPosition.values,r=n.length;for(let s=0;s<r;s+=3){let a=h.unpack(n,s,CQ);if(a.x>0)continue;let c=h.unpack(i,s,EQ);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let l=h.unpack(o,s,D5);(a.y<0&&l.y>0||a.y>0&&l.y<0)&&(s+3<r?(o[s]=n[s+3],o[s+1]=n[s+4],o[s+2]=n[s+5]):h.pack(a,o,s))}}var NIe=5*P.EPSILON9,mM=P.EPSILON6;function FIe(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=n.prevPosition.values,r=n.nextPosition.values,s=n.expandAndWidth.values,a=u(n.st)?n.st.values:void 0,c=u(n.color)?n.color.values:void 0,l=eT(t),f=eT(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,A=h.fromArray(i,b*3,CQ),C=h.fromArray(i,T*3,EQ);if(Math.abs(A.y)<mM)for(A.y=mM*(C.y<0?-1:1),i[d*3+1]=A.y,i[(d+1)*3+1]=A.y,p=b*3;p<b*3+4*3;p+=3)o[p]=i[d*3],o[p+1]=i[d*3+1],o[p+2]=i[d*3+2];if(Math.abs(C.y)<mM)for(C.y=mM*(A.y<0?-1:1),i[(d+2)*3+1]=C.y,i[(d+3)*3+1]=C.y,p=b*3;p<b*3+4*3;p+=3)r[p]=i[(d+2)*3],r[p+1]=i[(d+2)*3+1],r[p+2]=i[(d+2)*3+2];let S=l.attributes,w=l.indices,D=f.attributes,O=f.indices,R=Ei.lineSegmentPlane(A,C,AQ,RIe);if(u(R)){m=!0;let N=h.multiplyByScalar(h.UNIT_Y,NIe,MIe);A.y<0&&(h.negate(N,N),S=f.attributes,w=f.indices,D=l.attributes,O=l.indices);let F=h.add(R,N,LIe);S.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.position.values.push(F.x,F.y,F.z),S.position.values.push(F.x,F.y,F.z),S.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),S.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),S.prevPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.nextPosition.values.push(F.x,F.y,F.z),S.nextPosition.values.push(F.x,F.y,F.z),S.nextPosition.values.push(F.x,F.y,F.z),S.nextPosition.values.push(F.x,F.y,F.z),h.negate(N,N),h.add(R,N,F),D.position.values.push(F.x,F.y,F.z),D.position.values.push(F.x,F.y,F.z),D.position.values.push(C.x,C.y,C.z,C.x,C.y,C.z),D.prevPosition.values.push(F.x,F.y,F.z),D.prevPosition.values.push(F.x,F.y,F.z),D.prevPosition.values.push(F.x,F.y,F.z),D.prevPosition.values.push(F.x,F.y,F.z),D.nextPosition.values.push(C.x,C.y,C.z,C.x,C.y,C.z),D.nextPosition.values.push(r[T*3],r[T*3+1],r[T*3+2]),D.nextPosition.values.push(r[T*3+3],r[T*3+4],r[T*3+5]);let _=V.fromArray(s,b*2,yQ),E=Math.abs(_.y);S.expandAndWidth.values.push(-1,E,1,E),S.expandAndWidth.values.push(-1,-E,1,-E),D.expandAndWidth.values.push(-1,E,1,E),D.expandAndWidth.values.push(-1,-E,1,-E);let v=h.magnitudeSquared(h.subtract(R,A,D5));if(v/=h.magnitudeSquared(h.subtract(C,A,D5)),u(c)){let I=oe.fromArray(c,b*4,xQ),M=oe.fromArray(c,T*4,xQ),B=P.lerp(I.x,M.x,v),H=P.lerp(I.y,M.y,v),U=P.lerp(I.z,M.z,v),G=P.lerp(I.w,M.w,v);for(p=b*4;p<b*4+2*4;++p)S.color.values.push(c[p]);for(S.color.values.push(B,H,U,G),S.color.values.push(B,H,U,G),D.color.values.push(B,H,U,G),D.color.values.push(B,H,U,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(u(a)){let I=V.fromArray(a,b*2,yQ),M=V.fromArray(a,(d+3)*2,OIe),B=P.lerp(I.x,M.x,v);for(p=b*2;p<b*2+2*2;++p)S.st.values.push(a[p]);for(S.st.values.push(B,I.y),S.st.values.push(B,M.y),D.st.values.push(B,I.y),D.st.values.push(B,M.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=S.position.values.length/3-4,w.push(g,g+2,g+1),w.push(g+1,g+2,g+3),g=D.position.values.length/3-4,O.push(g,g+2,g+1),O.push(g+1,g+2,g+3)}else{let N,F;for(A.y<0?(N=f.attributes,F=f.indices):(N=l.attributes,F=l.indices),N.position.values.push(A.x,A.y,A.z),N.position.values.push(A.x,A.y,A.z),N.position.values.push(C.x,C.y,C.z),N.position.values.push(C.x,C.y,C.z),p=d*3;p<d*3+4*3;++p)N.prevPosition.values.push(o[p]),N.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)N.expandAndWidth.values.push(s[p]),u(a)&&N.st.values.push(a[p]);if(u(c))for(p=d*4;p<d*4+4*4;++p)N.color.values.push(c[p]);g=N.position.values.length/3-4,F.push(g,g+2,g+1),F.push(g+1,g+2,g+3)}}m&&(bQ(f),bQ(l)),I5(e,f,l)}fc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(u(n)&&(n.center.x-n.radius>0||se.intersectPlane(n,tn.ORIGIN_ZX_PLANE)!==Zt.INTERSECTING))return e;if(t.geometryType!==Nf.NONE)switch(t.geometryType){case Nf.POLYLINES:FIe(e);break;case Nf.TRIANGLES:_Q(e);break;case Nf.LINES:gQ(e);break}else TIe(t),t.primitiveType===Le.TRIANGLES?_Q(e):t.primitiveType===Le.LINES&&gQ(e);return e};var Fn=fc;function Xc(e){this._ellipsoid=y(e,ie.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(Xc.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Xc.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};Xc.geodeticLatitudeToMercatorAngle=function(e){e>Xc.MaximumLatitude?e=Xc.MaximumLatitude:e<-Xc.MaximumLatitude&&(e=-Xc.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};Xc.MaximumLatitude=Xc.mercatorAngleToGeodeticLatitude(Math.PI);Xc.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=Xc.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return u(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};Xc.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=Xc.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return u(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Oi=Xc;function BIe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r<o;++r)if(!L.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)u(e[r].geometry)&&Fn.transformToWorldCoordinates(e[r]);else L.multiplyTransformation(t,e[0].modelMatrix,t)}function O5(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});let r=n.batchId.values;for(let s=0;s<o;++s)r[s]=t}function kIe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];u(i.geometry)?O5(i.geometry,n):u(i.westHemisphereGeometry)&&u(i.eastHemisphereGeometry)&&(O5(i.westHemisphereGeometry,n),O5(i.eastHemisphereGeometry,n))}}function UIe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,l,f,d=t.length;for(c=0;c<d;++c)if(u(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(BIe(t,a,o),!o)for(c=0;c<d;++c)u(t[c].geometry)&&Fn.splitLongitude(t[c]);if(kIe(t),r)for(c=0;c<d;++c){let g=t[c];u(g.geometry)?(Fn.reorderForPostVertexCache(g.geometry),Fn.reorderForPreVertexCache(g.geometry)):u(g.westHemisphereGeometry)&&u(g.eastHemisphereGeometry)&&(Fn.reorderForPostVertexCache(g.westHemisphereGeometry),Fn.reorderForPreVertexCache(g.westHemisphereGeometry),Fn.reorderForPostVertexCache(g.eastHemisphereGeometry),Fn.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Fn.combineInstances(t);for(d=p.length,c=0;c<d;++c){l=p[c];let g=l.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Fn.encodeAttribute(l,m,`${m}3DHigh`,`${m}3DLow`);else for(let m in g)if(g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE){let x=`${m}3D`,b=`${m}2D`;Fn.projectTo2D(l,m,x,b,n),u(l.boundingSphere)&&m==="position"&&(l.boundingSphereCV=se.fromVertices(l.attributes.position2D.values)),Fn.encodeAttribute(l,x,`${x}High`,`${x}Low`),Fn.encodeAttribute(l,b,`${b}High`,`${b}Low`)}s&&Fn.compressVertices(l)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)l=p[c],g=g.concat(Fn.fitToUnsignedShortIndices(l));p=g}return p}function R5(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let l=i[a];o=l.offset+l.count,s=l.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let l=0;l<c;++l){let d=e[l][t];if(!u(d))continue;let p=d.indices.length;o+p>r&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function VIe(e,t){let n=[];return R5(e,"geometry",t,n),R5(e,"westHemisphereGeometry",t,n),R5(e,"eastHemisphereGeometry",t,n),n}var Um={};Um.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=UIe(e),t.length>0&&(n=Fn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=VIe(i,t))),u(i[0].attributes)&&u(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),l=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;u(p)&&(c[f]=p.boundingSphere,l[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;u(g)&&u(m)&&(u(g.boundingSphere)&&u(m.boundingSphere)&&(c[f]=se.union(g.boundingSphere,m.boundingSphere)),u(g.boundingSphereCV)&&u(m.boundingSphereCV)&&(l[f]=se.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:l}};function zIe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];u(o)&&u(o.values)&&t.push(o.values.buffer)}u(e.indices)&&t.push(e.indices.buffer)}function HIe(e,t){let n=e.length;for(let i=0;i<n;++i)zIe(e[i],t)}function GIe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!u(o))continue;let r=o.attributes;t+=7+2*se.packedLength+(u(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&u(r[s])){let a=r[s];t+=5+a.values.length}}return t}Um.packCreateGeometryResults=function(e,t){let n=new Float64Array(GIe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],l=u(c);if(n[s++]=l?1:0,!l)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=u(c.boundingSphere)?1:0;n[s++]=f,f&&se.pack(c.boundingSphere,n,s),s+=se.packedLength;let d=u(c.boundingSphereCV)?1:0;n[s++]=d,d&&se.pack(c.boundingSphereCV,n,s),s+=se.packedLength;let p=c.attributes,g=[];for(let x in p)p.hasOwnProperty(x)&&u(p[x])&&(g.push(x),u(o[x])||(o[x]=i.length,i.push(x)));n[s++]=g.length;for(let x=0;x<g.length;x++){let b=g[x],T=p[b];n[s++]=o[b],n[s++]=T.componentDatatype,n[s++]=T.componentsPerAttribute,n[s++]=T.normalize?1:0,n[s++]=T.values.length,n.set(T.values,s),s+=T.values.length}let m=u(c.indices)?c.indices.length:0;n[s++]=m,m>0&&(n.set(c.indices,s),s+=m)}return t.push(n.buffer),{stringTable:i,packedData:n}};Um.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){o[r++]=void 0;continue}let c=n[s++],l=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=se.unpack(n,s)),s+=se.packedLength,n[s++]===1&&(p=se.unpack(n,s)),s+=se.packedLength;let x,b,T,A=new hn,C=n[s++];for(i=0;i<C;i++){let w=t[n[s++]],D=n[s++];T=n[s++];let O=n[s++]!==0;x=n[s++],b=X.createTypedArray(D,x);for(let R=0;R<x;R++)b[R]=n[s++];A[w]=new Se({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let S;if(x=n[s++],x>0){let w=b.length/T;for(S=ke.createTypedArray(w,x),i=0;i<x;i++)S[i]=n[s++]}o[r++]=new ct({primitiveType:c,geometryType:l,boundingSphere:d,boundingSphereCV:p,indices:S,attributes:A,offsetAttribute:f})}return o};function WIe(e,t){let n=e.length,i=new Float64Array(1+n*19),o=0;i[o++]=n;for(let r=0;r<n;r++){let s=e[r];if(L.pack(s.modelMatrix,i,o),o+=L.packedLength,u(s.attributes)&&u(s.attributes.offset)){let a=s.attributes.offset.value;i[o]=a[0],i[o+1]=a[1],i[o+2]=a[2]}o+=3}return t.push(i.buffer),i}function jIe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=L.unpack(t,o),s;o+=L.packedLength,u(t[o])&&(s={offset:new Ki(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}Um.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let o=0;o<i;o++)t.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:WIe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof Ii,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};Um.unpackCombineGeometryParameters=function(e){let t=jIe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=Um.unpackCreateGeometryResults(n[a]),l=c.length;for(let f=0;f<l;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=ie.clone(e.ellipsoid),s=e.isGeographic?new Ii(r):new Oi(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:L.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function SQ(e){let t=e.length,n=1+(se.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];u(s)?(i[o++]=1,se.pack(e[r],i,o)):i[o++]=0,o+=se.packedLength}return i}function wQ(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=se.unpack(e,i)),++n,i+=se.packedLength;return t}Um.packCombineGeometryResults=function(e,t){u(e.geometries)&&HIe(e.geometries,t);let n=SQ(e.boundingSpheres),i=SQ(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};Um.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:wQ(e.boundingSpheres),boundingSpheresCV:wQ(e.boundingSpheresCV)}};var tT=Um;var qIe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},_r=Object.freeze(qIe);var Ml={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};Ml.NUMBER_OF_SHADOW_MODES=4;Ml.castShadows=function(e){return e===Ml.ENABLED||e===Ml.CAST_ONLY};Ml.receiveShadows=function(e){return e===Ml.ENABLED||e===Ml.RECEIVE_ONLY};Ml.fromCastReceive=function(e,t){return e&&t?Ml.ENABLED:e?Ml.CAST_ONLY:t?Ml.RECEIVE_ONLY:Ml.DISABLED};var gn=Object.freeze(Ml);function ar(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=new L,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,gn.DISABLED),this._translucent=void 0,this._state=_r.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1,this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(ar.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}}});function YIe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&u(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!u(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var XIe=new V,KIe=new h,NQ=new oe;function FQ(e){let t=e.length;if(t===1)return e[0];if(t===2)return V.unpack(e,0,XIe);if(t===3)return h.unpack(e,0,KIe);if(t===4)return oe.unpack(e,0,NQ)}function ZIe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=YIe(i),s=r.length,a=[],c={},l={},f,p=i[0].attributes,g,m,x;for(g=0;g<s;++g)m=r[g],x=p[m],c[m]=g,a.push({functionName:`czm_batchTable_${m}`,componentDatatype:x.componentDatatype,componentsPerAttribute:x.componentsPerAttribute,normalize:x.normalize});r.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),l.center3DHigh=a.length-5,l.center3DLow=a.length-4,l.center2DHigh=a.length-3,l.center2DLow=a.length-2,l.radius=a.length-1),r.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let b=a.length,T=new Kb(t,a,o);for(g=0;g<o;++g){let A=i[g];p=A.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let R=FQ(x.value),N=c[m];T.setBatchedAttribute(g,N,R)}let C={primitive:y(A.pickPrimitive,e)};u(A.id)&&(C.id=A.id);let S=t.createPickId(C);e._pickIds.push(S);let w=S.color,D=NQ;D.x=z.floatToByte(w.red),D.y=z.floatToByte(w.green),D.z=z.floatToByte(w.blue),D.w=z.floatToByte(w.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=l,e._batchTableOffsetAttribute2DIndex=f}function $Ie(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new Se({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function QIe(e){let t=e.attributes,n=new hn;for(let o in t)t.hasOwnProperty(o)&&u(t[o])&&(n[o]=$Ie(t[o]));let i;if(u(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new ct({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:se.clone(e.boundingSphere)})}function JIe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:L.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var ePe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;ar._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=ePe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c};
- `),u(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),o+=`uniform mat4 u_modifiedModelView;
- `,r+=`in vec4 position;
- `,s+=`${c}
- {
- return u_modifiedModelView * position;
- }
- `,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c}
- {
- return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow);
- }
- `:(r+=`in vec3 ${a}2DHigh;
- in vec3 ${a}2DLow;
- `,s+=`${c}
- {
- vec4 p;
- if (czm_morphTime == 1.0)
- {
- p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow);
- }
- else if (czm_morphTime == 0.0)
- {
- p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy);
- }
- else
- {
- p = czm_columbusViewMorph(
- czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy),
- czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow),
- czm_morphTime);
- }
- return p;
- }
- `)}return[o,r,t,s].join(`
- `)};ar._appendShowToShader=function(e,t){return u(e._batchTableAttributeIndices.show)?`${ze.replaceMain(t,"czm_non_show_main")}
- void main()
- {
- czm_non_show_main();
- gl_Position *= czm_batchTable_show(batchId);
- }`:t};ar._updateColorAttribute=function(e,t,n){if(!u(e._batchTableAttributeIndices.color)&&!u(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function vQ(e){return`${ze.replaceMain(e,"czm_non_pick_main")}
- out vec4 v_pickColor;
- void main()
- {
- czm_non_pick_main();
- v_pickColor = czm_batchTable_pickColor(batchId);
- }`}function DQ(e){return`in vec4 v_pickColor;
- ${e}`}ar._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};ar._appendOffsetToShader=function(e,t){if(!u(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId;
- `;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition();
- `;return o+=` if (czm_sceneMode == czm_sceneMode3D)
- `,o+=` {
- `,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` }
- `,o+=` else
- `,o+=` {
- `,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` }
- `,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};ar._appendDistanceDisplayConditionToShader=function(e,t,n){if(!u(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=ze.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main()
- {
- czm_non_distanceDisplayCondition_main();
- vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId);
- vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId);
- vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId);
- float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId);
- `;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);
- `:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId);
- vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId);
- vec4 centerRTE;
- if (czm_morphTime == 1.0)
- {
- centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);
- }
- else if (czm_morphTime == 0.0)
- {
- centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy);
- }
- else
- {
- centerRTE = czm_columbusViewMorph(
- czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy),
- czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow),
- czm_morphTime);
- }
- `,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius;
- float distanceSq;
- if (czm_sceneMode == czm_sceneMode2D)
- {
- distanceSq = czm_eyeHeight2D.y - radiusSq;
- }
- else
- {
- distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq;
- }
- distanceSq = max(distanceSq, 0.0);
- float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;
- float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;
- float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0;
- gl_Position *= show;
- }`,`${i}
- ${o}`};function IQ(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",l=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st;
- `;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m});
- `}n&&o&&r?(f+=`vec3 normal;
- vec3 tangent;
- vec3 bitangent;
- `,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent);
- `):(n&&(f+=`vec3 normal;
- `,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""});
- `),o&&(f+=`vec3 tangent;
- `,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"});
- `),r&&(f+=`vec3 bitangent;
- `,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"});
- `));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=ze.replaceMain(p,"czm_non_compressed_main");let g=`void main()
- {
- ${d} czm_non_compressed_main();
- }`;return[l,f,p,g].join(`
- `)}function tPe(e){let t=ze.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() {
- czm_non_depth_clamp_main();
- gl_Position = czm_depthClamp(gl_Position);}
- `,t}function nPe(e){let t=ze.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() {
- czm_non_depth_clamp_main();
- #if defined(LOG_DEPTH)
- czm_writeLogDepth();
- #else
- czm_writeDepthClamp();
- #endif
- }
- `,t}function PQ(e,t){let n=e.vertexAttributes}function iPe(e,t){return function(){return e[t]}}var M5=Math.max(Bt.hardwareConcurrency-1,1),gM,oPe=new pi("combineGeometry");function rPe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===_r.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],l=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),l.push({moduleName:i._workerName,geometry:i});if(!u(gM))for(gM=new Array(M5),o=0;o<M5;o++)gM[o]=new pi("createGeometry");let f;for(l=aM(l,M5),o=0;o<l.length;o++){let d=0,p=l[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,u(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let m;if(d>0){let x=new Float64Array(d);for(m=[x.buffer],r=0;r<g;++r)f=p[r],i=f.geometry,u(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(gM[o].scheduleTask({subTasks:l[o]},m))}e._state=_r.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=_r.CREATED}).catch(function(d){TS(e,t,_r.FAILED,d)})}else if(e._state===_r.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,l=t.mapProjection,f=oPe.scheduleTask(tT.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:l.ellipsoid,projection:l,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=_r.COMBINING,Promise.resolve(f).then(function(d){let p=tT.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=L.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=_r.COMBINED):TS(e,t,_r.FAILED,void 0)}).catch(function(d){TS(e,t,_r.FAILED,d)})}}function sPe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;u(p.attributes)&&u(p.primitiveType)?g=QIe(p):g=p.constructor.createGeometry(p),o[c++]=JIe(s,g),r.push(s.id)}o.length=c;let l=t.scene3DOnly,f=t.mapProjection,d=tT.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:l,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=L.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=_r.COMBINED):TS(e,t,_r.FAILED,void 0)}function aPe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!u(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!u(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new se;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let x=a[i],b=e._batchTable.getBatchedAttribute(i,n,new h);x=r[i].clone(x),VQ(x,b,o[i])}let c=[],l=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||se.intersectPlane(x,tn.ORIGIN_ZX_PLANE)!==Zt.INTERSECTING?c.push(x):(l.push(x),f.push(x))}let d=c[0],p=f[0],g=l[0];for(i=1;i<c.length;i++)d=se.union(d,c[i]);for(i=1;i<f.length;i++)p=se.union(p,f[i]);for(i=1;i<l.length;i++)g=se.union(g,l[i]);let m=[];for(u(d)&&m.push(d),u(p)&&m.push(p),u(g)&&m.push(g),i=0;i<m.length;i++){let x=m[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=x,e._boundingSphereCV[i]=se.projectTo2D(x,t.mapProjection,e._boundingSphereCV[i])}ar._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var OQ=new Wn,BQ=new fe,kQ=new h,UQ=new se;function cPe(e,t){if(!u(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,o=i.center3DHigh,r=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,l=t.mapProjection,f=l.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!u(x))continue;let b=e.modelMatrix;u(b)&&(x=se.transform(x,b,UQ));let T=x.center,A=x.radius,C=Wn.fromCartesian(T,OQ);if(d.setBatchedAttribute(m,o,C.high),d.setBatchedAttribute(m,r,C.low),!t.scene3DOnly){let S=f.cartesianToCartographic(T,BQ),w=l.project(S,kQ);C=Wn.fromCartesian(w,OQ),d.setBatchedAttribute(m,s,C.high),d.setBatchedAttribute(m,a,C.low)}d.setBatchedAttribute(m,c,A)}e._batchTableBoundingSpheresUpdated=!0}var L5=new h,lPe=new h;function RQ(e,t){if(!u(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,o=t.mapProjection,r=o.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let l=0;l<c;++l){let f=a[l];if(!u(f))continue;let d=s.getBatchedAttribute(l,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(l,i,h.ZERO);continue}let p=e.modelMatrix;u(p)&&(f=se.transform(f,p,UQ));let g=f.center;g=r.scaleToGeodeticSurface(g,lPe);let m=r.cartesianToCartographic(g,BQ),x=o.project(m,kQ),b=h.add(d,g,L5);m=r.cartesianToCartographic(b,m);let T=o.project(m,L5),A=h.subtract(T,x,L5),C=A.x;A.x=A.z,A.z=A.y,A.y=C,s.setBatchedAttribute(l,i,A)}e._batchTableOffsetsUpdated=!0}function uPe(e,t){let n=e._attributeLocations,i=e._geometries,o=t.scene3DOnly,r=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let l=i[c];if(s.push(ti.fromGeometry({context:r,geometry:l,attributeLocations:n,bufferUsage:Be.STATIC_DRAW,interleave:e._interleave})),u(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,l);else if(e._boundingSpheres.push(se.clone(l.boundingSphere)),e._boundingSphereWC.push(new se),!o){let f=l.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(se.clone(l.boundingSphereCV)),e._boundingSphere2D.push(new se),e._boundingSphereMorph.push(new se)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,TS(e,t,_r.COMPLETE,void 0)}function fPe(e,t,n,i){let o=n.getRenderState(),r;i?(r=Ge(o,!1),r.cull={enabled:!0,face:gi.BACK},e._frontFaceRS=Ve.fromCache(r),r.cull.face=gi.FRONT,e._backFaceRS=Ve.fromCache(r)):(e._frontFaceRS=Ve.fromCache(o),e._backFaceRS=e._frontFaceRS),r=Ge(o,!1),u(e._depthFailAppearance)&&(r.depthTest.enabled=!1),u(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=Ge(o,!1),r.depthTest.func=uc.GREATER,i?(r.cull={enabled:!0,face:gi.BACK},e._frontFaceDepthFailRS=Ve.fromCache(r),r.cull.face=gi.FRONT,e._backFaceDepthFailRS=Ve.fromCache(r)):(e._frontFaceDepthFailRS=Ve.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function dPe(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=ar._appendOffsetToShader(e,r),r=ar._appendShowToShader(e,r),r=ar._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=vQ(r),r=ar._updateColorAttribute(e,r,!1),r=IQ(e,r),r=ar._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=DQ(s),e._sp=Kt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),PQ(e._sp,o),u(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=ar._appendShowToShader(e,r),r=ar._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=vQ(r),r=ar._updateColorAttribute(e,r,!0),r=IQ(e,r),r=ar._modifyShaderPosition(e,r,t.scene3DOnly),r=tPe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=DQ(s),s=nPe(s),e._spDepthFail=Kt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),PQ(e._spDepthFail,o))}var bS=new L,MQ=new h;function LQ(e,t,n,i){let o=u(n)?n._uniforms:void 0,r={},s=t.uniforms;if(u(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=iPe(s,c));let a=gt(r,o);return a=e._batchTable.getUniformMapCallback()(a),u(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return L.multiply(c,e._modelMatrix,bS),L.multiplyByPoint(bS,e.rtcCenter,MQ),L.setTranslation(bS,MQ,bS),bS}),a}function hPe(e,t,n,i,o,r,s,a){let c=LQ(e,t,n,a),l;u(e._depthFailAppearance)&&(l=LQ(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?Ee.TRANSLUCENT:Ee.OPAQUE,d=o?2:1;d*=u(e._depthFailAppearance)?2:1,r.length=e._va.length*d;let p=r.length,g=0;for(let m=0;m<p;++m){let x;o&&(x=r[m],u(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,++m),x=r[m],u(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,u(e._depthFailAppearance)&&(o&&(++m,x=r[m],u(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=l,x.pass=f),++m,x=r[m],u(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=l,x.pass=f),++g}}ar._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!L.equals(n,e._modelMatrix))for(L.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],u(s)&&(e._boundingSphereWC[o]=se.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=se.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=se.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(u(a))for(r=e._boundingSpheres.length,o=0;o<r;++o){s=e._boundingSpheres[o];let c=e._boundingSphereWC[o],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function mPe(e,t,n,i,o,r,s,a){ar._updateBoundingVolumes(e,t,o);let c;t.mode===te.SCENE3D?c=e._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===te.SCENE2D&&u(e._boundingSphere2D)?c=e._boundingSphere2D:u(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let l=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=gn.castShadows(e.shadows),g=gn.receiveShadows(e.shadows),m=n.length,x=a?2:1;x*=u(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),A=n[b];A.modelMatrix=o,A.boundingVolume=c[T],A.cull=r,A.debugShowBoundingVolume=s,A.castShadows=p,A.receiveShadows=g,d?A.pickId="v_pickColor":A.pickId=void 0,l.push(A)}}}ar.prototype.update=function(e){if(!u(this.geometryInstances)&&this._va.length===0||u(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!u(this.appearance)||e.mode!==te.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(u(this._error))throw this._error;if(this._state===_r.FAILED)return;let t=e.context;if(u(this._batchTable)||ZIe(this,t),this._batchTable.attributes.length>0){if(zt.maximumVertexTextureImageUnits===0)throw new ue("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==_r.COMPLETE&&this._state!==_r.COMBINED&&(this.asynchronous?rPe(this,e):sPe(this,e)),this._state===_r.COMBINED&&(cPe(this,e),RQ(this,e),uPe(this,e)),!this.show||this._state!==_r.COMPLETE)return;this._batchTableOffsetsUpdated||RQ(this,e),this._recomputeBoundingSpheres&&aPe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=u(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),u(this._material)&&this._material.update(t);let l=n.closed&&c;o&&y(this._createRenderStatesFunction,fPe)(this,t,n,l),r&&y(this._createShaderProgramFunction,dPe)(this,e,n),(o||r)&&y(this._createCommandsFunction,hPe)(this,n,i,c,l,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,mPe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,l)};var pPe=new se,_Pe=new se;function VQ(e,t,n){if(n===nn.TOP){let i=se.clone(e,pPe),o=se.clone(e,_Pe);o.center=h.add(o.center,t,o.center),e=se.union(i,o,e)}else n===nn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function gPe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return u(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function yPe(e,t,n,i,o){return function(r){let s=FQ(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var xPe=new h;function bPe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(u(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;u(r)&&VQ(i,h.fromArray(r.get(),0,xPe),e._offsetInstanceExtend[n]),u(o)&&(i=se.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function TPe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}ar.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(u(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let l=0;l<r;++l){let f=(i+l)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let l in a)if(a.hasOwnProperty(l)){let f=a[l];c[l]={get:gPe(s,n,f),set:yPe(s,n,f,this,l)}}return bPe(this,c,n),TPe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};ar.prototype.isDestroyed=function(){return!1};ar.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,le(this)};function TS(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){if(e._ready=e._state===_r.COMPLETE||e._state===_r.FAILED,!u(i))return!0})}var Sn=ar;function APe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var dc=APe;var AS=`#ifdef TEXTURE_COORDINATES
- #ifdef SPHERICAL
- in vec4 v_sphericalExtents;
- #else
- in vec2 v_inversePlaneExtents;
- in vec4 v_westPlane;
- in vec4 v_southPlane;
- #endif
- in vec3 v_uvMinAndSphericalLongitudeRotation;
- in vec3 v_uMaxAndInverseDistance;
- in vec3 v_vMaxAndInverseDistance;
- #endif
- #ifdef PER_INSTANCE_COLOR
- in vec4 v_color;
- #endif
- #ifdef NORMAL_EC
- vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) {
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth);
- return eyeCoordinate.xyz / eyeCoordinate.w;
- }
- vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) {
- vec2 glFragCoordXY = gl_FragCoord.xy;
-
- float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw));
- float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw));
-
-
- bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw);
- float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y);
- float useDownOrLeft = float(useUpOrRight == 0.0);
- vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth);
- vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth);
- return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft;
- }
- #endif
- void main(void)
- {
- #ifdef REQUIRES_EC
- float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw));
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
- #endif
- #ifdef REQUIRES_WC
- vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate;
- vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w;
- #endif
- #ifdef TEXTURE_COORDINATES
- vec2 uv;
- #ifdef SPHERICAL
-
- vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate);
- sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z;
- sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi);
- uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w;
- uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z;
- #else
-
- uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x;
- uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y;
- #endif
- #endif
- #ifdef PICK
- #ifdef CULL_FRAGMENTS
-
-
-
-
- if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) {
- out_FragColor.a = 1.0;
- czm_writeDepthClamp();
- }
- #else
- out_FragColor.a = 1.0;
- #endif
- #else
- #ifdef CULL_FRAGMENTS
-
-
-
- if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) {
- discard;
- }
- #endif
- #ifdef NORMAL_EC
-
- vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0));
- vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0));
- vec3 normalEC = normalize(cross(leftRight, downUp));
- #endif
- #ifdef PER_INSTANCE_COLOR
- vec4 color = czm_gammaCorrect(v_color);
- #ifdef FLAT
- out_FragColor = color;
- #else
- czm_materialInput materialInput;
- materialInput.normalEC = normalEC;
- materialInput.positionToEyeEC = -eyeCoordinate.xyz;
- czm_material material = czm_getDefaultMaterial(materialInput);
- material.diffuse = color.rgb;
- material.alpha = color.a;
- out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC);
- #endif
-
- out_FragColor.rgb *= out_FragColor.a;
- #else
-
-
-
- czm_materialInput materialInput;
- #ifdef USES_NORMAL_EC
- materialInput.normalEC = normalEC;
- #endif
- #ifdef USES_POSITION_TO_EYE_EC
- materialInput.positionToEyeEC = -eyeCoordinate.xyz;
- #endif
- #ifdef USES_TANGENT_TO_EYE
- materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC);
- #endif
- #ifdef USES_ST
-
-
-
- materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z;
- materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z;
- #endif
- czm_material material = czm_getMaterial(materialInput);
- #ifdef FLAT
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #else
- out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC);
- #endif
-
- out_FragColor.rgb *= out_FragColor.a;
- #endif
- czm_writeDepthClamp();
- #endif
- }
- `;function Nu(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new N5;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new N5;if(o.requiresTextureCoordinates=e,n instanceof on)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource}
- ${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}Nu.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof on&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof on||(o=t.material.shaderSource),new ze({defines:i,sources:[o,AS]})};Nu.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new ze({defines:n,sources:[AS],pickColorQualifier:"in"})};Nu.prototype.createVertexShader=function(e,t,n,i){return XQ(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Nu.prototype.createPickVertexShader=function(e,t,n,i){return XQ(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var zQ=new h,HQ=new fe,GQ={high:0,low:0};function XQ(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let l=HQ;l.longitude=P.PI,l.latitude=0,l.height=0;let f=s.project(l,zQ),d=Wn.encode(f.x,GQ);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=HQ;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,zQ);d=Wn.encode(g.x,GQ),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),u(r)&&r instanceof on&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new ze({defines:c,sources:[o]})}function N5(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(N5.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function WQ(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/V.distance(t,e)}var CPe=[new V,new V,new V,new V];function KQ(e,t){let n=CPe,i=V.unpack(t,0,n[0]),o=V.unpack(t,2,n[1]),r=V.unpack(t,4,n[2]);e.uMaxVmax=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/WQ(i,o,r),a=1/WQ(i,r,o);e.uvMinAndExtents=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var ZQ=new fe,$Q=new h,EPe=new h,SPe=new h,yM={high:0,low:0};function QQ(e,t,n){let i=ZQ;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,$Q);i.latitude=e.north;let r=t.project(i,EPe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,SPe),a=[0,0,0,0],c=[0,0,0,0],l=Wn.encode(o.x,yM);a[0]=l.high,c[0]=l.low,l=Wn.encode(o.y,yM),a[1]=l.high,c[1]=l.low,l=Wn.encode(r.y,yM),a[2]=l.high,c[2]=l.low,l=Wn.encode(s.x,yM),a[3]=l.high,c[3]=l.low,n.planes2D_HIGH=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var wPe=new L,vPe=new L,jQ=new h,DPe=new fe,IPe=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function PPe(e,t,n,i,o,r){let s=ce.center(e,DPe);s.height=n;let a=fe.toCartesian(s,t,jQ),c=Rt.eastNorthUpToFixedFrame(a,t,wPe),l=L.inverse(c,vPe),f=e.west,d=e.east,p=e.north,g=e.south,m=IPe;m[0].latitude=g,m[0].longitude=f,m[1].latitude=p,m[1].longitude=f,m[2].latitude=p,m[2].longitude=d,m[3].latitude=g,m[3].longitude=d;let x=(f+d)*.5,b=(p+g)*.5;m[4].latitude=g,m[4].longitude=x,m[5].latitude=p,m[5].longitude=x,m[6].latitude=b,m[6].longitude=f,m[7].latitude=b,m[7].longitude=d;let T=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,C=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let R=0;R<8;R++){m[R].height=n;let N=fe.toCartesian(m[R],t,jQ);L.multiplyByPoint(l,N,N),N.z=0,T=Math.min(T,N.x),A=Math.max(A,N.x),C=Math.min(C,N.y),S=Math.max(S,N.y)}let w=i;w.x=T,w.y=C,w.z=0,L.multiplyByPoint(c,w,w);let D=o;D.x=A,D.y=C,D.z=0,L.multiplyByPoint(c,D,D),h.subtract(D,w,o);let O=r;O.x=T,O.y=S,O.z=0,L.multiplyByPoint(c,O,O),h.subtract(O,w,r)}var OPe=new h,RPe=new h,MPe=new Wn;Nu.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=$Q,s=OPe,a=RPe;PPe(e,n,y(o,0),r,s,a);let c={};KQ(c,t);let l=Wn.fromCartesian(r,MPe);return c.southWest_HIGH=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.high,[0,0,0])}),c.southWest_LOW=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.low,[0,0,0])}),c.eastward=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new dc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),QQ(e,i,c),c};var LPe=new h;function qQ(e,t,n,i){let o=ZQ;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,LPe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var YQ=new V;Nu.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=qQ(e.south,e.west,n,YQ),r=o.x,s=o.y,a=qQ(e.north,e.east,n,YQ),c=a.x,l=a.y,f=0;s>l&&(f=P.PI-s,s=-P.PI,l+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,l+=P.EPSILON5;let d=1/(l-s),p=1/(c-r),g={sphericalExtents:new dc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new dc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return KQ(g,t),QQ(e,i,g),g};Nu.hasAttributesForTextureCoordinatePlanes=function(e){return u(e.southWest_HIGH)&&u(e.southWest_LOW)&&u(e.northward)&&u(e.eastward)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};Nu.hasAttributesForSphericalExtents=function(e){return u(e.sphericalExtents)&&u(e.longitudeRotation)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};function NPe(e){return Math.max(e.width,e.height)>Nu.MAX_WIDTH_FOR_PLANAR_EXTENTS}Nu.shouldUseSphericalCoordinates=function(e){return NPe(e)};Nu.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var Fu=Nu;var FPe={NEVER:ee.NEVER,LESS:ee.LESS,EQUAL:ee.EQUAL,LESS_OR_EQUAL:ee.LEQUAL,GREATER:ee.GREATER,NOT_EQUAL:ee.NOTEQUAL,GREATER_OR_EQUAL:ee.GEQUAL,ALWAYS:ee.ALWAYS},Vn=Object.freeze(FPe);var BPe={ZERO:ee.ZERO,KEEP:ee.KEEP,REPLACE:ee.REPLACE,INCREMENT:ee.INCR,DECREMENT:ee.DECR,INVERT:ee.INVERT,INCREMENT_WRAP:ee.INCR_WRAP,DECREMENT_WRAP:ee.DECR_WRAP},ft=Object.freeze(BPe);var xM={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};xM.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Vn.ALWAYS,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},backFunction:Vn.ALWAYS,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},reference:xM.CESIUM_3D_TILE_MASK,mask:xM.CESIUM_3D_TILE_MASK}};var Lt=Object.freeze(xM);function u0(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Un.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(u0.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});u0.isSupported=function(e){return e.context.stencilBuffer};function nT(e,t){let n=t?Vn.EQUAL:Vn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:n,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:uc.LESS_OR_EQUAL},depthMask:!1}}function B5(e){return{stencilTest:{enabled:e,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var kPe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function UPe(e,t,n,i){if(u(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(nT(o,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(nT(o,!0)),e._rsColorPass=Ve.fromCache(B5(o,!1)),e._rsPickPass=Ve.fromCache(kPe)}function VPe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection;
- `,r=` extrudeDirection = czm_octDecode(${n}, 65535.0);
- `,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=ze.replaceMain(s,"czm_non_compressed_main");let a=`void main()
- {
- ${r} czm_non_compressed_main();
- }`;return[i,o,s,a].join(`
- `)}}function zPe(e,t){let n=t.context,i=e._primitive,o=sM;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=Sn._appendDistanceDisplayConditionToShader(i,o),o=Sn._modifyShaderPosition(e,o,t.scene3DOnly),o=Sn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=VPe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new ze({defines:[a],sources:[o]}),l=new ze({sources:[r0]}),f=e._primitive._attributeLocations,d=new Fu(s,r,e.appearance);if(e._spStencil=Kt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f}),e._primitive.allowPicking){let m=ze.createPickVertexShaderSource(o);m=Sn._appendShowToShader(i,m),m=Sn._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=Kt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!u(T)){let A=d.createPickFragmentShader(!0),C=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:f})}e._spPick2D=T}}else e._spPick=Kt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});o=Sn._appendShowToShader(i,o),c=new ze({defines:[a],sources:[o]}),e._sp=Kt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Kt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!u(m)){let x=d.createFragmentShader(!0),b=d.createVertexShader([a],o,!0,t.mapProjection);m=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f})}e._spColor2D=m}}function HPe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),l=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],u(r)||(r=t[o]=new et({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=Ee.TERRAIN_CLASSIFICATION,s=et.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],u(r)||(r=t[o+1]=new et({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=Ee.TERRAIN_CLASSIFICATION;let x=e.appearance.material;if(u(x)&&(c=gt(c,x._uniforms)),r.uniformMap=c,s=et.shallowClone(r,r.derivedCommands.tileset),s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,l){let b=et.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=et.shallowClone(s,s.derivedCommands.appearance2D),b.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=b}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let m=f[g]=et.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function GPe(e,t){let n=e._usePickOffsets,i=e._primitive,o=i._va.length*2,r,s=0,a;n&&(r=i._pickOffsets,o=r.length*2),t.length=o;let c,l,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<o;c+=2){let m=i._va[d++];if(n&&(a=r[s++],m=i._va[a.index]),l=t[c],u(l)||(l=t[c]=new et({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsStencilDepthPass,l.shaderProgram=e._sp,l.uniformMap=p,l.pass=Ee.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=et.shallowClone(l,l.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,l=t[c+1],u(l)||(l=t[c+1]=new et({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsPickPass,l.shaderProgram=e._spPick,l.uniformMap=p,l.pass=Ee.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=et.shallowClone(l,l.derivedCommands.tileset),f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,g){let x=et.shallowClone(l,l.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,l.derivedCommands.pick2D=x,x=et.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function WPe(e,t,n,i,o,r,s){HPe(e,r),GPe(e,s)}function JQ(e,t){return Math.floor(e%t/2)}function F5(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function eJ(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function jPe(e,t,n,i,o,r,s,a){let c=e._primitive;Sn._updateBoundingVolumes(c,t,o);let l;t.mode===te.SCENE3D?l=c._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?l=c._boundingSphereCV:t.mode===te.SCENE2D&&u(c._boundingSphere2D)?l=c._boundingSphere2D:u(c._boundingSphereMorph)&&(l=c._boundingSphereMorph);let f=e.classificationType,d=f!==Un.CESIUM_3D_TILE,p=f!==Un.TERRAIN,g=t.passes,m,x,b;if(g.render){let T=n.length;for(m=0;m<T;++m)x=l[JQ(m,T)],d&&(b=n[m],F5(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,F5(b,t,o,r,x,s));if(t.invertClassification){let A=e._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=l[m],b=A[m],F5(b,t,o,r,x,s)}}if(g.pick){let T=i.length,A=c._pickOffsets;for(m=0;m<T;++m){let C=A[JQ(m,T)];x=l[C.index],d&&(b=i[m],eJ(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,eJ(b,t,o,r,x))}}}u0.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;let t=this.appearance;u(t)&&u(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!u(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,l=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=Fu.hasAttributesForSphericalExtents(c),g=Fu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;u(x)&&(l=!0),f=f&&u(x)&&kt.equals(d,x)}if(!f&&!p&&!g)throw new de("All GeometryInstances must have the same color attribute except via GroundPrimitives");l&&!u(t)&&(t=new on({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=l;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new yt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,u(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,A){UPe(n,b)},i._createShaderProgramFunction=function(x,b,T){zPe(n,b)},i._createCommandsFunction=function(x,b,T,A,C,S,w){WPe(n,void 0,void 0,!0,!1,S,w)},u(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){n._updateAndQueueCommandsFunction(x,b,T,A,C,S,w,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){jPe(n,b,T,A,C,S,w,D)},this._primitive=new Sn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(nT(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(nT(!1,!0)),this._rsColorPass=Ve.fromCache(B5(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(nT(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(nT(!0,!0)),this._rsColorPass=Ve.fromCache(B5(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{u(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};u0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};u0.prototype.isDestroyed=function(){return!1};u0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,le(this)};var CS=u0;var qPe={u_globeMinimumAltitude:function(){return 55e3}};function Kc(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!u(t)&&u(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(u(a)&&u(a.color)){t=new on({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Un.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1,this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=li._defaultMaxTerrainHeight,this._minTerrainHeight=li._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let i=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:i,_extruded:!0,_uniformMap:qPe}}Object.defineProperties(Kc.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}}});Kc.isSupported=CS.isSupported;function tJ(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function nJ(e){return function(t,n){return e._minHeight}}var YPe=new h,XPe=new h,KPe=new h,ZPe=new fe,$Pe=new ce;function bM(e,t){let n=e.mapProjection.ellipsoid;if(!u(t.attributes)||!u(t.attributes.position3DHigh))return u(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,YPe),g=h.unpack(o,d,XPe),m=h.add(p,g,KPe),x=n.cartesianToCartographic(m,ZPe),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),l=Math.max(l,T)}let f=$Pe;return f.north=c,f.south=s,f.east=l,f.west=a,f}function QPe(e,t,n){let i=li.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function JPe(e,t,n){let i=t.mapProjection.ellipsoid,o=bM(t,n),r=On.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=se.fromRectangleWithHeights2D(o,s,e._maxHeight,e._minHeight);h.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function k5(e,t){return Math.floor(e%t/2)}function U5(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==te.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function iJ(e,t,n,i,o,r){let s=e._primitive;n.mode!==te.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,n.commandList.push(t)}function e1e(e,t,n,i,o,r,s,a){let c;t.mode===te.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let l=e.classificationType,f=l!==Un.CESIUM_3D_TILE,d=l!==Un.TERRAIN,p=t.passes,g=e._primitive,m,x,b;if(p.render){let T=n.length;for(m=0;m<T;++m)x=c[k5(m,T)],f&&(b=n[m],U5(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,U5(e,b,t,o,r,x,s));if(t.invertClassification){let A=g._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=c[m],b=A[m],U5(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,A;for(e._useFragmentCulling||(A=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[k5(m,T)],!e._useFragmentCulling){let C=A[k5(m,T)];x=c[C.index]}f&&(b=i[m],iJ(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,iJ(e,b,t,o,r,x))}}}Kc.initializeTerrainHeights=function(){return li.initialize()};Kc.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!li.initialized){Kc.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!u(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,l=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=bM(e,r);u(d)?u(x)&&ce.union(d,x,d):d=ce.clone(x);let b=o.id;if(u(b)&&u(x)){let T=li.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!u(s)||u(s.createShadowVolume)}QPe(this,d,i);let p=e.terrainExaggeration,g=e.terrainExaggerationRelativeHeight;this._minHeight=Yc.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Yc.getHeight(this._maxTerrainHeight,p,g);let m=Kc._supportsMaterials(e.context);if(this._useFragmentCulling=m,m){let x,b=!0;for(f=0;f<c;++f)if(o=a[f],r=o.geometry,d=bM(e,r),Fu.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=bM(e,r),A=r.textureCoordinateRotationPoints;b?x=Fu.getPlanarTextureCoordinateAttributes(T,A,i,e.mapProjection,this._maxHeight):x=Fu.getSphericalExtentGeometryInstanceAttributes(T,A,i,e.mapProjection);let C=o.attributes;for(let S in C)C.hasOwnProperty(S)&&(x[S]=C[S]);l[f]=new yt({geometry:s.createShadowVolume(r,nJ(this),tJ(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,l[f]=new yt({geometry:s.createShadowVolume(r,nJ(this),tJ(this)),attributes:o.attributes,id:o.id});n.geometryInstances=l,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){JPe(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,w,D){e1e(t,b,T,A,C,S,w,D)},this._primitive=new CS(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&u(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Kc.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Kc.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Kc.prototype.isDestroyed=function(){return!1};Kc.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};Kc._supportsMaterials=function(e){return e.depthTexture};Kc.supportsMaterials=function(e){return Kc._supportsMaterials(e.frameState.context)};var Zc=Kc;function iT(){de.throwInstantiationError()}Object.defineProperties(iT.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});iT.prototype.getType=de.throwInstantiationError;iT.prototype.getValue=de.throwInstantiationError;iT.prototype.equals=de.throwInstantiationError;iT.getValue=function(e,t,n){let i;return u(t)&&(i=t.getType(e),u(i))?((!u(n)||n.type!==i)&&(n=Hi.fromType(i)),t.getValue(e,n.uniforms),n):((!u(n)||n.type!==Hi.ColorType)&&(n=Hi.fromType(Hi.ColorType)),z.clone(z.WHITE,n.uniforms.color),n)};var $o=iT;function f0(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}f0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!j.getValueOrDefault(t.show,n,!0)};f0.prototype._setOptions=de.throwInstantiationError;f0.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!u(s.fill)||s.fill.getValue(e)){let l=t.fillMaterialProperty,f=l instanceof Nt,d,p=t._getIsClosed(c);if(f)d=new on({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=$o.getValue(e,l,this._material);this._material=g,d=new oo({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=on.VERTEX_FORMAT,this._primitive=o.add(new Zc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),j.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new Sn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&u(s.outline)&&s.outline.getValue(e)){let l=this._geometryUpdater.createOutlineGeometryInstance(e),f=j.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new Sn({geometryInstances:l,appearance:new on({flat:!0,translucent:l.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};f0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return u(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),u(o)&&u(o.boundingSphere))?(se.clone(o.boundingSphere,e),at.DONE):u(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),u(o)&&u(o.boundingSphere))?(se.clone(o.boundingSphere,e),at.DONE):u(n)&&!n.ready||u(i)&&!i.ready?at.PENDING:at.FAILED};f0.prototype.isDestroyed=function(){return!1};f0.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),le(this)};var ni=f0;var t1e={NONE:0,GEODESIC:1,RHUMB:2},Yt=Object.freeze(t1e);var oJ=P.EPSILON10;function n1e(e,t,n,i){if(!u(e))return;n=y(n,!1);let o=u(i),r=e.length;if(r<2)return e;let s,a=e[0],c,l,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,oJ)?(u(l)||(l=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(u(l)&&(l.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],oJ)&&(o&&(u(l)?i.splice(d,0,f):i.push(r-1)),u(l)?l.length-=1:l=e.slice(0,-1)),u(l)?l:e}var go=n1e;function i1e(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,o=(n-i)/n,r=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-o)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),l=c*a,f=Math.atan2(a,r),d=c*s,p=d*d,g=1-p,m=Math.sqrt(g),x=t/4,b=x*x,T=b*x,A=b*b,C=1+x-3*b/4+5*T/4-175*A/64,S=1-x+15*b/8-35*T/8,w=1-3*x+35*b/4,D=1-5*x,O=C*f-S*Math.sin(2*f)*x/2-w*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*A/512,R=e._constants;R.a=n,R.b=i,R.f=o,R.cosineHeading=r,R.sineHeading=s,R.tanU=a,R.cosineU=c,R.sineU=l,R.sigma=f,R.sineAlpha=d,R.sineSquaredAlpha=p,R.cosineSquaredAlpha=g,R.cosineAlpha=m,R.u2Over4=x,R.u4Over16=b,R.u6Over64=T,R.u8Over256=A,R.a0=C,R.a1=S,R.a2=w,R.a3=D,R.distanceRatio=O}function o1e(e,t){return e*t*(4+e*(4-3*t))/16}function rJ(e,t,n,i,o,r,s){let a=o1e(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function r1e(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,l=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(l),p=Math.sin(l),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,A=p*g,C=c,S=P.TWO_PI,w=Math.cos(C),D=Math.sin(C),O,R,N,F,_;do{w=Math.cos(C),D=Math.sin(C);let k=b-A*w;N=Math.sqrt(g*g*D*D+k*k),R=T+x*w,O=Math.atan2(N,R);let Y;N===0?(Y=0,F=1):(Y=x*D/N,F=1-Y*Y),S=C,_=R-2*T/F,isFinite(_)||(_=0),C=c+rJ(a,Y,F,O,N,R,_)}while(Math.abs(C-S)>P.EPSILON12);let E=F*(t*t-n*n)/(n*n),v=1+E*(4096+E*(E*(320-175*E)-768))/16384,I=E*(256+E*(E*(74-47*E)-128))/1024,M=_*_,B=I*N*(_+I*(R*(2*M-1)-I*_*(4*N*N-3)*(4*M-3)/6)/4),H=n*v*(O-B),U=Math.atan2(g*D,b-A*w),G=Math.atan2(d*D,b*w-A);e._distance=H,e._startHeading=U,e._endHeading=G,e._uSquared=E}var s1e=new h,V5=new h;function sJ(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,V5),s1e),r=h.normalize(i.cartographicToCartesian(n,V5),V5);r1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=fe.clone(t,e._start),e._end=fe.clone(n,e._end),e._start.height=0,e._end.height=0,i1e(e)}function ES(e,t,n){let i=y(n,ie.WGS84);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,u(e)&&u(t)&&sJ(this,e,t,i)}Object.defineProperties(ES.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});ES.prototype.setEndPoints=function(e,t){sJ(this,e,t,this._ellipsoid)};ES.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};ES.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),l=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,m=n.u2Over4,x=n.u6Over64,b=n.u4Over16,T=2*p*g*o/3+i*(1-m+7*b/4-15*x/4+579*g/64-(b-15*x/4+187*g/16)*o-(5*x/4-115*g/16)*r-29*g*s/16)+(m/2-b+71*x/32-85*g/16)*a+(5*b/16-5*x/4+383*g/96)*c-d*((x-11*g/2)*a+5*g*c/2)+(29*x/96-29*g/16)*l+539*g*f/1536,A=Math.asin(Math.sin(T)*n.cosineAlpha),C=Math.atan(n.a/n.b*Math.tan(A));T=T-n.sigma;let S=Math.cos(2*n.sigma+T),w=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,R=n.sineU*w,F=Math.atan2(w*n.sineHeading,O-R*n.cosineHeading)-rJ(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,w,D,S);return u(t)?(t.longitude=this._start.longitude+F,t.latitude=C,t.height=0,t):new fe(this._start.longitude+F,C,0)};var Gf=ES;function H5(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,l=n,f=Math.sin(2*l),d=Math.sin(4*l),p=Math.sin(6*l),g=Math.sin(8*l),m=Math.sin(10*l),x=Math.sin(12*l);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*l-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*m+1001*c/8388608*x)}function a1e(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,l=c*c,f=l*c,d=f*c,p=d*c,g=p*c,m=Math.sin(2*i),x=Math.cos(2*i),b=Math.sin(4*i),T=Math.cos(4*i),A=Math.sin(6*i),C=Math.cos(6*i),S=Math.sin(8*i),w=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),R=Math.sin(12*i);return i+i*c/4+7*i*l/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*l/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*x+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*T+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*C+(1097*i*p/65536+42783*i*g/1048576)*w+8011*i*g/1048576*O+(3*c/8+3*l/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*m+(21*l/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*b+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*A+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*R}function oT(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function c1e(e,t,n,i,o){let r=oT(e._ellipticity,n),s=oT(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function l1e(e,t,n,i,o,r,s){let a=e._heading,c=r-i,l=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)l=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);l=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=H5(e._ellipticity,t,o);l=(H5(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(l)}var u1e=new h,z5=new h;function aJ(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,z5),u1e),r=h.normalize(i.cartographicToCartesian(n,z5),z5),s=i.maximumRadius,a=i.minimumRadius,c=s*s,l=a*a;e._ellipticitySquared=(c-l)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=fe.clone(t,e._start),e._start.height=0,e._end=fe.clone(n,e._end),e._end.height=0,e._heading=c1e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=l1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function cJ(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,l;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=H5(o,i,e.latitude),d=n*Math.cos(t),p=f+d;c=a1e(p,o,i);let g=oT(o,e.latitude),m=oT(o,c);l=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+l)}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}l=n/f,t>0?a=P.negativePiToPi(e.longitude+l):a=P.negativePiToPi(e.longitude-l)}return u(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function Vm(e,t,n){let i=y(n,ie.WGS84);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,u(e)&&u(t)&&aJ(this,e,t,i)}Object.defineProperties(Vm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});Vm.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ie.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,l=a*a,f=Math.sqrt((c-l)/c);t=P.negativePiToPi(t);let d=cJ(e,t,n,r.maximumRadius,f);return!u(o)||u(i)&&!i.equals(o.ellipsoid)?new Vm(e,d,r):(o.setEndPoints(e,d),o)};Vm.prototype.setEndPoints=function(e,t){aJ(this,e,t,this._ellipsoid)};Vm.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};Vm.prototype.interpolateUsingSurfaceDistance=function(e,t){return cJ(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};Vm.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),u(t)||(t=new fe),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),l=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/l,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};Vm.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=oT(n,o.latitude),s=oT(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return u(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var Da=Vm;var Z5=[Ii,Oi],f1e=Z5.length,DJ=Math.cos(P.toRadians(30)),lJ=Math.cos(P.toRadians(150)),IJ=0,PJ=1e3;function T_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Yt.GEODESIC),this._ellipsoid=ie.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(T_.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ie.packedLength+1+1}}});T_.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<f1e;i++)if(t instanceof Z5[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var d1e=new h,uJ=new h,fJ=new h;function K5(e,t,n,i,o){let r=hc(i,e,0,d1e),s=hc(i,e,n,uJ),a=hc(i,t,0,fJ),c=zm(s,r,uJ),l=zm(a,r,fJ);return h.cross(l,c,o),h.normalize(o,o)}var h1e=new fe,m1e=new h,p1e=new h,_1e=new h;function G5(e,t,n,i,o,r,s,a,c,l,f){if(o===0)return;let d;r===Yt.GEODESIC?d=new Gf(e,t,s):r===Yt.RHUMB&&(d=new Da(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=K5(e,t,i,s,_1e),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,A=a.length;for(let C=0;C<T;C++){let S=d.interpolateUsingSurfaceDistance(b,h1e),w=hc(s,S,n,m1e),D=hc(s,S,i,p1e);h.pack(g,a,A),h.pack(w,c,A),h.pack(D,l,A),f.push(S.latitude),f.push(S.longitude),A+=3,b+=x}}var W5=new fe;function hc(e,t,n,i){return fe.clone(t,W5),W5.height=n,fe.toCartesian(W5,e,i)}T_.pack=function(e,t,n){let i=y(n,0),o=e._positions,r=o.length;t[i++]=r;for(let s=0;s<r;++s){let a=o[s];h.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,ie.pack(e._ellipsoid,t,i),i+=ie.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};T_.unpack=function(e,t,n){let i=y(t,0),o=e[i++],r=new Array(o);for(let p=0;p<o;p++)r[p]=h.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],l=ie.unpack(e,i);i+=ie.packedLength;let f=e[i++],d=e[i++]===1;return u(n)||(n=new T_({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=l,n._projectionIndex=f,n._scene3DOnly=d,n};function zm(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function dJ(e,t,n,i){return i=zm(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var g1e=new h,y1e=new h,x1e=new h,OJ=new h,b1e=0,T1e=-1;function j5(e,t,n,i,o){let r=zm(n,t,OJ),s=dJ(e,t,r,g1e),a=dJ(i,t,r,y1e);if(P.equalsEpsilon(h.dot(s,a),T1e,P.EPSILON5))return o=h.cross(r,s,o),o=h.normalize(o,o),o;o=h.add(a,s,o),o=h.normalize(o,o);let c=h.cross(r,o,x1e);return h.dot(a,c)<b1e&&(o=h.negate(o,o)),o}var EM=tn.fromPointNormal(h.ZERO,h.UNIT_Y),A1e=new h,C1e=new h,E1e=new h,S1e=new h,w1e=new h,TM=new h,AM=new fe,hJ=new fe,mJ=new fe;T_.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new Z5[e._projectionIndex](i),a=IJ,c=PJ,l,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new Da(void 0,void 0,i),A,C,S,w=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],A=Ei.lineSegmentPlane(g,m,EM,TM),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===Yt.GEODESIC?w.push(h.clone(A)):e.arcType===Yt.RHUMB&&(S=i.cartesianToCartographic(A,AM).longitude,x=i.cartesianToCartographic(g,AM),b=i.cartesianToCartographic(m,hJ),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,mJ),A=i.cartographicToCartesian(C,TM),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&w.push(h.clone(A)))),w.push(m);n&&(g=d[p-1],m=d[0],A=Ei.lineSegmentPlane(g,m,EM,TM),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===Yt.GEODESIC?w.push(h.clone(A)):e.arcType===Yt.RHUMB&&(S=i.cartesianToCartographic(A,AM).longitude,x=i.cartesianToCartographic(g,AM),b=i.cartesianToCartographic(m,hJ),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,mJ),A=i.cartographicToCartesian(C,TM),u(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&w.push(h.clone(A)))));let D=w.length,O=new Array(D);for(f=0;f<D;f++){let q=fe.fromCartesian(w[f],i);q.height=0,O[f]=q}if(O=go(O,fe.equalsEpsilon),D=O.length,D<2)return;let R=[],N=[],F=[],_=[],E=A1e,v=C1e,I=E1e,M=S1e,B=w1e,H=O[0],U=O[1],G=O[D-1];for(E=hc(i,G,a,E),M=hc(i,U,a,M),v=hc(i,H,a,v),I=hc(i,H,c,I),n?B=j5(E,v,I,M,B):B=K5(H,U,c,i,B),h.pack(B,N,0),h.pack(v,F,0),h.pack(I,_,0),R.push(H.latitude),R.push(H.longitude),G5(H,U,a,c,o,r,i,N,F,_,R),f=1;f<D-1;++f){E=h.clone(v,E),v=h.clone(M,v);let q=O[f];hc(i,q,c,I),hc(i,O[f+1],a,M),j5(E,v,I,M,B),l=N.length,h.pack(B,N,l),h.pack(v,F,l),h.pack(I,_,l),R.push(q.latitude),R.push(q.longitude),G5(O[f],O[f+1],a,c,o,r,i,N,F,_,R)}let k=O[D-1],Y=O[D-2];if(v=hc(i,k,a,v),I=hc(i,k,c,I),n){let q=O[0];E=hc(i,Y,a,E),M=hc(i,q,a,M),B=j5(E,v,I,M,B)}else B=K5(Y,k,c,i,B);if(l=N.length,h.pack(B,N,l),h.pack(v,F,l),h.pack(I,_,l),R.push(k.latitude),R.push(k.longitude),n){for(G5(k,H,a,c,o,r,i,N,F,_,R),l=N.length,f=0;f<3;++f)N[l+f]=N[f],F[l+f]=F[f],_[l+f]=_[f];R.push(H.latitude),R.push(H.longitude)}return Q1e(n,s,F,_,N,R,t)};var v1e=new h,D1e=new $,I1e=new Ne;function pJ(e,t,n,i){let o=zm(n,t,v1e),r=h.dot(o,e);if(r>DJ||r<lJ){let s=zm(i,n,OJ),a=r<lJ?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Ne.fromAxisAngle(s,a,I1e),l=$.fromQuaternion(c,D1e);return $.multiplyByVector(l,e,e),!0}return!1}var _J=new fe,P1e=new h,gJ=new h;function SS(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,P1e),s=h.add(r,n,gJ),a=!1,c=e._ellipsoid,l=c.cartesianToCartographic(s,_J);Math.abs(t.longitude-l.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,gJ),l=c.cartesianToCartographic(s,_J)),l.height=0;let f=e.project(l,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var O1e=new h,yJ=new h;function xJ(e,t,n,i,o,r){let s=h.subtract(t,e,O1e);h.normalize(s,s);let a=n-IJ,c=h.multiplyByScalar(s,a,yJ);h.add(e,c,o);let l=i-PJ;c=h.multiplyByScalar(s,l,yJ),h.add(t,c,r)}var R1e=new h;function CM(e,t){let n=tn.getPointDistance(EM,e),i=tn.getPointDistance(EM,t),o=R1e;P.equalsEpsilon(n,0,P.EPSILON2)?(o=zm(t,e,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=zm(e,t,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(t,o,t))}function M1e(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var RJ=new fe,MJ=new fe,bJ=new h,q5=new h,TJ=new h,AJ=new h,L1e=new h,CJ=new h,N1e=[RJ,MJ],F1e=new ce,B1e=new h,k1e=new h,U1e=new h,V1e=new h,z1e=new h,H1e=new h,Y5=new h,X5=new h,G1e=new h,W1e=new h,j1e=new h,EJ=new h,q1e=new h,Y1e=new h,X1e=new Wn,K1e=new Wn,SJ=new h,Z1e=new h,wJ=new h,$1e=[new se,new se],LJ=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],vJ=LJ.length;function Q1e(e,t,n,i,o,r,s){let a,c,l=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,m=d>65535?new Uint32Array(g):new Uint16Array(g),x=new Float64Array(d*3),b=new Float32Array(p),T=new Float32Array(p),A=new Float32Array(p),C=new Float32Array(p),S=new Float32Array(p),w,D,O,R;s&&(w=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),R=new Float32Array(d*2));let N=r.length/2,F=0,_=RJ;_.height=0;let E=MJ;E.height=0;let v=bJ,I=q5;if(s)for(c=0,a=1;a<N;a++)_.latitude=r[c],_.longitude=r[c+1],E.latitude=r[c+2],E.longitude=r[c+3],v=t.project(_,v),I=t.project(E,I),F+=h.distance(v,I),c+=2;let M=i.length/3;I=h.unpack(i,0,I);let B=0;for(c=3,a=1;a<M;a++)v=h.clone(I,v),I=h.unpack(i,c,I),B+=h.distance(v,I),c+=3;let H;c=3;let U=0,G=0,k=0,Y=0,q=!1,Q=h.unpack(n,0,AJ),W=h.unpack(i,0,q5),K=h.unpack(o,0,CJ);if(e){let De=h.unpack(n,n.length-6,TJ);pJ(K,De,Q,W)&&(K=h.negate(K,K))}let Z=0,me=0,xe=0;for(a=0;a<f;a++){let De=h.clone(Q,TJ),Fe=h.clone(W,bJ),Re=h.clone(K,L1e);q&&(Re=h.negate(Re,Re)),Q=h.unpack(n,c,AJ),W=h.unpack(i,c,q5),K=h.unpack(o,c,CJ),q=pJ(K,De,Q,W),_.latitude=r[U],_.longitude=r[U+1],E.latitude=r[U+2],E.longitude=r[U+3];let Ue,st,pt,nt;if(s){let Ui=M1e(_,E);Ue=t.project(_,z1e),st=t.project(E,H1e);let $r=zm(st,Ue,SJ);$r.y=Math.abs($r.y),pt=Y5,nt=X5,Ui===0||h.dot($r,h.UNIT_Y)>DJ?(pt=SS(t,_,Re,Ue,Y5),nt=SS(t,E,K,st,X5)):Ui===1?(nt=SS(t,E,K,st,X5),pt.x=0,pt.y=P.sign(_.longitude-Math.abs(E.longitude)),pt.z=0):(pt=SS(t,_,Re,Ue,Y5),nt.x=0,nt.y=P.sign(_.longitude-E.longitude),nt.z=0)}let sn=h.distance(Fe,W),Rn=Wn.fromCartesian(De,X1e),Ut=h.subtract(Q,De,G1e),Ft=h.normalize(Ut,EJ),he=h.subtract(Fe,De,W1e);he=h.normalize(he,he);let be=h.cross(Ft,he,EJ);be=h.normalize(be,be);let jt=h.cross(he,Re,q1e);jt=h.normalize(jt,jt);let lt=h.subtract(W,Q,j1e);lt=h.normalize(lt,lt);let ui=h.cross(K,lt,Y1e);ui=h.normalize(ui,ui);let qi=sn/B,ec=Z/B,fs=0,ds,Xr,Me,Ke=0,Ze=0;if(s){fs=h.distance(Ue,st),ds=Wn.fromCartesian(Ue,K1e),Xr=h.subtract(st,Ue,SJ),Me=h.normalize(Xr,Z1e);let Ui=Me.x;Me.x=Me.y,Me.y=-Ui,Ke=fs/F,Ze=me/F}for(H=0;H<8;H++){let Ui=Y+H*4,$r=G+H*2,Hn=Ui+3,Mn=H<4?1:-1,cn=H===2||H===3||H===6||H===7?1:-1;h.pack(Rn.high,b,Ui),b[Hn]=Ut.x,h.pack(Rn.low,T,Ui),T[Hn]=Ut.y,h.pack(jt,A,Ui),A[Hn]=Ut.z,h.pack(ui,C,Ui),C[Hn]=qi*Mn,h.pack(be,S,Ui);let mi=ec*cn;mi===0&&cn<0&&(mi=9),S[Hn]=mi,s&&(w[Ui]=ds.high.x,w[Ui+1]=ds.high.y,w[Ui+2]=ds.low.x,w[Ui+3]=ds.low.y,O[Ui]=-pt.y,O[Ui+1]=pt.x,O[Ui+2]=nt.y,O[Ui+3]=-nt.x,D[Ui]=Xr.x,D[Ui+1]=Xr.y,D[Ui+2]=Me.x,D[Ui+3]=Me.y,R[$r]=Ke*Mn,mi=Ze*cn,mi===0&&cn<0&&(mi=9),R[$r+1]=mi)}let Xe=U1e,ht=V1e,Vt=B1e,xn=k1e,ai=ce.fromCartographicArray(N1e,F1e),uo=li.getMinimumMaximumHeights(ai,l),Kr=uo.minimumTerrainHeight,Zr=uo.maximumTerrainHeight;xe+=Math.abs(Kr),xe+=Math.abs(Zr),xJ(De,Fe,Kr,Zr,Xe,Vt),xJ(Q,W,Kr,Zr,ht,xn);let Mo=h.multiplyByScalar(be,P.EPSILON5,wJ);h.add(Xe,Mo,Xe),h.add(ht,Mo,ht),h.add(Vt,Mo,Vt),h.add(xn,Mo,xn),CM(Xe,ht),CM(Vt,xn),h.pack(Xe,x,k),h.pack(ht,x,k+3),h.pack(xn,x,k+6),h.pack(Vt,x,k+9),Mo=h.multiplyByScalar(be,-2*P.EPSILON5,wJ),h.add(Xe,Mo,Xe),h.add(ht,Mo,ht),h.add(Vt,Mo,Vt),h.add(xn,Mo,xn),CM(Xe,ht),CM(Vt,xn),h.pack(Xe,x,k+12),h.pack(ht,x,k+15),h.pack(xn,x,k+18),h.pack(Vt,x,k+21),U+=2,c+=3,G+=16,k+=24,Y+=32,Z+=sn,me+=fs}c=0;let re=0;for(a=0;a<f;a++){for(H=0;H<vJ;H++)m[c+H]=LJ[H]+re;re+=8,c+=vJ}let ge=$1e;se.fromVertices(n,h.ZERO,3,ge[0]),se.fromVertices(i,h.ZERO,3,ge[1]);let ye=se.fromBoundingSpheres(ge);ye.radius+=xe/(f*2);let Ae={position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:b_(b),startLoAndForwardOffsetY:b_(T),startNormalAndForwardOffsetZ:b_(A),endNormalAndTextureCoordinateNormalizationX:b_(C),rightNormalAndTextureCoordinateNormalizationY:b_(S)};return s&&(Ae.startHiLo2D=b_(w),Ae.offsetAndRight2D=b_(D),Ae.startEndNormals2D=b_(O),Ae.texcoordNormalization2D=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new ct({attributes:Ae,indices:m,boundingSphere:ye})}function b_(e){return new Se({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}T_._projectNormal=SS;var rT=T_;var SM=`in vec4 v_startPlaneNormalEcAndHalfWidth;
- in vec4 v_endPlaneNormalEcAndBatchId;
- in vec4 v_rightPlaneEC;
- in vec4 v_endEcAndStartEcX;
- in vec4 v_texcoordNormalizationAndStartEcYZ;
- #ifdef PER_INSTANCE_COLOR
- in vec4 v_color;
- #endif
- void main(void)
- {
- float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)));
- vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw);
-
- if (logDepthOrDepth == 0.0) {
- #ifdef DEBUG_SHOW_VOLUME
- out_FragColor = vec4(1.0, 0.0, 0.0, 0.5);
- return;
- #else
- discard;
- #endif
- }
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
- eyeCoordinate /= eyeCoordinate.w;
- float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate);
-
- float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);
-
- float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz);
- float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz);
- if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) {
- #ifdef DEBUG_SHOW_VOLUME
- out_FragColor = vec4(1.0, 0.0, 0.0, 0.5);
- return;
- #else
- discard;
- #endif
- }
-
-
-
-
- vec3 alignedPlaneNormal;
-
- alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz);
- alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));
- distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz);
-
- alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz);
- alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));
- distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz);
- #ifdef PER_INSTANCE_COLOR
- out_FragColor = czm_gammaCorrect(v_color);
- #else
-
-
- float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0);
- s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y;
- float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth);
- czm_materialInput materialInput;
- materialInput.s = s;
- materialInput.st = vec2(s, t);
- materialInput.str = vec3(s, t, 0.0);
- czm_material material = czm_getMaterial(materialInput);
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #endif
-
- out_FragColor.rgb *= out_FragColor.a;
- czm_writeDepthClamp();
- }
- `;var wM=`in vec3 v_forwardDirectionEC;
- in vec3 v_texcoordNormalizationAndHalfWidth;
- in float v_batchId;
- #ifdef PER_INSTANCE_COLOR
- in vec4 v_color;
- #else
- in vec2 v_alignedPlaneDistances;
- in float v_texcoordT;
- #endif
- float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) {
-
- return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction);
- }
- void main(void)
- {
- vec4 eyeCoordinate = gl_FragCoord;
- eyeCoordinate /= eyeCoordinate.w;
- #ifdef PER_INSTANCE_COLOR
- out_FragColor = czm_gammaCorrect(v_color);
- #else
-
- float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x);
- float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y);
-
- distanceFromStart = max(0.0, distanceFromStart);
- distanceFromEnd = max(0.0, distanceFromEnd);
- float s = distanceFromStart / (distanceFromStart + distanceFromEnd);
- s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y;
- czm_materialInput materialInput;
- materialInput.s = s;
- materialInput.st = vec2(s, v_texcoordT);
- materialInput.str = vec3(s, v_texcoordT, 0.0);
- czm_material material = czm_getMaterial(materialInput);
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #endif
- }
- `;var vM=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec4 startHiAndForwardOffsetX;
- in vec4 startLoAndForwardOffsetY;
- in vec4 startNormalAndForwardOffsetZ;
- in vec4 endNormalAndTextureCoordinateNormalizationX;
- in vec4 rightNormalAndTextureCoordinateNormalizationY;
- in vec4 startHiLo2D;
- in vec4 offsetAndRight2D;
- in vec4 startEndNormals2D;
- in vec2 texcoordNormalization2D;
- in float batchId;
- out vec3 v_forwardDirectionEC;
- out vec3 v_texcoordNormalizationAndHalfWidth;
- out float v_batchId;
- #ifdef WIDTH_VARYING
- out float v_width;
- #endif
- #ifdef ANGLE_VARYING
- out float v_polylineAngle;
- #endif
- #ifdef PER_INSTANCE_COLOR
- out vec4 v_color;
- #else
- out vec2 v_alignedPlaneDistances;
- out float v_texcoordT;
- #endif
- void main()
- {
- v_batchId = batchId;
-
- vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw));
- vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz);
- vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);
- vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;
- vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;
- vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;
-
- vec4 startPlane2D;
- vec4 startPlane3D;
- startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);
- startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;
- startPlane2D.w = -dot(startPlane2D.xyz, posEc2D);
- startPlane3D.w = -dot(startPlane3D.xyz, posEc3D);
-
- vec4 rightPlane2D;
- vec4 rightPlane3D;
- rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);
- rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;
- rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D);
- rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D);
-
- posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0);
- posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0);
- posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);
- posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;
- posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;
- vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;
- vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w));
- vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy));
-
- vec4 endPlane2D;
- vec4 endPlane3D;
- endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);
- endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;
- endPlane2D.w = -dot(endPlane2D.xyz, posEc2D);
- endPlane3D.w = -dot(endPlane3D.xyz, posEc3D);
-
- v_forwardDirectionEC = normalize(endEC - startEC);
- vec2 cleanTexcoordNormalization2D;
- cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x);
- cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y));
- vec2 cleanTexcoordNormalization3D;
- cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w);
- cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w;
- cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y));
- v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime);
- #ifdef PER_INSTANCE_COLOR
- v_color = czm_batchTable_color(batchId);
- #else
-
- v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC);
- v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC);
- #endif
- #ifdef WIDTH_VARYING
- float width = czm_batchTable_width(batchId);
- float halfWidth = width * 0.5;
- v_width = width;
- v_texcoordNormalizationAndHalfWidth.z = halfWidth;
- #else
- float halfWidth = 0.5 * czm_batchTable_width(batchId);
- v_texcoordNormalizationAndHalfWidth.z = halfWidth;
- #endif
-
-
-
-
-
-
- vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow);
- float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz));
- float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz));
- vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz);
- vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection));
- vec3 normalEC = normalize(cross(planeDirection, upOrDown));
-
- vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D));
- geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0);
- geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
- positionEc3D.xyz += geodeticSurfaceNormal;
-
- normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);
-
-
- positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC;
-
-
- vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);
- absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz));
- absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz));
- planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz);
- upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection));
- normalEC = normalize(cross(planeDirection, upOrDown));
-
- geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D));
- geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0);
- geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
- positionEc2D.xyz += geodeticSurfaceNormal;
-
- normalEC *= sign(texcoordNormalization2D.x);
- #ifndef PER_INSTANCE_COLOR
-
- v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0);
- #endif
-
-
- positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC;
-
- gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime);
- #ifdef ANGLE_VARYING
-
- vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y));
- approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);
- v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);
- #endif
- }
- `;var DM=`in vec3 position3DHigh;
- in vec3 position3DLow;
- #ifndef COLUMBUS_VIEW_2D
- in vec4 startHiAndForwardOffsetX;
- in vec4 startLoAndForwardOffsetY;
- in vec4 startNormalAndForwardOffsetZ;
- in vec4 endNormalAndTextureCoordinateNormalizationX;
- in vec4 rightNormalAndTextureCoordinateNormalizationY;
- #else
- in vec4 startHiLo2D;
- in vec4 offsetAndRight2D;
- in vec4 startEndNormals2D;
- in vec2 texcoordNormalization2D;
- #endif
- in float batchId;
- out vec4 v_startPlaneNormalEcAndHalfWidth;
- out vec4 v_endPlaneNormalEcAndBatchId;
- out vec4 v_rightPlaneEC;
- out vec4 v_endEcAndStartEcX;
- out vec4 v_texcoordNormalizationAndStartEcYZ;
- #ifdef WIDTH_VARYING
- out float v_width;
- #endif
- #ifdef ANGLE_VARYING
- out float v_polylineAngle;
- #endif
- #ifdef PER_INSTANCE_COLOR
- out vec4 v_color;
- #endif
- void main()
- {
- #ifdef COLUMBUS_VIEW_2D
- vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz;
- vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy);
- vec3 ecEnd = forwardDirectionEC + ecStart;
- forwardDirectionEC = normalize(forwardDirectionEC);
-
- v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);
- v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);
-
- vec4 startPlaneEC;
- startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);
- startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);
-
- vec4 endPlaneEC;
- endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);
- endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);
- v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x);
- v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y;
- #else
- vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz;
- vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w);
- vec3 ecEnd = ecStart + offset;
- vec3 forwardDirectionEC = normalize(offset);
-
- vec4 startPlaneEC;
- startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;
- startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);
-
- vec4 endPlaneEC;
- endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;
- endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);
-
- v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;
- v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);
- v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w);
- v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w;
- #endif
- v_endEcAndStartEcX.xyz = ecEnd;
- v_endEcAndStartEcX.w = ecStart.x;
- v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz;
- #ifdef PER_INSTANCE_COLOR
- v_color = czm_batchTable_color(batchId);
- #endif
-
-
-
- vec4 positionRelativeToEye = czm_computePosition();
-
- vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye;
- float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz));
- float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz));
- vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz);
- vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection));
- vec3 normalEC = normalize(cross(planeDirection, upOrDown));
-
- upOrDown = cross(forwardDirectionEC, normalEC);
- upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown;
- upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown;
- upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown;
- positionEC.xyz += upOrDown;
- v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- float width = czm_batchTable_width(batchId);
- #ifdef WIDTH_VARYING
- v_width = width;
- #endif
- v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz;
- v_startPlaneNormalEcAndHalfWidth.w = width * 0.5;
- v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz;
- v_endPlaneNormalEcAndBatchId.w = batchId;
- width = width * max(0.0, czm_metersPerPixel(positionEC));
- width = width / dot(normalEC, v_rightPlaneEC.xyz);
-
- #ifdef COLUMBUS_VIEW_2D
- normalEC *= sign(texcoordNormalization2D.x);
- #else
- normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);
- #endif
- positionEC.xyz += width * normalEC;
- gl_Position = czm_depthClamp(czm_projection * positionEC);
- #ifdef ANGLE_VARYING
-
- vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y));
- approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);
- v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);
- #endif
- }
- `;var IM=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 prevPosition3DHigh;
- in vec3 prevPosition3DLow;
- in vec3 nextPosition3DHigh;
- in vec3 nextPosition3DLow;
- in vec2 expandAndWidth;
- in vec4 color;
- in float batchId;
- out vec4 v_color;
- void main()
- {
- float expandDir = expandAndWidth.x;
- float width = abs(expandAndWidth.y) + 0.5;
- bool usePrev = expandAndWidth.y < 0.0;
- vec4 p = czm_computePosition();
- vec4 prev = czm_computePrevPosition();
- vec4 next = czm_computeNextPosition();
- float angle;
- vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle);
- gl_Position = czm_viewportOrthographic * positionWC;
- v_color = color;
- }
- `;var Bu=`void clipLineSegmentToNearPlane(
- vec3 p0,
- vec3 p1,
- out vec4 positionWC,
- out bool clipped,
- out bool culledByNearPlane,
- out vec4 clippedPositionEC)
- {
- culledByNearPlane = false;
- clipped = false;
- vec3 p0ToP1 = p1 - p0;
- float magnitude = length(p0ToP1);
- vec3 direction = normalize(p0ToP1);
-
-
- float endPoint0Distance = czm_currentFrustum.x + p0.z;
-
-
-
-
-
-
-
-
-
-
- float denominator = -direction.z;
- if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7)
- {
-
-
- culledByNearPlane = true;
- }
- else if (endPoint0Distance > 0.0)
- {
-
-
-
- float t = endPoint0Distance / denominator;
- if (t < 0.0 || t > magnitude)
- {
-
-
-
- culledByNearPlane = true;
- }
- else
- {
-
- p0 = p0 + t * direction;
-
-
- p0.z = min(p0.z, -czm_currentFrustum.x);
- clipped = true;
- }
- }
- clippedPositionEC = vec4(p0, 1.0);
- positionWC = czm_eyeToWindowCoordinates(clippedPositionEC);
- }
- vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle)
- {
-
- #ifdef POLYLINE_DASH
-
- vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC);
- vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC);
- vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC);
-
- vec2 lineDir;
- if (usePrevious) {
- lineDir = normalize(positionWindow.xy - previousWindow.xy);
- }
- else {
- lineDir = normalize(nextWindow.xy - positionWindow.xy);
- }
- angle = atan(lineDir.x, lineDir.y) - 1.570796327;
-
- angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour;
- #endif
- vec4 clippedPrevWC, clippedPrevEC;
- bool prevSegmentClipped, prevSegmentCulled;
- clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC);
- vec4 clippedNextWC, clippedNextEC;
- bool nextSegmentClipped, nextSegmentCulled;
- clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC);
- bool segmentClipped, segmentCulled;
- vec4 clippedPositionWC, clippedPositionEC;
- clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC);
- if (segmentCulled)
- {
- return vec4(0.0, 0.0, 0.0, 1.0);
- }
- vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy);
- vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy);
-
-
-
- if (prevSegmentCulled)
- {
- directionToPrevWC = -directionToNextWC;
- }
- else if (nextSegmentCulled)
- {
- directionToNextWC = -directionToPrevWC;
- }
- vec2 thisSegmentForwardWC, otherSegmentForwardWC;
- if (usePrevious)
- {
- thisSegmentForwardWC = -directionToPrevWC;
- otherSegmentForwardWC = directionToNextWC;
- }
- else
- {
- thisSegmentForwardWC = directionToNextWC;
- otherSegmentForwardWC = -directionToPrevWC;
- }
- vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x);
- vec2 leftWC = thisSegmentLeftWC;
- float expandWidth = width * 0.5;
-
-
-
- if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1))
- {
- vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x);
- vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC;
- float leftSumLength = length(leftSumWC);
- leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength);
-
-
-
-
-
-
- vec2 u = -thisSegmentForwardWC;
- vec2 v = leftWC;
- float sinAngle = abs(u.x * v.y - u.y * v.x);
- expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0);
- }
- vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio;
- return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w;
- }
- vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle)
- {
- vec4 positionEC = czm_modelViewRelativeToEye * position;
- vec4 prevEC = czm_modelViewRelativeToEye * previous;
- vec4 nextEC = czm_modelViewRelativeToEye * next;
- return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle);
- }
- `;var $5=`${Bu}
- ${IM}`,J1e=qb;Bt.isInternetExplorer()||($5=`#define CLIP_POLYLINE
- ${$5}`);function d0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=d0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,$5),this._fragmentShaderSource=y(e.fragmentShaderSource,J1e),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(d0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});d0.VERTEX_FORMAT=Pe.POSITION_ONLY;d0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;d0.prototype.isTranslucent=eo.prototype.isTranslucent;d0.prototype.getRenderState=eo.prototype.getRenderState;var zr=d0;var PM=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 prevPosition3DHigh;
- in vec3 prevPosition3DLow;
- in vec3 nextPosition3DHigh;
- in vec3 nextPosition3DLow;
- in vec2 expandAndWidth;
- in vec2 st;
- in float batchId;
- out float v_width;
- out vec2 v_st;
- out float v_polylineAngle;
- void main()
- {
- float expandDir = expandAndWidth.x;
- float width = abs(expandAndWidth.y) + 0.5;
- bool usePrev = expandAndWidth.y < 0.0;
- vec4 p = czm_computePosition();
- vec4 prev = czm_computePrevPosition();
- vec4 next = czm_computeNextPosition();
- float angle;
- vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle);
- gl_Position = czm_viewportOrthographic * positionWC;
- v_width = width;
- v_st.s = st.s;
- v_st.t = czm_writeNonPerspective(st.t, gl_Position.w);
- v_polylineAngle = angle;
- }
- `;var sT=`#ifdef VECTOR_TILE
- uniform vec4 u_highlightColor;
- #endif
- in vec2 v_st;
- void main()
- {
- czm_materialInput materialInput;
- vec2 st = v_st;
- st.t = czm_readNonPerspective(st.t, gl_FragCoord.w);
- materialInput.s = st.s;
- materialInput.st = st;
- materialInput.str = vec3(st, 0.0);
- czm_material material = czm_getMaterial(materialInput);
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- #ifdef VECTOR_TILE
- out_FragColor *= u_highlightColor;
- #endif
- czm_writeLogDepth();
- }
- `;var Q5=`${Bu}
- ${PM}`,eOe=sT;Bt.isInternetExplorer()||(Q5=`#define CLIP_POLYLINE
- ${Q5}`);function h0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=h0.VERTEX_FORMAT;this.material=u(e.material)?e.material:Hi.fromType(Hi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,Q5),this._fragmentShaderSource=y(e.fragmentShaderSource,eOe),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(h0.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH
- ${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});h0.VERTEX_FORMAT=Pe.POSITION_AND_ST;h0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;h0.prototype.isTranslucent=eo.prototype.isTranslucent;h0.prototype.getRenderState=eo.prototype.getRenderState;var oa=h0;function Hm(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;u(t)||(t=new oa),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Un.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=NJ(!1),this._renderState3DTiles=NJ(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Hm.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Hm.initializeTerrainHeights=function(){return li.initialize()};function tOe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(DM);s=Sn._appendShowToShader(o,s),s=Sn._appendDistanceDisplayConditionToShader(o,s),s=Sn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(vM);a=Sn._appendShowToShader(o,a),a=Sn._appendDistanceDisplayConditionToShader(o,a),a=Sn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(SM),l=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";u(n.material)?(d=u(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&l.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&l.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",l.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new ze({defines:l,sources:[s]}),m=new ze({defines:p,sources:[d,c]});e._sp=Kt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!u(x)){let T=new ze({defines:l.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:T,fragmentShaderSource:m,attributeLocations:r})}e._sp2D=x;let b=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!u(b)){let T=new ze({defines:l.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(wM);let A=new ze({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:A,attributeLocations:r})}e._spMorph=b}function NJ(e){return Ve.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Vn.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Vn.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})}function nOe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let l=t instanceof zr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(l);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];u(g)||(g=o[d]=new et({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=Ee.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=et.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=et.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=et.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=et.shallowClone(g,g.derivedCommands.colorMorph);T.renderState=e._renderStateMorph,T.shaderProgram=e._spMorph,T.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=T}}function FJ(e,t,n,i,o,r,s){n.mode===te.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==te.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function iOe(e,t,n,i,o,r,s){let a=e._primitive;Sn._updateBoundingVolumes(a,t,o);let c;t.mode===te.SCENE3D?c=a._boundingSphereWC:t.mode===te.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===te.SCENE2D&&u(a._boundingSphere2D)?c=a._boundingSphere2D:u(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let l=t.mode===te.MORPHING,f=e.classificationType,d=f!==Un.CESIUM_3D_TILE,p=f!==Un.TERRAIN&&!l,g,m=t.passes;if(m.render||m.pick&&a.allowPicking){let x=n.length;for(let b=0;b<x;++b){let T=c[b];d&&(g=n[b],FJ(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,FJ(e,g,t,o,r,T,s))}}}Hm.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!li.initialized){Hm.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!u(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s=new Array(r),a;for(t=0;t<r;++t)if(a=o[t].attributes,!u(a)||!u(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let l=c.attributes;for(let f in l)l.hasOwnProperty(f)&&(a[f]=l[f]);u(a.width)||(a.width=new dc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,rT.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new yt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,l,f){tOe(n,l,f)},i._createCommandsFunction=function(c,l,f,d,p,g,m){nOe(n,l,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,l,f,d,p,g,m,x){iOe(n,l,f,d,p,g,m)},this._primitive=new Sn(i)}if(this.appearance instanceof zr&&!this._hasPerInstanceColors)throw new de("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&u(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Hm.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Hm.isSupported=function(e){return e.frameState.context.depthTexture};Hm.prototype.isDestroyed=function(){return!1};Hm.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,le(this)};var fh=Hm;var oOe=new V(1,1),rOe=!1,sOe=z.WHITE;function aT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(aT.prototype,{isConstant:{get:function(){return j.isConstant(this._image)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ae("image"),repeat:ae("repeat"),color:ae("color"),transparent:ae("transparent")});aT.prototype.getType=function(e){return"Image"};aT.prototype.getValue=function(e,t){return u(t)||(t={}),t.image=j.getValueOrUndefined(this._image,e),t.repeat=j.getValueOrClonedDefault(this._repeat,e,oOe,t.repeat),t.color=j.getValueOrClonedDefault(this._color,e,sOe,t.color),j.getValueOrDefault(this._transparent,e,rOe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};aT.prototype.equals=function(e){return this===e||e instanceof aT&&j.equals(this._image,e._image)&&j.equals(this._repeat,e._repeat)&&j.equals(this._color,e._color)&&j.equals(this._transparent,e._transparent)};var m0=aT;function aOe(e){if(e instanceof z)return new Nt(e);if(typeof e=="string"||e instanceof ve||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new m0;return t.image=e,t}}function cOe(e,t){return ae(e,t,aOe)}var So=cOe;function wS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(wS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),dimensions:ae("dimensions"),heightReference:ae("heightReference"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});wS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new wS(this)};wS.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var cT=wS;var lOe={FIXED:0,INERTIAL:1},to=Object.freeze(lOe);function lT(){de.throwInstantiationError()}Object.defineProperties(lT.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError},referenceFrame:{get:de.throwInstantiationError}});lT.prototype.getValue=de.throwInstantiationError;lT.prototype.getValueInReferenceFrame=de.throwInstantiationError;lT.prototype.equals=de.throwInstantiationError;var J5=new $;lT.convertToReferenceFrame=function(e,t,n,i,o){if(!u(t))return t;if(u(o)||(o=new h),n===i)return h.clone(t,o);let r=Rt.computeIcrfToFixedMatrix(e,J5);if(u(r)||(r=Rt.computeTemeToPseudoFixedMatrix(e,J5)),n===to.INERTIAL)return $.multiplyByVector(r,t,o);if(n===to.FIXED)return $.multiplyByVector($.transpose(r,J5),t,o)};var A_=lT;function p0(e,t){this._definitionChanged=new pe,this._value=h.clone(e),this._referenceFrame=y(t,to.FIXED)}Object.defineProperties(p0.prototype,{isConstant:{get:function(){return!u(this._value)||this._referenceFrame===to.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});p0.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};p0.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),u(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};p0.prototype.getValueInReferenceFrame=function(e,t,n){return A_.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};p0.prototype.equals=function(e){return this===e||e instanceof p0&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var $c=p0;function vS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(vS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),width:ae("width"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),cornerType:ae("cornerType"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});vS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new vS(this)};vS.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var uT=vS;function uOe(e){return e}function fOe(e,t){return ae(e,t,uOe)}var Ll=fOe;function DS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(DS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),length:ae("length"),topRadius:ae("topRadius"),bottomRadius:ae("bottomRadius"),heightReference:ae("heightReference"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),numberOfVerticalLines:ae("numberOfVerticalLines"),slices:ae("slices"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});DS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new DS(this)};DS.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var fT=DS;function IS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(IS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),semiMajorAxis:ae("semiMajorAxis"),semiMinorAxis:ae("semiMinorAxis"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),rotation:ae("rotation"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),numberOfVerticalLines:ae("numberOfVerticalLines"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});IS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new IS(this)};IS.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var dT=IS;function PS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(PS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),radii:ae("radii"),innerRadii:ae("innerRadii"),minimumClock:ae("minimumClock"),maximumClock:ae("maximumClock"),minimumCone:ae("minimumCone"),maximumCone:ae("maximumCone"),heightReference:ae("heightReference"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),stackPartitions:ae("stackPartitions"),slicePartitions:ae("slicePartitions"),subdivisions:ae("subdivisions"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});PS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new PS(this)};PS.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var hT=PS;function OS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(OS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),text:ae("text"),font:ae("font"),style:ae("style"),scale:ae("scale"),showBackground:ae("showBackground"),backgroundColor:ae("backgroundColor"),backgroundPadding:ae("backgroundPadding"),pixelOffset:ae("pixelOffset"),eyeOffset:ae("eyeOffset"),horizontalOrigin:ae("horizontalOrigin"),verticalOrigin:ae("verticalOrigin"),heightReference:ae("heightReference"),fillColor:ae("fillColor"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),translucencyByDistance:ae("translucencyByDistance"),pixelOffsetScaleByDistance:ae("pixelOffsetScaleByDistance"),scaleByDistance:ae("scaleByDistance"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});OS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new OS(this)};OS.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var dh=OS;var dOe=new h(1,1,1),hOe=h.ZERO,mOe=Ne.IDENTITY;function BJ(e,t,n){this.translation=h.clone(y(e,hOe)),this.rotation=Ne.clone(y(t,mOe)),this.scale=h.clone(y(n,dOe))}BJ.prototype.equals=function(e){return this===e||u(e)&&h.equals(this.translation,e.translation)&&Ne.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var _0=BJ;var eG=new _0;function RS(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(RS.prototype,{isConstant:{get:function(){return j.isConstant(this._translation)&&j.isConstant(this._rotation)&&j.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ae("translation"),rotation:ae("rotation"),scale:ae("scale")});RS.prototype.getValue=function(e,t){return u(t)||(t=new _0),t.translation=j.getValueOrClonedDefault(this._translation,e,eG.translation,t.translation),t.rotation=j.getValueOrClonedDefault(this._rotation,e,eG.rotation,t.rotation),t.scale=j.getValueOrClonedDefault(this._scale,e,eG.scale,t.scale),t};RS.prototype.equals=function(e){return this===e||e instanceof RS&&j.equals(this._translation,e._translation)&&j.equals(this._rotation,e._rotation)&&j.equals(this._scale,e._scale)};var mT=RS;function Gm(e,t){this._propertyNames=[],this._definitionChanged=new pe,u(e)&&this.merge(e,t)}Object.defineProperties(Gm.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!j.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Gm.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function pOe(e){return new Zn(e)}Gm.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,ae(e,!0,y(n,pOe))),u(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};Gm.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};Gm.prototype.getValue=function(e,t){u(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=j.getValueOrUndefined(this[r],e,t[r])}return t};Gm.prototype.merge=function(e,t){let n=this._propertyNames,i=u(e._propertyNames)?e._propertyNames:Object.keys(e);for(let o=0,r=i.length;o<r;o++){let s=i[o],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?u(a)&&u(a.merge)&&a.merge(c):u(c)&&u(c.merge)&&u(c.clone)?this[s]=c.clone():this[s]=c)}};function _Oe(e,t){let n=e._propertyNames,i=t._propertyNames,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;++r){let s=n[r];if(i.indexOf(s)===-1||!j.equals(e[s],t[s]))return!1}return!0}Gm.prototype.equals=function(e){return this===e||e instanceof Gm&&_Oe(this,e)};var Nl=Gm;function kJ(e){return new mT(e)}function gOe(e){return new Nl(e,kJ)}function yOe(e){return new Nl(e)}function MS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(MS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),uri:ae("uri"),scale:ae("scale"),minimumPixelSize:ae("minimumPixelSize"),maximumScale:ae("maximumScale"),incrementallyLoadTextures:ae("incrementallyLoadTextures"),runAnimations:ae("runAnimations"),clampAnimations:ae("clampAnimations"),shadows:ae("shadows"),heightReference:ae("heightReference"),silhouetteColor:ae("silhouetteColor"),silhouetteSize:ae("silhouetteSize"),color:ae("color"),colorBlendMode:ae("colorBlendMode"),colorBlendAmount:ae("colorBlendAmount"),imageBasedLightingFactor:ae("imageBasedLightingFactor"),lightColor:ae("lightColor"),distanceDisplayCondition:ae("distanceDisplayCondition"),nodeTransformations:ae("nodeTransformations",void 0,gOe),articulations:ae("articulations",void 0,yOe),clippingPlanes:ae("clippingPlanes"),customShader:ae("customShader")});MS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new MS(this)};MS.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(u(t)){let i=this.nodeTransformations;u(i)?i.merge(t):this.nodeTransformations=new Nl(t,kJ)}let n=e.articulations;if(u(n)){let i=this.articulations;u(i)?i.merge(n):this.articulations=new Nl(n)}};var C_=MS;function LS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(LS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),uri:ae("uri"),maximumScreenSpaceError:ae("maximumScreenSpaceError")});LS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new LS(this)};LS.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var pT=LS;function NS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(NS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),leadTime:ae("leadTime"),trailTime:ae("trailTime"),width:ae("width"),resolution:ae("resolution"),material:So("material"),distanceDisplayCondition:ae("distanceDisplayCondition")});NS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new NS(this)};NS.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var E_=NS;function FS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(FS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),plane:ae("plane"),dimensions:ae("dimensions"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});FS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new FS(this)};FS.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var OM=FS;function BS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(BS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),pixelSize:ae("pixelSize"),heightReference:ae("heightReference"),color:ae("color"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),scaleByDistance:ae("scaleByDistance"),translucencyByDistance:ae("translucencyByDistance"),distanceDisplayCondition:ae("distanceDisplayCondition"),disableDepthTestDistance:ae("disableDepthTestDistance")});BS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new BS(this)};BS.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var _T=BS;function xOe(e,t){this.positions=u(e)?e:[],this.holes=u(t)?t:[]}var Ia=xOe;function bOe(e){return Array.isArray(e)&&(e=new Ia(e)),new Zn(e)}function kS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(kS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),hierarchy:ae("hierarchy",void 0,bOe),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),perPositionHeight:ae("perPositionHeight"),closeTop:ae("closeTop"),closeBottom:ae("closeBottom"),arcType:ae("arcType"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex"),textureCoordinates:ae("textureCoordinates")});kS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new kS(this)};kS.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var hh=kS;function US(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(US.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),width:ae("width"),granularity:ae("granularity"),material:So("material"),depthFailMaterial:So("depthFailMaterial"),arcType:ae("arcType"),clampToGround:ae("clampToGround"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});US.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new US(this)};US.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var mc=US;function VS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(VS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),shape:ae("shape"),cornerType:ae("cornerType"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});VS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new VS(this)};VS.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var gT=VS;function zS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(zS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),coordinates:ae("coordinates"),height:ae("height"),heightReference:ae("heightReference"),extrudedHeight:ae("extrudedHeight"),extrudedHeightReference:ae("extrudedHeightReference"),rotation:ae("rotation"),stRotation:ae("stRotation"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition"),classificationType:ae("classificationType"),zIndex:ae("zIndex")});zS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new zS(this)};zS.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var mh=zS;function HS(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(HS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ae("show"),positions:ae("positions"),minimumHeights:ae("minimumHeights"),maximumHeights:ae("maximumHeights"),granularity:ae("granularity"),fill:ae("fill"),material:So("material"),outline:ae("outline"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth"),shadows:ae("shadows"),distanceDisplayCondition:ae("distanceDisplayCondition")});HS.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new HS(this)};HS.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var S_=HS;var TOe=new fe;function AOe(e){return new $c(e)}function COe(e){return ae(e,void 0,AOe)}function Rs(e,t){return ae(e,void 0,function(n){return n instanceof t?n:new t(n)})}function ph(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;u(t)||(t=Gn()),this._availability=void 0,this._id=t,this._definitionChanged=new pe,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall"],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function tG(e,t,n){let i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r._show;(!n&&s)!==(n&&s)&&tG(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(ph.prototype,{availability:Ll("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:Ll("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&tG(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!u(this.entityCollection)||this.entityCollection.show)&&(!u(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(u(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,u(e)&&e._children.push(this);let i=this.isShowing;n!==i&&tG(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Rs("billboard",cc),box:Rs("box",cT),corridor:Rs("corridor",uT),cylinder:Rs("cylinder",fT),description:ae("description"),ellipse:Rs("ellipse",dT),ellipsoid:Rs("ellipsoid",hT),label:Rs("label",dh),model:Rs("model",C_),tileset:Rs("tileset",pT),orientation:ae("orientation"),path:Rs("path",E_),plane:Rs("plane",OM),point:Rs("point",_T),polygon:Rs("polygon",hh),polyline:Rs("polyline",mc),polylineVolume:Rs("polylineVolume",gT),properties:Rs("properties",Nl),position:COe("position"),rectangle:Rs("rectangle",mh),viewFrom:ae("viewFrom"),wall:Rs("wall",S_)});ph.prototype.isAvailable=function(e){let t=this._availability;return!u(t)||t.contains(e)};ph.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,Ll(e,!0))};ph.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};ph.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=u(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r==="parent"||r==="name"||r==="availability"||r==="children")continue;let s=this[r],a=e[r];!u(s)&&t.indexOf(r)===-1&&this.addProperty(r),u(a)&&(u(s)?u(s.merge)&&s.merge(a):u(a.merge)&&u(a.clone)?this[r]=a.clone():this[r]=a)}};var UJ=new $,VJ=new h,zJ=new Ne;ph.prototype.computeModelMatrix=function(e,t){let n=j.getValueOrUndefined(this._position,e,VJ);if(!u(n))return;let i=j.getValueOrUndefined(this._orientation,e,zJ);return u(i)?t=L.fromRotationTranslation($.fromQuaternion(i,UJ),n,t):t=Rt.eastNorthUpToFixedFrame(n,void 0,t),t};ph.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=j.getValueOrDefault(t,e,We.NONE),s=j.getValueOrUndefined(this._position,e,VJ);if(r===We.NONE||!u(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,TOe);r===We.CLAMP_TO_GROUND?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=j.getValueOrUndefined(this._orientation,e,zJ);return u(c)?o=L.fromRotationTranslation($.fromQuaternion(c,UJ),s,o):o=Rt.eastNorthUpToFixedFrame(s,void 0,o),o};ph.supportsMaterialsforEntitiesOnTerrain=function(e){return Zc.supportsMaterials(e)};ph.supportsPolylinesOnTerrain=function(e){return fh.isSupported(e)};var Qo=ph;var EOe=new Nt(z.WHITE),SOe=new Zn(!0),wOe=new Zn(!0),vOe=new Zn(!1),DOe=new Zn(z.BLACK),IOe=new Zn(gn.DISABLED),POe=new Zn(new wt),OOe=new Zn(Un.BOTH);function pc(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new pe,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=Qo.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(pc.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!u(this._entity.availability)&&j.isConstant(this._showProperty)&&j.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!u(this._entity.availability)&&j.isConstant(this._showProperty)&&j.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});pc.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};pc.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};pc.prototype.createFillGeometryInstance=de.throwInstantiationError;pc.prototype.createOutlineGeometryInstance=de.throwInstantiationError;pc.prototype.isDestroyed=function(){return!1};pc.prototype.destroy=function(){le(this)};pc.prototype._isHidden=function(e,t){let n=t.show;return u(n)&&n.isConstant&&!n.getValue(He.MINIMUM_VALUE)};pc.prototype._isOnTerrain=function(e,t){return!1};pc.prototype._getIsClosed=function(e){return!0};pc.prototype._isDynamic=de.throwInstantiationError;pc.prototype._setStaticOptions=de.throwInstantiationError;pc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=u(r)&&r.isConstant?r.getValue(He.MINIMUM_VALUE):!0,a=o.outline,c=u(a);if(c&&a.isConstant&&(c=a.getValue(He.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let l=o.show;if(this._isHidden(e,o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(o.material,EOe),this._fillProperty=y(r,wOe),this._showProperty=y(l,SOe),this._showOutlineProperty=y(o.outline,vOe),this._outlineColorProperty=c?y(o.outlineColor,DOe):void 0,this._shadowsProperty=y(o.shadows,IOe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,POe),this._classificationTypeProperty=y(o.classificationType,OOe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Nt);if(c&&f&&(It(It.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,o))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,o),this._isClosed=this._getIsClosed(this._options);let d=o.outlineWidth;this._outlineWidth=u(d)?d.getValue(He.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};pc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ii=pc;function yT(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new pe,this.setCallback(e,t)}Object.defineProperties(yT.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});yT.prototype.getValue=function(e,t){return this._callback(e,t)};yT.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};yT.prototype.equals=function(e){return this===e||e instanceof yT&&this._callback===e._callback&&this._isConstant===e._isConstant};var _h=yT;var HJ=new h,ROe=new fe;function xT(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new h,this._cartographicPosition=new fe,this._normal=new h,this._definitionChanged=new pe,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(u(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(He.MINIMUM_VALUE,HJ);if(!u(r)||h.equals(r,h.ZERO)||!u(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(xT.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});xT.prototype._updateClamping=function(){u(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=e.globe,n=this._position;if(!u(t)||h.equals(n,h.ZERO)){this._terrainHeight=0;return}let i=t.ellipsoid,o=t._surface,r=this,s=i.cartesianToCartographic(n,this._cartographicPosition),a=t.getHeight(s);u(a)?this._terrainHeight=a:this._terrainHeight=0;function c(l){if(e.mode===te.SCENE3D){let f=i.cartesianToCartographic(l,ROe);r._terrainHeight=f.height}else r._terrainHeight=l.x;r.definitionChanged.raiseEvent()}this._removeCallbackFunc=o.updateHeight(s,c)};xT.prototype.getValue=function(e,t){let n=j.getValueOrDefault(this._heightReference,e,We.NONE),i=j.getValueOrDefault(this._extrudedHeightReference,e,We.NONE);if(n===We.NONE&&i!==We.RELATIVE_TO_GROUND)return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,HJ);if(!u(r)||h.equals(r,h.ZERO)||!u(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,P.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};xT.prototype.isDestroyed=function(){return!1};xT.prototype.destroy=function(){return u(this._removeEventListener)&&this._removeEventListener(),u(this._removeModeListener)&&this._removeModeListener(),u(this._removeCallbackFunc)&&this._removeCallbackFunc(),le(this)};var bT=xT;function MOe(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o))return;u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(u(r)){let s=new _h(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new bT(this._scene,s,r)}}var w_=MOe;var GJ=h.ZERO,WJ=new h,LOe=new h,jJ=new z;function NOe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function Fl(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new NOe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}u(Object.create)&&(Fl.prototype=Object.create(ii.prototype),Fl.prototype.constructor=Fl);Object.defineProperties(Fl.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Fl.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,jJ)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,GJ,WJ))),new yt({id:t,geometry:Rl.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:s})};Fl.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,jJ),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,GJ,WJ))),new yt({id:t,geometry:ch.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:r})};Fl.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Fl.prototype._isHidden=function(e,t){return!u(t.dimensions)||!u(e.position)||ii.prototype._isHidden.call(this,e,t)};Fl.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};Fl.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==We.NONE?nn.ALL:void 0};Fl.prototype._onEntityPropertyChanged=w_;Fl.DynamicGeometryUpdater=TT;function TT(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(TT.prototype=Object.create(ni.prototype),TT.prototype.constructor=TT);TT.prototype._isHidden=function(e,t,n){let i=j.getValueOrUndefined(e.position,n,LOe),o=this._options.dimensions;return!u(i)||!u(o)||ni.prototype._isHidden.call(this,e,t,n)};TT.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,We.NONE),o=this._options;o.dimensions=j.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==We.NONE?nn.ALL:void 0};var RM=Fl;var YJ=or(qJ(),1);var FOe=0,oG={};function gh(e,t){let n,i=e;u(oG[i])?n=oG[i]:(n=FOe++,oG[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(gh.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!u(this._element)){let e=YJ.default.sanitize(this._html),t=document.createElement("div");t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});gh.equals=function(e,t){return e===t||u(e)&&u(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};gh.prototype.equals=function(e){return gh.equals(this,e)};gh.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};gh.getIonCredit=function(e){let t=u(e.collapsible)&&!e.collapsible;return new gh(e.html,t)};gh.clone=function(e){if(u(e))return new gh(e.html,e.showOnScreen)};var bt=gh;var MM=`in vec2 v_textureCoordinates;
- uniform float originalSize;
- uniform sampler2D texture0;
- uniform sampler2D texture1;
- uniform sampler2D texture2;
- uniform sampler2D texture3;
- uniform sampler2D texture4;
- uniform sampler2D texture5;
- const float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0));
- const float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0));
- const float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0));
- const float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0));
- void main()
- {
- vec2 uv = v_textureCoordinates;
- vec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize);
- vec2 pixel = 1.0 / textureSize;
- float mipLevel = 0.0;
- if (uv.x - pixel.x > (textureSize.y / textureSize.x))
- {
- mipLevel = 1.0;
- if (uv.y - pixel.y > yMipLevel1)
- {
- mipLevel = 2.0;
- if (uv.y - pixel.y * 3.0 > yMipLevel2)
- {
- mipLevel = 3.0;
- if (uv.y - pixel.y * 5.0 > yMipLevel3)
- {
- mipLevel = 4.0;
- if (uv.y - pixel.y * 7.0 > yMipLevel4)
- {
- mipLevel = 5.0;
- }
- }
- }
- }
- }
- if (mipLevel > 0.0)
- {
- float scale = pow(2.0, mipLevel);
- uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0);
- uv.x *= ((textureSize.x - 2.0) / textureSize.y);
- uv.x -= 1.0 + pixel.x;
- uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0)));
- uv *= scale;
- }
- else
- {
- uv.x *= (textureSize.x / textureSize.y);
- }
- if(mipLevel == 0.0)
- {
- out_FragColor = texture(texture0, uv);
- }
- else if(mipLevel == 1.0)
- {
- out_FragColor = texture(texture1, uv);
- }
- else if(mipLevel == 2.0)
- {
- out_FragColor = texture(texture2, uv);
- }
- else if(mipLevel == 3.0)
- {
- out_FragColor = texture(texture3, uv);
- }
- else if(mipLevel == 4.0)
- {
- out_FragColor = texture(texture4, uv);
- }
- else if(mipLevel == 5.0)
- {
- out_FragColor = texture(texture5, uv);
- }
- else
- {
- out_FragColor = vec4(0.0);
- }
- }
- `;var LM=`in vec3 v_cubeMapCoordinates;
- uniform samplerCube cubeMap;
- void main()
- {
- vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates);
- #ifdef RGBA_NORMALIZED
- out_FragColor = vec4(rgba.rgb, 1.0);
- #else
- float m = rgba.a * 16.0;
- vec3 r = rgba.rgb * m;
- out_FragColor = vec4(r * r, 1.0);
- #endif
- }
- `;var NM=`in vec4 position;
- in vec3 cubeMapCoordinates;
- out vec3 v_cubeMapCoordinates;
- void main()
- {
- gl_Position = position;
- v_cubeMapCoordinates = cubeMapCoordinates;
- }
- `;function g0(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new pe}Object.defineProperties(g0.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});g0.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var BOe=new h(1,0,0),kOe=new h(0,0,1),UOe=new h(-1,0,0),VOe=new h(0,0,-1),FM=new h(0,1,0),zOe=new h(0,-1,0),ZJ=[FM,UOe,kOe,zOe,BOe,FM,VOe,FM,FM],$J=ZJ.length,QJ=new Float32Array($J*3),XJ=0;for(let e=0;e<$J;++e,XJ+=3)h.pack(ZJ[e],QJ,XJ);var HOe=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),GOe=new Uint16Array([0,1,2,2,3,1,7,6,1,3,6,1,2,5,4,3,4,2,4,8,6,3,4,6]);function WOe(e){let t=ut.createVertexBuffer({context:e,typedArray:HOe,usage:Be.STATIC_DRAW}),n=ut.createVertexBuffer({context:e,typedArray:QJ,usage:Be.STATIC_DRAW}),i=ut.createIndexBuffer({context:e,typedArray:GOe,usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT}),o=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT},{index:1,vertexBuffer:n,componentsPerAttribute:3,componentDatatype:X.FLOAT}];return new ti({context:e,attributes:o,indexBuffer:i})}function KJ(e){return function(){return e}}function rG(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();let t,n,i=e._cubeMaps;if(u(i))for(n=i.length,t=0;t<n;++t)i[t].destroy();let o=e._mipTextures;if(u(o))for(n=o.length,t=0;t<n;++t)o[t].destroy();e._va=void 0,e._sp=void 0,e._cubeMaps=void 0,e._cubeMapBuffers=void 0,e._mipTextures=void 0}g0.prototype.update=function(e){let t=e.context;if(!g0.isSupported(t)||(u(this._texture)&&u(this._va)&&rG(this),u(this._texture)))return;if(!u(this._texture)&&!this._loading){let g=e.context.textureCache.getTexture(this._url);u(g)&&(rG(this),this._texture=g,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!u(n)&&!this._loading){let g=this;vl(this._url).then(function(m){g._cubeMapBuffers=m,g._loading=!1}).catch(function(m){g.isDestroyed()||g._errorEvent.raiseEvent(m)}),this._loading=!0}if(!u(this._cubeMapBuffers))return;let i=[],o=n[0].positiveX.pixelDatatype;u(o)?i.push("RGBA_NORMALIZED"):o=t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT;let r=rt.RGBA,s=new ze({defines:i,sources:[LM]});this._va=WOe(t),this._sp=Kt.fromCache({context:t,vertexShaderSource:NM,fragmentShaderSource:s,attributeLocations:{position:0,cubeMapCoordinates:1}});let a=Math.min(n.length,6);this._maximumMipmapLevel=a-1;let c=this._cubeMaps=new Array(a),l=this._mipTextures=new Array(a),f=n[0].positiveX.width*2,d={originalSize:function(){return f}};for(let g=0;g<a;++g){let m=n[g].positiveY;n[g].positiveY=n[g].negativeY,n[g].negativeY=m;let x=c[g]=new rc({context:t,source:n[g],pixelDatatype:o}),b=c[g].width*2,T=l[g]=new Pt({context:t,width:b,height:b,pixelDatatype:o,pixelFormat:r}),A=new Mf({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:KJ(x)},outputTexture:T,persists:!0,owner:this});e.commandList.push(A),d[`texture${g}`]=KJ(T)}this._texture=new Pt({context:t,width:f*1.5+2,height:f,pixelDatatype:o,pixelFormat:r}),this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture);let p=new Mf({fragmentShaderSource:MM,uniformMap:d,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(p),this._ready=!0};g0.prototype.isDestroyed=function(){return!1};g0.prototype.destroy=function(){return rG(this),this._texture=this._texture&&this._texture.destroy(),le(this)};var yh=g0;function GS(e){e=y(e,y.EMPTY_OBJECT);let t=u(e.imageBasedLightingFactor)?V.clone(e.imageBasedLightingFactor):new V(1,1);this._imageBasedLightingFactor=t;let n=y(e.luminanceAtZenith,.2);this._luminanceAtZenith=n;let i=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=i,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapAtlas=void 0,this._specularEnvironmentMapAtlasDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=V.clone(t),this._previousLuminanceAtZenith=n,this._previousSphericalHarmonicCoefficients=i,this._removeErrorListener=void 0}Object.defineProperties(GS.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=V.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=V.clone(e,this._imageBasedLightingFactor)}},luminanceAtZenith:{get:function(){return this._luminanceAtZenith},set:function(e){this._previousLuminanceAtZenith=this._luminanceAtZenith,this._luminanceAtZenith=e}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentMapAtlasDirty=this._specularEnvironmentMapAtlasDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return u(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function jOe(e,t){if(yh.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),u(e._specularEnvironmentMaps)){let n=new yh(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}GS.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;V.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=V.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||u(this._luminanceAtZenith)!==u(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||u(this._previousSphericalHarmonicCoefficients)!==u(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(jOe(this,t),this._specularEnvironmentMapAtlasDirty=!1),u(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!u(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!u(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)};GS.prototype.isDestroyed=function(){return!1};GS.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),le(this)};var AT=GS;var aG=or(Sl(),1);var sG,JJ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhYjVkZWE2Yi05ZjlmLTQyOTAtYjFkOC0xMmFmZTYyMjhmZGIiLCJpZCI6MjU5LCJpYXQiOjE2OTYyNjgyMzN9.iKIgzd7PueqxXsUNSIhk5C6n8uiugH-Dxy9uhOdJ5Zg",BM={};BM.defaultAccessToken=JJ;BM.defaultServer=new ve({url:"https://api.cesium.com/"});BM.getDefaultTokenCredit=function(e){if(e===JJ){if(!u(sG)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;sG=new bt(t,!0)}return sG}};var xh=BM;function _c(e,t){let n,i=e.externalType,o=u(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:qOe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ue("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");ve.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new aG.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}u(Object.create)&&(_c.prototype=Object.create(ve.prototype),_c.prototype.constructor=_c);_c.fromAssetId=function(e,t){let n=_c._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new _c(i,n)})};Object.defineProperties(_c.prototype,{credits:{get:function(){return u(this._ionRoot)?this._ionRoot.credits:u(this._credits)?this._credits:(this._credits=_c.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});_c.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(bt.getIonCredit),i=xh.getDefaultTokenCredit(t.queryParameters.access_token);return u(i)&&n.push(bt.clone(i)),n};_c.prototype.clone=function(e){let t=y(this._ionRoot,this);return u(e)||(e=new _c(t._ionEndpoint,t._ionEndpointResource)),e=ve.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};_c.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},u(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return ve.prototype.fetchImage.call(this,e)};_c.prototype._makeRequest=function(e){return this._isExternal||new aG.default(this.url).authority()!==this._ionEndpointDomain?ve.prototype._makeRequest.call(this,e):(u(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),ve.prototype._makeRequest.call(this,e))};_c._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,xh.defaultServer),i=y(t.accessToken,xh.defaultAccessToken);n=ve.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return u(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function qOe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!u(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(u(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var ku=_c;function bh(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(bh.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});bh.prototype.get=function(e){return this._array[e]};bh.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};bh.prototype.peek=function(){return this._array[this._length-1]};bh.prototype.push=function(e){let t=this.length++;this._array[t]=e};bh.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};bh.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};bh.prototype.resize=function(e){this.length=e};bh.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Qc=bh;var Wm={X:0,Y:1,Z:2};Wm.Y_UP_TO_Z_UP=L.fromRotationTranslation($.fromRotationX(P.PI_OVER_TWO));Wm.Z_UP_TO_Y_UP=L.fromRotationTranslation($.fromRotationX(-P.PI_OVER_TWO));Wm.X_UP_TO_Z_UP=L.fromRotationTranslation($.fromRotationY(-P.PI_OVER_TWO));Wm.Z_UP_TO_X_UP=L.fromRotationTranslation($.fromRotationY(P.PI_OVER_TWO));Wm.X_UP_TO_Y_UP=L.fromRotationTranslation($.fromRotationZ(P.PI_OVER_TWO));Wm.Y_UP_TO_X_UP=L.fromRotationTranslation($.fromRotationZ(-P.PI_OVER_TWO));Wm.fromName=function(e){return Wm[e]};var wo=Object.freeze(Wm);function eee(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(eee.prototype,{metadata:{get:function(){return this._metadata}}});var CT=eee;function v_(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),v_.decode(e)}v_.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};v_.decodeWithFromCharCode=function(e){let t="",n=YOe(e),i=n.length;for(let o=0;o<i;++o){let r=n[o];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t};function WS(e,t,n){return t<=e&&e<=n}function YOe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let l=e[c];if(i===0){if(WS(l,0,127)){s.push(l);continue}if(WS(l,194,223)){i=1,t=l&31;continue}if(WS(l,224,239)){l===224&&(o=160),l===237&&(r=159),i=2,t=l&15;continue}if(WS(l,240,244)){l===240&&(o=144),l===244&&(r=143),i=3,t=l&7;continue}throw new ue("String decoding failed.")}if(!WS(l,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|l&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?v_.decode=v_.decodeWithTextDecoder:v_.decode=v_.decodeWithFromCharCode;var Bl=v_;function XOe(e,t){return t=y(t,0),Bl(e,t,Math.min(4,e.length))}var Th=XOe;function Wf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,u(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Wf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var jS=Uint32Array.BYTES_PER_ELEMENT;Wf.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=jS;let c=a.getUint32(o,!0);if(c!==1)throw new ue(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=jS,o+=jS;let l=a.getUint32(o,!0);o+=jS;let f=n.queryParameters.compositeIndex;u(f)?f=`${f}_`:f="";let d=[];d.length=l;for(let m=0;m<l;++m){let x=Th(s,o),b=a.getUint32(o+jS*2,!0),T=r[x],A=`${f}${m}`,C=n.getDerivedResource({queryParameters:{compositeIndex:A}});if(u(T))d[m]=Promise.resolve(T(e,t,C,i,o));else throw new ue(`Unknown tile content type, ${x}, inside Composite tile`);o+=b}let p=await Promise.all(d);return new Wf(e,t,n,p)};Wf.prototype.hasProperty=function(e,t){return!1};Wf.prototype.getFeature=function(e){};Wf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Wf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Wf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};Wf.prototype.isDestroyed=function(){return!1};Wf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var kM=Wf;function KOe(e,t,n){return JSON.parse(Bl(e,t,n))}var vo=KOe;function Pa(e){this._id=Gn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let o=Math.min(t,zt.maximumTextureSize),r=Math.ceil(t/zt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,l=c*.5;n=new V(o,r),i=new oe(s,a,c,l)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Pa.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return u(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),u(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Pa.DEFAULT_COLOR_VALUE=z.WHITE;Pa.DEFAULT_SHOW_VALUE=!0;function tee(e){let t=e._textureDimensions;return t.x*t.y*4}function nee(e){if(!u(e._batchValues)){let t=tee(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function iee(e){if(!u(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Pa.prototype.setShow=function(e,t){if(t&&!u(this._showAlphaProperties))return;let n=iee(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=nee(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Pa.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};Pa.prototype.getShow=function(e){if(!u(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var ZOe=new Array(4);Pa.prototype.setColor=function(e,t){if(z.equals(t,Pa.DEFAULT_COLOR_VALUE)&&!u(this._batchValues))return;let n=t.toBytes(ZOe),i=n[3],o=nee(this),r=e*4,s=iee(this),a=e*2;if(o[r]!==n[0]||o[r+1]!==n[1]||o[r+2]!==n[2]||s[a+1]!==i){o[r]=n[0],o[r+1]=n[1],o[r+2]=n[2];let c=s[a+1]!==255,l=s[a]!==0;o[r+3]=l?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,u(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};Pa.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};Pa.prototype.getColor=function(e,t){if(!u(this._batchValues))return z.clone(Pa.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return z.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};Pa.prototype.getPickColor=function(e){return this._pickIds[e]};function oee(e,t,n){let i=e._textureDimensions;return new Pt({context:t,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:ln.NEAREST})}function $Oe(e,t){let n=e._featuresLength;if(!u(e._pickTexture)&&n>0){let i=e._pickIds,o=tee(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let l=t.createPickId(s.getFeature(c));i.push(l);let f=l.color,d=c*4;r[d]=z.floatToByte(f.red),r[d+1]=z.floatToByte(f.green),r[d+2]=z.floatToByte(f.blue),r[d+3]=z.floatToByte(f.alpha)}e._pickTexture=oee(e,t,r),u(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function QOe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Pa.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&$Oe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,u(this._batchTexture)||(this._batchTexture=oee(this,n,this._batchValues),u(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),QOe(this))};Pa.prototype.isDestroyed=function(){return!1};Pa.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var Jc=Pa;var JOe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},eRe={SCALAR:void 0,VEC2:V,VEC3:h,VEC4:oe,MAT2:Ji,MAT3:$,MAT4:L};function tRe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=JOe[e.type],o=eRe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var Uu=tRe;function jm(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,nRe(this,e.extension,e.binaryBody)}Object.defineProperties(jm.prototype,{byteLength:{get:function(){return this._byteLength}}});function nRe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,l=t.parentCounts,f=t.parentIds,d=s,p=0;u(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=rn.SCALAR,r=Uu(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(u(l)){for(u(l.byteOffset)&&(l.componentType=y(l.componentType,X.UNSIGNED_SHORT),l.type=rn.SCALAR,r=Uu(l),l=r.createArrayBufferView(n.buffer,n.byteOffset+l.byteOffset,s),p+=l.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=l[i];p+=g.byteLength}u(f)&&u(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=rn.SCALAR,r=Uu(f),f=r.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let m=a.length;for(i=0;i<m;++i){let T=a[i].length,A=a[i].instances,C=iRe(T,A,n);p+=oRe(C),a[i].instances=gt(C,A)}let x=new Array(m).fill(0),b=new Uint16Array(s);for(i=0;i<s;++i)o=c[i],b[i]=x[o],++x[o];p+=b.byteLength,e._classes=a,e._classIds=c,e._classIndexes=b,e._parentCounts=l,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function iRe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(u(s)){let a=r.componentType,c=r.type;if(!u(a))throw new ue("componentType is required.");if(!u(c))throw new ue("type is required.");if(!u(n))throw new ue(`Property ${o} requires a batch table binary.`);let l=Uu(r),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function oRe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var rRe=[],sRe=[],aRe=0;function cRe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=rRe;c.length=Math.max(c.length,a);let l=++aRe,f=sRe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===l)continue;c[t]=l;let d=n(e,t);if(u(d))return d;let p=o[t],g=s[t];for(let m=0;m<p;++m){let x=r[g+m];x!==t&&f.push(x)}}}function lRe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(u(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function qS(e,t,n){let i=e._parentCounts,o=e._parentIds;if(u(o)){if(u(i))return cRe(e,t,n)}else return n(e,t);return lRe(e,t,n)}jm.prototype.hasProperty=function(e,t){let n=qS(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(u(s[t]))return!0});return u(n)};jm.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(u(o[e]))return!0}return!1};jm.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,qS(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o].instances;for(let s in r)r.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};jm.prototype.getProperty=function(e,t){return qS(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(u(a))return u(a.typedArray)?uRe(a,s):Ge(a[s],!0)})};function uRe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}jm.prototype.setProperty=function(e,t,n){let i=qS(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],l=a.instances[t];if(u(l))return u(l.typedArray)?fRe(l,c,n):l[c]=Ge(n,!0),!0});return u(i)};function fRe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}jm.prototype.isClass=function(e,t){let n=qS(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return u(n)};jm.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var ET=jm;var dRe={HIGHLIGHT:0,REPLACE:1,MIX:2},kl=Object.freeze(dRe);var cG=Jc.DEFAULT_COLOR_VALUE,lG=Jc.DEFAULT_SHOW_VALUE;function ro(e,t,n,i,o){this.featuresLength=t;let r;u(n)&&(r=n.extensions),this._extensions=y(r,{});let s=hRe(n);this._properties=s,this._batchTableHierarchy=mRe(this,n,i);let a=see(t,s,i);this._binaryPropertiesByteLength=pRe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Jc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}ro._deprecationWarning=es;Object.defineProperties(ro.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function hRe(e){let t={};if(!u(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=Ge(e[n],!0));return t}function mRe(e,t,n){if(!u(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(u(o)&&(ro._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=o,i=o),!!u(i))return new ET({extension:i,binaryBody:n})}function see(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(u(s)){let a=r.componentType,c=r.type;if(!u(a))throw new ue("componentType is required.");if(!u(c))throw new ue("type is required.");if(!u(n))throw new ue(`Property ${o} requires a batch table binary.`);let l=Uu(r),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function pRe(e){if(!u(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}ro.getBinaryProperties=function(e,t,n){return see(e,t,n)};ro.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};ro.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};ro.prototype.getShow=function(e){return this._batchTexture.getShow(e)};ro.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};ro.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};ro.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};ro.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var _Re=new z;ro.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(cG),this.setAllShow(lG);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=u(e.color)?y(e.color.evaluateColor(o,_Re),cG):cG,s=u(e.show)?y(e.show.evaluate(o),lG):lG;this.setColor(i,r),this.setShow(i,s)}};function gRe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function yRe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}ro.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};ro.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};ro.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};ro.prototype.hasProperty=function(e,t){return u(this._properties[t])||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};ro.prototype.hasPropertyBySemantic=function(){return!1};ro.prototype.getPropertyIds=function(e,t){t=u(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};ro.prototype.getPropertyBySemantic=function(e,t){};ro.prototype.getProperty=function(e,t){if(u(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(u(i))return gRe(i,e)}let n=this._properties[t];if(u(n))return Ge(n[e],!0);if(u(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(u(i))return i}};ro.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(u(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(u(r)){yRe(r,e,n);return}}if(u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];u(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=Ge(n,!0)};function xRe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep;
- vec2 computeSt(float batchId)
- {
- float stepX = tile_textureStep.x;
- float centerX = tile_textureStep.y;
- return vec2(centerX + (batchId * stepX), 0.5);
- }
- `:`uniform vec4 tile_textureStep;
- uniform vec2 tile_textureDimensions;
- vec2 computeSt(float batchId)
- {
- float stepX = tile_textureStep.x;
- float centerX = tile_textureStep.y;
- float stepY = tile_textureStep.z;
- float centerY = tile_textureStep.w;
- float xId = mod(batchId, tile_textureDimensions.x);
- float yId = floor(batchId / tile_textureDimensions.x);
- return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
- }
- `}ro.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=aee(o,n,!1),s;return zt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand;
- `),s+=`uniform sampler2D tile_batchTexture;
- out vec4 tile_featureColor;
- out vec2 tile_featureSt;
- void main()
- {
- vec2 st = computeSt(${t});
- vec4 featureProperties = texture(tile_batchTexture, st);
- tile_color(featureProperties);
- float show = ceil(featureProperties.a);
- gl_Position *= show;
- `,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0);
- if (czm_pass == czm_passTranslucent)
- {
- if (!isStyleTranslucent && !tile_translucentCommand)
- {
- gl_Position *= 0.0;
- }
- }
- else
- {
- if (isStyleTranslucent)
- {
- gl_Position *= 0.0;
- }
- }
- `),s+=` tile_featureColor = featureProperties;
- tile_featureSt = st;
- }`):s=`out vec2 tile_featureSt;
- void main()
- {
- tile_color(vec4(1.0));
- tile_featureSt = computeSt(${t});
- }`,`${r}
- ${xRe(i)}${s}`}};function ree(e,t){return e=ze.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend;
- void tile_color(vec4 tile_featureColor)
- {
- tile_main();
- tile_featureColor = czm_gammaCorrect(tile_featureColor);
- out_FragColor.a *= tile_featureColor.a;
- float highlight = ceil(tile_colorBlend);
- out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight);
- }
- `:`${e}void tile_color(vec4 tile_featureColor)
- {
- tile_main();
- }
- `}function bRe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let l=o;l<e.length;++l){let f=e.charAt(l);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=l+1;break}}let c=`tile_diffuse_final(${e.slice(o,r)}, tile_diffuse)`;e=e.slice(0,o)+c+e.slice(r),i=o+c.length,o=e.indexOf(n,i)}return e}function aee(e,t,n){if(!u(t))return ree(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!u(o))return ree(e,n);let r=o[0],s=o[2];e=ze.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color)
- {
- return all(greaterThan(color, vec3(1.0 - czm_epsilon3)));
- }
- vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse)
- {
- vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend);
- vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse;
- return vec4(diffuse.rgb, sourceDiffuse.a);
- }
- `,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor);
- out_FragColor.a *= tile_featureColor.a;
- float highlight = ceil(tile_colorBlend);
- out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight);
- `,l;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),l=` vec4 source = ${f};
- tile_diffuse = tile_diffuse_final(source, tile_featureColor);
- tile_main();
- `}else s==="sampler2D"&&(e=bRe(e,t),l=` tile_diffuse = tile_featureColor;
- tile_main();
- `);return e=`uniform float tile_colorBlend;
- vec4 tile_diffuse = vec4(1.0);
- ${a}${r}
- ${e}
- void tile_color(vec4 tile_featureColor)
- {
- ${l}`,n&&(e+=c),e+=`}
- `,e}ro.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=aee(i,t,!0),zt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture;
- in vec2 tile_featureSt;
- in vec4 tile_featureColor;
- void main()
- {
- tile_color(tile_featureColor);
- `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a;
- `),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand;
- `),i+=`uniform sampler2D tile_pickTexture;
- uniform sampler2D tile_batchTexture;
- in vec2 tile_featureSt;
- void main()
- {
- vec4 featureProperties = texture(tile_batchTexture, tile_featureSt);
- if (featureProperties.a == 0.0) {
- discard;
- }
- `,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0);
- if (czm_pass == czm_passTranslucent)
- {
- if (!isStyleTranslucent && !tile_translucentCommand)
- {
- discard;
- }
- }
- else
- {
- if (isStyleTranslucent)
- {
- discard;
- }
- }
- `),i+=` tile_color(featureProperties);
- `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a;
- `),i+=`}
- `),i}};ro.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=ze.replaceMain(e,"tile_main"),zt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture;
- in vec2 tile_featureSt;
- in vec4 tile_featureColor;
- void main()
- {
- tile_main();
- out_FragColor = tile_featureColor;
- out_FragColor.rgb *= out_FragColor.a;
- }`:e+=`uniform sampler2D tile_batchTexture;
- uniform sampler2D tile_pickTexture;
- in vec2 tile_featureSt;
- void main()
- {
- tile_main();
- vec4 featureProperties = texture(tile_batchTexture, tile_featureSt);
- if (featureProperties.a == 0.0) {
- discard;
- }
- out_FragColor = featureProperties;
- out_FragColor.rgb *= out_FragColor.a;
- }
- `,e}};function TRe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===kl.HIGHLIGHT)return 0;if(n===kl.REPLACE)return 1;if(n===kl.MIX)return P.clamp(i,P.EPSILON4,1)}ro.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return gt(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return TRe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};ro.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var D_={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};ro.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=ARe(this);for(let l=t;l<i;++l){let f=n[l];if(f.pass===Ee.COMPUTE)continue;let d=f.derivedCommands.tileset;(!u(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=CRe(f),f.dirty=!1);let p=d.originalCommand;c!==D_.ALL_OPAQUE&&f.pass!==Ee.TRANSLUCENT&&(u(d.translucent)||(d.translucent=ERe(p))),c!==D_.ALL_TRANSLUCENT&&f.pass!==Ee.TRANSLUCENT&&(u(d.opaque)||(d.opaque=SRe(p)),a&&(r||(u(d.zback)||(d.zback=vRe(e.context,p)),s._backfaceCommands.push(d.zback)),(!u(d.stencil)||o._selectionDepth!==IRe(d.stencil))&&(f.renderState.depthMask?d.stencil=DRe(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==Ee.TRANSLUCENT?(c===D_.ALL_OPAQUE&&(n[l]=g),c===D_.ALL_TRANSLUCENT&&(n[l]=m),c===D_.OPAQUE_AND_TRANSLUCENT&&(n[l]=g,n.push(m))):n[l]=p}};function ARe(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?D_.ALL_OPAQUE:t===e.featuresLength?D_.ALL_TRANSLUCENT:D_.OPAQUE_AND_TRANSLUCENT}function CRe(e){let t=et.shallowClone(e),n=t.pass===Ee.TRANSLUCENT;return t.uniformMap=u(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function ERe(e){let t=et.shallowClone(e);return t.pass=Ee.TRANSLUCENT,t.renderState=PRe(e.renderState),t}function SRe(e){let t=et.shallowClone(e);return t.renderState=ORe(e.renderState),t}function wRe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!u(n)){let i=t.fragmentShaderSource.clone();i.defines=u(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function vRe(e,t){let n=et.shallowClone(t),i=Ge(n.renderState,!0);i.cull.enabled=!0,i.cull.face=gi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Lt.setCesium3DTileBit(),i.stencilMask=Lt.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=Ge(t.uniformMap);let o=new V(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=wRe(e,t.shaderProgram),n}function DRe(e,t){let n=et.shallowClone(e),i=Ge(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Lt.SKIP_LOD_MASK,i.stencilTest.reference=Lt.CESIUM_3D_TILE_MASK|t<<Lt.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Vn.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=ft.REPLACE,i.stencilTest.backFunction=Vn.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=ft.REPLACE,i.stencilMask=Lt.CESIUM_3D_TILE_MASK|Lt.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function IRe(e){return(e.renderState.stencilTest.reference&Lt.SKIP_LOD_MASK)>>>Lt.SKIP_LOD_BIT_SHIFT}function PRe(e){let t=Ge(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=Lt.setCesium3DTileBit(),t.stencilMask=Lt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function ORe(e){let t=Ge(e,!0);return t.stencilTest=Lt.setCesium3DTileBit(),t.stencilMask=Lt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}ro.prototype.update=function(e,t){this._batchTexture.update(e,t)};ro.prototype.isDestroyed=function(){return!1};ro.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),le(this)};var I_=ro;function RRe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var qm=RRe;var YS=`in vec3 position;
- in float a_batchId;
- uniform mat4 u_modifiedModelViewProjection;
- void main()
- {
- gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0));
- }
- `;function Vu(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Vu.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return u(this._color)||(this._color=new z),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(u(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});Vu.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Vu.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Vu.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Vu.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(u(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(u(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(u(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(u(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),u(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=u(e.group)?e.group.metadata:void 0;if(u(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let l=e.tileset.metadata;if(u(l)){if(l.hasPropertyBySemantic(n))return l.getPropertyBySemantic(n);if(l.hasProperty(n))return l.getProperty(n)}};Vu.prototype.getPropertyInherited=function(e){return Vu.getPropertyInherited(this._content,this._batchId,e)};Vu.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Vu.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Vu.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Vu.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ms=Vu;var uG=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},fG=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},el=class e{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index<this.expr.length;)if(i=this.code,i===e.SEMCOL_CODE||i===e.COMMA_CODE)this.index++;else if(o=this.gobbleExpression())n.push(o);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,e.max_binop_len),n=t.length;for(;n>0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,o,r,s,a,c,l;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(r={value:n,prec:e.binaryPrecedence(n),right_a:e.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),o=[s,r,a];n=this.gobbleBinaryOp();){if(i=e.binaryPrecedence(n),i===0){this.index-=n.length;break}r={value:n,prec:i,right_a:e.right_associative.has(n)},l=n;let f=d=>r.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+l),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let r=this.gobbleToken();return r||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:e.UNARY_EXP,operator:n,argument:r,prefix:!0})}n=n.substr(0,--i)}e.isIdentifierStart(t)?(o=this.gobbleIdentifier(),e.literals.hasOwnProperty(o.name)?o={type:e.LITERAL,value:e.literals[o.name],raw:o.name}:o.name===e.this_str&&(o={type:e.THIS_EXP})):t===e.OPAREN_CODE&&(o=this.gobbleGroup())}return o?(o=this.gobbleTokenProperty(o),this.runHook("after-token",o)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===e.PERIOD_CODE||n===e.OBRACK_CODE||n===e.OPAREN_CODE||n===e.QUMARK_CODE;){let i;if(n===e.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==e.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===e.OBRACK_CODE?(t={type:e.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},this.gobbleSpaces(),n=this.code,n!==e.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===e.OPAREN_CODE?t={type:e.CALL_EXP,arguments:this.gobbleArguments(e.CPAREN_CODE),callee:t}:(n===e.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:e.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===e.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,e.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===e.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===e.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:e.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),o=!1;for(;this.index<this.expr.length;){let r=this.expr.charAt(this.index++);if(r===i){o=!0;break}else if(r==="\\")switch(r=this.expr.charAt(this.index++),r){case"n":t+=`
- `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=r}else t+=r}return o||this.throwError('Unclosed quote after "'+t+'"'),{type:e.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(e.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,e.isIdentifierPart(t));)this.index++;return{type:e.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,o=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let r=this.code;if(r===t){i=!0,this.index++,t===e.CPAREN_CODE&&o&&o>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s<o;s++)n.push(null)}}else if(n.length!==o&&o!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===e.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(e.CPAREN_CODE);if(this.code===e.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:e.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:e.ARRAY_EXP,elements:this.gobbleArguments(e.CBRACK_CODE)}}},MRe=new uG;Object.assign(el,{hooks:MRe,plugins:new fG(el),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});el.max_unop_len=el.getMaxKeyLen(el.unary_ops);el.max_binop_len=el.getMaxKeyLen(el.binary_ops);var P_=e=>new el(e).parse(),LRe=Object.getOwnPropertyNames(el);LRe.forEach(e=>{P_[e]===void 0&&e!=="prototype"&&(P_[e]=el[e])});P_.Jsep=el;var NRe="ConditionalExpression",FRe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:NRe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};P_.plugins.register(FRe);var BRe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},dt=Object.freeze(BRe);function jf(e,t){this._expression=e,e=ZRe(e,t),e=QRe($Re(e)),P_.addBinaryOp("=~",0),P_.addBinaryOp("!~",0);let n;try{n=P_(e)}catch(i){throw new ue(i)}this._runtimeAst=yi(this,n)}Object.defineProperties(jf.prototype,{expression:{get:function(){return this._expression}}});var Dn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new V],cartesian3Array:[new h],cartesian4Array:[new oe],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new V),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new oe),this.cartesian4Array[this.cartesian4Index++]}};jf.prototype.evaluate=function(e,t){Dn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof z&&n instanceof oe?z.fromCartesian4(n,t):n instanceof V||n instanceof h||n instanceof oe?n.clone(t):n};jf.prototype.evaluateColor=function(e,t){Dn.reset();let n=this._runtimeAst.evaluate(e);return z.fromCartesian4(n,t)};jf.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e}
- {
- return ${o};
- }
- `,o};jf.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};jf.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var kRe=["!","-","+"],cee=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],zM=/\${(.*?)}/g,URe=/\\/g,VRe="@#%",zRe=/@#%/g,HM=new z,GM={abs:gs(Math.abs),sqrt:gs(Math.sqrt),cos:gs(Math.cos),sin:gs(Math.sin),tan:gs(Math.tan),acos:gs(Math.acos),asin:gs(Math.asin),atan:gs(Math.atan),radians:gs(P.toRadians),degrees:gs(P.toDegrees),sign:gs(P.sign),floor:gs(Math.floor),ceil:gs(Math.ceil),round:gs(Math.round),exp:gs(Math.exp),exp2:gs(GRe),log:gs(Math.log),log2:gs(WRe),fract:gs(HRe),length:jRe,normalize:qRe},WM={atan2:UM(Math.atan2,!1),pow:UM(Math.pow,!1),min:UM(Math.min,!0),max:UM(Math.max,!0),distance:YRe,dot:XRe,cross:KRe},mG={clamp:lee(P.clamp,!0),mix:lee(P.lerp,!0)};function HRe(e){return e-Math.floor(e)}function GRe(e){return Math.pow(2,e)}function WRe(e){return P.log2(e)}function gs(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof V)return V.fromElements(e(n.x),e(n.y),Dn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Dn.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Dn.getCartesian4());throw new ue(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function UM(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof V)return V.fromElements(e(i.x,o),e(i.y,o),Dn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Dn.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Dn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof V&&o instanceof V)return V.fromElements(e(i.x,o.x),e(i.y,o.y),Dn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Dn.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Dn.getCartesian4());throw new ue(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function lee(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof V&&o instanceof V)return V.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Dn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Dn.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Dn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof V&&o instanceof V&&r instanceof V)return V.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Dn.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Dn.getCartesian3());if(i instanceof oe&&o instanceof oe&&r instanceof oe)return oe.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Dn.getCartesian4());throw new ue(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function jRe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof V)return V.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof oe)return oe.magnitude(t);throw new ue(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function qRe(e,t){if(typeof t=="number")return 1;if(t instanceof V)return V.normalize(t,Dn.getCartesian2());if(t instanceof h)return h.normalize(t,Dn.getCartesian3());if(t instanceof oe)return oe.normalize(t,Dn.getCartesian4());throw new ue(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function YRe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof V&&n instanceof V)return V.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof oe&&n instanceof oe)return oe.distance(t,n);throw new ue(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function XRe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof V&&n instanceof V)return V.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof oe&&n instanceof oe)return oe.dot(t,n);throw new ue(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function KRe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Dn.getCartesian3());throw new ue(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function _t(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,cMe(this)}function ZRe(e,t){if(!u(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;u(o)&&(e=e.replace(i,o))}return e}function $Re(e){return e.replace(URe,VRe)}function hG(e){return e.replace(zRe,"\\")}function QRe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o<i)s=t.indexOf("'",o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(r>=0&&r<i)s=t.indexOf('"',r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new ue("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function JRe(e){let t=typeof e.value;if(e.value===null)return new _t(dt.LITERAL_NULL,null);if(t==="boolean")return new _t(dt.LITERAL_BOOLEAN,e.value);if(t==="number")return new _t(dt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new _t(dt.VARIABLE_IN_STRING,e.value):new _t(dt.LITERAL_STRING,hG(e.value))}function eMe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!u(c.callee)||c.callee.name!=="regExp")throw new ue(`${o} is not a function.`);return i===0?o==="test"?new _t(dt.LITERAL_BOOLEAN,!1):new _t(dt.LITERAL_NULL,null):(s=yi(e,c),a=yi(e,n[0]),new _t(dt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=yi(e,c),new _t(dt.FUNCTION_CALL,o,r);throw new ue(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new _t(dt.LITERAL_COLOR,o);if(r=yi(e,n[0]),u(n[1])){let c=yi(e,n[1]);return new _t(dt.LITERAL_COLOR,o,[r,c])}return new _t(dt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ue(`${o} requires three arguments.`);return r=[yi(e,n[0]),yi(e,n[1]),yi(e,n[2])],new _t(dt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ue(`${o} requires four arguments.`);return r=[yi(e,n[0]),yi(e,n[1]),yi(e,n[2]),yi(e,n[3])],new _t(dt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c<i;++c)r[c]=yi(e,n[c]);return new _t(dt.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new _t(dt.LITERAL_BOOLEAN,!0):new _t(dt.LITERAL_BOOLEAN,!1):(r=yi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new ue(`${o} requires exactly one argument.`);return r=yi(e,n[0]),new _t(dt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ue(`${o} does not take any argument.`);return new _t(dt.UNARY,o)}else if(u(GM[o])){if(i!==1)throw new ue(`${o} requires exactly one argument.`);return r=yi(e,n[0]),new _t(dt.UNARY,o,r)}else if(u(WM[o])){if(i!==2)throw new ue(`${o} requires exactly two arguments.`);return s=yi(e,n[0]),a=yi(e,n[1]),new _t(dt.BINARY,o,s,a)}else if(u(mG[o])){if(i!==3)throw new ue(`${o} requires exactly three arguments.`);s=yi(e,n[0]),a=yi(e,n[1]);let c=yi(e,n[2]);return new _t(dt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new _t(dt.LITERAL_BOOLEAN,!1):(r=yi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="Number")return i===0?new _t(dt.LITERAL_NUMBER,0):(r=yi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="String")return i===0?new _t(dt.LITERAL_STRING,""):(r=yi(e,n[0]),new _t(dt.UNARY,o,r));if(o==="regExp")return tMe(e,t)}}throw new ue(`Unexpected function call "${o}".`)}function tMe(e,t){let n=t.arguments;if(n.length===0)return new _t(dt.LITERAL_REGEX,new RegExp);let i=yi(e,n[0]),o;if(n.length>1){let r=yi(e,n[1]);if(dG(i)&&dG(r)){try{o=new RegExp(hG(String(i._value)),r._value)}catch(s){throw new ue(s)}return new _t(dt.LITERAL_REGEX,o)}return new _t(dt.REGEX,i,r)}if(dG(i)){try{o=new RegExp(hG(String(i._value)))}catch(r){throw new ue(r)}return new _t(dt.LITERAL_REGEX,o)}return new _t(dt.REGEX,i)}function nMe(e){if(sMe(e.name)){let t=aMe(e.name);return t.substr(0,8)==="tiles3d_"?new _t(dt.BUILTIN_VARIABLE,t):new _t(dt.VARIABLE,t)}else{if(e.name==="NaN")return new _t(dt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new _t(dt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new _t(dt.LITERAL_UNDEFINED,void 0)}throw new ue(`${e.name} is not defined.`)}function iMe(e){let t=e.property.name;if(t==="PI")return new _t(dt.LITERAL_NUMBER,Math.PI);if(t==="E")return new _t(dt.LITERAL_NUMBER,Math.E)}function oMe(e){if(e.property.name==="POSITIVE_INFINITY")return new _t(dt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function rMe(e,t){if(t.object.name==="Math")return iMe(t);if(t.object.name==="Number")return oMe(t);let n,i=yi(e,t.object);return t.computed?(n=yi(e,t.property),new _t(dt.MEMBER,"brackets",i,n)):(n=new _t(dt.LITERAL_STRING,t.property.name),new _t(dt.MEMBER,"dot",i,n))}function dG(e){return e._type>=dt.LITERAL_NULL}function sMe(e){return e.substr(0,4)==="czm_"}function aMe(e){return e.substr(4)}function yi(e,t){let n,i,o,r;if(t.type==="Literal")n=JRe(t);else if(t.type==="CallExpression")n=eMe(e,t);else if(t.type==="Identifier")n=nMe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=yi(e,t.argument);if(kRe.indexOf(i)>-1)n=new _t(dt.UNARY,i,s);else throw new ue(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=yi(e,t.left),r=yi(e,t.right),cee.indexOf(i)>-1)n=new _t(dt.BINARY,i,o,r);else throw new ue(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=yi(e,t.left),r=yi(e,t.right),cee.indexOf(i)>-1&&(n=new _t(dt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=yi(e,t.test);o=yi(e,t.consequent),r=yi(e,t.alternate),n=new _t(dt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=rMe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=yi(e,t.elements[a]);n=new _t(dt.ARRAY,s)}else throw t.type==="Compound"?new ue("Provide exactly one expression."):new ue("Cannot parse expression.");return n}function cMe(e){e._type===dt.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===dt.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===dt.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:u(GM[e._value])&&(e.evaluate=uMe(e._value)):e._type===dt.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:u(WM[e._value])&&(e.evaluate=fMe(e._value)):e._type===dt.TERNARY?e.evaluate=dMe(e._value):e._type===dt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===dt.ARRAY?e.evaluate=e._evaluateArray:e._type===dt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===dt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===dt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===dt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===dt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===dt.REGEX?e.evaluate=e._evaluateRegExp:e._type===dt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=lMe):e.evaluate=e._evaluateLiteral}function lMe(e){return u(e)?e.content.tileset.timeSinceLoad:0}function uMe(e){let t=GM[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function fMe(e){let t=WM[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function dMe(e){let t=mG[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function jM(e,t){if(u(e))return e.getPropertyInherited(t)}_t.prototype._evaluateLiteral=function(){return this._value};_t.prototype._evaluateLiteralColor=function(e){let t=HM,n=this._left;if(this._value==="color")u(n)?n.length>1?(z.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):z.fromCssColorString(n[0].evaluate(e),t):z.fromBytes(255,255,255,255,t);else if(this._value==="rgb")z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return oe.fromColor(t,Dn.getCartesian4())};_t.prototype._evaluateLiteralVector=function(e){let t=Dn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a<o;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof V)t.push(c.x,c.y);else if(c instanceof h)t.push(c.x,c.y,c.z);else if(c instanceof oe)t.push(c.x,c.y,c.z,c.w);else throw new ue(`${n} argument must be a vector or number. Argument is ${c}.`)}let r=t.length,s=parseInt(n.charAt(3));if(r===0)throw new ue(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new ue(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ue(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return V.fromArray(t,0,Dn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Dn.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,Dn.getCartesian4())};_t.prototype._evaluateLiteralString=function(){return this._value};_t.prototype._evaluateVariableString=function(e){let t=this._value,n=zM.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=jM(e,o);u(r)||(r=""),t=t.replace(i,r),n=zM.exec(t)}return t};_t.prototype._evaluateVariable=function(e){return jM(e,this._value)};function y0(e){return e._value==="feature"}_t.prototype._evaluateMemberDot=function(e){if(y0(this._left))return jM(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(t))return;let n=this._right.evaluate(e);if(t instanceof V||t instanceof h||t instanceof oe){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};_t.prototype._evaluateMemberBrackets=function(e){if(y0(this._left))return jM(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(t))return;let n=this._right.evaluate(e);if(t instanceof V||t instanceof h||t instanceof oe){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};_t.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};_t.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};_t.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof V)return V.negate(t,Dn.getCartesian2());if(t instanceof h)return h.negate(t,Dn.getCartesian3());if(t instanceof oe)return oe.negate(t,Dn.getCartesian4());if(typeof t=="number")return-t;throw new ue(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};_t.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof V||t instanceof h||t instanceof oe||typeof t=="number"))throw new ue(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};_t.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};_t.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};_t.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};_t.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ue(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};_t.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ue(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};_t.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ue(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ue(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};_t.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof V&&t instanceof V)return V.add(t,n,Dn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Dn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,Dn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ue(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof V&&t instanceof V)return V.subtract(t,n,Dn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Dn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,Dn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ue(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof V&&t instanceof V)return V.multiplyComponents(t,n,Dn.getCartesian2());if(n instanceof V&&typeof t=="number")return V.multiplyByScalar(n,t,Dn.getCartesian2());if(t instanceof V&&typeof n=="number")return V.multiplyByScalar(t,n,Dn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Dn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Dn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Dn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,Dn.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,Dn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,Dn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ue(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof V&&t instanceof V)return V.divideComponents(t,n,Dn.getCartesian2());if(t instanceof V&&typeof n=="number")return V.divideByScalar(t,n,Dn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Dn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Dn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,Dn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,Dn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ue(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof V&&t instanceof V)return V.fromElements(t.x%n.x,t.y%n.y,Dn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Dn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Dn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ue(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof V&&t instanceof V||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?t.equals(n):t===n};_t.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof V&&t instanceof V||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?!t.equals(n):t!==n};_t.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ue(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};_t.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};_t.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};_t.prototype._evaluateIsExactClass=function(e){return u(e)?e.isExactClass(this._left.evaluate(e)):!1};_t.prototype._evaluateIsClass=function(e){return u(e)?e.isClass(this._left.evaluate(e)):!1};_t.prototype._evaluateGetExactClassName=function(e){if(u(e))return e.getExactClassName()};_t.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};_t.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};_t.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};_t.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";u(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ue(o)}return i};_t.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ue(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};_t.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new ue(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new ue(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};_t.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ue(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return u(i)?i[1]:null};_t.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof V||t instanceof h||t instanceof oe)return String(t);throw new ue(`Unexpected function call "${this._value}".`)};function uee(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==dt.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return z.fromHsl(i,o,r,s,HM)}function fee(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==dt.LITERAL_NUMBER)return;let i=HM;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function O_(e){return e%1===0?e.toFixed(1):e.toString()}function hMe(e){let t=O_(e.red),n=O_(e.green),i=O_(e.blue);return`vec3(${t}, ${n}, ${i})`}function VM(e){let t=O_(e.red),n=O_(e.green),i=O_(e.blue),o=O_(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function dee(e,t,n,i){let o=e.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=e[s].getShaderExpression(t,n,i);return r}function hee(e,t){return u(t[e])?t[e]:jf.NULL_SENTINEL}jf.NULL_SENTINEL="czm_infinity";_t.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;u(this._left)&&(Array.isArray(this._left)?o=dee(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),u(this._right)&&(r=this._right.getShaderExpression(e,t,this)),u(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=dee(this._value,e,t,this));let l,f,d;switch(a){case dt.VARIABLE:return y0(this)?void 0:hee(c,e);case dt.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(u(GM[c]))return`${c}(${o})`;if(c==="isNaN")return`(${o} != ${o})`;if(c==="isFinite")return`(abs(${o}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new ue(`Error generating style shader: "${c}" is not supported.`);return c+o;case dt.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:u(WM[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case dt.TERNARY:if(u(mG[c]))return`${c}(${o}, ${r}, ${s})`;break;case dt.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case dt.MEMBER:return y0(this._left)?hee(r,e):r==="r"||r==="x"||r==="0.0"?`${o}[0]`:r==="g"||r==="y"||r==="1.0"?`${o}[1]`:r==="b"||r==="z"||r==="2.0"?`${o}[2]`:r==="a"||r==="w"||r==="3.0"?`${o}[3]`:`${o}[int(${r})]`;case dt.FUNCTION_CALL:throw new ue(`Error generating style shader: "${c}" is not supported.`);case dt.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new ue("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case dt.REGEX:throw new ue("Error generating style shader: Regular expressions are not supported.");case dt.VARIABLE_IN_STRING:throw new ue("Error generating style shader: Converting a variable to a string is not supported.");case dt.LITERAL_NULL:return jf.NULL_SENTINEL;case dt.LITERAL_BOOLEAN:return c?"true":"false";case dt.LITERAL_NUMBER:return O_(c);case dt.LITERAL_STRING:if(u(n)&&n._type===dt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||y0(n._left)))return c;if(i=z.fromCssColorString(c,HM),u(i))return hMe(i);throw new ue("Error generating style shader: String literals are not supported.");case dt.LITERAL_COLOR:if(l=o,c==="color"){if(u(l)){if(l.length>1){let p=l[0],g=l[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${l[0]}, 1.0)`}else{if(c==="rgb")return i=fee(this),u(i)?VM(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, 1.0)`;if(c==="rgba")return l[3]!=="1.0"&&(t.translucent=!0),i=fee(this),u(i)?VM(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, ${l[3]})`;if(c==="hsl")return i=uee(this),u(i)?VM(i):`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), 1.0)`;if(c==="hsla")return i=uee(this),u(i)?(i.alpha!==1&&(t.translucent=!0),VM(i)):(l[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), ${l[3]})`)}break;case dt.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p<f;++p)d+=o[p],p<f-1&&(d+=", ");return d+=")",d;case dt.LITERAL_REGEX:throw new ue("Error generating style shader: Regular expressions are not supported.");case dt.LITERAL_UNDEFINED:return jf.NULL_SENTINEL;case dt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};_t.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(u(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);else this._left.getVariables(e,this);if(u(this._right)&&this._right.getVariables(e,this),u(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);let a;switch(r){case dt.VARIABLE:y0(this)||e.push(s);break;case dt.VARIABLE_IN_STRING:for(a=zM.exec(s);a!==null;)e.push(a[1]),a=zM.exec(s);break;case dt.LITERAL_STRING:u(t)&&t._type===dt.MEMBER&&y0(t._left)&&e.push(s);break}};var qf=jf;function Ym(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,h.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,Un.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(Ym.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var mMe={position:0,a_batchId:1};function pMe(e,t){if(u(e._va))return;let n=ut.createVertexBuffer({context:t,typedArray:e._positions,usage:Be.STATIC_DRAW}),i=ut.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Be.STATIC_DRAW}),o=ut.createIndexBuffer({context:t,typedArray:e._indices,usage:Be.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?ke.UNSIGNED_SHORT:ke.UNSIGNED_INT}),r=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new ti({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ti({context:t,attributes:r,indexBuffer:ut.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Be.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function _Me(e,t){if(u(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,mMe),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(u(r)){e._sp=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=ze.replaceMain(s,"czm_non_pick_main"),s=`${s}void main()
- {
- czm_non_pick_main();
- out_FragColor = ${o};
- }
- `,e._spPick=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(YS),c=n.getFragmentShaderCallback(!1,void 0,!0)(r0);o=n.getPickId();let l=new ze({sources:[a]}),f=new ze({defines:["VECTOR_TILE"],sources:[c]});e._sp=Kt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),l=new ze({sources:[YS]}),f=new ze({defines:["VECTOR_TILE"],sources:[r0]}),e._spStencil=Kt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),c=ze.replaceMain(c,"czm_non_pick_main"),c=`${c}
- void main()
- {
- czm_non_pick_main();
- out_FragColor = ${o};
- }
- `;let d=new ze({sources:[a]}),p=new ze({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Kt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function mee(e){let t=e?Vn.EQUAL:Vn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:t,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:uc.LESS_OR_EQUAL},depthMask:!1}}var gMe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},yMe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function xMe(e){u(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(mee(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(mee(!0)),e._rsColorPass=Ve.fromCache(gMe),e._rsPickPass=Ve.fromCache(yMe))}var x0=new L,pee=new h;function bMe(e,t){if(u(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return L.clone(i,x0),L.multiplyByPoint(x0,e._center,pee),L.setTranslation(x0,pee,x0),L.multiply(o,x0,x0),x0},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function pG(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let l=0;l<c;++l){let f=r[l],d=s[f],p=i[d],g=o[d],m=new e.constructor(e.buffer,a*p,g);t.set(m,n),i[d]=n,n+=g}return n}function TMe(e,t){let n=e._indices,i=e._indexOffsets,o=e._indexCounts,r=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],l=pG(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=l;t.length>0;){let f=t.pop();if(z.equals(f.color,a.color))l=pG(n,s,l,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=l-a.offset;else{let d=l;l=pG(n,s,l,i,o,f.batchIds,r),f.offset=d,f.count=l-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function _G(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let l=0;l<c;++l){let f=r[l],d=s[f],p=i[d],g=o[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function AMe(e,t){let n=e._indexOffsets,i=e._indexCounts,o=e._batchIdLookUp,r=t.pop(),s=[r],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,l=_G(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=l;t.length>0;){let d=t.pop();if(z.equals(d.color,r.color))l=_G(a,c,l,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=l-r.offset;else{let p=l;l=_G(a,c,l,n,i,d.batchIds,o),d.offset=p,d.count=l-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function CMe(e,t){return t.color.toRgba()-e.color.toRgba()}function EMe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(u(r[c])){o=!0;break}else r[c]=!0}if(!o)return e._batchDirty=!1,!1;if(o&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(CMe),t.webgl2?AMe(e,n):TMe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function SMe(e,t){let n=EMe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(u(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,l=y(e._modelMatrix,L.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<r;++p){let g=o[p].offset,m=o[p].count,x=i[p*2];u(x)||(x=i[p*2]=new et({owner:e})),x.vertexArray=a,x.modelMatrix=l,x.offset=g,x.count=m,x.renderState=e._rsStencilDepthPass,x.shaderProgram=c,x.uniformMap=f,x.boundingVolume=d,x.cull=!1,x.pass=Ee.TERRAIN_CLASSIFICATION;let b=et.shallowClone(x,x.derivedCommands.tileset);b.renderState=e._rsStencilDepthPass3DTiles,b.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,x.derivedCommands.tileset=b;let T=i[p*2+1];u(T)||(T=i[p*2+1]=new et({owner:e})),T.vertexArray=a,T.modelMatrix=l,T.offset=g,T.count=m,T.renderState=e._rsColorPass,T.shaderProgram=c,T.uniformMap=f,T.boundingVolume=d,T.cull=!1,T.pass=Ee.TERRAIN_CLASSIFICATION;let A=et.shallowClone(T,T.derivedCommands.tileset);A.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=A}e._commandsDirty=!0}function wMe(e,t){if(e.classificationType===Un.TERRAIN||!t.invertClassification||u(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,o=e._spStencil,r=n.length,s=i.length=r/2,a=0;for(let c=0;c<s;++c){let l=i[c]=et.shallowClone(n[a],i[c]);l.shaderProgram=o,l.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function vMe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,o=e._spStencil,r=e._spPick,s=y(e._modelMatrix,L.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let l=e._indexOffsets[c],f=e._indexCounts[c],d=u(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];u(p)||(p=n[c*2]=new et({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=l,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=Ee.TERRAIN_CLASSIFICATION;let g=et.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];u(m)||(m=n[c*2+1]=new et({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=l,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=Ee.TERRAIN_CLASSIFICATION;let x=et.shallowClone(m,m.derivedCommands.tileset);x.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}Ym.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ms(e,r)}};Ym.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function DMe(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,o;for(o=0;o<i;++o){let s=n[o],a=t[s];a.show=!0,a.color=z.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=z.clone(z.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var IMe=new z,PMe=z.WHITE,OMe=!0,RMe=/\$/;Ym.prototype.applyStyle=function(e,t){if(!u(e)){DMe(this,t);return}let n=e.color,i=n instanceof qf&&!RMe.test(n.expression);this._updatingAllCommands=i;let o=this._batchIds,r=o.length,s;for(s=0;s<r;++s){let a=o[s],c=t[a];c.color=u(e.color)?e.color.evaluateColor(c,IMe):PMe,c.show=u(e.show)?e.show.evaluate(c):OMe}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=z.clone(z.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};Ym.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!u(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,l=c.length,f;for(f=0;f<l;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new qm({color:z.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,m=g.length;for(let x=0;x<m;++x){let b=g[x];if(b===e)continue;let T=n[b];o[T]<s?d.push(b):p.push(b)}p.length!==0&&c.push(new qm({color:z.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function _ee(e,t,n,i){let o=e.classificationType,r=o!==Un.CESIUM_3D_TILE,s=o!==Un.TERRAIN,a=t.commandList,c=n.length,l,f;for(f=0;f<c;++f)r&&(l=n[f],l.pass=Ee.TERRAIN_CLASSIFICATION,a.push(l)),s&&(l=n[f].derivedCommands.tileset,l.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,a.push(l));if(!(!t.invertClassification||!u(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function MMe(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=Ee.OPAQUE,n.push(r)}}function LMe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;u(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Le.LINES):(n=e._rsColorPass,i=Le.TRIANGLES);let o=e._commands,r=o.length;for(let s=0;s<r;s+=2){let a=o[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}Ym.prototype.update=function(e){let t=e.context;pMe(this,t),_Me(this,t),xMe(this),bMe(this,t);let n=e.passes;n.render&&(SMe(this,t),wMe(this,e),LMe(this),this._debugWireframe?MMe(e,this._commands):_ee(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(vMe(this),_ee(this,e,this._pickCommands))};Ym.prototype.isDestroyed=function(){return!1};Ym.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),le(this)};var ST=Ym;function Ul(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,u(this._center)||(u(this._boundingVolume)?this._center=h.clone(this._boundingVolume.center):this._center=h.clone(h.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Un.BOTH}Object.defineProperties(Ul.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});Ul.packedBoxLength=L.packedLength+h.packedLength;Ul.packedCylinderLength=L.packedLength+2;Ul.packedEllipsoidLength=L.packedLength+h.packedLength;Ul.packedSphereLength=h.packedLength+1;function NMe(e){let t=new Float64Array(L.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,L.pack(e._modelMatrix,t,n),t}function FMe(e,t){let n=0,i=t[n++],o=t[n++],r=e._boundingVolumes=new Array(o);for(let c=0;c<o;++c)r[c]=se.unpack(t,n),n+=se.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let l=z.unpack(t,n);n+=z.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let m=0;m<p;++m)g[m]=t[n++];a[c]=new qm({color:l,offset:f,count:d,batchIds:g})}return i}var BMe=new pi("createVectorTileGeometries",5),kMe=new z;function UMe(e){if(!u(e._primitive)&&!u(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,o=e._cylinderBatchIds,r=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,l=e._batchTableColors,f=e._packedBuffer;if(!u(l)){let m=0;u(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),u(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),u(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),u(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),l=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,kMe);l[b]=T.toRgba()}f=e._packedBuffer=NMe(e)}let d=[];u(t)&&d.push(t.buffer,n.buffer),u(i)&&d.push(i.buffer,o.buffer),u(r)&&d.push(r.buffer,s.buffer),u(a)&&d.push(a.buffer,c.buffer),d.push(l.buffer,f.buffer);let p={boxes:u(t)?t.buffer:void 0,boxBatchIds:u(t)?n.buffer:void 0,cylinders:u(i)?i.buffer:void 0,cylinderBatchIds:u(i)?o.buffer:void 0,ellipsoids:u(r)?r.buffer:void 0,ellipsoidBatchIds:u(r)?s.buffer:void 0,spheres:u(a)?a.buffer:void 0,sphereBatchIds:u(a)?c.buffer:void 0,batchTableColors:l.buffer,packedBuffer:f.buffer},g=e._verticesPromise=BMe.scheduleTask(p,d);return u(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);FMe(e,x)===2?e._indices=new Uint16Array(m.indices):e._indices=new Uint32Array(m.indices),e._indexOffsets=new Uint32Array(m.indexOffsets),e._indexCounts=new Uint32Array(m.indexCounts),e._positions=new Float32Array(m.positions),e._vertexBatchIds=new Uint16Array(m.vertexBatchIds),e._batchIds=new Uint16Array(m.batchIds),VMe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function VMe(e){u(e._primitive)||(e._primitive=new ST({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}Ul.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Ul.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Ul.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Ul.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Ul.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=UMe(this)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Ul.prototype.isDestroyed=function(){return!1};Ul.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};var R_=Ul;function Xm(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,GMe(this,i,o)}Object.defineProperties(Xm.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return u(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return u(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function zMe(e){return function(t,n){u(e._geometries)&&e._geometries.updateCommands(t,n)}}function HMe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),l=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&u(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&u(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(l>0&&u(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,l)}if(f>0&&u(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=u(n)||u(i)||u(o)||u(r),p=a>0&&!u(n)||c>0&&!u(i)||l>0&&!u(o)||f>0&&!u(r);if(d&&p)throw new ue("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(o)&&!u(r)){let m=0;if(!u(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!u(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!u(o)&&l>0)for(o=new Uint16Array(l),s=0;s<l;++s)o[s]=m++;if(!u(r)&&f>0)for(r=new Uint16Array(f),s=0;s<f;++s)r[s]=m++}return{boxes:n,cylinders:i,ellipsoids:o,spheres:r}}var b0=Uint32Array.BYTES_PER_ELEMENT;function GMe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=b0;let r=o.getUint32(n,!0);if(r!==1)throw new ue(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=b0;let s=o.getUint32(n,!0);if(n+=b0,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=b0,a===0)throw new ue("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=b0;let l=o.getUint32(n,!0);n+=b0;let f=o.getUint32(n,!0);n+=b0;let d=vo(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;l>0&&(g=vo(i,n,l),n+=l,f>0&&(m=new Uint8Array(t,n,f),m=new Uint8Array(m)));let x=y(d.BOXES_LENGTH,0),b=y(d.CYLINDERS_LENGTH,0),T=y(d.ELLIPSOIDS_LENGTH,0),A=y(d.SPHERES_LENGTH,0),C=x+b+T+A,S=new I_(e,C,g,m,zMe(e));if(e._batchTable=S,C===0)return;let w=e.tile.computedTransform,D;u(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),L.multiplyByPoint(w,D,D));let O=HMe(d,p);if(x>0||b>0||T>0||A>0){let R,N,F,_;if(x>0){let E=p.byteOffset+d.BOXES.byteOffset;R=new Float32Array(p.buffer,E,R_.packedBoxLength*x)}if(b>0){let E=p.byteOffset+d.CYLINDERS.byteOffset;N=new Float32Array(p.buffer,E,R_.packedCylinderLength*b)}if(T>0){let E=p.byteOffset+d.ELLIPSOIDS.byteOffset;F=new Float32Array(p.buffer,E,R_.packedEllipsoidLength*T)}if(A>0){let E=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,E,R_.packedSphereLength*A)}return e._geometries=new R_({boxes:R,boxBatchIds:O.boxes,cylinders:N,cylinderBatchIds:O.cylinders,ellipsoids:F,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:w,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function gee(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Xm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Xm.prototype.getFeature=function(e){return gee(this),this._features[e]};Xm.prototype.applyDebugSettings=function(e,t){u(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Xm.prototype.applyStyle=function(e){gee(this),u(this._geometries)&&this._geometries.applyStyle(e,this._features)};Xm.prototype.update=function(e,t){u(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),u(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};Xm.prototype.isDestroyed=function(){return!1};Xm.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),le(this)};var qM=Xm;var gG={};gG.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),yee(i,o,r,s);return c};gG.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s<n;s*=2)o=1&Number(a/BigInt(2)),r=1&Number(a^BigInt(o)),yee(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function yee(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let o=t.x;t.x=t.y,t.y=o}var XS=gG;var T0=30,WMe=1<<T0,jMe=1<<T0+1>>>0,yG=2*T0+1,M_=4,Tee=[],Aee=[],qMe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],L_=1,wT=2,YM=[L_,0,0,L_|wT];function Pr(e){if(!Bt.supportsBigInt())throw new ue("S2 required BigInt support");this._cellId=e,this._level=Pr.getLevel(e)}Pr.fromToken=function(e){return new Pr(Pr.getIdFromToken(e))};Pr.isValidId=function(e){return!(e<=0||e>>BigInt(yG)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Pr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Pr.isValidId(Pr.getIdFromToken(e)):!1};Pr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Pr.getTokenFromId=function(e){let t=Math.floor(nLe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Pr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return T0-(t>>1)};Pr.prototype.getChild=function(e){let t=See(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Pr(n)};Pr.prototype.getParent=function(){let e=See(this._cellId)<<BigInt(2);return new Pr(this._cellId&~e+BigInt(1)|e)};Pr.prototype.getParentAtLevel=function(e){let t=eLe(e);return new Pr(this._cellId&-t|t)};Pr.prototype.getCenter=function(e){e=y(e,ie.WGS84);let t=YMe(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,ie.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Pr.prototype.getVertex=function(e,t){t=y(t,ie.WGS84);let n=XMe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,ie.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Pr.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),o=t.toString(2),r=Array(2*n-o.length+1).join("0"),s=Array(yG-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Pr(a)};function YMe(e,t){let n=KMe(e,t);return ZMe(n[0],n[1],n[2])}function XMe(e,t,n){let i=Cee(e,t),o=$Me([i[1],i[2]],t),r=n>>1&1;return Eee(i[0],o[0][r^n&1],o[1][r])}function KMe(e,t){let n=Cee(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,l=(o<<1)+c,f=(r<<1)+c;return[i,l,f]}function Cee(e){Tee.length===0&&JMe();let t=Number(e>>BigInt(yG)),n=t&L_,i=(1<<M_)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?T0-7*M_:M_))-1;n+=Number(e>>BigInt(s*2*M_+1)&BigInt(c))<<2,n=Aee[n];let l=s*M_;o+=n>>M_+2<<l,r+=(n>>2&i)<<l,n&=L_|wT}return[t,o,r]}function ZMe(e,t,n){let i=xee(t),o=xee(n),r=XM(i),s=XM(o);return Eee(e,r,s)}function Eee(e,t,n){switch(e){case 0:return new h(1,t,n);case 1:return new h(-t,1,n);case 2:return new h(-t,-n,1);case 3:return new h(-1,-n,-t);case 4:return new h(n,-1,-t);default:return new h(n,t,-1)}}function XM(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function xee(e){return 1/jMe*e}function $Me(e,t){let n=[[],[]],i=QMe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=XM(bee(r)),n[o][1]=XM(bee(s))}return n}function QMe(e){return 1<<T0-e>>>0}function bee(e){return 1/WMe*e}function N_(e,t,n,i,o,r){if(e===M_){let s=(t<<M_)+n;Tee[(s<<2)+i]=(o<<2)+r,Aee[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=qMe[r];N_(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^YM[0]),N_(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^YM[1]),N_(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^YM[2]),N_(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^YM[3])}}function JMe(){N_(0,0,0,0,0,0),N_(0,0,0,L_,0,L_),N_(0,0,0,wT,0,wT),N_(0,0,0,L_|wT,0,L_|wT)}function See(e){return e&~e+BigInt(1)}function eLe(e){return BigInt(1)<<BigInt(2*(T0-e))}var tLe=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function nLe(e){return tLe[(-e&e)%BigInt(67)]}var F_=Pr;function iLe(e,t){return u(e)&&u(e.extensions)&&u(e.extensions[t])}var oi=iLe;function xG(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(u(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new ue(`Availability bitstream must be exactly ${r} bytes long to store ${t} bits. Actual bitstream was ${o.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!u(n)&&s&&(n=oLe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function oLe(e,t){let n=0;for(let i=0;i<t;i++){let o=i>>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(xG.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});xG.prototype.getBit=function(e){if(u(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var KS=xG;function Km(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(Km.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Km.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Km.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Km.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Km.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Km.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Km.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Km.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var ZS=Km;var KM={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};KM.getBranchingFactor=function(e){switch(e){case KM.OCTREE:return 8;case KM.QUADTREE:return 4}};var Hr=Object.freeze(KM);function Ls(){}Object.defineProperties(Ls.prototype,{class:{get:function(){de.throwInstantiationError()}}});Ls.prototype.hasProperty=function(e){de.throwInstantiationError()};Ls.prototype.hasPropertyBySemantic=function(e){de.throwInstantiationError()};Ls.prototype.getPropertyIds=function(e){de.throwInstantiationError()};Ls.prototype.getProperty=function(e){de.throwInstantiationError()};Ls.prototype.setProperty=function(e,t){de.throwInstantiationError()};Ls.prototype.getPropertyBySemantic=function(e){de.throwInstantiationError()};Ls.prototype.setPropertyBySemantic=function(e,t){de.throwInstantiationError()};Ls.hasProperty=function(e,t,n){if(u(t[e]))return!0;let i=n.properties;if(!u(i))return!1;let o=i[e];return!!(u(o)&&u(o.default))};Ls.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return!1;let o=i[e];return u(o)};Ls.getPropertyIds=function(e,t,n){n=u(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&u(e[o])&&n.push(o);let i=t.properties;if(u(i))for(let o in i)i.hasOwnProperty(o)&&!u(e[o])&&u(i[o].default)&&n.push(o);return n};Ls.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!u(o)&&u(i.default))return o=Ge(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(u(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};Ls.setProperty=function(e,t,n,i){if(!u(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;u(r)&&(o=r[e]);let s=!0;return u(o)&&(t=o.packVectorAndMatrixTypes(t,s),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};Ls.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return;let o=i[e];if(u(o))return Ls.getProperty(o.id,t,n)};Ls.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!u(o))return!1;let r=i.propertiesBySemantic[e];return u(r)?Ls.setProperty(r.id,t,n,i):!1};var Bn=Ls;function Zm(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Zm.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Zm.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};Zm.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};Zm.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};Zm.prototype.getProperty=function(e){return Bn.getProperty(e,this._properties,this._class)};Zm.prototype.setProperty=function(e,t){return Bn.setProperty(e,t,this._properties,this._class)};Zm.prototype.getPropertyBySemantic=function(e){return Bn.getPropertyBySemantic(e,this._properties,this._class)};Zm.prototype.setPropertyBySemantic=function(e,t){return Bn.setPropertyBySemantic(e,t,this._properties,this._class)};var ZM=Zm;var vt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};vt.getMinimum=function(e){switch(e){case vt.INT8:return-128;case vt.UINT8:return 0;case vt.INT16:return-32768;case vt.UINT16:return 0;case vt.INT32:return-2147483648;case vt.UINT32:return 0;case vt.INT64:return Bt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case vt.UINT64:return Bt.supportsBigInt()?BigInt(0):0;case vt.FLOAT32:return-34028234663852886e22;case vt.FLOAT64:return-Number.MAX_VALUE}};vt.getMaximum=function(e){switch(e){case vt.INT8:return 127;case vt.UINT8:return 255;case vt.INT16:return 32767;case vt.UINT16:return 65535;case vt.INT32:return 2147483647;case vt.UINT32:return 4294967295;case vt.INT64:return Bt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case vt.UINT64:return Bt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case vt.FLOAT32:return 34028234663852886e22;case vt.FLOAT64:return Number.MAX_VALUE}};vt.isIntegerType=function(e){switch(e){case vt.INT8:case vt.UINT8:case vt.INT16:case vt.UINT16:case vt.INT32:case vt.UINT32:case vt.INT64:case vt.UINT64:return!0;default:return!1}};vt.isUnsignedIntegerType=function(e){switch(e){case vt.UINT8:case vt.UINT16:case vt.UINT32:case vt.UINT64:return!0;default:return!1}};vt.isVectorCompatible=function(e){switch(e){case vt.INT8:case vt.UINT8:case vt.INT16:case vt.UINT16:case vt.INT32:case vt.UINT32:case vt.FLOAT32:case vt.FLOAT64:return!0;default:return!1}};vt.normalize=function(e,t){return Math.max(Number(e)/Number(vt.getMaximum(t)),-1)};vt.unnormalize=function(e,t){let n=vt.getMaximum(t),i=vt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===vt.INT64||t===vt.UINT64)&&Bt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};vt.applyValueTransform=function(e,t,n){return n*e+t};vt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};vt.getSizeInBytes=function(e){switch(e){case vt.INT8:case vt.UINT8:return 1;case vt.INT16:case vt.UINT16:return 2;case vt.INT32:case vt.UINT32:return 4;case vt.INT64:case vt.UINT64:return 8;case vt.FLOAT32:return 4;case vt.FLOAT64:return 8}};vt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return vt.INT8;case X.UNSIGNED_BYTE:return vt.UINT8;case X.SHORT:return vt.INT16;case X.UNSIGNED_SHORT:return vt.UINT16;case X.INT:return vt.INT32;case X.UNSIGNED_INT:return vt.UINT32;case X.FLOAT:return vt.FLOAT32;case X.DOUBLE:return vt.FLOAT64}};vt.toComponentDatatype=function(e){switch(e){case vt.INT8:return X.BYTE;case vt.UINT8:return X.UNSIGNED_BYTE;case vt.INT16:return X.SHORT;case vt.UINT16:return X.UNSIGNED_SHORT;case vt.INT32:return X.INT;case vt.UINT32:return X.UNSIGNED_INT;case vt.FLOAT32:return X.FLOAT;case vt.FLOAT64:return X.DOUBLE}};var Jt=Object.freeze(vt);var Do={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Do.isVectorType=function(e){switch(e){case Do.VEC2:case Do.VEC3:case Do.VEC4:return!0;default:return!1}};Do.isMatrixType=function(e){switch(e){case Do.MAT2:case Do.MAT3:case Do.MAT4:return!0;default:return!1}};Do.getComponentCount=function(e){switch(e){case Do.SCALAR:case Do.STRING:case Do.ENUM:case Do.BOOLEAN:return 1;case Do.VEC2:return 2;case Do.VEC3:return 3;case Do.VEC4:return 4;case Do.MAT2:return 4;case Do.MAT3:return 9;case Do.MAT4:return 16}};Do.getMathType=function(e){switch(e){case Do.VEC2:return V;case Do.VEC3:return h;case Do.VEC4:return oe;case Do.MAT2:return Ji;case Do.MAT3:return $;case Do.MAT4:return L;default:return}};var Gt=Object.freeze(Do);function ra(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=u(i)&&Jt.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=u(o)?o.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=Ge(e.min,!0),this._max=Ge(e.max,!0),this._normalized=r;let s=Ge(e.offset,!0),a=Ge(e.scale,!0),c=u(s)||u(a),l=!0;u(s)||(s=this.expandConstant(0,l)),u(a)||(a=this.expandConstant(1,l)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=Ge(e.noData,!0),this._default=Ge(e.default,!0),this._required=y(e.required,!0),this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}ra.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=rLe(n),o=sLe(n,e.enums),r;return u(i)?i?r=u(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new ra({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(ra.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function rLe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===Gt.SCALAR||Gt.isMatrixType(t)||Gt.isVectorType(t))return!1;if(u(Jt[t]))return!0;if(u(e.noData)||u(e.scale)||u(e.offset)||u(e.required)||u(e.count)||u(e.array)||u(e.optional))return!1}function sLe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!u(s)):e.array?(r=!0,s=e.count,a=!u(e.count)):(r=!1,s=void 0,a=!1);let c;if(u(e.enumType)&&(c=t[e.enumType]),n===Gt.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===Gt.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Gt.SCALAR||Gt.isMatrixType(n)||Gt.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Gt.BOOLEAN||n===Gt.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===Gt.BOOLEAN||i===Gt.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(u(i)&&u(Jt[i]))return{type:Gt.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(u(Jt[n]))return{type:Gt.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}ra.prototype.normalize=function(e){return this._normalized?bG(e,this._valueType,Jt.normalize):e};ra.prototype.unnormalize=function(e){return this._normalized?bG(e,this._valueType,Jt.unnormalize):e};ra.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ra.valueTransformInPlace(e,this._offset,this._scale,Jt.applyValueTransform)};ra.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ra.valueTransformInPlace(e,this._offset,this._scale,Jt.unapplyValueTransform)};ra.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=Gt.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};ra.prototype.handleNoData=function(e){let t=this._noData;if(!u(t))return e;if(!Iee(e,t))return e};function Iee(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Iee(e[n],t[n]))return!1;return!0}ra.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Gt.getMathType(this._type),i=this._isArray,o=Gt.getComponentCount(this._type),r=i&&o>1;return u(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};ra.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Gt.getMathType(this._type),i=this._isArray,o=Gt.getComponentCount(this._type),r=i&&o>1;return u(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};ra.prototype.validate=function(e){if(!(!u(e)&&u(this._default)))return this._required&&!u(e)?"required property must have a value":this._isArray?aLe(this,e):Pee(this,e)};function aLe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let o=Pee(e,t[i]);if(u(o))return o}}function Pee(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return Gt.isVectorType(n)?cLe(t,n,i):Gt.isMatrixType(n)?lLe(t,n,i):n===Gt.STRING?uLe(t):n===Gt.BOOLEAN?fLe(t):n===Gt.ENUM?dLe(t,o):hLe(t,i,r)}function cLe(e,t,n){if(!Jt.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===Gt.VEC2&&!(e instanceof V))return`vector value ${e} must be a Cartesian2`;if(t===Gt.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===Gt.VEC4&&!(e instanceof oe))return`vector value ${e} must be a Cartesian4`}function lLe(e,t,n){if(!Jt.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===Gt.MAT2&&!(e instanceof Ji))return`matrix value ${e} must be a Matrix2`;if(t===Gt.MAT3&&!(e instanceof $))return`matrix value ${e} must be a Matrix3`;if(t===Gt.MAT4&&!(e instanceof L))return`matrix value ${e} must be a Matrix4`}function uLe(e){if(typeof e!="string")return $M(e,Gt.STRING)}function fLe(e){if(typeof e!="boolean")return $M(e,Gt.BOOLEAN)}function dLe(e,t){let n=typeof e;if(u(t))return n!=="string"||!u(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function hLe(e,t,n){let i=typeof e;switch(t){case Jt.INT8:case Jt.UINT8:case Jt.INT16:case Jt.UINT16:case Jt.INT32:case Jt.UINT32:case Jt.FLOAT32:case Jt.FLOAT64:return i!=="number"?$M(e,t):isFinite(e)?vee(e,t,n):Dee(e,t);case Jt.INT64:case Jt.UINT64:return i!=="number"&&i!=="bigint"?$M(e,t):i==="number"&&!isFinite(e)?Dee(e,t):vee(e,t,n)}}function $M(e,t){return`value ${e} does not match type ${t}`}function wee(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function vee(e,t,n){if(n){let i=Jt.isUnsignedIntegerType(t)?0:-1,o=1;return e<i||e>o?wee(e,t,n):void 0}if(e<Jt.getMinimum(t)||e>Jt.getMaximum(t))return wee(e,t,n)}function Dee(e,t){return`value ${e} of type ${t} must be finite`}function bG(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=bG(e[i],t,n);return e}ra.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let o=0;o<e.length;o++)e[o]=ra.valueTransformInPlace(e[o],t[o],n[o],i);return e};var A0=ra;function $S(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,l=i.enumType,f=r===Gt.STRING,d=r===Gt.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(Jt[_],Jt.UINT32);let E=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new TG(o[E],_,t+1),p+=g.typedArray.byteLength}let m=Gt.getComponentCount(r),x;a?x=g.get(t)-g.get(0):s?x=t*i.arrayLength:x=t;let b=m*x,T;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(Jt[_],Jt.UINT32);let E=y(n.stringOffsets,n.stringOffsetBufferView);T=new TG(o[E],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=Jt.UINT8);let A;f?A=T.get(b)-T.get(0):d?A=Math.ceil(b/8):A=b;let C=y(n.values,n.bufferView),S=new TG(o[C],c,A);p+=S.typedArray.byteLength;let w=n.offset,D=n.scale,O=i.hasValueTransform||u(w)||u(D);w=y(w,i.offset),D=y(D,i.scale),w=Oee(w),D=Oee(D);let R,N,F=this;f?R=function(_){return _Le(_,F._values,F._stringOffsets)}:d?(R=function(_){return gLe(_,F._values)},N=function(_,E){yLe(_,F._values,E)}):u(l)?(R=function(_){let E=F._values.get(_);return l.namesByValue[E]},N=function(_,E){let v=l.valuesByName[E];F._values.set(_,v)}):(R=function(_){return F._values.get(_)},N=function(_,E){F._values.set(_,E)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=S,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=w,this._scale=D,this._hasValueTransform=O,this._getValue=R,this._setValue=N,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties($S.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});$S.prototype.get=function(e){let t=mLe(this,e);return t=this._classProperty.handleNoData(t),u(t)?(t=this._classProperty.normalize(t),t=wLe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};$S.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=vLe(this,t),t=n.unnormalize(t),pLe(this,e,t)};$S.prototype.getTypedArray=function(){if(u(this._values))return this._values.typedArray};function Oee(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function mLe(e,t){Mee(e)&&Lee(e);let n=e._classProperty,i=n.isArray,o=n.type,r=Gt.getComponentCount(o);if(u(e._unpackedValues)){let s=e._unpackedValues[t];return i?Ge(s,!0):s}return!i&&r===1?e._getValue(t):Ree(e,n,t)}function Ree(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=Gt.getComponentCount(t.type);i*=s,o*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,o=a}let r=new Array(o);for(let s=0;s<o;s++)r[s]=e._getValue(i+s);return r}function pLe(e,t,n){ELe(e,t,n)&&Lee(e);let i=e._classProperty,o=i.isArray,r=i.type,s=Gt.getComponentCount(r);if(u(e._unpackedValues)){i.isArray&&(n=Ge(n,!0)),e._unpackedValues[t]=n;return}if(!o&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let l=0;l<c;++l)e._setValue(a+l,n[l])}function _Le(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Bl(t.typedArray,i,o)}function gLe(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function yLe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function xLe(e,t){let n=t.dataView,i=e*8,o=0,r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function bLe(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return r&&(o=-o),o}function TLe(e,t){let n=t.dataView,i=e*8,o=n.getUint32(i,!0),r=n.getUint32(i+4,!0);return o+4294967296*r}function ALe(e,t){let n=t.dataView,i=e*8,o=BigInt(n.getUint32(i,!0)),r=BigInt(n.getUint32(i+4,!0));return o+BigInt(4294967296)*r}function CLe(e){switch(e){case Jt.INT8:return X.BYTE;case Jt.UINT8:return X.UNSIGNED_BYTE;case Jt.INT16:return X.SHORT;case Jt.UINT16:return X.UNSIGNED_SHORT;case Jt.INT32:return X.INT;case Jt.UINT32:return X.UNSIGNED_INT;case Jt.FLOAT32:return X.FLOAT;case Jt.FLOAT64:return X.DOUBLE}}function Mee(e){if(u(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===Gt.STRING||i===Jt.INT64&&!Bt.supportsBigInt64Array()||i===Jt.UINT64&&!Bt.supportsBigUint64Array()}function ELe(e,t,n){if(Mee(e))return!0;let i=e._arrayOffsets;if(u(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function Lee(e){e._unpackedValues=SLe(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function SLe(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=Gt.getComponentCount(r);if(!o&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=Ree(e,i,a);return n}function wLe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:A0.valueTransformInPlace(t,e._offset,e._scale,Jt.applyValueTransform)}function vLe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:A0.valueTransformInPlace(t,e._offset,e._scale,Jt.unapplyValueTransform)}function TG(e,t,n){let i=this,o,r,s;if(t===Jt.INT64)Bt.supportsBigInt()?Bt.supportsBigInt64Array()?(o=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return bLe(a,i)}):(It("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return xLe(a,i)});else if(t===Jt.UINT64)Bt.supportsBigInt()?Bt.supportsBigUint64Array()?(o=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return ALe(a,i)}):(It("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return TLe(a,i)});else{let a=CLe(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,l){i.typedArray[c]=l}}u(r)||(r=function(a){return i.typedArray[a]}),this.typedArray=o,this.dataView=new DataView(o.buffer,o.byteOffset),this.get=r,this.set=s,this._componentType=t}var QM=$S;function Yf(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(u(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new QM({count:t,property:e.properties[r],classProperty:n.properties[r],bufferViews:e.bufferViews});o[r]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=o,this._byteLength=i}Object.defineProperties(Yf.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});Yf.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};Yf.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};Yf.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};Yf.prototype.getProperty=function(e,t){let n=this._properties[t],i;return u(n)?i=n.get(e):i=DLe(this._class,t),i};Yf.prototype.setProperty=function(e,t,n){let i=this._properties[t];return u(i)?(i.set(e,n),!0):!1};Yf.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(u(i)&&(n=i[t]),u(n))return this.getProperty(e,n.id)};Yf.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return u(o)&&(i=o[t]),u(i)?this.setProperty(e,i.id,n):!1};Yf.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(u(t))return t.getTypedArray()};Yf.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(u(n)&&(t=n[e]),u(t))return this.getPropertyTypedArray(t.id)};function DLe(e,t){let n=e.properties;if(!u(n))return;let i=n[t];if(u(i)&&u(i.default)){let o=i.default;return i.isArray&&(o=Ge(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Vl=Yf;function B_(){}Object.defineProperties(B_.prototype,{cacheKey:{get:function(){de.throwInstantiationError()}}});B_.prototype.load=function(){de.throwInstantiationError()};B_.prototype.unload=function(){};B_.prototype.process=function(e){return!1};B_.prototype.getError=function(e,t){u(t)&&u(t.message)&&(e+=`
- ${t.message}`);let n=new ue(e);return u(t)&&(n.stack=`Original stack:
- ${t.stack}
- Handler stack:
- ${n.stack}`),n};B_.prototype.isDestroyed=function(){return!1};B_.prototype.destroy=function(){return this.unload(),le(this)};var no=B_;var ILe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},St=Object.freeze(ILe);function $m(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&($m.prototype=Object.create(no.prototype),$m.prototype.constructor=$m);Object.defineProperties($m.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});$m.prototype.load=async function(){return u(this._promise)?this._promise:u(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=PLe(this),this._promise)};async function PLe(e){let t=e._resource;e._state=St.LOADING;try{let n=await $m._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=St.READY,e)}catch(n){if(e.isDestroyed())return;e._state=St.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}$m._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};$m.prototype.unload=function(){this._typedArray=void 0};var vT=$m;var Q7t=function(){"use strict";var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiLQdilevlevlooroowwvbDDbelve9Weiiviebeoweuec:G;kekr;qiHo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbzl79IV9RbHDwebcekdXCq:fSQdbk:fxeYu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRb:q:kjjbc:GeV86bbavcjdfcbcjdz:tjjjb8AdnaiTmbavcjdfadalzMjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0Ez:tjjjb8AavavcjdfalzMjjjbhDcj;abal9UhodndndndndnalTmbaoc;WFbGgecjdaecjd6Ehqcbhkdninakai9pmiaDcjlfcbcjdz:tjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndndndnaec9WGgsTmbcbhzcehHaPhOawhAxekdnaxTmbcbhAcehHaPhCinaDaAfRbbhXaDcjlfheaChoaxhQinaeaoRbbgLaX9RgXcetaXcKtcK91cr4786bbaoalfhoaecefheaLhXaQcufgQmbkaraw9Ram6miawcbamz:tjjjbgeTmiaCcefhCaeamfhwaAcefgAal6hHaAal9hmbxvkkaraw9Ram6mvawcbamz:tjjjb8AceheinawgXamfhwalaegoSmldnaraw9Ram6mbaocefheawcbamz:tjjjb8AaXmekkcbhwaoal6mvxikindnaxTmbaDazfRbbhXaDcjlfheaOhoaxhQinaeaoRbbgLaX9RgXcetaXcKtcK91cr4786bbaoalfhoaecefheaLhXaQcufgQmbkkaraA9Ram6mearaAcbamz:tjjjbgKamfgw9RcK6mdcbhYaDcjlfhAinaDcjlfaYfh8AcwhCczhLcehQindndnaQce9hmbcuhoa8ARbbmecbhodninaogecsSmeaecefhoaAaefcefRbbTmbkkcucbaecs6EhoxekaQcetc;:FFFeGhocuaQtcu7cFeGhXcbheinaoaXaAaefRbb9nfhoaecefgecz9hmbkkaoaLaoaL6geEhLaQaCaeEhCaQcetgQcw6mbkdndndndnaCcufPdiebkaKaYco4fgeaeRbbcdciaCclSEaYci4coGtV86bbaCcw9hmeawa8A8Pbb83bbawcwfa8Acwf8Pbb83bbawczfhwxdkaKaYco4fgeaeRbbceaYci4coGtV86bbkdncwaC9TgEmbinawcb86bbawcefhwxbkkcuaCtcu7h8Acbh3aAh5ina5heaEhQcbhoinaeRbbgLa8AcFeGgXaLaX6EaoaCtVhoaecefheaQcufgQmbkawao86bba5aEfh5awcefhwa3aEfg3cz6mbkcbheindnaAaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaYczfgYas9pmbaAczfhAaraw9RcL0mekkaYas6meawTmeaOcefhOazcefgzal6hHawhAazalSmixbkkcbhwaHceGTmexikcbhwaHceGmdkaDaPaxcufal2falzMjjjb8AaxakfhkawmbkcbhoxokcbhoxvkaiTmekcbhoaraw9Ralcaalca0E6mialc8F9nmexdkcbhoaecufca6mdkawcbcaal9Rgez:tjjjbaefhwkawaDcjdfalzMjjjbalfab9Rhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBd:q:kjjbk;use3u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbydN:kjjbgrc;GeV86bbalc;abfcFecjez:tjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgoydbhLaocwfydbhKaoclfydbhYcbh8Adndninalc;abfavcsGcitfgoydlhEdndndnaoydbgoaL9hmbaEaYSmekdnaoaY9hmbaEaK9hmba8Acefh8AxekaoaK9hmeaEaL9hmea8Acdfh8Aka8Ac870mdaXcufhvada8AciGcx2goc:y1jjbfydbaCfcdtfydbhEadaocN1jjbfydbaCfcdtfydbhKadaoc:q1jjbfydbaCfcdtfydbhLcbhodnindnalavcsGcdtfydbaE9hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaEaOSgvaYcb9kaYaH9iGgoce7Gh3dndndndndnaYcbcsavEaoEgvcs9hmbarce9imbaEaEaAaEcefaASgvEgAcefSmecmcsavEhvkasava8Acdtc;WeGV86bbavcs9hmeaEaA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbkaEhAxdkcPhvasa8AcdtcPV86bbaEhAkavTmbavaH9imekalaXcdtfaEBdbaXcefcsGhXkaOa3fhOalc;abfaQcitfgvaKBdlavaEBdbalc;abfaQcefcsGgvcitfgoaEBdlaoaLBdbavcefhoxikavcufhva8Aclfg8Ac;ab9hmbkkdnadceaKaOScetaYaOSEcx2gvc:q1jjbfydbaCfcdtfydbgLTadavcN1jjbfydbaCfcdtfydbg8AceSGadavc:y1jjbfydbaCfcdtfydbgYcdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhKxdkcuhKaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydbaY9hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaLaOSg8Efh3dndnaKcm0mbaKcefhKxekcbcsa8Aa3SgvEhKa3avfh3kdndnaEcm0mbaEcefhExekcbcsaYa3SgvEhEa3avfh3kc9:cua8EEh8FaEaKcltVhocbhvdndndninavcj1jjbfRbbaocFeGSmeavcefgvcz9hmbxdkkaLaO9havcm0Va5Vmbasavc;WeV86bbxekasa8F86bbaeao86bbaecefhekdna8EmbaLaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaLhAkdnaKcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmbaYaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaYhAkalaXcdtfaLBdbaXcefcsGhvdndnaKPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfaYBdbavcefcsGhvkalc;abfaQcitfgoaLBdlaoa8ABdbalc;abfaQcefcsGcitfgoa8ABdlaoaYBdbalc;abfaQcdfcsGcitfgoaYBdlaoaLBdbaQcifhoavhXa3hOkascefhsaocsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBdN:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRbN:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhralcxfIdbhqdndnakJbbbb9GTmbaxhkxekJbbjZar:l:tgkak:maxJbbbb9GEhkJbbjZax:l:tgxax:marJbbbb9GEhrkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEavNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohmxekcjjjj94hmkdndnakJbbj:;akJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;akJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaDfgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaifgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaicwfhiaDclfhDaecufgembkkk;klld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicdfciGcdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk:Hvdxue998Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6mearcearce0EhwaohDinaDc:CuBdbaDclfhDawcufgwmbkaeTmiadcl6mdarcearce0EhqarcdthkalhxcbhminaohDaxhwaqhPinaDaDydbgsawydbgzcL4cFeGc:cufcbazEgzasaz9kEBdbawclfhwaDclfhDaPcufgPmbkaxakfhxamcefgmae9hmbkkaeTmdxekaeTmekavcb9hadcl6gqVhHarcearce0Ehkarcdthrceai9Rhmcbhdindndndnavce9hmbaqmdc:CuhwalhDakhPinawaDydbgscL4cFeGc:cufcbasEgsawas9kEhwaDclfhDaPcufgPmbxdkkc:CuhwaHmbaohDalhPakhsinaDaPydbgzcL4cFeGgxc8Aaxc8A9kEc:cufcbazEBdbaPclfhPaDclfhDascufgsmbkkaqmbcbhDakhsinawhPdnavceSmbaoaDfydbhPkdndnalaDfIdbgOcjjj;8iamaPfgPcLt9R::NJbbbZJbbb:;aOJbbbb9GEMgO:lJbbb9p9DTmbaO:Ohzxekcjjjj94hzkabaDfazcFFFrGaPcKtVBdbaDclfhDascufgsmbkkabarfhbalarfhladcefgdae9hmbkkaocjdf8Kjjjjbk;TkdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Oefcbc;Kbz:tjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgoadcFFFFi0Ecbyd1:kjjbHjjjjbbgeBd:OeavceBd1daeabaozMjjjb8Akavc:yefcwfcbBdbav9cb83i:yeavc:yefaeadaiavc:Oefz:njjjbcuaicdtgraicFFFFi0Egwcbyd1:kjjbHjjjjbbhoavc:Oefavyd1dgDcdtfaoBdbavaDcefgqBd1daoavyd:yegkarzMjjjbhxavc:Oefaqcdtfadci9Ugmcbyd1:kjjbHjjjjbbgoBdbavaDcdfgrBd1daocbamz:tjjjbhPavc:Oefarcdtfawcbyd1:kjjbHjjjjbbgsBdbavaDcifgqBd1daxhoashrinaralIdbalaoydbgwcwawcw6Ecdtfc;ebfIdbMUdbaoclfhoarclfhraicufgimbkavc:OefaqcdtfcuamcdtadcFFFF970Ecbyd1:kjjbHjjjjbbgqBdbavaDclfBd1ddnadci6mbamceamce0EhiaehoaqhrinarasaoydbcdtfIdbasaoclfydbcdtfIdbMasaocwfydbcdtfIdbMUdbaocxfhoarclfhraicufgimbkkavc;mbfhzavhoavyd:CehHavyd:GehOcbhwcbhrcbhAcehCinaohXcihQaearci2gLcdtfgocwfydbhKaoydbhdabaAcx2fgiclfaoclfydbgDBdbaiadBdbaicwfaKBdbaParfce86bbazaKBdwazaDBdlazadBdbaqarcdtfcbBdbdnawTmbcihQaXhiindnaiydbgoadSmbaoaDSmbaoaKSmbazaQcdtfaoBdbaQcefhQkaiclfhiawcufgwmbkkaAcefhAaxadcdtfgoaoydbcufBdbaxaDcdtfgoaoydbcufBdbaxaKcdtfgoaoydbcufBdbcbhwinaOaHaeawaLfcdtfydbcdtgifydbcdtfgKhoakaifgDydbgdhidnadTmbdninaoydbarSmeaoclfhoaicufgiTmdxbkkaoadcdtaKfc98fydbBdbaDaDydbcufBdbkawcefgwci9hmbkdndndnaQTmbcuhrJbbbbhYcbhoinasazaocdtfydbcdtgifgwIdbh8AawalcbaocefgDaocs0EcdtfIdbalaxaifydbgocwaocw6Ecdtfc;ebfIdbMgEUdbdnakaifydbgwTmbaEa8A:thEaOaHaifydbcdtfhoawcdthiinaqaoydbgwcdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYawaradEhraoclfhoaic98fgimbkkaDhoaDaQ9hmbkarcu9hmekaCam9pmeindnaPaCfRbbmbaChrxdkamaCcefgC9hmbxdkkaQczaQcz6EhwazhoaXhzarcu9hmekkavyd1dhokaocdtavc:Oeffc98fhrdninaoTmearydbcbyd:e:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;UlevucuaicdtgvaicFFFFi0Egocbyd1:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd1:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd1:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:tjjjb8Aadci9UhwdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbawceawce0EhDabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtz:tjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:m:kjjbgeabcifc98GfgbBd:m:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:m:kjjbgeabcrfc94GfgbBd:m:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:m:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:m:kjjbfgdBd:m:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Eddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkxebbbdbbbaWbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var x=p.charCodeAt(m);g[m]=x>96?x-97:x>64?x-39:x+4}for(var b=0,m=0;m<p.length;++m)g[b++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,b)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g,m){var x=n.exports.sbrk,b=x(p.length*4),T=x(g*4),A=new Uint8Array(n.exports.memory.buffer),C=s(p);A.set(C,b),m&&m(b,b,p.length,g);var S=n.exports.meshopt_optimizeVertexFetchRemap(T,b,p.length,g);A=new Uint8Array(n.exports.memory.buffer);var w=new Uint32Array(g);new Uint8Array(w.buffer).set(A.subarray(T,T+g*4)),C.set(A.subarray(b,b+p.length*4)),x(b-x(0));for(var D=0;D<p.length;++D)p[D]=w[p[D]];return[w,S]}function c(p,g,m,x,b){var T=n.exports.sbrk,A=T(g),C=T(x*b),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),C);var w=p(A,g,C,x,b),D=new Uint8Array(w);return D.set(S.subarray(A,A+w)),T(A-T(0)),D}function l(p){for(var g=0,m=0;m<p.length;++m){var x=p[m];g=g<x?x:g}return g}function f(p,g){if(r(g==2||g==4),g==4)return new Uint32Array(p.buffer,p.byteOffset,p.byteLength/4);var m=new Uint16Array(p.buffer,p.byteOffset,p.byteLength/2);return new Uint32Array(m)}function d(p,g,m,x,b,T,A){var C=n.exports.sbrk,S=C(m*x),w=C(m*T),D=new Uint8Array(n.exports.memory.buffer);D.set(s(g),w),p(S,m,x,b,w,A);var O=new Uint8Array(m*x);return O.set(D.subarray(S,S+m*x)),C(S-C(0)),O}return{ready:i,supported:!0,reorderMesh:function(p,g,m){var x=g?m?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(p,l(p)+1,x)},encodeVertexBuffer:function(p,g,m){r(m>0&&m<=256),r(m%4==0);var x=n.exports.meshopt_encodeVertexBufferBound(g,m);return c(n.exports.meshopt_encodeVertexBuffer,x,p,g,m)},encodeIndexBuffer:function(p,g,m){r(m==2||m==4),r(g%3==0);var x=f(p,m),b=n.exports.meshopt_encodeIndexBufferBound(g,l(x)+1);return c(n.exports.meshopt_encodeIndexBuffer,b,x,g,4)},encodeIndexSequence:function(p,g,m){r(m==2||m==4);var x=f(p,m),b=n.exports.meshopt_encodeIndexSequenceBound(g,l(x)+1);return c(n.exports.meshopt_encodeIndexSequence,b,x,g,4)},encodeGltfBuffer:function(p,g,m,x){var b={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(b[x]),b[x](p,g,m)},encodeFilterOct:function(p,g,m,x){return r(m==4||m==8),r(x>=1&&x<=16),d(n.exports.meshopt_encodeFilterOct,p,g,m,x,16)},encodeFilterQuat:function(p,g,m,x){return r(m==8),r(x>=4&&x<=16),d(n.exports.meshopt_encodeFilterQuat,p,g,m,x,16)},encodeFilterExp:function(p,g,m,x,b){r(m>0&&m%4==0),r(x>=1&&x<=24);var T={Separate:0,SharedVector:1,SharedComponent:2};return d(n.exports.meshopt_encodeFilterExp,p,g,m,x,m,b?T[b]:1)}}}();var Nee=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?t:e,r,s=WebAssembly.instantiate(a(o),{}).then(function(T){r=T.instance,r.exports.__wasm_call_ctors()});function a(T){for(var A=new Uint8Array(T.length),C=0;C<T.length;++C){var S=T.charCodeAt(C);A[C]=S>96?S-97:S>64?S-39:S+4}for(var w=0,C=0;C<T.length;++C)A[w++]=A[C]<60?i[A[C]]:(A[C]-60)*64+A[++C];return A.buffer.slice(0,w)}function c(T,A,C,S,w,D){var O=r.exports.sbrk,R=C+3&-4,N=O(R*S),F=O(w.length),_=new Uint8Array(r.exports.memory.buffer);_.set(w,F);var E=T(N,C,S,F,w.length);if(E==0&&D&&D(N,R,S),A.set(_.subarray(N,N+C*S)),O(N-O(0)),E!=0)throw new Error("Malformed buffer data: "+E)}var l={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},d=[],p=0;function g(T){var A={object:new Worker(T),pending:0,requests:{}};return A.object.onmessage=function(C){var S=C.data;A.pending-=S.count,A.requests[S.id][S.action](S.value),delete A.requests[S.id]},A}function m(T){for(var A="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+b.toString(),C=new Blob([A],{type:"text/javascript"}),S=URL.createObjectURL(C),w=0;w<T;++w)d[w]=g(S);URL.revokeObjectURL(S)}function x(T,A,C,S,w){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(R,N){var F=new Uint8Array(C),_=p++;D.pending+=T,D.requests[_]={resolve:R,reject:N},D.object.postMessage({id:_,count:T,size:A,source:F,mode:S,filter:w},[F.buffer])})}function b(T){s.then(function(){var A=T.data;try{var C=new Uint8Array(A.count*A.size);c(r.exports[A.mode],C,A.count,A.size,A.source,r.exports[A.filter]),self.postMessage({id:A.id,count:A.count,action:"resolve",value:C},[C.buffer])}catch(S){self.postMessage({id:A.id,count:A.count,action:"reject",value:S})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,A,C,S,w){c(r.exports.meshopt_decodeVertexBuffer,T,A,C,S,r.exports[l[w]])},decodeIndexBuffer:function(T,A,C,S){c(r.exports.meshopt_decodeIndexBuffer,T,A,C,S)},decodeIndexSequence:function(T,A,C,S){c(r.exports.meshopt_decodeIndexSequence,T,A,C,S)},decodeGltfBuffer:function(T,A,C,S,w,D){c(r.exports[f[w]],T,A,C,S,r.exports[l[D]])},decodeGltfBufferAsync:function(T,A,C,S,w){return d.length>0?x(T,A,C,f[S],l[w]):s.then(function(){var D=new Uint8Array(T*A);return c(r.exports[f[S]],D,T,A,C,r.exports[l[w]]),D})}}}();var tqt=function(){"use strict";var e="b9H79TebbbecD9Geueu9Geub9Gbb9Gquuuuuuu99uueu9Gvuuuuub9Gluuuue999Giuuue999Gluuuueu9Giuuueuimxdilvorbwwbewlve9Weiiviebeoweuecj;jekr7oo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95beX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbla9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbvl79IV9RboDwebcekdDqq:XJxdbkp8WiKuP99Hu8Jjjjjbcj;bb9Rgq8KjjjjbaqcKfcbc;Kbz1jjjb8AaqcualcdtgkalcFFFFi0Egxcbyd;S1jjbHjjjjbbgmBdKaqceBd94aqamBdwaqaxcbyd;S1jjbHjjjjbbgPBd3aqcdBd94aqaPBdxaqcuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbgsBdaaqciBd94aqasBdzaqcwfaeadalcbz:cjjjbaqaxcbyd;S1jjbHjjjjbbgzBd8KaqclBd94aqaxcbyd;S1jjbHjjjjbbgHBdyaqcvBd94alcd4alfhOcehAinaAgCcethAaCaO6mbkcbhXaqcuaCcdtgAaCcFFFFi0Ecbyd;S1jjbHjjjjbbgOBd8SaqcoBd94aOcFeaAz1jjjbhQdnalTmbavcd4hLaCcufhKinaiaXaL2cdtfgYydlgCcH4aC7c:F:b:DD2aYydbgCcH4aC7c;D;O:B8J27aYydwgCcH4aC7c:3F;N8N27hOcbhCdndninaQaOaKGgOcdtfg8AydbgAcuSmeaiaAaL2cdtfaYcxz:ljjjbTmdaCcefgCaOfhOaCaK9nmbxdkka8AaXBdbaXhAkazaXcdtfaABdbaXcefgXal9hmbkcbhCaHhAinaAaCBdbaAclfhAalaCcefgC9hmbkcbhCazhAaHhOindnaCaAydbgKSmbaOaHaKcdtfgKydbBdbaKaCBdbkaAclfhAaOclfhOalaCcefgC9hmbkkcbhOaqalcbyd;S1jjbHjjjjbbgYBd8WaqcrBd94aqaxcbyd;S1jjbHjjjjbbgCBd80aqcwBd94aqaxcbyd;S1jjbHjjjjbbgABdUaqcDBd94aCcFeakz1jjjbhEaAcFeakz1jjjbh3dnalTmbascwfh5indnamaOcdtgCfydbg8ETmbasaPaCfydbcitfh8Fa3aCfhaaEaCfhXcbhLindndna8FaLcitfydbgQaO9hmbaXaOBdbaaaOBdbxekdnamaQcdtgkfydbghTmbasaPakfydbcitgCfydbaOSmeahcufh8Aa5aCfhAcbhCina8AaCSmeaCcefhCaAydbhKaAcwfhAaKaO9hmbkaCah6meka3akfgCaOaQaCydbcuSEBdbaXaQaOaXydbcuSEBdbkaLcefgLa8E9hmbkkaOcefgOal9hmbkazhAaHhOa3hKaEhLcbhCindndnaCaAydbg8A9hmbdnaCaOydbg8A9hmbaLydbh8AdnaKydbgQcu9hmba8Acu9hmbaYaCfcb86bbxikaYaCfhXdnaCaQSmbaCa8ASmbaXce86bbxikaXcl86bbxdkdnaCaHa8AcdtgQfydb9hmbdnaKydbgXcuSmbaCaXSmbaLydbgkcuSmbaCakSmba3aQfydbg8EcuSmba8Ea8ASmbaEaQfydbgQcuSmbaQa8ASmbdnazaXcdtfydbazaQcdtfydb9hmbazakcdtfydbaza8Ecdtfydb9hmbaYaCfcd86bbxlkaYaCfcl86bbxikaYaCfcl86bbxdkaYaCfcl86bbxekaYaCfaYa8AfRbb86bbkaAclfhAaOclfhOaKclfhKaLclfhLalaCcefgC9hmbkawceGTmbaYhCalhAindnaCRbbce9hmbaCcl86bbkaCcefhCaAcufgAmbkkcbhLcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhmaqcKfaqyd94gCcdtfamBdbaqaCcefgABd94amaialavz:djjjb8AaqcKfaAcdtfcualc8S2gAalc;D;O;f8U0Ecbyd;S1jjbHjjjjbbgOBdbaqaCcdfBd94aOcbaAz1jjjbhsdnadTmbaehAindnamaAclfydbg8Acx2fgCIdbamaAydbgQcx2fgOIdbgg:tg8JamaAcwfydbgXcx2fgKIdlaOIdlg8K:tg8LNaKIdbag:tg8MaCIdla8K:tg8NN:tgyayNa8NaKIdwaOIdwg8P:tgINa8LaCIdwa8P:tg8NN:tg8La8LNa8Na8MNaIa8JN:tg8Ja8JNMM:rg8MJbbbb9ETmbaya8M:vhya8Ja8M:vh8Ja8La8M:vh8LkasazaQcdtfydbc8S2fgCa8La8M:rg8Ma8LNNg8NaCIdbMUdbaCa8Ja8Ma8JNg8RNgIaCIdlMUdlaCaya8MayNg8SNgRaCIdwMUdwaCa8Ra8LNg8RaCIdxMUdxaCa8Sa8LNg8UaCIdzMUdzaCa8Sa8JNg8SaCIdCMUdCaCa8La8Maya8PNa8LagNa8Ka8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCayagNgyaCIdaMUdaaCaga8KNggaCId8KMUd8KaCa8MaCIdyMUdyasaza8Acdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyasazaXcdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyaAcxfhAaLcifgLad6mbkcbh8AaehXincbhAinaYaeaAc:81jjbfydbgQa8AfcdtfydbgOfRbbhCdndnaYaXaAfydbgKfRbbgLc99fcFeGcpe0mbaCceSmbaCcd9hmekdnaLcufcFeGce0mbaEaKcdtfydbaO9hmekdnaCcufcFeGce0mba3aOcdtfydbaK9hmekdnaLcv2aCfc:G1jjbfRbbTmbazaOcdtfydbazaKcdtfydb0mekJbbacJbbjZaCceSEh8MaLceShkamaeaQcdtc:81jjbfydba8Afcdtfydbcx2fhCdnamaOcx2fgLIdwamaKcx2fgQIdwg8K:tg8La8LNaLIdbaQIdbg8P:tg8Ja8JNaLIdlaQIdlg8N:tgyayNMM:rggJbbbb9ETmba8Lag:vh8Layag:vhya8Jag:vh8JkJbbaca8MakEh8SdnaCIdwa8K:tg8Ma8La8Ma8LNaCIdba8P:tgRa8JNayaCIdla8N:tg8RNMMgIN:tg8Ma8MNaRa8JaIN:tg8La8LNa8RayaIN:tg8Ja8JNMM:rgyJbbbb9ETmba8May:vh8Ma8Jay:vh8Ja8Lay:vh8LkasazaKcdtfydbc8S2fgCa8La8SagNgya8LNNgIaCIdbMUdbaCa8Jaya8JNg8SNgRaCIdlMUdlaCa8Maya8MNggNg8RaCIdwMUdwaCa8Sa8LNg8SaCIdxMUdxaCaga8LNg8UaCIdzMUdzaCaga8JNg8VaCIdCMUdCaCa8Laya8Ma8KNa8La8PNa8Na8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCa8MagNg8MaCIdaMUdaaCaga8KNggaCId8KMUd8KaCayaCIdyMUdyasazaOcdtfydbc8S2fgCaIaCIdbMUdbaCaRaCIdlMUdlaCa8RaCIdwMUdwaCa8SaCIdxMUdxaCa8UaCIdzMUdzaCa8VaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCa8MaCIdaMUdaaCagaCId8KMUd8KaCayaCIdyMUdykaAclfgAcx9hmbkaXcxfhXa8Acifg8Aad6mbkkdnabaeSmbabaeadcdtz:hjjjb8Akcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaaqcKfaqyd94gCcdtfaaBdbaqaCcefgABd94aqcKfaAcdtfcuadcdtadcFFFFi0Ecbyd;S1jjbHjjjjbbg5BdbaqaCcdfgABd94aqcKfaAcdtfaxcbyd;S1jjbHjjjjbbgiBdbaqaCcifgABd94aqcKfaAcdtfalcbyd;S1jjbHjjjjbbg8WBdbaqaCclfBd94JbbbbhRdnadao9nmbararNh8Saacwfh8Xaqydwh8Yaqydxh8Zaqydzh80JbbbbhRinaqcwfabadgPalazz:cjjjbcbhhabhXcbhkincbhCindnazaXaCfydbgOcdtgefydbgLazabaCc:81jjbfydbakfcdtfydbgAcdtfydbg8ASmbaYaAfRbbgQcv2aYaOfRbbgKfc;q1jjbfRbbg8FaKcv2aQfg8Ec;q1jjbfRbbgdVcFeGTmbdna8Ec:G1jjbfRbbTmba8AaL0mekdnaKaQ9hmbaKcufcFeGce0mbaEaefydbaA9hmekaaahcx2fgKaAaOadcFeGgLEBdlaKaOaAaLEBdbaKaLa8FGcb9hBdwahcefhhkaCclfgCcx9hmbkaXcxfhXakcifgkaP6mbkdndnahTmbaahAahh8AinaAcwfgQJbbbbJbbjZasazaAydbgOcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaAclfgeydbgKcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNgyJbbbbJbbjZasazaKaOaQydbgLEgQcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaOaKaLEgXcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNg8Laya8L9FgCEUdbaeaKaXaCEBdbaAaOaQaCEBdbaAcxfhAa8Acufg8Ambkaqcjefcbcj;abz1jjjb8Aa8XhCahhAinaqcjefaCydbcO4c;8ZGfgOaOydbcefBdbaCcxfhCaAcufgAmbkcbhCcbhAinaqcjefaCfgOydbhKaOaABdbaKaAfhAaCclfgCcj;ab9hmbkcbhCa8XhAinaqcjefaAydbcO4c;8ZGfgOaOydbgOcefBdba5aOcdtfaCBdbaAcxfhAahaCcefgC9hmbkaPao9RgOci9Uh81dnalTmbcbhCaihAinaAaCBdbaAclfhAalaCcefgC9hmbkkcbhBa8Wcbalz1jjjbh83aOcO9UhUa81ce4h85cbh86cbhkdninaaa5akcdtfydbcx2fgXIdwg8Ja8S9Emea86a819pmeJFFuuh8Ldna85ah9pmbaaa5a85cdtfydbcx2fIdwJbb;aZNh8Lkdna8Ja8L9ETmba86aU0mdkdna83azaXydlg87cdtg88fydbgOfg89Rbba83azaXydbgecdtg8:fydbgZfgnRbbVmbdna8YaZcdtgCfydbgKTmba80a8ZaCfydbcitfhCamaOcx2fg8Ecwfhda8EclfhxamaZcx2fg8Fcwfhva8FclfhwcbhAcehQdnindnaiaCydbcdtfydbgLaOSmbaiaCclfydbcdtfydbg8AaOSmbama8Acx2fg8AIdbamaLcx2fgLIdbg8M:tg8LawIdbaLIdlgy:tggNa8FIdba8M:tg8Ka8AIdlay:tg8JN:ta8LaxIdbay:tg8PNa8EIdba8M:tg8Na8JN:tNa8JavIdbaLIdwgy:tgINaga8AIdway:tg8MN:ta8JadIdbay:tgyNa8Pa8MN:tNa8Ma8KNaIa8LN:ta8Ma8NNaya8LN:tNMMJbbbb9DmdkaCcwfhCaAcefgAaK6hQaKaA9hmbkkaQceGTmba85cefh85xekaXcwfhKasaOc8S2fgCasaZc8S2fgAIdbaCIdbMUdbaCaAIdlaCIdlMUdlaCaAIdwaCIdwMUdwaCaAIdxaCIdxMUdxaCaAIdzaCIdzMUdzaCaAIdCaCIdCMUdCaCaAIdKaCIdKMUdKaCaAId3aCId3MUd3aCaAIdaaCIdaMUdaaCaAId8KaCId8KMUd8KaCaAIdyaCIdyMUdydndndndnaYaefgARbbc9:fPdebdkaehCinaiaCcdtgCfaOBdbaHaCfydbgCae9hmbxikkaHa88fydbhCaHa8:fydbheaia8:fa87BdbaCh87kaiaecdtfa87Bdbkance86bba89ce86bbaKIdbg8LaRaRa8L9DEhRaBcefhBcecdaARbbceSEa86fh86kakcefgkah9hmbkkaBTmbdnalTmbcbhAaEhCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmbaEaKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkcbhAa3hCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmba3aKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkkcbhdabhCcbhLindnaiaCydbcdtfydbgAaiaCclfydbcdtfydbgOSmbaAaiaCcwfydbcdtfydbgKSmbaOaKSmbabadcdtfg8AaABdba8AclfaOBdba8AcwfaKBdbadcifhdkaCcxfhCaLcifgLaP9pmdxbkkaPhdxdkadao0mbkkdnaDTmbaDaR:rUdbkaqyd94gCcdtaqcKffc98fhzdninaCTmeazydbcbyd;W1jjbH:bjjjbbazc98fhzaCcufhCxbkkaqcj;bbf8Kjjjjbadk;pleouabydbcbaicdtz1jjjb8Aadci9UhvdnadTmbabydbhodnalTmbaehradhwinaoalarydbcdtfydbcdtfgDaDydbcefBdbarclfhrawcufgwmbxdkkaehradhwinaoarydbcdtfgDaDydbcefBdbarclfhrawcufgwmbkkdnaiTmbabydbhrabydlhwcbhDaihoinawaDBdbawclfhwarydbaDfhDarclfhraocufgombkkdnadci6mbavceavce0EhqabydlhvabydwhrinaecwfydbhwaeclfydbhDaeydbhodnalTmbalawcdtfydbhwalaDcdtfydbhDalaocdtfydbhokaravaocdtfgdydbcitfaDBdbaradydbcitfawBdladadydbcefBdbaravaDcdtfgdydbcitfawBdbaradydbcitfaoBdladadydbcefBdbaravawcdtfgwydbcitfaoBdbarawydbcitfaDBdlawawydbcefBdbaecxfheaqcufgqmbkkdnaiTmbabydlhrabydbhwinararydbawydb9RBdbawclfhwarclfhraicufgimbkkk:3ldouv998Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdnadTmbaicd4hvdnabTmbavcdthocbhraehwinabarcx2fgiaearav2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinalczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawaofhwarcefgrad9hmbxdkkavcdthrcbhwincbhiinalczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbkkalIdbalIdzgk:tJbbbb:xgqalIdlalIdCgx:tgmamaq9DEgqalIdwalIdKgm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgiaqaiIdbax:tNUdbabcwfgiaqaiIdbam:tNUdbabcxfhbadcufgdmbkkaPk:Qdidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgoaDIdbgrarao9EEUdbaladfgDaoaDIdbgrarao9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkavJbbbb:xgvaoaoav9DEgoararao9DEk9DeeuabcFeaicdtz1jjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;01jjbgeabcifc98GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;01jjbgeabcrfc94GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;01jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;01jjbfgdBd;01jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:cedbcjwk9PFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbeeebeebebbeeebebbbbbebebbbbbebbbdbbbbbbbbbbbbbbbeeeeebebbbbbebbbbbeebbbbbbc;Swkxebbbdbbbj9Kbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors()});function o(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var x=p.charCodeAt(m);g[m]=x>96?x-97:x>64?x-39:x+4}for(var b=0,m=0;m<p.length;++m)g[b++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,b)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g){var m=n.exports.sbrk,x=m(p.length*4),b=m(g*4),T=new Uint8Array(n.exports.memory.buffer),A=s(p);T.set(A,x);var C=n.exports.meshopt_optimizeVertexFetchRemap(b,x,p.length,g);T=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(g);new Uint8Array(S.buffer).set(T.subarray(b,b+g*4)),A.set(T.subarray(x,x+p.length*4)),m(x-m(0));for(var w=0;w<p.length;++w)p[w]=S[p[w]];return[S,C]}function c(p){for(var g=0,m=0;m<p.length;++m){var x=p[m];g=g<x?x:g}return g}function l(p,g,m,x,b,T,A,C,S){var w=n.exports.sbrk,D=w(4),O=w(m*4),R=w(b*T),N=w(m*4),F=new Uint8Array(n.exports.memory.buffer);F.set(s(x),R),F.set(s(g),N);var _=p(O,N,m,R,b,T,A,C,S,D);F=new Uint8Array(n.exports.memory.buffer);var E=new Uint32Array(_);s(E).set(F.subarray(O,O+_*4));var v=new Float32Array(1);return s(v).set(F.subarray(D,D+4)),w(D-w(0)),[E,v[0]]}function f(p,g,m,x){var b=n.exports.sbrk,T=b(m*x),A=new Uint8Array(n.exports.memory.buffer);A.set(s(g),T);var C=p(T,m,x);return b(T-b(0)),C}var d={LockBorder:1};return{ready:i,supported:!0,compactMesh:function(p){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0);var g=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p);return a(g,c(p)+1)},simplify:function(p,g,m,x,b,T){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0),r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),r(x%3==0),r(b>=0&&b<=1);for(var A=0,C=0;C<(T?T.length:0);++C)A|=d[T[C]];var S=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),w=l(n.exports.meshopt_simplify,S,p.length,g,g.length/m,m*4,x,b,A);return w[0]=p instanceof Uint32Array?w[0]:new p.constructor(w[0]),w},getScale:function(p,g){return r(p instanceof Float32Array),r(p.length%g==0),f(n.exports.meshopt_simplifyScale,p,p.length/g,g*4)}}}();function C0(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,l=a.byteOffset,f=a.byteLength,d=!1,p,g,m,x;if(oi(a,"EXT_meshopt_compression")){let T=a.extensions.EXT_meshopt_compression;c=T.buffer,l=y(T.byteOffset,0),f=T.byteLength,d=!0,p=T.byteStride,g=T.count,m=T.mode,x=y(T.filter,"NONE")}let b=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=m,this._meshoptFilter=x,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=b,this._bufferId=c,this._byteOffset=l,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(C0.prototype=Object.create(no.prototype),C0.prototype.constructor=C0);Object.defineProperties(C0.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function OLe(e){try{let t=RLe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);Nee.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=St.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}C0.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=OLe(this),this._promise)};function RLe(e){let t=e._resourceCache,n=e._buffer;if(u(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}C0.prototype.unload=function(){u(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var QS=C0;function gr(){}gr._maxDecodingConcurrency=Math.max(Bt.hardwareConcurrency-1,1);gr._decoderTaskProcessor=void 0;gr._taskProcessorReady=!1;gr._error=void 0;gr._getDecoderTaskProcessor=function(){if(!u(gr._decoderTaskProcessor)){let e=new pi("decodeDraco",gr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?gr._taskProcessorReady=!0:gr._error=new ue("Draco decoder could not be initialized.")}).catch(t=>{gr._error=t}),gr._decoderTaskProcessor=e}return gr._decoderTaskProcessor};gr.decodePointCloud=function(e){let t=gr._getDecoderTaskProcessor();if(u(gr._error))throw gr._error;if(gr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};gr.decodeBufferView=function(e){let t=gr._getDecoderTaskProcessor();if(u(gr._error))throw gr._error;if(gr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var k_=gr;function U_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=St.UNLOADED,this._promise=void 0,this._dracoError=void 0}u(Object.create)&&(U_.prototype=Object.create(no.prototype),U_.prototype.constructor=U_);Object.defineProperties(U_.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function MLe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=St.PROCESSING,e)}catch(n){if(e.isDestroyed())return;Fee(e,n)}}U_.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=MLe(this),this._promise)};function Fee(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function LLe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=St.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}U_.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.PROCESSING||(u(this._dracoError)&&Fee(this,this._dracoError),!u(this._bufferViewTypedArray))||u(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=k_.decodeBufferView(a);if(!u(c))return!1;this._decodePromise=LLe(this,c)};U_.prototype.unload=function(){u(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var JS=U_;function NLe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return ve.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(ve.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new ve({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return u(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return u(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var DT=NLe;function Qm(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,l=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=l,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Qm.prototype=Object.create(no.prototype),Qm.prototype.constructor=Qm);Object.defineProperties(Qm.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Qm.prototype.load=function(){return u(this._promise)?this._promise:u(this._bufferViewId)?(this._promise=FLe(this),this._promise):(this._promise=BLe(this),this._promise)};function Bee(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function FLe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await ULe(i);if(e.isDestroyed())return;let r=Bee(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=St.READY,e}catch(n){return e.isDestroyed()?void 0:kee(e,n,"Failed to load embedded image")}}async function BLe(e){e._state=St.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await zLe(i);if(e.isDestroyed())return;let r=Bee(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=St.READY,e}catch(o){return e.isDestroyed()?void 0:kee(e,o,`Failed to load image: ${n}`)}}function kee(e,t,n){return e.unload(),e._state=St.FAILED,Promise.reject(e.getError(n,t))}function kLe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new ue("Image format is not recognized")}async function ULe(e){let t=kLe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return vl(n)}return Qm._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var VLe=/(^data:image\/ktx2)|(\.ktx2$)/i;function zLe(e){let t=e.getUrlComponent(!1,!0);return VLe.test(t)?vl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Qm.prototype.unload=function(){u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Qm._loadImageFromTypedArray=DT;var ew=Qm;var HLe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},Oa=Object.freeze(HLe);function V_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),l=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=l,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(V_.prototype=Object.create(no.prototype),V_.prototype.constructor=V_);Object.defineProperties(V_.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var GLe=new CG;V_.prototype.load=async function(){return u(this._promise)?this._promise:u(this._draco)?(this._promise=WLe(this),this._promise):(this._promise=jLe(this),this._promise)};async function WLe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=St.LOADED,e)}catch(n){if(e.isDestroyed())return;AG(e,n)}}async function jLe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=St.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=qLe(e,a),e._state=St.PROCESSING,e}catch(s){if(e.isDestroyed())return;AG(e,s)}}function qLe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=ke.getSizeInBytes(s),c=t.buffer,l=t.byteOffset+o.byteOffset;if(l%a!==0){let d=r*a,p=new Uint8Array(c,l,d);c=new Uint8Array(p).buffer,l=0,es("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===ke.UNSIGNED_BYTE?f=new Uint8Array(c,l,r):s===ke.UNSIGNED_SHORT?f=new Uint16Array(c,l,r):s===ke.UNSIGNED_INT&&(f=new Uint32Array(c,l,r)),f}function AG(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function CG(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}CG.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};CG.prototype.execute=function(){this.buffer=Uee(this.typedArray,this.indexDatatype,this.context)};function Uee(e,t,n){let i=ut.createIndexBuffer({typedArray:e,context:n,usage:Be.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}V_.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(u(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){AG(this,o)}if(!u(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=GLe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,Oa.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=Uee(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=St.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};V_.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var tw=V_;function YLe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var ys=YLe;function XLe(e,t){return u(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var cr=XLe;function Wt(){}Wt.objectLegacy=function(e,t){if(u(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(u(o))return o}}};Wt.object=function(e,t){if(u(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(u(r))return r}}};Wt.topLevel=function(e,t,n){let i=e[t];return u(i)&&!Array.isArray(i)?Wt.objectLegacy(i,n):Wt.object(i,n)};Wt.accessor=function(e,t){return Wt.topLevel(e,"accessors",t)};Wt.accessorWithSemantic=function(e,t,n){let i={};return Wt.mesh(e,function(o){return Wt.meshPrimitive(o,function(r){let s=Wt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!u(i[a])){i[a]=!0;let l=n(a);if(u(l))return l}});return u(s)?s:Wt.meshPrimitiveTarget(r,function(a){return Wt.meshPrimitiveTargetAttribute(a,function(c,l){if(l.indexOf(t)===0&&!u(i[c])){i[c]=!0;let f=n(c);if(u(f))return f}})})})})};Wt.accessorContainingVertexAttributeData=function(e,t){let n={};return Wt.mesh(e,function(i){return Wt.meshPrimitive(i,function(o){let r=Wt.meshPrimitiveAttribute(o,function(s){if(!u(n[s])){n[s]=!0;let a=t(s);if(u(a))return a}});return u(r)?r:Wt.meshPrimitiveTarget(o,function(s){return Wt.meshPrimitiveTargetAttribute(s,function(a){if(!u(n[a])){n[a]=!0;let c=t(a);if(u(c))return c}})})})})};Wt.accessorContainingIndexData=function(e,t){let n={};return Wt.mesh(e,function(i){return Wt.meshPrimitive(i,function(o){let r=o.indices;if(u(r)&&!u(n[r])){n[r]=!0;let s=t(r);if(u(s))return s}})})};Wt.animation=function(e,t){return Wt.topLevel(e,"animations",t)};Wt.animationChannel=function(e,t){let n=e.channels;return Wt.object(n,t)};Wt.animationSampler=function(e,t){let n=e.samplers;return Wt.object(n,t)};Wt.buffer=function(e,t){return Wt.topLevel(e,"buffers",t)};Wt.bufferView=function(e,t){return Wt.topLevel(e,"bufferViews",t)};Wt.camera=function(e,t){return Wt.topLevel(e,"cameras",t)};Wt.image=function(e,t){return Wt.topLevel(e,"images",t)};Wt.material=function(e,t){return Wt.topLevel(e,"materials",t)};Wt.materialValue=function(e,t){let n=e.values;u(e.extensions)&&u(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(u(o))return o}};Wt.mesh=function(e,t){return Wt.topLevel(e,"meshes",t)};Wt.meshPrimitive=function(e,t){let n=e.primitives;if(u(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(u(s))return s}}};Wt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(u(o))return o}};Wt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(u(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(u(r))return r}}};Wt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(u(o))return o}};Wt.node=function(e,t){return Wt.topLevel(e,"nodes",t)};Wt.nodeInTree=function(e,t,n){let i=e.nodes;if(u(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(u(a)){let c=n(a,s);if(u(c))return c;let l=a.children;if(u(l)&&(c=Wt.nodeInTree(e,l,n),u(c)))return c}}}};Wt.nodeInScene=function(e,t,n){let i=t.nodes;if(u(i))return Wt.nodeInTree(e,i,n)};Wt.program=function(e,t){return cr(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.programs,t):Wt.topLevel(e,"programs",t)};Wt.sampler=function(e,t){return Wt.topLevel(e,"samplers",t)};Wt.scene=function(e,t){return Wt.topLevel(e,"scenes",t)};Wt.shader=function(e,t){return cr(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.shaders,t):Wt.topLevel(e,"shaders",t)};Wt.skin=function(e,t){return Wt.topLevel(e,"skins",t)};Wt.skinJoint=function(e,t){let n=e.joints;if(u(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(u(s))return s}}};Wt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(u(o))return o}};Wt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(u(o))return o}};Wt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(u(o))return o}};Wt.technique=function(e,t){return cr(e,"KHR_techniques_webgl")?Wt.object(e.extensions.KHR_techniques_webgl.techniques,t):Wt.topLevel(e,"techniques",t)};Wt.texture=function(e,t){return Wt.topLevel(e,"textures",t)};var Ie=Wt;function KLe(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var zu=KLe;function ZLe(e,t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n];if(u(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*zu(t.type)}var zl=ZLe;function $Le(e){Ie.accessor(e,function(n){u(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Ie.bufferView(e,function(n){u(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){if(i.mode=y(i.mode,ee.TRIANGLES),!u(i.material)){u(e.materials)||(e.materials=[]);let o={name:"default"};i.material=ys(e.materials,o)}})}),Ie.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),u(o)){let r=e.bufferViews[o];r.byteStride=zl(e,i),r.target=ee.ARRAY_BUFFER}}),Ie.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(u(o)){let r=e.bufferViews[o];r.target=ee.ELEMENT_ARRAY_BUFFER}}),Ie.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(u(o)){let c=o.technique,l=u(o.values)?o.values:{};o.values=l,l.ambient=u(l.ambient)?l.ambient:[0,0,0,1],l.emission=u(l.emission)?l.emission:[0,0,0,1],l.transparency=y(l.transparency,1),c!=="CONSTANT"&&(l.diffuse=u(l.diffuse)?l.diffuse:[0,0,0,1],c!=="LAMBERT"&&(l.specular=u(l.specular)?l.specular:[0,0,0,1],l.shininess=y(l.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;u(r)&&Ie.materialValue(n,function(c){u(c.index)&&E0(c)}),E0(n.emissiveTexture),E0(n.normalTexture),E0(n.occlusionTexture);let s=n.pbrMetallicRoughness;u(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),E0(s.baseColorTexture),E0(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;u(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),E0(a.specularGlossinessTexture))}),Ie.animation(e,function(n){Ie.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=QLe(e);return Ie.node(e,function(n,i){u(t[i])||u(n.translation)||u(n.rotation)||u(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Ie.sampler(e,function(n){n.wrapS=y(n.wrapS,ee.REPEAT),n.wrapT=y(n.wrapT,ee.REPEAT)}),u(e.scenes)&&!u(e.scene)&&(e.scene=0),e}function QLe(e){let t={};return Ie.animation(e,function(n){Ie.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function E0(e){u(e)&&(e.texCoord=y(e.texCoord,0))}var JM=$Le;function JLe(e){return Ie.shader(e,function(t){eL(t)}),Ie.buffer(e,function(t){eL(t)}),Ie.image(e,function(t){eL(t)}),eL(e),e}function eL(e){e.extras=u(e.extras)?e.extras:{},e.extras._pipeline=u(e.extras._pipeline)?e.extras._pipeline:{}}var S0=JLe;function eNe(e,t){let n=e.extensionsRequired;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var tL=eNe;function tNe(e,t){let n=e.extensionsUsed;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),tL(e,t),n.length===0&&delete e.extensionsUsed}}var IT=tNe;var nNe=4;function iNe(e){if(Th(e)!=="glTF")throw new ue("File is not valid binary glTF");let n=Vee(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ue("Binary glTF version is not 1 or 2");return i===1?oNe(e,n):rNe(e,n)}function Vee(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r<n;++r)o[r]=i.getUint32(e.byteOffset+t+r*nNe,!0);return o}function oNe(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new ue("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Bl(e,r,i),c=JSON.parse(a);S0(c);let l=e.subarray(s,n),f=c.buffers;if(u(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);u(d)&&(d.extras._pipeline.source=l,delete d.uri)}return IT(c,"KHR_binary_glTF"),c}function rNe(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=Vee(e,i,2),a=s[0],c=s[1];i+=8;let l=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Bl(l);o=JSON.parse(f),S0(o)}else c===5130562&&(r=l)}if(u(o)&&u(r)){let s=o.buffers;if(u(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var nL=iNe;function sNe(e){return Ie.shader(e,function(t){iL(t)}),Ie.buffer(e,function(t){iL(t)}),Ie.image(e,function(t){iL(t)}),iL(e),e}function iL(e){u(e.extras)&&(u(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var oL=sNe;function aNe(e,t){let n=e.extensionsUsed;u(n)||(n=[],e.extensionsUsed=n),ys(n,t,!0)}var Xf=aNe;function cNe(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt8(n+s*o)};case X.UNSIGNED_BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint8(n+s*o)};case X.SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt16(n+s*o,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint16(n+s*o,!0)};case X.INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt32(n+s*o,!0)};case X.UNSIGNED_INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint32(n+s*o,!0)};case X.FLOAT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat32(n+s*o,!0)};case X.DOUBLE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat64(n+s*o,!0)}}}var z_=cNe;function lNe(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=zu(t.type);if(!u(t.bufferView))return{min:new Array(r).fill(0),max:new Array(r).fill(0)};let s=new Array(r).fill(Number.POSITIVE_INFINITY),a=new Array(r).fill(Number.NEGATIVE_INFINITY),c=n[o],l=c.buffer,d=i[l].extras._pipeline.source,p=t.count,g=zl(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),A=new Array(r),C=z_(x);for(let S=0;S<p;S++){C(T,m,r,b,A);for(let w=0;w<r;w++){let D=A[w];s[w]=Math.min(s[w],D),a[w]=Math.max(a[w],D)}m+=g}return{min:s,max:a}}var PT=lNe;var uNe=[ee.FUNC_ADD,ee.FUNC_ADD],fNe=[ee.ONE,ee.ZERO,ee.ONE,ee.ZERO];function zee(e,t){let n=e.enable;return u(n)?n.indexOf(t)>-1:!1}var dNe=[ee.ZERO,ee.ONE,ee.SRC_COLOR,ee.ONE_MINUS_SRC_COLOR,ee.SRC_ALPHA,ee.ONE_MINUS_SRC_ALPHA,ee.DST_ALPHA,ee.ONE_MINUS_DST_ALPHA,ee.DST_COLOR,ee.ONE_MINUS_DST_COLOR];function hNe(e,t){if(!u(e))return t;for(let n=0;n<4;n++)if(dNe.indexOf(e[n])===-1)return t;return e}function mNe(e){let t={},n={},i=e.techniques;return u(i)&&(Ie.technique(e,function(o,r){let s=o.states;if(u(s)){let a=n[r]={};if(zee(s,ee.BLEND)){a.alphaMode="BLEND";let c=s.functions;u(c)&&(u(c.blendEquationSeparate)||u(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,uNe),blendFactors:hNe(c.blendFuncSeparate,fNe)})}zee(s,ee.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(u(e.extensions)||(e.extensions={}),Xf(e,"KHR_blend")),Ie.material(e,function(o){if(u(o.technique)){let r=n[o.technique];Ie.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];u(s)&&(u(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var rL=mNe;function pNe(e,t){let n=e.extensionsRequired;u(n)||(n=[],e.extensionsRequired=n),ys(n,t,!0),Xf(e,t)}var sL=pNe;function _Ne(e){let t=e.techniques,n={},i={},o={};if(u(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Ie.technique(e,function(a,c){let l={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Ie.techniqueAttribute(a,function(d,p){f=a.parameters[d],l.attributes[p]={semantic:f.semantic}}),Ie.techniqueUniform(a,function(d,p){f=a.parameters[d],l.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},u(n[c])||(n[c]={}),n[c][d]=p}),u(o[a.program]))l.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=ys(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=ys(r.shaders,m,!0),l.program=ys(r.programs,p),o[a.program]=l.program}i[c]=ys(r.techniques,l)}),r.techniques.length>0&&(u(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Xf(e,"KHR_techniques_webgl"),sL(e,"KHR_techniques_webgl"))}return Ie.material(e,function(r){if(u(r.technique)){let s={technique:i[r.technique]};Ie.objectLegacy(r.values,function(a,c){u(s.values)||(s.values={});let l=n[r.technique][c];u(l)&&(s.values[l]=a)}),u(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var aL=_Ne;function gNe(e,t){El.typeOf.object("material",e),El.defined("handler",t);let n=e.pbrMetallicRoughness;if(u(n)){if(u(n.baseColorTexture)){let o=n.baseColorTexture,r=t(o.index,o);if(u(r))return r}if(u(n.metallicRoughnessTexture)){let o=n.metallicRoughnessTexture,r=t(o.index,o);if(u(r))return r}}if(u(e.extensions)){let o=e.extensions.KHR_materials_pbrSpecularGlossiness;if(u(o)){if(u(o.diffuseTexture)){let s=o.diffuseTexture,a=t(s.index,s);if(u(a))return a}if(u(o.specularGlossinessTexture)){let s=o.specularGlossinessTexture,a=t(s.index,s);if(u(a))return a}}let r=e.extensions.KHR_materials_common;if(u(r)&&u(r.values)){let s=r.values.diffuse,a=r.values.ambient,c=r.values.emission,l=r.values.specular;if(u(s)&&u(s.index)){let f=t(s.index,s);if(u(f))return f}if(u(a)&&u(a.index)){let f=t(a.index,a);if(u(f))return f}if(u(c)&&u(c.index)){let f=t(c.index,c);if(u(f))return f}if(u(l)&&u(l.index)){let f=t(l.index,l);if(u(f))return f}}}let i=Ie.materialValue(e,function(o){if(u(o.index)){let r=t(o.index,o);if(u(r))return r}});if(u(i))return i;if(u(e.emissiveTexture)){let o=e.emissiveTexture,r=t(o.index,o);if(u(r))return r}if(u(e.normalTexture)){let o=e.normalTexture,r=t(o.index,o);if(u(r))return r}if(u(e.occlusionTexture)){let o=e.occlusionTexture,r=t(o.index,o);if(u(r))return r}}var nw=gNe;var Hee=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function yNe(e,t){return t=y(t,Hee),Hee.forEach(function(n){t.indexOf(n)>-1&&bNe(e,n)}),e}var xNe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function bNe(e,t){let n=xNe[t],i=e[n];if(u(i)){let o=0,r=Ch[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(Ah[t](e,a-o),o++)}}function Ah(){}Ah.accessor=function(e,t){e.accessors.splice(t,1),Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){Ie.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Ie.meshPrimitiveTarget(o,function(a){Ie.meshPrimitiveTargetAttribute(a,function(c,l){c>t&&a[l]--})});let r=o.indices;u(r)&&r>t&&o.indices--;let s=o.extensions;u(s)&&u(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Ie.skin(e,function(i){u(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Ie.animation(e,function(i){Ie.animationSampler(i,function(o){u(o.input)&&o.input>t&&o.input--,u(o.output)&&o.output>t&&o.output--})})};Ah.buffer=function(e,t){e.buffers.splice(t,1),Ie.bufferView(e,function(i){u(i.buffer)&&i.buffer>t&&i.buffer--,u(i.extensions)&&u(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};Ah.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Ie.accessor(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Ie.shader(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Ie.image(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),cr(e,"KHR_draco_mesh_compression")&&Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){u(o.extensions)&&u(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),cr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];u(l.bufferView)&&l.bufferView>t&&l.bufferView--,u(l.arrayOffsetBufferView)&&l.arrayOffsetBufferView>t&&l.arrayOffsetBufferView--,u(l.stringOffsetBufferView)&&l.stringOffsetBufferView>t&&l.stringOffsetBufferView--}}}}if(cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(u(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];u(f.values)&&f.values>t&&f.values--,u(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,u(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};Ah.image=function(e,t){e.images.splice(t,1),Ie.texture(e,function(i){u(i.source)&&i.source>t&&--i.source;let o=i.extensions;u(o)&&u(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:u(o)&&u(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};Ah.mesh=function(e,t){e.meshes.splice(t,1),Ie.node(e,function(i){u(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};Ah.node=function(e,t){e.nodes.splice(t,1),Ie.skin(e,function(i){u(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Ie.animation(e,function(i){Ie.animationChannel(i,function(o){u(o.target)&&u(o.target.node)&&o.target.node>t&&o.target.node--})}),Ie.technique(e,function(i){Ie.techniqueUniform(i,function(o){u(o.node)&&o.node>t&&o.node--})}),Ie.node(e,function(i){u(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Ie.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};Ah.material=function(e,t){e.materials.splice(t,1),Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){u(o.material)&&o.material>t&&o.material--})})};Ah.sampler=function(e,t){e.samplers.splice(t,1),Ie.texture(e,function(i){u(i.sampler)&&i.sampler>t&&--i.sampler})};Ah.texture=function(e,t){if(e.textures.splice(t,1),Ie.material(e,function(i){nw(i,function(o,r){r.index>t&&--r.index})}),cr(e,"EXT_feature_metadata")){Ie.mesh(e,function(r){Ie.meshPrimitive(r,function(s){let a=s.extensions;if(u(a)&&u(a.EXT_feature_metadata)){let l=a.EXT_feature_metadata.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let g=l[d].featureIds.texture;g.index>t&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(cr(e,"EXT_mesh_features")&&Ie.mesh(e,function(i){Ie.meshPrimitive(i,function(o){let r=o.extensions;if(u(r)&&u(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(u(a)){let c=a.length;for(let l=0;l<c;++l){let f=a[l];u(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(u(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];f.index>t&&--f.index}}}}};function Ch(){}Ch.accessor=function(e){let t={};return Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){Ie.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Ie.meshPrimitiveTarget(i,function(r){Ie.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;u(o)&&(t[o]=!0)})}),Ie.skin(e,function(n){u(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Ie.animation(e,function(n){Ie.animationSampler(n,function(i){u(i.input)&&(t[i.input]=!0),u(i.output)&&(t[i.output]=!0)})}),cr(e,"EXT_mesh_gpu_instancing")&&Ie.node(e,function(n){u(n.extensions)&&u(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),cr(e,"CESIUM_primitive_outline")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){let o=i.extensions;if(u(o)&&u(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;u(s)&&(t[s]=!0)}})}),t};Ch.buffer=function(e){let t={};return Ie.bufferView(e,function(n){u(n.buffer)&&(t[n.buffer]=!0),u(n.extensions)&&u(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Ch.bufferView=function(e){let t={};if(Ie.accessor(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Ie.shader(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Ie.image(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),cr(e,"KHR_draco_mesh_compression")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){u(i.extensions)&&u(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),cr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];u(c.bufferView)&&(t[c.bufferView]=!0),u(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),u(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(u(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];u(l.values)&&(t[l.values]=!0),u(l.arrayOffsets)&&(t[l.arrayOffsets]=!0),u(l.stringOffsets)&&(t[l.stringOffsets]=!0)}}}}return t};Ch.image=function(e){let t={};return Ie.texture(e,function(n){u(n.source)&&(t[n.source]=!0),u(n.extensions)&&u(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:u(n.extensions)&&u(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};Ch.mesh=function(e){let t={};return Ie.node(e,function(n){if(u(n.mesh&&u(e.meshes))){let i=e.meshes[n.mesh];u(i)&&u(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Gee(e,t,n){let i=e.nodes[t];return u(i.mesh)||u(i.camera)||u(i.skin)||u(i.weights)||u(i.extras)||u(i.extensions)&&Object.keys(i.extensions).length!==0||u(n[t])?!1:!u(i.children)||i.children.filter(function(o){return!Gee(e,o,n)}).length===0}Ch.node=function(e){let t={};return Ie.skin(e,function(n){u(n.skeleton)&&(t[n.skeleton]=!0),Ie.skinJoint(n,function(i){t[i]=!0})}),Ie.animation(e,function(n){Ie.animationChannel(n,function(i){u(i.target)&&u(i.target.node)&&(t[i.target.node]=!0)})}),Ie.technique(e,function(n){Ie.techniqueUniform(n,function(i){u(i.node)&&(t[i.node]=!0)})}),Ie.node(e,function(n,i){Gee(e,i,t)||(t[i]=!0)}),t};Ch.material=function(e){let t={};return Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){u(i.material)&&(t[i.material]=!0)})}),t};Ch.texture=function(e){let t={};if(Ie.material(e,function(n){nw(n,function(i){t[i]=!0})}),cr(e,"EXT_feature_metadata")){Ie.mesh(e,function(o){Ie.meshPrimitive(o,function(r){let s=r.extensions;if(u(s)&&u(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(u(c)){let l=c.length;for(let f=0;f<l;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let l=s[a].texture;t[l.index]=!0}}}}if(cr(e,"EXT_mesh_features")&&Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){let o=i.extensions;if(u(o)&&u(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(u(s)){let a=s.length;for(let c=0;c<a;++c){let l=s[c];u(l.texture)&&(t[l.texture.index]=!0)}}}})}),cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(u(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];t[l.index]=!0}}}}return t};Ch.sampler=function(e){let t={};return Ie.texture(e,function(n){u(n.sampler)&&(t[n.sampler]=!0)}),t};var cL=yNe;function TNe(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:ys(e.buffers,n),byteOffset:0,byteLength:t.length};return ys(e.bufferViews,o)}var lL=TNe;function ANe(e,t){let n=zl(e,t),i=X.getSizeInBytes(t.componentType),o=zu(t.type),r=t.count,s=new Array(o*r);if(!u(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,l=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=z_(t.componentType);for(let g=0;g<r;++g){p(f,l,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];l+=n}return s}var uL=ANe;function CNe(e){let t;return Ie.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?fL(e,i,X.UNSIGNED_BYTE):t!==ee.UNSIGNED_BYTE&&t!==ee.UNSIGNED_SHORT&&fL(e,i,X.UNSIGNED_SHORT)}),Ie.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?fL(e,i,X.UNSIGNED_BYTE):t===ee.SHORT&&fL(e,i,X.UNSIGNED_SHORT)}),e}function fL(e,t,n){let i=X.createTypedArray(n,uL(e,t)),o=new Uint8Array(i.buffer);t.bufferView=lL(e,o),t.componentType=n,t.byteOffset=0}var dL=CNe;function ENe(e,t){return IT(e,t),t==="CESIUM_RTC"&&SNe(e),EG(e,t)}function SNe(e){Ie.technique(e,function(t){Ie.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function EG(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)EG(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;u(n)&&(i=n[t],u(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&EG(e[o],t);return i}}var OT=ENe;var hL={.8:ONe,"1.0":QNe,"2.0":void 0};function wNe(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(hL,i)||(u(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(hL,i)||(i="1.0"));let o=hL[i];for(;u(o)&&i!==n;)o(e,t),i=e.asset.version,o=hL[i];return t.keepLegacyExtensions||(t2e(e,t),n2e(e)),e}function jee(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;u(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function vNe(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(u(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,ee.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function DNe(e){let t=e.nodes,n=new h,i=new Ne;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(u(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Ne.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;u(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function INe(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Ne;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let l=t[c],f=l.channels,d=l.parameters,p=l.samplers;if(u(f)){let g=f.length;for(let m=0;m<g;++m){let x=f[m];if(x.target.path==="rotation"){let b=d[p[x.sampler].output];if(u(r[b]))continue;r[b]=!0;let T=n[b],A=i[T.bufferView],S=o[A.buffer].extras._pipeline.source,w=S.byteOffset+A.byteOffset+T.byteOffset,D=T.componentType,O=T.count,R=zu(T.type),N=T.count*R,F=X.createArrayBufferView(D,S.buffer,w,N);for(let _=0;_<O;_++){let E=_*R;h.unpack(F,E,s);let v=F[E+3];Ne.fromAxisAngle(s,v,a),Ne.pack(a,F,E)}}}}}}function PNe(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.passes;if(u(o)){let r=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(o,r)){let s=o[r],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function ONe(e){u(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(u(e.version)&&delete e.version,jee(e),vNe(e),DNe(e),INe(e),PNe(e),u(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),u(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,Xf(e,"KHR_materials_common")}}function RNe(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.parameters;if(u(o)){let r=i.samplers;for(let s in r)if(Object.prototype.hasOwnProperty.call(r,s)){let a=r[s];a.input=o[a.input],a.output=o[a.output]}delete i.parameters}}}function Wee(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i];t[i]=n.length,n.push(o),u(o.name)||(o.name=i)}return n}function MNe(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,o={},r=e.nodes;for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&(i=r[s].jointName,u(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&u(n[s])){let a={},c=e[s];e[s]=Wee(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);u(e.scene)&&(e.scene=n.scenes[e.scene]),Ie.bufferView(e,function(s){u(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Ie.accessor(e,function(s){u(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Ie.shader(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Ie.program(e,function(s){u(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),u(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Ie.technique(e,function(s){u(s.program)&&(s.program=n.programs[s.program]),Ie.techniqueParameter(s,function(a){u(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Ie.mesh(e,function(s){Ie.meshPrimitive(s,function(a){u(a.indices)&&(a.indices=n.accessors[a.indices]),Ie.meshPrimitiveAttribute(a,function(c,l){a.attributes[l]=n.accessors[c]}),u(a.material)&&(a.material=n.materials[a.material])})}),Ie.node(e,function(s){let a=s.children;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(u(s.meshes)){let c=s.meshes,l=c.length;if(l>0)for(s.mesh=n.meshes[c[0]],t=1;t<l;++t){let f={mesh:n.meshes[c[t]]},d=ys(e.nodes,f);u(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(u(s.camera)&&(s.camera=n.cameras[s.camera]),u(s.skin)&&(s.skin=n.skins[s.skin]),u(s.skeletons)){let c=s.skeletons;if(c.length>0&&u(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}u(s.jointName)&&delete s.jointName}),Ie.skin(e,function(s){u(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(u(a)){let c=[],l=a.length;for(t=0;t<l;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Ie.scene(e,function(s){let a=s.nodes;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Ie.animation(e,function(s){let a={};s.samplers=Wee(s.samplers,a),Ie.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Ie.animationChannel(s,function(c){c.sampler=a[c.sampler];let l=c.target;u(l)&&(l.node=n.nodes[l.id],delete l.id)})}),Ie.material(e,function(s){u(s.technique)&&(s.technique=n.techniques[s.technique]),Ie.materialValue(s,function(c,l){typeof c=="string"&&(s.values[l]={index:n.textures[c]})});let a=s.extensions;if(u(a)){let c=a.KHR_materials_common;u(c)&&u(c.values)&&Ie.materialValue(c,function(l,f){typeof l=="string"&&(c.values[f]={index:n.textures[l]})})}}),Ie.image(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Ie.texture(e,function(s){u(s.sampler)&&(s.sampler=n.samplers[s.sampler]),u(s.source)&&(s.source=n.images[s.source])})}function LNe(e){Ie.animation(e,function(t){Ie.animationSampler(t,function(n){delete n.name})})}function NNe(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Ie.node(e,function(t){u(t.children)&&t.children.length===0&&delete t.children})}function FNe(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var BNe={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function kNe(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),u(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];u(BNe[o])&&e.extensionsRequired.push(o)}}}function UNe(e){Ie.buffer(e,function(t){delete t.type})}function VNe(e){Ie.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function zNe(e){Ie.mesh(e,function(t){Ie.meshPrimitive(t,function(n){Ie.meshPrimitiveAttribute(n,function(i,o){o==="TEXCOORD"?n.attributes.TEXCOORD_0=i:o==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Ie.technique(e,function(t){Ie.techniqueParameter(t,function(n){let i=n.semantic;u(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var HNe={POSITION:!0,NORMAL:!0,TANGENT:!0},GNe={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function WNe(e){let t={};Ie.mesh(e,function(n){Ie.meshPrimitive(n,function(i){Ie.meshPrimitiveAttribute(i,function(o,r){if(r.charAt(0)!=="_"){let s=r.search(/_[0-9]+/g),a=r,c="_0";s>=0&&(a=r.substring(0,s),c=r.substring(s));let l,f=GNe[a];u(f)?(l=f+c,t[r]=l):u(HNe[a])||(l=`_${r}`,t[r]=l)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];u(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Ie.technique(e,function(n){Ie.techniqueParameter(n,function(i){let o=t[i.semantic];u(o)&&(i.semantic=o)})})}function jNe(e){Ie.camera(e,function(t){let n=t.perspective;if(u(n)){let i=n.aspectRatio;u(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;u(o)&&o===0&&(n.yfov=1)}})}function SG(e,t){return u(t.byteStride)&&t.byteStride!==0?t.byteStride:zl(e,t)}function qNe(e){Ie.buffer(e,function(t){u(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Ie.accessor(e,function(t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n],o=SG(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function YNe(e){let t,n,i,o=e.bufferViews,r={};Ie.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];u(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Ie.accessor(e,function(a){u(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let l=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=SG(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?SG(e,c[t+1]):void 0;if(g!==T){let A=Ge(i,!0);r[a]&&(A.byteStride=g),A.byteOffset+=l,A.byteLength=m+x-l;let C=ys(o,A);for(n=f;n<=t;++n)p=c[n],p.bufferView=C,p.byteOffset=p.byteOffset-l;l=b?c[t+1].byteOffset:void 0,f=t+1}}}cL(e,["accessor","bufferView","buffer"])}function XNe(e){Ie.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!u(n.min)||!u(n.max)){let i=PT(e,n);n.min=i.min,n.max=i.max}})}function qee(e){return(!u(e.children)||e.children.length===0)&&(!u(e.meshes)||e.meshes.length===0)&&!u(e.camera)&&!u(e.skin)&&!u(e.skeletons)&&!u(e.jointName)&&(!u(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!u(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!u(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!u(e.matrix)||L.fromColumnMajorArray(e.matrix).equals(L.IDENTITY))&&!u(e.extensions)&&!u(e.extras)}function Yee(e,t){Ie.scene(e,function(n){let i=n.nodes;if(u(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Ie.node(e,function(n,i){if(u(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),qee(n)&&Yee(e,i))}}),delete e.nodes[t]}function KNe(e){return Ie.node(e,function(t,n){qee(t)&&Yee(e,n)}),e}function ZNe(e){Ie.animation(e,function(t){Ie.animationSampler(t,function(n){let i=e.accessors[n.input];if(!u(i.min)||!u(i.max)){let o=PT(e,i);i.min=o.min,i.max=o.max}})})}function $Ne(e){Ie.accessor(e,function(t){if(u(t.min)||u(t.max)){let n=PT(e,t);u(t.min)&&(t.min=n.min),u(t.max)&&(t.max=n.max)}})}function QNe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",jee(e),RNe(e),KNe(e),MNe(e),LNe(e),FNe(e),kNe(e),qNe(e),YNe(e),XNe(e),ZNe(e),$Ne(e),UNe(e),VNe(e),zNe(e),WNe(e),dL(e),jNe(e),rL(e),aL(e),NNe(e)}var JNe=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],e2e=["u_diffuse","u_diffuse_mat"];function wG(e){e.pbrMetallicRoughness=u(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function mL(e){return u(e.index)}function pL(e){return Array.isArray(e)&&e.length===4}function Xee(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function t2e(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,JNe),i=y(t.baseColorFactorNames,e2e);Ie.material(e,function(o){Ie.materialValue(o,function(r,s){n.indexOf(s)!==-1&&mL(r)?(wG(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&pL(r)&&(wG(o),o.pbrMetallicRoughness.baseColorFactor=Xee(r))})}),OT(e,"KHR_techniques_webgl"),OT(e,"KHR_blend")}function n2e(e){Ie.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(u(n)){n.technique==="CONSTANT"&&(Xf(e,"KHR_materials_unlit"),t.extensions=u(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let o=u(n.values)?n.values:{},r=o.ambient,s=o.diffuse,a=o.emission,c=o.transparency,l=n.doubleSided,f=n.transparent;wG(t),u(r)&&(pL(r)?t.emissiveFactor=r.slice(0,3):mL(r)&&(t.emissiveTexture=r)),u(s)&&(pL(s)?t.pbrMetallicRoughness.baseColorFactor=Xee(s):mL(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),u(l)&&(t.doubleSided=l),u(a)&&(pL(a)?t.emissiveFactor=a.slice(0,3):mL(a)&&(t.emissiveTexture=a)),u(c)&&(u(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),u(f)&&(t.alphaMode=f?"BLEND":"OPAQUE")}}),OT(e,"KHR_materials_common")}var _L=wNe;var Jn={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function i2e(e){switch(e){case Jn.POSITION:return"positionMC";case Jn.NORMAL:return"normalMC";case Jn.TANGENT:return"tangentMC";case Jn.TEXCOORD:return"texCoord";case Jn.COLOR:return"color";case Jn.JOINTS:return"joints";case Jn.WEIGHTS:return"weights";case Jn.FEATURE_ID:return"featureId"}}Jn.hasSetIndex=function(e){switch(e){case Jn.POSITION:case Jn.NORMAL:case Jn.TANGENT:return!1;case Jn.TEXCOORD:case Jn.COLOR:case Jn.JOINTS:case Jn.WEIGHTS:case Jn.FEATURE_ID:return!0}};Jn.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return Jn.POSITION;case"NORMAL":return Jn.NORMAL;case"TANGENT":return Jn.TANGENT;case"TEXCOORD":return Jn.TEXCOORD;case"COLOR":return Jn.COLOR;case"JOINTS":return Jn.JOINTS;case"WEIGHTS":return Jn.WEIGHTS;case"_FEATURE_ID":return Jn.FEATURE_ID}};Jn.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return Jn.POSITION;case"RGBA":case"RGB":case"RGB565":return Jn.COLOR;case"NORMAL":case"NORMAL_OCT16P":return Jn.NORMAL;case"BATCH_ID":return Jn.FEATURE_ID}};Jn.getGlslType=function(e){switch(e){case Jn.POSITION:case Jn.NORMAL:case Jn.TANGENT:return"vec3";case Jn.TEXCOORD:return"vec2";case Jn.COLOR:return"vec4";case Jn.JOINTS:return"ivec4";case Jn.WEIGHTS:return"vec4";case Jn.FEATURE_ID:return"int"}};Jn.getVariableName=function(e,t){let n=i2e(e);return u(t)&&(n+=`_${t}`),n};var Tt=Object.freeze(Jn);function Ra(){}Ra.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;u(n)&&u(n.message)&&(i+=`
- ${n.message}`);let o=new ue(i);return u(n)&&(o.stack=`Original stack:
- ${n.stack}
- Handler stack:
- ${o.stack}`),o};Ra.getNodeTransform=function(e){return u(e.matrix)?e.matrix:L.fromTranslationQuaternionRotationScale(u(e.translation)?e.translation:h.ZERO,u(e.rotation)?e.rotation:Ne.IDENTITY,u(e.scale)?e.scale:h.ONE)};Ra.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=u(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};Ra.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.name===t)return r}};Ra.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};Ra.hasQuantizedAttributes=function(e){if(!u(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(u(n.quantization))return!0}return!1};Ra.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;u(t)?(i=Tt.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=rn.getGlslType(s);r&&(a="vec4");let c=u(e.quantization),l;return c&&(l=r?"vec4":rn.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:l}};var o2e=new h,r2e=new h;Ra.getPositionMinMax=function(e,t,n){let i=Ra.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return u(n)&&u(t)&&(r=h.add(r,t,r2e),o=h.add(o,n,o2e)),{min:r,max:o}};Ra.getAxisCorrectionMatrix=function(e,t,n){return n=L.clone(L.IDENTITY,n),e===wo.Y?n=L.clone(wo.Y_UP_TO_Z_UP,n):e===wo.X&&(n=L.clone(wo.X_UP_TO_Z_UP,n)),t===wo.Z&&(n=L.multiplyTransformation(n,wo.Z_UP_TO_X_UP,n)),n};var s2e=new $;Ra.getCullFace=function(e,t){if(!Le.isTriangles(t))return gi.BACK;let n=L.getMatrix3(e,s2e);return $.determinant(n)<0?gi.FRONT:gi.BACK};Ra.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};Ra.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};Ra.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!Ra.supportedExtensions[i])throw new ue(`Unsupported glTF Extension: ${i}`)}};var en=Ra;function H_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,o=e.typedArray,r=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=o,this._gltfJson=r,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(H_.prototype=Object.create(no.prototype),H_.prototype.constructor=H_);Object.defineProperties(H_.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});H_.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,u(this._gltfJson)?(this._promise=Kee(this,this._gltfJson),this._promise):u(this._typedArray)?(this._promise=Zee(this,this._typedArray),this._promise):(this._promise=a2e(this),this._promise))};async function a2e(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;vG(e,n)}return Zee(e,t)}function vG(e,t){e.unload(),e._state=St.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function c2e(e,t){if(u(t.asset)&&t.asset.version==="2.0"&&!cr(t,"KHR_techniques_webgl")&&!cr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Ie.buffer(t,function(i){if(!u(i.extras._pipeline.source)&&u(i.uri)){let o=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:o});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),_L(t)}function l2e(e){let t=[];return Ie.buffer(e,function(n){let i=n.uri;!u(n.extras._pipeline.source)&&u(i)&&a_(i)&&(delete n.uri,t.push(ve.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function u2e(e,t){let n=[];return Ie.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(u(r)&&!u(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:o,typedArray:r});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function Kee(e,t){try{S0(t),await l2e(t),await c2e(e,t),JM(t),await u2e(e,t),oL(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new ue(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return u(i)&&en.checkSupportedExtensions(i),e._gltf=t,e._state=St.READY,e}catch(n){if(e.isDestroyed())return;vG(e,n)}}async function Zee(e,t){let n;try{Th(t)==="glTF"?n=nL(t):n=vo(t)}catch(i){if(e.isDestroyed())return;vG(e,i)}return Kee(e,n)}H_.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};H_.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var iw=H_;var f2e={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},Jm=Object.freeze(f2e);var Bo={};function d2e(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function h2e(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function m2e(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function p2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function _2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function g2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function y2e(){this.attributes=[]}function x2e(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function b2e(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function T2e(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function A2e(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function C2e(){this.nodes=[]}var E2e={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function S2e(){this.input=[],this.interpolation=void 0,this.output=[]}function w2e(){this.node=void 0,this.path=void 0}function v2e(){this.sampler=void 0,this.target=void 0}function D2e(){this.name=void 0,this.samplers=[],this.channels=[]}function I2e(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function P2e(){this.name=void 0,this.stages=[]}function $ee(){this.credits=[]}function O2e(){this.asset=new $ee,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=L.clone(L.IDENTITY)}function R2e(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=$.clone($.IDENTITY),this.channels=void 0}function G_(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(G_.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=G_.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=G_.DEFAULT_ROUGHNESS_FACTOR}G_.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;G_.DEFAULT_METALLIC_FACTOR=1;G_.DEFAULT_ROUGHNESS_FACTOR=1;function w0(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(w0.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(w0.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=w0.DEFAULT_GLOSSINESS_FACTOR}w0.DEFAULT_DIFFUSE_FACTOR=oe.ONE;w0.DEFAULT_SPECULAR_FACTOR=h.ONE;w0.DEFAULT_GLOSSINESS_FACTOR=1;function DG(){this.metallicRoughness=new G_,this.specularGlossiness=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(DG.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=Jm.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}DG.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Bo.Quantization=d2e;Bo.Attribute=h2e;Bo.Indices=m2e;Bo.FeatureIdAttribute=p2e;Bo.FeatureIdTexture=g2e;Bo.FeatureIdImplicitRange=_2e;Bo.MorphTarget=y2e;Bo.Primitive=x2e;Bo.Instances=b2e;Bo.Skin=T2e;Bo.Node=A2e;Bo.Scene=C2e;Bo.AnimatedPropertyType=Object.freeze(E2e);Bo.AnimationSampler=S2e;Bo.AnimationTarget=w2e;Bo.AnimationChannel=v2e;Bo.Animation=D2e;Bo.ArticulationStage=I2e;Bo.Articulation=P2e;Bo.Asset=$ee;Bo.Components=O2e;Bo.TextureReader=R2e;Bo.MetallicRoughness=G_;Bo.SpecularGlossiness=w0;Bo.Material=DG;var Mt=Bo;var gL={};gL.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureId,i=e.supportedImageFormats,o=t.textures[n],r=o.extensions;if(u(r)){if(i.webp&&u(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&u(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};gL.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=y(e.compressedTextureNoMipmap,!1),o=vn.REPEAT,r=vn.REPEAT,s=an.LINEAR,a=Ci.LINEAR,c=n.index,f=t.textures[c].sampler;if(u(f)){let d=t.samplers[f];o=y(d.wrapS,o),r=y(d.wrapT,r),s=y(d.minFilter,s),a=y(d.magFilter,a)}return i&&s!==an.LINEAR&&s!==an.NEAREST&&(s===an.NEAREST_MIPMAP_NEAREST||s===an.NEAREST_MIPMAP_LINEAR?s=an.NEAREST:s=an.LINEAR),new ln({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var M2e=new V(1,1);gL.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureInfo,n=e.channels,i=e.texture,o=y(t.texCoord,0),r,s=y(t.extensions,y.EMPTY_OBJECT).KHR_texture_transform;if(u(s)){o=y(s.texCoord,o);let c=u(s.offset)?V.unpack(s.offset):V.ZERO,l=y(s.rotation,0),f=u(s.scale)?V.unpack(s.scale):M2e;l=-l,r=new $(Math.cos(l)*f.x,-Math.sin(l)*f.y,c.x,Math.sin(l)*f.x,Math.cos(l)*f.y,c.y,0,0,1)}let a=new Mt.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.transform=r,a.channels=n,a};var Hl=gL;function L2e(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var v0=L2e;function W_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),l=i.index,f=Hl.getImageIdFromTexture({gltf:n,textureId:l,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=o,this._baseResource=r,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(W_.prototype=Object.create(no.prototype),W_.prototype.constructor=W_);Object.defineProperties(W_.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var N2e=new IG;async function F2e(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=St.LOADED,e)}catch(n){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let i="Failed to load texture";throw e.getError(i,n)}}W_.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=F2e(this),this._promise)};function IG(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}IG.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};IG.prototype.execute=function(){this.texture=Qee(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Qee(e,t,n,i,o){let r=n.internalFormat,s=!1;rt.isCompressedFormat(r)&&!u(i)&&(s=!0);let a=Hl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,l=a.wrapS,f=a.wrapT,d=c===an.NEAREST_MIPMAP_NEAREST||c===an.NEAREST_MIPMAP_LINEAR||c===an.LINEAR_MIPMAP_NEAREST||c===an.LINEAR_MIPMAP_LINEAR,p=!u(r)&&d,g=p||l===vn.REPEAT||l===vn.MIRRORED_REPEAT||f===vn.REPEAT||f===vn.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),x=g&&m,b;return u(r)?(!o.webgl2&&rt.isCompressedFormat(r)&&m&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),b=Pt.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(x&&(n=v0(n)),b=Pt.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}W_.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING||u(this._texture)||!u(this._image))return!1;this._state=St.PROCESSING;let t;if(this._asynchronous){let n=N2e;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,Oa.TEXTURE))return;t=n.texture}else t=Qee(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=St.READY,this._resourceCache.statistics.addTextureLoader(this),!0};W_.prototype.unload=function(){u(this._texture)&&this._texture.destroy(),u(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var ow=W_;function j_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,o=e.baseResource,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,l=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=o,this._gltf=n,this._bufferViewId=r,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=l,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(j_.prototype=Object.create(no.prototype),j_.prototype.constructor=j_);Object.defineProperties(j_.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function B2e(e,t){return u(e)&&u(e.attributes)&&u(e.attributes[t])}j_.prototype.load=async function(){return u(this._promise)?this._promise:B2e(this._draco,this._attributeSemantic)?(this._promise=U2e(this),this._promise):(this._promise=z2e(this),this._promise)};function k2e(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new Mt.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=rn.VEC2,a.normalizationRange=r;else{let c=rn.getMathType(i);if(c===Number){let l=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=l,a.normalizationRange=r,a.quantizedVolumeStepSize=l*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let l=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(l);let f=l.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function U2e(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=St.LOADED,e)}catch{if(e.isDestroyed())return;PG(e)}}function V2e(e){e._state=St.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,o=n[i],r=e._accessorId,a=e._gltf.accessors[r].type,c=o.array,l=o.data.quantization;u(l)&&(e._quantization=k2e(l,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function z2e(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=St.PROCESSING,e)}catch(n){if(e.isDestroyed())return;PG(e,n)}}function PG(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load vertex buffer";throw e.getError(n,t)}function OG(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}OG.prototype.set=function(e,t){this.typedArray=e,this.context=t};OG.prototype.execute=function(){this.buffer=Jee(this.typedArray,this.context)};function Jee(e,t){let n=ut.createVertexBuffer({typedArray:e,context:t,usage:Be.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var H2e=new OG;j_.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING)return!1;if(u(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){PG(this,i)}V2e(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=H2e;if(i.set(n,e.context),!e.jobScheduler.execute(i,Oa.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Jee(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=St.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};j_.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var rw=j_;function sw(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];u(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}sw.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=A0.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new sw({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(sw.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});sw.BATCH_TABLE_CLASS_NAME="_batchTable";var Eh=sw;function yL(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}yL.fromJson=function(e){return new yL({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(yL.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var xL=yL;function bL(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a<r;++a){let c=n[a];i[c.value]=c.name,o[c.name]=c.value}let s=y(e.valueType,Jt.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=o,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}bL.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return xL.fromJson(o)});return new bL({id:t,values:i,valueType:Jt[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(bL.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var TL=bL;function AL(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}AL.fromJson=function(e){let t={};if(u(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=TL.fromJson({id:i,enum:e.enums[i]}));let n={};if(u(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=Eh.fromJson({id:i,class:e.classes[i],enums:t}));return new AL({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(AL.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Sh=AL;function D0(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=u(t)?Sh.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(D0.prototype=Object.create(no.prototype),D0.prototype.constructor=D0);Object.defineProperties(D0.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});D0.prototype.load=async function(){return u(this._promise)?this._promise:u(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=G2e(this),this._promise)};async function G2e(e){let t=e._resource;e._state=St.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Sh.fromJson(n),e._state=St.READY,e)}catch(n){if(e.isDestroyed())return;e._state=St.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}D0.prototype.unload=function(){this._schema=void 0};var aw=D0;var Kf={};function cw(e){return Im(e.url)}function CL(e){let t=e.byteOffset,n=e.byteLength;if(oi(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function W2e(e,t){let n=t.byteOffset+e.byteOffset,i=e.componentType,o=e.type,r=e.count;return`${n}-${i}-${o}-${r}`}function ete(e){return cw(e)}function tte(e,t){return`${cw(e)}-buffer-id-${t}`}function lw(e,t,n,i){if(u(e.uri)){let o=i.getDerivedResource({url:e.uri});return ete(o)}return tte(n,t)}function RG(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=lw(a,s,n,i),l=CL(r);return`${c}-range-${l}`}function nte(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(u(s)){let p=i.getDerivedResource({url:s});return cw(p)}let a=e.bufferViews[r],c=a.buffer,l=e.buffers[c],f=lw(l,c,n,i),d=CL(a);return`${f}-range-${d}`}function j2e(e,t){let n=Hl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Kf.getSchemaCacheKey=function(e){let t=e.schema,n=e.resource;return u(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${cw(n)}`};Kf.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource;return`external-buffer:${ete(t)}`};Kf.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId;return`embedded-buffer:${tte(t,n)}`};Kf.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource;return`gltf:${cw(t)}`};Kf.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];oi(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=lw(a,s,i,o),l=CL(r);return`buffer-view:${c}-range-${l}`};Kf.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource;return`draco:${RG(t,n,i,o)}`};Kf.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=y(e.dequantize,!1),l=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d="";if(c&&(d+="-dequantize"),l&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),u(s))return`vertex-buffer:${RG(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=lw(m,g,n,i),b=CL(p);return`vertex-buffer:${x}-range-${b}${d}`};Kf.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.loadBuffer,!1),c=y(e.loadTypedArray,!1),l="";if(a&&(l+="-buffer",l+=`-context-${r.context.id}`),c&&(l+="-typed-array"),u(s))return`index-buffer:${RG(t,s,i,o)}-draco${l}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=lw(m,g,i,o),b=W2e(f,p);return`index-buffer:${x}-accessor-${b}${l}`};Kf.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource;return`image:${nte(t,n,i,o)}`};Kf.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=n.index,c=Hl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),l=nte(t,c,i,o),f=j2e(t,n);return`texture:${l}-sampler-${f}-context-${s.context.id}`};var Gl=Kf;function uw(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}uw.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};uw.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,o=0;u(n)&&(o+=n.sizeInBytes),u(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};uw.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};uw.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],u(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],u(i)&&(this.texturesByteLength-=i)};var EL=uw;function Ln(){}Ln.cacheEntries={};Ln.statistics=new EL;function q2e(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Ln.get=function(e){let t=Ln.cacheEntries[e];if(u(t))return++t.referenceCount,t.resourceLoader};Ln.add=function(e){let t=e.cacheKey;return Ln.cacheEntries[t]=new q2e(e),e};Ln.unload=function(e){let t=e.cacheKey,n=Ln.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Ln.statistics.removeLoader(e),e.destroy(),delete Ln.cacheEntries[t])};Ln.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=Gl.getSchemaCacheKey({schema:t,resource:n}),o=Ln.get(i);return u(o)?o:(o=new aw({schema:t,resource:n,cacheKey:i}),Ln.add(o))};Ln.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId,i=e.typedArray,o=Gl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Ln.get(o);return u(r)?r:(r=new vT({typedArray:i,cacheKey:o}),Ln.add(r))};Ln.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource,n=Gl.getExternalBufferCacheKey({resource:t}),i=Ln.get(n);return u(i)?i:(i=new vT({resource:t,cacheKey:n}),Ln.add(i))};Ln.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=e.gltfJson,r=Gl.getGltfCacheKey({gltfResource:t}),s=Ln.get(r);return u(s)?s:(s=new iw({resourceCache:Ln,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Ln.add(s))};Ln.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=Gl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return u(s)?s:(s=new QS({resourceCache:Ln,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource,r=Gl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return u(s)?s:(s=new JS({resourceCache:Ln,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,l=y(e.asynchronous,!0),f=y(e.dequantize,!1),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1),g=Gl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Ln.get(g);return u(m)?m:(m=new rw({resourceCache:Ln,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:l,dequantize:f,loadBuffer:d,loadTypedArray:p}),Ln.add(m))};Ln.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.asynchronous,!0),c=y(e.loadBuffer,!1),l=y(e.loadTypedArray,!1),f=Gl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:l}),d=Ln.get(f);return u(d)?d:(d=new tw({resourceCache:Ln,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:l}),Ln.add(d))};Ln.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource,r=Gl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return u(s)?s:(s=new ew({resourceCache:Ln,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=y(e.asynchronous,!0),c=Gl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),l=Ln.get(c);return u(l)?l:(l=new ow({resourceCache:Ln,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Ln.add(l))};Ln.clearForSpecs=function(){let e=[rw,tw,JS,ow,ew,QS,vT,aw,iw],t,n=Ln.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(r,s){let a=e.indexOf(r.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let o=i.length;for(let r=0;r<o;++r){let s=i[r];t=s.resourceLoader.cacheKey,u(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Ln.statistics.clear()};var Wi=Ln;function Ns(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(Ns.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});Ns.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};Ns.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};Ns.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};Ns.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};Ns.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};Ns.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};Ns.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};Ns.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===Hr.OCTREE&&(t=3),e>>t};Ns.fromSubtreeJson=async function(e,t,n,i,o){let r=new Ns(e,i,o),s;u(t)?s={json:t,binary:void 0}:s=Y2e(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(u(a.tileMetadata)){let A=a.tileMetadata;c=a.propertyTables[A]}let l=[];if(u(a.contentMetadata)){let A=a.contentMetadata.length;for(let C=0;C<A;C++){let S=a.contentMetadata[C];l.push(a.propertyTables[S])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(u(p)){let A=p.class,C=d.classes[A];f=new ZM({subtreeMetadata:p,class:C})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=l;let g={constant:0};a.contentAvailabilityHeaders=[],oi(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let m=X2e(a.buffers),x=K2e(a.bufferViews,m);Z2e(a,x),u(c)&&ite(c,x);for(let A=0;A<l.length;A++){let C=l[A];ite(C,x)}let b=await $2e(r,m,s.binary),T=J2e(x,b);return eFe(r,a,i,T),u(c)&&(tFe(r,i,T),iFe(r)),nFe(r,i,T),oFe(r),r._ready=!0,r};function Y2e(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=vo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function X2e(e){e=u(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=u(n.uri),n.isActive=!1}return e}function K2e(e,t){e=u(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],o=t[i.buffer];i.bufferHeader=o,i.isActive=!1}return e}function Z2e(e,t){let n,i=e.tileAvailability;u(i.bitstream)?n=t[i.bitstream]:u(i.bufferView)&&(n=t[i.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,u(o[s].bitstream)?n=t[o[s].bitstream]:u(o[s].bufferView)&&(n=t[o[s].bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;u(r.bitstream)?n=t[r.bitstream]:u(r.bufferView)&&(n=t[r.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function ite(e,t){let n=e.properties,i;for(let o in n)if(n.hasOwnProperty(o)){let r=n[o],s=y(r.values,r.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(r.stringOffsets,r.stringOffsetBufferView);u(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);u(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function $2e(e,t,n){let i=[];for(let o=0;o<t.length;o++){let r=t[o];if(!r.isActive)i.push(Promise.resolve(void 0));else if(r.isExternal){let s=Q2e(e,r);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(o){let r={};for(let s=0;s<o.length;s++){let a=o[s];u(a)&&(r[s]=a)}return r})}async function Q2e(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Wi.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function J2e(e,t){let n={};for(let i=0;i<e.length;i++){let o=e[i];if(!o.isActive)continue;let r=o.byteOffset,s=r+o.byteLength,c=t[o.buffer].subarray(r,s);n[i]=c}return n}function eFe(e,t,n,i){let o=n.branchingFactor,r=n.subtreeLevels,s=(Math.pow(o,r)-1)/(o-1),a=Math.pow(o,r),c=oi(t,"3DTILES_metadata"),l=u(e._tilePropertyTableJson),f=c||l;e._tileAvailability=MG(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=MG(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=MG(t.childSubtreeAvailability,i,a)}function MG(e,t,n,i){if(u(e.constant))return new KS({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return u(e.bitstream)?o=t[e.bitstream]:u(e.bufferView)&&(o=t[e.bufferView]),new KS({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function tFe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Vl({class:a,count:o,properties:i.properties,bufferViews:n})}function nFe(e,t,n){let i=e._contentPropertyTableJsons,o=e._contentAvailabilityBitstreams,r=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=o[a].availableCount,d=c.class,p=r.classes[d],g=new Vl({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function ote(e){let t=0,n=e.lengthBits,i=e.availableCount,o;i<256?o=new Uint8Array(n):i<65536?o=new Uint16Array(n):o=new Uint32Array(n);for(let r=0;r<e.lengthBits;r++)e.getBit(r)&&(o[r]=t,t++);return o}function iFe(e){let t=ote(e._tileAvailability);e._tileJumpBuffer=t}function oFe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=ote(o);t.push(r)}}Ns.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new ue("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};Ns.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new ue("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function rFe(e,t){if(!u(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function sFe(e,t,n){let i=e._contentMetadataTables;if(!u(i))return;let o=i[n];if(!u(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}Ns.prototype.getTileMetadataView=function(e){let t=rFe(this,e);if(!u(t))return;let n=this._tileMetadataTable;return new ZS({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};Ns.prototype.getContentMetadataView=function(e,t){let n=sFe(this,e,t);if(!u(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new ZS({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};Ns.prototype.isDestroyed=function(){return!1};Ns.prototype.destroy=function(){return u(this._bufferLoader)&&Wi.unload(this._bufferLoader),le(this)};var RT=Ns;var aFe={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},MT=Object.freeze(aFe);var Zf={};Zf.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:Zf.parseBoundingVolumeSemantic("TILE",e),minimumHeight:Zf._parseMinimumHeight("TILE",e),maximumHeight:Zf._parseMaximumHeight("TILE",e)},content:{boundingVolume:Zf.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:Zf._parseMinimumHeight("CONTENT",e),maximumHeight:Zf._parseMaximumHeight("CONTENT",e)}}};Zf.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(u(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(u(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(u(a))return{sphere:a}};Zf._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};Zf._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var LT=Zf;function tl(e,t,n){let i=t.implicitTileset,o=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=o,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let r=o.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:r});this._url=s.getUrlComponent(!0),this._ready=!1}Object.defineProperties(tl.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});tl.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;u(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,l=await RT.fromSubtreeJson(n,i,s,a,c),f=new tl(e,t,n);return f._implicitSubtree=l,cFe(f,l),f._ready=!0,f};function cFe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=uFe(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=lFe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],l=c.tile,f=xFe(e,l,c.childIndex);l.children.push(f),r.numberOfTilesTotal++}}function lFe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(u(s))for(let a=0;a<o;a++){let c=r*o+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function uFe(e,t,n,i){let s=rte(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],l=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let m=0;m<g;m++){let x=p+m;if(!t.tileIsAvailableAtIndex(x)){l.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],A=m%f.branchingFactor,C=rte(e,t,T,A,x);T.children.push(C),a.numberOfTilesTotal++,l.push(C)}c=l,l=[]}return{rootTile:s,bottomRow:c}}function ste(e,t,n){let i=MT.TILE_GEOMETRIC_ERROR;return u(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function rte(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,l,f;if(u(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=LT.parseAllBoundingVolumeSemantics(c);l=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let m=hFe(s,a,i,r,n,l),x=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let N={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},F=mFe(m,f);u(F)&&(N.boundingVolume=F),x.push(gt(N,s.contentHeaders[D]))}let b=ste(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},A=!0,C=Ge(s.tileHeader,A);delete C.boundingVolume,delete C.transform,delete C.metadata;let S=gt(T,C,A),w=fte(e,s.baseResource,S,n);return w.implicitCoordinates=a,w.implicitSubtree=t,w.metadata=c,w.hasImplicitContentMetadata=g,w}function SL(e,t){return u(e)&&u(t)&&(u(t.minimumHeight)||u(t.maximumHeight))&&(oi(e,"3DTILES_bounding_volume_S2")||u(e.region))}function NG(e,t){u(t)&&(oi(e,"3DTILES_bounding_volume_S2")?dFe(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):u(e.region)&&fFe(e.region,t.minimumHeight,t.maximumHeight))}function fFe(e,t,n){u(t)&&(e[4]=t),u(n)&&(e[5]=n)}function dFe(e,t,n){u(t)&&(e.minimumHeight=t),u(n)&&(e.maximumHeight=n)}function hFe(e,t,n,i,o,r){let s;return!u(r)||!u(r.boundingVolume)||!SL(r.boundingVolume,r)&&SL(e.boundingVolume,r)?s=ate(e,t,n,y(i,!1),o):s=r.boundingVolume,NG(s,r),s}function mFe(e,t){let n;return u(t)&&(n=t.boundingVolume),SL(n,t)?NG(n,t):SL(e,t)&&(n=Ge(e,!0),NG(n,t)),n}function ate(e,t,n,i,o){let r=e.boundingVolume;return oi(r,"3DTILES_bounding_volume_S2")?cte(i,o,n,t.level,t.x,t.y,t.z):u(r.region)?{region:ute(r.region,t.level,t.x,t.y,t.z)}:{box:lte(r.box,t.level,t.x,t.y,t.z)}}function cte(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:F_.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),l=c%2===0?XS.encode2D(i,o,r):XS.encode2D(i,r,o),f=F_.fromFacePositionLevel(c,BigInt(l),i),d,p;if(u(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:F_.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var pFe=new h,_Fe=new h,LG=new h,gFe=new $;function lte(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,_Fe),s=$.unpack(e,3,gFe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,l=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,pFe);u(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,l,f,LG);p=$.multiplyByVector(s,p,LG),p=h.add(p,r,LG);let g=$.clone(s);g=$.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),$.pack(g,m,3),m}var yFe=new ce;function ute(e,t,n,i,o){if(t===0)return e.slice();let r=ce.unpack(e,0,yFe),s=e[4],a=e[5],c=Math.pow(2,-t),l=c*r.width,f=P.negativePiToPi(r.west+n*l),d=P.negativePiToPi(f+l),p=c*r.height,g=P.negativePiToPi(r.south+i*p),m=P.negativePiToPi(g+p),x=s,b=a;if(u(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function xFe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=ate(i,o,n,!1,t),s=ste(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},l=fte(e,i.baseResource,c,t);return l.implicitTileset=i,l.implicitCoordinates=o,l}function fte(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}tl.prototype.hasProperty=function(e,t){return!1};tl.prototype.getFeature=function(e){};tl.prototype.applyDebugSettings=function(e,t){};tl.prototype.applyStyle=function(e){};tl.prototype.update=function(e,t){};tl.prototype.isDestroyed=function(){return!1};tl.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),le(this)};tl._deriveBoundingBox=lte;tl._deriveBoundingRegion=ute;tl._deriveBoundingVolumeS2=cte;var fw=tl;var bFe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Wl=Object.freeze(bFe);function NT(e,t){this._distance=t,this._normal=new dte(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(NT.prototype,{distance:{get:function(){return this._distance},set:function(e){u(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){u(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});NT.fromPlane=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance):t=new NT(e.normal,e.distance),t};NT.clone=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance,t):new NT(e.normal,e.distance)};function dte(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(dte.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var FT=NT;function Ma(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this.edgeColor=z.clone(y(e.edgeColor,z.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new pe,this.planeRemoved=new pe,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?gte:yte,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(u(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function gte(e){return e===Zt.OUTSIDE}function yte(e){return e===Zt.INSIDE}Object.defineProperties(Ma.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?gte:yte)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function hte(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}Ma.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){hte(n,i)},e.index=t,hte(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};Ma.prototype.get=function(e){return this._planes[e]};function xte(e,t){let n=e.length;for(let i=0;i<n;++i)if(tn.equals(e[i],t))return i;return-1}Ma.prototype.contains=function(e){return xte(this._planes,e)!==-1};Ma.prototype.remove=function(e){let t=this._planes,n=xte(t,e);if(n===-1)return!1;e instanceof FT&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof FT&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};Ma.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof FT&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var TFe=new oe,AFe=new oe;function mte(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=jn.octEncodeToCartesian4(a.normal,AFe);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let l=oe.packFloat(a.distance,TFe);i[r+4]=l.x,i[r+5]=l.y,i[r+6]=l.z,i[r+7]=l.w,r+=8}}function pte(e,t,n){let i=e._float32View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=a.normal;i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=a.distance,r+=4}}function bte(e,t){let n=zt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var CFe=new V;Ma.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=Ma.useFloatTexture(n),o=i?this.length:this.length*2;if(u(t)){let s=t.width*t.height;(s<o||o<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!u(t)){let s=bte(o,CFe);s.y*=2,i?(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:rt.RGBA,pixelDatatype:Ye.FLOAT,sampler:ln.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let r=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&r===-1)){if(this._multipleDirtyPlanes)i?(pte(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(mte(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(r/t.width),s=Math.floor(r-a*t.width),pte(this,r,r+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(r*2/t.width),s=Math.floor(r*2-a*t.width),mte(this,r,r+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var EFe=new L,_te=new tn(h.UNIT_X,0);Ma.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;u(t)&&(o=L.multiply(t,o,EFe));let r=Zt.INSIDE;!this.unionClippingRegions&&i>0&&(r=Zt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];tn.transform(a,o,_te);let c=e.intersectPlane(_te);if(c===Zt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};Ma.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),u(e)&&(e._owner=t,t[n]=e))};Ma.useFloatTexture=function(e){return e.floatingPointTexture};Ma.getTextureResolution=function(e,t,n){let i=e.texture;if(u(i))return n.x=i.width,n.y=i.height,n;let o=Ma.useFloatTexture(t)?e.length:e.length*2,r=bte(o,n);return r.y*=2,r};Ma.prototype.isDestroyed=function(){return!1};Ma.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),le(this)};var xs=Ma;var dw={HIGHLIGHT:0,REPLACE:1,MIX:2};dw.getColorBlend=function(e,t){if(e===dw.HIGHLIGHT)return 0;if(e===dw.REPLACE)return 1;if(e===dw.MIX)return P.clamp(t,P.EPSILON4,1)};var gc=Object.freeze(dw);var SFe={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},yc=Object.freeze(SFe);var wFe={STEP:0,LINEAR:1,CUBICSPLINE:2},wh=Object.freeze(wFe);var Tte={};function hw(e){this._count=e.count,this._properties=Ge(e.properties,!0)}hw.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,Tte)};hw.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,Tte,e)};hw.prototype.getProperty=function(e,t){let n=this._properties[t];if(u(n))return Ge(n[e],!0)};hw.prototype.setProperty=function(e,t,n){let i=this._properties[t];u(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=Ge(n,!0)};var q_=hw;function La(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties(La.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(u(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return u(this._metadataTable)&&(e+=this._metadataTable.byteLength),u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});La.prototype.hasProperty=function(e,t){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(t)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};La.prototype.hasPropertyBySemantic=function(e,t){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};La.prototype.propertyExists=function(e){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(e)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};La.prototype.propertyExistsBySemantic=function(e){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var FG=[];La.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,u(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(FG)),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,FG)),u(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(FG)),t};La.prototype.getProperty=function(e,t){let n;if(u(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),u(n))||u(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),u(n))||u(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),u(n)))return n};La.prototype.setProperty=function(e,t,n){u(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(u(this._jsonMetadataTable)||(this._jsonMetadataTable=new q_({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};La.prototype.getPropertyBySemantic=function(e,t){if(u(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};La.prototype.setPropertyBySemantic=function(e,t,n){return u(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};La.prototype.getPropertyTypedArray=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};La.prototype.getPropertyTypedArrayBySemantic=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};La.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};La.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};La.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};var nl=La;function mw(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=u(t.channels)?t.channels:[0],r=t,s=Hl.createModelTextureReader({textureInfo:r,channels:IFe(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,l=n.hasValueTransform||u(a)||u(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=l,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(mw.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});mw.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?!e.isVariableLengthArray&&e.arrayLength<=4&&t===Gt.SCALAR&&n===Jt.UINT8:Gt.isVectorType(t)||t===Gt.SCALAR?n===Jt.UINT8:!1};var vFe=[void 0,"float","vec2","vec3","vec4"],DFe=[void 0,"int","ivec2","ivec3","ivec4"];mw.prototype.getGlslType=function(){let e=this._classProperty,t=Gt.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?vFe[t]:DFe[t]};mw.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function IFe(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var wL=mw;function BG(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(u(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new wL({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(BG.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});BG.prototype.getProperty=function(e){return this._properties[e]};var BT=BG;function Ate(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||u(i)||u(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ate.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var vL=Ate;function kG(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(u(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new vL({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(kG.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});kG.prototype.getProperty=function(e){return this._properties[e]};var kT=kG;function pw(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=u(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(pw.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!u(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});pw.prototype.getPropertyTable=function(e){return this._propertyTables[e]};pw.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};pw.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var Na=pw;function PFe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(u(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],l=new Vl({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new nl({id:s,name:a.name,count:a.count,metadataTable:l,extras:a.extras,extensions:a.extensions}))}let o=[];if(u(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new BT({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(u(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new kT({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new Na({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var DL=PFe;function OFe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(u(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],l=n.classes[c.class],f=new Vl({count:c.count,properties:c.properties,class:l,bufferViews:e.bufferViews});o.push(new nl({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(u(t.featureTextures))for(r=Object.keys(t.featureTextures).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTextures[a];s.push(new BT({id:a,propertyTexture:RFe(c),class:n.classes[c.class],textures:e.textures}))}return new Na({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function RFe(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i],r={channels:MFe(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=gt(o.texture,r,!0)}return t}function MFe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var IL=OFe;function Y_(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.extensionLegacy,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.frameState,c=e.cacheKey,l=y(e.asynchronous,!0);this._gltfResource=o,this._baseResource=r,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=l,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Y_.prototype=Object.create(no.prototype),Y_.prototype.constructor=Y_);Object.defineProperties(Y_.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function LFe(e){try{let t=UFe(e),n=WFe(e),i=jFe(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=St.LOADED,e)}catch(t){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let n="Failed to load structural metadata";throw e.getError(n,t)}}Y_.prototype.load=function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=LFe(this),this._promise)};function NFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;u(o)&&(t[o]=!0),u(r)&&(t[r]=!0),u(s)&&(t[s]=!0)}}function FFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;u(o)&&(t[o]=!0),u(r)&&(t[r]=!0),u(s)&&(t[s]=!0)}}function BFe(e){let t=e.propertyTables,n={};if(u(t))for(let i=0;i<t.length;i++){let o=t[i];NFe(o.properties,n)}return n}function kFe(e){let t=e.featureTables,n={};if(u(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;u(r)&&FFe(r,n)}}return n}async function UFe(e){let t;u(e._extension)?t=BFe(e._extension):t=kFe(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Wi.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(o),e._bufferViewIds.push(i),n.push(o.load())}return Promise.all(n)}function VFe(e){let t={},n=e.propertyTextures;if(u(n))for(let i=0;i<n.length;i++){let r=n[i].properties;u(r)&&zFe(r,t)}return t}function zFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function HFe(e){let t={},n=e.featureTextures;if(u(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;u(r)&&GFe(r,t)}}return t}function GFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function WFe(e){let t;u(e._extension)?t=VFe(e._extension):t=HFe(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let l in t)if(t.hasOwnProperty(l)){let f=Wi.getTextureLoader({gltf:n,textureInfo:t[l],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(l),c.push(f.load())}return Promise.all(c)}async function jFe(e){let t=y(e._extension,e._extensionLegacy),n;if(u(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Wi.getSchemaLoader({resource:i})}else n=Wi.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}Y_.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let l=t[a].process(e);i=i&&l}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],l=this._bufferViewLoaders[a];if(!l.isDestroyed()){let f=new Uint8Array(l.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],l=t[a];l.isDestroyed()||(s[c]=l.texture)}return u(this._extension)?this._structuralMetadata=DL({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=IL({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Cte(this),this._state=St.READY,!0};function Cte(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Wi.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function qFe(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Wi.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}Y_.prototype.unload=function(){Cte(this),qFe(this),u(this._schemaLoader)&&Wi.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var PL=Y_;var UT={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};UT.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return UT.TRANSLATION;case"ROTATION":return UT.ROTATION;case"SCALE":return UT.SCALE;case"_FEATURE_ID":return UT.FEATURE_ID}};var Gr=Object.freeze(UT);var YFe=65534,XFe=255;function OL(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new wte(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],KFe(this)}Object.defineProperties(OL.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function KFe(e){let t=e._triangleIndices,n=e._edges,i=[],o=e._extraVertices,r=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],l=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,l),g=d||n.hasEdge(l,f),m=d||n.hasEdge(f,c),x=Ete(i,c,l,f,p,g,m);for(;u(x);){let b=s[x];if(!u(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>YFe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>XFe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===l?(l=b,t[a+1]=b):(f=b,t[a+2]=b),x=Ete(i,c,l,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Ete(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,l=0,f=UG(e,t,a,c,l);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=UG(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,A=UG(e,i,x,b,T);if(A===0)return i;let C=f&m&A,S,w,D;if(C&1)S=0,w=1,D=2;else if(C&2)S=0,D=1,w=2;else if(C&4)w=0,S=1,D=2;else if(C&8)w=0,D=1,S=2;else if(C&16)D=0,S=1,w=2;else if(C&32)D=0,w=1,S=2;else{let F=VG(f),_=VG(m),E=VG(A);return F<_&&F<E?t:_<E?n:i}let O=t*3;e[O+S]=a,e[O+w]=c,e[O+D]=l;let R=n*3;e[R+S]=d,e[R+w]=p,e[R+D]=g;let N=i*3;e[N+S]=x,e[N+w]=b,e[N+D]=T}function UG(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return u(s)?(s===n&&a===i&&c===o)<<0|(s===n&&a===o&&c===i)<<1|(s===i&&a===n&&c===o)<<2|(s===i&&a===o&&c===n)<<3|(s===o&&a===n&&c===i)<<4|(s===o&&a===i&&c===n)<<5:63}function VG(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}OL.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a<o;a++){let c=t[a]*i,l=n+a*i;for(let f=0;f<i;f++)s[l+f]=s[c+f]}return s};OL.createTexture=function(e){let t=e.cache.modelOutliningCache;if(u(t)||(t=e.cache.modelOutliningCache={}),u(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,zt.maximumTextureSize),i=n,o=Ste(i),r=[];for(;i>1;)i>>=1,r.push(Ste(i));let s=new Pt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:rt.LUMINANCE,sampler:new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:an.LINEAR_MIPMAP_LINEAR,magnificationFilter:Ci.LINEAR})});return t.outlineTexture=s,s};function Ste(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function wte(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],o=e[n+1],r=Math.min(i,o),s=Math.max(i,o),a=r*this._originalVertexCount+s;this._edges.add(a)}}wte.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),o=n*this._originalVertexCount+i;return this._edges.has(o)};var VT=OL;function vte(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function ZFe(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function RL(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}RL.prototype.postProcess=function(e){this.needsOutlines&&($Fe(this),JFe(this,e))};function $Fe(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new VT({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=ke.fromTypedArray(n.typedArray);let r=QFe(o.outlineCoordinates),s=new vte(r);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let l=0;l<c;l++){let f=a[l].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function QFe(e){let t=new Mt.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=rn.VEC3,t.normalized=!1,t.count=e.length/3,t}function JFe(e,t){eBe(e.attributePlans,t),u(e.indicesPlan)&&tBe(e.indicesPlan,t)}function eBe(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=o.attribute,s=r.typedArray;if(o.loadBuffer){let a=ut.createVertexBuffer({typedArray:s,context:t,usage:Be.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function tBe(e,t){let n=e.indices;if(e.loadBuffer){let i=ut.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Be.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}RL.AttributeLoadPlan=vte;RL.IndicesLoadPlan=ZFe;var zT=RL;function nBe(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var ML=nBe;var iBe=Mt.Attribute,oBe=Mt.Indices,Dte=Mt.FeatureIdAttribute,Ite=Mt.FeatureIdTexture,Pte=Mt.FeatureIdImplicitRange,rBe=Mt.MorphTarget,sBe=Mt.Primitive,aBe=Mt.Instances,cBe=Mt.Skin,lBe=Mt.Node,uBe=Mt.AnimatedPropertyType,fBe=Mt.AnimationSampler,dBe=Mt.AnimationTarget,hBe=Mt.AnimationChannel,mBe=Mt.Animation,pBe=Mt.ArticulationStage,_Be=Mt.Articulation,gBe=Mt.Asset,yBe=Mt.Scene,xBe=Mt.Components,bBe=Mt.MetallicRoughness,TBe=Mt.SpecularGlossiness,ABe=Mt.Material,To={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function $f(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=y(e.releaseGltfJson,!1),r=y(e.asynchronous,!0),s=y(e.incrementallyLoadTextures,!0),a=y(e.upAxis,wo.Y),c=y(e.forwardAxis,wo.Z),l=y(e.loadAttributesAsTypedArray,!1),f=y(e.loadAttributesFor2D,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.loadForClassification,!1),m=y(e.renameBatchIdSemantic,!1);n=u(n)?n:t.clone(),this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=n,this._typedArray=i,this._releaseGltfJson=o,this._asynchronous=r,this._incrementallyLoadTextures=s,this._upAxis=a,this._forwardAxis=c,this._loadAttributesAsTypedArray=l,this._loadAttributesFor2D=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=m,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=To.NOT_LOADED,this._textureState=To.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._postProcessBuffers=[],this._components=void 0}u(Object.create)&&($f.prototype=Object.create(no.prototype),$f.prototype.constructor=$f);Object.defineProperties($f.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return u(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function CBe(e){e._state=To.LOADING,e._textureState=To.LOADING;try{let t=Wi.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=To.LOADED,e._textureState=To.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=To.FAILED,e._textureState=To.FAILED,LL(e,t)}}async function EBe(e,t){Bt.supportsWebP.initialized||await Bt.supportsWebP.initialize();let n=new ML({webp:Bt.supportsWebP(),basis:t.context.supportsBasis}),i=e.gltfJson,o=T3e(e,i,n,t);return e._state=To.PROCESSING,e._textureState=To.PROCESSING,u(e._gltfJsonLoader)&&e._releaseGltfJson&&(Wi.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),o}$f.prototype.load=async function(){return u(this._promise)?this._promise:(this._promise=CBe(this),this._promise)};function LL(e,t){e.unload();let n="Failed to load glTF";throw e.getError(n,t)}function SBe(e,t){let n,i=!0,o=e._geometryLoaders,r=o.length;for(n=0;n<r;++n){let a=o[n].process(t);a&&u(e._geometryCallbacks[n])&&(e._geometryCallbacks[n](),e._geometryCallbacks[n]=void 0),i=i&&a}let s=e._structuralMetadataLoader;if(u(s)){let a=s.process(t);a&&(e._components.structuralMetadata=s.structuralMetadata),i=i&&a}i&&(e._state=To.POST_PROCESSING)}function wBe(e,t){let n=e._primitiveLoadPlans,i=n.length;for(let o=0;o<i;o++){let r=n[o];r.postProcess(t),r.needsOutlines&&vBe(e,r)}}function vBe(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;u(o)&&n.push(o.buffer);let r=i.attributes,s=r.length;for(let c=0;c<s;c++){let l=r[c];u(l.buffer)&&n.push(l.buffer)}let a=i.indices;u(a)&&u(a.buffer)&&n.push(a.buffer)}$f.prototype._process=function(e){return this._state===To.READY?!0:(this._state===To.PROCESSING&&SBe(this,e),this._resourcesLoaded&&this._state===To.POST_PROCESSING&&(wBe(this,e.context),this._state=To.PROCESSED),this._resourcesLoaded&&this._state===To.PROCESSED?(Ute(this),this._typedArray=void 0,this._state=To.READY,!0):!1)};$f.prototype._processTextures=function(e){if(this._textureState===To.READY)return!0;if(this._textureState!==To.PROCESSING)return!1;let t,n=!0,i=this._textureLoaders,o=i.length;for(t=0;t<o;++t){let r=i[t].process(e);r&&u(this._textureCallbacks[t])&&(this._textureCallbacks[t](),this._textureCallbacks[t]=void 0),n=n&&r}return n?(this._textureState=To.READY,this._texturesLoaded=!0,!0):!1};$f.prototype.process=function(e){if(this._state===To.LOADED&&!u(this._loadResourcesPromise)&&(this._loadResourcesPromise=EBe(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),u(this._processError)){this._state=To.FAILED;let o=this._processError;this._processError=void 0,LL(this,o)}let t=this._textureErrors.pop();if(u(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===To.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=To.FAILED,LL(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=To.FAILED,LL(this,o)}return this._incrementallyLoadTextures?n:n&&i};function DBe(e,t,n,i,o,r,s,a){let l=t.accessors[n].bufferView;return Wi.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:l,draco:o,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:s})}function IBe(e,t,n,i,o,r,s){return Wi.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function PBe(e,t,n){let i=Wi.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function Ote(e,t,n){let i=t.byteOffset,o=zl(e,t),r=t.count,s=zu(t.type),a=t.componentType,c=X.getSizeInBytes(a),l=c*s,f=r*s;if(o===l)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),m=z_(t.componentType);i=n.byteOffset+i;for(let x=0;x<r;++x){m(p,i,s,c,g);for(let b=0;b<s;++b)d[x*s+b]=g[b];i+=o}return d}function OBe(e,t){let n=e.type;if(n===rn.SCALAR)return t.fill(0);let i=rn.getMathType(n);return t.fill(i.clone(i.ZERO))}function RBe(e,t,n,i){let o=e.type,r=e.count;if(o===rn.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===rn.VEC4&&i)for(let s=0;s<r;s++)n[s]=Ne.unpack(t,s*4);else{let s=rn.getMathType(o),a=rn.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function MBe(e,t,n,i,o,r){if(await t.load(),e.isDestroyed())return;let s=t.typedArray,a=Ote(n,i,s);o=y(o,!1),RBe(i,a,r,o)}function NL(e,t,n,i){let o=t.accessors[n],r=o.count,s=new Array(r),a=o.bufferView;if(u(a)){let c=PBe(e,t,a),l=MBe(e,c,t,o,i,s);return e._loaderPromises.push(l),s}return OBe(o,s)}function Hu(e,t){if(u(t))return e===Number?t[0]:e.unpack(t)}function LBe(e){return e===Number?0:new e}function NBe(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var FBe={VEC2:new V(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function BBe(e,t){let n=NBe(e.componentDatatype),i=FBe[e.type],o=e.min;u(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;u(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function kBe(e,t,n){let i=e.decodeMatrix,o=Hu(n,e.decodedMin),r=Hu(n,e.decodedMax);u(o)&&u(r)&&(t.min=o,t.max=r);let s=new Mt.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new V(i[6],i[7]),s.quantizedVolumeStepSize=new V(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new oe(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new oe(i[0],i[6],i[12],i[18])),t.quantization=s}function UBe(e,t,n,i,o){let r=e.accessors[t],s=rn.getMathType(r.type),a=y(r.normalized,!1),c=new iBe;c.name=n,c.semantic=i,c.setIndex=o,c.constant=LBe(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=Hu(s,r.min),c.max=Hu(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=zl(e,r),oi(r,"WEB3D_quantized_attributes")&&kBe(r.extensions.WEB3D_quantized_attributes,c,s);let l=c.semantic===Tt.POSITION||c.semantic===Tt.NORMAL||c.semantic===Tt.TANGENT||c.semantic===Tt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&l&&BBe(c,s),c}function Rte(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var VBe={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function zG(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=VBe;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function zBe(e){let t=e===Tt.POSITION,n=e===Tt.FEATURE_ID,i=e===Tt.TEXCOORD;return t||n||i}function HBe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=u(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function GBe(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Ote(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Mte(e,t,n,i,o,r,s,a){let c=t.accessors[n],l=c.bufferView,f=i.gltfSemantic,d=i.renamedSemantic,p=i.modelSemantic,g=u(p)?Rte(d):void 0,x=UBe(t,n,f,p,g);if(!u(o)&&!u(l))return x;let b=DBe(e,t,n,f,o,r,s,a),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let A=b.load();return e._loaderPromises.push(A),e._geometryCallbacks[T]=()=>{u(o)&&u(o.attributes)&&u(o.attributes[f])?HBe(x,b,r,s):GBe(t,c,x,b,r,s)},x}function Lte(e,t,n,i,o,r,s,a){let c=i.modelSemantic,l=c===Tt.POSITION,f=c===Tt.FEATURE_ID,d=l&&!r&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&f,g=e._loadAttributesAsTypedArray,m=!g,x=g||d||p,A=Mte(e,t,n,i,o,s?!1:m,s?!0:x,a),C=new zT.AttributeLoadPlan(A);return C.loadBuffer=m,C.loadTypedArray=x,C}function WBe(e,t,n,i,o,r){let s=u(i.ROTATION),a=u(i.TRANSLATION)&&u(t.accessors[i.TRANSLATION].min)&&u(t.accessors[i.TRANSLATION].max),c=zG(e,Gr,o),l=c.modelSemantic,f=l===Gr.TRANSLATION||l===Gr.ROTATION||l===Gr.SCALE,d=l===Gr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!r.context.instancedArrays,g=!p,m=e._loadAttributesFor2D&&!r.scene3DOnly;return Mte(e,t,n,c,void 0,g,p||d&&(!a||m),r)}function jBe(e,t,n,i,o,r,s){let a=t.accessors[n],c=a.bufferView;if(!u(i)&&!u(c))return;let l=new oBe;l.count=a.count;let f=e._loadAttributesAsTypedArray,d=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&o,m=!f,x=f||d||p,A=IBe(e,t,n,i,r?!1:m,r?!0:x,s),C=e._geometryLoaders.length;e._geometryLoaders.push(A);let S=A.load();e._loaderPromises.push(S),e._geometryCallbacks[C]=()=>{l.indexDatatype=A.indexDatatype,l.buffer=A.buffer,l.typedArray=A.typedArray};let w=new zT.IndicesLoadPlan(l);return w.loadBuffer=m,w.loadTypedArray=x,w}function ep(e,t,n,i,o,r){let s=Hl.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!u(s))return;let a=Wi.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:o,asynchronous:e._asynchronous}),c=Hl.createModelTextureReader({textureInfo:n}),l=e._textureLoaders.length;e._textureLoaders.push(a);let f=a.load().catch(d=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw d;e._textureState=To.FAILED,e._textureErrors.push(d)}});return e._texturesPromises.push(f),e._textureCallbacks[l]=()=>{c.texture=a.texture,u(r)&&(c.texture.sampler=r)},c}function qBe(e,t,n,i,o){let r=new ABe,s=y(n.extensions,y.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(r.unlit=u(s.KHR_materials_unlit),u(a)){let l=new TBe;r.specularGlossiness=l,u(a.diffuseTexture)&&(l.diffuseTexture=ep(e,t,a.diffuseTexture,i,o)),u(a.specularGlossinessTexture)&&u(a.specularGlossinessTexture)&&(l.specularGlossinessTexture=ep(e,t,a.specularGlossinessTexture,i,o)),l.diffuseFactor=Hu(oe,a.diffuseFactor),l.specularFactor=Hu(h,a.specularFactor),l.glossinessFactor=a.glossinessFactor,r.pbrSpecularGlossiness=a}else if(u(c)){let l=new bBe;u(c.baseColorTexture)&&(l.baseColorTexture=ep(e,t,c.baseColorTexture,i,o)),u(c.metallicRoughnessTexture)&&(l.metallicRoughnessTexture=ep(e,t,c.metallicRoughnessTexture,i,o)),l.baseColorFactor=Hu(oe,c.baseColorFactor),l.metallicFactor=c.metallicFactor,l.roughnessFactor=c.roughnessFactor,r.metallicRoughness=l}return u(n.emissiveTexture)&&(r.emissiveTexture=ep(e,t,n.emissiveTexture,i,o)),u(n.normalTexture)&&!e._loadForClassification&&(r.normalTexture=ep(e,t,n.normalTexture,i,o)),u(n.occlusionTexture)&&(r.occlusionTexture=ep(e,t,n.occlusionTexture,i,o)),r.emissiveFactor=Hu(h,n.emissiveFactor),r.alphaMode=n.alphaMode,r.alphaCutoff=n.alphaCutoff,r.doubleSided=n.doubleSided,r}function Nte(e,t){let n=new Dte;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Fte(e,t,n,i){let o=new Dte,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Rte(r.attribute),o.positionalLabel=i,o}function Bte(e,t){let n=new Pte;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function kte(e,t,n,i){let o=new Pte,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function YBe(e,t,n,i,o,r){let s=new Ite;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=r;let a=n.texture;s.textureReader=ep(e,t,a,i,o,ln.NEAREST);let l=(u(a.channels)?a.channels:[0]).map(function(f){return"rgba".charAt(f)}).join("");return s.textureReader.channels=l,s}function XBe(e,t,n,i,o,r,s,a){let c=new Ite,l=n.featureIds,f=l.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=ep(e,t,f,o,r,ln.NEAREST),c.textureReader.channels=l.channels,c.positionalLabel=a,c}function KBe(e,t,n,i,o,r){let s=new rBe,a=void 0,c=!1;for(let l in n)if(n.hasOwnProperty(l)){let f=n[l],d=zG(e,Tt,l),p=Lte(e,t,f,d,a,c,i,r);s.attributes.push(p.attribute),o.attributePlans.push(p)}return s}function ZBe(e,t,n,i,o,r){let s=new sBe,a=new zT(s);e._primitiveLoadPlans.push(a);let c=n.material;u(c)&&(s.material=qBe(e,t,t.materials[c],o,r));let l=y(n.extensions,y.EMPTY_OBJECT),f=!1,d=l.CESIUM_primitive_outline;e._loadPrimitiveOutline&&u(d)&&(f=!0,a.needsOutlines=!0,a.outlineIndices=$Be(e,t,d,a));let p=e._loadForClassification,g=l.KHR_draco_mesh_compression,m=!1,x=n.attributes;if(u(x)){for(let O in x)if(x.hasOwnProperty(O)){let R=x[O],N=zG(e,Tt,O),F=N.modelSemantic;if(p&&!zBe(F))continue;F===Tt.FEATURE_ID&&(m=!0);let _=Lte(e,t,R,N,g,i,f,r);a.attributePlans.push(_),s.attributes.push(_.attribute)}}let b=n.targets;if(u(b)&&!p){let O=b.length;for(let R=0;R<O;++R)s.morphTargets.push(KBe(e,t,b[R],f,a,r))}let T=n.indices;if(u(T)){let O=jBe(e,t,T,g,m,f,r);u(O)&&(a.indicesPlan=O,s.indices=O.indices)}let A=l.EXT_structural_metadata,C=l.EXT_mesh_features,S=l.EXT_feature_metadata,w=u(S);u(C)?QBe(e,t,s,C,o,r):w&&JBe(e,t,s,S,o,r),u(A)?e3e(s,A):w&&t3e(e,s,S);let D=n.mode;if(p&&D!==Le.TRIANGLES)throw new ue("Only triangle meshes can be used for classification.");return s.primitiveType=D,s}function $Be(e,t,n){let i=n.indices;return NL(e,t,i,!1)}function QBe(e,t,n,i,o,r){let s;u(i)&&u(i.featureIds)?s=i.featureIds:s=[];for(let a=0;a<s.length;a++){let c=s[a],l=`featureId_${a}`,f;u(c.texture)?f=YBe(e,t,c,o,r,l):u(c.attribute)?f=Nte(c,l):f=Bte(c,l),n.featureIds.push(f)}}function JBe(e,t,n,i,o,r){let s=t.extensions.EXT_feature_metadata.featureTables,a=0,c=i.featureIdAttributes;if(u(c)){let f=c.length;for(let d=0;d<f;++d){let p=c[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),x=s[g].count,b=`featureId_${a}`;a++;let T;u(p.featureIds.attribute)?T=Fte(p,m,x,b):T=kte(p,m,x,b),n.featureIds.push(T)}}let l=i.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let p=l[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),x=s[g].count,b=`featureId_${a}`;a++;let T=XBe(e,t,p,m,o,r,x,b);n.featureIds.push(T)}}}function e3e(e,t){u(t)&&(u(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),u(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function t3e(e,t,n){u(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function n3e(e,t,n,i){let o=n.EXT_mesh_gpu_instancing,r=new aBe,s=o.attributes;if(u(s)){for(let f in s)if(s.hasOwnProperty(f)){let d=s[f];r.attributes.push(WBe(e,t,d,s,f,i))}}let a=y(o.extensions,y.EMPTY_OBJECT),c=n.EXT_instance_features,l=a.EXT_feature_metadata;return u(c)?i3e(r,c):u(l)&&o3e(t,r,l,e._sortedPropertyTableIds),r}function i3e(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;u(o.attribute)?s=Nte(o,r):s=Bte(o,r),e.featureIds.push(s)}}function o3e(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(u(r)){let s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.featureTable,f=i.indexOf(l),d=o[l].count,p=`instanceFeatureId_${a}`,g;u(c.featureIds.attribute)?g=Fte(c,f,d,p):g=kte(c,f,d,p),t.featureIds.push(g)}}}function r3e(e,t,n,i,o){let r=new lBe;r.name=n.name,r.matrix=Hu(L,n.matrix),r.translation=Hu(h,n.translation),r.rotation=Hu(Ne,n.rotation),r.scale=Hu(h,n.scale);let s=y(n.extensions,y.EMPTY_OBJECT),a=s.EXT_mesh_gpu_instancing,c=s.AGI_articulations;if(u(a)){if(e._loadForClassification)throw new ue("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");r.instances=n3e(e,t,s,o)}u(c)&&(r.articulationName=c.articulationName);let l=n.mesh;if(u(l)){let f=t.meshes[l],d=f.primitives,p=d.length;for(let b=0;b<p;++b)r.primitives.push(ZBe(e,t,d[b],u(r.instances),i,o));let g=y(n.weights,f.weights),x=r.primitives[0].morphTargets.length;r.morphWeights=u(g)?g.slice():new Array(x).fill(0)}return r}function s3e(e,t,n,i){if(!u(t.nodes))return[];let o,r,s=t.nodes.length,a=new Array(s);for(o=0;o<s;++o){let c=r3e(e,t,t.nodes[o],n,i);c.index=o,a[o]=c}for(o=0;o<s;++o){let c=t.nodes[o].children;if(u(c)){let l=c.length;for(r=0;r<l;++r)a[o].children.push(a[c[r]])}}return a}function a3e(e,t,n,i){let o=new cBe,r=n.joints,s=r.length,a=new Array(s);for(let l=0;l<s;++l)a[l]=i[r[l]];o.joints=a;let c=n.inverseBindMatrices;return u(c)?o.inverseBindMatrices=NL(e,t,c):o.inverseBindMatrices=new Array(s).fill(L.IDENTITY),o}function c3e(e,t,n){let i=t.skins;if(e._loadForClassification||!u(i))return[];let o=t.skins.length,r=new Array(o);for(let a=0;a<o;++a){let c=a3e(e,t,t.skins[a],n);c.index=a,r[a]=c}let s=n.length;for(let a=0;a<s;++a){let c=t.nodes[a].skin;u(c)&&(n[a].skin=r[c])}return r}async function l3e(e,t,n,i,o,r){let s=new PL({gltf:t,extension:n,extensionLegacy:i,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:o,frameState:r,asynchronous:e._asynchronous});return e._structuralMetadataLoader=s,s.load()}function u3e(e,t,n){let i=new fBe,o=n.input;i.input=NL(e,t,o);let r=n.interpolation;i.interpolation=y(wh[r],wh.LINEAR);let s=n.output;return i.output=NL(e,t,s,!0),i}function f3e(e,t){let n=new dBe,i=e.node;if(!u(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=uBe[o],n}function d3e(e,t,n){let i=new hBe,o=e.sampler;return i.sampler=t[o],i.target=f3e(e.target,n),i}function h3e(e,t,n,i){let o,r=new mBe;r.name=n.name;let s=n.samplers,a=s.length,c=new Array(a);for(o=0;o<a;o++){let p=u3e(e,t,s[o]);p.index=o,c[o]=p}let l=n.channels,f=l.length,d=new Array(f);for(o=0;o<f;o++)d[o]=d3e(l[o],c,i);return r.samplers=c,r.channels=d,r}function m3e(e,t,n){let i=t.animations;if(e._loadForClassification||!u(i))return[];let o=t.animations.length,r=new Array(o);for(let s=0;s<o;++s){let a=h3e(e,t,t.animations[s],n);a.index=s,r[s]=a}return r}function p3e(e){let t=new pBe;t.name=e.name;let n=e.type.toUpperCase();return t.type=yc[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function _3e(e){let t=new _Be;t.name=e.name;let n=e.stages,i=n.length,o=new Array(i);for(let r=0;r<i;r++){let s=p3e(n[r]);o[r]=s}return t.stages=o,t}function g3e(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations;if(!u(n))return[];let i=n.articulations;if(!u(i))return[];let o=i.length,r=new Array(o);for(let s=0;s<o;s++){let a=_3e(i[s]);r[s]=a}return r}function y3e(e){let t;return u(e.scenes)&&u(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=u(t)?t:[],t}function x3e(e,t){let n=new yBe,i=y3e(e);return n.nodes=i.map(function(o){return t[o]}),n}var b3e=new h;function T3e(e,t,n,i){let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_structural_metadata,s=o.EXT_feature_metadata,a=o.CESIUM_RTC;if(u(s)){let T=s.featureTables,A=s.featureTextures,C=u(T)?T:[],S=u(A)?A:[];e._sortedPropertyTableIds=Object.keys(C).sort(),e._sortedFeatureTextureIds=Object.keys(S).sort()}let c=s3e(e,t,n,i),l=c3e(e,t,c),f=m3e(e,t,c),d=g3e(t),p=x3e(t,c),g=new xBe,m=new gBe,x=t.asset.copyright;if(u(x)){let T=x.split(";").map(function(A){return new bt(A.trim())});m.credits=T}if(g.asset=m,g.scene=p,g.nodes=c,g.skins=l,g.animations=f,g.articulations=d,g.upAxis=e._upAxis,g.forwardAxis=e._forwardAxis,u(a)){let T=h.fromArray(a.center,0,b3e);g.transform=L.fromTranslation(T,g.transform)}if(e._components=g,u(r)||u(s)){let T=l3e(e,t,r,s,n,i);e._loaderPromises.push(T)}let b=[];return b.push.apply(b,e._loaderPromises),e._incrementallyLoadTextures||b.push.apply(b,e._texturesPromises),Promise.all(b)}function A3e(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Wi.unload(t[i]);e._textureLoaders.length=0}function Ute(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Wi.unload(t[i]);e._bufferViewLoaders.length=0}function C3e(e){let t=e._geometryLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Wi.unload(t[i]);e._geometryLoaders.length=0}function E3e(e){let t=e._postProcessBuffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}function S3e(e){u(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}$f.prototype.isUnloaded=function(){return this._state===To.UNLOADED};$f.prototype.unload=function(){u(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Wi.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,A3e(this),Ute(this),C3e(this),E3e(this),S3e(this),this._components=void 0,this._typedArray=void 0,this._state=To.UNLOADED};var X_=$f;var FL=`uniform sampler2D u_pointCloud_colorGBuffer;
- uniform sampler2D u_pointCloud_depthGBuffer;
- uniform vec2 u_distanceAndEdlStrength;
- in vec2 v_textureCoordinates;
- vec2 neighborContribution(float log2Depth, vec2 offset)
- {
- float dist = u_distanceAndEdlStrength.x;
- vec2 texCoordOrig = v_textureCoordinates + offset * dist;
- vec2 texCoord0 = v_textureCoordinates + offset * floor(dist);
- vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist);
- float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0));
- float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1));
- // ignore depth values that are the clear depth
- if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) {
- return vec2(0.0);
- }
- // interpolate the two adjacent depth values
- float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist));
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix);
- return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0);
- }
- void main()
- {
- float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates));
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth);
- eyeCoordinate /= eyeCoordinate.w;
- float log2Depth = log2(-eyeCoordinate.z);
- if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer
- {
- discard;
- }
- vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates);
- // sample from neighbors left, right, down, up
- vec2 texelSize = 1.0 / czm_viewport.zw;
- vec2 responseAndCount = vec2(0.0);
- responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0));
- responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0));
- responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y));
- responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y));
- float response = responseAndCount.x / responseAndCount.y;
- float strength = u_distanceAndEdlStrength.y;
- float shade = exp(-response * 300.0 * strength);
- color.rgb *= shade;
- out_FragColor = vec4(color);
- // Input and output depth are the same.
- gl_FragDepth = depthOrLogDepth;
- }
- `;function HT(){this._framebuffer=new di({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(HT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function w3e(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var HG=new V;function v3e(e,t){let n=new ze({defines:["LOG_DEPTH_WRITE"],sources:[FL]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return HG.x=e._radius,HG.y=e._strength,HG}},o=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Lt.setCesium3DTileBit(),stencilMask:Lt.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:Ee.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ei({framebuffer:e.framebuffer,color:new z(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:Ee.CESIUM_3D_TILE,owner:e})}function D3e(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),v3e(e,t)}function Vte(e){return e.drawBuffers&&e.fragmentDepth}HT.isSupported=Vte;function I3e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!u(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0;
- layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=ze.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main()
- {
- czm_point_cloud_post_process_main();
- #ifdef LOG_DEPTH
- czm_writeLogDepth();
- out_FragData_1 = czm_packDepth(gl_FragDepth);
- #else
- out_FragData_1 = czm_packDepth(gl_FragCoord.z);
- #endif
- }`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}HT.prototype.update=function(e,t,n,i){if(!Vte(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,D3e(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let l=r[o];if(l.primitiveType!==Le.POINTS||l.pass===Ee.TRANSLUCENT)continue;let f,d,p=l.derivedCommands.pointCloudProcessor;u(p)&&(f=p.command,d=p.originalShaderProgram),(!u(f)||l.dirty||d!==l.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=et.shallowClone(l,f),f.framebuffer=this.framebuffer,f.shaderProgram=I3e(e.context,l.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,u(p)||(p={command:f,originalShaderProgram:l.shaderProgram},l.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=l.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};HT.prototype.isDestroyed=function(){return!1};HT.prototype.destroy=function(){return w3e(this),le(this)};var K_=HT;function zte(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}zte.isSupported=function(e){return K_.isSupported(e.context)};var tp=zte;var sa={},P3e=new oe(0,0,0,1),Fa=new oe,O3e=new qe,GG=new V,WG=new V;sa.wgs84ToWindowCoordinates=function(e,t,n){return sa.wgs84WithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var Hte=new oe,Gte=new h;function _w(e,t,n,i){let o=n.viewMatrix,r=L.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,Hte),Hte),s=h.multiplyComponents(t,h.normalize(r,Gte),Gte);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,L.multiplyByVector(n.frustum.projectionMatrix,r,i)}var R3e=new fe(Math.PI,P.PI_OVER_TWO),M3e=new h,L3e=new h;sa.wgs84WithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=sa.computeActualWgs84Position(o,t,P3e);if(!u(r))return;let s=e.canvas,a=O3e;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,l=!1;if(o.mode===te.SCENE2D){let f=e.mapProjection,d=R3e,p=f.project(d,M3e),g=h.clone(c.position,L3e),m=c.frustum.clone(),x=L.computeViewportTransformation(a,0,1,new L),b=c.frustum.projectionMatrix,T=c.positionWC.y,A=h.fromElements(P.sign(T)*p.x-T,0,-c.positionWC.x),C=Rt.pointToGLWindowCoordinates(b,x,A);if(T===0||C.x<=0||C.x>=s.clientWidth)l=!0;else{if(C.x>s.clientWidth*.5){a.width=C.x,c.frustum.right=p.x-T,Fa=_w(r,n,c,Fa),sa.clipToGLWindowCoordinates(a,Fa,GG),a.x+=C.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,Fa=_w(r,n,c,Fa),sa.clipToGLWindowCoordinates(a,Fa,WG)}else{a.x+=C.x,a.width-=C.x,c.frustum.left=-p.x-T,Fa=_w(r,n,c,Fa),sa.clipToGLWindowCoordinates(a,Fa,GG),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,Fa=_w(r,n,c,Fa),sa.clipToGLWindowCoordinates(a,Fa,WG)}h.clone(g,c.position),c.frustum=m.clone(),i=V.clone(GG,i),(i.x<0||i.x>s.clientWidth)&&(i.x=WG.x)}}if(o.mode!==te.SCENE2D||l){if(Fa=_w(r,n,c,Fa),Fa.z<0&&!(c.frustum instanceof Qt)&&!(c.frustum instanceof vr))return;i=sa.clipToGLWindowCoordinates(a,Fa,i)}return i.y=s.clientHeight-i.y,i};sa.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=sa.wgs84ToWindowCoordinates(e,t,n),!!u(n))return sa.transformWindowToDrawingBuffer(e,n,n)};var np=new h,N3e=new fe;sa.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===te.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,N3e);if(!u(r))return;if(o.project(r,np),i===te.COLUMBUS_VIEW)return h.fromElements(np.z,np.x,np.y,n);if(i===te.SCENE2D)return h.fromElements(0,np.x,np.y,n);let s=e.morphTime;return h.fromElements(P.lerp(np.z,t.x,s),P.lerp(np.x,t.y,s),P.lerp(np.y,t.z,s),n)};var Wte=new h,jte=new h,qte=new L;sa.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Wte),L.computeViewportTransformation(e,0,1,qte),L.multiplyByPoint(qte,Wte,jte),V.fromCartesian3(jte,n)};sa.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return V.fromElements(t.x*o,t.y*r,n)};var F3e=new oe,Yte=new oe;sa.drawingBufferToWgs84Coordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,m=Math.pow(2,g)-1;n=c*(1-a/(m+a))/(c-a)}let l=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,F3e);f.x=(t.x-l.x)/l.width*2-1,f.y=(t.y-l.y)/l.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(u(p.fovy)){d=L.multiplyByVector(r.inverseViewProjection,f,Yte);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;u(g)&&(p=g),d=Yte,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=L.multiplyByVector(r.inverseView,d,d)}return h.fromCartesian4(d,i)};var $i=sa;var B3e={LEFT:-1,NONE:0,RIGHT:1},il=Object.freeze(B3e);var GT={};GT._deprecationWarning=es;var ip=Uint32Array.BYTES_PER_ELEMENT;GT.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=ip;let r=o.getUint32(t,!0);if(r!==1)throw new ue(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=ip;let s=o.getUint32(t,!0);t+=ip;let a=o.getUint32(t,!0);t+=ip;let c=o.getUint32(t,!0);t+=ip;let l=o.getUint32(t,!0);t+=ip;let f=o.getUint32(t,!0);t+=ip;let d;l>=570425344?(t-=ip*2,d=a,l=c,f=0,a=0,c=0,GT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=ip,d=l,l=a,f=c,a=0,c=0,GT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=vo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;l>0&&(m=vo(i,t,l),t+=l,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ue("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(GT._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var BL=GT;function gw(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function Xte(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return u(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function k3e(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return u(r)||(r=X.createTypedArray(n,i),o[t]=r),r}gw.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),Xte(this,e,t,n,1,i.byteOffset)):i};gw.prototype.hasProperty=function(e){return u(this.json[e])};gw.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(u(i.componentType)&&(t=X.fromName(i.componentType)),Xte(this,e,t,n,this.featuresLength,i.byteOffset)):k3e(this,e,t,i)};gw.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!u(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)o[a]=s[n*i+a];return o};var vh=gw;function yw(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=U3e(n),a;u(s.jsonProperties)&&(a=new q_({count:t,properties:s.jsonProperties}));let c;u(s.hierarchy)&&(c=new ET({extension:s.hierarchy,binaryBody:i}));let l=Eh.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=z3e(t,l,f,i,r);g=b.transcodedSchema,p=[new kT({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=V3e(t,l,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new Vl({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(u(d)||u(a)||u(c)){let b=new nl({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});m.push(b)}let x={schema:g,propertyTables:m,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new Na(x)}function U3e(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;u(t)?(yw._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):u(i)&&(o=i["3DTILES_batch_table_hierarchy"]);let r,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(r=u(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function V3e(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!u(i))throw new ue(`Property ${d} requires a batch table binary.`);let p=n[d],g=Uu(p);r[d]={bufferView:a},o[d]=Kte(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let l=Sh.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:l,transcodedClass:l.classes[t]}}function z3e(e,t,n,i,o){let r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!u(i)&&!u(p.typedArray))throw new ue(`Property ${d} requires a batch table binary.`);let g=en.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=Kte(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;u(b)||(b=Uu(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new Mt.Attribute;T.name=x,T.count=e,T.type=p.type;let A=X.fromTypedArray(b);(A===X.INT||A===X.UNSIGNED_INT||A===X.DOUBLE)&&(yw._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${x}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),b=new Float32Array(b)),T.componentDatatype=X.fromTypedArray(b),T.typedArray=b,o.push(T),s[g]={attribute:x}}let c={classes:{}};c.classes[t]={properties:r};let l=Sh.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:l,transcodedClass:l.classes[t]}}function Kte(e){let t=H3e(e.componentType);return{type:e.type,componentType:t}}function H3e(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}yw._deprecationWarning=es;yw._oneTimeWarning=It;var Z_=yw;var I0={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},G3e=Mt.FeatureIdAttribute;function $_(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,wo.Y),l=y(e.forwardAxis,wo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.loadIndicesForWireframe,!1),g=y(e.loadPrimitiveOutline,!0),m=y(e.loadForClassification,!1);n=u(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=l,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._loadIndicesForWireframe=p,this._loadPrimitiveOutline=g,this._loadForClassification=m,this._state=I0.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=L.IDENTITY}u(Object.create)&&($_.prototype=Object.create(no.prototype),$_.prototype.constructor=$_);Object.defineProperties($_.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});$_.prototype.load=function(){if(u(this._promise))return this._promise;let e=BL.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new vh(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(a)&&(this._transform=L.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new X_({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=I0.LOADING;let l=this;return this._promise=c.load().then(function(){if(!l.isDestroyed())return l._state=I0.PROCESSING,l}).catch(function(f){if(!l.isDestroyed())return W3e(l,f)}),this._promise};function W3e(e,t){e.unload(),e._state=I0.FAILED;let n="Failed to load b3dm";return t=e.getError(n,t),Promise.reject(t)}$_.prototype.process=function(e){if(this._state===I0.READY)return!0;if(this._state!==I0.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=L.multiplyTransformation(this._transform,n.transform,n.transform),j3e(this,n),this._components=n,this._arrayBuffer=void 0,this._state=I0.READY,!0};function j3e(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(u(n.json))o=Z_({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new nl({name:Eh.BATCH_TABLE_CLASS_NAME,count:i});o=new Na({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)Zte(r[a]);t.structuralMetadata=o}function Zte(e){let t=e.children.length;for(let i=0;i<t;i++)Zte(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=en.getAttributeBySemantic(o,Tt.FEATURE_ID);if(u(r)){r.setIndex=0;let s=new G3e;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}$_.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var kL=$_;function Q_(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}u(Object.create)&&(Q_.prototype=Object.create(no.prototype),Q_.prototype.constructor=Q_);Object.defineProperties(Q_.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Q_.prototype.load=function(){return Promise.resolve(this)};Q_.prototype.process=function(e){return u(this._components)||(this._components=oke(this._geoJson,e),this._geoJson=void 0),!0};function q3e(){this.lines=void 0,this.points=void 0,this.properties=void 0}function Y3e(){this.features=[]}function jG(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function qG(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=jG(e[o]);return[n]}function X3e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=qG(e[i])[0];return n}function $te(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=qG(e[i])[0];return n}function K3e(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,$te(e[i]));return n}function Z3e(e){return[jG(e)]}function $3e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=jG(e[i]);return n}var Q3e={LineString:qG,MultiLineString:X3e,MultiPolygon:K3e,Polygon:$te,MultiPoint:$3e,Point:Z3e},J3e={LineString:Le.LINES,MultiLineString:Le.LINES,MultiPolygon:Le.LINES,Polygon:Le.LINES,MultiPoint:Le.POINTS,Point:Le.POINTS};function Qte(e,t){if(!u(e.geometry))return;let n=e.geometry.type,i=Q3e[n],o=J3e[n],r=e.geometry.coordinates;if(!u(i)||!u(r))return;let s=new q3e;o===Le.LINES?s.lines=i(r):o===Le.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function eke(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)Qte(n[o],t)}var tke={FeatureCollection:eke,Feature:Qte},UL=new h;function nke(e,t,n){let i=0,o=0,r=e.length;for(let N=0;N<r;N++){let F=e[N];if(u(F.lines)){let _=F.lines.length;for(let E=0;E<_;E++){let v=F.lines[E];i+=v.length,o+=(v.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=ke.createTypedArray(i,o),l=ke.fromTypedArray(c),f=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let N=0;N<r;N++){let F=e[N];if(!u(F.lines))continue;let _=F.lines.length;for(let E=0;E<_;E++){let v=F.lines[E],I=v.length;for(let M=0;M<I;M++){let B=v[M],H=h.fromDegrees(B.x,B.y,B.z,ie.WGS84,UL),U=L.multiplyByPoint(t,H,UL);h.minimumByComponent(f,U,f),h.maximumByComponent(d,U,d),h.pack(U,s,p*3),a[p]=N,M<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=ut.createVertexBuffer({typedArray:s,context:n.context,usage:Be.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=ut.createVertexBuffer({typedArray:a,context:n.context,usage:Be.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=ut.createIndexBuffer({typedArray:c,context:n.context,usage:Be.STATIC_DRAW,indexDatatype:l});b.vertexArrayDestroyable=!1;let T=new Mt.Attribute;T.semantic=Tt.POSITION,T.componentDatatype=X.FLOAT,T.type=rn.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let A=new Mt.Attribute;A.semantic=Tt.FEATURE_ID,A.setIndex=0,A.componentDatatype=X.FLOAT,A.type=rn.SCALAR,A.count=i,A.buffer=x;let C=[T,A],S=new Mt.Material;S.unlit=!0;let w=new Mt.Indices;w.indexDatatype=l,w.count=c.length,w.buffer=b;let D=new Mt.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],R=new Mt.Primitive;return R.attributes=C,R.indices=w,R.featureIds=O,R.primitiveType=Le.LINES,R.material=S,R}function ike(e,t,n){let i=0,o=e.length;for(let C=0;C<o;C++){let S=e[C];u(S.points)&&(i+=S.points.length)}let r=new Float32Array(i*3),s=new Float32Array(i),a=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),l=0;for(let C=0;C<o;C++){let S=e[C];if(!u(S.points))continue;let w=S.points.length;for(let D=0;D<w;D++){let O=S.points[D],R=h.fromDegrees(O.x,O.y,O.z,ie.WGS84,UL),N=L.multiplyByPoint(t,R,UL);h.minimumByComponent(a,N,a),h.maximumByComponent(c,N,c),h.pack(N,r,l*3),s[l]=C,l++}}let f=ut.createVertexBuffer({typedArray:r,context:n.context,usage:Be.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=ut.createVertexBuffer({typedArray:s,context:n.context,usage:Be.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new Mt.Attribute;p.semantic=Tt.POSITION,p.componentDatatype=X.FLOAT,p.type=rn.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new Mt.Attribute;g.semantic=Tt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=rn.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new Mt.Material;x.unlit=!0;let b=new Mt.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],A=new Mt.Primitive;return A.attributes=m,A.featureIds=T,A.primitiveType=Le.POINTS,A.material=x,A}function oke(e,t){let n=new Y3e,i=tke[e.type];u(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new ue("GeoJSON must have at least one feature");let s={};for(let N=0;N<r;N++){let F=o[N],_=y(F.properties,y.EMPTY_OBJECT);for(let E in _)_.hasOwnProperty(E)&&(u(s[E])||(s[E]=new Array(r)))}for(let N=0;N<r;N++){let F=o[N];for(let _ in s)if(s.hasOwnProperty(_)){let E=y(F.properties[_],"");s[_][N]=E}}let a=new q_({count:r,properties:s}),l=[new nl({id:0,count:r,jsonMetadataTable:a})],f=Sh.fromJson({}),d=new Na({schema:f,propertyTables:l}),p=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),m=!1,x=!1;for(let N=0;N<r;N++){let F=o[N];if(u(F.lines)){m=!0;let _=F.lines.length;for(let E=0;E<_;E++){let v=F.lines[E],I=v.length;for(let M=0;M<I;M++)h.minimumByComponent(p,v[M],p),h.maximumByComponent(g,v[M],g)}}if(u(F.points)){x=!0;let _=F.points.length;for(let E=0;E<_;E++){let v=F.points[E];h.minimumByComponent(p,v,p),h.maximumByComponent(g,v,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,ie.WGS84,new h),A=Rt.eastNorthUpToFixedFrame(T,ie.WGS84,new L),C=L.inverseTransformation(A,new L),S=[];m&&S.push(nke(o,C,t)),x&&S.push(ike(o,C,t));let w=new Mt.Node;w.index=0,w.primitives=S;let D=[w],O=new Mt.Scene;O.nodes=D;let R=new Mt.Components;return R.scene=O,R.nodes=D,R.transform=A,R.structuralMetadata=d,R}Q_.prototype.unload=function(){this._components=void 0};var VL=Q_;var zL={};zL._deprecationWarning=es;var J_=Uint32Array.BYTES_PER_ELEMENT;zL.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=J_;let r=o.getUint32(t,!0);if(r!==1)throw new ue(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=J_;let s=o.getUint32(t,!0);t+=J_;let a=o.getUint32(t,!0);if(a===0)throw new ue("featureTableJsonByteLength is zero, the feature table must be defined.");t+=J_;let c=o.getUint32(t,!0);t+=J_;let l=o.getUint32(t,!0);t+=J_;let f=o.getUint32(t,!0);t+=J_;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new ue(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=J_;let p=vo(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;l>0&&(m=vo(i,t,l),t+=l,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ue("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(zL._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var HL=zL;var op={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},GL=Mt.Attribute,rke=Mt.FeatureIdAttribute,ene=Mt.Instances;function rp(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,wo.Y),l=y(e.forwardAxis,wo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0);i=u(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=l,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._state=op.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=L.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}u(Object.create)&&(rp.prototype=Object.create(no.prototype),rp.prototype.constructor=rp);Object.defineProperties(rp.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});rp.prototype.load=function(){if(u(this._promise))return this._promise;let e=HL.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new vh(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!u(a))throw new ue("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(c)&&(this._transform=L.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let l={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Bl(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});l.gltfResource=p,l.baseResource=p}else l.gltfResource=this._i3dmResource,l.typedArray=e.gltf;let f=new X_(l);return this._gltfLoader=f,this._state=op.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=op.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw ske(this,d)}),this._promise};function ske(e,t){e.unload(),e._state=op.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}rp.prototype.process=function(e){if(this._state===op.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===op.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=L.multiplyTransformation(this._transform,i.transform,i.transform),lke(this,i,e),ake(this,i),this._components=i,this._arrayBuffer=void 0,this._state=op.READY,!0};function ake(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(u(n.json))o=Z_({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new nl({name:Eh.BATCH_TABLE_CLASS_NAME,count:i});o=new Na({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var WL=new h,YG=new Array(4),cke=new L;function lke(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,l=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=fke(o,r),d;c&&(d=new Float32Array(4*r));let p;l&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,A=new h,C=new $,S=new Ne,w=new Array(4),D=new h,O=new Array(3),R=new L;if(!u(s)||h.equals(h.unpack(s),h.ZERO)){let U=se.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],U.center,WL),f[3*i+0]=WL.x,f[3*i+1]=WL.y,f[3*i+2]=WL.z;let G=L.fromTranslation(U.center,cke);t.transform=L.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),u(s)&&h.add(x,h.unpack(s),x),c&&(dke(o,a,i,S,x,T,b,A,C,R),Ne.pack(S,w,0),d[4*i+0]=w[0],d[4*i+1]=w[1],d[4*i+2]=w[2],d[4*i+3]=w[3]),l&&(hke(o,i,D),h.pack(D,O,0),p[3*i+0]=O[0],p[3*i+1]=O[1],p[3*i+2]=O[2]);let U=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);u(U)||(U=i),g[i]=U}let N=new ene;N.transformInWorldSpace=!0;let F=e._buffers,_=new GL;if(_.name="Instance Translation",_.semantic=Gr.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=rn.VEC3,_.count=r,_.typedArray=f,!c){let U=ut.createVertexBuffer({context:n.context,typedArray:f,usage:Be.STATIC_DRAW});U.vertexArrayDestroyable=!1,F.push(U),_.buffer=U}if(N.attributes.push(_),c){let U=new GL;U.name="Instance Rotation",U.semantic=Gr.ROTATION,U.componentDatatype=X.FLOAT,U.type=rn.VEC4,U.count=r,U.typedArray=d,N.attributes.push(U)}if(l){let U=new GL;if(U.name="Instance Scale",U.semantic=Gr.SCALE,U.componentDatatype=X.FLOAT,U.type=rn.VEC3,U.count=r,c)U.typedArray=p;else{let G=ut.createVertexBuffer({context:n.context,typedArray:p,usage:Be.STATIC_DRAW});G.vertexArrayDestroyable=!1,F.push(G),U.buffer=G}N.attributes.push(U)}let E=new GL;E.name="Instance Feature ID",E.setIndex=0,E.semantic=Gr.FEATURE_ID,E.componentDatatype=X.FLOAT,E.type=rn.SCALAR,E.count=r;let v=ut.createVertexBuffer({context:n.context,typedArray:g,usage:Be.STATIC_DRAW});v.vertexArrayDestroyable=!1,F.push(v),E.buffer=v,N.attributes.push(E);let I=new rke;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",N.featureIds.push(I);let M=t.nodes,B=M.length,H=!1;for(i=0;i<B;i++){let U=M[i];U.primitives.length>0&&(U.instances=H?uke(N):N,H=!0)}}function uke(e){let t=new ene;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=Ge(n[o],!1);t.attributes.push(r)}return t.featureIds=e.featureIds,t}function fke(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!u(i))throw new ue("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(o))throw new ue("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;r[c]=n[c]/65535*o[a]+i[a]}return r}else throw new ue("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var Jte=new Array(4);function dke(e,t,n,i,o,r,s,a,c,l){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,YG),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,Jte),p=!1;if(u(f)){if(!u(d))throw new ue("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");h.unpack(f,0,r),h.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,YG),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,Jte);if(u(g)){if(!u(m))throw new ue("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");jn.octDecodeInRange(g[0],g[1],65535,r),jn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Rt.eastNorthUpToFixedFrame(o,ie.WGS84,l),L.getMatrix3(l,c)):$.clone($.IDENTITY,c)}p&&(h.cross(s,r,a),h.normalize(a,a),$.setColumn(c,0,s,c),$.setColumn(c,1,r,c),$.setColumn(c,2,a,c)),Ne.fromRotationMatrix(c,i)}function hke(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);u(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,YG);u(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function mke(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}rp.prototype.isUnloaded=function(){return this._state===op.UNLOADED};rp.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),mke(this),this._components=void 0,this._arrayBuffer=void 0,this._state=op.UNLOADED};var jL=rp;var pke={STOPPED:0,ANIMATING:1},Dh=Object.freeze(pke);function WT(){this.times=void 0,this.points=void 0,de.throwInstantiationError()}WT.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Ne)return Ne};WT.prototype.evaluate=de.throwInstantiationError;WT.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o<i-1&&!(e>=n[o]&&e<n[o+1]);++o);else for(o=t-1;o>=0&&!(e>=n[o]&&e<n[o+1]);--o);return o===i-1&&(o=i-2),o};WT.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],o=n-i,r;return e<i&&(r=Math.floor((i-e)/o)+1,e+=r*o),e>n&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};WT.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var io=WT;function jT(e){this._value=e,this._valueType=io.getPointType(e)}Object.defineProperties(jT.prototype,{value:{get:function(){return this._value}}});jT.prototype.findTimeInterval=function(e){};jT.prototype.wrapTime=function(e){return 0};jT.prototype.clampTime=function(e){return 0};jT.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var qL=jT;function qT(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(qT.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});qT.prototype.findTimeInterval=io.prototype.findTimeInterval;qT.prototype.wrapTime=io.prototype.wrapTime;qT.prototype.clampTime=io.prototype.clampTime;qT.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(u(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var P0=qT;var tne={};tne.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a<r.length;a++)r[a]=new h,s[a]=new h;o[0]=n[0]/t[0],r[0]=h.multiplyByScalar(i[0],1/t[0],r[0]);let c;for(a=1;a<o.length;++a)c=1/(t[a]-o[a-1]*e[a-1]),o[a]=n[a]*c,r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]);for(c=1/(t[a]-o[a-1]*e[a-1]),r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]),s[s.length-1]=r[r.length-1],a=s.length-2;a>=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var xw=tne;var nne=[],ine=[],one=[],rne=[];function _ke(e,t,n){let i=nne,o=one,r=ine,s=rne;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(u(c)||(c=s[0]=new h),h.clone(t,c),a=1;a<i.length-1;++a)i[a]=o[a]=1,r[a]=4,c=s[a],u(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c);return i[a]=0,o[a]=1,r[a]=4,c=s[a],u(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c),r[a+1]=1,c=s[a+1],u(c)||(c=s[a+1]=new h),h.clone(n,c),xw.solve(i,r,o,s)}function gke(e){let t=nne,n=one,i=ine,o=rne;t.length=n.length=e.length-1,i.length=o.length=e.length;let r;t[0]=n[0]=1,i[0]=2;let s=o[0];for(u(s)||(s=o[0]=new h),h.subtract(e[1],e[0],s),h.multiplyByScalar(s,3,s),r=1;r<t.length;++r)t[r]=n[r]=1,i[r]=4,s=o[r],u(s)||(s=o[r]=new h),h.subtract(e[r+1],e[r-1],s),h.multiplyByScalar(s,3,s);return i[r]=2,s=o[r],u(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),xw.solve(t,i,n,o)}function ol(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,o=e.outTangents;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._inTangents=i,this._outTangents=o,this._lastTimeIndex=0}Object.defineProperties(ol.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});ol.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new ol({times:t,points:n,inTangents:r,outTangents:o})};ol.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new P0({points:n,times:t});let i=gke(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new ol({times:t,points:n,inTangents:r,outTangents:o})};ol.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,o=e.lastTangent,r=io.getPointType(n[0]);if(n.length<3)return new P0({points:n,times:t});let s=_ke(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new ol({times:t,points:n,inTangents:c,outTangents:a})};ol.hermiteCoefficientMatrix=new L(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);ol.prototype.findTimeInterval=io.prototype.findTimeInterval;var yke=new oe,YT=new h;ol.prototype.wrapTime=io.prototype.wrapTime;ol.prototype.clampTime=io.prototype.clampTime;ol.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this.inTangents,r=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,l=yke;l.z=c,l.y=c*c,l.x=l.y*c,l.w=1;let f=L.multiplyByVector(ol.hermiteCoefficientMatrix,l,l);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+r[s]*f.z+o[s]*f.w:(u(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,YT),d.add(t,YT,t),d.multiplyByScalar(r[s],f.z,YT),d.add(t,YT,t),d.multiplyByScalar(o[s],f.w,YT),d.add(t,YT,t))};var O0=ol;function XT(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(XT.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});XT.prototype.findTimeInterval=io.prototype.findTimeInterval;XT.prototype.wrapTime=io.prototype.wrapTime;XT.prototype.clampTime=io.prototype.clampTime;XT.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,o=this._pointType;return o===Number?n[i]:(u(t)||(t=new o),o.clone(n[i],t))};var YL=XT;function xke(e){let t=e.points,n=e.times;return function(i,o){u(o)||(o=new Ne);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=t[r],c=t[r+1];return Ne.fastSlerp(a,c,s,o)}}function KT(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=xke(this),this._lastTimeIndex=0}Object.defineProperties(KT.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});KT.prototype.findTimeInterval=io.prototype.findTimeInterval;KT.prototype.wrapTime=io.prototype.wrapTime;KT.prototype.clampTime=io.prototype.clampTime;KT.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var XL=KT;var R0=Mt.AnimatedPropertyType;function KG(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,Ake(this)}Object.defineProperties(KG.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function bke(e,t){let n=[],i=[],o=[],r=t.length;for(let s=0;s<r;s+=3)i.push(t[s]),n.push(t[s+1]),o.push(t[s+2]);return i.splice(0,1),o.length=o.length-1,new O0({times:e,points:n,inTangents:i,outTangents:o})}function sne(e,t,n,i){if(e.length===1&&t.length===1)return new qL(t[0]);switch(n){case wh.STEP:return new YL({times:e,points:t});case wh.CUBICSPLINE:return bke(e,t);case wh.LINEAR:return i===R0.ROTATION?new XL({times:e,points:t}):new P0({times:e,points:t})}}function Tke(e,t,n,i,o){let r=[];if(i===R0.WEIGHTS){let a=t.length/o,c,l;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===wh.CUBICSPLINE)for(l=0;l<a;l+=3)f[l]=t[d],f[l+1]=t[d+o],f[l+2]=t[d+2*o],d+=o*3;else for(l=0;l<a;l++)f[l]=t[d],d+=o;r.push(sne(e,f,n,i))}}else r.push(sne(e,t,n,i));return r}var XG;function Ake(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,l=u(c.morphWeights)?c.morphWeights.length:1,f=Tke(i,o,r,a,l);switch(e._splines=f,e._path=a,a){case R0.TRANSLATION:case R0.SCALE:XG=new h;break;case R0.ROTATION:XG=new Ne;break;case R0.WEIGHTS:break}}KG.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===R0.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],l=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(l)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);o[n]=r.evaluate(s,XG)}}};var KL=KG;function ZG(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=J.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=J.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,Wl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new pe,this.update=new pe,this.stop=new pe,this._state=Dh.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,Cke(this)}Object.defineProperties(ZG.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function Cke(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,r=e._animation.channels,s=r.length,a=[];for(let c=0;c<s;c++){let l=r[c],f=l.target;if(!u(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new KL({channel:l,runtimeAnimation:e,runtimeNode:p}),m=l.sampler.input;t=Math.min(t,m[0]),n=Math.max(n,m[m.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}ZG.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var ZL=ZG;function sp(e){this.animationAdded=new pe,this.animationRemoved=new pe,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(sp.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function $G(e,t,n){let i=e._model,o=new ZL(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}sp.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(u(i))return $G(this,n[i],e);let o=n.length;for(let r=0;r<o;++r)if(n[r].name===e.name){i=r;break}return $G(this,n[i],e)};sp.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],o=n.length;for(let r=0;r<o;++r){let s=$G(this,n[r],e);i.push(s)}return i};sp.prototype.remove=function(e){if(!u(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};sp.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};sp.prototype.contains=function(e){return u(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};sp.prototype.get=function(e){return this._runtimeAnimations[e]};var $L=[];function Eke(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}sp.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&J.equals(e.time,this._previousTime))return!1;this._previousTime=J.clone(e.time,this._previousTime);let i=!1,o=e.time,r=this._model;for(let s=0;s<n;++s){let a=t[s];u(a._computedStartTime)||(a._computedStartTime=J.addSeconds(y(a.startTime,o),a.delay,new J)),u(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,l=a._duration,f=a.stopTime,d=J.lessThanOrEquals(c,o),p=u(f)&&J.greaterThan(o,f),g=0;if(l!==0){let b=J.secondsDifference(p?f:o,c);g=u(a._animationTime)?a._animationTime(l,b):b/l}let m=a.loop===Wl.REPEAT||a.loop===Wl.MIRRORED_REPEAT,x=(d||m&&!u(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===Dh.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===Dh.ANIMATING){if(x&&a._state===Dh.STOPPED&&(a._state=Dh.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Wl.REPEAT)g=g-Math.floor(g);else if(a.loop===Wl.MIRRORED_REPEAT){let T=Math.floor(g),A=g-T;g=T%2===1?1-A:A}a.reverse&&(g=1-g);let b=g*l*a.multiplier;b=P.clamp(b,a.localStartTime,a.localStopTime),a.animate(b),a.update.numberOfListeners>0&&(a._updateEventTime=b,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=Dh.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&$L.push(a))}}n=$L.length;for(let s=0;s<n;++s){let a=$L[s];t.splice(t.indexOf(a),1),e.afterRender.push(Eke(this,r,a))}return $L.length=0,i};var QL=sp;function M0(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(M0.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return u(this._color)||(this._color=new z),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});M0.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};M0.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};M0.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};M0.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};M0.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var JL=M0;var bw={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};bw.getStyleCommandsNeeded=function(e,t){return t===0?bw.ALL_OPAQUE:t===e?bw.ALL_TRANSLUCENT:bw.OPAQUE_AND_TRANSLUCENT};var Ih=Object.freeze(bw);var eg={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};eg.is3DTiles=function(e){switch(e){case eg.TILE_GLTF:case eg.TILE_B3DM:case eg.TILE_I3DM:case eg.TILE_PNTS:case eg.TILE_GEOJSON:return!0;case eg.GLTF:return!1}};var lr=Object.freeze(eg);function yr(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=Ih.ALL_OPAQUE,Ske(this)}Object.defineProperties(yr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return u(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function Ske(e){let t=e._model,n=lr.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let o,r=new Array(i);if(n){let s=t.content;for(o=0;o<i;o++)r[o]=new Ms(s,o)}else for(o=0;o<i;o++)r[o]=new JL({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Jc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}yr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=Ih.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};yr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};yr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};yr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};yr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};yr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};yr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};yr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};yr.prototype.getFeature=function(e){return this._features[e]};yr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};yr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};yr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};yr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};yr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};yr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};yr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};yr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};yr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var wke=new z;yr.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(Jc.DEFAULT_COLOR_VALUE),this.setAllShow(Jc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=u(e.color)?y(e.color.evaluateColor(n,wke),Jc.DEFAULT_COLOR_VALUE):Jc.DEFAULT_COLOR_VALUE,o=u(e.show)?y(e.show.evaluate(n),Jc.DEFAULT_SHOW_VALUE):Jc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};yr.prototype.isDestroyed=function(){return!1};yr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),le(this)};var eN=yr;var tN=`czm_modelMaterial defaultModelMaterial()
- {
- czm_modelMaterial material;
- material.diffuse = vec3(0.0);
- material.specular = vec3(1.0);
- material.roughness = 1.0;
- material.occlusion = 1.0;
- material.normalEC = vec3(0.0, 0.0, 1.0);
- material.emissive = vec3(0.0);
- material.alpha = 1.0;
- return material;
- }
- vec4 handleAlpha(vec3 color, float alpha)
- {
- #ifdef ALPHA_MODE_MASK
- if (alpha < u_alphaCutoff) {
- discard;
- }
- #endif
- return vec4(color, alpha);
- }
- SelectedFeature selectedFeature;
- void main()
- {
- #ifdef HAS_MODEL_SPLITTER
- modelSplitterStage();
- #endif
- czm_modelMaterial material = defaultModelMaterial();
- ProcessedAttributes attributes;
- geometryStage(attributes);
- FeatureIds featureIds;
- featureIdStage(featureIds, attributes);
- Metadata metadata;
- MetadataClass metadataClass;
- MetadataStatistics metadataStatistics;
- metadataStage(metadata, metadataClass, metadataStatistics, attributes);
- #ifdef HAS_SELECTED_FEATURE_ID
- selectedFeatureIdStage(selectedFeature, featureIds);
- #endif
- #ifndef CUSTOM_SHADER_REPLACE_MATERIAL
- materialStage(material, attributes, selectedFeature);
- #endif
- #ifdef HAS_CUSTOM_FRAGMENT_SHADER
- customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics);
- #endif
- lightingStage(material, attributes);
- #ifdef HAS_SELECTED_FEATURE_ID
- cpuStylingStage(material, selectedFeature);
- #endif
- #ifdef HAS_MODEL_COLOR
- modelColorStage(material);
- #endif
- #ifdef HAS_PRIMITIVE_OUTLINE
- primitiveOutlineStage(material);
- #endif
- vec4 color = handleAlpha(material.diffuse, material.alpha);
- #ifdef HAS_CLIPPING_PLANES
- modelClippingPlanesStage(color);
- #endif
- #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS)
- silhouetteStage(color);
- #endif
- out_FragColor = color;
- }
- `;var nN=`precision highp float;
- czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) {
- czm_modelVertexOutput vsOutput;
- vsOutput.positionMC = positionMC;
- vsOutput.pointSize = 1.0;
- return vsOutput;
- }
- void main()
- {
- // Initialize the attributes struct with all
- // attributes except quantized ones.
- ProcessedAttributes attributes;
- initializeAttributes(attributes);
- // Dequantize the quantized ones and add them to the
- // attributes struct.
- #ifdef USE_DEQUANTIZATION
- dequantizationStage(attributes);
- #endif
- #ifdef HAS_MORPH_TARGETS
- morphTargetsStage(attributes);
- #endif
- #ifdef HAS_SKINNING
- skinningStage(attributes);
- #endif
- #ifdef HAS_PRIMITIVE_OUTLINE
- primitiveOutlineStage();
- #endif
- // Compute the bitangent according to the formula in the glTF spec.
- // Normal and tangents can be affected by morphing and skinning, so
- // the bitangent should not be computed until their values are finalized.
- #ifdef HAS_BITANGENTS
- attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC);
- #endif
- FeatureIds featureIds;
- featureIdStage(featureIds, attributes);
- #ifdef HAS_SELECTED_FEATURE_ID
- SelectedFeature feature;
- selectedFeatureIdStage(feature, featureIds);
- // Handle any show properties that come from the style.
- cpuStylingStage(attributes.positionMC, feature);
- #endif
- #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING)
- // The scene mode 2D pipeline stage and instancing stage add a different
- // model view matrix to accurately project the model to 2D. However, the
- // output positions and normals should be transformed by the 3D matrices
- // to keep the data the same for the fragment shader.
- mat4 modelView = czm_modelView3D;
- mat3 normal = czm_normal3D;
- #else
- // These are used for individual model projection because they will
- // automatically change based on the scene mode.
- mat4 modelView = czm_modelView;
- mat3 normal = czm_normal;
- #endif
- // Update the position for this instance in place
- #ifdef HAS_INSTANCING
- // The legacy instance stage is used when rendering i3dm models that
- // encode instances transforms in world space, as opposed to glTF models
- // that use EXT_mesh_gpu_instancing, where instance transforms are encoded
- // in object space.
- #ifdef USE_LEGACY_INSTANCING
- mat4 instanceModelView;
- mat3 instanceModelViewInverseTranspose;
-
- legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose);
- modelView = instanceModelView;
- normal = instanceModelViewInverseTranspose;
- #else
- instancingStage(attributes);
- #endif
- #ifdef USE_PICKING
- v_pickColor = a_pickColor;
- #endif
- #endif
- Metadata metadata;
- MetadataClass metadataClass;
- MetadataStatistics metadataStatistics;
- metadataStage(metadata, metadataClass, metadataStatistics, attributes);
- #ifdef HAS_CUSTOM_VERTEX_SHADER
- czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC);
- customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics);
- #endif
- // Compute the final position in each coordinate system needed.
- // This returns the value that will be assigned to gl_Position.
- vec4 positionClip = geometryStage(attributes, modelView, normal);
- #ifdef HAS_SILHOUETTE
- silhouetteStage(attributes, positionClip);
- #endif
- #ifdef HAS_POINT_CLOUD_SHOW_STYLE
- float show = pointCloudShowStylingStage(attributes, metadata);
- #else
- float show = 1.0;
- #endif
- #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING
- show *= pointCloudBackFaceCullingStage();
- #endif
- #ifdef HAS_POINT_CLOUD_COLOR_STYLE
- v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata);
- #endif
- #ifdef PRIMITIVE_TYPE_POINTS
- #ifdef HAS_CUSTOM_VERTEX_SHADER
- gl_PointSize = vsOutput.pointSize;
- #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION)
- gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata);
- #else
- gl_PointSize = 1.0;
- #endif
- gl_PointSize *= show;
- #endif
- gl_Position = show * positionClip;
- }
- `;function JG(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==Un.CESIUM_3D_TILE,this._classifies3DTiles=o!==Un.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],Pke(this)}function vke(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:e,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:uc.LESS_OR_EQUAL},depthMask:!1}}var Dke={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},Ike={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Lt.CLASSIFICATION_MASK},stencilMask:Lt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},lne=[];function Pke(e){let t=e._command,n=lne;if(e._useDebugWireframe){t.pass=Ee.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=Tw(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=Ee.TERRAIN_CLASSIFICATION,s=QG(t,r),a=ane(t,r);n.length=0,n.push(s,a),e._commandListTerrain=Tw(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=cne(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=Ee.CESIUM_3D_TILE_CLASSIFICATION,s=QG(t,r),a=ane(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=Tw(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=cne(e,n,e._commandList3DTilesPicking))}}function Tw(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let l=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=et.shallowClone(p);g.count=l,g.offset=f,n.push(g)}}return n}function QG(e,t){let n=et.shallowClone(e);n.cull=!1,n.pass=t;let i=t===Ee.TERRAIN_CLASSIFICATION?Vn.ALWAYS:Vn.EQUAL,o=vke(i);return n.renderState=Ve.fromCache(o),n}function ane(e,t){let n=et.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(Dke),n}var Oke=[];function cne(e,t,n){let i=Ve.fromCache(Ike),o=t[0],r=t[1],s=et.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=et.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=Oke;return c.length=0,c.push(s,a),Tw(e,c,n)}Object.defineProperties(JG.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=L.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=se.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});JG.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=QG(this._command,o),s=lne;s.length=0,s.push(r),this._commandListIgnoreShow=Tw(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var iN=JG;function oN(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o;let r=t.pass===Ee.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,l=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=L.clone(t.modelMatrix),this._boundingVolume=se.clone(t.boundingVolume),this._modelMatrix2D=new L,this._boundingVolume2D=new se,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=l,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,Rke(this)}function ap(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}ap.clone=function(e){return new ap({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function Rke(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;e._originalCommand=new ap({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new ap({command:Uke(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new ap({command:jke(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new ap({command:qke(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new ap({command:Vke(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new ap({command:zke(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(oN.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=L.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=se.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,Lke(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,Nke(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,Fke(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,Bke(this))}}});function Mke(e,t){let n=e._modelMatrix;e._modelMatrix2D=L.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=se.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function Lke(e){let t=e.shadows,n=gn.castShadows(t),i=gn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function Nke(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=Ge(r.renderState,!0);s.cull.enabled=t,r.renderState=Ve.fromCache(s)}}}function Fke(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=Ge(r.renderState,!0);s.cull.face=t,r.renderState=Ve.fromCache(s)}}}function Bke(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}oN.prototype.pushCommands=function(e,t){let n=une(this,e);n&&!this._has2DCommands&&(kke(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(Mke(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&u(i)&&(i!==Ih.ALL_OPAQUE&&$T(t,this._translucentCommand,n),i===Ih.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||$T(o._backfaceCommands,this._skipLodBackfaceCommand,n),Hke(this,r,n),$T(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){$T(t,this._silhouetteModelCommand,n);return}return $T(t,this._originalCommand,n),t}};oN.prototype.pushSilhouetteCommands=function(e,t){let n=une(this,e);return $T(t,this._silhouetteColorCommand,n),t};function $T(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function une(e,t){if(t.mode!==te.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*P.PI;return o<s&&r>s||o<-s&&r>-s}function ZT(e,t){if(!u(t))return;let n=ap.clone(t),i=et.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function kke(e){ZT(e,e._originalCommand),ZT(e,e._translucentCommand),ZT(e,e._skipLodBackfaceCommand),ZT(e,e._skipLodStencilCommand),ZT(e,e._silhouetteModelCommand),ZT(e,e._silhouetteColorCommand)}function Uke(e){let t=et.shallowClone(e);t.pass=Ee.TRANSLUCENT;let n=Ge(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=Ve.fromCache(n),t}function Vke(e,t){let n=t._silhouetteId%255,i=et.shallowClone(e),o=Ge(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:ee.ALWAYS,backFunction:ee.ALWAYS,reference:n,mask:-1,frontOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.REPLACE},backOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(o),i}function zke(e,t){let n=t._silhouetteId%255,i=et.shallowClone(e),o=Ge(e.renderState,!0);o.cull.enabled=!1,(e.pass===Ee.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=Ee.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:ee.NOTEQUAL,backFunction:ee.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.KEEP},backOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.KEEP}};let s=Ge(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ve.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function Hke(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=Gke(o);if(r!==s){let a=Wke(r),c=Ge(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function Gke(e){return(e.renderState.stencilTest.reference&Lt.SKIP_LOD_MASK)>>>Lt.SKIP_LOD_BIT_SHIFT}function Wke(e){return Lt.CESIUM_3D_TILE_MASK|e<<Lt.SKIP_LOD_BIT_SHIFT}function jke(e){let t=et.shallowClone(e),n=Ge(e.renderState,!0);n.cull.enabled=!0,n.cull.face=gi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=Ge(t.uniformMap),o=new V(5,5);return i.u_polygonOffset=function(){return o},t.renderState=Ve.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function qke(e){let t=et.shallowClone(e),n=Ge(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Lt.SKIP_LOD_MASK,i.reference=Lt.CESIUM_3D_TILE_MASK,i.frontFunction=Vn.GREATER_OR_EQUAL,i.frontOperation.zPass=ft.REPLACE,i.backFunction=Vn.GREATER_OR_EQUAL,i.backOperation.zPass=ft.REPLACE,n.stencilMask=Lt.CESIUM_3D_TILE_MASK|Lt.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var rN=oN;function Yke(e,t){let n=e.shaderBuilder;n.addVertexLines(nN),n.addFragmentLines(tN);let i=Xke(e),o=new ti({context:t.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=n.buildShaderProgram(t.context);r._pipelineResources.push(s);let a=e.alphaOptions.pass,c=r.sceneGraph,l=t.mode===te.SCENE3D,f,d;if(!l&&!t.scene3DOnly&&r._projectTo2D)f=L.multiplyTransformation(c._computedModelMatrix,e.runtimeNode.computedTransform,new L),d=e.runtimePrimitive.boundingSphere2D;else{let A=l?c._computedModelMatrix:c._computedModelMatrix2D;f=L.multiplyTransformation(A,e.runtimeNode.computedTransform,new L),d=se.transform(e.boundingSphere,f,e.boundingSphere)}let p=Ge(Ve.fromCache(e.renderStateOptions),!0);p.cull.face=en.getCullFace(f,e.primitiveType),p=Ve.fromCache(p);let g=u(r.classificationType),m=g?!1:gn.castShadows(r.shadows),x=g?!1:gn.receiveShadows(r.shadows),b=g?void 0:e.pickId,T=new et({boundingVolume:d,modelMatrix:f,uniformMap:e.uniformMap,renderState:p,vertexArray:o,shaderProgram:s,cull:r.cull,pass:a,count:e.count,owner:r,pickId:b,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:m,receiveShadows:x});return g?new iN({primitiveRenderResources:e,command:T}):new rN({primitiveRenderResources:e,command:T})}function Xke(e){let t=e.wireframeIndexBuffer;if(u(t))return t;let n=e.indices;if(u(n))return n.buffer}var sN=Yke;var fne={name:"TilesetPipelineStage"};fne.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,Ce.FRAGMENT);let r={u_polygonOffset:function(){return V.ZERO}};e.uniformMap=gt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Lt.setCesium3DTileBit(),i.stencilMask=Lt.CESIUM_3D_TILE_MASK};var aN=fne;var cN=`vec3 proceduralIBL(
- vec3 positionEC,
- vec3 normalEC,
- vec3 lightDirectionEC,
- vec3 lightColorHdr,
- czm_pbrParameters pbrParameters
- ) {
- vec3 v = -positionEC;
- vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0));
- vec3 vWC = -normalize(positionWC);
- vec3 l = normalize(lightDirectionEC);
- vec3 n = normalEC;
- vec3 r = normalize(czm_inverseViewRotation * normalize(reflect(v, n)));
- float NdotL = clamp(dot(n, l), 0.001, 1.0);
- float NdotV = abs(dot(n, v)) + 0.001;
- // Figure out if the reflection vector hits the ellipsoid
- float vertexRadius = length(positionWC);
- float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / vertexRadius);
- float reflectionDotNadir = dot(r, normalize(positionWC));
- // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.
- r.x = -r.x;
- r = -normalize(czm_temeToPseudoFixed * r);
- r.x = -r.x;
- vec3 diffuseColor = pbrParameters.diffuseColor;
- float roughness = pbrParameters.roughness;
- vec3 specularColor = pbrParameters.f0;
- float inverseRoughness = 1.04 - roughness;
- inverseRoughness *= inverseRoughness;
- vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, r).rgb * inverseRoughness;
- float atmosphereHeight = 0.05;
- float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - horizonDotNadir);
- float blendRegionOffset = roughness * -1.0;
- float farAboveHorizon = clamp(horizonDotNadir - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999);
- float aroundHorizon = clamp(horizonDotNadir + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999);
- float farBelowHorizon = clamp(horizonDotNadir + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999);
- float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir);
- vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), smoothstepHeight);
- vec3 nadirColor = belowHorizonColor * 0.5;
- vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5);
- vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, reflectionDotNadir * inverseRoughness * 0.5 + 0.75);
- vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, smoothstepHeight);
- vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9);
- float diffuseIrradianceFromEarth = (1.0 - horizonDotNadir) * (reflectionDotNadir * 0.25 + 0.75) * smoothstepHeight;
- float diffuseIrradianceFromSky = (1.0 - smoothstepHeight) * (1.0 - (reflectionDotNadir * 0.25 + 0.25));
- vec3 diffuseIrradiance = blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0);
- float notDistantRough = (1.0 - horizonDotNadir * roughness * 0.8);
- vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, reflectionDotNadir) * notDistantRough);
- specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, reflectionDotNadir) * inverseRoughness);
- specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, reflectionDotNadir) * inverseRoughness);
-
- #ifdef USE_SUN_LUMINANCE
-
- float LdotZenith = clamp(dot(normalize(czm_inverseViewRotation * l), vWC), 0.001, 1.0);
- float S = acos(LdotZenith);
-
- float NdotZenith = clamp(dot(normalize(czm_inverseViewRotation * n), vWC), 0.001, 1.0);
-
- float gamma = acos(NdotL);
- float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * pow(NdotL, 2.0)) * (1.0 - exp(-0.32 / NdotZenith)));
- float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * pow(LdotZenith,2.0)) * (1.0 - exp(-0.32));
- float luminance = model_luminanceAtZenith * (numerator / denominator);
- #endif
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
- vec3 iblColor = (diffuseIrradiance * diffuseColor * model_iblFactor.x) + (specularIrradiance * czm_srgbToLinear(specularColor * brdfLut.x + brdfLut.y) * model_iblFactor.y);
- float maximumComponent = max(max(lightColorHdr.x, lightColorHdr.y), lightColorHdr.z);
- vec3 lightColor = lightColorHdr / max(maximumComponent, 1.0);
- iblColor *= lightColor;
- #ifdef USE_SUN_LUMINANCE
- iblColor *= luminance;
- #endif
- return iblColor;
- }
- #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
- vec3 textureIBL(
- vec3 positionEC,
- vec3 normalEC,
- vec3 lightDirectionEC,
- czm_pbrParameters pbrParameters
- ) {
- vec3 diffuseColor = pbrParameters.diffuseColor;
- float roughness = pbrParameters.roughness;
- vec3 specularColor = pbrParameters.f0;
- vec3 v = -positionEC;
- vec3 n = normalEC;
- vec3 l = normalize(lightDirectionEC);
- vec3 h = normalize(v + l);
- float NdotV = abs(dot(n, v)) + 0.001;
- float VdotH = clamp(dot(v, h), 0.0, 1.0);
- const mat3 yUpToZUp = mat3(
- -1.0, 0.0, 0.0,
- 0.0, 0.0, -1.0,
- 0.0, 1.0, 0.0
- );
- vec3 cubeDir = normalize(yUpToZUp * model_iblReferenceFrameMatrix * normalize(reflect(-v, n)));
- #ifdef DIFFUSE_IBL
- #ifdef CUSTOM_SPHERICAL_HARMONICS
- vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients);
- #else
- vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients);
- #endif
- #else
- vec3 diffuseIrradiance = vec3(0.0);
- #endif
- #ifdef SPECULAR_IBL
- vec3 r0 = specularColor.rgb;
- float reflectance = max(max(r0.r, r0.g), r0.b);
- vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));
- vec3 F = fresnelSchlick2(r0, r90, VdotH);
-
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
- #ifdef CUSTOM_SPECULAR_IBL
- vec3 specularIBL = czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, roughness * model_specularEnvironmentMapsMaximumLOD, model_specularEnvironmentMapsMaximumLOD);
- #else
- vec3 specularIBL = czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, roughness * czm_specularEnvironmentMapsMaximumLOD, czm_specularEnvironmentMapsMaximumLOD);
- #endif
- specularIBL *= F * brdfLut.x + brdfLut.y;
- #else
- vec3 specularIBL = vec3(0.0);
- #endif
- return diffuseColor * diffuseIrradiance + specularColor * specularIBL;
- }
- #endif
- vec3 imageBasedLightingStage(
- vec3 positionEC,
- vec3 normalEC,
- vec3 lightDirectionEC,
- vec3 lightColorHdr,
- czm_pbrParameters pbrParameters
- ) {
- #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
-
- return textureIBL(
- positionEC,
- normalEC,
- lightDirectionEC,
- pbrParameters
- );
- #else
-
- return proceduralIBL(
- positionEC,
- normalEC,
- lightDirectionEC,
- lightColorHdr,
- pbrParameters
- );
- #endif
- }`;var dne={name:"ImageBasedLightingPipelineStage"};dne.process=function(e,t,n){let i=t.imageBasedLighting,o=e.shaderBuilder;o.addDefine("USE_IBL_LIGHTING",void 0,Ce.FRAGMENT),o.addUniform("vec2","model_iblFactor",Ce.FRAGMENT),yh.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&o.addUniform("mat3","model_iblReferenceFrameMatrix",Ce.FRAGMENT),u(i.sphericalHarmonicCoefficients)?(o.addDefine("DIFFUSE_IBL",void 0,Ce.FRAGMENT),o.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,Ce.FRAGMENT),o.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",Ce.FRAGMENT)):i.useDefaultSphericalHarmonics&&o.addDefine("DIFFUSE_IBL",void 0,Ce.FRAGMENT),u(i.specularEnvironmentMapAtlas)&&i.specularEnvironmentMapAtlas.ready?(o.addDefine("SPECULAR_IBL",void 0,Ce.FRAGMENT),o.addDefine("CUSTOM_SPECULAR_IBL",void 0,Ce.FRAGMENT),o.addUniform("sampler2D","model_specularEnvironmentMaps",Ce.FRAGMENT),o.addUniform("vec2","model_specularEnvironmentMapsSize",Ce.FRAGMENT),o.addUniform("float","model_specularEnvironmentMapsMaximumLOD",Ce.FRAGMENT)):t.useDefaultSpecularMaps&&o.addDefine("SPECULAR_IBL",void 0,Ce.FRAGMENT)),u(i.luminanceAtZenith)&&(o.addDefine("USE_SUN_LUMINANCE",void 0,Ce.FRAGMENT),o.addUniform("float","model_luminanceAtZenith",Ce.FRAGMENT)),o.addFragmentLines(cN);let r={model_iblFactor:function(){return i.imageBasedLightingFactor},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_luminanceAtZenith:function(){return i.luminanceAtZenith},model_sphericalHarmonicCoefficients:function(){return i.sphericalHarmonicCoefficients},model_specularEnvironmentMaps:function(){return i.specularEnvironmentMapAtlas.texture},model_specularEnvironmentMapsSize:function(){return i.specularEnvironmentMapAtlas.texture.dimensions},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentMapAtlas.maximumMipmapLevel}};e.uniformMap=gt(r,e.uniformMap)};var lN=dne;var Kke=P.EPSILON16;function t6(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(t6.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,Kke)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var Zke=new h,e6=new $;t6.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=Zke,o;switch(t){case yc.XROTATE:o=$.fromRotationX(P.toRadians(n),e6),e=L.multiplyByMatrix3(e,o,e);break;case yc.YROTATE:o=$.fromRotationY(P.toRadians(n),e6),e=L.multiplyByMatrix3(e,o,e);break;case yc.ZROTATE:o=$.fromRotationZ(P.toRadians(n),e6),e=L.multiplyByMatrix3(e,o,e);break;case yc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=L.multiplyByTranslation(e,i,e);break;case yc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=L.multiplyByTranslation(e,i,e);break;case yc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=L.multiplyByTranslation(e,i,e);break;case yc.XSCALE:i.x=n,i.y=1,i.z=1,e=L.multiplyByScale(e,i,e);break;case yc.YSCALE:i.x=1,i.y=n,i.z=1,e=L.multiplyByScale(e,i,e);break;case yc.ZSCALE:i.x=1,i.y=1,i.z=n,e=L.multiplyByScale(e,i,e);break;case yc.UNIFORMSCALE:e=L.multiplyByUniformScale(e,n,e);break;default:break}return e};var uN=t6;function fN(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,$ke(this)}Object.defineProperties(fN.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function $ke(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new uN({stage:a,runtimeArticulation:e});o.push(c);let l=a.name;r[l]=c}}fN.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];u(n)&&(n.currentValue=t)};var Qke=new L,Jke=new L;fN.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=L.clone(L.IDENTITY,Qke),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let o=this._runtimeNodes,r=o.length;for(t=0;t<r;t++){let s=o[t],a=L.multiplyTransformation(s.originalTransform,e,Jke);s.transform=a}};var dN=fN;var hN=`void modelColorStage(inout czm_modelMaterial material)
- {
- material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend);
- float highlight = ceil(model_colorBlend);
- material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight);
- material.alpha *= model_color.a;
- }`;var QT={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};QT.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,Ce.FRAGMENT),i.addFragmentLines(hN);let o={},r=t.color;r.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),r.alpha<1&&(e.alphaOptions.pass=Ee.TRANSLUCENT),i.addUniform("vec4",QT.COLOR_UNIFORM_NAME,Ce.FRAGMENT),o[QT.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",QT.COLOR_BLEND_UNIFORM_NAME,Ce.FRAGMENT),o[QT.COLOR_BLEND_UNIFORM_NAME]=function(){return gc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=gt(o,e.uniformMap)};var L0=QT;var mN=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE
- vec4 getClippingPlane(
- highp sampler2D packedClippingPlanes,
- int clippingPlaneNumber,
- mat4 transform
- ) {
- int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH;
- int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH);
- float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH);
- float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT);
- float u = (float(pixX) + 0.5) * pixelWidth;
- float v = (float(pixY) + 0.5) * pixelHeight;
- vec4 plane = texture(packedClippingPlanes, vec2(u, v));
- return czm_transformPlane(plane, transform);
- }
- #else
- vec4 getClippingPlane(
- highp sampler2D packedClippingPlanes,
- int clippingPlaneNumber,
- mat4 transform
- ) {
- int clippingPlaneStartIndex = clippingPlaneNumber * 2;
- int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH;
- int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH);
- float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH);
- float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT);
- float u = (float(pixX) + 0.5) * pixelWidth;
- float v = (float(pixY) + 0.5) * pixelHeight;
- vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0;
- vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w);
- vec4 plane;
- plane.xyz = czm_octDecode(oct, 65535.0);
- plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v)));
- return czm_transformPlane(plane, transform);
- }
- #endif
- float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) {
- vec4 position = czm_windowToEyeCoordinates(fragCoord);
- vec3 clipNormal = vec3(0.0);
- vec3 clipPosition = vec3(0.0);
- float pixelWidth = czm_metersPerPixel(position);
-
- #ifdef UNION_CLIPPING_REGIONS
- float clipAmount;
- #else
- float clipAmount = 0.0;
- bool clipped = true;
- #endif
- for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) {
- vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
- clipNormal = clippingPlane.xyz;
- clipPosition = -clippingPlane.w * clipNormal;
- float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
-
- #ifdef UNION_CLIPPING_REGIONS
- clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount));
- if (amount <= 0.0) {
- discard;
- }
- #else
- clipAmount = max(amount, clipAmount);
- clipped = clipped && (amount <= 0.0);
- #endif
- }
- #ifndef UNION_CLIPPING_REGIONS
- if (clipped) {
- discard;
- }
- #endif
-
- return clipAmount;
- }
- void modelClippingPlanesStage(inout vec4 color)
- {
- float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix);
- vec4 clippingPlanesEdgeColor = vec4(1.0);
- clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb;
- float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a;
-
- if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) {
- color = clippingPlanesEdgeColor;
- }
- }
- `;var hne={name:"ModelClippingPlanesPipelineStage"},eUe=new V;hne.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,Ce.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,Ce.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,Ce.FRAGMENT),xs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Ce.FRAGMENT);let s=xs.getTextureResolution(i,o,eUe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Ce.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Ce.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",Ce.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",Ce.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",Ce.FRAGMENT),r.addFragmentLines(mN);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=z.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=gt(a,e.uniformMap)};var pN=hne;function mne(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(mne.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){u(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var _N=mne;var gN=`mat4 getInstancingTransform()
- {
- mat4 instancingTransform;
- #ifdef HAS_INSTANCE_MATRICES
- instancingTransform = mat4(
- a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0,
- a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0,
- a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0,
- a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0
- );
- #else
- vec3 translation = vec3(0.0, 0.0, 0.0);
- vec3 scale = vec3(1.0, 1.0, 1.0);
-
- #ifdef HAS_INSTANCE_TRANSLATION
- translation = a_instanceTranslation;
- #endif
- #ifdef HAS_INSTANCE_SCALE
- scale = a_instanceScale;
- #endif
- instancingTransform = mat4(
- scale.x, 0.0, 0.0, 0.0,
- 0.0, scale.y, 0.0, 0.0,
- 0.0, 0.0, scale.z, 0.0,
- translation.x, translation.y, translation.z, 1.0
- );
- #endif
- return instancingTransform;
- }
- #ifdef USE_2D_INSTANCING
- mat4 getInstancingTransform2D()
- {
- mat4 instancingTransform2D;
- #ifdef HAS_INSTANCE_MATRICES
- instancingTransform2D = mat4(
- a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0,
- a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0,
- a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0,
- a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0
- );
- #else
- vec3 translation2D = vec3(0.0, 0.0, 0.0);
- vec3 scale = vec3(1.0, 1.0, 1.0);
-
- #ifdef HAS_INSTANCE_TRANSLATION
- translation2D = a_instanceTranslation2D;
- #endif
- #ifdef HAS_INSTANCE_SCALE
- scale = a_instanceScale;
- #endif
- instancingTransform2D = mat4(
- scale.x, 0.0, 0.0, 0.0,
- 0.0, scale.y, 0.0, 0.0,
- 0.0, 0.0, scale.z, 0.0,
- translation2D.x, translation2D.y, translation2D.z, 1.0
- );
- #endif
- return instancingTransform2D;
- }
- #endif
- `;var yN=`void instancingStage(inout ProcessedAttributes attributes)
- {
- vec3 positionMC = attributes.positionMC;
-
- mat4 instancingTransform = getInstancingTransform();
-
- attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz;
- #ifdef HAS_NORMALS
- vec3 normalMC = attributes.normalMC;
- attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz;
- #endif
- #ifdef USE_2D_INSTANCING
- mat4 instancingTransform2D = getInstancingTransform2D();
- attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz;
- #endif
- }
- `;var xN=`void legacyInstancingStage(
- inout ProcessedAttributes attributes,
- out mat4 instanceModelView,
- out mat3 instanceModelViewInverseTranspose)
- {
- vec3 positionMC = attributes.positionMC;
- mat4 instancingTransform = getInstancingTransform();
-
- mat4 instanceModel = instancingTransform * u_instance_nodeTransform;
- instanceModelView = u_instance_modifiedModelView;
- instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel);
- attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz;
-
- #ifdef USE_2D_INSTANCING
- mat4 instancingTransform2D = getInstancingTransform2D();
- attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz;
- #endif
- }
- `;var bN=new L,tUe=new L,nUe=new L,_ne={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Tne,_transformsToTypedArray:i6};_ne.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(gN);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,l=n.mode!==te.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=[];gUe(e,n,i,f,l),bUe(e,n,i,f);let d={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,Ce.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",Ce.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",Ce.VERTEX),d.u_instance_modifiedModelView=function(){let p=L.multiplyTransformation(s.modelMatrix,a.components.transform,bN);return l?L.multiplyTransformation(n.context.uniformState.view3D,p,bN):(n.mode!==te.SCENE3D&&(p=Rt.basisTo2D(n.mapProjection,p,bN)),L.multiplyTransformation(n.context.uniformState.view,p,bN))},d.u_instance_nodeTransform=function(){return L.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,tUe)},r.addVertexLines(xN)):r.addVertexLines(yN),l){r.addDefine("USE_2D_INSTANCING",void 0,Ce.VERTEX),r.addUniform("mat4","u_modelView2D",Ce.VERTEX);let p=n.context,g=L.fromTranslation(c.instancingReferencePoint2D,new L);d.u_modelView2D=function(){return L.multiplyTransformation(p.uniformState.view,g,nUe)}}e.uniformMap=gt(d,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,f)};var Aw=new L,iUe=new h;function oUe(e,t,n,i,o){let r=L.multiplyTransformation(t,e,Aw);return r=L.multiplyTransformation(r,n,Aw),o=Rt.basisTo2D(i.mapProjection,r,o),o}function rUe(e,t,n,i,o){let r=L.fromTranslation(e,Aw),s=L.multiplyTransformation(t,r,Aw);s=L.multiplyTransformation(s,n,Aw);let a=L.getTranslation(s,iUe);return o=$i.computeActualWgs84Position(i,a,o),o}function gne(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=L.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=L.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=L.clone(o.computedModelMatrix,t),t=L.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=L.clone(L.IDENTITY,n))}var yne=new L,xne=new L,sUe=new L,aUe=new h;function cUe(e,t,n,i){let o=yne,r=xne;gne(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=oUe(f,o,r,n,sUe),p=L.getTranslation(d,aUe),g=h.subtract(p,a,p);i[l]=L.setTranslation(d,g,i[l])}return i}function lUe(e,t,n,i){let o=yne,r=xne;gne(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=rUe(f,o,r,n,f);i[l]=h.subtract(d,a,i[l])}return i}var uUe=new h,fUe=new h;function bne(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=L.multiplyByPoint(i,n.instancingTranslationMin,uUe),r=$i.computeActualWgs84Position(t,o,o),s=L.multiplyByPoint(i,n.instancingTranslationMax,fUe),a=$i.computeActualWgs84Position(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function i6(e){let n=e.length,i=new Float32Array(n*12);for(let o=0;o<n;o++){let r=e[o],s=12*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8],i[s+3]=r[12],i[s+4]=r[1],i[s+5]=r[5],i[s+6]=r[9],i[s+7]=r[13],i[s+8]=r[2],i[s+9]=r[6],i[s+10]=r[10],i[s+11]=r[14]}return i}function dUe(e){let n=e.length,i=new Float32Array(n*3);for(let o=0;o<n;o++){let r=e[o],s=3*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8]}return i}var hUe=new h,mUe=new Ne,pUe=new h;function Tne(e,t,n){let i=new Array(t),o=en.getAttributeBySemantic(e,Gr.TRANSLATION),r=en.getAttributeBySemantic(e,Gr.ROTATION),s=en.getAttributeBySemantic(e,Gr.SCALE),a=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),l=u(o),f=u(r),d=u(s),p=l?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=jn.dequantize(g,r.componentDatatype,r.type,t));let m;d?m=s.typedArray:(m=new Float32Array(t*3),m.fill(1));for(let b=0;b<t;b++){let T=new h(p[b*3],p[b*3+1],p[b*3+2],hUe);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let A=new Ne(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,mUe),C=new h(m[b*3],m[b*3+1],m[b*3+2],pUe),S=L.fromTranslationQuaternionRotationScale(T,A,C,new L);i[b]=S}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,l&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function _Ue(e,t,n){let i=new Array(t),o=e.typedArray,r=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let l=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=l,h.minimumByComponent(r,l,r),h.maximumByComponent(s,l,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function o6(e,t){let n=ut.createVertexBuffer({context:t.context,typedArray:e,usage:Be.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function gUe(e,t,n,i,o){let r=en.getAttributeBySemantic(n,Gr.ROTATION);u(r)?yUe(e,n,i,t,o):xUe(e,n,i,t,o)}function yUe(e,t,n,i,o){let r=e.shaderBuilder,s=t.attributes[0].count,a=e.model,c=e.runtimeNode;r.addDefine("HAS_INSTANCE_MATRICES");let l="Transform",f,d=c.instancingTransformsBuffer;if(!u(d)){f=Tne(t,s,e);let x=i6(f);d=o6(x,i),a._modelResources.push(d),c.instancingTransformsBuffer=d}if(pne(e,d,n,l),!o)return;let p=Ge(i);p.mode=te.COLUMBUS_VIEW,bne(e,p);let g=c.instancingTransformsBuffer2D;if(!u(g)){let x=cUe(f,e,p,f),b=i6(x);g=o6(b,i),a._modelResources.push(g),c.instancingTransformsBuffer2D=g}pne(e,g,n,"Transform2D")}function xUe(e,t,n,i,o){let r=e.shaderBuilder,s=e.runtimeNode,a=en.getAttributeBySemantic(t,Gr.TRANSLATION),c=en.getAttributeBySemantic(t,Gr.SCALE);if(u(c)){r.addDefine("HAS_INSTANCE_SCALE");let T="Scale";n6(e,c.buffer,c.byteOffset,c.byteStride,n,T)}if(!u(a))return;let l,f=a.typedArray;u(f)?l=_Ue(a,a.count,e):u(s.instancingTranslationMin)||(s.instancingTranslationMin=a.min,s.instancingTranslationMax=a.max),r.addDefine("HAS_INSTANCE_TRANSLATION");let d="Translation";if(n6(e,a.buffer,a.byteOffset,a.byteStride,n,d),!o)return;let p=Ge(i);p.mode=te.COLUMBUS_VIEW,bne(e,p);let g=s.instancingTranslationBuffer2D;if(!u(g)){let T=lUe(l,e,p,l),A=dUe(T);g=o6(A,i),e.model._modelResources.push(g),s.instancingTranslationBuffer2D=g}n6(e,g,0,void 0,n,"Translation2D")}function pne(e,t,n,i){let r=X.getSizeInBytes(X.FLOAT),s=r*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function n6(e,t,n,i,o,r){o.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${r}`)}function bUe(e,t,n,i){let o=n.attributes,r=e.shaderBuilder;for(let s=0;s<o.length;s++){let a=o[s];a.semantic===Gr.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:rn.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var TN=_ne;var r6={};r6.name="ModelMatrixUpdateStage";r6.update=function(e,t,n){let i=n.mode!==te.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Ane(e,t,o,e.transformToRoot),e._transformDirty=!1}};function Ane(e,t,n,i){let o;i=L.multiplyTransformation(i,e.transform,new L),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let c=e.runtimePrimitives[o].drawCommand;c.modelMatrix=L.multiplyTransformation(n,i,c.modelMatrix),c.cullFace=en.getCullFace(c.modelMatrix,c.primitiveType)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=L.clone(i,a._transformToRoot),Ane(a,t,n,i),a._transformDirty=!1}}var AN=r6;var Cne={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Ene,_countGeneratedBuffers:Sne};Cne.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;Ene(i,o),Sne(i,r)};function Ene(e,t){if(!u(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];u(r.buffer)&&e.addBuffer(r.buffer,!1)}}function Sne(e,t){u(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),u(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),u(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var CN=Cne;function JT(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,o=e.sceneGraph,r=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=o,this._children=r,this._originalTransform=L.clone(n,this._originalTransform),this._transform=L.clone(n,this._transform),this._transformToRoot=L.clone(i,this._transformToRoot),this._computedTransform=new L,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,TUe(this)}Object.defineProperties(JT.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=L.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return u(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;h.equals(n,e)||(t.translation=h.clone(e,t.translation),s6(this,t))}},rotation:{get:function(){return u(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Ne.equals(n,e)||(t.rotation=Ne.clone(e,t.rotation),s6(this,t))}},scale:{get:function(){return u(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;h.equals(n,e)||(t.scale=h.clone(e,t.scale),s6(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function TUe(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=L.multiply(n,t,i);let o=e.node;u(o.matrix)||(e._transformParameters=new _0(o.translation,o.rotation,o.scale)),u(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(u(r)){let c=e.sceneGraph._runtimeArticulations[r];u(c)&&c.runtimeNodes.push(e)}}function s6(e,t){e._transformDirty=!0,e._transform=L.fromTranslationRotationScale(t,e._transform)}JT.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};JT.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,u(e.instances)&&t.push(TN),t.push(CN),n.push(AN)};JT.prototype.updateComputedTransform=function(){this._computedTransform=L.multiply(this._transformToRoot,this._transform,this._computedTransform)};JT.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!u(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){u(t[o])||(t[o]=new L);let r=L.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=L.inverseTransformation(r,t[o]);t[o]=L.multiplyTransformation(s,n[o],t[o])}};var EN=JT;var wne={name:"AlphaPipelineStage"};wne.process=function(e,t,n){let i=e.alphaOptions,o=e.model;i.pass=y(i.pass,o.opaquePass);let r=e.renderStateOptions;i.pass===Ee.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=un.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;u(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,Ce.FRAGMENT),s.addUniform("float","u_alphaCutoff",Ce.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var SN=wne;var vne={name:"BatchTexturePipelineStage"};vne.process=function(e,t,n){let i=e.shaderBuilder,o={},r=e.model,s=r.featureTables[r.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),o.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),o.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),o.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=gt(o,e.uniformMap)};var wN=vne;var Dne={name:"ClassificationPipelineStage"};Dne.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Ce.BOTH);let o=e.runtimePrimitive;u(o.batchLengths)||AUe(t,o)};function AUe(e,t){let n=en.getAttributeBySemantic(e,Tt.POSITION);if(!u(n))throw new ue("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=u(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=en.getAttributeBySemantic(e,Tt.FEATURE_ID,0);if(!u(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let l=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let x=1;x<s;x++){let b=r?i[x]:x,T=c[b];if(T!==p){let A=x-g,C=x;l.push(A),f.push(C),g=C,p=T}}let m=s-g;l.push(m),t.batchLengths=l,t.batchOffsets=f}var vN=Dne;var DN=`void filterByPassType(inout vec3 positionMC, vec4 featureColor)
- {
- bool styleTranslucent = (featureColor.a != 1.0);
-
- if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
- {
-
-
- #ifdef HAS_SILHOUETTE
- positionMC *= float(model_silhouettePass);
- #else
- positionMC *= 0.0;
- #endif
- }
-
- else if (czm_pass != czm_passTranslucent && styleTranslucent)
- {
- positionMC *= 0.0;
- }
- }
- void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature)
- {
- float show = ceil(feature.color.a);
- positionMC *= show;
- #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION)
- filterByPassType(positionMC, feature.color);
- #endif
- }
- `;var IN=`void filterByPassType(vec4 featureColor)
- {
- bool styleTranslucent = (featureColor.a != 1.0);
-
- if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
- {
-
-
- #ifdef HAS_SILHOUETTE
- if(!model_silhouettePass) {
- discard;
- }
- #else
- discard;
- #endif
- }
-
- else if (czm_pass != czm_passTranslucent && styleTranslucent)
- {
- discard;
- }
- }
- void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature)
- {
- vec4 featureColor = feature.color;
- if (featureColor.a == 0.0)
- {
- discard;
- }
-
-
- #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION)
- filterByPassType(featureColor);
- #endif
- featureColor = czm_gammaCorrect(featureColor);
-
- #ifdef HAS_CLASSIFICATION
- material.diffuse = featureColor.rgb * featureColor.a;
- #else
- float highlight = ceil(model_colorBlend);
- material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight);
- #endif
-
- material.alpha *= featureColor.a;
- }
- `;var Ine={name:"CPUStylingPipelineStage"};Ine.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(DN),o.addFragmentLines(IN),o.addDefine("USE_CPU_STYLING",void 0,Ce.BOTH),u(i.color)||(o.addUniform("float",L0.COLOR_BLEND_UNIFORM_NAME,Ce.FRAGMENT),e.uniformMap[L0.COLOR_BLEND_UNIFORM_NAME]=function(){return gc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",Ce.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===Ee.TRANSLUCENT}};var PN=Ine;var Pne={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Pne.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var tg=Object.freeze(Pne);var ON=`void customShaderStage(
- inout czm_modelVertexOutput vsOutput,
- inout ProcessedAttributes attributes,
- FeatureIds featureIds,
- Metadata metadata,
- MetadataClass metadataClass,
- MetadataStatistics metadataStatistics
- ) {
-
-
- VertexInput vsInput;
- initializeInputStruct(vsInput, attributes);
- vsInput.featureIds = featureIds;
- vsInput.metadata = metadata;
- vsInput.metadataClass = metadataClass;
- vsInput.metadataStatistics = metadataStatistics;
- vertexMain(vsInput, vsOutput);
- attributes.positionMC = vsOutput.positionMC;
- }
- `;var RN=`void customShaderStage(
- inout czm_modelMaterial material,
- ProcessedAttributes attributes,
- FeatureIds featureIds,
- Metadata metadata,
- MetadataClass metadataClass,
- MetadataStatistics metadataStatistics
- ) {
-
-
- FragmentInput fsInput;
- initializeInputStruct(fsInput, attributes);
- fsInput.featureIds = featureIds;
- fsInput.metadata = metadata;
- fsInput.metadataClass = metadataClass;
- fsInput.metadataStatistics = metadataStatistics;
- fragmentMain(fsInput, material);
- }
- `;var MN=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) {
- initializeFeatureIds(featureIds, attributes);
- initializeFeatureIdAliases(featureIds);
- }
- `;var LN=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes)
- {
- initializeFeatureIds(featureIds, attributes);
- initializeFeatureIdAliases(featureIds);
- setFeatureIdVaryings();
- }
- `;var Ri={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};Ri.process=function(e,t,n){let i=e.shaderBuilder;CUe(i);let o=e.runtimeNode.node.instances;u(o)&&EUe(e,o,n),SUe(e,t,n),i.addVertexLines(LN),i.addFragmentLines(MN)};function CUe(e){e.addStruct(Ri.STRUCT_ID_FEATURE_IDS_VS,Ri.STRUCT_NAME_FEATURE_IDS,Ce.VERTEX),e.addStruct(Ri.STRUCT_ID_FEATURE_IDS_FS,Ri.STRUCT_NAME_FEATURE_IDS,Ce.FRAGMENT),e.addFunction(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Ri.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Ce.VERTEX),e.addFunction(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Ri.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Ce.FRAGMENT),e.addFunction(Ri.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Ri.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Ce.VERTEX),e.addFunction(Ri.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Ri.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Ce.FRAGMENT),e.addFunction(Ri.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Ri.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,Ce.VERTEX)}function EUe(e,t,n){let i=t.featureIds,o=t.attributes[0].count;for(let r=0;r<i.length;r++){let s=i[r],a=s.positionalLabel;s instanceof Mt.FeatureIdAttribute?wUe(e,s,a):One(e,s,a,o,1,n);let c=s.label;u(c)&&Rne(e,a,c,Ce.BOTH)}}function SUe(e,t,n){let i=t.featureIds,r=en.getAttributeBySemantic(t,Tt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,l=Ce.BOTH;a instanceof Mt.FeatureIdAttribute?vUe(e,a,c):a instanceof Mt.FeatureIdImplicitRange?One(e,a,c,r,void 0,n):(DUe(e,a,c,s,n),l=Ce.FRAGMENT);let f=a.label;u(f)&&Rne(e,c,f,l)}}function wUe(e,t,n){let i=e.shaderBuilder;i.addStructField(Ri.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Ri.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=`a_${r}${o}`,a=`v_${r}${o}`,c=`featureIds.${n} = int(czm_round(${s}));`,l=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[l]),i.addVarying("float",a),i.addFunctionLines(Ri.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function vUe(e,t,n){let i=e.shaderBuilder;i.addStructField(Ri.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Ri.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${r}${o}));`];i.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function One(e,t,n,i,o,r){IUe(e,t,i,o,r);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(Ri.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Ri.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Ri.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function DUe(e,t,n,i,o){let r=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[r]=function(){return y(a.texture,o.context.defaultTexture)};let c=a.channels,l=e.shaderBuilder;l.addStructField(Ri.STRUCT_ID_FEATURE_IDS_FS,"int",n),l.addUniform("sampler2D",r,Ce.FRAGMENT);let f=`v_texCoord_${a.texCoord}`,d=`texture(${r}, ${f}).${c}`,p=`featureIds.${n} = czm_unpackUint(${d});`;l.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[p])}function Rne(e,t,n,i){let o=e.shaderBuilder,r=Ce.includesVertexShader(i);r&&o.addStructField(Ri.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(Ri.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(Ri.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function IUe(e,t,n,i,o){let r=e.model,s,a;if(u(t.repeat)){let l=PUe(t,n);s=ut.createVertexBuffer({context:o.context,typedArray:l,usage:Be.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s);let f=!1;r.statistics.addBuffer(s,f)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function PUe(e,t){let n=e.offset,i=e.repeat,o=new Float32Array(t);for(let r=0;r<t;r++)o[r]=n+Math.floor(r/i);return o}var N0=Ri;var NN=`void metadataStage(
- out Metadata metadata,
- out MetadataClass metadataClass,
- out MetadataStatistics metadataStatistics,
- ProcessedAttributes attributes
- )
- {
- initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
- }
- `;var FN=`void metadataStage(
- out Metadata metadata,
- out MetadataClass metadataClass,
- out MetadataStatistics metadataStatistics,
- ProcessedAttributes attributes
- )
- {
- initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
- setMetadataVaryings();
- }
- `;var xi={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};xi.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=OUe(r.propertyAttributes,t,a),l=MUe(r.propertyTextures,a),f=c.concat(l);NUe(i,f),kUe(i),i.addVertexLines(FN),i.addFragmentLines(NN);for(let d=0;d<c.length;d++){let p=c[d];UUe(e,p)}for(let d=0;d<l.length;d++){let p=l[d];zUe(e,p)}};function OUe(e,t,n){return u(e)?e.flatMap(i=>RUe(i,t,n)):[]}function RUe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=en,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),l=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:m,variableName:x}=o(g);l[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:Ce.BOTH}}return l}function MUe(e,t){return u(e)?e.flatMap(n=>LUe(n,t)):[]}function LUe(e,t){let{sanitizeGlslIdentifier:n}=en,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;a<r.length;a++){let[c,l]=r[a];s[a]={metadataVariable:n(c),property:l,type:l.classProperty.type,glslType:l.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:Ce.FRAGMENT}}return s}function NUe(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:l,propertyStatistics:f}=t[a];n.add(l),u(f)&&c!==Gt.ENUM&&i.add(l)}let o=xi.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=xi.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,l){e.addStruct(a,a,Ce.BOTH);for(let f=0;f<l.length;f++){let{shaderName:d}=l[f],p=l[f].type==="float"?BUe(c):c;e.addStructField(a,p,d)}}}var FUe={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function BUe(e){let t=FUe[e];return u(t)?t:e}function kUe(e){e.addStruct(xi.STRUCT_ID_METADATA_VS,xi.STRUCT_NAME_METADATA,Ce.VERTEX),e.addStruct(xi.STRUCT_ID_METADATA_FS,xi.STRUCT_NAME_METADATA,Ce.FRAGMENT),e.addStruct(xi.STRUCT_ID_METADATA_CLASS_VS,xi.STRUCT_NAME_METADATA_CLASS,Ce.VERTEX),e.addStruct(xi.STRUCT_ID_METADATA_CLASS_FS,xi.STRUCT_NAME_METADATA_CLASS,Ce.FRAGMENT),e.addStruct(xi.STRUCT_ID_METADATA_STATISTICS_VS,xi.STRUCT_NAME_METADATA_STATISTICS,Ce.VERTEX),e.addStruct(xi.STRUCT_ID_METADATA_STATISTICS_FS,xi.STRUCT_NAME_METADATA_STATISTICS,Ce.FRAGMENT),e.addFunction(xi.FUNCTION_ID_INITIALIZE_METADATA_VS,xi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Ce.VERTEX),e.addFunction(xi.FUNCTION_ID_INITIALIZE_METADATA_FS,xi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Ce.FRAGMENT),e.addFunction(xi.FUNCTION_ID_SET_METADATA_VARYINGS,xi.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,Ce.VERTEX)}function UUe(e,t){VUe(e,t),Mne(e.shaderBuilder,t),Lne(e.shaderBuilder,t)}function VUe(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Fne({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:Ce.BOTH,property:o});n.addStructField(xi.STRUCT_ID_METADATA_VS,r,i),n.addStructField(xi.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function zUe(e,t){HUe(e,t),Mne(e.shaderBuilder,t),Lne(e.shaderBuilder,t)}function HUe(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:l,texture:f}=s.textureReader,d=`u_propertyTexture_${l}`;i.hasOwnProperty(d)||(n.addUniform("sampler2D",d,Ce.FRAGMENT),i[d]=()=>f),n.addStructField(xi.STRUCT_ID_METADATA_FS,r,o);let p=`attributes.texCoord_${a}`,g=`texture(${d}, ${p}).${c}`,m=s.unpackInShader(g),x=Fne({valueExpression:m,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:Ce.FRAGMENT,property:s}),b=`metadata.${o} = ${x};`;n.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_FS,[b])}function Mne(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Nne(xi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(xi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Ce.includesVertexShader(r)&&(e.addStructField(xi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Lne(e,t){let{propertyStatistics:n}=t;if(!u(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Gt.ENUM)return;let s=xi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Nne(s,n,a,r),l=`${r}MetadataStatistics`;e.addStructField(xi.STRUCT_ID_METADATA_STATISTICS_FS,l,i),e.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Ce.includesVertexShader(t.shaderDestination)&&(e.addStructField(xi.STRUCT_ID_METADATA_STATISTICS_VS,l,i),e.addFunctionLines(xi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Nne(e,t,n,i){function o(r){let s=t[r.specName];if(u(s))return`${n}.${r.shaderName} = ${i}(${s});`}return u(t)?e.map(o).filter(u):[]}function Fne(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:l}=e;s.addUniform(c,o,l),s.addUniform(c,r,l);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var Qf=xi;var GUe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},F0=Object.freeze(GUe);var Fs={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:It};Fs.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;u(a)&&(e.lightingOptions.lightingModel=a),c===F0.TRANSLUCENT?r.pass=Ee.TRANSLUCENT:c===F0.OPAQUE&&(r.pass=void 0);let l=$Ue(s,t);if(!l.customShaderEnabled)return;if(tVe(i,s,l),l.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Ce.BOTH),u(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Ce.VERTEX),u(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Ce.FRAGMENT);let p=tg.getDefineName(s.mode);i.addDefine(p,void 0,Ce.FRAGMENT)}let f=s.uniforms;for(let p in f)if(f.hasOwnProperty(p)){let g=f[p];i.addUniform(g.type,p)}let d=s.varyings;for(let p in d)if(d.hasOwnProperty(p)){let g=d[p];i.addVarying(g,p)}e.uniformMap=gt(e.uniformMap,s.uniformMap)};function WUe(e){let t={};for(let n=0;n<e.length;n++){let i=en.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var jUe={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},qUe={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function Bne(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=jUe[t],i=qUe[t];if(u(n))return{attributeField:[n,e],value:i}}function YUe(e,t){if(!u(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=kne(t,n,!1),o=Une(t,n,!1),r,s=[],a=[];for(let c in i){if(!i.hasOwnProperty(c))continue;let f=[i[c].glslType,c];s.push(f),r=`vsInput.attributes.${c} = attributes.${c};`,a.push(r)}for(let c=0;c<o.length;c++){let l=o[c],f=Bne(l);if(!u(f))return Fs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${l}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${l} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function XUe(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function KUe(e,t){if(!u(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=kne(t,n,!0),o=Une(t,n,!0),r,s=[],a=[];for(let l in i){if(!i.hasOwnProperty(l))continue;let d=[i[l].glslType,l];s.push(d),r=`fsInput.attributes.${l} = attributes.${l};`,a.push(r)}for(let l=0;l<o.length;l++){let f=o[l],d=Bne(f);if(!u(d))return Fs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${f}, disabling custom fragment shader.`),{enabled:!1};s.push(d.attributeField),r=`fsInput.attributes.${f} = ${d.value};`,a.push(r)}let c=XUe(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var ZUe={positionWC:!0,positionEC:!0};function kne(e,t,n){let i={};for(let o in e){if(!e.hasOwnProperty(o))continue;let r=e[o],s=o;n&&o==="normalMC"?s="normalEC":n&&o==="tangentMC"&&(s="tangentEC",r.glslType="vec3"),t.hasOwnProperty(s)&&(i[s]=r)}return i}function Une(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||ZUe.hasOwnProperty(o))continue;let r=o;n&&o==="normalEC"?r="normalMC":n&&o==="tangentEC"&&(r="tangentMC"),e.hasOwnProperty(r)||i.push(o)}return i}function $Ue(e,t){let n=WUe(t.attributes),i=YUe(e,n),o=KUe(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function QUe(e,t){let n=Fs.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,Fs.STRUCT_NAME_ATTRIBUTES,Ce.VERTEX);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=Fs.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,Fs.STRUCT_NAME_VERTEX_INPUT,Ce.VERTEX),e.addStructField(n,Fs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,N0.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Qf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Qf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Qf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=Fs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,Fs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,Ce.VERTEX),e.addFunctionLines(r,o)}function JUe(e,t){let n=Fs.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,Fs.STRUCT_NAME_ATTRIBUTES,Ce.FRAGMENT);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=Fs.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,Fs.STRUCT_NAME_FRAGMENT_INPUT,Ce.FRAGMENT),e.addStructField(n,Fs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,N0.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Qf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Qf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Qf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=Fs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,Fs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,Ce.FRAGMENT),e.addFunctionLines(r,o)}var eVe=[];function tVe(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=eVe;i.enabled&&(QUe(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,ON),e.addVertexLines(r)),o.enabled&&(JUe(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,RN),e.addFragmentLines(r))}var BN=Fs;var Cw={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};Cw.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=u(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,Ce.VERTEX),i.addFunction(Cw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,Cw.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,Ce.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],l=c.quantization;if(!u(l))continue;let f=c.semantic===Tt.POSITION,d=c.semantic===Tt.TEXCOORD;if(r&&!f&&!d)continue;let p=en.getAttributeInfo(c);iVe(i,p),nVe(e,p)}};function nVe(e,t){let n=e.shaderBuilder,i=e.uniformMap,o=t.variableName,r=t.attribute.quantization;if(r.octEncoded){let s=`model_normalizationRange_${o}`;n.addUniform("float",s,Ce.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,Ce.VERTEX),n.addUniform(c,a,Ce.VERTEX);let l=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(l=Vne(l,0),f=Vne(f,1)),i[s]=function(){return l},i[a]=function(){return f}}}function Vne(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function iVe(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=oVe(n,i):o=rVe(n),e.addFunctionLines(Cw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function oVe(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,o=`model_normalizationRange_${e}`,r=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${o})${r};`}function rVe(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var kN=Cw;var UN=`void geometryStage(out ProcessedAttributes attributes)
- {
- attributes.positionMC = v_positionMC;
- attributes.positionEC = v_positionEC;
- #ifdef COMPUTE_POSITION_WC_CUSTOM_SHADER
- attributes.positionWC = v_positionWC;
- #endif
- #ifdef HAS_NORMALS
-
- attributes.normalEC = normalize(v_normalEC);
- #endif
- #ifdef HAS_TANGENTS
- attributes.tangentEC = normalize(v_tangentEC);
- #endif
- #ifdef HAS_BITANGENTS
- attributes.bitangentEC = normalize(v_bitangentEC);
- #endif
-
- setDynamicVaryings(attributes);
- }
- `;var VN=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal)
- {
- vec4 computedPosition;
-
- vec3 positionMC = attributes.positionMC;
- v_positionMC = positionMC;
- v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz;
- #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING)
- vec3 position2D = attributes.position2D;
- vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz;
- computedPosition = czm_projection * vec4(positionEC, 1.0);
- #else
- computedPosition = czm_projection * vec4(v_positionEC, 1.0);
- #endif
-
- #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE)
-
-
- v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz;
- #endif
- #ifdef HAS_NORMALS
- v_normalEC = normalize(normal * attributes.normalMC);
- #endif
- #ifdef HAS_TANGENTS
- v_tangentEC = normalize(normal * attributes.tangentMC);
- #endif
- #ifdef HAS_BITANGENTS
- v_bitangentEC = normalize(normal * attributes.bitangentMC);
- #endif
-
-
- setDynamicVaryings(attributes);
-
- return computedPosition;
- }
- `;var Ew=`vec2 computeSt(float featureId)
- {
- float stepX = model_textureStep.x;
- float centerX = model_textureStep.y;
- #ifdef MULTILINE_BATCH_TEXTURE
- float stepY = model_textureStep.z;
- float centerY = model_textureStep.w;
- float xId = mod(featureId, model_textureDimensions.x);
- float yId = floor(featureId / model_textureDimensions.x);
-
- return vec2(centerX + (xId * stepX), centerY + (yId * stepY));
- #else
- return vec2(centerX + (featureId * stepX), 0.5);
- #endif
- }
- void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds)
- {
- int featureId = featureIds.SELECTED_FEATURE_ID;
- if (featureId < model_featuresLength)
- {
- vec2 featureSt = computeSt(float(featureId));
- feature.id = featureId;
- feature.st = featureSt;
- feature.color = texture(model_batchTexture, featureSt);
- }
-
-
-
-
-
- else
- {
- feature.id = model_featuresLength + 1;
- feature.st = vec2(0.0);
- feature.color = vec4(1.0);
- }
- #ifdef HAS_NULL_FEATURE_ID
- if (featureId == model_nullFeatureId) {
- feature.id = featureId;
- feature.st = vec2(0.0);
- feature.color = vec4(1.0);
- }
- #endif
- }
- `;var Sw={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature",FUNCTION_ID_FEATURE_VARYINGS_VS:"updateFeatureStructVS",FUNCTION_ID_FEATURE_VARYINGS_FS:"updateFeatureStructFS",FUNCTION_SIGNATURE_UPDATE_FEATURE:"void updateFeatureStruct(inout SelectedFeature feature)"};Sw.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=sVe(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),aVe(i);let c=s.featureIds.nullFeatureId,l=e.uniformMap;u(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),l.model_nullFeatureId=function(){return c}),s.shaderDestination===Ce.BOTH&&i.addVertexLines(Ew),i.addFragmentLines(Ew)};function zne(e){return e instanceof Mt.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function Hne(e){return e instanceof Mt.FeatureIdTexture?Ce.FRAGMENT:Ce.BOTH}function sVe(e,t,n){let i,o;return u(t.instances)&&(o=en.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Hne(o),featureIdDefine:zne(o)}):(o=en.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Hne(o),featureIdDefine:zne(o)})}function aVe(e){e.addStructField(Sw.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(Sw.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(Sw.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var B0=Sw;var bs={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};bs.process=function(e,t,n){let i=e.shaderBuilder,o=e.model;i.addStruct(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",Ce.VERTEX),i.addStruct(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",Ce.FRAGMENT),i.addStruct(B0.STRUCT_ID_SELECTED_FEATURE,B0.STRUCT_NAME_SELECTED_FEATURE,Ce.BOTH),i.addFunction(bs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,bs.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,Ce.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,bs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Ce.VERTEX),i.addFunction(bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,bs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Ce.FRAGMENT),o.type===lr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,Ce.FRAGMENT);let s=n.mode!==te.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,a=u(e.runtimeNode.node.instances),c=s&&!a,l=t.attributes.length;for(let f=0;f<l;f++){let d=t.attributes[f],p=rn.getAttributeLocationCount(d.type),g=d.semantic===Tt.POSITION,m;p>1?(m=e.attributeIndex,e.attributeIndex+=p):g&&!c?m=0:m=e.attributeIndex++,cVe(e,d,m,p,s,a)}gVe(i,t.attributes),t.primitiveType===Le.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(VN),i.addFragmentLines(UN)};function cVe(e,t,n,i,o,r){let s=e.shaderBuilder,a=en.getAttributeInfo(t),c=o&&!r;i>1?fVe(e,t,n,i):uVe(e,t,n,c),hVe(s,a,c),dVe(s,a),u(t.semantic)&&lVe(s,t),mVe(s,a,o),pVe(s,a,c),_Ve(s,a)}function lVe(e,t){let n=t.semantic,i=t.setIndex;switch(n){case Tt.NORMAL:e.addDefine("HAS_NORMALS");break;case Tt.TANGENT:e.addDefine("HAS_TANGENTS");break;case Tt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Tt.TEXCOORD:case Tt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function uVe(e,t,n,i){let o=t.quantization,r,s;u(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===Tt.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let l=a===Tt.POSITION,f=l?0:n,d=rn.getNumberOfComponents(r),p={index:f,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!l||!i)return;let g=e.runtimePrimitive.positionBuffer2D,m={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(m)}function fVe(e,t,n,i){let o=t.quantization,r,s;u(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.normalized,l=rn.getNumberOfComponents(r)/i,f=X.getSizeInBytes(s),d=l*f,p=t.byteStride;for(let g=0;g<i;g++){let m=t.byteOffset+g*d,x={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:l,componentDatatype:s,offsetInBytes:m,strideInBytes:p,normalize:a};e.attributes.push(x)}}function dVe(e,t){let n=t.variableName,i=`v_${n}`,o;n==="normalMC"?(i="v_normalEC",o=t.glslType):n==="tangentMC"?(o="vec3",i="v_tangentEC"):o=t.glslType,e.addVarying(o,i)}function hVe(e,t,n){let i=t.attribute.semantic,o=t.variableName,r,s;t.isQuantized?(r=`a_quantized_${o}`,s=t.quantizedGlslType):(r=`a_${o}`,s=t.glslType);let a=i===Tt.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function mVe(e,t,n){let i=bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,r=t.variableName;r==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(o,"vec3","tangentEC")):r==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(o,"vec3","normalEC")):(e.addStructField(i,t.glslType,r),e.addStructField(o,t.glslType,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function pVe(e,t,n){let i=bs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n){let a="attributes.position2D = a_position2D;";e.addFunctionLines(i,[a])}if(t.isQuantized)return;let s=[];o==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${o} = a_${o};`),e.addFunctionLines(i,s)}function _Ve(e,t){let n=t.attribute.semantic,i=t.attribute.setIndex;if(u(n)&&!u(i))return;let o=bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function gVe(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===Tt.NORMAL?n=!0:r.semantic===Tt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var zN=bs;var HN=`#ifdef LIGHTING_PBR
- vec3 computePbrLighting(czm_modelMaterial inputMaterial, ProcessedAttributes attributes)
- {
- czm_pbrParameters pbrParameters;
- pbrParameters.diffuseColor = inputMaterial.diffuse;
- pbrParameters.f0 = inputMaterial.specular;
- pbrParameters.roughness = inputMaterial.roughness;
-
- #ifdef USE_CUSTOM_LIGHT_COLOR
- vec3 lightColorHdr = model_lightColorHdr;
- #else
- vec3 lightColorHdr = czm_lightColorHdr;
- #endif
- vec3 color = inputMaterial.diffuse;
- #ifdef HAS_NORMALS
- color = czm_pbrLighting(
- attributes.positionEC,
- inputMaterial.normalEC,
- czm_lightDirectionEC,
- lightColorHdr,
- pbrParameters
- );
- #ifdef USE_IBL_LIGHTING
- color += imageBasedLightingStage(
- attributes.positionEC,
- inputMaterial.normalEC,
- czm_lightDirectionEC,
- lightColorHdr,
- pbrParameters
- );
- #endif
- #endif
- color *= inputMaterial.occlusion;
- color += inputMaterial.emissive;
-
-
-
-
- #ifndef HDR
- color = czm_acesTonemapping(color);
- #endif
- return color;
- }
- #endif
- void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes)
- {
-
-
- vec3 color = vec3(0.0);
- #ifdef LIGHTING_PBR
- color = computePbrLighting(material, attributes);
- #else
- color = material.diffuse;
- #endif
- #ifdef HAS_POINT_CLOUD_COLOR_STYLE
-
- color = czm_gammaCorrect(color);
- #elif !defined(HDR)
-
-
- color = czm_linearToSrgb(color);
- #endif
- material.diffuse = color;
- }
- `;var yVe={UNLIT:0,PBR:1},cp=Object.freeze(yVe);var Gne={name:"LightingPipelineStage"};Gne.process=function(e,t){let n=e.model,i=e.lightingOptions,o=e.shaderBuilder;if(u(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,Ce.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",Ce.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}i.lightingModel===cp.PBR?o.addDefine("LIGHTING_PBR",void 0,Ce.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,Ce.FRAGMENT),o.addFragmentLines(HN)};var GN=Gne;var WN=`
- bool isDefaultStyleColor(vec3 color)
- {
- return all(greaterThan(color, vec3(1.0 - czm_epsilon3)));
- }
- vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend)
- {
- vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend);
- vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor;
- return color;
- }
- vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform)
- {
- return vec2(textureTransform * vec3(texCoord, 1.0));
- }
- #ifdef HAS_NORMALS
- vec3 computeNormal(ProcessedAttributes attributes)
- {
-
- vec3 ng = attributes.normalEC;
- vec3 normal = ng;
- #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME)
- vec2 normalTexCoords = TEXCOORD_NORMAL;
- #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
- normalTexCoords = computeTextureTransform(normalTexCoords, u_normalTextureTransform);
- #endif
-
- #ifdef HAS_BITANGENTS
- vec3 t = attributes.tangentEC;
- vec3 b = attributes.bitangentEC;
- mat3 tbn = mat3(t, b, ng);
- vec3 n = texture(u_normalTexture, normalTexCoords).rgb;
- normal = normalize(tbn * (2.0 * n - 1.0));
- #elif (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
-
- vec3 positionEC = attributes.positionEC;
- vec3 pos_dx = dFdx(positionEC);
- vec3 pos_dy = dFdy(positionEC);
- vec3 tex_dx = dFdx(vec3(normalTexCoords,0.0));
- vec3 tex_dy = dFdy(vec3(normalTexCoords,0.0));
- vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
- t = normalize(t - ng * dot(ng, t));
- vec3 b = normalize(cross(ng, t));
- mat3 tbn = mat3(t, b, ng);
- vec3 n = texture(u_normalTexture, normalTexCoords).rgb;
- normal = normalize(tbn * (2.0 * n - 1.0));
- #endif
- #endif
- #ifdef HAS_DOUBLE_SIDED_MATERIAL
- if (czm_backFacing()) {
- normal = -normal;
- }
- #endif
- return normal;
- }
- #endif
- void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature)
- {
- #ifdef HAS_NORMALS
- material.normalEC = computeNormal(attributes);
- #endif
- vec4 baseColorWithAlpha = vec4(1.0);
-
- #ifdef HAS_BASE_COLOR_TEXTURE
- vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
- #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
- baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
- #endif
- baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
- #ifdef HAS_BASE_COLOR_FACTOR
- baseColorWithAlpha *= u_baseColorFactor;
- #endif
- #elif defined(HAS_BASE_COLOR_FACTOR)
- baseColorWithAlpha = u_baseColorFactor;
- #endif
- #ifdef HAS_POINT_CLOUD_COLOR_STYLE
- baseColorWithAlpha = v_pointCloudColor;
- #elif defined(HAS_COLOR_0)
- vec4 color = attributes.color_0;
-
- #ifdef HAS_SRGB_COLOR
- color = czm_srgbToLinear(color);
- #endif
- baseColorWithAlpha *= color;
- #endif
- material.diffuse = baseColorWithAlpha.rgb;
- material.alpha = baseColorWithAlpha.a;
- #ifdef USE_CPU_STYLING
- material.diffuse = blend(material.diffuse, feature.color.rgb, model_colorBlend);
- #endif
- #ifdef HAS_OCCLUSION_TEXTURE
- vec2 occlusionTexCoords = TEXCOORD_OCCLUSION;
- #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM
- occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
- #endif
- material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;
- #endif
- #ifdef HAS_EMISSIVE_TEXTURE
- vec2 emissiveTexCoords = TEXCOORD_EMISSIVE;
- #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM
- emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
- #endif
- vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb);
- #ifdef HAS_EMISSIVE_FACTOR
- emissive *= u_emissiveFactor;
- #endif
- material.emissive = emissive;
- #elif defined(HAS_EMISSIVE_FACTOR)
- material.emissive = u_emissiveFactor;
- #endif
- #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS)
- #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE
- vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS;
- #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM
- specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
- #endif
- vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords));
- vec3 specular = specularGlossiness.rgb;
- float glossiness = specularGlossiness.a;
- #ifdef HAS_SPECULAR_FACTOR
- specular *= u_specularFactor;
- #endif
- #ifdef HAS_GLOSSINESS_FACTOR
- glossiness *= u_glossinessFactor;
- #endif
- #else
- #ifdef HAS_SPECULAR_FACTOR
- vec3 specular = clamp(u_specularFactor, vec3(0.0), vec3(1.0));
- #else
- vec3 specular = vec3(1.0);
- #endif
- #ifdef HAS_GLOSSINESS_FACTOR
- float glossiness = clamp(u_glossinessFactor, 0.0, 1.0);
- #else
- float glossiness = 1.0;
- #endif
- #endif
- #ifdef HAS_DIFFUSE_TEXTURE
- vec2 diffuseTexCoords = TEXCOORD_DIFFUSE;
- #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM
- diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
- #endif
- vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords));
- #ifdef HAS_DIFFUSE_FACTOR
- diffuse *= u_diffuseFactor;
- #endif
- #elif defined(HAS_DIFFUSE_FACTOR)
- vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0));
- #else
- vec4 diffuse = vec4(1.0);
- #endif
- czm_pbrParameters parameters = czm_pbrSpecularGlossinessMaterial(
- diffuse.rgb,
- specular,
- glossiness
- );
- material.diffuse = parameters.diffuseColor;
-
-
- material.alpha = diffuse.a;
- material.specular = parameters.f0;
- material.roughness = parameters.roughness;
- #elif defined(LIGHTING_PBR)
- #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE
- vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS;
- #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM
- metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
- #endif
- vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb;
- float metalness = clamp(metallicRoughness.b, 0.0, 1.0);
- float roughness = clamp(metallicRoughness.g, 0.04, 1.0);
- #ifdef HAS_METALLIC_FACTOR
- metalness *= u_metallicFactor;
- #endif
- #ifdef HAS_ROUGHNESS_FACTOR
- roughness *= u_roughnessFactor;
- #endif
- #else
- #ifdef HAS_METALLIC_FACTOR
- float metalness = clamp(u_metallicFactor, 0.0, 1.0);
- #else
- float metalness = 1.0;
- #endif
- #ifdef HAS_ROUGHNESS_FACTOR
- float roughness = clamp(u_roughnessFactor, 0.04, 1.0);
- #else
- float roughness = 1.0;
- #endif
- #endif
- czm_pbrParameters parameters = czm_pbrMetallicRoughnessMaterial(
- material.diffuse,
- metalness,
- roughness
- );
- material.diffuse = parameters.diffuseColor;
- material.specular = parameters.f0;
- material.roughness = parameters.roughness;
- #endif
- }
- `;var xVe=Mt.Material,a6=Mt.MetallicRoughness,c6=Mt.SpecularGlossiness,Wne={name:"MaterialPipelineStage",_processTexture:ng,_processTextureTransform:jne};Wne.process=function(e,t,n){let i=t.material,o=e.model,r=u(o.classificationType),s=r,a=e.uniformMap,c=e.shaderBuilder,l=n.context.defaultTexture,f=n.context.defaultNormalTexture,d=n.context.defaultEmissiveTexture;bVe(i,a,c,l,f,d,s),u(i.specularGlossiness)?TVe(i,a,c,l,s):AVe(i,a,c,l,s);let p=en.getAttributeBySemantic(t,Tt.NORMAL),g=e.lightingOptions;i.unlit||!p||r?g.lightingModel=cp.UNLIT:g.lightingModel=cp.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===Jm.BLEND?x.pass=Ee.TRANSLUCENT:i.alphaMode===Jm.MASK&&(x.alphaCutoff=i.alphaCutoff),c.addFragmentLines(WN),i.doubleSided&&c.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,Ce.BOTH)};function jne(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,Ce.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,Ce.FRAGMENT),t[s]=function(){return n.transform}}function ng(e,t,n,i,o,r){e.addUniform("sampler2D",i,Ce.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,Ce.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,l=`TEXCOORD_${o}`;e.addDefine(l,c,Ce.FRAGMENT);let f=n.transform;u(f)&&!$.equals(f,$.IDENTITY)&&jne(e,t,n,i,o)}function bVe(e,t,n,i,o,r,s){let a=e.emissiveFactor;if(u(a)&&!h.equals(a,xVe.DEFAULT_EMISSIVE_FACTOR)){n.addUniform("vec3","u_emissiveFactor",Ce.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,Ce.FRAGMENT);let f=e.emissiveTexture;u(f)&&!s&&ng(n,t,f,"u_emissiveTexture","EMISSIVE",r)}let c=e.normalTexture;u(c)&&!s&&ng(n,t,c,"u_normalTexture","NORMAL",o);let l=e.occlusionTexture;u(l)&&!s&&ng(n,t,l,"u_occlusionTexture","OCCLUSION",i)}function TVe(e,t,n,i,o){let r=e.specularGlossiness;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,Ce.FRAGMENT);let s=r.diffuseTexture;u(s)&&!o&&ng(n,t,s,"u_diffuseTexture","DIFFUSE",i);let a=r.diffuseFactor;u(a)&&!oe.equals(a,c6.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",Ce.FRAGMENT),t.u_diffuseFactor=function(){return r.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,Ce.FRAGMENT));let c=r.specularGlossinessTexture;u(c)&&!o&&ng(n,t,c,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i);let l=r.specularFactor;u(l)&&!h.equals(l,c6.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_specularFactor",Ce.FRAGMENT),t.u_specularFactor=function(){return r.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,Ce.FRAGMENT));let f=r.glossinessFactor;u(f)&&f!==c6.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",Ce.FRAGMENT),t.u_glossinessFactor=function(){return r.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,Ce.FRAGMENT))}function AVe(e,t,n,i,o){let r=e.metallicRoughness;n.addDefine("USE_METALLIC_ROUGHNESS",void 0,Ce.FRAGMENT);let s=r.baseColorTexture;u(s)&&!o&&ng(n,t,s,"u_baseColorTexture","BASE_COLOR",i);let a=r.baseColorFactor;u(a)&&!oe.equals(a,a6.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",Ce.FRAGMENT),t.u_baseColorFactor=function(){return r.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,Ce.FRAGMENT));let c=r.metallicRoughnessTexture;u(c)&&!o&&ng(n,t,c,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let l=r.metallicFactor;u(l)&&l!==a6.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",Ce.FRAGMENT),t.u_metallicFactor=function(){return r.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,Ce.FRAGMENT));let f=r.roughnessFactor;u(f)&&f!==a6.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",Ce.FRAGMENT),t.u_roughnessFactor=function(){return r.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,Ce.FRAGMENT))}var jN=Wne;var qN=`void morphTargetsStage(inout ProcessedAttributes attributes)
- {
- vec3 positionMC = attributes.positionMC;
- attributes.positionMC = getMorphedPosition(positionMC);
- #ifdef HAS_NORMALS
- vec3 normalMC = attributes.normalMC;
- attributes.normalMC = getMorphedNormal(normalMC);
- #endif
- #ifdef HAS_TANGENTS
- vec3 tangentMC = attributes.tangentMC;
- attributes.tangentMC = getMorphedTangent(tangentMC);
- #endif
- }`;var aa={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};aa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,Ce.VERTEX),DVe(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,l=c.length;for(let f=0;f<l;f++){let d=c[f],p=d.semantic;p!==Tt.POSITION&&p!==Tt.NORMAL&&p!==Tt.TANGENT||(EVe(e,d,e.attributeIndex,a),e.attributeIndex++)}}IVe(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,Ce.VERTEX),n.addVertexLines(qN);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=gt(s,e.uniformMap)};var CVe={attributeString:void 0,functionId:void 0};function EVe(e,t,n,i){let o=e.shaderBuilder;SVe(e,t,n);let r=wVe(t,CVe);vVe(o,r,i)}function SVe(e,t,n){let i={index:n,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:rn.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function wVe(e,t){switch(e.semantic){case Tt.POSITION:t.attributeString="Position",t.functionId=aa.FUNCTION_ID_GET_MORPHED_POSITION;break;case Tt.NORMAL:t.attributeString="Normal",t.functionId=aa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Tt.TANGENT:t.attributeString="Tangent",t.functionId=aa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function vVe(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function DVe(e){e.addFunction(aa.FUNCTION_ID_GET_MORPHED_POSITION,aa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,Ce.VERTEX);let t="vec3 morphedPosition = position;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_POSITION,[t]),e.addFunction(aa.FUNCTION_ID_GET_MORPHED_NORMAL,aa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,Ce.VERTEX);let n="vec3 morphedNormal = normal;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]),e.addFunction(aa.FUNCTION_ID_GET_MORPHED_TANGENT,aa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,Ce.VERTEX);let i="vec3 morphedTangent = tangent;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}function IVe(e){let t="return morphedPosition;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_POSITION,[t]);let n="return morphedNormal;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]);let i="return morphedTangent;";e.addFunctionLines(aa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}var YN=aa;var qne={name:"PickingPipelineStage"};qne.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)PVe(e,t,a,i);else if(u(a))OVe(e,i);else{let c=Yne(e),l=i.createPickId(c);s._pipelineResources.push(l),s._pickIds.push(l),r.addUniform("vec4","czm_pickColor",Ce.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return l.color},e.pickId="czm_pickColor"}};function Yne(e,t){let n=e.model;if(u(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(lr.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,u(t)&&(o.instanceId=t),o}function PVe(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;u(i.featureTableId)?o=i.featureTableId:u(n)?(r=en.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=en.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",Ce.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function OVe(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let d=0;d<n;d++){let p=Yne(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;o[d*4+0]=z.floatToByte(m.red),o[d*4+1]=z.floatToByte(m.green),o[d*4+2]=z.floatToByte(m.blue),o[d*4+3]=z.floatToByte(m.alpha)}r._pickIds=i;let a=ut.createVertexBuffer({context:t,typedArray:o,usage:Be.STATIC_DRAW});a.vertexArrayDestroyable=!1;let c=!1;r.statistics.addBuffer(a,c),s.push(a);let l={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(l);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,Ce.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var XN=qne;var RVe={ADD:0,REPLACE:1},Uo=Object.freeze(RVe);var KN=`float getPointSizeFromAttenuation(vec3 positionEC) {
-
- float pointSize = model_pointCloudParameters.x;
- float geometricError = model_pointCloudParameters.y;
- float depthMultiplier = model_pointCloudParameters.z;
- float depth = -positionEC.z;
- return min((geometricError / depth) * depthMultiplier, pointSize);
- }
- #ifdef HAS_POINT_CLOUD_SHOW_STYLE
- float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
- float tiles3d_tileset_time = model_pointCloudParameters.w;
- return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time));
- }
- #endif
- #ifdef HAS_POINT_CLOUD_COLOR_STYLE
- vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
- float tiles3d_tileset_time = model_pointCloudParameters.w;
- return getColorFromStyle(attributes, metadata, tiles3d_tileset_time);
- }
- #endif
- #ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE
- float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
- float tiles3d_tileset_time = model_pointCloudParameters.w;
- return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time));
- }
- #elif defined(HAS_POINT_CLOUD_ATTENUATION)
- float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) {
- return getPointSizeFromAttenuation(v_positionEC);
- }
- #endif
- #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING
- float pointCloudBackFaceCullingStage() {
- #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL)
-
- return step(-v_normalEC.z, 0.0);
- #else
- return 1.0;
- #endif
- }
- #endif`;var MVe=new oe,Kne={name:"PointCloudStylingPipelineStage"};Kne.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=u(s)?s.propertyAttributes:void 0,c=u(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,l=!u(a)&&c;if(u(r)&&!l){let x=BVe(a),b=kVe(r,x);UVe(i,b);let A=VVe(b).indexOf("normalMC")>=0,C=en.getAttributeBySemantic(t,Tt.NORMAL);if(A&&!C)throw new ue("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Ce.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=Ee.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Ce.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Ce.VERTEX);let d,p,g;lr.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Uo.ADD),i.addUniform("vec4","model_pointCloudParameters",Ce.VERTEX),i.addVertexLines(KN);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=MVe,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=LVe(e,t,f,d);x.y=T*f.geometricErrorScale;let A=n.context,C=n.camera.frustum,S;return n.mode===te.SCENE2D||C instanceof Qt?S=Number.POSITIVE_INFINITY:S=A.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=S,p&&(x.w=d.tileset.timeSinceLoad),x}};var Xne=new h;function LVe(e,t,n,i){if(u(i)){let f=i.tile.geometricError;if(f>0)return f}if(u(n.baseResolution))return n.baseResolution;let o=en.getAttributeBySemantic(t,Tt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,Xne);a=L.multiplyByPointAsVector(s,a,Xne);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var NVe={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},FVe={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function BVe(e){let t=Ge(FVe);if(!u(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var l6="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function kVe(e,t){let n=NVe,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${l6})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${l6})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${l6})`,t,i),n.styleTranslucent=u(n.colorStyleFunction)&&i.translucent,n}function UVe(e,t){let n=t.colorStyleFunction;u(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,Ce.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;u(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,Ce.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;u(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,Ce.VERTEX),e.addVertexLines(o))}function u6(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function VVe(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return u(t)&&u6(t,o),u(n)&&u6(n,o),u(i)&&u6(i,o),o}var ZN=Kne;var $N=`void primitiveOutlineStage() {
- v_outlineCoordinates = a_outlineCoordinates;
- }
- `;var QN=`void primitiveOutlineStage(inout czm_modelMaterial material) {
- if (!model_showOutline) {
- return;
- }
- float outlineX =
- texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r;
- float outlineY =
- texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r;
- float outlineZ =
- texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r;
- float outlineness = max(outlineX, max(outlineY, outlineZ));
- material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness);
- }
- `;var Zne={name:"PrimitiveOutlinePipelineStage"};Zne.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,Ce.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:rn.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",Ce.FRAGMENT);let a=VT.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",Ce.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",Ce.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines($N),i.addFragmentLines(QN)};var JN=Zne;var $ne={name:"PrimitiveStatisticsPipelineStage",_countGeometry:Qne,_count2DPositions:Jne,_countMorphTargetAttributes:eie,_countMaterialTextures:tie,_countFeatureIdTextures:nie,_countBinaryMetadata:iie};$ne.process=function(e,t,n){let i=e.model,o=i.statistics;Qne(o,t),Jne(o,e.runtimePrimitive),eie(o,t),tie(o,t.material),nie(o,t.featureIds),iie(o,i)};function Qne(e,t){let n=u(t.indices)?t.indices.count:en.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Le.POINTS?e.pointsLength+=n:Le.isTriangles(i)&&(e.trianglesLength+=zVe(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let l=o[c];if(u(l.buffer)){let f=u(l.typedArray);e.addBuffer(l.buffer,f)}}let s=t.outlineCoordinates;u(s)&&u(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(u(a)&&u(a.buffer)){let c=u(a.typedArray);e.addBuffer(a.buffer,c)}}function zVe(e,t){switch(e){case Le.TRIANGLES:return t/3;case Le.TRIANGLE_STRIP:case Le.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function Jne(e,t){let n=t.positionBuffer2D;u(n)&&e.addBuffer(n,!0)}function eie(e,t){let n=t.morphTargets;if(!u(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let l=s[c];u(l.buffer)&&e.addBuffer(l.buffer,i)}}}function tie(e,t){let n=HVe(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];u(r)&&u(r.texture)&&e.addTexture(r.texture)}}function HVe(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return u(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function nie(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof Mt.FeatureIdTexture){let r=o.textureReader;u(r.texture)&&e.addTexture(r.texture)}}}function iie(e,t){let n=t.structuralMetadata;u(n)&&(GVe(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!u(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function GVe(e,t){let n=t.propertyTextures;if(!u(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let l=s[a].textureReader;u(l.texture)&&e.addTexture(l.texture)}}}var e2=$ne;var WVe=new L,jVe=new L,oie={name:"SceneMode2DPipelineStage"};oie.process=function(e,t,n){let i=en.getAttributeBySemantic(t,Tt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=L.multiplyTransformation(s,a,WVe),l=XVe(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=l;let d=e.runtimeNode.node.instances;if(u(d))return;if(u(i.typedArray)){let x=$Ve(i,c,l,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,Ce.VERTEX),o.addUniform("mat4","u_modelView2D",Ce.VERTEX);let p=L.fromTranslation(l.center,new L),g=n.context,m={u_modelView2D:function(){return L.multiplyTransformation(g.uniformState.view,p,jVe)}};e.uniformMap=gt(m,e.uniformMap)};var qVe=new h,YVe=new h;function XVe(e,t,n){let i=L.multiplyByPoint(t,e.positionMin,qVe),o=$i.computeActualWgs84Position(n,i,i),r=L.multiplyByPoint(t,e.positionMax,YVe),s=$i.computeActualWgs84Position(n,r,r);return se.fromCornerPoints(o,s,new se)}var rie=new h;function KVe(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,rie),c=h.multiplyComponents(a,r,a),l=h.add(c,o,c);i[s]=l.x,i[s+1]=l.y,i[s+2]=l.z}return i}function ZVe(e,t,n,i){let o;u(e.quantization)?o=KVe(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=u(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let l=h.fromArray(o,c,rie);if(isNaN(l.x)||isNaN(l.y)||isNaN(l.z))continue;let f=L.multiplyByPoint(t,l,l),d=$i.computeActualWgs84Position(i,f,f),p=h.subtract(d,n,d);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function $Ve(e,t,n,i){let o=Ge(i);o.mode=te.COLUMBUS_VIEW;let r=n.center,s=ZVe(e,t,r,o),a=ut.createVertexBuffer({context:i.context,typedArray:s,usage:Be.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var t2=oie;var n2=`void skinningStage(inout ProcessedAttributes attributes)
- {
- mat4 skinningMatrix = getSkinningMatrix();
- mat3 skinningMatrixMat3 = mat3(skinningMatrix);
- vec4 positionMC = vec4(attributes.positionMC, 1.0);
- attributes.positionMC = vec3(skinningMatrix * positionMC);
- #ifdef HAS_NORMALS
- vec3 normalMC = attributes.normalMC;
- attributes.normalMC = skinningMatrixMat3 * normalMC;
- #endif
- #ifdef HAS_TANGENTS
- vec3 tangentMC = attributes.tangentMC;
- attributes.tangentMC = skinningMatrixMat3 * tangentMC;
- #endif
- }`;var k0={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};k0.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,Ce.VERTEX),JVe(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,Ce.VERTEX),n.addVertexLines(n2);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=gt(r,e.uniformMap)};function QVe(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===Tt.JOINTS||r.semantic===Tt.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function JVe(e,t){e.addFunction(k0.FUNCTION_ID_GET_SKINNING_MATRIX,k0.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,Ce.VERTEX);let n="mat4 skinnedMatrix = mat4(0);";e.addFunctionLines(k0.FUNCTION_ID_GET_SKINNING_MATRIX,[n]);let i,o,r=["x","y","z","w"],s=QVe(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],l=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(k0.FUNCTION_ID_GET_SKINNING_MATRIX,[l])}let a="return skinnedMatrix;";e.addFunctionLines(k0.FUNCTION_ID_GET_SKINNING_MATRIX,[a])}var i2=k0;var f6={};function eze(e){let t=ke.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function tze(e,t){let n=t.length,i=ke.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function nze(e){let t=e-2,n=2+t*4,i=ke.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function ize(e,t){let i=t.length-2,o=2+i*4,r=ke.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],l=t[a+1],f=t[a+2];r[s++]=l,r[s++]=f,r[s++]=f,r[s++]=c}return r}function oze(e){let t=e-2,n=2+t*4,i=ke.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function rze(e,t){let i=t.length-2,o=2+i*4,r=ke.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let l=t[c+1],f=t[c+2];r[s++]=l,r[s++]=f,r[s++]=f,r[s++]=a}return r}f6.createWireframeIndices=function(e,t,n){let i=u(n);if(e===Le.TRIANGLES)return i?tze(t,n):eze(t);if(e===Le.TRIANGLE_STRIP)return i?ize(t,n):nze(t);if(e===Le.TRIANGLE_FAN)return i?rze(t,n):oze(t)};f6.getWireframeIndicesCount=function(e,t){return e===Le.TRIANGLES?t*2:e===Le.TRIANGLE_STRIP||e===Le.TRIANGLE_FAN?2+(t-2)*4:t};var ww=f6;var sie={name:"WireframePipelineStage"};sie.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,Ce.FRAGMENT);let o=e.model,r=sze(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r;let s=!1;o.statistics.addBuffer(r,s);let a=e.primitiveType,c=e.count;e.primitiveType=Le.LINES,e.count=ww.getWireframeIndicesCount(a,c)};function sze(e,t,n){let o=en.getAttributeBySemantic(e,Tt.POSITION).count,r=n.context.webgl2,s;if(u(t)){let f=t.buffer,d=t.count;u(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):ke.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=ww.createWireframeIndices(a,o,s),l=ke.fromSizeInBytes(c.BYTES_PER_ELEMENT);return ut.createIndexBuffer({context:n.context,typedArray:c,usage:Be.STATIC_DRAW,indexDatatype:l})}var o2=sie;function aie(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}aie.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,l=e.mode!==te.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=u(n.morphTargets)&&n.morphTargets.length>0,d=u(i.skin),p=u(r),m=!(p&&u(r.fragmentShaderText))||r.mode!==tg.REPLACE_MATERIAL,x=en.hasQuantizedAttributes(n.attributes),b=o.debugWireframe&&Le.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),T=o.pointCloudShading,A=u(T)&&T.attenuation,C=u(T)&&T.backFaceCulling,S=n.primitiveType===Le.POINTS&&(u(s)||A||C),w=o._enableShowOutline&&u(n.outlineCoordinates),D=aze(o,i,n),O=u(o.classificationType);l&&t.push(t2),t.push(zN),b&&t.push(o2),O&&t.push(vN),f&&t.push(YN),d&&t.push(i2),S&&t.push(ZN),x&&t.push(kN),m&&t.push(jN),t.push(N0),t.push(Qf),D.hasPropertyTable&&(t.push(B0),t.push(wN),t.push(PN)),p&&t.push(BN),t.push(GN),o.allowPicking&&t.push(XN),w&&t.push(JN),t.push(SN),t.push(e2)};function aze(e,t,n){let i;return u(t.instances)&&(i=en.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(i))?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:(i=en.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),u(i)?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var r2=aie;function d6(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],cze(this)}Object.defineProperties(d6.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function cze(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let l=i[c].index,f=r[l];s.push(f);let d=n[c],p=cie(f,d,new L);a.push(p)}}function cie(e,t,n){let i=L.multiplyTransformation(e.transformToRoot,e.transform,n);return n=L.multiplyTransformation(i,t,n),n}d6.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=cie(i,o,e[n])}};var s2=d6;function lze(){this.pass=void 0,this.alphaCutoff=void 0}var a2=lze;function uze(e){this.shaderBuilder=new Hb,this.model=e,this.uniformMap={},this.alphaOptions=new a2,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:uc.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var c2=uze;var l2=`void silhouetteStage(inout vec4 color) {
- if(model_silhouettePass) {
- color = czm_gammaCorrect(model_silhouetteColor);
- }
- }`;var u2=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) {
- #ifdef HAS_NORMALS
- if(model_silhouettePass) {
- vec3 normal = normalize(czm_normal3D * attributes.normalMC);
- normal.x *= czm_projection[0][0];
- normal.y *= czm_projection[1][1];
- positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z;
- }
- #endif
- }
- `;var f2={name:"ModelSilhouettePipelineStage"};f2.silhouettesLength=0;f2.process=function(e,t,n){u(t._silhouetteId)||(t._silhouetteId=++f2.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,Ce.BOTH),i.addVertexLines(u2),i.addFragmentLines(l2),i.addUniform("vec4","model_silhouetteColor",Ce.FRAGMENT),i.addUniform("float","model_silhouetteSize",Ce.VERTEX),i.addUniform("bool","model_silhouettePass",Ce.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=gt(o,e.uniformMap),e.hasSilhouette=!0};var d2=f2;var h2=`void modelSplitterStage()
- {
-
-
- #ifndef SHADOW_MAP
- if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
- if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;
- #endif
- }
- `;var m2={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};m2.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Ce.FRAGMENT),i.addFragmentLines(h2);let o={};i.addUniform("float",m2.SPLIT_DIRECTION_UNIFORM_NAME,Ce.FRAGMENT),o[m2.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=gt(o,e.uniformMap)};var p2=m2;function fze(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var _2=fze;function dze(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,cp.UNLIT)}var g2=dze;function hze(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=u(n.indices)?n.indices.count:en.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=en.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=se.fromCornerPoints(this.positionMin,this.positionMax,new se),this.lightingOptions=new g2,this.pickId=void 0}var y2=hze;function jl(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=L.clone(L.IDENTITY),this._computedModelMatrix2D=L.clone(L.IDENTITY),this._axisCorrectionMatrix=en.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new L),this._runtimeArticulations={},mze(this)}Object.defineProperties(jl.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function mze(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;lie(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let A=0;A<s;A++){let C=r[A],S=new dN({articulation:C,sceneGraph:e}),w=S.name;a[w]=S}let c=t.nodes,l=c.length;e._runtimeNodes=new Array(l);let d=n.nodes.length,p=L.IDENTITY;for(let A=0;A<d;A++){let C=n.nodes[A],S=uie(e,C,p);e._rootNodes.push(S)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let A=0;A<x;A++){let C=g[A];m.push(new s2({skin:C,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let A=0;A<T;A++){let C=b[A],S=e._runtimeNodes[C],D=c[C].skin.index;S._runtimeSkin=m[D],S.updateJointMatrices()}e.applyArticulations()}function lie(e,t){let n=e._components,i=e._model;e._computedModelMatrix=L.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=L.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=L.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var pze=new h;function _ze(e,t){let n=e._computedModelMatrix,i=L.getTranslation(n,pze);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Rt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Rt.wgs84To2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=L.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=se.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function uie(e,t,n){let i=[],o=en.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=L.multiplyTransformation(n,o,new L),g=uie(e,d,p);i.push(g)}let s=new EN({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new r2({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,u(t.skin)&&e._skinnedNodes.push(c);let l=t.name;if(u(l)){let f=e._model,d=new _N(f,s);f._nodesByName[l]=d}return c}var gze=new h,yze=new h,xze=new h,bze=new h;jl.prototype.buildDrawCommands=function(e){let t=this._model,n=new c2(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,o,r,s;for(o=0;o<i.length;o++)i[o].process(n,t,e);let a=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,gze),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,yze);for(o=0;o<this._runtimeNodes.length;o++){let l=this._runtimeNodes[o];if(!u(l))continue;l.configurePipeline();let f=l.pipelineStages,d=new _2(n,l);for(r=0;r<f.length;r++)f[r].process(d,l.node,e);let p=l.computedTransform;for(r=0;r<l.runtimePrimitives.length;r++){let g=l.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new y2(d,g);for(s=0;s<m.length;s++)m[s].process(x,g.primitive,e);g.boundingSphere=se.clone(x.boundingSphere,new se);let b=L.multiplyByPoint(p,x.positionMin,xze),T=L.multiplyByPoint(p,x.positionMax,bze);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let A=sN(x,e);g.drawCommand=A}}this._boundingSphere=se.fromCornerPoints(a,c,new se),this._boundingSphere=se.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=se.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=se.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};jl.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model;u(n.color)&&t.push(L0),!u(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(lN),n.isClippingEnabled()&&t.push(pN),n.hasSilhouette(e)&&t.push(d2),u(n.splitDirection)&&n.splitDirection!==il.NONE&&t.push(p2),lr.is3DTiles(n.type)&&t.push(aN))};jl.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!u(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==te.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};jl.prototype.updateModelMatrix=function(e,t){lie(this,e),t.mode!==te.SCENE3D&&_ze(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};jl.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function fie(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let l=t.getChild(c);fie(e,l,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let l=s[c];i(l,o)}}function x2(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];fie(e,c,t,n,i)}}var Tze={backFaceCulling:void 0};jl.prototype.updateBackFaceCulling=function(e){let t=Tze;t.backFaceCulling=e,x2(this,!1,Aze,t)};function Aze(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var Cze={shadowMode:void 0};jl.prototype.updateShadows=function(e){let t=Cze;t.shadowMode=e,x2(this,!1,Eze,t)};function Eze(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var Sze={debugShowBoundingVolume:void 0};jl.prototype.updateShowBoundingVolume=function(e){let t=Sze;t.debugShowBoundingVolume=e,x2(this,!1,wze,t)};function wze(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var die=[],vze={frameState:void 0,hasSilhouette:void 0};jl.prototype.pushDrawCommands=function(e){let t=die;t.length=0;let n=vze;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,x2(this,!0,Dze,n),e.commandList.push.apply(e.commandList,t)};function Dze(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=die,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}jl.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];u(r)&&r.setArticulationStage(o,t)};jl.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var b2=jl;function eA(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new xt}Object.defineProperties(eA.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});eA.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};eA.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};eA.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};eA.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var T2=eA;var _ie=or(jI(),1);var hie={},U0=Uint32Array.BYTES_PER_ELEMENT;hie.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=U0;let o=i.getUint32(t,!0);if(o!==1)throw new ue(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=U0,t+=U0;let r=i.getUint32(t,!0);if(r===0)throw new ue("Feature table must have a byte length greater than zero");t+=U0;let s=i.getUint32(t,!0);t+=U0;let a=i.getUint32(t,!0);t+=U0;let c=i.getUint32(t,!0);t+=U0;let l=vo(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=vo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new vh(l,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!u(m))throw new ue("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(x)&&(x=h.unpack(x));let b=Ize(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=Pze(g);b.positions=T,b.hasPositions=b.hasPositions||u(T)}if(!b.hasPositions)throw new ue("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=Rze(g);b.normals=T,b.hasNormals=b.hasNormals||u(T)}if(!b.hasColors){let T=Oze(g);b.colors=T,b.hasColors=b.hasColors||u(T),b.hasConstantColor=u(b.constantColor),b.isTranslucent=u(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=Mze(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||u(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!u(T))throw new ue("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return u(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function Ize(e,t){let n=e.json,i,o,r,s=u(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=u(t)&&u(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;u(a)&&(r=a.properties);let c,l,f,d,p;if(u(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!u(o)||!u(m)||!u(x))throw new ue("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=u(o.POSITION),l=u(o.RGB)||u(o.RGBA),f=u(o.NORMAL),d=u(o.BATCH_ID),p=u(o.RGBA)}let g;return u(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:gt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:l,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function Pze(e){let t=e.json,n;if(u(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:rn.VEC3};if(u(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(i))throw new ue("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65536-1,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!u(r))throw new ue("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:rn.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:rn.VEC3}}}function Oze(e){let t=e.json,n;if(u(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:rn.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(u(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:rn.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(u(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:rn.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(u(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=z.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:rn.VEC4,isQuantized:!1,isTranslucent:s}}}function Rze(e){let t=e.json,n;if(u(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:rn.VEC3};if(u(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2);let i=8;return{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<i)-1,quantizedType:rn.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:rn.VEC3}}}function Mze(e){let t=e.json;if(u(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:Tt.FEATURE_ID,semantic:Tt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:rn.SCALAR}}}var tA=hie;var Lze=Mt.Components,Nze=Mt.Scene,Fze=Mt.Node,Bze=Mt.Primitive,kze=Mt.Attribute,mie=Mt.Quantization,Uze=Mt.FeatureIdAttribute,Vze=Mt.Material,zze=Mt.MetallicRoughness;function ig(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=St.UNLOADED,this._buffers=[],this._components=void 0,this._transform=L.IDENTITY}u(Object.create)&&(ig.prototype=Object.create(no.prototype),ig.prototype.constructor=ig);Object.defineProperties(ig.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});ig.prototype.load=function(){if(u(this._promise))return this._promise;this._parsedContent=tA.parse(this._arrayBuffer,this._byteOffset),this._state=St.PROCESSING,this._promise=Promise.resolve(this)};ig.prototype.process=function(e){if(u(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===St.READY)return!0;if(this._state===St.PROCESSING){if(u(this._decodePromise))return!1;this._decodePromise=Hze(this,e.context)}return!1};function Hze(e,t){let i=e._parsedContent.draco,o;if(u(i)?o=k_.decodePointCloud(i,t):o=Promise.resolve(),!!u(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return u(r)&&Gze(e,i,r),e4e(e,t),e._state=St.READY,e}).catch(function(r){e.unload(),e._state=St.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function Gze(e,t,n){e._state=St.READY;let i=e._parsedContent,o;if(u(n.POSITION)){if(o={name:"POSITION",semantic:Tt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:rn.VEC3,isQuantized:!1},u(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,l=h.fromElements(c,c,c),f=h.unpack(a.minValues),d=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=d,o.quantizedVolumeOffset=f,o.quantizedVolumeScale=l,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=rn.VEC3}i.positions=o}if(u(n.NORMAL)){if(o={name:"NORMAL",semantic:Tt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:rn.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},u(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=X.UNSIGNED_BYTE,o.quantizedType=rn.VEC2}i.normals=o}if(u(n.RGBA)?i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:rn.VEC4,normalized:!0,isTranslucent:!0}:u(n.RGB)&&(i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:rn.VEC3,normalized:!0,isTranslucent:!1}),u(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:Tt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:rn.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];u(r)||(r={}),i.hasDracoBatchTable=!0;let l=c.data;r[a]={byteOffset:l.byteOffset,type:Wze(l.componentsPerAttribute),componentType:jze(l.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function Wze(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function jze(e){switch(e){case ee.BYTE:return"BYTE";case ee.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case ee.SHORT:return"SHORT";case ee.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case ee.INT:return"INT";case ee.UNSIGNED_INT:return"UNSIGNED_INT";case ee.DOUBLE:return"DOUBLE";case ee.FLOAT:return"FLOAT"}}function vw(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new mie,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new mie;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new kze;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=y(t.normalized,!1),r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=jn.decodeRGB565(i)),u(t.constantColor)){let a=new Array(4);r.constant=z.pack(t.constantColor,a)}else{let a=ut.createVertexBuffer({typedArray:i,context:n,usage:Be.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===Tt.POSITION&&s&&(r.typedArray=i),r}var pie,A2;function qze(e){if(!u(A2)){pie=new _ie.default(0),A2=new Array(e);for(let t=0;t<e;++t)A2[t]=pie.random()}return A2}var Yze=new h,Xze=new h,Kze=new h;function Zze(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=qze(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,Yze),l=h.fromElements(a,a,a,Xze),f,d,p;if(e.isQuantized)c=h.ZERO,l=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,Kze),h.minimumByComponent(c,p,c),h.maximumByComponent(l,p,l);e.min=h.clone(c),e.max=h.clone(l)}var $ze={name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:z.DARKGRAY,componentDatatype:X.FLOAT,type:rn.VEC4,isQuantized:!1,isTranslucent:!1};function Qze(e,t,n){let i=[],o,r=t.positions;return u(r)&&(Zze(r),o=vw(e,r,n),o.count=t.pointsLength,i.push(o)),u(t.normals)&&(o=vw(e,t.normals,n),i.push(o)),u(t.colors)?(o=vw(e,t.colors,n),i.push(o)):(o=vw(e,$ze,n),i.push(o)),u(t.batchIds)&&(o=vw(e,t.batchIds,n),i.push(o)),i}function Jze(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!u(e.batchIds);if(u(o)||e.hasDracoBatchTable){let s=y(n,i);return Z_({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new Na({schema:{},propertyTables:[]})}function e4e(e,t){let n=e._parsedContent,i=new zze;i.metallicFactor=0,i.roughnessFactor=.9;let o=new Vze;o.metallicRoughness=i;let r=n.colors;u(r)&&r.isTranslucent&&(o.alphaMode=Jm.BLEND);let s=!u(n.normals);o.unlit=s;let a=new Bze;if(a.attributes=Qze(e,n,t),a.primitiveType=Le.POINTS,a.material=o,u(n.batchIds)){let g=new Uze;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new Fze;c.index=0,c.primitives=[a];let l=new Nze;l.nodes=[c],l.upAxis=wo.Z,l.forwardAxis=wo.X;let f=new Lze;f.scene=l,f.nodes=[c];let d=[];f.structuralMetadata=Jze(n,d),d.length>0&&t4e(e,a,d,t),u(n.rtcCenter)&&(f.transform=L.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;u(p)&&p.isQuantized&&(f.transform=L.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function t4e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=ut.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Be.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}ig.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var C2=ig;function yo(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,lr.GLTF),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=L.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=u(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new QL(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=z.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,gc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,z.RED);this._silhouetteColor=z.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,Ee.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new se,this._initialRadius=void 0,this._heightReference=y(e.heightReference,We.NONE),this._heightDirty=this._heightReference!==We.NONE,this._removeUpdateHeightCallback=void 0,this._clampedModelMatrix=void 0;let o=e.scene;u(o)&&u(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(function(){this._heightDirty=!0},this)),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new tp(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;u(s)&&s.owner===void 0?xs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=L.clone(L.IDENTITY),this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=u(e.imageBasedLighting)?e.imageBasedLighting:new AT,this._shouldDestroyImageBasedLighting=!u(e.imageBasedLighting),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,gn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===lr.GLTF&&It("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let a=e.credit;typeof a=="string"&&(a=new bt(a)),this._credits=[],this._credit=a,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,il.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this._classificationType=e.classificationType,this._statistics=new T2,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new pe,this._readyEvent=new pe,this._texturesReadyEvent=new pe,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function h6(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function n4e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new eN({model:e,propertyTable:s});n.push(a)}return n}function i4e(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],u(a.instances)&&(s=en.getFeatureIdsByLabel(a.instances.featureIds,i),u(s)&&u(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],l=en.getFeatureIdsByLabel(c.featureIds,n);if(u(l))return l.propertyTableId}if(t._featureTables.length===1)return 0}function p6(e,t){if(!u(e)&&!u(t))return!1;if(u(e)!==u(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(yo.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=wt.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){p6(e,this._color)&&this.resetDrawCommands(),this._color=z.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!z.equals(e,this._silhouetteColor)){let t=p6(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=z.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=u(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return xie(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===lr.GLTF&&It("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(xs.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){u(e)!==u(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});yo.prototype.getNode=function(e){return this._nodesByName[e]};yo.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};yo.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};yo.prototype.makeStyleDirty=function(){this._styleDirty=!0};yo.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var o4e=new L,r4e=new $,s4e=new L;yo.prototype.update=function(e){let t=!1;try{t=a4e(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")h6(this,n);else{let i=en.getError("model",this._resource,n);h6(this,i)}}if(c4e(this,e),l4e(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!u(n)){if(this._loader.isUnloaded())return;let r=en.getError("model",this._resource,new ue("Failed to load model."));h6(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;u(i)&&i.propertyTableCount>0&&n4e(this,i);let o=new b2({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===te.MORPHING)){if(u4e(this),f4e(this),d4e(this,e),h4e(this),m4e(this,e),p4e(this,e),_4e(this,e),g4e(this,e),this._defaultTexture=e.context.defaultTexture,y4e(this,e),x4e(this,e),b4e(this),T4e(this,e),E4e(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),C4e(this),S4e(this,e),w4e(this),v4e(this,e)}};function a4e(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function c4e(e,t){u(e._customShader)&&e._customShader.update(t)}function l4e(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function u4e(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;u(n)&&n.propertyTableCount>0&&(e.featureTableId=i4e(t,e),e._styleDirty=!0,e.resetDrawCommands())}function f4e(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function d4e(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&yie(e)}function yie(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=Ih.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function h4e(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function m4e(e,t){e._silhouetteDirty&&(bie(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function p4e(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function _4e(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function g4e(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function y4e(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function x4e(e,t){L.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=L.clone(e.modelMatrix,e._modelMatrix))}var Ph=new h,E2=new fe;function b4e(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;u(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!u(t)||!u(t.globe)||e.heightReference===We.NONE){e._clampedModelMatrix=void 0;return}let n=t.globe,i=n.ellipsoid,o=e.modelMatrix;Ph.x=o[12],Ph.y=o[13],Ph.z=o[14];let r=i.cartesianToCartographic(Ph);u(e._clampedModelMatrix)||(e._clampedModelMatrix=L.clone(o,new L));let s=n._surface;e._removeUpdateHeightCallback=s.updateHeight(r,gie(e,i,r));let a=n.getHeight(r);if(u(a)){let c=gie(e,i,r);fe.clone(r,E2),E2.height=a,i.cartographicToCartesian(E2,Ph),c(Ph)}e._heightDirty=!1,e._updateModelMatrix=!0}function T4e(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;xie(e,n),A4e(e,n,t)}function xie(e,t){e._clampedScale=u(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=se.transform(e._boundingSphere,t,e._boundingSphere)}function A4e(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);L.getTranslation(t,Ph),e._sceneMode!==te.SCENE3D&&$i.computeActualWgs84Position(n,Ph,Ph);let s=e._boundingSphere.radius,a=D4e(Ph,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=u(e.maximumScale)?Math.min(e.maximumScale,i):i}function C4e(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}function E4e(e,t){let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=e._imageBasedLighting;if(r.useSphericalHarmonicCoefficients||r.useSpecularEnvironmentMaps){let s=r4e,a=o4e;a=L.multiply(o.uniformState.view3D,i,a),s=L.getMatrix3(a,s),s=$.getRotation(s,s),e._iblReferenceFrameMatrix=$.transpose(s,e._iblReferenceFrameMatrix)}if(e.isClippingEnabled()){let s=s4e;s=L.multiply(o.uniformState.view3D,i,s),s=L.multiply(s,e._clippingPlanes.modelMatrix,s),e._clippingPlanesMatrix=L.inverseTranspose(s,e._clippingPlanesMatrix)}}function S4e(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;u(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function w4e(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(u(e._credit)){let s=bt.clone(e._credit);s.showOnScreen=s.showOnScreen||t,e._credits.push(s)}let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++){let a=bt.clone(n[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++){let a=bt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function v4e(e,t){let n=P4e(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(O4e(e,t),e._sceneGraph.pushDrawCommands(t))}var m6=new se;function D4e(e,t,n){return m6.center=e,m6.radius=t,n.camera.getPixelSize(m6,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}function gie(e,t,n){return function(i){if(e.heightReference===We.RELATIVE_TO_GROUND){let r=t.cartesianToCartographic(i,E2);r.height+=n.height,t.cartographicToCartesian(r,i)}let o=e._clampedModelMatrix;L.clone(e.modelMatrix,o),o[12]=i.x,o[13]=i.y,o[14]=i.z,e._heightDirty=!0}}var I4e=new h;function P4e(e,t){let n=e.distanceDisplayCondition;if(!u(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===te.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=L.getTranslation(e.modelMatrix,I4e);$i.computeActualWgs84Position(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function O4e(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}yo.prototype.isTranslucent=function(){let e=this.color;return u(e)&&e.alpha>0&&e.alpha<1};yo.prototype.isInvisible=function(){let e=this.color;return u(e)&&e.alpha===0};function bie(e){return e.context.stencilBuffer}yo.prototype.hasSilhouette=function(e){return bie(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!u(this._classificationType)};yo.prototype.hasSkipLevelOfDetail=function(e){if(!lr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};yo.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return u(e)&&e.enabled&&e.length!==0};yo.prototype.isDestroyed=function(){return!1};yo.prototype.destroy=function(){let e=this._loader;u(e)&&e.destroy();let t=this._featureTables;if(u(t)){let i=t.length;for(let o=0;o<i;o++)t[o].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),u(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),u(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;u(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,le(this)};yo.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};yo.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};yo.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},i=y(e.basePath,""),o=ve.createIfNeeded(i);u(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=ve.createIfNeeded(t);let r=new X_(n),a=u(e.content)?lr.TILE_GLTF:lr.GLTF,c=n.gltfResource,l=Dw(r,a,e);l.resource=c;try{await r.load()}catch(g){throw r.destroy(),en.getError("model",c,g)}let f=e.gltfCallback;u(f)&&f(r.gltfJson);let d=new yo(l),p=d._resource.credits;if(u(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(bt.clone(p[m]))}return d};yo.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},n=new kL(t);try{await n.load();let i=Dw(n,lr.TILE_B3DM,e);return new yo(i)}catch(i){throw n.destroy(),i}};yo.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new C2(t);try{await n.load();let i=Dw(n,lr.TILE_PNTS,e);return new yo(i)}catch(i){throw n.destroy(),i}};yo.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new jL(t);try{await n.load();let i=Dw(n,lr.TILE_I3DM,e);return new yo(i)}catch(i){throw n.destroy(),i}};yo.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new VL(t),i=Dw(n,lr.TILE_GEOJSON,e);return new yo(i)};var R4e=new z;yo.prototype.applyColorAndShow=function(e){let t=z.clone(this._color,R4e),n=u(e)&&u(e.color),i=u(e)&&u(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):z.clone(z.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,p6(t,this._color)&&this.resetDrawCommands()};yo.prototype.applyStyle=function(e){let t=this.type===lr.TILE_PNTS,n=u(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=u(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=u(i)&&u(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),yie(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function Dw(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Oh=yo;function Ts(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Ts.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return u(t)&&u(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(u(t)&&u(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Ts.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};Ts.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return u(i)?n.featureTables[i].hasProperty(e,t):!1};Ts.prototype.applyDebugSettings=function(e,t){t=e?t:z.WHITE,this.featuresLength===0?this._model.color=t:u(this.batchTable)&&this.batchTable.setAllColor(t)};Ts.prototype.applyStyle=function(e){this._model.style=e};Ts.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,u(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),u(o)&&u(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Wl.REPEAT}),this._ready=!0)};Ts.prototype.isDestroyed=function(){return!1};Ts.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),le(this)};Ts.fromGltf=async function(e,t,n,i){let o=new Ts(e,t,n),s=Iw(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Oh.fromGltfAsync(s);return o._model=c,o};Ts.fromB3dm=async function(e,t,n,i,o){let r=new Ts(e,t,n),a=Iw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let l=await Oh.fromB3dm(a);return r._model=l,r};Ts.fromI3dm=async function(e,t,n,i,o){let r=new Ts(e,t,n),a=Iw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Oh.fromI3dm(a);return r._model=c,r};Ts.fromPnts=async function(e,t,n,i,o){let r=new Ts(e,t,n),a=Iw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Oh.fromPnts(a);return r._model=c,r};Ts.fromGeoJson=async function(e,t,n,i){let o=new Ts(e,t,n),s=Iw(e,t,o,{geoJson:i,resource:n}),a=await Oh.fromGeoJson(s);return o._model=a,o};function Iw(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:Ee.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return gt(i,o)}var lp=Ts;function Jf(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Jf.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Jf.fromJson=function(e,t,n,i){let o=new Jf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Jf.prototype.hasProperty=function(e,t){return!1};Jf.prototype.getFeature=function(e){};Jf.prototype.applyDebugSettings=function(e,t){};Jf.prototype.applyStyle=function(e){};Jf.prototype.update=function(e,t){};Jf.prototype.isDestroyed=function(){return!1};Jf.prototype.destroy=function(){return le(this)};var S2=Jf;var w2=`uniform sampler2D u_atlas;
- #ifdef VECTOR_TILE
- uniform vec4 u_highlightColor;
- #endif
- in vec2 v_textureCoordinates;
- in vec4 v_pickColor;
- in vec4 v_color;
- #ifdef SDF
- in vec4 v_outlineColor;
- in float v_outlineWidth;
- #endif
- #ifdef FRAGMENT_DEPTH_CHECK
- in vec4 v_textureCoordinateBounds;
- in vec4 v_originTextureCoordinateAndTranslate;
- in vec4 v_compressed;
- in mat2 v_rotationMatrix;
- const float SHIFT_LEFT12 = 4096.0;
- const float SHIFT_LEFT1 = 2.0;
- const float SHIFT_RIGHT12 = 1.0 / 4096.0;
- const float SHIFT_RIGHT1 = 1.0 / 2.0;
- float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize)
- {
- vec2 lookupVector = imageSize * (depthLookupST - adjustedST);
- lookupVector = v_rotationMatrix * lookupVector;
- vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y));
- vec2 translation = v_originTextureCoordinateAndTranslate.zw;
- if (applyTranslate)
- {
-
-
- translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0));
- }
- vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw;
- float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st));
- if (logDepthOrDepth == 0.0)
- {
- return 0.0;
- }
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
- return eyeCoordinate.z / eyeCoordinate.w;
- }
- #endif
- #ifdef SDF
- float getDistance(vec2 position)
- {
- return texture(u_atlas, position).r;
- }
- vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing)
- {
- float distance = getDistance(position);
- if (outlineWidth > 0.0)
- {
-
- float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE);
- float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance);
- vec4 sdfColor = mix(outlineColor, v_color, outlineFactor);
- float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance);
- return vec4(sdfColor.rgb, sdfColor.a * alpha);
- }
- else
- {
- float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance);
- return vec4(v_color.rgb, v_color.a * alpha);
- }
- }
- #endif
- void main()
- {
- vec4 color = texture(u_atlas, v_textureCoordinates);
- #ifdef SDF
- float outlineWidth = v_outlineWidth;
- vec4 outlineColor = v_outlineColor;
-
- float distance = getDistance(v_textureCoordinates);
- #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
- float smoothing = fwidth(distance);
-
-
- vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates));
-
- vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing);
-
- vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing);
- vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing);
- vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing);
- vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing);
-
- color = (center + color1 + color2 + color3 + color4)/5.0;
- #else
-
- float smoothing = 1.0/32.0;
- color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing);
- #endif
- color = czm_gammaCorrect(color);
- #else
- color = czm_gammaCorrect(color);
- color *= czm_gammaCorrect(v_color);
- #endif
- #if !defined(OPAQUE) && !defined(TRANSLUCENT)
- if (color.a < 0.005)
- {
- discard;
- }
- #else
- #ifdef OPAQUE
- if (color.a < 0.995)
- {
- discard;
- }
- #else
- if (color.a >= 0.995)
- {
- discard;
- }
- #endif
- #endif
- #ifdef VECTOR_TILE
- color *= u_highlightColor;
- #endif
- out_FragColor = color;
- #ifdef LOG_DEPTH
- czm_writeLogDepth();
- #endif
- #ifdef FRAGMENT_DEPTH_CHECK
- float temp = v_compressed.y;
- temp = temp * SHIFT_RIGHT1;
- float temp2 = (temp - floor(temp)) * SHIFT_LEFT1;
- bool enableDepthTest = temp2 != 0.0;
- bool applyTranslate = floor(temp) != 0.0;
- if (enableDepthTest) {
- temp = v_compressed.z;
- temp = temp * SHIFT_RIGHT12;
- vec2 dimensions;
- dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;
- dimensions.x = floor(temp);
- temp = v_compressed.w;
- temp = temp * SHIFT_RIGHT12;
- vec2 imageSize;
- imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12;
- imageSize.x = floor(temp);
- vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy;
- adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y);
- float epsilonEyeDepth = v_compressed.x + czm_epsilon1;
- float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize);
-
- if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth)
- {
- float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize);
- if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth)
- {
- float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize);
- if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth)
- {
- discard;
- }
- }
- }
- }
- #endif
- }
- `;var v2=`#ifdef INSTANCED
- in vec2 direction;
- #endif
- in vec4 positionHighAndScale;
- in vec4 positionLowAndRotation;
- in vec4 compressedAttribute0;
- in vec4 compressedAttribute1;
- in vec4 compressedAttribute2;
- in vec4 eyeOffset;
- in vec4 scaleByDistance;
- in vec4 pixelOffsetScaleByDistance;
- in vec4 compressedAttribute3;
- in vec2 sdf;
- #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)
- in vec4 textureCoordinateBoundsOrLabelTranslate;
- #endif
- #ifdef VECTOR_TILE
- in float a_batchId;
- #endif
- out vec2 v_textureCoordinates;
- #ifdef FRAGMENT_DEPTH_CHECK
- out vec4 v_textureCoordinateBounds;
- out vec4 v_originTextureCoordinateAndTranslate;
- out vec4 v_compressed;
- out mat2 v_rotationMatrix;
- #endif
- out vec4 v_pickColor;
- out vec4 v_color;
- #ifdef SDF
- out vec4 v_outlineColor;
- out float v_outlineWidth;
- #endif
- const float UPPER_BOUND = 32768.0;
- const float SHIFT_LEFT16 = 65536.0;
- const float SHIFT_LEFT12 = 4096.0;
- const float SHIFT_LEFT8 = 256.0;
- const float SHIFT_LEFT7 = 128.0;
- const float SHIFT_LEFT5 = 32.0;
- const float SHIFT_LEFT3 = 8.0;
- const float SHIFT_LEFT2 = 4.0;
- const float SHIFT_LEFT1 = 2.0;
- const float SHIFT_RIGHT12 = 1.0 / 4096.0;
- const float SHIFT_RIGHT8 = 1.0 / 256.0;
- const float SHIFT_RIGHT7 = 1.0 / 128.0;
- const float SHIFT_RIGHT5 = 1.0 / 32.0;
- const float SHIFT_RIGHT3 = 1.0 / 8.0;
- const float SHIFT_RIGHT2 = 1.0 / 4.0;
- const float SHIFT_RIGHT1 = 1.0 / 2.0;
- vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp)
- {
-
-
- vec2 halfSize = imageSize * scale * 0.5;
- halfSize *= ((direction * 2.0) - 1.0);
- vec2 originTranslate = origin * abs(halfSize);
- #if defined(ROTATION) || defined(ALIGNED_AXIS)
- if (validAlignedAxis || rotation != 0.0)
- {
- float angle = rotation;
- if (validAlignedAxis)
- {
- vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0);
- angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) /
- (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y));
- }
- float cosTheta = cos(angle);
- float sinTheta = sin(angle);
- rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta);
- halfSize = rotationMatrix * halfSize;
- }
- else
- {
- rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);
- }
- #endif
- mpp = czm_metersPerPixel(positionEC);
- positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp);
- positionEC.xy += (translate + pixelOffset) * mpp;
- return positionEC;
- }
- #ifdef VERTEX_DEPTH_CHECK
- float getGlobeDepth(vec4 positionEC)
- {
- vec4 posWC = czm_eyeToWindowCoordinates(positionEC);
- float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw));
- if (globeDepth == 0.0)
- {
- return 0.0;
- }
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth);
- return eyeCoordinate.z / eyeCoordinate.w;
- }
- #endif
- void main()
- {
-
-
- vec3 positionHigh = positionHighAndScale.xyz;
- vec3 positionLow = positionLowAndRotation.xyz;
- float scale = positionHighAndScale.w;
- #if defined(ROTATION) || defined(ALIGNED_AXIS)
- float rotation = positionLowAndRotation.w;
- #else
- float rotation = 0.0;
- #endif
- float compressed = compressedAttribute0.x;
- vec2 pixelOffset;
- pixelOffset.x = floor(compressed * SHIFT_RIGHT7);
- compressed -= pixelOffset.x * SHIFT_LEFT7;
- pixelOffset.x -= UPPER_BOUND;
- vec2 origin;
- origin.x = floor(compressed * SHIFT_RIGHT5);
- compressed -= origin.x * SHIFT_LEFT5;
- origin.y = floor(compressed * SHIFT_RIGHT3);
- compressed -= origin.y * SHIFT_LEFT3;
- #ifdef FRAGMENT_DEPTH_CHECK
- vec2 depthOrigin = origin.xy;
- #endif
- origin -= vec2(1.0);
- float show = floor(compressed * SHIFT_RIGHT2);
- compressed -= show * SHIFT_LEFT2;
- #ifdef INSTANCED
- vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w);
- vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w);
- vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange;
- #else
- vec2 direction;
- direction.x = floor(compressed * SHIFT_RIGHT1);
- direction.y = compressed - direction.x * SHIFT_LEFT1;
- vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w);
- #endif
- float temp = compressedAttribute0.y * SHIFT_RIGHT8;
- pixelOffset.y = -(floor(temp) - UPPER_BOUND);
- vec2 translate;
- translate.y = (temp - floor(temp)) * SHIFT_LEFT16;
- temp = compressedAttribute0.z * SHIFT_RIGHT8;
- translate.x = floor(temp) - UPPER_BOUND;
- translate.y += (temp - floor(temp)) * SHIFT_LEFT8;
- translate.y -= UPPER_BOUND;
- temp = compressedAttribute1.x * SHIFT_RIGHT8;
- float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2);
- vec2 imageSize = vec2(floor(temp), temp2);
- #ifdef FRAGMENT_DEPTH_CHECK
- float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));
- float applyTranslate = 0.0;
- if (labelHorizontalOrigin != 0.0)
- {
- applyTranslate = 1.0;
- labelHorizontalOrigin -= 2.0;
- depthOrigin.x = labelHorizontalOrigin + 1.0;
- }
- depthOrigin = vec2(1.0) - (depthOrigin * 0.5);
- #endif
- #ifdef EYE_DISTANCE_TRANSLUCENCY
- vec4 translucencyByDistance;
- translucencyByDistance.x = compressedAttribute1.z;
- translucencyByDistance.z = compressedAttribute1.w;
- translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
- temp = compressedAttribute1.y * SHIFT_RIGHT8;
- translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
- #endif
- #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)
- temp = compressedAttribute3.w;
- temp = temp * SHIFT_RIGHT12;
- vec2 dimensions;
- dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;
- dimensions.x = floor(temp);
- #endif
- #ifdef ALIGNED_AXIS
- vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8));
- temp = compressedAttribute2.z * SHIFT_RIGHT5;
- bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0;
- #else
- vec3 alignedAxis = vec3(0.0);
- bool validAlignedAxis = false;
- #endif
- vec4 pickColor;
- vec4 color;
- temp = compressedAttribute2.y;
- temp = temp * SHIFT_RIGHT8;
- pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
- pickColor.r = floor(temp);
- temp = compressedAttribute2.x;
- temp = temp * SHIFT_RIGHT8;
- color.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- color.g = (temp - floor(temp)) * SHIFT_LEFT8;
- color.r = floor(temp);
- temp = compressedAttribute2.z * SHIFT_RIGHT8;
- bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0;
- temp = floor(temp) * SHIFT_RIGHT8;
- pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
- pickColor /= 255.0;
- color.a = floor(temp);
- color /= 255.0;
-
- vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
- vec4 positionEC = czm_modelViewRelativeToEye * p;
- #if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK)
- float eyeDepth = positionEC.z;
- #endif
- positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz);
- positionEC.xyz *= show;
-
- #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)
- float lengthSq;
- if (czm_sceneMode == czm_sceneMode2D)
- {
-
-
- lengthSq = czm_eyeHeight2D.y;
- }
- else
- {
- lengthSq = dot(positionEC.xyz, positionEC.xyz);
- }
- #endif
- #ifdef EYE_DISTANCE_SCALING
- float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq);
- scale *= distanceScale;
- translate *= distanceScale;
-
- if (scale == 0.0)
- {
- positionEC.xyz = vec3(0.0);
- }
- #endif
- float translucency = 1.0;
- #ifdef EYE_DISTANCE_TRANSLUCENCY
- translucency = czm_nearFarScalar(translucencyByDistance, lengthSq);
-
- if (translucency == 0.0)
- {
- positionEC.xyz = vec3(0.0);
- }
- #endif
- #ifdef EYE_DISTANCE_PIXEL_OFFSET
- float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq);
- pixelOffset *= pixelOffsetScale;
- #endif
- #ifdef DISTANCE_DISPLAY_CONDITION
- float nearSq = compressedAttribute3.x;
- float farSq = compressedAttribute3.y;
- if (lengthSq < nearSq || lengthSq > farSq)
- {
- positionEC.xyz = vec3(0.0);
- }
- #endif
- mat2 rotationMatrix;
- float mpp;
- #ifdef DISABLE_DEPTH_DISTANCE
- float disableDepthTestDistance = compressedAttribute3.z;
- #endif
- #ifdef VERTEX_DEPTH_CHECK
- if (lengthSq < disableDepthTestDistance) {
- float depthsilon = 10.0;
- vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy;
- vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
- float globeDepth1 = getGlobeDepth(pEC1);
- if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1)
- {
- vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
- float globeDepth2 = getGlobeDepth(pEC2);
- if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2)
- {
- vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
- float globeDepth3 = getGlobeDepth(pEC3);
- if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3)
- {
- positionEC.xyz = vec3(0.0);
- }
- }
- }
- }
- #endif
- positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);
- gl_Position = czm_projection * positionEC;
- v_textureCoordinates = textureCoordinates;
- #ifdef LOG_DEPTH
- czm_vertexLogDepth();
- #endif
- #ifdef DISABLE_DEPTH_DISTANCE
- if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)
- {
- disableDepthTestDistance = czm_minimumDisableDepthTestDistance;
- }
- if (disableDepthTestDistance != 0.0)
- {
-
- float zclip = gl_Position.z / gl_Position.w;
- bool clipped = (zclip < -1.0 || zclip > 1.0);
- if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))
- {
-
- gl_Position.z = -gl_Position.w;
- #ifdef LOG_DEPTH
- v_depthFromNearPlusOne = 1.0;
- #endif
- }
- }
- #endif
- #ifdef FRAGMENT_DEPTH_CHECK
- if (sizeInMeters) {
- translate /= mpp;
- dimensions /= mpp;
- imageSize /= mpp;
- }
- #if defined(ROTATION) || defined(ALIGNED_AXIS)
- v_rotationMatrix = rotationMatrix;
- #else
- v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);
- #endif
- float enableDepthCheck = 0.0;
- if (lengthSq < disableDepthTestDistance)
- {
- enableDepthCheck = 1.0;
- }
- float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12));
- float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12));
- float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12));
- float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12));
- v_compressed.x = eyeDepth;
- v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck;
- v_compressed.z = dw * SHIFT_LEFT12 + dh;
- v_compressed.w = iw * SHIFT_LEFT12 + ih;
- v_originTextureCoordinateAndTranslate.xy = depthOrigin;
- v_originTextureCoordinateAndTranslate.zw = translate;
- v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate;
- #endif
- #ifdef SDF
- vec4 outlineColor;
- float outlineWidth;
- temp = sdf.x;
- temp = temp * SHIFT_RIGHT8;
- outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
- outlineColor.r = floor(temp);
- temp = sdf.y;
- temp = temp * SHIFT_RIGHT8;
- float temp3 = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8;
- outlineColor.a = floor(temp);
- outlineColor /= 255.0;
- v_outlineWidth = outlineWidth / 255.0;
- v_outlineColor = outlineColor;
- v_outlineColor.a *= translucency;
- #endif
- v_pickColor = pickColor;
- v_color = color;
- v_color.a *= translucency;
- }
- `;function bi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;u(n)&&(n=Ot.clone(n)),u(i)&&(i=Ot.clone(i)),u(o)&&(o=Ot.clone(o)),u(r)&&(r=wt.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=V.clone(y(e.pixelOffset,V.ZERO)),this._translate=new V(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,We.NONE),this._verticalOrigin=y(e.verticalOrigin,Pn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,_i.CENTER),this._scale=y(e.scale,1),this._color=z.clone(y(e.color,z.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;u(s)&&(u(a)||(typeof s=="string"?a=s:u(s.src)?a=s.src:a=Gn()),this._imageId=a,this._image=s),u(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),u(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=te.SCENE3D,this._clusterShow=!0,this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var Tie=bi.SHOW_INDEX=0,I2=bi.POSITION_INDEX=1,wie=bi.PIXEL_OFFSET_INDEX=2,M4e=bi.EYE_OFFSET_INDEX=3,L4e=bi.HORIZONTAL_ORIGIN_INDEX=4,N4e=bi.VERTICAL_ORIGIN_INDEX=5,F4e=bi.SCALE_INDEX=6,P2=bi.IMAGE_INDEX_INDEX=7,Aie=bi.COLOR_INDEX=8,B4e=bi.ROTATION_INDEX=9,k4e=bi.ALIGNED_AXIS_INDEX=10,U4e=bi.SCALE_BY_DISTANCE_INDEX=11,V4e=bi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,z4e=bi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,H4e=bi.DISTANCE_DISPLAY_CONDITION=14,G4e=bi.DISABLE_DEPTH_DISTANCE=15;bi.TEXTURE_COORDINATE_BOUNDS=16;var Cie=bi.SDF_INDEX=17;bi.NUMBER_OF_PROPERTIES=18;function Io(e,t){let n=e._billboardCollection;u(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(bi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Io(this,Tie))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),Io(this,I2))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Io(this,I2))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;V.equals(t,e)||(V.clone(e,t),Io(this,wie))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Ot.equals(t,e)||(this._scaleByDistance=Ot.clone(e,t),Io(this,U4e))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Ot.equals(t,e)||(this._translucencyByDistance=Ot.clone(e,t),Io(this,V4e))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Ot.equals(t,e)||(this._pixelOffsetScaleByDistance=Ot.clone(e,t),Io(this,z4e))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),Io(this,M4e))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Io(this,L4e))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Io(this,N4e))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Io(this,F4e))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),Io(this,Aie))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Io(this,B4e))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),Io(this,k4e))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,Io(this,P2))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,Io(this,P2))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Io(this,Aie))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){wt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=wt.clone(e,this._distanceDisplayCondition),Io(this,H4e))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Io(this,G4e))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,u(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){u(e)?typeof e=="string"?this.setImage(e,e):e instanceof ve?this.setImage(e.url,e):u(e.src)?this.setImage(e.src,e):this.setImage(Gn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,Io(this,P2))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),Io(this,I2)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Io(this,Tie))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),Io(this,Cie))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Io(this,Cie))}}});bi.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};bi.prototype._updateClamping=function(){bi._updateClamping(this._billboardCollection,this)};var Pw=new fe,Eie=new h;bi._updateClamping=function(e,t){let n=e._scene;if(!u(n)||!u(n.globe))return;let i=n.globe,o=i.ellipsoid,r=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===We.NONE||a)&&u(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===We.NONE||!u(t._position))return;let c=o.cartesianToCartographic(t._position);if(!u(c)){t._actualClampedPosition=void 0;return}u(t._removeCallbackFunc)&&t._removeCallbackFunc();function l(d){if(t._heightReference===We.RELATIVE_TO_GROUND)if(t._mode===te.SCENE3D){let p=o.cartesianToCartographic(d,Pw);p.height+=c.height,o.cartographicToCartesian(p,d)}else d.x+=c.height;t._clampedPosition=h.clone(d,t._clampedPosition)}t._removeCallbackFunc=r.updateHeight(c,l),fe.clone(c,Pw);let f=i.getHeight(c);u(f)&&(Pw.height=f),o.cartographicToCartesian(Pw,Eie),l(Eie)};bi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!qe.equals(r._imageSubRegion,i))return;let l=e.textureCoordinates[c];r._imageWidth=e.texture.width*l.width,r._imageHeight=e.texture.height*l.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,Io(r,P2);let f=r._billboardCollection._scene;u(f)&&f.frameState.afterRender.push(()=>!0)}if(u(n)&&(o=e.addImage(t,n)),u(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!u(o))return;let a=e.getImageIndex(t);if(u(a)&&!u(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};bi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,u(this._billboardCollection._textureAtlas)&&this._loadImage())};bi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&qe.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=qe.clone(t),u(this._billboardCollection._textureAtlas)&&this._loadImage())};bi.prototype._setTranslate=function(e){let t=this._translate;V.equals(t,e)||(V.clone(e,t),Io(this,wie))};bi.prototype._getActualPosition=function(){return u(this._clampedPosition)?this._clampedPosition:this._actualPosition};bi.prototype._setActualPosition=function(e){u(this._clampedPosition)||h.clone(e,this._actualPosition),Io(this,I2)};var Sie=new oe;bi._computeActualPosition=function(e,t,n,i){return u(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===te.SCENE3D?t:(L.multiplyByPoint(i,t,Sie),$i.computeActualWgs84Position(n,Sie))};var vie=new h;bi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=L.multiplyByPoint(e,t,vie),a=$i.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(u(a))return V.add(a,i,a),a};var D2=new V(0,0);bi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;u(t)||(t=new V),V.clone(this._pixelOffset,D2),V.add(D2,this._translate,D2);let i=n.modelMatrix,o=this._position;if(u(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==te.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,Pw);o=a.cartographicToCartesian(c,vie),i=L.IDENTITY}return bi._computeScreenSpacePosition(i,o,this._eyeOffset,D2,e,t)};bi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===_i.RIGHT?s-=i:e.horizontalOrigin===_i.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?a-=o:e.verticalOrigin===Pn.CENTER&&(a-=o*.5),u(n)||(n=new qe),n.x=s,n.y=a,n.width=i,n.height=o,n};bi.prototype.equals=function(e){return this===e||u(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&qe.equals(this._imageSubRegion,e._imageSubRegion)&&z.equals(this._color,e._color)&&V.equals(this._pixelOffset,e._pixelOffset)&&V.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Ot.equals(this._scaleByDistance,e._scaleByDistance)&&Ot.equals(this._translucencyByDistance,e._translucencyByDistance)&&Ot.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&wt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};bi.prototype._destroy=function(){u(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),u(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var ho=bi;var W4e={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Ao=Object.freeze(W4e);var j4e={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Bs=Object.freeze(j4e);function up(e,t,n,i,o){this.bottomLeft=y(e,V.ZERO),this.topRight=y(t,V.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var q4e=new V(16,16);function og(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,q4e);this._context=e.context,this._pixelFormat=y(e.pixelFormat,rt.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Gn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(og.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return u(this._texture)||(this._texture=new Pt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function Y4e(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),l=o*(a+t.height+r),f=s/c,d=a/l,p=new up(new V(s+r,r),new V(c,a)),g=new up(new V,new V(c,a),e._root,p),m=new up(new V(r,a+r),new V(c,l)),x=new up(new V,new V(c,l),g,m);for(let A=0;A<e._textureCoordinates.length;A++){let C=e._textureCoordinates[A];u(C)&&(C.x*=f,C.y*=d,C.width*=f,C.height*=d)}let b=new Pt({context:e._context,width:c,height:l,pixelFormat:e._pixelFormat}),T=new ta({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,l),T._unBind(),T.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=b,e._root=x}else{let s=o*(t.width+2*r),a=o*(t.height+2*r);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Pt({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new up(new V(r,r),new V(s,a))}}function O2(e,t,n){if(u(t)){if(!u(t.childNode1)&&!u(t.childNode2)){if(u(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,o=t.topRight.y-t.bottomLeft.y,r=i-n.width,s=o-n.height;if(r<0||s<0)return;if(r===0&&s===0)return t;if(r>s){t.childNode1=new up(new V(t.bottomLeft.x,t.bottomLeft.y),new V(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new up(new V(a,t.bottomLeft.y),new V(t.topRight.x,t.topRight.y)))}else{t.childNode1=new up(new V(t.bottomLeft.x,t.bottomLeft.y),new V(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new up(new V(t.bottomLeft.x,a),new V(t.topRight.x,t.topRight.y)))}return O2(e,t.childNode1,n)}return O2(e,t.childNode1,n)||O2(e,t.childNode2,n)}}function Die(e,t,n){let i=O2(e,e._root,t);if(u(i)){i.imageIndex=n;let o=e._texture.width,r=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/o,l=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new qe(c,l,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else Y4e(e,t),Die(e,t,n);e._guid=Gn()}function Iie(e,t){if(!u(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Die(e,t,n),n}og.prototype.getImageIndex=function(e){return this._indexHash[e]};og.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return u(n)||(n=Iie(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};og.prototype.addImage=function(e,t){let n=this._idHash[e];if(u(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof ve)&&(t=ve.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=Iie(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};og.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!u(n))throw new ue(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(o){if(o===-1)return-1;let r=i._texture.width,s=i._texture.height,a=i._textureCoordinates[o],c=a.x+t.x/r,l=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new qe(c,l,f,d))-1;return i._indexHash[e]=p,i._guid=Gn(),p})};og.prototype.isDestroyed=function(){return!1};og.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),le(this)};var V0=og;var X4e=ho.SHOW_INDEX,Rw=ho.POSITION_INDEX,Pie=ho.PIXEL_OFFSET_INDEX,Oie=ho.EYE_OFFSET_INDEX,K4e=ho.HORIZONTAL_ORIGIN_INDEX,Z4e=ho.VERTICAL_ORIGIN_INDEX,$4e=ho.SCALE_INDEX,Ow=ho.IMAGE_INDEX_INDEX,Rie=ho.COLOR_INDEX,Q4e=ho.ROTATION_INDEX,J4e=ho.ALIGNED_AXIS_INDEX,Mie=ho.SCALE_BY_DISTANCE_INDEX,Lie=ho.TRANSLUCENCY_BY_DISTANCE_INDEX,Nie=ho.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,Fie=ho.DISTANCE_DISPLAY_CONDITION,e8e=ho.DISABLE_DEPTH_DISTANCE,t8e=ho.TEXTURE_COORDINATE_BOUNDS,Bie=ho.SDF_INDEX,A6=ho.NUMBER_OF_PROPERTIES,mo,n8e={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11},i8e={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12};function ju(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(A6),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=L.clone(L.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,Ao.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=te.SCENE3D,this._buffersUsage=[Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW],this._highlightColor=z.clone(z.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;u(n)&&u(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)u(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(ju.prototype,{length:{get:function(){return C6(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function kie(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}ju.prototype.add=function(e){let t=new ho(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};ju.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};ju.prototype.removeAll=function(){kie(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function C6(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];u(s)&&(s._index=r++,t.push(s))}e._billboards=t}}ju.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};ju.prototype.contains=function(e){return u(e)&&e._billboardCollection===this};ju.prototype.get=function(e){return C6(this),this._billboards[e]};var _6;function o8e(e){let n=e.cache.billboardCollection_indexBufferBatched;if(u(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s+0,o[r+4]=s+2,o[r+5]=s+3;return n=ut.createIndexBuffer({context:e,typedArray:o,usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function r8e(e){let t=e.cache.billboardCollection_indexBufferInstanced;return u(t)||(t=ut.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function s8e(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return u(t)||(t=ut.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Be.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}ju.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<A6;++i){let o=n[i]===0?Be.STATIC_DRAW:Be.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function a8e(e,t,n,i,o,r){let s=[{index:mo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rw]},{index:mo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rw]},{index:mo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Pie]},{index:mo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Lie]},{index:mo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rie]},{index:mo.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Oie]},{index:mo.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Mie]},{index:mo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Nie]},{index:mo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Fie]},{index:mo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[t8e]}];i&&s.push({index:mo.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:s8e(e)}),u(o)&&s.push({index:mo.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Be.STATIC_DRAW}),r&&s.push({index:mo.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[Bie]});let a=i?t:4*t;return new p_(e,s,a,i)}var g6=new Wn;function Uie(e,t,n,i,o){let r,s=i[mo.positionHighAndScale],a=i[mo.positionLowAndRotation],c=o._getActualPosition();e._mode===te.SCENE3D&&(se.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Wn.fromCartesian(c,g6);let l=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,l);let d=g6.high,p=g6.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,l),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,l),s(r+1,d.x,d.y,d.z,l),s(r+2,d.x,d.y,d.z,l),s(r+3,d.x,d.y,d.z,l),a(r+0,p.x,p.y,p.z,f),a(r+1,p.x,p.y,p.z,f),a(r+2,p.x,p.y,p.z,f),a(r+3,p.x,p.y,p.z,f))}var Wu=new V,Gu=32768,nA=65536,y6=4096,Rh=256,c8e=128,l8e=32,u8e=8,Vie=4,f8e=1/256,zie=0,Hie=2,Gie=3,Wie=1;function jie(e,t,n,i,o){let r,s=i[mo.compressedAttribute0],a=o.pixelOffset,c=a.x,l=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-l+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===Pn.BASELINE&&(m=Pn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===_i.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Pn.CENTER;let b=0,T=0,A=0,C=0,S=o._imageIndex;if(S!==-1){let H=n[S];b=H.x,T=H.y,A=H.width,C=H.height}let w=b+A,D=T+C,O=Math.floor(P.clamp(c,-Gu,Gu)+Gu)*c8e;O+=(g+1)*l8e,O+=(m+1)*u8e,O+=(x?1:0)*Vie;let R=Math.floor(P.clamp(l,-Gu,Gu)+Gu)*Rh,N=Math.floor(P.clamp(d,-Gu,Gu)+Gu)*Rh,F=(P.clamp(p,-Gu,Gu)+Gu)*f8e,_=Math.floor(F),E=Math.floor((F-_)*Rh);R+=_,N+=E,Wu.x=b,Wu.y=T;let v=jn.compressTextureCoordinates(Wu);Wu.x=w;let I=jn.compressTextureCoordinates(Wu);Wu.y=D;let M=jn.compressTextureCoordinates(Wu);Wu.x=b;let B=jn.compressTextureCoordinates(Wu);e._instanced?(r=o._index,s(r,O,R,N,v)):(r=o._index*4,s(r+0,O+zie,R,N,v),s(r+1,O+Hie,R,N,I),s(r+2,O+Gie,R,N,M),s(r+3,O+Wie,R,N,B))}function qie(e,t,n,i,o){let r,s=i[mo.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,l=1,f=1,d=1,p=o.translucencyByDistance;u(p)&&(c=p.near,l=p.nearValue,f=p.far,d=p.farValue,(l!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,m=o._imageIndex;m!==-1&&(g=n[m].width);let x=e._textureAtlas.texture.width,b=Math.round(y(o.width,x*g));e._maxSize=Math.max(e._maxSize,b);let T=P.clamp(b,0,nA),A=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(A=jn.octEncodeFloat(a)),l=P.clamp(l,0,1),l=l===1?255:l*255|0,T=T*Rh+l,d=P.clamp(d,0,1),d=d===1?255:d*255|0,A=A*Rh+d,e._instanced?(r=o._index,s(r,T,A,c,f)):(r=o._index*4,s(r+0,T,A,c,f),s(r+1,T,A,c,f),s(r+2,T,A,c,f),s(r+3,T,A,c,f))}function b6(e,t,n,i,o){let r,s=i[mo.compressedAttribute2],a=o.color,c=u(e._batchTable)?z.WHITE:o.getPickId(t.context).color,l=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&l===1;let d=0,p=o._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,m=Math.round(y(o.height,g.y*d));e._maxSize=Math.max(e._maxSize,m);let x=y(o._labelHorizontalOrigin,-2);x+=2;let b=m*Vie+x,T=z.floatToByte(a.red),A=z.floatToByte(a.green),C=z.floatToByte(a.blue),S=T*nA+A*Rh+C;T=z.floatToByte(c.red),A=z.floatToByte(c.green),C=z.floatToByte(c.blue);let w=T*nA+A*Rh+C,D=z.floatToByte(a.alpha)*nA+z.floatToByte(c.alpha)*Rh;D+=l*2+f,e._instanced?(r=o._index,s(r,S,w,D,b)):(r=o._index*4,s(r+0,S,w,D,b),s(r+1,S,w,D,b),s(r+2,S,w,D,b),s(r+3,S,w,D,b))}function T6(e,t,n,i,o){let r,s=i[mo.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==We.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let l=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];l=g.width,f=g.height}Wu.x=l,Wu.y=f;let p=jn.compressTextureCoordinates(Wu);r=o._index,s(r,a.x,a.y,c,p)}else r=o._index*4,s(r+0,a.x,a.y,c,0),s(r+1,a.x,a.y,c,0),s(r+2,a.x,a.y,c,0),s(r+3,a.x,a.y,c,0)}function Yie(e,t,n,i,o){let r,s=i[mo.scaleByDistance],a=0,c=1,l=1,f=1,d=o.scaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,l,f)):(r=o._index*4,s(r+0,a,c,l,f),s(r+1,a,c,l,f),s(r+2,a,c,l,f),s(r+3,a,c,l,f))}function Xie(e,t,n,i,o){let r,s=i[mo.pixelOffsetScaleByDistance],a=0,c=1,l=1,f=1,d=o.pixelOffsetScaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,l,f)):(r=o._index*4,s(r+0,a,c,l,f),s(r+1,a,c,l,f),s(r+2,a,c,l,f),s(r+3,a,c,l,f))}function Kie(e,t,n,i,o){let r,s=i[mo.compressedAttribute3],a=0,c=Number.MAX_VALUE,l=o.distanceDisplayCondition;u(l)&&(a=l.near,c=l.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=o.heightReference===We.CLAMP_TO_GROUND&&t.context.depthTexture;u(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(u(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,A=0,C=o._imageIndex;if(C!==-1){let w=n[C];T=w.height,A=w.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let S=e._textureAtlas.texture.width;g=Math.round(y(o.width,S*A))}let m=Math.floor(P.clamp(g,0,y6)),x=Math.floor(P.clamp(p,0,y6)),b=m*y6+x;e._instanced?(r=o._index,s(r,a,c,f,b)):(r=o._index*4,s(r+0,a,c,f,b),s(r+1,a,c,f,b),s(r+2,a,c,f,b),s(r+3,a,c,f,b))}function Zie(e,t,n,i,o){if(o.heightReference===We.CLAMP_TO_GROUND){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=u(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[mo.textureCoordinateBoundsOrLabelTranslate];if(zt.maximumVertexTextureImageUnits>0){let m=0,x=0;u(o._labelTranslate)&&(m=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,m,x,0,0)):(r=o._index*4,s(r+0,m,x,0,0),s(r+1,m,x,0,0),s(r+2,m,x,0,0),s(r+3,m,x,0,0));return}let a=0,c=0,l=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,l=m.width,f=m.height}let p=a+l,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function d8e(e,t,n,i,o){if(!u(e._batchTable))return;let r=i[mo.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function $ie(e,t,n,i,o){if(!e._sdf)return;let r,s=i[mo.sdf],a=o.outlineColor,c=o.outlineWidth,l=z.floatToByte(a.red),f=z.floatToByte(a.green),d=z.floatToByte(a.blue),p=l*nA+f*Rh+d,g=c/Bs.RADIUS,m=z.floatToByte(a.alpha)*nA+z.floatToByte(g)*Rh;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+zie,m),s(r+1,p+Hie,m),s(r+2,p+Gie,m),s(r+3,p+Wie,m))}function h8e(e,t,n,i,o){Uie(e,t,n,i,o),jie(e,t,n,i,o),qie(e,t,n,i,o),b6(e,t,n,i,o),T6(e,t,n,i,o),Yie(e,t,n,i,o),Xie(e,t,n,i,o),Kie(e,t,n,i,o),Zie(e,t,n,i,o),d8e(e,t,n,i,o),$ie(e,t,n,i,o)}function x6(e,t,n,i,o,r){let s;i.mode===te.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=ho._computeActualPosition(l,f,i,o);u(d)&&(l._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function m8e(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==te.SCENE3D&&!L.equals(r,e.modelMatrix)?(e._mode=n,L.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===te.SCENE3D||n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&x6(e,i,i.length,t,r,!0)):n===te.MORPHING?x6(e,i,i.length,t,r,!0):(n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&x6(e,o,e._billboardsToUpdateIndex,t,r,!1)}function p8e(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function _8e(e,t){let n=`uniform sampler2D billboard_texture;
- in vec2 v_textureCoordinates;
- void main()
- {
- out_FragColor = texture(billboard_texture, v_textureCoordinates);
- }
- `,i=t.createViewportQuadCommand(n,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=Ee.OVERLAY,i}var g8e=[];ju.prototype.update=function(e){if(C6(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,mo=this._instanced?i8e:n8e,_6=this._instanced?r8e:o8e;let o=this._textureAtlas;if(!u(o)){o=this._textureAtlas=new V0({context:i});for(let R=0;R<n;++R)t[R]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;m8e(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,l=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==l;this._textureAtlasGUID=l;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let R=0;R<A6;++R)c[R]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=a8e(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let R=0;R<n;++R){let N=this._billboards[R];N._dirty=!1,h8e(this,e,r,d,N)}this._vaf.commit(_6(i))}this._billboardsToUpdateIndex=0}else if(a>0){let R=g8e;R.length=0,(c[Rw]||c[Q4e]||c[$4e])&&R.push(Uie),(c[Ow]||c[Pie]||c[K4e]||c[Z4e]||c[X4e])&&(R.push(jie),this._instanced&&R.push(T6)),(c[Ow]||c[J4e]||c[Lie])&&(R.push(qie),R.push(b6)),(c[Ow]||c[Rie])&&R.push(b6),c[Oie]&&R.push(T6),c[Mie]&&R.push(Yie),c[Nie]&&R.push(Xie),(c[Fie]||c[e8e]||c[Ow]||c[Rw])&&R.push(Kie),(c[Ow]||c[Rw])&&R.push(Zie),c[Bie]&&R.push($ie);let N=R.length;if(d=this._vaf.writers,a/n>.1){for(let F=0;F<a;++F){let _=s[F];_._dirty=!1;for(let E=0;E<N;++E)R[E](this,e,r,d,_)}this._vaf.commit(_6(i))}else{for(let F=0;F<a;++F){let _=s[F];_._dirty=!1;for(let E=0;E<N;++E)R[E](this,e,r,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=L.IDENTITY;e.mode===te.SCENE3D?(x=this.modelMatrix,m=se.clone(this._baseVolumeWC,this._boundingVolume)):m=se.clone(this._baseVolume2D,this._boundingVolume),p8e(this,e,m);let b=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,b){this._blendOption===Ao.OPAQUE||this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:ee.LESS},depthMask:!0}):this._rsOpaque=void 0;let R=this._blendOption===Ao.TRANSLUCENT;this._blendOption===Ao.TRANSLUCENT||this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:R?ee.LEQUAL:ee.LESS},depthMask:R,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,A,C,S,w,D=zt.maximumVertexTextureImageUnits>0;if(b||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){T=v2,A=w2,w=[],u(this._batchTable)&&(w.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),A=this._batchTable.getFragmentShaderCallback(!1,void 0)(A)),C=new ze({defines:w,sources:[T]}),this._instanced&&C.defines.push("INSTANCED"),this._shaderRotation&&C.defines.push("ROTATION"),this._shaderAlignedAxis&&C.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&C.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&C.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&C.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&C.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&C.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?C.defines.push("VERTEX_DEPTH_CHECK"):C.defines.push("FRAGMENT_DEPTH_CHECK"));let R=1-Bs.CUTOFF;this._sdf&&C.defines.push("SDF");let N=u(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT&&(S=new ze({defines:["OPAQUE",N],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=Kt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:mo}),S=new ze({defines:["TRANSLUCENT",N],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Kt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:mo})),this._blendOption===Ao.OPAQUE&&(S=new ze({defines:[N],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=Kt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:mo})),this._blendOption===Ao.TRANSLUCENT&&(S=new ze({defines:[N],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Kt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:mo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let R=this._colorCommands,N=this._blendOption===Ao.OPAQUE,F=this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,E=_.length,v=this._uniforms,I;u(this._batchTable)?(v=this._batchTable.getUniformMapCallback()(v),I=this._batchTable.getPickId()):I="v_pickColor",R.length=E;let M=F?E*2:E;for(let B=0;B<M;++B){let H=R[B];u(H)||(H=R[B]=new et);let U=N||F&&B%2===0;H.pass=U||!F?Ee.OPAQUE:Ee.TRANSLUCENT,H.owner=this;let G=F?Math.floor(B/2):B;H.boundingVolume=m,H.modelMatrix=x,H.count=_[G].indicesCount,H.shaderProgram=U?this._sp:this._spTranslucent,H.uniformMap=v,H.vertexArray=_[G].va,H.renderState=U?this._rsOpaque:this._rsTranslucent,H.debugShowBoundingVolume=this.debugShowBoundingVolume,H.pickId=I,this._instanced&&(H.count=6,H.instanceCount=n),O.push(H)}this.debugShowTextureAtlas&&(u(this.debugCommand)||(this.debugCommand=_8e(this,e.context)),O.push(this.debugCommand))}};ju.prototype.isDestroyed=function(){return!1};ju.prototype.destroy=function(){return u(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),kie(this._billboards),le(this)};var qu=ju;function y8e(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var iA=y8e;function ks(e,t,n,i,o){this._content=e,this._billboard=n,this._label=i,this._polyline=o,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),oA(this)}var x8e=new fe;Object.defineProperties(ks.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=z.clone(e,this._color),oA(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,oA(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=z.clone(e,this._pointOutlineColor),oA(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,oA(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){u(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,x8e);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=z.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&oA(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});ks.defaultColor=z.WHITE;ks.defaultPointOutlineColor=z.BLACK;ks.defaultPointOutlineWidth=0;ks.defaultPointSize=8;function oA(e){let t=e._billboard;if(u(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(u(e._billboardImage))return;let n=y(e._color,ks.defaultColor),i=y(e._pointOutlineColor,ks.defaultPointOutlineColor),o=y(e._pointOutlineWidth,ks.defaultPointOutlineWidth),r=y(e._pointSize,ks.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,l=e._billboardSize;if(z.equals(n,s)&&z.equals(i,a)&&o===c&&r===l)return;e._billboardColor=z.clone(n,e._billboardColor),e._billboardOutlineColor=z.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,iA(f,d,p,o,r))}ks.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};ks.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};ks.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};ks.prototype.getPropertyInherited=function(e){return Ms.getPropertyInherited(this._content,this._batchId,e)};ks.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};ks.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};ks.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};ks.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var rg=ks;function b8e(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),l=100,f=r.width+l|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,l/2,p)),o&&(g.fillStyle="black",g.fillText(t,l/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,A,C,S;for(T=0;T<x;++T)if(m[T]!==255){C=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){S=T/b|0;break}let w=-1;for(T=0;T<f&&w===-1;++T)for(A=0;A<d;++A){let D=T*4+A*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){w=T;break}}return{width:r.width,height:S-C,ascent:p-C,descent:S-p,minx:w-l/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var z0;function T8e(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),o=y(t.fill,!0),r=y(t.strokeWidth,1),s=y(t.backgroundColor,z.TRANSPARENT),a=y(t.padding,0),c=a*2,l=document.createElement("canvas");l.width=1,l.height=1,l.style.font=n;let f=l.getContext("2d",{willReadFrequently:!0});u(z0)||(u(f.imageSmoothingEnabled)?z0="imageSmoothingEnabled":u(f.mozImageSmoothingEnabled)?z0="mozImageSmoothingEnabled":u(f.webkitImageSmoothingEnabled)?z0="webkitImageSmoothingEnabled":u(f.msImageSmoothingEnabled)&&(z0="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[z0]=!1,l.style.visibility="hidden",document.body.appendChild(l);let d=b8e(f,e,n,i,o);l.dimensions=d,document.body.removeChild(l),l.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,m=d.height+c,x=m-d.ascent+a,b=m-x+c;if(l.width=g,l.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[z0]=!1,s!==z.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,l.width,l.height)),i){let T=y(t.strokeColor,z.BLACK);f.strokeStyle=T.toCssColorString(),f.strokeText(e,p+a,b)}if(o){let T=y(t.fillColor,z.WHITE);f.fillStyle=T.toCssColorString(),f.fillText(e,p+a,b)}return l}var rA=T8e;var coe=or(toe(),1);var C8e={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Vo=Object.freeze(C8e);var noe={},ioe=0,E8e=256,S8e=new z(.165,.165,.165,.8),w8e=new V(7,5),Wr=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function H0(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function Lw(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function Nw(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function roe(e){let t=noe[e._font];if(!u(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(Nw(n,"line-height"));isNaN(i)&&(i=void 0),t={family:Nw(n,"font-family"),size:Nw(n,"font-size").replace("px",""),style:Nw(n,"font-style"),weight:Nw(n,"font-weight"),lineHeight:i},document.body.removeChild(n),ioe<E8e&&(noe[e._font]=t,ioe++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function fp(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;u(n)&&(n=Ot.clone(n)),u(i)&&(i=Ot.clone(i)),u(o)&&(o=Ot.clone(o)),u(r)&&(r=wt.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=z.clone(y(e.fillColor,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=z.clone(y(e.backgroundColor,S8e)),this._backgroundPadding=V.clone(y(e.backgroundPadding,w8e)),this._style=y(e.style,Vo.FILL),this._verticalOrigin=y(e.verticalOrigin,Pn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,_i.LEFT),this._pixelOffset=V.clone(y(e.pixelOffset,V.ZERO)),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._position=h.clone(y(e.position,h.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=y(e.heightReference,We.NONE),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,roe(this),this._updateClamping()}Object.defineProperties(fp.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;u(r)&&(r.show=e)}let n=this._backgroundBillboard;u(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;u(s)&&(s.position=e)}let i=this._backgroundBillboard;u(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;u(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;u(n)&&(n.heightReference=e),Lw(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=fp.enableRightToLeftDetection?R8e(t):t,H0(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,H0(this),roe(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;z.equals(t,e)||(z.clone(e,t),H0(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),H0(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,H0(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,H0(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!z.equals(t,e)){z.clone(e,t);let n=this._backgroundBillboard;u(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;V.equals(t,e)||(V.clone(e,t),Lw(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,H0(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!V.equals(t,e)){V.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Ot.equals(t,e)){this._translucencyByDistance=Ot.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Ot.equals(t,e)){this._pixelOffsetScaleByDistance=Ot.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Ot.equals(t,e)){this._scaleByDistance=Ot.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];u(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Lw(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;u(n)&&(n.verticalOrigin=e),Lw(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;u(n)&&(n.scale=e*this._relativeSize),Lw(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!wt.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=wt.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;u(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;u(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;u(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!u(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;u(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];u(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;u(n)&&(n.clusterShow=e)}}}});fp.prototype._updateClamping=function(){ho._updateClamping(this._labelCollection,this)};fp.prototype.computeScreenSpacePosition=function(e,t){u(t)||(t=new V);let i=this._labelCollection.modelMatrix,o=u(this._actualClampedPosition)?this._actualClampedPosition:this._position;return ho._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};fp.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(u(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?o-=s:e.verticalOrigin===Pn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let l=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!u(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,A=m.dimensions.width*a,C=m.dimensions.height*a;e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?T-=C:e.verticalOrigin===Pn.CENTER&&(T-=C*.5),e._verticalOrigin===Pn.TOP?T+=Bs.PADDING*a:(e._verticalOrigin===Pn.BOTTOM||e._verticalOrigin===Pn.BASELINE)&&(T-=Bs.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),l=Math.max(l,b+A),f=Math.max(f,T+C)}r=l-i,s=f-o}return u(n)||(n=new qe),n.x=i,n.y=o,n.width=r,n.height=s,n};fp.prototype.equals=function(e){return this===e||u(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&z.equals(this._fillColor,e._fillColor)&&z.equals(this._outlineColor,e._outlineColor)&&z.equals(this._backgroundColor,e._backgroundColor)&&V.equals(this._backgroundPadding,e._backgroundPadding)&&V.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Ot.equals(this._translucencyByDistance,e._translucencyByDistance)&&Ot.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Ot.equals(this._scaleByDistance,e._scaleByDistance)&&wt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};fp.prototype.isDestroyed=function(){return!1};fp.enableRightToLeftDetection=!1;function v8e(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=Wr.LTR,a="",c=e.length;for(let l=0;l<c;++l){let f=e.charAt(l);t.test(f)?a=Wr.RTL:n.test(f)?a=Wr.LTR:i.test(f)?a=Wr.BRACKETS:a=Wr.WEAK,l===0&&(s=a),s===a&&a!==Wr.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function D8e(e){return e.split("").reverse().join("")}function Fw(e,t,n){return e.slice(0,t)+n+e.slice(t)}function I8e(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var P8e="\u05D0-\u05EA",O8e="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",ooe=new RegExp(`[${P8e}${O8e}]`);function R8e(e){let t=e.split(`
- `),n="";for(let i=0;i<t.length;i++){let o=t[i],r=ooe.test(o.charAt(0)),s=v8e(o,ooe),a=0,c="";for(let l=0;l<s.length;++l){let f=s[l],d=f.Type===Wr.BRACKETS?I8e(f.Word):D8e(f.Word);r?f.Type===Wr.RTL?(c=d+c,a=0):f.Type===Wr.LTR?(c=Fw(c,a,f.Word),a+=f.Word.length):(f.Type===Wr.WEAK||f.Type===Wr.BRACKETS)&&(f.Type===Wr.WEAK&&s[l-1].Type===Wr.BRACKETS?c=d+c:s[l-1].Type===Wr.RTL?(c=d+c,a=0):s.length>l+1?s[l+1].Type===Wr.RTL?(c=d+c,a=0):(c=Fw(c,a,f.Word),a+=f.Word.length):c=Fw(c,0,d)):f.Type===Wr.RTL?c=Fw(c,a,d):f.Type===Wr.LTR?(c+=f.Word,a=c.length):(f.Type===Wr.WEAK||f.Type===Wr.BRACKETS)&&(l>0&&s[l-1].Type===Wr.RTL?s.length>l+1?s[l+1].Type===Wr.RTL?c=Fw(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=`
- `)}return n}var G0=fp;var loe=or(soe(),1);function L8e(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function N8e(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var F8e=1.2,uoe="ID_WHITE_PIXEL",E6=new V(4,4),B8e=new qe(1,1,1,1);function k8e(e){let t=document.createElement("canvas");t.width=E6.x,t.height=E6.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(uoe,t)}var Yu={};function U8e(e,t,n,i,o,r,s){return Yu.font=t,Yu.fillColor=n,Yu.strokeColor=i,Yu.strokeWidth=o,Yu.padding=Bs.PADDING,s===Pn.CENTER?Yu.textBaseline="middle":s===Pn.TOP?Yu.textBaseline="top":Yu.textBaseline="bottom",Yu.fill=r===Vo.FILL||r===Vo.FILL_AND_OUTLINE,Yu.stroke=r===Vo.OUTLINE||r===Vo.FILL_AND_OUTLINE,Yu.backgroundColor=z.BLACK,rA(e,Yu)}function S6(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;u(n)&&(n.show=!1,n.image=void 0,u(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function V8e(e,t,n,i){i.index=e.addImageSync(t,n)}var z8e=new loe.default;function H8e(e,t){let n=t._renderedText,i=z8e.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,l;if(t._relativeSize=t._fontSize/Bs.FONT_SIZE,o<s)for(c=o;c<s;++c)S6(e,r[c]);r.length=o;let f=t._showBackground&&n.split(`
- `).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(u(d)||(d=p.add({collection:e,image:uoe,imageSubRegion:B8e}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=_i.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance):u(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(l=0;l<o;++l){let m=i[l],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!u(T)){let A=`${t._fontStyle} ${t._fontWeight} ${Bs.FONT_SIZE}px ${t._fontFamily}`,C=U8e(m,A,z.WHITE,z.WHITE,0,Vo.FILL,x);if(T=new N8e(e,-1,C.dimensions),g[b]=T,C.width>0&&C.height>0){let S=(0,coe.default)(C,{cutoff:Bs.CUTOFF,radius:Bs.RADIUS}),w=C.getContext("2d"),D=C.width,O=C.height,R=w.getImageData(0,0,D,O);for(let N=0;N<D;N++)for(let F=0;F<O;F++){let _=F*D+N,E=S[_]*255,v=_*4;R.data[v+0]=E,R.data[v+1]=E,R.data[v+2]=E,R.data[v+3]=E}w.putImageData(R,0,0),m!==" "&&V8e(e._textureAtlas,b,C,T)}}if(a=r[l],u(a)?T.index===-1?S6(e,a):u(a.textureInfo)&&(a.textureInfo=void 0):(a=new L8e,r[l]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let A=a.billboard,C=e._spareBillboards;u(A)||(C.length>0?A=C.pop():(A=e._billboardCollection.add({collection:e}),A._labelDimensions=new V,A._labelTranslate=new V),a.billboard=A),A.show=t._show,A.position=t._position,A.eyeOffset=t._eyeOffset,A.pixelOffset=t._pixelOffset,A.horizontalOrigin=_i.LEFT,A.verticalOrigin=t._verticalOrigin,A.heightReference=t._heightReference,A.scale=t.totalScale,A.pickPrimitive=t,A.id=t._id,A.image=b,A.translucencyByDistance=t._translucencyByDistance,A.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,A.scaleByDistance=t._scaleByDistance,A.distanceDisplayCondition=t._distanceDisplayCondition,A.disableDepthTestDistance=t._disableDepthTestDistance,A._batchIndex=t._batchIndex,A.outlineColor=t.outlineColor,t.style===Vo.FILL_AND_OUTLINE?(A.color=t._fillColor,A.outlineWidth=t.outlineWidth):t.style===Vo.FILL?(A.color=t._fillColor,A.outlineWidth=0):t.style===Vo.OUTLINE&&(A.color=z.TRANSPARENT,A.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function aoe(e,t,n){return t===_i.CENTER?-e/2:t===_i.RIGHT?-(e+n.x):n.x}var Jo=new V,G8e=new V;function W8e(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,l=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=V.clone(u(g)?e._backgroundPadding:V.ZERO,G8e);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===`
- `?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,l=Math.max(l,o.height-o.descent),c=Math.max(c,o.descent),r+=o.width-o.minx,d<p-1&&(r+=t[d+1].dimensions.minx),s=Math.max(s,r));a.push(r);let x=l+c,b=e.totalScale,T=e._horizontalOrigin,A=e._verticalOrigin,C=0,S=a[C],w=aoe(S,T,m),D=(u(e._lineHeight)?e._lineHeight:F8e*e._fontSize)/e._relativeSize,O=D*(f-1),R=s,N=x+O;u(g)&&(R+=m.x*2,N+=m.y*2,g._labelHorizontalOrigin=T),Jo.x=w*b,Jo.y=0;let F=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===`
- `)++C,_+=D,S=a[C],w=aoe(S,T,m),Jo.x=w*b,F=!0;else if(i=t[d],o=i.dimensions,A===Pn.TOP?(Jo.y=o.height-l-m.y,Jo.y+=Bs.PADDING):A===Pn.CENTER?Jo.y=(O+o.height-l)/2:A===Pn.BASELINE?(Jo.y=O,Jo.y-=Bs.PADDING):(Jo.y=O+c+m.y,Jo.y-=Bs.PADDING),Jo.y=(Jo.y-o.descent-_)*b,F&&(Jo.x-=Bs.PADDING*b,F=!1),u(i.billboard)&&(i.billboard._setTranslate(Jo),i.billboard._labelDimensions.x=R,i.billboard._labelDimensions.y=N,i.billboard._labelHorizontalOrigin=T),d<p-1){let E=t[d+1];Jo.x+=(o.width-o.minx+E.dimensions.minx)*b}if(u(g)&&n.split(`
- `).join("").length>0&&(T===_i.CENTER?w=-s/2-m.x:T===_i.RIGHT?w=-(s+m.x*2):w=0,Jo.x=w*b,A===Pn.TOP?Jo.y=x-l-c:A===Pn.CENTER?Jo.y=(x-l)/2-c:A===Pn.BASELINE?Jo.y=-m.y-c:Jo.y=0,Jo.y=Jo.y*b,g.width=R,g.height=N,g._setTranslate(Jo),g._labelTranslate=V.clone(Jo,g._labelTranslate)),e.heightReference===We.CLAMP_TO_GROUND)for(d=0;d<p;++d){i=t[d];let E=i.billboard;u(E)&&(E._labelTranslate=V.clone(Jo,E._labelTranslate))}}function foe(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)S6(e,n[i]);u(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,u(t._removeCallbackFunc)&&t._removeCallbackFunc(),le(t)}function Mh(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new qu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new qu({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=z.clone(z.WHITE),this.show=y(e.show,!0),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Ao.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(Mh.prototype,{length:{get:function(){return this._labels.length}}});Mh.prototype.add=function(e){let t=new G0(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};Mh.prototype.remove=function(e){if(u(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),foe(this,e),!0}return!1};Mh.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)foe(this,e[t]);e.length=0};Mh.prototype.contains=function(e){return u(e)&&e._labelCollection===this};Mh.prototype.get=function(e){return this._labels[e]};Mh.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;u(this._textureAtlas)||(this._textureAtlas=new V0({context:i}),t.textureAtlas=this._textureAtlas),u(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new V0({context:i,initialSize:E6}),n.textureAtlas=this._backgroundTextureAtlas,k8e(this._backgroundTextureAtlas));let o=this._labelsToUpdate.length;for(let s=0;s<o;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(H8e(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(W8e(a),a._repositionAllGlyphs=!1);let l=a._glyphs.length-c;this._totalGlyphCount+=l}let r=n.length>0?Ao.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};Mh.prototype.isDestroyed=function(){return!1};Mh.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),le(this)};var dp=Mh;var M2=`in vec3 position3DHigh;
- in vec3 position3DLow;
- in vec3 position2DHigh;
- in vec3 position2DLow;
- in vec3 prevPosition3DHigh;
- in vec3 prevPosition3DLow;
- in vec3 prevPosition2DHigh;
- in vec3 prevPosition2DLow;
- in vec3 nextPosition3DHigh;
- in vec3 nextPosition3DLow;
- in vec3 nextPosition2DHigh;
- in vec3 nextPosition2DLow;
- in vec4 texCoordExpandAndBatchIndex;
- out vec2 v_st;
- out float v_width;
- out vec4 v_pickColor;
- out float v_polylineAngle;
- void main()
- {
- float texCoord = texCoordExpandAndBatchIndex.x;
- float expandDir = texCoordExpandAndBatchIndex.y;
- bool usePrev = texCoordExpandAndBatchIndex.z < 0.0;
- float batchTableIndex = texCoordExpandAndBatchIndex.w;
- vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex);
- float width = widthAndShow.x + 0.5;
- float show = widthAndShow.y;
- if (width < 1.0)
- {
- show = 0.0;
- }
- vec4 pickColor = batchTable_getPickColor(batchTableIndex);
- vec4 p, prev, next;
- if (czm_morphTime == 1.0)
- {
- p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz);
- prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz);
- next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz);
- }
- else if (czm_morphTime == 0.0)
- {
- p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);
- prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy);
- next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy);
- }
- else
- {
- p = czm_columbusViewMorph(
- czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy),
- czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz),
- czm_morphTime);
- prev = czm_columbusViewMorph(
- czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy),
- czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz),
- czm_morphTime);
- next = czm_columbusViewMorph(
- czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy),
- czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz),
- czm_morphTime);
- }
- #ifdef DISTANCE_DISPLAY_CONDITION
- vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex);
- vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex);
- vec3 centerLow = centerLowAndRadius.xyz;
- float radius = centerLowAndRadius.w;
- vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex);
- float lengthSq;
- if (czm_sceneMode == czm_sceneMode2D)
- {
- lengthSq = czm_eyeHeight2D.y;
- }
- else
- {
- vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz);
- lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius);
- }
- float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;
- float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;
- if (lengthSq < nearSq || lengthSq > farSq)
- {
- show = 0.0;
- }
- #endif
- float polylineAngle;
- vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle);
- gl_Position = czm_viewportOrthographic * positionWC * show;
- v_st.s = texCoord;
- v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w);
- v_width = width;
- v_pickColor = pickColor;
- v_polylineAngle = polylineAngle;
- }
- `;var xc={};xc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};xc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var j8e=new fe;xc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,j8e).height}return i};var q8e=new L,Y8e=new h,doe=new h,X8e=new tn(h.UNIT_X,0),hoe=new h,K8e=new tn(h.UNIT_X,0),Z8e=new h,$8e=new h,v6=[];function poe(e,t,n){let i=v6;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var N2=new fe,L2=new fe,sg=new h,D6=new h,Q8e=new h,w6=new Gf,Bw=new Da;function J8e(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,D6),l=i.scaleToGeodeticSurface(t,Q8e),f=xc.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,N2),p=i.cartesianToCartographic(l,L2),g=poe(f,o,r);w6.setEndPoints(d,p);let m=w6.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,sg);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let A=w6.interpolateUsingSurfaceDistance(T*m,L2);A.height=g[T],b=i.cartographicToCartesian(A,sg),h.pack(b,s,x),x+=3}return x}function eHe(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,N2),l=i.cartesianToCartographic(t,L2),f=xc.numberOfPointsRhumbLine(c,l,n);c.height=0,l.height=0;let d=poe(f,o,r);Bw.ellipsoid.equals(i)||(Bw=new Da(void 0,void 0,i)),Bw.setEndPoints(c,l);let p=Bw.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,sg);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=Bw.interpolateUsingSurfaceDistance(x*p,L2);b.height=d[x],m=i.cartographicToCartesian(b,sg),h.pack(m,s,g),g+=3}return g}xc.wrapLongitude=function(e,t){let n=[],i=[];if(u(e)&&e.length>0){t=y(t,L.IDENTITY);let o=L.inverseTransformation(t,q8e),r=L.multiplyByPoint(o,h.ZERO,Y8e),s=h.normalize(L.multiplyByPointAsVector(o,h.UNIT_Y,doe),doe),a=tn.fromPointNormal(r,s,X8e),c=h.normalize(L.multiplyByPointAsVector(o,h.UNIT_X,hoe),hoe),l=tn.fromPointNormal(r,c,K8e),f=1;n.push(h.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let m=e[g];if(tn.getPointDistance(l,d)<0||tn.getPointDistance(l,m)<0){let x=Ei.lineSegmentPlane(d,m,a,Z8e);if(u(x)){let b=h.multiplyByScalar(s,5e-9,$8e);tn.getPointDistance(a,d)<0&&h.negate(b,b),n.push(h.add(x,b,new h)),i.push(f+1),h.negate(b,b),n.push(h.add(x,b,new h)),f=1}}n.push(h.clone(e[g])),f++,d=m}i.push(f)}return{positions:n,lengths:i}};xc.generateArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ie.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],D6);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,sg);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!u(s)){let x=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(x,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=xc.numberOfPoints(t[c],t[c+1],s);let l=(a+1)*3,f=new Array(l),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,A=r?o[c+1]:o;d=J8e(x,b,s,i,T,A,f,d)}v6.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,N2);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,sg);return h.pack(m,f,l-3),f};var moe=new fe,tHe=new fe;xc.generateRhumbArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ie.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],D6);if(o=r?o[0]:o,o!==0){let A=i.geodeticSurfaceNormal(T,sg);h.multiplyByScalar(A,o,A),h.add(T,A,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,l=i.cartesianToCartographic(t[0],moe),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],tHe),a+=xc.numberOfPointsRhumbLine(l,f,s),l=fe.clone(f,moe);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],A=t[c+1],C=r?o[c]:o,S=r?o[c+1]:o;g=eHe(T,A,s,i,C,S,p,g)}v6.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,N2);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,sg);return h.pack(b,p,d-3),p};xc.generateCartesianArc=function(e){let t=xc.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};xc.generateCartesianRhumbArc=function(e){let t=xc.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};var Mi=xc;function ql(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,u(this._material)||(this._material=Hi.fromType(Hi.ColorType,{color:new z(1,1,1,1)}));let n=e.positions;u(n)||(n=[]),this._positions=n,this._actualPositions=go(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;u(t)&&(i=L.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Mi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(goe),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=se.fromPoints(this._actualPositions),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new se}var _oe=ql.POSITION_INDEX=0,nHe=ql.SHOW_INDEX=1,iHe=ql.WIDTH_INDEX=2,oHe=ql.MATERIAL_INDEX=3,kw=ql.POSITION_SIZE_INDEX=4,rHe=ql.DISTANCE_DISPLAY_CONDITION=5,goe=ql.NUMBER_OF_PROPERTIES=6;function hp(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;u(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(ql.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,hp(this,nHe))}},positions:{get:function(){return this._positions},set:function(e){let t=go(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&hp(this,kw),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=se.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),hp(this,_oe),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,hp(this,oHe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,hp(this,iHe))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,hp(this,kw)}}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!u(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){wt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=wt.clone(e,this._distanceDisplayCondition),hp(this,rHe))}}});ql.prototype.update=function(){let e=L.IDENTITY;u(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[_oe]>0||this._propertiesChanged[kw]>0;if((!L.equals(e,this._modelMatrix)||i)&&(this._segments=Mi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=se.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=L.clone(e,this._modelMatrix),this._segments.positions.length!==t)hp(this,kw);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){hp(this,kw);break}}};ql.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};ql.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<goe-1;++t)e[t]=0};ql.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var ed=ql;var sHe=ed.SHOW_INDEX,aHe=ed.WIDTH_INDEX,P6=ed.POSITION_INDEX,cHe=ed.MATERIAL_INDEX,yoe=ed.POSITION_SIZE_INDEX,lHe=ed.DISTANCE_DISPLAY_CONDITION,Soe=ed.NUMBER_OF_PROPERTIES,rl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function td(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=L.clone(L.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Soe),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Be.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=z.clone(z.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(td.prototype,{length:{get:function(){return O6(this),this._polylines.length}}});td.prototype.add=function(e){let t=new ed(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};td.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,u(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};td.prototype.removeAll=function(){R6(this),Poe(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};td.prototype.contains=function(e){return u(e)&&e._polylineCollection===this};td.prototype.get=function(e){return O6(this),this._polylines[e]};function uHe(e,t){u(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new Kb(t,n,e._polylines.length)}var woe=new Wn,voe=new oe,Doe=new V;td.prototype.update=function(e){if(O6(this),this._polylines.length===0||!this.show)return;_He(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(zt.maximumVertexTextureImageUnits===0)throw new ue("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");uHe(this,t),this._createBatchTable=!1}if(this._createVertexArray||dHe(this))Toe(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==te.SCENE3D){let l=c.length;for(let f=0;f<l;++f)i=c[f],i.update()}if(o[yoe]||o[cHe])Toe(this,t,n);else{let l=c.length,f=this._polylineBuckets;for(let d=0;d<l;++d){i=c[d],o=i._propertiesChanged;let p=i._bucket,g=0;for(let m in f)if(f.hasOwnProperty(m)){if(f[m]===p){o[P6]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[sHe]||o[aHe])&&this._batchTable.setBatchedAttribute(i._index,0,new V(i._width,i._show)),this._batchTable.attributes.length>2){if(o[P6]||o[yoe]){let m=e.mode===te.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=Wn.fromCartesian(m.center,woe),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,voe);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[lHe]){let m=Doe;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;u(x)&&(m.x=x.near,m.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,m)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<Soe;++c)o[c]=0;let r=L.IDENTITY;e.mode===te.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!u(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!u(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;fHe(this,e,c,r)}};var Uw=new se,xoe=new se;function fHe(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,l=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=l.length;for(let m=0;m<g;++m){let x=l[m],b=x.buckets,T=b.length;for(let A=0;A<T;++A){let C=b[A],S=C.offset,w=C.bucket.shaderProgram,D=C.bucket.polylines,O=D.length,R,N,F=0,_,E;for(let v=0;v<O;++v){let I=D[v],M=mHe(I._material);if(M!==R){if(u(R)&&F>0){let G=N.isTranslucent();a>=s?(_=new et({owner:e}),n.push(_)):_=n[a],++a,E=gt(p(N._uniforms),e._uniformMap),_.boundingVolume=se.clone(Uw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=w,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=F,_.offset=S,S+=F,F=0,c=!0,r.push(_)}N=I._material,N.update(o),R=M}let B=I._locatorBuckets,H=B.length;for(let G=0;G<H;++G){let k=B[G];k.locator===C&&(F+=k.count)}let U;t.mode===te.SCENE3D?U=I._boundingVolumeWC:t.mode===te.COLUMBUS_VIEW?U=I._boundingVolume2D:t.mode===te.SCENE2D?u(I._boundingVolume2D)&&(U=se.clone(I._boundingVolume2D,xoe),U.center.x=0):u(I._boundingVolumeWC)&&u(I._boundingVolume2D)&&(U=se.union(I._boundingVolumeWC,I._boundingVolume2D,xoe)),c?(c=!1,se.clone(U,Uw)):se.union(U,Uw,Uw)}u(R)&&F>0&&(a>=s?(_=new et({owner:e}),n.push(_)):_=n[a],++a,E=gt(p(N._uniforms),e._uniformMap),_.boundingVolume=se.clone(Uw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=w,_.vertexArray=x.va,_.renderState=N.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=N.isTranslucent()?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=F,_.offset=S,c=!0,r.push(_)),R=void 0}}n.length=a}td.prototype.isDestroyed=function(){return!1};td.prototype.destroy=function(){return Ioe(this),R6(this),Poe(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),le(this)};function dHe(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[P6]?(i.bufferUsage!==Be.STREAM_DRAW&&(t=!0,i.bufferUsage=Be.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Be.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Be.STATIC_DRAW):i.frameCount--),t}var boe=[0,0,0];function Toe(e,t,n){e._createVertexArray=!1,R6(e),Ioe(e),pHe(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,l=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let m=e._mode,x=new Float32Array(6*f*3),b=new Float32Array(f*4),T,A=0,C=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,A,C,S,r,t,n),m===te.MORPHING&&(u(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,A));let E=g.lengthOfPositions;A+=6*E*3,C+=E*4,S+=E*4,c=g.updateIndices(i,a,l,c)}let w=e._positionBufferUsage.bufferUsage,D=Be.STATIC_DRAW;e._positionBuffer=ut.createVertexBuffer({context:t,typedArray:x,usage:w});let O;u(T)&&(O=ut.createVertexBuffer({context:t,typedArray:T,usage:w})),e._texCoordExpandAndBatchIndexBuffer=ut.createVertexBuffer({context:t,typedArray:b,usage:D});let R=3*Float32Array.BYTES_PER_ELEMENT,N=4*Float32Array.BYTES_PER_ELEMENT,F=0,_=i.length;for(let E=0;E<_;++E)if(o=i[E],o.length>0){let v=new Uint16Array(o),I=ut.createIndexBuffer({context:t,typedArray:v,usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT});F+=a[E];let M=6*(E*(R*P.SIXTY_FOUR_KILOBYTES)-F*R),B=R+M,H=R+B,U=R+H,G=R+U,k=R+G,Y=E*(N*P.SIXTY_FOUR_KILOBYTES)-F*N,q=[{index:rl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*R},{index:rl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:rl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*R},{index:rl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:rl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:H,strideInBytes:6*R},{index:rl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:rl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:H,strideInBytes:6*R},{index:rl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:rl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:rl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:rl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:rl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:rl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:Y}],Q,W,K,Z;m===te.SCENE3D?(W=e._positionBuffer,Q="vertexBuffer",K=boe,Z="value"):m===te.SCENE2D||m===te.COLUMBUS_VIEW?(W=boe,Q="value",K=e._positionBuffer,Z="vertexBuffer"):(W=O,Q="vertexBuffer",K=e._positionBuffer,Z="vertexBuffer"),q[0][Q]=W,q[1][Q]=W,q[2][Z]=K,q[3][Z]=K,q[4][Q]=W,q[5][Q]=W,q[6][Z]=K,q[7][Z]=K,q[8][Q]=W,q[9][Q]=W,q[10][Z]=K,q[11][Z]=K;let me=new ti({context:t,attributes:q,indexBuffer:I});e._vertexArrays.push({va:me,buckets:l[E]})}}}function hHe(e,t){return t instanceof Pt?t.id:t}var F2=[];function mHe(e){let t=Hi._uniformList[e.type],n=t.length;F2.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];F2[i]=r,F2[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(F2,hHe)}`}function pHe(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,l=i[c.type];u(l)||(l=i[c.type]=new Lh(c,t,n)),l.addPolyline(a)}}}function _He(e,t){let n=t.mode;(e._mode!==n||!L.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=L.clone(e.modelMatrix),e._createVertexArray=!0)}function O6(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function R6(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;u(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function Ioe(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}td.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function Poe(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function I6(e,t,n){this.count=e,this.offset=t,this.bucket=n}function Lh(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}Lh.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};Lh.prototype.updateShader=function(e,t,n){if(u(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),Bt.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new ze({defines:i,sources:[`in vec4 v_pickColor;
- `,this.material.shaderSource,sT]}),r=t.getVertexShaderCallback()(M2),s=new ze({defines:i,sources:[Bu,r]});this.shaderProgram=Kt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:rl})};function Ooe(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(tn.ORIGIN_ZX_PLANE)===Zt.INTERSECTING}Lh.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===te.SCENE3D||!Ooe(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var os=new h,Xu=new h,Ku=new h,B2=new h,gHe=new oe,yHe=new V;Lh.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,l=a.ellipsoid.maximumRadius*P.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],m=g.width,x=g.show&&m>0,b=g._index,T=this.getSegments(g,a),A=T.positions,C=T.lengths,S=A.length,w=g.getPickId(s).color,D=0,O=0,R;for(let H=0;H<S;++H){H===0?g._loop?R=A[S-2]:(R=B2,h.subtract(A[0],A[1],R),h.add(A[0],R,R)):R=A[H-1],h.clone(R,Xu),h.clone(A[H],os),H===S-1?g._loop?R=A[1]:(R=B2,h.subtract(A[S-1],A[S-2],R),h.add(A[S-1],R,R)):R=A[H+1],h.clone(R,Ku);let U=C[D];H===O+U&&(O+=U,++D);let G=H-O===0,k=H===O+C[D]-1;c===te.SCENE2D&&(Xu.z=0,os.z=0,Ku.z=0),(c===te.SCENE2D||c===te.MORPHING)&&(G||k)&&l-Math.abs(os.x)<1&&((os.x<0&&Xu.x>0||os.x>0&&Xu.x<0)&&h.clone(os,Xu),(os.x<0&&Ku.x>0||os.x>0&&Ku.x<0)&&h.clone(os,Ku));let Y=G?2:0,q=k?2:4;for(let Q=Y;Q<q;++Q){Wn.writeElements(os,e,n),Wn.writeElements(Xu,e,n+6),Wn.writeElements(Ku,e,n+12);let W=Q-2<0?-1:1;t[o]=H/(S-1),t[o+1]=2*(Q%2)-1,t[o+2]=W,t[o+3]=b,n+=6*3,o+=4}}let N=gHe;N.x=z.floatToByte(w.red),N.y=z.floatToByte(w.green),N.z=z.floatToByte(w.blue),N.w=z.floatToByte(w.alpha);let F=yHe;F.x=m,F.y=x?1:0;let _=c===te.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,E=Wn.fromCartesian(_.center,woe),v=E.high,I=oe.fromElements(E.low.x,E.low.y,E.low.z,_.radius,voe),M=Doe;M.x=0,M.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;u(B)&&(M.x=B.near,M.y=B.far),r.setBatchedAttribute(b,0,F),r.setBatchedAttribute(b,1,N),r.attributes.length>2&&(r.setBatchedAttribute(b,2,v),r.setBatchedAttribute(b,3,I),r.setBatchedAttribute(b,4,M))}};var xHe=new h,bHe=new h,THe=new h,Aoe=new h;Lh.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,l=a.length,f=0,d=0;for(let p=0;p<l;++p){let g;p===0?s._loop?g=a[l-2]:(g=Aoe,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=L.multiplyByPoint(n,g,bHe);let m=L.multiplyByPoint(n,a[p],xHe),x;p===l-1?s._loop?x=a[1]:(x=Aoe,h.subtract(a[l-1],a[l-2],x),h.add(a[l-1],x,x)):x=a[p+1],x=L.multiplyByPoint(n,x,THe);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,A=p===d+c[f]-1,C=T?2:0,S=A?2:4;for(let w=C;w<S;++w)Wn.writeElements(m,e,t),Wn.writeElements(g,e,t+6),Wn.writeElements(x,e,t+12),t+=6*3}}};var AHe=new Array(1);Lh.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new I6(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let l=this.polylines,f=l.length;for(let d=0;d<f;++d){let p=l[d];p._locatorBuckets=[];let g;if(this.mode===te.SCENE3D){g=AHe;let x=p._actualPositions.length;if(x>0)g[0]=x;else continue}else g=p._segments.lengths;let m=g.length;if(m>0){let x=0;for(let b=0;b<m;++b){let T=g[b]-1;for(let A=0;A<T;++A)c+4>P.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new I6(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new I6(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Lh.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var sA={positions:void 0,lengths:void 0},Coe=new Array(1),CHe=new h,EHe=new fe;Lh.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===te.SCENE3D)return Coe[0]=n.length,sA.positions=n,sA.lengths=Coe,sA;Ooe(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=CHe;for(let l=0;l<s;++l)a=n[l],c=L.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,EHe)));if(o.length>0){e._boundingVolume2D=se.fromPoints(o,e._boundingVolume2D);let l=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(l.z,l.x,l.y)}return sA.positions=o,sA.lengths=e._segments.lengths,sA};var Eoe;Lh.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Eoe,c=6*s*3;!u(a)||a.length<c?a=Eoe=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let l=this.getSegments(t,i),f=l.positions,d=l.lengths,p=0,g=0,m=0,x;s=f.length;for(let b=0;b<s;++b){b===0?t._loop?x=f[s-2]:(x=B2,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,Xu),h.clone(f[b],os),b===s-1?t._loop?x=f[1]:(x=B2,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,Ku);let T=d[g];b===m+T&&(m+=T,++g);let A=b-m===0,C=b===m+d[g]-1;o===te.SCENE2D&&(Xu.z=0,os.z=0,Ku.z=0),(o===te.SCENE2D||o===te.MORPHING)&&(A||C)&&r-Math.abs(os.x)<1&&((os.x<0&&Xu.x>0||os.x>0&&Xu.x<0)&&h.clone(os,Xu),(os.x<0&&Ku.x>0||os.x>0&&Ku.x<0)&&h.clone(os,Ku));let S=A?2:0,w=C?2:4;for(let D=S;D<w;++D)Wn.writeElements(os,a,p),Wn.writeElements(Xu,a,p+6),Wn.writeElements(Ku,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Nh=td;function ag(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new qu({batchTable:e.batchTable}),this._labelCollection=new dp({batchTable:e.batchTable}),this._polylineCollection=new Nh,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(ag.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function SHe(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+ce.packedLength+ie.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,ce.pack(n,s,a),a+=ce.packedLength,ie.pack(t,s,a),s}var wHe=new pi("createVectorTilePoints",5),vHe=new h;function DHe(e,t){let n=e._positions,i=e._packedBuffer;u(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=SHe(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=wHe.scheduleTask(r,o);if(u(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,l=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let m=d[g],x=h.unpack(n,g*3,vHe),b=c.add();b.position=x,b._batchIndex=m;let T=l.add();T.text=" ",T.position=x,T._batchIndex=m;let A=f.add();A.positions=[h.clone(x),h.clone(x)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}ag.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],l=n.get(a),f=i.get(a),d=o.get(a);t[c]=new rg(e,c,l,f,d)}};ag.prototype.applyDebugSettings=function(e,t){e?(z.clone(t,this._billboardCollection._highlightColor),z.clone(t,this._labelCollection._highlightColor),z.clone(t,this._polylineCollection._highlightColor)):(z.clone(z.WHITE,this._billboardCollection._highlightColor),z.clone(z.WHITE,this._labelCollection._highlightColor),z.clone(z.WHITE,this._polylineCollection._highlightColor))};function IHe(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=rg.defaultPointSize,s.color=rg.defaultColor,s.pointOutlineColor=rg.defaultPointOutlineColor,s.pointOutlineWidth=rg.defaultPointOutlineWidth,s.labelColor=z.WHITE,s.labelOutlineColor=z.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Vo.FILL,s.labelText=void 0,s.backgroundColor=new z(.165,.165,.165,.8),s.backgroundPadding=new V(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=z.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=_i.CENTER,s.verticalOrigin=Pn.CENTER,s.labelHorizontalOrigin=_i.RIGHT,s.labelVerticalOrigin=Pn.BASELINE}}var PHe=new z,OHe=new z,RHe=new z,MHe=new z,LHe=new z,NHe=new z,Vw=new Ot,zw=new Ot,M6=new wt;ag.prototype.applyStyle=function(e,t){if(!u(e)){IHe(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(u(e.show)&&(s.show=e.show.evaluate(s)),u(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),u(e.color)&&(s.color=e.color.evaluateColor(s,PHe)),u(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,OHe)),u(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),u(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,RHe)),u(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,MHe)),u(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),u(e.font)&&(s.font=e.font.evaluate(s)),u(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),u(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,u(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,LHe)),u(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),u(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),u(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);u(a)?(Vw.near=a.x,Vw.nearValue=a.y,Vw.far=a.z,Vw.farValue=a.w,s.scaleByDistance=Vw):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(u(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);u(a)?(zw.near=a.x,zw.nearValue=a.y,zw.far=a.z,zw.farValue=a.w,s.translucencyByDistance=zw):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(u(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);u(a)?(M6.near=a.x,M6.far=a.y,s.distanceDisplayCondition=M6):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;u(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),u(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),u(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,NHe)),u(e.image)?s.image=e.image.evaluate(s):s.image=void 0,u(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),u(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),u(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),u(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),u(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};ag.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=DHe(this,e.mapProjection.ellipsoid)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};ag.prototype.isDestroyed=function(){return!1};ag.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),le(this)};var k2=ag;function mp(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,h.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Un.BOTH}Object.defineProperties(mp.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function FHe(e){let t=new Float64Array(3+h.packedLength+ie.packedLength+ce.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,ce.pack(e._rectangle,t,n),t}function BHe(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=On.unpack(t,n),n+=On.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=z.unpack(t,n);n+=z.packedLength;let l=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new qm({color:c,offset:l,count:f,batchIds:p})}}var kHe=new pi("createVectorTilePolygons",5),UHe=new z;function VHe(e){if(u(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!u(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(ce.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let g=e._batchTable,m=s.length;for(let x=0;x<m;++x){let b=g.getColor(x,UHe);s[x]=b.toRgba()}a=e._packedBuffer=FHe(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],l={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;u(f)&&u(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),l.minimumHeights=f,l.maximumHeights=d);let p=kHe.scheduleTask(l,c);if(u(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let m=new Float64Array(g.packedBuffer),x=m[0];BHe(e,m),e._indices=ke.getSizeInBytes(x)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),zHe(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function zHe(e){u(e._primitive)||(e._primitive=new ST({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}mp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};mp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};mp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};mp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};mp.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=VHe(this)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};mp.prototype.isDestroyed=function(){return!1};mp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),le(this)};var U2=mp;var V2=`in vec4 currentPosition;
- in vec4 previousPosition;
- in vec4 nextPosition;
- in vec2 expandAndWidth;
- in float a_batchId;
- uniform mat4 u_modifiedModelView;
- void main()
- {
- float expandDir = expandAndWidth.x;
- float width = abs(expandAndWidth.y) + 0.5;
- bool usePrev = expandAndWidth.y < 0.0;
- vec4 p = u_modifiedModelView * currentPosition;
- vec4 prev = u_modifiedModelView * previousPosition;
- vec4 next = u_modifiedModelView * nextPosition;
- float angle;
- vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle);
- gl_Position = czm_viewportOrthographic * positionWC;
- }
- `;function nd(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(nd.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function HHe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ce.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ce.pack(t,a,c),c+=ce.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var GHe=new pi("createVectorTilePolylines",5),aA={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function WHe(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;u(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=HHe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=GHe.scheduleTask(c,a);if(u(l))return l.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===ke.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),jHe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function jHe(e,t){if(!u(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let l=ut.createVertexBuffer({context:t,typedArray:i,usage:Be.STATIC_DRAW}),f=ut.createVertexBuffer({context:t,typedArray:n,usage:Be.STATIC_DRAW}),d=ut.createVertexBuffer({context:t,typedArray:o,usage:Be.STATIC_DRAW}),p=ut.createVertexBuffer({context:t,typedArray:r,usage:Be.STATIC_DRAW}),g=ut.createVertexBuffer({context:t,typedArray:s,usage:Be.STATIC_DRAW}),m=ut.createIndexBuffer({context:t,typedArray:a,usage:Be.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?ke.UNSIGNED_SHORT:ke.UNSIGNED_INT}),x=[{index:aA.previousPosition,vertexBuffer:l,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:aA.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:aA.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:aA.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:aA.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:x,indexBuffer:m}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var Hw=new L,Roe=new h;function qHe(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return L.clone(n,Hw),L.multiplyByPoint(Hw,e._center,Roe),L.setTranslation(Hw,Roe,Hw),Hw},u_highlightColor:function(){return e._highlightColor}})}function YHe(e){if(u(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var XHe=`uniform vec4 u_highlightColor;
- void main()
- {
- out_FragColor = u_highlightColor;
- }
- `;function KHe(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(V2),o=n.getFragmentShaderCallback(!1,void 0,!1)(XHe),r=new ze({defines:["VECTOR_TILE",Bt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Bu,i]}),s=new ze({defines:["VECTOR_TILE"],sources:[o]});e._sp=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:aA})}function ZHe(e,t){if(!u(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new et({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:Ee.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}nd.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!u(n)||!u(i))return;let r,s,a=n.length,c=0,l=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let f=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let d=o[r],p=o[r+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[l++]=i[g],f[l++]=i[g+1],f[l++]=i[g+2]}}return f};nd.prototype.getPositions=function(e){return nd.getPolylinePositions(this,e)};nd.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ms(e,r)}};nd.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function $He(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var QHe=new z,JHe=z.WHITE,e5e=!0;nd.prototype.applyStyle=function(e,t){if(!u(e)){$He(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=u(e.color)?e.color.evaluateColor(s,QHe):JHe,s.show=u(e.show)?e.show.evaluate(s):e5e}};nd.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=WHe(this,t)),u(this._error)){let i=this._error;throw this._error=void 0,i}return}qHe(this,t),KHe(this,t),YHe(this);let n=e.passes;(n.render||n.pick)&&ZHe(this,e)};nd.prototype.isDestroyed=function(){return!1};nd.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),le(this)};var cA=nd;var z2=`in vec3 startEllipsoidNormal;
- in vec3 endEllipsoidNormal;
- in vec4 startPositionAndHeight;
- in vec4 endPositionAndHeight;
- in vec4 startFaceNormalAndVertexCorner;
- in vec4 endFaceNormalAndHalfWidth;
- in float a_batchId;
- uniform mat4 u_modifiedModelView;
- uniform vec2 u_minimumMaximumVectorHeights;
- out vec4 v_startPlaneEC;
- out vec4 v_endPlaneEC;
- out vec4 v_rightPlaneEC;
- out float v_halfWidth;
- out vec3 v_volumeUpEC;
- void main()
- {
-
-
-
-
-
-
-
-
-
- float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251);
- float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd));
- vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz;
- vec3 right = normalize(cross(forward, startEllipsoidNormal));
- vec4 position = vec4(startPositionAndHeight.xyz, 1.0);
- position.xyz += forward * isEnd;
- v_volumeUpEC = czm_normal * normalize(cross(right, forward));
-
- float offset;
- vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd);
-
- offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd);
- offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset;
- position.xyz += offset * ellipsoidNormal;
-
- position = u_modifiedModelView * position;
- right = czm_normal * right;
-
-
-
-
-
-
-
-
-
-
-
-
-
- vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd);
- scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd));
- vec3 miterPushNormal = czm_normal * normalize(scratchNormal);
- offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position));
- offset = offset / dot(miterPushNormal, right);
- position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0)));
- gl_Position = czm_depthClamp(czm_projection * position);
- position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0);
- vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz;
- v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz));
- v_rightPlaneEC = vec4(right, -dot(right, position.xyz));
- position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0);
- vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz;
- v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz));
- v_halfWidth = endFaceNormalAndHalfWidth.w;
- }
- `;var H2=`in vec4 v_startPlaneEC;
- in vec4 v_endPlaneEC;
- in vec4 v_rightPlaneEC;
- in float v_halfWidth;
- in vec3 v_volumeUpEC;
- uniform vec4 u_highlightColor;
- void main()
- {
- float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)));
-
- if (logDepthOrDepth == 0.0) {
- #ifdef DEBUG_SHOW_VOLUME
- out_FragColor = vec4(0.0, 0.0, 1.0, 0.5);
- return;
- #else
- discard;
- #endif
- }
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
- eyeCoordinate /= eyeCoordinate.w;
- float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate);
-
- halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC));
-
- float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);
-
- float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz);
- float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz);
- if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) {
- #ifdef DEBUG_SHOW_VOLUME
- out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5);
- return;
- #else
- discard;
- #endif
- }
- out_FragColor = u_highlightColor;
- czm_writeDepthClamp();
- }
- `;function pp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new V(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=On.fromRectangle(e.rectangle,li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(pp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function t5e(e,t,n){let i=li.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;On.fromRectangle(c,o,r,n,a)}function n5e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ce.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ce.pack(t,a,c),c+=ce.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var i5e=new pi("createVectorTileClampedPolylines"),cg={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function o5e(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;u(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=n5e(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=i5e.scheduleTask(c,a);if(u(l))return l.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===ke.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),r5e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function r5e(e,t){if(!u(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,l=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+l.byteLength,e._trianglesLength=l.length/3,e._geometryByteLength=f;let d=ut.createVertexBuffer({context:t,typedArray:n,usage:Be.STATIC_DRAW}),p=ut.createVertexBuffer({context:t,typedArray:i,usage:Be.STATIC_DRAW}),g=ut.createVertexBuffer({context:t,typedArray:o,usage:Be.STATIC_DRAW}),m=ut.createVertexBuffer({context:t,typedArray:r,usage:Be.STATIC_DRAW}),x=ut.createVertexBuffer({context:t,typedArray:s,usage:Be.STATIC_DRAW}),b=ut.createVertexBuffer({context:t,typedArray:a,usage:Be.STATIC_DRAW}),T=ut.createVertexBuffer({context:t,typedArray:c,usage:Be.STATIC_DRAW}),A=ut.createIndexBuffer({context:t,typedArray:l,usage:Be.STATIC_DRAW,indexDatatype:l.BYTES_PER_ELEMENT===2?ke.UNSIGNED_SHORT:ke.UNSIGNED_INT}),C=[{index:cg.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:cg.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:cg.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:cg.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:cg.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:cg.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:cg.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:C,indexBuffer:A}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var Gw=new L,Moe=new h;function s5e(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return L.clone(n,Gw),L.multiplyByPoint(Gw,e._center,Moe),L.setTranslation(Gw,Moe,Gw),Gw},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Loe(e){return Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Vn.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Vn.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})}function a5e(e){u(e._rs)||(e._rs=Loe(!1),e._rs3DTiles=Loe(!0))}function c5e(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(z2),o=n.getFragmentShaderCallback(!1,void 0,!0)(H2),r=new ze({defines:["VECTOR_TILE",Bt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Bu,i]}),s=new ze({defines:["VECTOR_TILE"],sources:[o]});e._sp=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:cg})}function l5e(e,t){let n=e._command;if(!u(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new et({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:Ee.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=et.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===Un.TERRAIN||i===Un.BOTH)&&t.commandList.push(n),(i===Un.CESIUM_3D_TILE||i===Un.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}pp.prototype.getPositions=function(e){return cA.getPolylinePositions(this,e)};pp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ms(e,r)}};pp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function u5e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var f5e=new z,d5e=z.WHITE,h5e=!0;pp.prototype.applyStyle=function(e,t){if(!u(e)){u5e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=u(e.color)?e.color.evaluateColor(s,f5e):d5e,s.show=u(e.show)?e.show.evaluate(s):h5e}};function m5e(e){return li.initialize().then(function(){t5e(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}pp.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=m5e(this).then(o5e(this,t))),u(this._error)){let i=this._error;throw this._error=void 0,i}return}s5e(this,t),c5e(this,t),a5e(this);let n=e.passes;(n.render||n.pick)&&l5e(this,e)};pp.prototype.isDestroyed=function(){return!1};pp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),le(this)};var G2=pp;var L6=32767,p5e=new fe,_5e=new h;function g5e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);jn.zigZagDeltaDecode(s,a,c);let l=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],m=P.lerp(t.west,t.east,d/L6),x=P.lerp(t.south,t.north,p/L6),b=P.lerp(n,i,g/L6),T=fe.fromRadians(m,x,b,p5e),A=o.cartographicToCartesian(T,_5e);h.pack(A,l,f*3)}return l}var W2=g5e;function Fh(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,A5e(this,i,o)}Object.defineProperties(Fh.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return u(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.trianglesLength),u(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.geometryByteLength),u(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return u(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return u(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function y5e(e){return function(t,n){u(e._polygons)&&e._polygons.updateCommands(t,n)}}function x5e(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&u(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&u(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&u(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let l=u(n)||u(i)||u(o),f=s>0&&!u(n)||a>0&&!u(i)||c>0&&!u(o);if(l&&f)throw new ue("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(o)){let p=0;if(!u(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!u(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!u(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var id=Uint32Array.BYTES_PER_ELEMENT;function b5e(e){return new cA(e)}function T5e(e){return new G2(e)}function A5e(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=id;let r=o.getUint32(n,!0);if(r!==1)throw new ue(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=id;let s=o.getUint32(n,!0);if(n+=id,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=id,a===0)throw new ue("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=id;let l=o.getUint32(n,!0);n+=id;let f=o.getUint32(n,!0);n+=id;let d=o.getUint32(n,!0);n+=id;let p=o.getUint32(n,!0);n+=id;let g=o.getUint32(n,!0);n+=id;let m=o.getUint32(n,!0);n+=id;let x=vo(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,A;l>0&&(T=vo(i,n,l),n+=l,f>0&&(A=new Uint8Array(t,n,f),A=new Uint8Array(A),n+=f));let C=y(x.POLYGONS_LENGTH,0),S=y(x.POLYLINES_LENGTH,0),w=y(x.POINTS_LENGTH,0),D=C+S+w,O=new I_(e,D,T,A,y5e(e));if(e._batchTable=O,D===0)return;let R=new vh(x,b),N=R.getGlobalProperty("REGION");if(!u(N))throw new ue("Feature table global property: REGION must be defined");let F=ce.unpack(N),_=N[4],E=N[5],v=e._tile.computedTransform,I=R.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(I)?(I=h.unpack(I),L.multiplyByPoint(v,I,I)):(I=ce.center(F),I.height=P.lerp(_,E,.5),I=ie.WGS84.cartographicToCartesian(I));let M=x5e(x,b);if(n+=(4-n%4)%4,C>0){R.featuresLength=C;let B=y(R.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!u(B))throw new ue("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let H=y(R.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!u(H))throw new ue("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=B.reduce(function(W,K){return W+K*2},0),G=H.reduce(function(W,K){return W+K},0),k=new Uint32Array(t,n,G);n+=d;let Y=new Uint16Array(t,n,U);n+=p;let q,Q;u(x.POLYGON_MINIMUM_HEIGHTS)&&u(x.POLYGON_MAXIMUM_HEIGHTS)&&(q=R.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),Q=R.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new U2({positions:Y,counts:B,indexCounts:H,indices:k,minimumHeight:_,maximumHeight:E,polygonMinimumHeights:q,polygonMaximumHeights:Q,center:I,rectangle:F,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:M.polygons,modelMatrix:v})}if(S>0){R.featuresLength=S;let B=y(R.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!u(B))throw new ue("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let H=R.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!u(H)){H=new Uint16Array(S);for(let Q=0;Q<S;++Q)H[Q]=2}let U=B.reduce(function(Q,W){return Q+W*3},0),G=new Uint16Array(t,n,U);n+=g;let k=e._tileset,Y=k.examineVectorLinesFunction;if(u(Y)){let Q=W2(new Uint16Array(G),F,_,E,ie.WGS84);C5e(Q,B,M.polylines,O,e.url,Y)}let q=b5e;u(k.classificationType)&&(q=T5e),e._polylines=q({positions:G,widths:H,counts:B,batchIds:M.polylines,minimumHeight:_,maximumHeight:E,center:I,rectangle:F,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(w>0){let B=new Uint16Array(t,n,w*3);n+=m,e._points=new k2({positions:B,batchIds:M.points,minimumHeight:_,maximumHeight:E,rectangle:F,batchTable:O})}}function N6(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._polygons)&&e._polygons.createFeatures(e,n),u(e._polylines)&&e._polylines.createFeatures(e,n),u(e._points)&&e._points.createFeatures(e,n),e._features=n}}Fh.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Fh.prototype.getFeature=function(e){return u(this._features)||N6(this),this._features[e]};Fh.prototype.applyDebugSettings=function(e,t){u(this._polygons)&&this._polygons.applyDebugSettings(e,t),u(this._polylines)&&this._polylines.applyDebugSettings(e,t),u(this._points)&&this._points.applyDebugSettings(e,t)};Fh.prototype.applyStyle=function(e){u(this._features)||N6(this),u(this._polygons)&&this._polygons.applyStyle(e,this._features),u(this._polylines)&&this._polylines.applyStyle(e,this._features),u(this._points)&&this._points.applyStyle(e,this._features)};Fh.prototype.update=function(e,t){let n=!0;u(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),u(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),u(this._points)&&(this._points.update(t),n=n&&this._points.ready),u(this._batchTable)&&n&&(u(this._features)||N6(this),this._batchTable.update(e,t),this._ready=!0)};Fh.prototype.getPolylinePositions=function(e){let t=this._polylines;if(u(t))return t.getPositions(e)};Fh.prototype.isDestroyed=function(){return!1};Fh.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),le(this)};function C5e(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let l=t[c]*3,f=e.slice(a,a+l);a+=l,r(f,n[c],o,i)}}var j2=Fh;var Noe={b3dm:function(e,t,n,i,o){return lp.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return lp.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return lp.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return kM.fromTileType(e,t,n,i,o,Noe)},externalTileset:function(e,t,n,i){return S2.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new qM(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new j2(e,t,n,i,o)},subt:function(e,t,n,i,o){return fw.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return fw.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ue("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return lp.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return lp.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return lp.fromGeoJson(e,t,n,i)}},lA=Noe;var E5e={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},zo=Object.freeze(E5e);var od={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};od.isBinaryFormat=function(e){switch(e){case od.BATCHED_3D_MODEL:case od.INSTANCED_3D_MODEL:case od.COMPOSITE:case od.POINT_CLOUD:case od.VECTOR:case od.GEOMETRY:case od.IMPLICIT_SUBTREE:case od.VOXEL_BINARY:case od.GLTF_BINARY:return!0;default:return!1}};var As=Object.freeze(od);var S5e={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},rd=Object.freeze(S5e);var Cs={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},_p=new Array(Cs.NUMBER_OF_PASSES);_p[Cs.RENDER]=Object.freeze({pass:Cs.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});_p[Cs.PICK]=Object.freeze({pass:Cs.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});_p[Cs.SHADOW]=Object.freeze({pass:Cs.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});_p[Cs.PRELOAD]=Object.freeze({pass:Cs.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});_p[Cs.PRELOAD_FLIGHT]=Object.freeze({pass:Cs.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});_p[Cs.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Cs.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});_p[Cs.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Cs.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});_p[Cs.MOST_DETAILED_PICK]=Object.freeze({pass:Cs.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Cs.getPassOptions=function(e){return _p[e]};var Po=Object.freeze(Cs);function gp(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(gp.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});gp.prototype.hasProperty=function(e,t){return!1};gp.prototype.getFeature=function(e){};gp.prototype.applyDebugSettings=function(e,t){};gp.prototype.applyStyle=function(e){};gp.prototype.update=function(e,t){};gp.prototype.isDestroyed=function(){return!1};gp.prototype.destroy=function(){return le(this)};var Ww=gp;function yp(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(yp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});yp.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};yp.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};yp.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};yp.prototype.getProperty=function(e){return Bn.getProperty(e,this._properties,this._class)};yp.prototype.setProperty=function(e,t){return Bn.setProperty(e,t,this._properties,this._class)};yp.prototype.getPropertyBySemantic=function(e){return Bn.getPropertyBySemantic(e,this._properties,this._class)};yp.prototype.setPropertyBySemantic=function(e,t){return Bn.setPropertyBySemantic(e,t,this._properties,this._class)};var q2=yp;function F6(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){F6._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(u(n.class)){let o=i[n.class];return new q2({content:n,class:o})}}F6._oneTimeWarning=It;var uA=F6;function w5e(e,t){let n=e.metadataExtension;if(!u(n))return;let i=n.groups,o=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var fA=w5e;function xp(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(xp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});xp.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};xp.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};xp.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};xp.prototype.getProperty=function(e){return Bn.getProperty(e,this._properties,this._class)};xp.prototype.setProperty=function(e,t){return Bn.setProperty(e,t,this._properties,this._class)};xp.prototype.getPropertyBySemantic=function(e){return Bn.getPropertyBySemantic(e,this._properties,this._class)};xp.prototype.setPropertyBySemantic=function(e,t){return Bn.setPropertyBySemantic(e,t,this._properties,this._class)};var Y2=xp;function B6(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){B6._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(u(n.class)){let o=i[n.class];return new Y2({tile:n,class:o})}}B6._oneTimeWarning=It;var X2=B6;function v5e(e){let t=new Uint8Array(e),n=Th(t);if(n==="glTF"&&(n="glb"),As.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=D5e(t);if(u(i.root))return{contentType:As.EXTERNAL_TILESET,jsonPayload:i};if(u(i.asset))return{contentType:As.GLTF,jsonPayload:i};if(u(i.tileAvailability))return{contentType:As.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(u(i.type))return{contentType:As.GEOJSON,jsonPayload:i};if(u(i.voxelTable))return{contentType:As.VOXEL_JSON,jsonPayload:i};throw new ue("Invalid tile content.")}function D5e(e){let t;try{t=vo(e)}catch{throw new ue("Invalid tile content.")}return t}var bp=v5e;function sd(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=u(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;s<r;s++){let a=n.getDerivedResource({url:o[s].uri}),c=ic.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(sd.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function k6(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function Foe(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}sd.prototype.requestInnerContents=function(){if(!I5e(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;k6(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=P5e(this,n,t,this._tile._contentState);return O5e(this)};function I5e(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];u(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!ic.serverHasOpenSlots(n,t[n]))return!1;return ic.heapHasOpenSlots(e.length)}function P5e(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new Ko({throttle:!0,throttleByServer:!0,type:ts.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let l=o.fetchArrayBuffer();if(u(l))return l.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Qn.CANCELLED){Foe(e,i);return}return k6(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Qn.CANCELLED){Foe(e,i);return}k6(e,-1),Boe(e,t,f)}})}async function O5e(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>R5e(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(u),o}async function R5e(e,t,n){if(u(t))try{let i=bp(t);if(i.contentType===As.EXTERNAL_TILESET)throw new ue("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===As.GEOMETRY||i.contentType===As.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=lA[i.contentType];u(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let l=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=uA(o,l));let f=fA(o,l);return u(f)&&(a.group=new CT({metadata:f})),a}catch(i){Boe(e,n,i)}}function Boe(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=u(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}sd.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];u(t)&&t.cancel()}};sd.prototype.hasProperty=function(e,t){return!1};sd.prototype.getFeature=function(e){};sd.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};sd.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};sd.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};sd.prototype.isDestroyed=function(){return!1};sd.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var K2=sd;var qoe=or(Hoe(),1);var X5e=new h,K5e=new h,lg={};lg.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];n+=r.x*s.y-s.x*r.y}return n*.5};lg.computeWindingOrder2D=function(e){return lg.computeArea2D(e)>0?Jr.COUNTER_CLOCKWISE:Jr.CLOCKWISE};lg.triangulate=function(e,t){let n=V.packArray(e);return(0,qoe.default)(n,t,2)};var Yoe=new h,Xoe=new h,Koe=new h,Goe=new h,Woe=new h,joe=new h,Tp=new h,Zoe=new V,$oe=new V,Qoe=new V,hA=new V;lg.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let C=t[a];if(l[d++]=C.x,l[d++]=C.y,l[d++]=C.z,r){let S=i[a];f[p++]=S.x,f[p++]=S.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=b*b;for(;s.length>0;){let C=s.pop(),S=s.pop(),w=s.pop(),D=h.fromArray(l,w*3,Yoe),O=h.fromArray(l,S*3,Xoe),R=h.fromArray(l,C*3,Koe),N,F,_;r&&(N=V.fromArray(f,w*2,Zoe),F=V.fromArray(f,S*2,$oe),_=V.fromArray(f,C*2,Qoe));let E=h.multiplyByScalar(h.normalize(D,Goe),x,Goe),v=h.multiplyByScalar(h.normalize(O,Woe),x,Woe),I=h.multiplyByScalar(h.normalize(R,joe),x,joe),M=h.magnitudeSquared(h.subtract(E,v,Tp)),B=h.magnitudeSquared(h.subtract(v,I,Tp)),H=h.magnitudeSquared(h.subtract(I,E,Tp)),U=Math.max(M,B,H),G,k,Y;U>T?M===U?(G=`${Math.min(w,S)} ${Math.max(w,S)}`,a=m[G],u(a)||(k=h.add(D,O,Tp),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=V.add(N,F,hA),V.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(w,a,C),s.push(a,S,C)):B===U?(G=`${Math.min(S,C)} ${Math.max(S,C)}`,a=m[G],u(a)||(k=h.add(O,R,Tp),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=V.add(F,_,hA),V.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(S,a,w),s.push(a,C,w)):H===U&&(G=`${Math.min(C,w)} ${Math.max(C,w)}`,a=m[G],u(a)||(k=h.add(R,D,Tp),h.multiplyByScalar(k,.5,k),l.push(k.x,k.y,k.z),a=l.length/3-1,m[G]=a,r&&(Y=V.add(_,N,hA),V.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(C,a,S),s.push(a,w,S)):(g.push(w),g.push(S),g.push(C))}let A={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Le.TRIANGLES};return r&&(A.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ct(A)};var Z5e=new fe,$5e=new fe,Q5e=new fe,G6=new fe;lg.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let w=t[a];if(l[d++]=w.x,l[d++]=w.y,l[d++]=w.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=new Da(void 0,void 0,e),A=new Da(void 0,void 0,e),C=new Da(void 0,void 0,e);for(;s.length>0;){let w=s.pop(),D=s.pop(),O=s.pop(),R=h.fromArray(l,O*3,Yoe),N=h.fromArray(l,D*3,Xoe),F=h.fromArray(l,w*3,Koe),_,E,v;r&&(_=V.fromArray(f,O*2,Zoe),E=V.fromArray(f,D*2,$oe),v=V.fromArray(f,w*2,Qoe));let I=e.cartesianToCartographic(R,Z5e),M=e.cartesianToCartographic(N,$5e),B=e.cartesianToCartographic(F,Q5e);T.setEndPoints(I,M);let H=T.surfaceDistance;A.setEndPoints(M,B);let U=A.surfaceDistance;C.setEndPoints(B,I);let G=C.surfaceDistance,k=Math.max(H,U,G),Y,q,Q,W,K;k>b?H===k?(Y=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[Y],u(a)||(q=T.interpolateUsingFraction(.5,G6),Q=(I.height+M.height)*.5,W=h.fromRadians(q.longitude,q.latitude,Q,e,Tp),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=V.add(_,E,hA),V.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,w),s.push(a,D,w)):U===k?(Y=`${Math.min(D,w)} ${Math.max(D,w)}`,a=m[Y],u(a)||(q=A.interpolateUsingFraction(.5,G6),Q=(M.height+B.height)*.5,W=h.fromRadians(q.longitude,q.latitude,Q,e,Tp),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=V.add(E,v,hA),V.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,w,O)):G===k&&(Y=`${Math.min(w,O)} ${Math.max(w,O)}`,a=m[Y],u(a)||(q=C.interpolateUsingFraction(.5,G6),Q=(B.height+I.height)*.5,W=h.fromRadians(q.longitude,q.latitude,Q,e,Tp),l.push(W.x,W.y,W.z),a=l.length/3-1,m[Y]=a,r&&(K=V.add(v,_,hA),V.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(w,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(w))}let S={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Le.TRIANGLES};return r&&(S.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ct(S)};lg.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ie.WGS84);let o=X5e,r=K5e;if(t=y(t,0),i=y(i,!0),u(e)){let s=e.length;for(let a=0;a<s;a+=3)h.fromArray(e,a,r),i&&(r=n.scaleToGeodeticSurface(r,r)),t!==0&&(o=n.geodeticSurfaceNormal(r,o),h.multiplyByScalar(o,t,o),h.add(r,o,r)),e[a]=r.x,e[a+1]=r.y,e[a+2]=r.z}return e};var ri=lg;var Joe=Math.cos,ere=Math.sin,J5e=Math.sqrt,j6={};j6.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,l=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=Joe(f),p=ere(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*Joe(m),b=d*ere(m),T=a.x*x,A=a.y*b,C=J5e(T*x+A*b+g*p);if(r.x=T/C,r.y=A/C,r.z=g/C,n){let S=e.stNwCorner;u(S)?(f=S.latitude-e.stGranYCos*i+o*e.stGranXSin,m=S.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-l.west)*e.lonScalar,s.y=(f-l.south)*e.latScalar)}};var eGe=new Ji,Zu=new h,tGe=new fe,eF=new h,W6=new Ii;function tre(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,l=n*a,f=Math.sin(t),d=i*f,p=n*f;Zu=W6.project(e,Zu),Zu=h.subtract(Zu,eF,Zu);let g=Ji.fromRotation(t,eGe);Zu=Ji.multiplyByVector(g,Zu,Zu),Zu=h.add(Zu,eF,Zu),e=W6.unproject(Zu,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,A=Math.max(m,x,b,T),C=Math.min(m,x,b,T),S=e.longitude,w=S+r*l,D=S+s*d,O=S+s*d+r*l,R=Math.max(S,w,D,O),N=Math.min(S,w,D,O);return{north:A,south:C,east:R,west:N,granYCos:c,granYSin:d,granXCos:l,granXSin:p,nwCorner:e}}j6.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,l=e.north,f=e.south,d=!1,p=!1;l===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=l-f;c>a?g=P.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,b=Math.ceil(m/t)+1,T=g/(x-1),A=m/(b-1),C=ce.northwest(e,r),S=ce.center(e,tGe);(n!==0||i!==0)&&(S.longitude<C.longitude&&(S.longitude+=P.TWO_PI),eF=W6.project(S,eF));let w=A,D=T,O=0,R=0,N=ce.clone(e,o),F={granYCos:w,granYSin:O,granXCos:D,granXSin:R,nwCorner:C,boundingRectangle:N,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=tre(C,n,T,A,S,x,b);l=_.north,f=_.south,a=_.east,c=_.west,F.granYCos=_.granYCos,F.granYSin=_.granYSin,F.granXCos=_.granXCos,F.granXSin=_.granXSin,N.north=l,N.south=f,N.east=a,N.west=c}if(i!==0){n=n-i;let _=ce.northwest(N,s),E=tre(_,n,T,A,S,x,b);F.stGranYCos=E.granYCos,F.stGranXCos=E.granXCos,F.stGranYSin=E.granYSin,F.stGranXSin=E.granXSin,F.stNwCorner=_,F.stWest=E.west,F.stSouth=E.south}return F};var Es=j6;var nGe=new se,iGe=new se,oGe=new h,rGe=new ce;function nre(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,l=0,f=4;r&&(c-=1,a-=1,l+=1,f-=2),s&&(c-=1,a-=1,l+=1,f-=2),l+=c*o+2*a-f;let d=new Float64Array(l*3),p=0,g=0,m,x=oGe;if(r)Es.computePosition(t,n,!1,g,0,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;else for(m=0;m<o;m++)Es.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=o-1,g=1;g<i;g++)Es.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;if(g=i-1,!s)for(m=o-2;m>=0;m--)Es.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=0,g=i-2;g>0;g--)Es.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;let b=d.length/3*2,T=ke.createTypedArray(d.length/3,b),A=0;for(let S=0;S<d.length/3-1;S++)T[A++]=S,T[A++]=S+1;T[A++]=d.length/3-1,T[A++]=0;let C=new ct({attributes:new hn,primitiveType:Le.LINES});return C.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),C.indices=T,C}function sGe(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=i,s=n,a=nre(e,t),c=t.height,l=t.width,f=ri.scaleToGeodeticHeight(a.attributes.position.values,s,o,!1),d=f.length,p=new Float64Array(d*2);p.set(f);let g=ri.scaleToGeodeticHeight(a.attributes.position.values,r,o);p.set(g,d),a.attributes.position.values=p;let m=t.northCap,x=t.southCap,b=4;m&&(b-=1),x&&(b-=1);let T=(p.length/3+b)*2,A=ke.createTypedArray(p.length/3,T);d=p.length/6;let C=0;for(let w=0;w<d-1;w++)A[C++]=w,A[C++]=w+1,A[C++]=w+d,A[C++]=w+d+1;A[C++]=d-1,A[C++]=0,A[C++]=d+d-1,A[C++]=d,A[C++]=0,A[C++]=d;let S;if(m)S=c-1;else{let w=l-1;A[C++]=w,A[C++]=w+d,S=l+c-2}if(A[C++]=S,A[C++]=S+d,!x){let w=l+S-1;A[C++]=w,A[C]=w+d}return a.indices=A,a}function pA(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,ie.WGS84),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=ce.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}pA.packedLength=ce.packedLength+ie.packedLength+5;pA.pack=function(e,t,n){return n=y(n,0),ce.pack(e._rectangle,t,n),n+=ce.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var ire=new ce,ore=ie.clone(ie.UNIT_SPHERE),mA={rectangle:ire,ellipsoid:ore,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};pA.unpack=function(e,t,n){t=y(t,0);let i=ce.unpack(e,t,ire);t+=ce.packedLength;let o=ie.unpack(e,t,ore);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t];return u(n)?(n._rectangle=ce.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=l===-1?void 0:l,n):(mA.granularity=r,mA.height=s,mA.rotation=a,mA.extrudedHeight=c,mA.offsetAttribute=l===-1?void 0:l,new pA(mA))};var aGe=new fe;pA.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=Es.computeOptions(t,e._granularity,e._rotation,0,rGe,aGe),o,r;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),l;if(c){if(o=sGe(e,i),u(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===nn.TOP?g=g.fill(1,0,p/2):(l=e._offsetAttribute===nn.NONE?0:1,g=g.fill(l)),o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=se.fromRectangle3D(t,n,s,iGe),d=se.fromRectangle3D(t,n,a,nGe);r=se.union(f,d)}else{if(o=nre(e,i),o.attributes.position.values=ri.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),u(e._offsetAttribute)){let f=o.attributes.position.values.length;l=e._offsetAttribute===nn.NONE?0:1;let d=new Uint8Array(f/3).fill(l);o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=se.fromRectangle3D(t,n,s)}return new ct({attributes:o.attributes,indices:o.indices,primitiveType:Le.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var _A=pA;function yA(e){this.rectangle=ce.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=y(e.ellipsoid,ie.WGS84);dGe(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(yA.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});yA.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=On.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)};var rre=new h,tF=new h,sre=new h,cGe=new h,lGe=new h,uGe=new h,fGe=new h,$u=new fe,are=new tn(h.UNIT_X,0),gA=new Cn;function dGe(e,t,n){n.cartographicToCartesian(ce.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(ce.northeast(t),e.northeastCornerCartesian),$u.longitude=t.west,$u.latitude=(t.south+t.north)*.5,$u.height=0;let i=n.cartographicToCartesian($u,uGe),o=h.cross(i,h.UNIT_Z,cGe);h.normalize(o,e.westNormal),$u.longitude=t.east;let r=n.cartographicToCartesian($u,fGe),s=h.cross(h.UNIT_Z,r,rre);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,rre);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,lGe),l=t.south,f;if(l>0){$u.longitude=(t.west+t.east)*.5,$u.latitude=l;let x=n.cartographicToCartesian($u,gA.origin);h.clone(c,gA.direction);let b=tn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,are);Ei.rayPlane(gA,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,tF)}else f=n.geodeticSurfaceNormalCartographic(ce.southeast(t),tF);let d=h.cross(f,a,sre);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){$u.longitude=(t.west+t.east)*.5,$u.latitude=p;let x=n.cartographicToCartesian($u,gA.origin);h.negate(c,gA.direction);let b=tn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,are);Ei.rayPlane(gA,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,tF)}else g=n.geodeticSurfaceNormalCartographic(ce.northwest(t),tF);let m=h.cross(a,g,sre);h.normalize(m,e.northNormal)}var hGe=new h,mGe=new h,pGe=new h(0,-1,0),_Ge=new h(0,0,-1),cre=new h;function gGe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!ce.contains(e.rectangle,o)){let l=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==te.SCENE3D&&(l=t.mapProjection.project(ce.southwest(e.rectangle),hGe),l.z=l.y,l.y=l.x,l.x=0,f=t.mapProjection.project(ce.northeast(e.rectangle),mGe),f.z=f.y,f.y=f.x,f.x=0,d=pGe,g=h.UNIT_Y,p=_Ge,m=h.UNIT_Z);let x=h.subtract(i,l,cre),b=h.dot(x,d),T=h.dot(x,p),A=h.subtract(i,f,cre),C=h.dot(A,g),S=h.dot(A,m);b>0?r+=b*b:C>0&&(r+=C*C),T>0?r+=T*T:S>0&&(r+=S*S)}let s,a,c;if(t.mode===te.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let l=s-c;r+=l*l}else if(s<a){let l=a-s;r+=l*l}return Math.sqrt(r)}yA.prototype.distanceToCamera=function(e){let t=gGe(this,e);if(e.mode===te.SCENE3D&&u(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};yA.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};yA.prototype.createDebugVolume=function(e){let t=new L.clone(L.IDENTITY),n=new _A({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new yt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}});return new Sn({geometryInstances:i,appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})};var ad=yA;var Xw={},yGe=new h,lre=new h,ure=new h,fre=new h,dre=new On;Xw.validOutline=function(e){let n=On.fromPoints(e,dre).halfAxes,i=$.getColumn(n,0,lre),o=$.getColumn(n,1,ure),r=$.getColumn(n,2,fre),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};Xw.computeProjectTo2DArguments=function(e,t,n,i){let o=On.fromPoints(e,dre),r=o.halfAxes,s=$.getColumn(r,0,lre),a=$.getColumn(r,1,ure),c=$.getColumn(r,2,fre),l=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(l,f,d);if(l===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===l?g=a:p===d&&(m=a),(p===l||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function hre(e,t,n,i,o){let r=h.subtract(e,t,yGe),s=h.dot(n,r),a=h.dot(i,r);return V.fromElements(s,a,o)}Xw.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=hre(i[r],e,t,n);return o}};Xw.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return hre(i,e,t,n,o)}};var ug=Xw;function fg(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(fg.prototype,{length:{get:function(){return this._length}}});fg.prototype.enqueue=function(e){this._array.push(e),this._length++};fg.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};fg.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};fg.prototype.contains=function(e){return this._array.indexOf(e)!==-1};fg.prototype.clear=function(){this._array.length=this._offset=this._length=0};fg.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var j0=fg;var Ho={};Ho.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!u(o))continue;n+=2;let r=o.positions,s=o.holes;if(u(r)&&r.length>0&&(n+=r.length*t.packedLength),u(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};Ho.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!u(r))continue;let s=r.positions,a=r.holes;if(t[n++]=u(s)?s.length:0,t[n++]=u(a)?a.length:0,u(s)){let c=s.length;for(let l=0;l<c;++l,n+=i.packedLength)i.pack(s[l],t,n)}if(u(a)){let c=a.length;for(let l=0;l<c;++l)o.push(a[l])}}return n};Ho.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],o=e[t++],r=new Array(i),s=o>0?new Array(o):void 0;for(let a=0;a<i;++a,t+=n.packedLength)r[a]=n.unpack(e,t);for(let a=0;a<o;++a)s[a]=Ho.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var q0=new V;function _re(e,t,n,i){return V.subtract(t,e,q0),V.multiplyByScalar(q0,n/i,q0),V.add(e,q0,q0),[q0.x,q0.y]}var dg=new h;function xGe(e,t,n,i){return h.subtract(t,e,dg),h.multiplyByScalar(dg,n/i,dg),h.add(e,dg,dg),[dg.x,dg.y,dg.z]}Ho.subdivideLineCount=function(e,t,n){let o=h.distance(e,t)/n,r=Math.max(0,Math.ceil(P.log2(o)));return Math.pow(2,r)};var iF=new fe,oF=new fe,bGe=new fe,TGe=new h,nF=new Da;Ho.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,iF),r=e.cartesianToCartographic(n,oF),a=new Da(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};Ho.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=Ho.subdivideLineCount(n,i,o),a=V.distance(e,t),c=a/s,l=r;l.length=s*2;let f=0;for(let d=0;d<s;d++){let p=_re(e,t,d*c,a);l[f++]=p[0],l[f++]=p[1]}return l};Ho.subdivideLine=function(e,t,n,i){let o=Ho.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;u(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let l=0;l<o;l++){let f=xGe(e,t,l*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};Ho.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,iF),c=n.cartesianToCartographic(o,oF);nF.setEndPoints(a,c);let l=nF.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(l))),d=Math.pow(2,f),p=V.distance(e,t),g=p/d,m=s;m.length=d*2;let x=0;for(let b=0;b<d;b++){let T=_re(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};Ho.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,iF),s=e.cartesianToCartographic(n,oF),a=new Da(r,s,e),c=a.surfaceDistance/i,l=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,l),d=a.surfaceDistance/f;u(o)||(o=[]);let p=o;p.length=f*3;let g=0;for(let m=0;m<f;m++){let x=a.interpolateUsingSurfaceDistance(m*d,bGe),b=e.cartographicToCartesian(x,TGe);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var AGe=new h,CGe=new h,EGe=new h,SGe=new h;Ho.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,ie.WGS84);let r=AGe,s=CGe,a=EGe,c=SGe;if(u(e)&&u(e.attributes)&&u(e.attributes.position)){let l=e.attributes.position.values,f=l.length/2;for(let d=0;d<f;d+=3)h.fromArray(l,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),l[d+f]=s.x,l[d+1+f]=s.y,l[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),l[d]=s.x,l[d+1]=s.y,l[d+2]=s.z}return e};Ho.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new j0;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),l=c.positions;if(t)for(a=l.length,r=0;r<a;r++)n.scaleToGeodeticSurface(l[r],l[r]);if(l=go(l,h.equalsEpsilon,!0),l.length<3)continue;let f=c.holes?c.holes.length:0;for(r=0;r<f;r++){let d=c.holes[r],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=go(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(u(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(l)}return i};var wGe=new fe;function vGe(e,t,n){let i=n.cartesianToCartographic(e,iF),o=n.cartesianToCartographic(t,oF);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;nF.setEndPoints(i,o);let r=nF.findIntersectionWithLatitude(0,wGe);if(!u(r))return;let s=Math.min(i.longitude,o.longitude),a=Math.max(i.longitude,o.longitude);if(Math.abs(a-s)>P.PI){let c=s;s=a,a=c}if(!(r.longitude<s||r.longitude>a))return n.cartographicToCartesian(r)}function DGe(e,t,n,i){if(i===Yt.RHUMB)return vGe(e,t,n);let o=Ei.lineSegmentPlane(e,t,tn.ORIGIN_XY_PLANE);if(u(o))return n.scaleToGeodeticSurface(o,o)}var IGe=new fe;function PGe(e,t,n){let i=[],o,r,s,a,c,l=0;for(;l<e.length;){o=e[l],r=e[(l+1)%e.length],s=P.sign(o.z),a=P.sign(r.z);let f=d=>t.cartesianToCartographic(d,IGe).longitude;if(s===0)i.push({position:l,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=DGe(o,r,t,n),++l,!u(c))continue;e.splice(l,0,c),i.push({position:l,type:s,visited:!1,next:a,theta:f(c)})}++l}return i}function gre(e,t,n,i,o,r,s){let a=[],c=r,l=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(l(c)),g=i[p];if(!u(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let S=i[p-(s?1:-1)];if(S?.position===c+1)S.visited=!0;else{++c;continue}}if(!m&&s&&b>0||r===c&&!s&&b<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}m||f.push(c);let A=p+(s?1:-1),C=i[A];if(!u(C)){++c;continue}c=C.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=gre(e,++t,n,i,0,d,!s);return t}Ho.splitPolygonsOnEquator=function(e,t,n,i){u(i)||(i=[]),i.splice(0,0,...e),i.length=e.length;let o=0;for(;o<i.length;){let r=i[o],s=r.slice();if(r.length<3){i[o]=s,++o;continue}let a=PGe(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((l,f)=>l.theta-f.theta);let c=s[0].z>=0;o=gre(i,o,s,a,1,0,c)}return i};Ho.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new j0;c.enqueue(e);let l=u(r);for(;c.length!==0;){let f=c.dequeue(),d=f.positions,p=f.holes,g,m;if(i)for(m=d.length,g=0;g<m;g++)o.scaleToGeodeticSurface(d[g],d[g]);if(t||(d=go(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!u(x))continue;let b=[],T=ri.computeWindingOrder2D(x);if(T===Jr.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),l){l=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new Ia(O,p));continue}}let A=d.slice(),C=u(p)?p.length:0,S=[],w;for(g=0;g<C;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,w=0;w<m;++w)o.scaleToGeodeticSurface(O[w],O[w]);if(t||(O=go(O,h.equalsEpsilon,!0)),O.length<3)continue;let R=n(O);if(!u(R))continue;T=ri.computeWindingOrder2D(R),T===Jr.CLOCKWISE&&(R.reverse(),O=O.slice().reverse()),S.push(O),b.push(A.length),A=A.concat(O),x=x.concat(R);let N=0;for(u(D.holes)&&(N=D.holes.length),w=0;w<N;w++)c.enqueue(D.holes[w])}s.push({outerRing:d,holes:S}),a.push({positions:A,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var OGe=new V,RGe=new h,MGe=new Ne,LGe=new $;Ho.computeBoundingRectangle=function(e,t,n,i,o){let r=Ne.fromAxisAngle(e,i,MGe),s=$.fromQuaternion(r,LGe),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],RGe);$.multiplyByVector(s,g,g);let m=t(g,OGe);u(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),l=Math.min(l,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=l,o.width=c-a,o.height=f-l,o};Ho.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=ri.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,l=u(n),f=l?n.positions:void 0;if(o){let d=c.length,p=new Array(d*3),g=0;for(let b=0;b<d;b++){let T=c[b];p[g++]=T.x,p[g++]=T.y,p[g++]=T.z}let m={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Le.TRIANGLES};l&&(m.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:V.packArray(f)}));let x=new ct(m);return r.normal?Fn.computeNormal(x):x}if(s===Yt.GEODESIC)return ri.computeSubdivision(e,c,a,f,i);if(s===Yt.RHUMB)return ri.computeRhumbLineSubdivision(e,c,a,f,i)};var mre=[],pre=[],NGe=new h,FGe=new h;Ho.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,l,f,d,p,g,m,x=e.length,b=0,T=0,A=u(t),C=A?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),A&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)l=e[c],f=e[(c+1)%x],s[b]=s[b+a]=l.x,++b,s[b]=s[b+a]=l.y,++b,s[b]=s[b+a]=l.z,++b,s[b]=s[b+a]=f.x,++b,s[b]=s[b+a]=f.y,++b,s[b]=s[b+a]=f.z,++b,A&&(d=C[c],p=C[(c+1)%x],g[T]=g[T+m]=d.x,++T,g[T]=g[T+m]=d.y,++T,g[T]=g[T+m]=p.x,++T,g[T]=g[T+m]=p.y,++T);else{let R=P.chordLength(i,n.maximumRadius),N=0;if(r===Yt.GEODESIC)for(c=0;c<x;c++)N+=Ho.subdivideLineCount(e[c],e[(c+1)%x],R);else if(r===Yt.RHUMB)for(c=0;c<x;c++)N+=Ho.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],R);for(a=(N+x)*3,s=new Array(a*2),A&&(m=(N+x)*2,g=new Array(m*2)),c=0;c<x;c++){l=e[c],f=e[(c+1)%x];let F,_;A&&(d=C[c],p=C[(c+1)%x]),r===Yt.GEODESIC?(F=Ho.subdivideLine(l,f,R,pre),A&&(_=Ho.subdivideTexcoordLine(d,p,l,f,R,mre))):r===Yt.RHUMB&&(F=Ho.subdivideRhumbLine(n,l,f,R,pre),A&&(_=Ho.subdivideTexcoordRhumbLine(d,p,n,l,f,R,mre)));let E=F.length;for(let v=0;v<E;++v,++b)s[b]=F[v],s[b+a]=F[v];if(s[b]=f.x,s[b+a]=f.x,++b,s[b]=f.y,s[b+a]=f.y,++b,s[b]=f.z,s[b+a]=f.z,++b,A){let v=_.length;for(let I=0;I<v;++I,++T)g[T]=_[I],g[T+m]=_[I];g[T]=p.x,g[T+m]=p.x,++T,g[T]=p.y,g[T+m]=p.y,++T}}}x=s.length;let S=ke.createTypedArray(x/3,x-e.length*6),w=0;for(x/=6,c=0;c<x;c++){let R=c,N=R+1,F=R+x,_=F+1;l=h.fromArray(s,R*3,NGe),f=h.fromArray(s,N*3,FGe),!h.equalsEpsilon(l,f,P.EPSILON10,P.EPSILON10)&&(S[w++]=R,S[w++]=F,S[w++]=N,S[w++]=N,S[w++]=F,S[w++]=_)}let D={attributes:new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:S,primitiveType:Le.TRIANGLES};return A&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new ct(D)};var zn=Ho;function BGe(e){let t=e.length,n=new Float64Array(t*3),i=ke.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new ct({attributes:s,indices:i,primitiveType:Le.LINES})}function Y0(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+1}Y0.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new Y0(t)};Y0.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var kGe={polygonHierarchy:{}};Y0.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return u(n)||(n=new Y0(kGe)),n._polygonHierarchy=i,n.packedLength=o,n};Y0.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=go(n,h.equalsEpsilon,!0),n.length<3||!ug.validOutline(n))return;let o=zn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let l=new yt({geometry:BGe(o[c])});r.push(l)}let s=Fn.combineInstances(r)[0],a=se.fromPoints(t.positions);return new ct({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var cd=Y0;var rF=new fe;function Kw(e){let t=F_.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,ie.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=YGe(t,n,i,o);this._boundingPlanes=r;let s=$Ge(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=J6(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=J6(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=J6(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();rF=o.cartesianToCartographic(c,rF),rF.height=(i+n)/2,this.center=o.cartographicToCartesian(rF,c),this._boundingSphere=se.fromPoints(s)}var UGe=new h,VGe=new fe,zGe=new h,HGe=new fe,GGe=new h,WGe=new h,jGe=new h,qGe=new h;function YGe(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,UGe),a=i.cartesianToCartographic(r,VGe);a.height=n;let c=i.cartographicToCartesian(a,zGe),l=tn.fromPointNormal(c,s);o[0]=l;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,HGe),m.height=t;let b=tn.getPointDistance(l,i.cartographicToCartesian(m,GGe));b<f&&(f=b)}let x=tn.clone(l);for(x.normal=h.negate(x.normal,x.normal),x.distance=x.distance*-1+f,o[1]=x,d=0;d<4;d++){g=p[d];let b=p[(d+1)%4],T=i.geodeticSurfaceNormal(g,WGe),A=h.subtract(b,g,qGe),C=h.cross(A,T,jGe);C=h.normalize(C,C),o[2+d]=tn.fromPointNormal(g,C)}return o}var X0=new h,K0=new h,Z0=new h,q6=new h,Y6=new h,X6=new h,XGe=new h,KGe=new h,ZGe=new h,K6=new h,Z6=new h,$6=new h,hg=new h,Bh=new $;function yre(e,t,n){X0=e.normal,K0=t.normal,Z0=n.normal,q6=h.multiplyByScalar(e.normal,-e.distance,q6),Y6=h.multiplyByScalar(t.normal,-t.distance,Y6),X6=h.multiplyByScalar(n.normal,-n.distance,X6),K6=h.multiplyByScalar(h.cross(K0,Z0,XGe),h.dot(q6,X0),K6),Z6=h.multiplyByScalar(h.cross(Z0,X0,KGe),h.dot(Y6,K0),Z6),$6=h.multiplyByScalar(h.cross(X0,K0,ZGe),h.dot(X6,Z0),$6),Bh[0]=X0.x,Bh[1]=K0.x,Bh[2]=Z0.x,Bh[3]=X0.y,Bh[4]=K0.y,Bh[5]=Z0.y,Bh[6]=X0.z,Bh[7]=K0.z,Bh[8]=Z0.z;let i=$.determinant(Bh);return hg=h.add(K6,Z6,hg),hg=h.add(hg,$6,hg),new h(hg.x/i,hg.y/i,hg.z/i)}function $Ge(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=yre(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=yre(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var Q6=new h,xA=new h;function J6(e,t){let n=[];for(let i=0;i<4;i++)Q6=h.subtract(t[(i+1)%4],t[i],Q6),xA=h.cross(e.normal,Q6,xA),xA=h.normalize(xA,xA),n[i]=h.clone(xA);return n}Object.defineProperties(Kw.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var e9=new h;Kw.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;tn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):tn.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,tn.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=t9(tn.projectPointOntoPlane(c,t,e9),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=xre(t,p[0],p[1]),h.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=t9(tn.projectPointOntoPlane(c,t,e9),i[r],c,this._edgeNormals[n[r]]),d=h.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=t9(tn.projectPointOntoPlane(this._boundingPlanes[1],t,e9),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let l=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+l)%4]):h.distance(t,this._vertices[4+(n[1]-2+l)%4])};var QGe=new h,JGe=new h;function xre(e,t,n){let i=h.subtract(n,t,QGe),o=h.subtract(e,t,JGe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var e6e=new tn(h.UNIT_X,0);function t9(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let l=tn.fromPointNormal(t[c],i[c],e6e);tn.getPointDistance(l,e)<0||(a=xre(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return u(s)?s:e}Kw.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?Zt.INSIDE:n===this._vertices.length?Zt.OUTSIDE:Zt.INTERSECTING};Kw.prototype.createDebugVolume=function(e){let t=new L.clone(L.IDENTITY),n=new cd({polygonHierarchy:{positions:this._planeVertices[0]}}),i=cd.createGeometry(n),o=new yt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),r=new cd({polygonHierarchy:{positions:this._planeVertices[1]}}),s=cd.createGeometry(r),a=new yt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),c=[];for(let l=0;l<4;l++){let f=new cd({polygonHierarchy:{positions:this._planeVertices[2+l]}}),d=cd.createGeometry(f);c[l]=new yt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}})}return new Sn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})};var sF=Kw;var t6e=new h(1,1,1),aF=Math.cos,cF=Math.sin;function bA(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,t6e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),l=Math.round(y(e.subdivisions,128));this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=l,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}bA.packedLength=2*h.packedLength+8;bA.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var bre=new h,Tre=new h,Ap={radii:bre,innerRadii:Tre,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};bA.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,bre);t+=h.packedLength;let o=h.unpack(e,t,Tre);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=l,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(Ap.minimumClock=r,Ap.maximumClock=s,Ap.minimumCone=a,Ap.maximumCone=c,Ap.stackPartitions=l,Ap.slicePartitions=f,Ap.subdivisions=d,Ap.offsetAttribute=p===-1?void 0:p,new bA(Ap))};bA.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=ie.fromCartesian3(t),l=e._slicePartitions+1,f=e._stackPartitions+1;l=Math.round(l*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),l<2&&(l=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,m=!1,x=!1;g&&(p=2,r>0&&(m=!0,d+=l),s<Math.PI&&(x=!0,d+=l));let b=a*p*(f+l),T=new Float64Array(b*3),A=2*(b+d-(l+f)*p),C=ke.createTypedArray(b,A),S,w,D,O,R=0,N=new Array(f),F=new Array(f);for(S=0;S<f;S++)O=r+S*(s-r)/(f-1),N[S]=cF(O),F[S]=aF(O);let _=new Array(a),E=new Array(a);for(S=0;S<a;S++)D=i+S*(o-i)/(a-1),_[S]=cF(D),E[S]=aF(D);for(S=0;S<f;S++)for(w=0;w<a;w++)T[R++]=t.x*N[S]*E[w],T[R++]=t.y*N[S]*_[w],T[R++]=t.z*F[S];if(g)for(S=0;S<f;S++)for(w=0;w<a;w++)T[R++]=n.x*N[S]*E[w],T[R++]=n.y*N[S]*_[w],T[R++]=n.z*F[S];for(N.length=a,F.length=a,S=0;S<a;S++)O=r+S*(s-r)/(a-1),N[S]=cF(O),F[S]=aF(O);for(_.length=l,E.length=l,S=0;S<l;S++)D=i+S*(o-i)/(l-1),_[S]=cF(D),E[S]=aF(D);for(S=0;S<a;S++)for(w=0;w<l;w++)T[R++]=t.x*N[S]*E[w],T[R++]=t.y*N[S]*_[w],T[R++]=t.z*F[S];if(g)for(S=0;S<a;S++)for(w=0;w<l;w++)T[R++]=n.x*N[S]*E[w],T[R++]=n.y*N[S]*_[w],T[R++]=n.z*F[S];for(R=0,S=0;S<f*p;S++){let M=S*a;for(w=0;w<a-1;w++)C[R++]=M+w,C[R++]=M+w+1}let v=f*a*p;for(S=0;S<l;S++)for(w=0;w<a-1;w++)C[R++]=v+S+w*l,C[R++]=v+S+(w+1)*l;if(g)for(v=f*a*p+l*a,S=0;S<l;S++)for(w=0;w<a-1;w++)C[R++]=v+S+w*l,C[R++]=v+S+(w+1)*l;if(g){let M=f*a*p,B=M+a*l;if(m)for(S=0;S<l;S++)C[R++]=M+S,C[R++]=B+S;if(x)for(M+=a*l-l,B+=a*l-l,S=0;S<l;S++)C[R++]=M+S,C[R++]=B+S}let I=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(u(e._offsetAttribute)){let M=T.length,B=e._offsetAttribute===nn.NONE?0:1,H=new Uint8Array(M/3).fill(B);I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:H})}return new ct({attributes:I,indices:C,primitiveType:Le.LINES,boundingSphere:se.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var Qu=bA;function TA(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new Qu(i),this._workerName="createSphereOutlineGeometry"}TA.packedLength=Qu.packedLength;TA.pack=function(e,t,n){return Qu.pack(e._ellipsoidGeometry,t,n)};var n6e=new Qu,$0={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};TA.unpack=function(e,t,n){let i=Qu.unpack(e,t,n6e);return $0.stackPartitions=i._stackPartitions,$0.slicePartitions=i._slicePartitions,$0.subdivisions=i._subdivisions,u(n)?(h.clone(i._radii,$0.radii),n._ellipsoidGeometry=new Qu($0),n):($0.radius=i._radii.x,new TA($0))};TA.createGeometry=function(e){return Qu.createGeometry(e._ellipsoidGeometry)};var mg=TA;function AA(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new se(e,t)}Object.defineProperties(AA.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});AA.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};AA.prototype.intersectPlane=function(e){return se.intersectPlane(this._boundingSphere,e)};AA.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};AA.prototype.createDebugVolume=function(e){let t=new mg({radius:this.radius}),n=L.fromTranslation(this.center,new L.clone(L.IDENTITY)),i=new yt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new Sn({geometryInstances:i,appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})};var pg=AA;var i6e=new h,o6e=new h,r6e=new h,s6e=new h;function Q0(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function n9(e,t){let n=h.normalize(e,s6e),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return Q0(e,i,t)}function Are(e){let t=$.getColumn(e,0,i6e),n=$.getColumn(e,1,o6e),i=$.getColumn(e,2,r6e),o=h.equals(t,h.ZERO),r=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(o&&!r&&!s?t=Q0(n,i,t):!o&&r&&!s?n=Q0(t,i,n):!o&&!r&&s?i=Q0(n,t,i):o?r?s||(t=n9(i,t),n=Q0(i,t,n)):(t=n9(n,t),i=Q0(n,t,i)):(n=n9(t,n),i=Q0(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function CA(e,t){t=Are(t),this._orientedBoundingBox=new On(e,t),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(CA.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});CA.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};CA.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};CA.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=Are(t),$.clone(t,this._orientedBoundingBox.halfAxes),se.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};CA.prototype.createDebugVolume=function(e){let t=new ch({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=L.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new yt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new Sn({geometryInstances:i,appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})};var ld=CA;function Go(e,t,n,i){this._tileset=e,this._header=n;let o=u(n.contents),r=o&&n.contents.length>1||oi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=u(n.transform)?L.unpack(n.transform):L.clone(L.IDENTITY);let a=u(i)?i.computedTransform:e.modelMatrix,c=L.multiply(a,this.transform,new L),l=u(i)?i._initialTransform:L.IDENTITY;this._initialTransform=L.multiply(l,this.transform,new L),this.computedTransform=c,this.metadata=X2(e,n),this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;u(s)&&u(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;u(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,u(this._geometricError)||(this._geometricError=u(i)?i._geometricError:e._geometricError,Go._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;u(n.refine)?((n.refine==="replace"||n.refine==="add")&&Go._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Uo.REPLACE:Uo.ADD):u(i)?p=i.refine:p=Uo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=ve.createIfNeeded(t),r)x=zo.UNLOADED,b=t.clone();else if(u(s)){let w=s.uri;u(s.url)&&(Go._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),w=s.url),w===""?(Go._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new Ww(e,this),m=!0,x=zo.READY):(x=zo.UNLOADED,b=t.getDerivedResource({url:w}),T=ic.getServerKey(b.getUrlComponent()))}else g=new Ww(e,this),m=!0,x=zo.READY;this._content=g,this._contentResource=b,this._contentState=x,this._expiredContent=void 0,this._serverKey=T,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let A=n.expire,C,S;u(A)&&(C=A.duration,u(A.date)&&(S=J.fromIso8601(A.date))),this.expireDuration=C,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=rd.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=z.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new J,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Go._deprecationWarning=es;Object.defineProperties(Go.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return u(this._color)||(this._color=new z),z.clone(this._color)},set:function(e){this._color=z.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||u(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===zo.READY}},contentUnloaded:{get:function(){return this._contentState===zo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===zo.EXPIRED}},contentFailed:{get:function(){return this._contentState===zo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var _g=new h;function a6e(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,_g),c=h.add(s.positionWC,a,_g),l=h.subtract(c,r,_g);if(h.magnitude(l)>o){let S=h.normalize(l,_g),w=h.multiplyByScalar(S,o,_g),D=h.add(r,w,_g),O=h.subtract(D,s.positionWC,_g),R=h.normalize(O,_g);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,R))}else e._foveatedFactor=0;let p=e.refine===Uo.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Po.PRELOAD_FLIGHT||n._pass===Po.PRELOAD)return!1;let m=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*m;if(e._foveatedFactor<=x)return!1;let b=m-x,T=P.clamp((e._foveatedFactor-x)/b,0,1),A=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),C=e._screenSpaceError===0&&u(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-A<=C}var Sre=new J;Go.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=u(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,l=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===te.SCENE2D||l instanceof Qt){let g=l.offCenterFrustum;u(g)&&(l=g);let m=Math.max(l.top-l.bottom,l.right-l.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=l.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,b=i.dynamicScreenSpaceErrorFactor,T=P.fog(g,x)*b;p-=T}}return p/=e.pixelRatio,p};function c6e(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=u(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function l6e(e,t){let n=t.parent,o=u(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Go.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=u(t)?t.computedTransform:n.modelMatrix,o=u(t)?t._visibilityPlaneMask:ns.MASK_INDETERMINATE;this.updateTransform(i),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ns.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=l6e(n,this),this._priorityProgressiveResolution=c6e(n,this),this.priorityDeferred=a6e(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Go.prototype.updateExpiration=function(){if(u(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=J.now(Sre);J.lessThan(this.expireDate,e)&&(this._contentState=zo.EXPIRED,this._expiredContent=this._content)}};function u6e(e){if(!u(e.expireDuration))return;let t=J.now(Sre);J.addSeconds(t,e.expireDuration,t),u(e.expireDate)?J.lessThan(e.expireDate,t)&&J.clone(t,e.expireDate):e.expireDate=J.clone(t)}function f6e(e){return function(){return e._priority}}Go.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?d6e(this):m6e(this)};function d6e(e){let t=e._content,n=e._tileset;if(!u(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new K2(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(u(i))return e._contentState=zo.LOADING,i.then(o=>{if(!e.isDestroyed()&&u(o))return e._contentState=zo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=zo.FAILED,o})}async function h6e(e,t,n,i,o){let r=e._contentState;e._contentState=zo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===Qn.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=zo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===Qn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await p6e(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=zo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=zo.FAILED,a}}function m6e(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Ko({throttle:!0,throttleByServer:!0,type:ts.TILES3D,priorityFunction:f6e(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!u(r)){++o.statistics.numberOfAttemptedRequests;return}return h6e(e,o,i,n,r)}async function p6e(e,t){let n=bp(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===As.GEOMETRY||n.contentType===As.VECTOR,(n.contentType===As.IMPLICIT_SUBTREE||n.contentType===As.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===As.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=lA[n.contentType];if(e.isDestroyed())return;u(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,l=e.implicitCoordinates;o.metadata=c.getContentMetadataView(l,0)}else e.hasImplicitContent||(o.metadata=uA(i,s));let a=fA(i,s);return u(a)&&(o.group=new CT({metadata:a})),o}Go.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Go.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=zo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var wre=new se;function o9(e,t){if(t.mode!==te.SCENE3D&&!u(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,wre);e._boundingVolume2D=new pg(i.center,i.radius)}return t.mode!==te.SCENE3D?e._boundingVolume2D:e._boundingVolume}function _6e(e,t){if(t.mode!==te.SCENE3D&&!u(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,wre);e._contentBoundingVolume2D=new pg(i.center,i.radius)}return t.mode!==te.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Go.prototype.visibility=function(e,t){let n=e.cullingVolume,i=o9(this,e),o=this._tileset,r=o.clippingPlanes;if(u(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=s!==Zt.INSIDE,s===Zt.OUTSIDE)return ns.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Go.prototype.contentVisibility=function(e){if(!u(this._contentBoundingVolume))return Zt.INSIDE;if(this._visibilityPlaneMask===ns.MASK_INSIDE)return Zt.INSIDE;let t=e.cullingVolume,n=_6e(this,e),i=this._tileset,o=i.clippingPlanes;if(u(o)&&o.enabled){let r=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=r!==Zt.INSIDE,r===Zt.OUTSIDE)return Zt.OUTSIDE}return t.computeVisibility(n)};Go.prototype.distanceToTile=function(e){return o9(this,e).distanceToCamera(e)};var g6e=new h;Go.prototype.distanceToTileCenter=function(e){let n=o9(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,g6e);return h.dot(e.camera.directionWC,i)};Go.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!u(t)||t.distanceToCamera(e)===0};var vre=new $,Dre=new h,y6e=new $,Ire=new h,Pre=new ce,x6e=new On,i9=new L;function b6e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Ire),o=$.fromArray(e,3,y6e);i=L.multiplyByPoint(t,i,i);let r=L.getMatrix3(t,vre);return o=$.multiply(r,o,o),u(n)?(n.update(i,o),n):new ld(i,o)}function T6e(e,t,n,i){let o=ce.unpack(e,0,Pre),r=e[4],s=e[5],a=On.fromRectangle(o,r,s,ie.WGS84,x6e),c=a.center,l=a.halfAxes;t=L.multiplyTransformation(t,L.inverseTransformation(n,i9),i9),c=L.multiplyByPoint(t,c,c);let f=L.getMatrix3(t,vre);return l=$.multiply(f,l,l),u(i)&&i instanceof ld?(i.update(c,l),i):new ld(c,l)}function A6e(e,t,n,i){if(!L.equalsEpsilon(t,n,P.EPSILON8))return T6e(e,t,n,i);if(u(i))return i;let o=ce.unpack(e,0,Pre);return new ad({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function C6e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Ire),o=e[3];i=L.multiplyByPoint(t,i,i);let r=L.getScale(t,Dre),s=h.maximumComponent(r);return o*=s,u(n)?(n.update(i,o),n):new pg(i,o)}Go.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(u(i)&&(o=LT.parseBoundingVolumeSemantic("TILE",i)),u(o)&&(e=o),!u(e))throw new ue("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new sF(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(u(r))return b6e(r,t,n);if(u(s))return A6e(s,t,this._initialTransform,n);if(u(a))return C6e(a,t,n);throw new ue("boundingVolume must contain a sphere, region, or box")};Go.prototype.updateTransform=function(e){e=y(e,L.IDENTITY);let t=L.multiplyTransformation(e,this.transform,i9);if(!!L.equals(t,this.computedTransform))return;L.clone(t,this.computedTransform);let i=this._header,o=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),u(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform,this._contentBoundingVolume)),u(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Go.prototype.updateGeometricErrorScale=function(){let e=L.getScale(this.computedTransform,Dre),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!u(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function E6e(e,t,n,i){if(!i.isRender)return;let o=u(e._contentHeader)&&u(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=z.WHITE:c=z.DARKGRAY:c=z.YELLOW,u(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let l=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");l.color=kt.toValue(c,l.color)}else!r&&u(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(u(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(z.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&u(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&u(e._viewerRequestVolume)?(u(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(z.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&u(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||u(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=z.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function S6e(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&u(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(u(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=zo.FAILED,o}}function w6e(e,t){let n=t.clippingPlanes,i=0;u(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}Go.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;w6e(this,e),E6e(this,e,t,n),S6e(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===Ee.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1};var Cre=[];Go.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(u6e(this),this._selectedFrame=0,this.lastStyleTime=0,J.now(this._loadTimestamp),this._contentState=zo.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=Cre;try{this._content.update(e,t)}catch(i){throw this._contentState=zo.FAILED,i}Cre.length=0,t.commandList=n};function Ere(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function lF(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}Go.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,l=o,f=c+l,d=r,p=Math.pow(10,f),g=f+d,m=r,x=Math.pow(10,g),b=g+m,T=Math.pow(10,b),A=lF(this._depth,n.depth,i.depth);A=t?1-A:A;let S=!e.isSkippingLevelOfDetail&&this.refine===Uo.REPLACE?lF(this._priorityHolder._distanceToCamera,n.distance,i.distance):lF(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),w=Ere(S,a,s),D=this._priorityProgressiveResolution?0:p,O=lF(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),R=Ere(O,l,c),N=this.priorityDeferred?x:0,F=e._pass===Po.PRELOAD_FLIGHT?0:T;this._priority=A+w+D+R+N+F};Go.prototype.isDestroyed=function(){return!1};Go.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),le(this)};var ud=Go;function Cp(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=u(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(Cp.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Cp.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};Cp.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};Cp.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};Cp.prototype.getProperty=function(e){return Bn.getProperty(e,this._properties,this._class)};Cp.prototype.setProperty=function(e,t){return Bn.setProperty(e,t,this._properties,this._class)};Cp.prototype.getPropertyBySemantic=function(e){return Bn.getPropertyBySemantic(e,this._properties,this._class)};Cp.prototype.setPropertyBySemantic=function(e,t){return Bn.setPropertyBySemantic(e,t,this._properties,this._class)};var Zw=Cp;function Ep(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ep.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Ep.prototype.hasProperty=function(e){return Bn.hasProperty(e,this._properties,this._class)};Ep.prototype.hasPropertyBySemantic=function(e){return Bn.hasPropertyBySemantic(e,this._properties,this._class)};Ep.prototype.getPropertyIds=function(e){return Bn.getPropertyIds(this._properties,this._class,e)};Ep.prototype.getProperty=function(e){return Bn.getProperty(e,this._properties,this._class)};Ep.prototype.setProperty=function(e,t){return Bn.setProperty(e,t,this._properties,this._class)};Ep.prototype.getPropertyBySemantic=function(e){return Bn.getPropertyBySemantic(e,this._properties,this._class)};Ep.prototype.setPropertyBySemantic=function(e,t){return Bn.setPropertyBySemantic(e,t,this._properties,this._class)};var uF=Ep;function Ore(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;u(i)&&(o=new uF({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let l=0;l<c;l++){let f=a[l];s.push(new Zw({group:f,class:n.classes[f.class]}))}}else if(u(a)){r=Object.keys(a).sort();let c=r.length;for(let l=0;l<c;l++){let f=r[l];if(a.hasOwnProperty(f)){let d=a[f];s.push(new Zw({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ore.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var EA=Ore;var Rre={},v6e=new h;Rre.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof ld||i instanceof ad){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=rd.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof ld||a instanceof ad)){e._optimChildrenWithinParent=rd.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,l=h.subtract(c.center,o.center,v6e),f=h.magnitude(l);h.divideByScalar(l,f,l);let d=Math.abs(o.halfAxes[0]*l.x)+Math.abs(o.halfAxes[1]*l.y)+Math.abs(o.halfAxes[2]*l.z)+Math.abs(o.halfAxes[3]*l.x)+Math.abs(o.halfAxes[4]*l.y)+Math.abs(o.halfAxes[5]*l.z)+Math.abs(o.halfAxes[6]*l.x)+Math.abs(o.halfAxes[7]*l.y)+Math.abs(o.halfAxes[8]*l.z),p=Math.abs(c.halfAxes[0]*l.x)+Math.abs(c.halfAxes[1]*l.y)+Math.abs(c.halfAxes[2]*l.z)+Math.abs(c.halfAxes[3]*l.x)+Math.abs(c.halfAxes[4]*l.y)+Math.abs(c.halfAxes[5]*l.z)+Math.abs(c.halfAxes[6]*l.x)+Math.abs(c.halfAxes[7]*l.y)+Math.abs(c.halfAxes[8]*l.z);if(d<=p+f){e._optimChildrenWithinParent=rd.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===rd.USE_OPTIMIZATION};var fF=Rre;function $w(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties($w.prototype,{length:{get:function(){return this._length}}});function D6e(e,t,n){this.item=e,this.previous=t,this.next=n}$w.prototype.add=function(e){let t=new D6e(e,this.tail,void 0);return u(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function Mre(e,t){u(t.previous)&&u(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):u(t.previous)?(t.previous.next=void 0,e.tail=t.previous):u(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}$w.prototype.remove=function(e){u(e)&&(Mre(this,e),--this._length)};$w.prototype.splice=function(e,t){if(e===t)return;Mre(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var dF=$w;function J0(){this._list=new dF,this._sentinel=this._list.add(),this._trimTiles=!1}J0.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};J0.prototype.touch=function(e){let t=e.cacheNode;u(t)&&this._list.splice(this._sentinel,t)};J0.prototype.add=function(e){u(e.cacheNode)||(e.cacheNode=this._list.add(e))};J0.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;u(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};J0.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=this._sentinel,r=i.head;for(;r!==o&&(e.totalMemoryUsageInBytes>e.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};J0.prototype.trim=function(){this._trimTiles=!0};var hF=J0;function mF(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function s9(e,t){let n;return t==="_loadTimestamp"?n=J.toDate(e).getTime():n=e,n}mF.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=s9(e,n),this._referenceMaximum[n]=s9(t,n)};function I6e(e,t){let n=e.tilePropertyName;if(u(n)){let i=s9(t[n],n);return u(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var r9=[new z(.1,.1,.1,1),new z(.153,.278,.878,1),new z(.827,.231,.49,1),new z(.827,.188,.22,1),new z(1,.592,.259,1),new z(1,.843,0,1)];mF.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!u(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=I6e(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,l=r9.length-1,f=c*l,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=r9[d],x=r9[p],b=z.clone(z.WHITE);b.red=P.lerp(m.red,x.red,g),b.green=P.lerp(m.green,x.green,g),b.blue=P.lerp(m.blue,x.blue,g),e._debugColor=b};mF.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(u(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=u(t)&&u(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var pF=mF;function SA(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}SA.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function _F(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,l=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-l:l,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),u(o)){let d=o.length;for(let p=0;p<d;++p)_F(e,o[p],n,i)}}SA.prototype.incrementSelectionCounts=function(e){_F(this,e,!1,!1)};SA.prototype.incrementLoadCounts=function(e){_F(this,e,!1,!0)};SA.prototype.decrementLoadCounts=function(e){_F(this,e,!0,!0)};SA.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var gg=SA;function Qw(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(Qw.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});Qw.prototype.makeDirty=function(){this._styleDirty=!0};Qw.prototype.resetDirty=function(){this._styleDirty=!1};Qw.prototype.applyStyle=function(e){if(!u(e.root)||u(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var gF=Qw;function P6e(e,t,n){let i=oi(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!u(o.box)&&!u(o.region)&&!oi(o,"3DTILES_bounding_volume_S2")&&!oi(o,"3DTILES_bounding_volume_cylinder"))throw new ue("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new ve({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=O6e(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Ge(a,!0));let c=new ve({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=R6e(t),this.subdivisionScheme=Hr[i.subdivisionScheme],this.branchingFactor=Hr.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,u(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function O6e(e){if(oi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return u(t.contents)?t.contents:t.content}return u(e.contents)?e.contents:u(e.content)?[e.content]:[]}function R6e(e){let t=Ge(e,!0);return u(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var wA=P6e;var Jw={};function Lre(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function a9(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Nre(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function c9(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}Jw.encode2D=function(e,t){return(Lre(e)|Lre(t)<<1)>>>0};Jw.decode2D=function(e,t){return u(t)||(t=new Array(2)),t[0]=Nre(e),t[1]=Nre(e>>1),t};Jw.encode3D=function(e,t,n){return a9(e)|a9(t)<<1|a9(n)<<2};Jw.decode3D=function(e,t){return u(t)||(t=new Array(3)),t[0]=c9(e),t[1]=c9(e>>1),t[2]=c9(e>>2),t};var ex=Jw;function Oo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===Hr.OCTREE&&(this.z=e.z)}Object.defineProperties(Oo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===Hr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===Hr.OCTREE?ex.encode3D(this.x,this.y,this.z):ex.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===Hr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Oo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===Hr.OCTREE){let o=(this.z<<e.level)+e.z;return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Oo.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===Hr.OCTREE){let r=Math.floor(this.z/t);return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};Oo.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===Hr.OCTREE){let r=e.z%n;return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};Oo.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===Hr.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Oo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Oo.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};Oo.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};Oo.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===Hr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Oo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===Hr.OCTREE?this.z===e.z:!0)};Oo.prototype.isImplicitTilesetRoot=function(){return this.level===0};Oo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Oo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Oo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===Hr.OCTREE&&(e.z=this.z),e};var Fre=[0,0,0];Oo.fromMortonIndex=function(e,t,n,i){let o;return e===Hr.OCTREE?(o=ex.decode3D(i,Fre),new Oo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=ex.decode2D(i,Fre),new Oo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Oo.fromTileIndex=function(e,t,n){let i,o,r;return e===Hr.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Oo.fromMortonIndex(e,t,i,r)};var vA=Oo;function Sp(){}Sp.selectTiles=function(e,t){de.throwInstantiationError()};Sp.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};Sp.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};Sp.selectTile=function(e,t){if(e.contentVisibility(t)===Zt.OUTSIDE)return;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&i._selectedTilesToStyle.push(e),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};Sp.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};Sp.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};Sp.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!M6e(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function M6e(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}Sp.updateTile=function(e,t){Bre(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,F6e(e),e._shouldSelect=!1,e._finalResolution=!0};function Bre(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Bre(r,t),e._visible=r._visible;return}if(L6e(e,t)){e._visible=!1;return}let i=e.refine===Uo.REPLACE,o=e._optimChildrenWithinParent===rd.USE_OPTIMIZATION;if(i&&o&&n&&!N6e(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function L6e(e,t){let{parent:n,tileset:i}=e;return!u(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Uo.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function N6e(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function F6e(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var Us=Sp;function kre(){}var ev={stack:new Qc,stackMaximumLength:0};kre.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=Us,s=ev.stack;for(s.push(i);s.length>0;){ev.stackMaximumLength=Math.max(ev.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Uo.ADD,l=a.refine===Uo.REPLACE,f=B6e(a);f&&k6e(a,s,t),(c||l&&!f)&&(U6e(e,a),o(a,t),V6e(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return ev.stack.trim(ev.stackMaximumLength),n};function B6e(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function k6e(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function U6e(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function V6e(e,t){e.contentAvailable&&e.contentVisibility(t)!==Zt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var yF=kre;function Ure(){}var tv={stack:new Qc,stackMaximumLength:0},nv={stack:new Qc,stackMaximumLength:0};Ure.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Us.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;H6e(n,t),tv.stack.trim(tv.stackMaximumLength),nv.stack.trim(nv.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function l9(e,t){e.contentAvailable&&Us.selectTile(e,t)}function z6e(e,t,n){let i=e.refine===Uo.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=Us;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(Us.sortChildrenByDistanceToCamera);let l=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let m=0;m<r.length;++m){let x=r[m];if(x.isVisible?(t.push(x),x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),d=!0):(l||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),l){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=G6e(x,n):b=!1,f=f&&b}}if(d||(f=!1),p!==-1&&i){let m=r[p];m._wasMinPriorityChild=!0;let x=(e._wasMinPriorityChild||e===o.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;x._foveatedFactor=Math.min(m._foveatedFactor,x._foveatedFactor),x._distanceToCamera=Math.min(m._distanceToCamera,x._distanceToCamera);for(let b=0;b<r.length;++b)r[b]._priorityHolder=x}return f}function H6e(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=Us,a=tv.stack;for(a.push(e);a.length>0;){tv.stackMaximumLength=Math.max(tv.stackMaximumLength,a.length);let c=a.pop(),l=c.parent,f=!u(l)||l._refines;c._refines=i(c)?z6e(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Uo.ADD?(l9(c,t),o(c,t)):c.refine===Uo.REPLACE&&(o(c,t),d&&l9(c,t)):(n._emptyTiles.push(c),o(c,t),d&&l9(c,t)),r(c,t),s(c,t)}}function G6e(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Us,s=!0,a=nv.stack;for(a.push(e);a.length>0;){nv.stackMaximumLength=Math.max(nv.stackMaximumLength,a.length);let c=a.pop(),l=c.children,f=l.length,d=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let g=0;g<f;++g){let m=l[g];a.push(m)}}return s}var xF=Ure;function Vre(){}var iv={stack:new Qc,stackMaximumLength:0},ov={stack:new Qc,stackMaximumLength:0},wp={stack:new Qc,stackMaximumLength:0,ancestorStack:new Qc,ancestorStackMaximumLength:0},W6e=2;Vre.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Us.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;Z6e(n,t),$6e(n,t),iv.stack.trim(iv.stackMaximumLength),ov.stack.trim(ov.stackMaximumLength),wp.stack.trim(wp.stackMaximumLength),wp.ancestorStack.trim(wp.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function j6e(e,t){let{updateTile:n,touchTile:i,selectTile:o}=Us,r=ov.stack;for(r.push(e);r.length>0;){ov.stackMaximumLength=Math.max(ov.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let l=a[c];l.isVisible&&(l.contentAvailable?(n(l,t),i(l,t),o(l,t)):l._depth-e._depth<W6e&&r.push(l))}}}function bF(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;u(n)?n._shouldSelect=!0:j6e(e,t)}function q6e(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!u(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function Y6e(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||u(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function X6e(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Us;for(let l=0;l<o.length;++l)r(o[l],n);o.sort(Us.sortChildrenByDistanceToCamera);let c=!1;for(let l=0;l<o.length;++l){let f=o[l];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function K6e(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:u(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function Z6e(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=Us,c=iv.stack;for(c.push(e);c.length>0;){iv.stackMaximumLength=Math.max(iv.stackMaximumLength,c.length);let l=c.pop();q6e(l,t);let f=l.parent,d=!u(f)||f._refines;l._refines=o(l)?X6e(l,c,t)&&d:!1;let p=!l._refines&&d;l.hasRenderableContent?l.refine===Uo.ADD?(bF(l,t),r(l,t)):l.refine===Uo.REPLACE&&(K6e(l,i)?(r(l,t),p&&bF(l,t)):p?(bF(l,t),r(l,t)):Y6e(n,l)&&r(l,t)):(n._emptyTiles.push(l),r(l,t),p&&bF(l,t)),s(l,t),a(l,t)}}function $6e(e,t){let{selectTile:n,canTraverse:i}=Us,{stack:o,ancestorStack:r}=wp,s;for(o.push(e);o.length>0||r.length>0;){if(wp.stackMaximumLength=Math.max(wp.stackMaximumLength,o.length),wp.ancestorStackMaximumLength=Math.max(wp.ancestorStackMaximumLength,r.length),r.length>0){let l=r.peek();if(l._stackLength===o.length){r.pop(),l!==s&&(l._finalResolution=!1),n(l,t);continue}}let a=o.pop();if(!u(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Uo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let l=a.children;for(let f=0;f<l.length;++f){let d=l[f];d.isVisible&&o.push(d)}}}}var TF=Vre;function br(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new hF,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new Qc,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._memoryAdjustedScreenSpaceError=this._maximumScreenSpaceError,this._cacheBytes=y(e.cacheBytes,512*1024*1024);let t=y(e.maximumCacheOverflowBytes,512*1024*1024);this._maximumCacheOverflowBytes=t,this._styleEngine=new gF,this._styleApplied=!1,this._modelMatrix=u(e.modelMatrix)?L.clone(e.modelMatrix):L.clone(L.IDENTITY),this._statistics=new gg,this._statisticsLast=new gg,this._statisticsPerPass=new Array(Po.NUMBER_OF_PASSES);for(let o=0;o<Po.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new gg;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new pF(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._initialClippingPlanesOriginMatrix=L.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!1),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorFactor=4,this.dynamicScreenSpaceErrorHeightFalloff=.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,gn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=kl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new tp(e.pointCloudShading),this._pointCloudEyeDomeLighting=new K_,this.loadProgress=new pe,this.allTilesLoaded=new pe,this.initialTilesLoaded=new pe,this.tileLoad=new pe,this.tileUnload=new pe,this.tileFailed=new pe,this.tileVisible=new pe,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,u(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new AT,this._shouldDestroyImageBasedLighting=!0),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this.splitDirection=y(e.splitDirection,il.NONE),this._projectTo2D=y(e.projectTo2D,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&It("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i}Object.defineProperties(br.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){xs.setOwner(e,this,"_clippingPlanes")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return es("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!u(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(u(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(u(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e,this._memoryAdjustedScreenSpaceError=e}},cacheBytes:{get:function(){return this._cacheBytes},set:function(e){this._cacheBytes=e}},maximumCacheOverflowBytes:{get:function(){return this._maximumCacheOverflowBytes},set:function(e){this._maximumCacheOverflowBytes=e}},memoryAdjustedScreenSpaceError:{get:function(){return this._memoryAdjustedScreenSpaceError}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=L.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return u(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(L.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):L.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,Xre(this)}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});br.fromIonAssetId=async function(e,t){let n=await ku.fromAssetId(e);return br.fromUrl(n,t)};br.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await br.loadJson(n),r=await Q6e(n,o),s=new br(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras,Xre(s);let c=u(o.asset.gltfUpAxis)?wo.fromName(o.asset.gltfUpAxis):wo.Y,l=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,wo.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=l,s._modelForwardAxis=f,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,L.IDENTITY).boundingSphere.center,g=s._ellipsoid.cartesianToCartographic(p);return u(g)&&g.height>li._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=L.clone(s._initialClippingPlanesOriginMatrix),s};br.loadJson=function(e){return ve.createIfNeeded(e).fetchJson()};br.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};br.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!u(i))throw new ue("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ue("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");u(t.extensionsRequired)&&br.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;u(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=zre(this,e,t.root,n);u(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Uo.ADD;let l=c._header.children;if(u(l))for(let f=0;f<l.length;++f){let d=l[f],p=zre(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&fF.checkChildrenWithinParent(c)}return s};function zre(e,t,n,i){if(!(u(n.implicitTiling)||oi(n,"3DTILES_implicit_tiling")))return new ud(e,t,n,i);let r=e.schema,s=new wA(t,n,r),a=new vA({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=Ge(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new ud(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function Q6e(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(u(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Wi.getSchemaLoader({resource:e});else if(u(n.schema))i=Wi.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new EA({schema:i.schema,metadataJson:n});return Wi.unload(i),o}var Hre=new h,J6e=new fe,e9e=new L,t9e=new h,n9e=new h,i9e=new h;function o9e(e,t){let n,i,o,r,s,a=t.camera,c=e._root,l=c.contentBoundingVolume;if(l instanceof ad)n=h.normalize(a.positionWC,Hre),i=a.directionWC,o=a.positionCartographic.height,r=l.minimumHeight,s=l.maximumHeight;else{let x=L.inverseTransformation(c.computedTransform,e9e),b=t.mapProjection.ellipsoid,T=l.boundingVolume,A=L.multiplyByPoint(x,T.center,t9e);if(h.magnitude(A)>b.minimumRadius){let C=fe.fromCartesian(A,b,J6e);n=h.normalize(a.positionWC,Hre),i=a.directionWC,o=a.positionCartographic.height,r=0,s=C.height*2}else{let C=L.multiplyByPoint(x,a.positionWC,n9e);if(n=h.UNIT_Z,i=L.multiplyByPointAsVector(x,a.directionWC,i9e),i=h.normalize(i,i),o=C.z,l instanceof ld){let S=c._header.boundingVolume.box[11];r=A.z-S,s=A.z+S}else if(l instanceof pg){let S=T.radius;r=A.z-S,s=A.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.clamp((o-d)/(p-d),0,1),m=1-Math.abs(h.dot(i,n));m=m*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*m}function r9e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();u(o)&&(o.then(r=>{!u(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{jre(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?p9e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Wre(e,t){return e._priority-t._priority}br.prototype.postPassesUpdate=function(e){u(this._root)&&(s9e(this,e),g9e(this,e),this._cache.unloadTiles(this,Yre),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};br.prototype.prePassesUpdate=function(e){if(!u(this._root))return;l9e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,u(t)&&t.enabled&&t.update(e),u(this._loadTimestamp)||(this._loadTimestamp=J.clone(e.time)),this._timeSinceLoad=Math.max(J.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&o9e(this,e),e.newFrame&&this._cache.reset()};function s9e(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==zo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function a9e(e){let t=e._requestedTiles;t.sort(Wre);for(let n=0;n<t.length;++n)r9e(e,t[n])}function jre(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=u(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`))}function c9e(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==zo.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}function l9e(e,t){c9e(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;c<n.length;++c){if(e.totalMemoryUsageInBytes>s){a=!0;break}let l=n[c];try{l.process(e,t),l.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(l))}catch(f){--r.numberOfTilesProcessing,jre(f,e,l)}}e.totalMemoryUsageInBytes<i?f9e(e):a&&n.length>0&&u9e(e)}function u9e(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Wre)}function f9e(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var AF=new h,d9e={maximumFractionDigits:3};function Gre(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,d9e):Math.round(t).toLocaleString()}function u9(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,AF);if(u(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(u(n)){let r=h.normalize(i,AF);r=h.multiplyByScalar(r,.75*n,AF),o=h.add(r,i,AF)}return o}function f9(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=`
- Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=`
- Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=`
- Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=`
- Triangles: ${e.content.trianglesLength}`,o++),i+=`
- Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=`
- Texture Memory: ${Gre(e.content.texturesByteLength)}`,i+=`
- Geometry Memory: ${Gre(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=`
- Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=`
- - ${s[a]}`;o+=s.length}else i+=`
- Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function h9e(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(u(e.debugPickedTile)){let s=u(e.debugPickPosition)?e.debugPickPosition:u9(e.debugPickedTile),a=f9(e.debugPickedTile,e,s);a.pixelOffset=new V(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];f9(a,e,u9(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&f9(a,e,u9(a))}}e._tileDebugLabels.update(t)}function m9e(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(u(e._stencilClearCommand)||(e._stencilClearCommand=new ei({stencil:0,pass:Ee.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Lt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:l}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&l.raiseEvent(x),x.update(e,t,n),c.incrementSelectionCounts(x.content),++c.selected}let p=e._emptyTiles;for(let m=0;m<p.length;++m)p[m].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let m=e._backfaceCommands.values,x=m.length;i.length+=x;for(let b=g-1;b>=0;--b)i[d+x+b]=i[d+b];for(let b=0;b<x;++b)i[d+b]=m[b]}g=i.length-r,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(u(e._tileDebugLabels)||(e._tileDebugLabels=new dp),h9e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var qre=[];function p9e(e,t){let n=t,i=qre;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(_9e(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function Yre(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function _9e(e,t){e._cache.unloadTile(e,t,Yre),t.destroy()}br.prototype.trimLoadedTiles=function(){this._cache.trim()};function g9e(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;gg.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function y9e(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function x9e(e,t){t.frameNumber===e._updatedModelMatrixFrame&&u(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!L.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=L.clone(e.modelMatrix,e._previousModelMatrix)))}function b9e(e,t,n,i){if(t.mode===te.MORPHING||!u(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,y9e(e),x9e(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&a9e(e),m9e(e,t,i),gg.clone(o,n),i.isRender){let s=e._credits;if(u(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function Xre(e){let t=e._credits;u(t)||(t=[]),t.length=0,u(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(bt.clone(i))});let n=e.asset.extras;if(u(n)&&u(n.cesium)&&u(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new bt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}br.prototype.getTraversal=function(e){let{pass:t}=e;return t===Po.MOST_DETAILED_PRELOAD||t===Po.MOST_DETAILED_PICK?yF:this.isSkippingLevelOfDetail?TF:xF};br.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};br.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Po.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Po.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Po.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Po.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),l=c.length;e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r);let f=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=b9e(this,e,f,s)),a&&(c.length=l),e.commandList=i,e.camera=o,e.cullingVolume=r};br.prototype.hasExtension=function(e){return u(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};br.prototype.isDestroyed=function(){return!1};br.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),u(this._root)){let e=qre;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,le(this)};br.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};br.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!br.supportedExtensions[e[t]])throw new ue(`Unsupported 3D Tiles Extension: ${e[t]}`)};var ca=br;var T9e=new L;function yg(e,t){t.collectionChanged.addEventListener(yg.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new xt,this._onCollectionChanged(t,t.values,[],[])}yg.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,T9e),c=ve.createIfNeeded(j.getValueOrUndefined(a._uri,e)));let p=u(l)?l.tilesetPrimitive:void 0;if(!f){u(p)&&(p.show=!1);continue}(!u(l)||c.url!==l.url)&&(u(p)&&i.removeAndDestroy(p),delete n[s.id],A9e(c,n,s,i)),u(p)&&(p.show=!0,u(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=j.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};yg.prototype.isDestroyed=function(){return!1};yg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(yg.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)d9(this,e[i],t,n);return le(this)};yg.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!u(n)||n.loadFail)return at.FAILED;let i=n.tilesetPrimitive;return u(i)?i.show?(se.clone(i.boundingSphere,t),at.DONE):at.FAILED:at.PENDING};yg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],u(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],u(r._tileset)?s.set(r.id,r):(d9(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],d9(this,r,a,c),s.remove(r.id)};function d9(e,t,n,i){let o=n[t.id];u(o)&&(u(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function A9e(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await ca.fromUrl(e);if(o.id=n,i.add(o),!u(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var CF=yg;var C9e=z.WHITE,E9e=z.BLACK,S9e=new V(2,2);function DA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(DA.prototype,{isConstant:{get:function(){return j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ae("evenColor"),oddColor:ae("oddColor"),repeat:ae("repeat")});DA.prototype.getType=function(e){return"Checkerboard"};DA.prototype.getValue=function(e,t){return u(t)||(t={}),t.lightColor=j.getValueOrClonedDefault(this._evenColor,e,C9e,t.lightColor),t.darkColor=j.getValueOrClonedDefault(this._oddColor,e,E9e,t.darkColor),t.repeat=j.getValueOrDefault(this._repeat,e,S9e),t};DA.prototype.equals=function(e){return this===e||e instanceof DA&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._repeat,e._repeat)};var rv=DA;var Kre={id:void 0};function sv(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function Ba(e){this._owner=e,this._entities=new xt,this._addedEntities=new xt,this._removedEntities=new xt,this._changedEntities=new xt,this._suspendCount=0,this._collectionChanged=new pe,this._id=Gn(),this._show=!0,this._firing=!1,this._refire=!1}Ba.prototype.suspendEvents=function(){this._suspendCount++};Ba.prototype.resumeEvents=function(){this._suspendCount--,sv(this)};Object.defineProperties(Ba.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});Ba.prototype.computeAvailability=function(){let e=He.MAXIMUM_VALUE,t=He.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(u(s)){let a=s.start,c=s.stop;J.lessThan(a,e)&&!a.equals(He.MINIMUM_VALUE)&&(e=a),J.greaterThan(c,t)&&!c.equals(He.MAXIMUM_VALUE)&&(t=c)}}return He.MAXIMUM_VALUE.equals(e)&&(e=He.MINIMUM_VALUE),He.MINIMUM_VALUE.equals(t)&&(t=He.MAXIMUM_VALUE),new An({start:e,stop:t})};Ba.prototype.add=function(e){e instanceof Qo||(e=new Qo(e));let t=e.id,n=this._entities;if(n.contains(t))throw new ue(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(Ba.prototype._onEntityDefinitionChanged,this),sv(this),e};Ba.prototype.remove=function(e){return u(e)?this.removeById(e.id):!1};Ba.prototype.contains=function(e){return this._entities.get(e.id)===e};Ba.prototype.removeById=function(e){if(!u(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(Ba.prototype._onEntityDefinitionChanged,this),sv(this),!0):!1};Ba.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);u(c)||(s.definitionChanged.removeEventListener(Ba.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),sv(this)};Ba.prototype.getById=function(e){return this._entities.get(e)};Ba.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return u(t)||(Kre.id=e,t=new Qo(Kre),this.add(t)),t};Ba.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),sv(this)};var Vs=Ba;var EF={id:void 0},IA=new Array(2);function h9(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function Zre(e,t,n,i){IA[0]=n,IA[1]=i.id,t[JSON.stringify(IA)]=i.definitionChanged.addEventListener(Tr.prototype._onDefinitionChanged,e)}function $re(e,t,n,i){IA[0]=n,IA[1]=i.id;let o=JSON.stringify(IA);t[o](),t[o]=void 0}function xg(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,l,f=e._composite,d=new Vs(e),p=e._eventHash,g;for(r=0;r<o;r++)for(l=i[r],l.collectionChanged.removeEventListener(Tr.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--)s=a[c],$re(e,p,g,s);for(r=n-1;r>=0;r--)for(l=t[r],l.collectionChanged.addEventListener(Tr.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--){s=a[c],Zre(e,p,g,s);let x=d.getById(s.id);u(x)||(x=f.getById(s.id),u(x)?h9(x):(EF.id=s.id,x=new Qo(EF)),d.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let m=d.values;for(r=0;r<m.length;r++)f.add(m[r]);f.resumeEvents()}function Tr(e,t){this._owner=t,this._composite=new Vs(this),this._suspendCount=0,this._collections=u(e)?e.slice():[],this._collectionsCopy=[],this._id=Gn(),this._eventHash={},xg(this),this._shouldRecomposite=!1}Object.defineProperties(Tr.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Tr.prototype.addCollection=function(e,t){u(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),xg(this)};Tr.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),xg(this),!0):!1};Tr.prototype.removeAllCollections=function(){this._collections.length=0,xg(this)};Tr.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Tr.prototype.contains=function(e){return this._composite.contains(e)};Tr.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Tr.prototype.getCollection=function(e){return this._collections[e]};Tr.prototype.getCollectionsLength=function(){return this._collections.length};function SF(e,t){return e.indexOf(t)}function Qre(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,xg(e)}Tr.prototype.raiseCollection=function(e){let t=SF(this._collections,e);Qre(this,t,t+1)};Tr.prototype.lowerCollection=function(e){let t=SF(this._collections,e);Qre(this,t,t-1)};Tr.prototype.raiseCollectionToTop=function(e){let t=SF(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),xg(this))};Tr.prototype.lowerCollectionToBottom=function(e){let t=SF(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),xg(this))};Tr.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Tr.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(xg(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Tr.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Tr.prototype.getById=function(e){return this._composite.getById(e)};Tr.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,l,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];$re(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),u(c)&&(u(l)||(l=r.getById(x),h9(l)),l.merge(c));u(l)||r.removeById(x),l=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];Zre(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),u(c)&&(u(l)||(l=r.getById(x),u(l)?h9(l):(EF.id=x,l=new Qo(EF),r.add(l))),l.merge(c));l=void 0}r.resumeEvents()};Tr.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),l=c[t],f=!u(l),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(u(g)){let m=g[t];if(u(m)){if(d)if(d=!1,u(m.merge)&&u(m.clone))l=m.clone(l);else{l=m;break}l.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=l};var Jre=Tr;function m9(){this._removalFunctions=[]}m9.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};m9.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Or=m9;function g9(e,t){return J.compare(e.start,t.start)}function Ar(e){if(this._intervals=[],this._changedEvent=new pe,u(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(Ar.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});Ar.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof Ar))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!An.equals(n[r],i[r],t))return!1;return!0};Ar.prototype.get=function(e){return this._intervals[e]};Ar.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};Ar.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};Ar.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};Ar.prototype.contains=function(e){return this.indexOf(e)>=0};var p9=new An;Ar.prototype.indexOf=function(e){let t=this._intervals;p9.start=e,p9.stop=e;let n=Eo(t,p9,g9);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&An.contains(t[n-1],e)?n-1:~n)};Ar.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!u(t)||c.start.equals(t))&&(!u(n)||c.stop.equals(n))&&(!u(i)||c.isStartIncluded===i)&&(!u(o)||c.isStopIncluded===o))return r[s]}};Ar.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||J.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Eo(n,e,g9);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=J.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((u(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(J.greaterThan(e.stop,n[i-1].stop)?e=new An({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new An({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=J.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new An({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new An({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=J.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(u(t)?t(n[i].data,e.data):n[i].data===e.data)e=new An({start:e.start,stop:J.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:J.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new An({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};Ar.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Eo(t,e,g9);n<0&&(n=~n);let i=!1;for(n>0&&(J.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(J.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new An({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new An({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new An({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&J.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new An({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new An({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(J.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new An({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};Ar.prototype.intersect=function(e,t,n){let i=new Ar,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],l=a[r];if(J.lessThan(c.stop,l.start))++o;else if(J.lessThan(l.stop,c.start))++r;else{if(u(n)||u(t)&&t(c.data,l.data)||!u(t)&&l.data===c.data){let f=An.intersect(c,l,new An,n);f.isEmpty||i.addInterval(f,t)}J.lessThan(c.stop,l.stop)||c.stop.equals(l.stop)&&!c.isStopIncluded&&l.isStopIncluded?++o:++r}}return i};Ar.fromJulianDateArray=function(e,t){u(t)||(t=new Ar);let n=e.julianDates,i=n.length,o=e.dataCallback,r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),l,f=0;a&&(++f,l=new An({start:He.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];l=new An({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l),p=g}return c&&(l=new An({start:n[i-1],stop:He.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),l.data=u(o)?o(l,t.length):t.length,t.addInterval(l)),t};var ka=new o_,av=[0,31,28,31,30,31,30,31,31,30,31,30,31];function _9(e,t,n){u(n)||(n=new J),J.toGregorianDate(e,ka);let i=ka.millisecond+t.millisecond,o=ka.second+t.second,r=ka.minute+t.minute,s=ka.hour+t.hour,a=ka.day+t.day,c=ka.month+t.month,l=ka.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),av[2]=r_(l)?29:28;a>av[c]||c>=13;)a>av[c]&&(a-=av[c],++c),c>=13&&(--c,l+=Math.floor(c/12),c=c%12,++c),av[2]=r_(l)?29:28;return ka.millisecond=i,ka.second=o,ka.minute=r,ka.hour=s,ka.day=a,ka.month=c,ka.year=l,J.fromGregorianDate(ka,n)}var w9e=new J,v9e=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function ese(e,t){if(!u(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(v9e);if(!u(n))return!1;if(u(n[1])&&(t.year=Number(n[1].replace(",","."))),u(n[2])&&(t.month=Number(n[2].replace(",","."))),u(n[3])&&(t.day=Number(n[3].replace(",","."))*7),u(n[4])&&(t.day+=Number(n[4].replace(",","."))),u(n[5])&&(t.hour=Number(n[5].replace(",","."))),u(n[6])&&(t.minute=Number(n[6].replace(",","."))),u(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),J.toGregorianDate(J.fromIso8601(e,w9e),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var cv=new o_;Ar.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=J.fromIso8601(n[0]),o=J.fromIso8601(n[1]),r=[];if(!ese(n[2],cv))r.push(i,o);else{let s=J.clone(i);for(r.push(s);J.compare(s,o)<0;)s=_9(s,cv),J.compare(o,s)<=0&&J.clone(o,s),r.push(s)}return Ar.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Ar.fromIso8601DateArray=function(e,t){return Ar.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return J.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Ar.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let l=0;l<c;++l)(ese(i[l],cv)||l===0)&&(o&&u(a)?s=_9(a,cv):s=_9(n,cv),r.push(s),a=s);return Ar.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Rr=Ar;function D9e(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);u(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function tx(){this._eventHelper=new Or,this._definitionChanged=new pe,this._intervals=new Rr,this._intervals.changedEvent.addEventListener(tx.prototype._intervalsChanged,this)}Object.defineProperties(tx.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});tx.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};tx.prototype.equals=function(e){return this===e||e instanceof tx&&this._intervals.equals(e._intervals,j.equals)};tx.prototype._intervalsChanged=function(){D9e(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var bc=tx;function bg(){this._definitionChanged=new pe,this._composite=new bc,this._composite.definitionChanged.addEventListener(bg.prototype._raiseDefinitionChanged,this)}Object.defineProperties(bg.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});bg.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(t))return t.getType(e)};bg.prototype.getValue=function(e,t){let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};bg.prototype.equals=function(e){return this===e||e instanceof bg&&this._composite.equals(e._composite,j.equals)};bg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var lv=bg;function Tg(e){this._referenceFrame=y(e,to.FIXED),this._definitionChanged=new pe,this._composite=new bc,this._composite.definitionChanged.addEventListener(Tg.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Tg.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});Tg.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Tg.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(i))return i.getValueInReferenceFrame(e,t,n)};Tg.prototype.equals=function(e){return this===e||e instanceof Tg&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,j.equals)};Tg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var la=Tg;var I9e={ROUNDED:0,MITERED:1,BEVELED:2},Li=Object.freeze(I9e);var zs=[new h,new h],P9e=new h,O9e=new h,R9e=new h,M9e=new h,L9e=new h,N9e=new h,F9e=new h,B9e=new h,k9e=new h,PA=new h,wF=new h,uv={},y9=new fe;function U9e(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];y9=t.cartesianToCartographic(o,y9),n[i]=y9.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function x9(e,t,n,i){let o=e[0],r=e[1],s=h.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),l;if(t===n){for(l=0;l<a;l++)c[l]=t;return c.push(n),c}let d=(n-t)/a;for(l=1;l<a;l++){let p=t+l*d;c[l]=p}return c[0]=t,c.push(n),c}var vF=new h,DF=new h;function V9e(e,t,n,i){let o=new Ir(n,i),r=o.projectPointOntoPlane(h.add(n,e,vF),vF),s=o.projectPointOntoPlane(h.add(n,t,DF),DF),a=V.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var z9e=new h(-1,0,0),nx=new L,H9e=new L,b9=new $,G9e=$.IDENTITY.clone(),W9e=new h,j9e=new oe,tse=new h;function vp(e,t,n,i,o,r,s,a){let c=W9e,l=j9e;nx=Rt.eastNorthUpToFixedFrame(e,o,nx),c=L.multiplyByPointAsVector(nx,z9e,c),c=h.normalize(c,c);let f=V9e(c,t,e,o);b9=$.fromRotationZ(f,b9),tse.z=r,nx=L.multiplyTransformation(nx,L.fromRotationTranslation(b9,tse,H9e),nx);let d=G9e;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)l=h.fromArray(n,g,l),l=$.multiplyByVector(d,l,l),l=L.multiplyByPoint(nx,l,l),i.push(l.x,l.y,l.z);return i}var q9e=new h;function T9(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,q9e);i=vp(c,t,n,i,o,r[a/3],s,1)}return i}function Y9e(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let l=a.x-r,f=a.y-s;i[o++]=l,i[o++]=0,i[o++]=f,i[o++]=l,i[o++]=0,i[o++]=f}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function nse(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var ise=new Ne,ose=new h,rse=new $;function sse(e,t,n,i,o,r,s,a,c,l){let f=h.angleBetween(h.subtract(t,e,PA),h.subtract(n,e,wF)),d=i===Li.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=$.fromQuaternion(Ne.fromAxisAngle(h.negate(e,PA),f/(d+1),ise),rse):p=$.fromQuaternion(Ne.fromAxisAngle(e,f/(d+1),ise),rse);let g,m;if(t=h.clone(t,ose),d>0){let x=l?2:1;for(let b=0;b<d;b++)t=$.multiplyByVector(p,t,t),g=h.subtract(t,e,PA),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,wF),s=vp(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,PA),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,wF),s=vp(m,g,a,s,r,c,1,1),n=h.clone(n,ose),g=h.subtract(n,e,PA),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,wF),s=vp(m,g,a,s,r,c,1,1);return s}uv.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];V.equals(r,s)||n.push(s)}return n};uv.angleIsGreaterThanPi=function(e,t,n,i){let o=new Ir(n,i),r=o.projectPointOntoPlane(h.add(n,e,vF),vF),s=o.projectPointOntoPlane(h.add(n,t,DF),DF);return s.x*r.y-s.y*r.x>=0};var X9e=new h,K9e=new h;uv.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=U9e(e,r),a=i._granularity,c=i._cornerType,l=o?Y9e(t,n):nse(t,n),f=o?nse(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=P9e,T=O9e,A=R9e,C=M9e,S=L9e,w=N9e,D=F9e,O=B9e,R=k9e,N=e[0],F=e[1];C=r.geodeticSurfaceNormal(N,C),b=h.subtract(F,N,b),b=h.normalize(b,b),O=h.cross(C,b,O),O=h.normalize(O,O);let _=s[0],E=s[1];o&&(x=vp(N,O,f,x,r,_+d,1,1)),R=h.clone(N,R),N=F,T=h.negate(b,T);let v,I;for(let H=1;H<g-1;H++){let U=o?2:1;if(F=e[H+1],N.equals(F)){It("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(F,N,b),b=h.normalize(b,b),A=h.add(b,T,A),A=h.normalize(A,A),C=r.geodeticSurfaceNormal(N,C);let G=h.multiplyByScalar(C,h.dot(b,C),X9e);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(C,h.dot(T,C),K9e);if(h.subtract(T,k,k),h.normalize(k,k),!P.equalsEpsilon(Math.abs(h.dot(G,k)),1,P.EPSILON7)){A=h.cross(A,C,A),A=h.cross(C,A,A),A=h.normalize(A,A);let q=1/Math.max(.25,h.magnitude(h.cross(A,T,PA))),Q=uv.angleIsGreaterThanPi(b,T,N,r);Q?(S=h.add(N,h.multiplyByScalar(A,q*p,A),S),w=h.add(S,h.multiplyByScalar(O,p,w),w),zs[0]=h.clone(R,zs[0]),zs[1]=h.clone(w,zs[1]),v=x9(zs,_+d,E+d,a),I=Mi.generateArc({positions:zs,granularity:a,ellipsoid:r}),m=T9(I,O,l,m,r,v,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,p,D),D),c===Li.ROUNDED||c===Li.BEVELED?sse(S,w,D,c,Q,r,m,l,E+d,o):(A=h.negate(A,A),m=vp(N,A,l,m,r,E+d,q,U)),R=h.clone(D,R)):(S=h.add(N,h.multiplyByScalar(A,q*p,A),S),w=h.add(S,h.multiplyByScalar(O,-p,w),w),zs[0]=h.clone(R,zs[0]),zs[1]=h.clone(w,zs[1]),v=x9(zs,_+d,E+d,a),I=Mi.generateArc({positions:zs,granularity:a,ellipsoid:r}),m=T9(I,O,l,m,r,v,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,-p,D),D),c===Li.ROUNDED||c===Li.BEVELED?sse(S,w,D,c,Q,r,m,l,E+d,o):m=vp(N,A,l,m,r,E+d,q,U),R=h.clone(D,R)),T=h.negate(b,T)}else m=vp(R,O,l,m,r,_+d,1,1),R=N;_=E,E=s[H+1],N=F}zs[0]=h.clone(R,zs[0]),zs[1]=h.clone(N,zs[1]),v=x9(zs,_+d,E+d,a),I=Mi.generateArc({positions:zs,granularity:a,ellipsoid:r}),m=T9(I,O,l,m,r,v,1),o&&(x=vp(N,O,f,x,r,E+d,1,1)),g=m.length;let M=o?g+x.length:g,B=new Float64Array(M);return B.set(m),o&&B.set(x,g),B};var kh=uv;var C9={},OA=new h,fse=new h,Z9e=new h,ase=new h,Tc=[new h,new h],dse=new h,hse=new h,mse=new h,$9e=new h,Q9e=new h,J9e=new h,eWe=new h,tWe=new h,nWe=new h,iWe=new h,cse=new Ne,lse=new $;function IF(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,OA),h.subtract(n,e,fse)),s=i===Li.BEVELED?1:Math.ceil(r/P.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let l;o?l=$.fromQuaternion(Ne.fromAxisAngle(h.negate(e,OA),r/s,cse),lse):l=$.fromQuaternion(Ne.fromAxisAngle(e,r/s,cse),lse);let f=0;t=h.clone(t,OA);for(let d=0;d<s;d++)t=$.multiplyByVector(l,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function oWe(e){let t=dse,n=hse,i=mse,o=e[1];n=h.fromArray(e[1],o.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let r=IF(t,n,i,Li.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(o,0,i),t=h.midpoint(n,i,t);let c=IF(t,n,i,Li.ROUNDED,!1);return[r,c]}function use(e,t,n,i){let o=OA;return i?o=h.add(e,t,o):(t=h.negate(t,t),o=h.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function A9(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,OA),a=h.negate(s,fse),c=0,l=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,Z9e),p=h.add(d,a,ase);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,ase);r[l--]=g.z,r[l--]=g.y,r[l--]=g.x}return i.push(o,r),i}C9.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;u(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),u(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var rWe=new h,sWe=new h;C9.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=dse,c=hse,l=mse,f=$9e,d=Q9e,p=J9e,g=eWe,m=tWe,x=nWe,b=iWe,T=[],A=s?[]:void 0,C=s?[]:void 0,S=n[0],w=n[1];c=h.normalize(h.subtract(w,S,c),c),a=i.geodeticSurfaceNormal(S,a),f=h.normalize(h.cross(a,c,f),f),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),g=h.clone(S,g),S=w,l=h.negate(c,l);let D,O=[],R,N=n.length;for(R=1;R<N-1;R++){a=i.geodeticSurfaceNormal(S,a),w=n[R+1],c=h.normalize(h.subtract(w,S,c),c),d=h.normalize(h.add(c,l,d),d);let _=h.multiplyByScalar(a,h.dot(c,a),rWe);h.subtract(c,_,_),h.normalize(_,_);let E=h.multiplyByScalar(a,h.dot(l,a),sWe);if(h.subtract(l,E,E),h.normalize(E,E),!P.equalsEpsilon(Math.abs(h.dot(_,E)),1,P.EPSILON7)){d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let I=o/Math.max(.25,h.magnitude(h.cross(d,l,OA))),M=kh.angleIsGreaterThanPi(c,l,S,i);d=h.multiplyByScalar(d,I,d),M?(m=h.add(S,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),Tc[0]=h.clone(g,Tc[0]),Tc[1]=h.clone(b,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),T=A9(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),p=h.clone(x,p),f=h.normalize(h.cross(a,c,f),f),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),g=h.add(m,h.multiplyByScalar(f,o,g),g),r===Li.ROUNDED||r===Li.BEVELED?O.push({leftPositions:IF(m,p,x,r,M)}):O.push({leftPositions:use(S,h.negate(d,d),x,M)})):(x=h.add(S,d,x),b=h.add(x,h.negate(h.multiplyByScalar(f,o,b),b),b),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),Tc[0]=h.clone(g,Tc[0]),Tc[1]=h.clone(b,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),T=A9(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),p=h.clone(m,p),f=h.normalize(h.cross(a,c,f),f),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),g=h.add(x,h.negate(h.multiplyByScalar(f,o,g),g),g),r===Li.ROUNDED||r===Li.BEVELED?O.push({rightPositions:IF(x,p,m,r,M)}):O.push({rightPositions:use(S,d,m,M)})),l=h.negate(c,l)}S=w}a=i.geodeticSurfaceNormal(S,a),Tc[0]=h.clone(g,Tc[0]),Tc[1]=h.clone(S,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),T=A9(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z));let F;return r===Li.ROUNDED&&(F=oWe(T)),{positions:T,corners:O,lefts:A,normals:C,endPositions:F}};var Bi=C9;var gse=new h,yse=new h,PF=new h,OF=new h,aWe=new h,xse=new h,Ag=new h,RA=new h;function bse(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function fd(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,l=h.normalize(h.cross(n,t,Ag),Ag);r.normal&&Bi.addAttribute(s,t,i,o),r.tangent&&Bi.addAttribute(a,l,i,o),r.bitangent&&Bi.addAttribute(c,n,i,o)}function Tse(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new hn,l,f=0,d=0,p,g=0,m;for(p=0;p<i.length;p+=2)m=i[p].length-3,f+=m,g+=m*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<o.length;p++){l=o[p];let Z=o[p].leftPositions;u(Z)?(m=Z.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=u(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,A=new Float64Array(T),C=t.normal?new Float32Array(T):void 0,S=t.tangent?new Float32Array(T):void 0,w=t.bitangent?new Float32Array(T):void 0,D={normals:C,tangents:S,bitangents:w},O=0,R=T-1,N,F,_,E,v=gse,I=yse,M,B,H=b/2,U=ke.createTypedArray(T/3,g),G=0;if(x){B=PF,M=OF;let Z=r[0];for(v=h.fromArray(a,0,v),I=h.fromArray(s,0,I),p=0;p<H;p++)B=h.fromArray(Z,(H-1-p)*3,B),M=h.fromArray(Z,(H+p)*3,M),Bi.addAttribute(A,M,O),Bi.addAttribute(A,B,void 0,R),fd(D,v,I,O,R,t),F=O/3,E=F+1,N=(R-2)/3,_=N-1,U[G++]=N,U[G++]=F,U[G++]=_,U[G++]=_,U[G++]=F,U[G++]=E,O+=3,R-=3}let k=0,Y=0,q=i[k++],Q=i[k++];A.set(q,O),A.set(Q,R-Q.length+1),I=h.fromArray(s,Y,I);let W,K;for(m=Q.length-3,p=0;p<m;p+=3)W=n.geodeticSurfaceNormal(h.fromArray(q,p,Ag),Ag),K=n.geodeticSurfaceNormal(h.fromArray(Q,m-p,RA),RA),v=h.normalize(h.add(W,K,v),v),fd(D,v,I,O,R,t),F=O/3,E=F+1,N=(R-2)/3,_=N-1,U[G++]=N,U[G++]=F,U[G++]=_,U[G++]=_,U[G++]=F,U[G++]=E,O+=3,R-=3;for(W=n.geodeticSurfaceNormal(h.fromArray(q,m,Ag),Ag),K=n.geodeticSurfaceNormal(h.fromArray(Q,m,RA),RA),v=h.normalize(h.add(W,K,v),v),Y+=3,p=0;p<o.length;p++){let Z;l=o[p];let me=l.leftPositions,xe=l.rightPositions,re,ge,ye=xse,Ae=PF,De=OF;if(v=h.fromArray(a,Y,v),u(me)){for(fd(D,v,I,void 0,R,t),R-=3,re=E,ge=_,Z=0;Z<me.length/3;Z++)ye=h.fromArray(me,Z*3,ye),U[G++]=re,U[G++]=ge-Z-1,U[G++]=ge-Z,Bi.addAttribute(A,ye,void 0,R),Ae=h.fromArray(A,(ge-Z-1)*3,Ae),De=h.fromArray(A,re*3,De),I=h.normalize(h.subtract(Ae,De,I),I),fd(D,v,I,void 0,R,t),R-=3;ye=h.fromArray(A,re*3,ye),Ae=h.subtract(h.fromArray(A,ge*3,Ae),ye,Ae),De=h.subtract(h.fromArray(A,(ge-Z)*3,De),ye,De),I=h.normalize(h.add(Ae,De,I),I),fd(D,v,I,O,void 0,t),O+=3}else{for(fd(D,v,I,O,void 0,t),O+=3,re=_,ge=E,Z=0;Z<xe.length/3;Z++)ye=h.fromArray(xe,Z*3,ye),U[G++]=re,U[G++]=ge+Z,U[G++]=ge+Z+1,Bi.addAttribute(A,ye,O),Ae=h.fromArray(A,re*3,Ae),De=h.fromArray(A,(ge+Z)*3,De),I=h.normalize(h.subtract(Ae,De,I),I),fd(D,v,I,O,void 0,t),O+=3;ye=h.fromArray(A,re*3,ye),Ae=h.subtract(h.fromArray(A,(ge+Z)*3,Ae),ye,Ae),De=h.subtract(h.fromArray(A,ge*3,De),ye,De),I=h.normalize(h.negate(h.add(De,Ae,I),I),I),fd(D,v,I,void 0,R,t),R-=3}for(q=i[k++],Q=i[k++],q.splice(0,3),Q.splice(Q.length-3,3),A.set(q,O),A.set(Q,R-Q.length+1),m=Q.length-3,Y+=3,I=h.fromArray(s,Y,I),Z=0;Z<Q.length;Z+=3)W=n.geodeticSurfaceNormal(h.fromArray(q,Z,Ag),Ag),K=n.geodeticSurfaceNormal(h.fromArray(Q,m-Z,RA),RA),v=h.normalize(h.add(W,K,v),v),fd(D,v,I,O,R,t),E=O/3,F=E-1,_=(R-2)/3,N=_+1,U[G++]=N,U[G++]=F,U[G++]=_,U[G++]=_,U[G++]=F,U[G++]=E,O+=3,R-=3;O-=3,R+=3}if(v=h.fromArray(a,a.length-3,v),fd(D,v,I,O,R,t),x){O+=3,R-=3,B=PF,M=OF;let Z=r[1];for(p=0;p<H;p++)B=h.fromArray(Z,(b-p-1)*3,B),M=h.fromArray(Z,p*3,M),Bi.addAttribute(A,B,void 0,R),Bi.addAttribute(A,M,O),fd(D,v,I,O,R,t),E=O/3,F=E-1,_=(R-2)/3,N=_+1,U[G++]=N,U[G++]=F,U[G++]=_,U[G++]=_,U[G++]=F,U[G++]=E,O+=3,R-=3}if(c.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:A}),t.st){let Z=new Float32Array(T/3*2),me,xe,re=0;if(x){f/=3,d/=3;let ge=Math.PI/(b+1);xe=1/(f-b+1),me=1/(d-b+1);let ye,Ae=b/2;for(p=Ae+1;p<b+1;p++)ye=P.PI_OVER_TWO+ge*p,Z[re++]=me*(1+Math.cos(ye)),Z[re++]=.5*(1+Math.sin(ye));for(p=1;p<d-b+1;p++)Z[re++]=p*me,Z[re++]=0;for(p=b;p>Ae;p--)ye=P.PI_OVER_TWO-p*ge,Z[re++]=1-me*(1+Math.cos(ye)),Z[re++]=.5*(1+Math.sin(ye));for(p=Ae;p>0;p--)ye=P.PI_OVER_TWO-ge*p,Z[re++]=1-xe*(1+Math.cos(ye)),Z[re++]=.5*(1+Math.sin(ye));for(p=f-b;p>0;p--)Z[re++]=p*xe,Z[re++]=1;for(p=1;p<Ae+1;p++)ye=P.PI_OVER_TWO+ge*p,Z[re++]=xe*(1+Math.cos(ye)),Z[re++]=.5*(1+Math.sin(ye))}else{for(f/=3,d/=3,xe=1/(f-1),me=1/(d-1),p=0;p<d;p++)Z[re++]=p*me,Z[re++]=0;for(p=f;p>0;p--)Z[re++]=(p-1)*xe,Z[re++]=1}c.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Z})}return t.normal&&(c.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:U}}function cWe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,l;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=gse,m=yse,x=PF,b=OF,T=aWe,A=xse,C=c;for(l=0;l<s;l+=3){let S=C+c;g=h.fromArray(n,l,g),m=h.fromArray(n,l+s,m),x=h.fromArray(n,(l+3)%s,x),m=h.subtract(m,g,m),x=h.subtract(x,g,x),b=h.normalize(h.cross(m,x,b),b),t.normal&&(Bi.addAttribute(f,b,S),Bi.addAttribute(f,b,S+3),Bi.addAttribute(f,b,C),Bi.addAttribute(f,b,C+3)),(t.tangent||t.bitangent)&&(A=h.fromArray(i,l,A),t.bitangent&&(Bi.addAttribute(p,A,S),Bi.addAttribute(p,A,S+3),Bi.addAttribute(p,A,C),Bi.addAttribute(p,A,C+3)),t.tangent&&(T=h.normalize(h.cross(A,b,T),T),Bi.addAttribute(d,T,S),Bi.addAttribute(d,T,S+3),Bi.addAttribute(d,T,C),Bi.addAttribute(d,T,C+3))),C+=6}if(t.normal){for(f.set(i),l=0;l<s;l+=3)f[l+s]=-i[l],f[l+s+1]=-i[l+1],f[l+s+2]=-i[l+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let S=e.tangent.values;d.set(S),d.set(S,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],l=2;l<a;l+=2){let m=f[l],x=f[l+1];d[p++]=m,d[p++]=x,d[p++]=m,d[p++]=x}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function E9(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function lWe(e,t){let n=new Pe({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=Bi.computePositions(e),r=Tse(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,l=r.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let m=new Float64Array(d*4);f=ri.scaleToGeodeticHeight(f,s,i),m=E9(f,0,m),g=ri.scaleToGeodeticHeight(g,a,i),m=E9(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=cWe(c,t);let x,b=d/3;if(e.shadowVolume){let N=c.normal.values;d=N.length;let F=new Float32Array(d*6);for(x=0;x<d;x++)N[x]=-N[x];F.set(N,d),F=E9(N,d*4,F),c.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:F}),t.normal||(c.normal=void 0)}if(u(e.offsetAttribute)){let N=new Uint8Array(b*6);if(e.offsetAttribute===nn.TOP)N=N.fill(1,0,b).fill(1,b*2,b*4);else{let F=e.offsetAttribute===nn.NONE?0:1;N=N.fill(F)}c.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}let T=l.length,A=b+b,C=ke.createTypedArray(p.length/3,T*2+A*3);C.set(l);let S=T;for(x=0;x<T;x+=3){let N=l[x],F=l[x+1],_=l[x+2];C[S++]=_+b,C[S++]=F+b,C[S++]=N+b}let w,D,O,R;for(x=0;x<A;x+=2)w=x+A,D=w+A,O=w+1,R=D+1,C[S++]=w,C[S++]=D,C[S++]=O,C[S++]=O,C[S++]=D,C[S++]=R;return{attributes:c,indices:C}}var pse=new h,fv=new h,ef=new fe;function _se(e,t,n,i,o,r){let s=h.subtract(t,e,pse);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,fv),c=h.cross(s,a,pse);h.multiplyByScalar(c,i,c);let l=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,fv),n.cartesianToCartographic(fv,ef);let g=ef.latitude,m=ef.longitude;l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,fv),n.cartesianToCartographic(fv,ef),g=ef.latitude,m=ef.longitude,l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=l,o.longitude=f,r.latitude=d,r.longitude=p}var Ju=new h,dv=new h,sl=new fe,al=new fe;function Ase(e,t,n,i,o){e=bse(e,t);let r=go(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new ce;let a=n*.5;sl.latitude=Number.POSITIVE_INFINITY,sl.longitude=Number.POSITIVE_INFINITY,al.latitude=Number.NEGATIVE_INFINITY,al.longitude=Number.NEGATIVE_INFINITY;let c,l;if(i===Li.ROUNDED){let p=r[0];h.subtract(p,r[1],Ju),h.normalize(Ju,Ju),h.multiplyByScalar(Ju,a,Ju),h.add(p,Ju,dv),t.cartesianToCartographic(dv,ef),c=ef.latitude,l=ef.longitude,sl.latitude=Math.min(sl.latitude,c),sl.longitude=Math.min(sl.longitude,l),al.latitude=Math.max(al.latitude,c),al.longitude=Math.max(al.longitude,l)}for(let p=0;p<s-1;++p)_se(r[p],r[p+1],t,a,sl,al);let f=r[s-1];h.subtract(f,r[s-2],Ju),h.normalize(Ju,Ju),h.multiplyByScalar(Ju,a,Ju),h.add(f,Ju,dv),_se(f,dv,t,a,sl,al),i===Li.ROUNDED&&(t.cartesianToCartographic(dv,ef),c=ef.latitude,l=ef.longitude,sl.latitude=Math.min(sl.latitude,c),sl.longitude=Math.min(sl.longitude,l),al.latitude=Math.max(al.latitude,c),al.longitude=Math.max(al.longitude,l));let d=u(o)?o:new ce;return d.north=al.latitude,d.south=sl.latitude,d.east=al.longitude,d.west=sl.longitude,d}function Ip(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Li.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+ie.packedLength+Pe.packedLength+7}Ip.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Cse=ie.clone(ie.UNIT_SPHERE),Ese=new Pe,Dp={positions:void 0,ellipsoid:Cse,vertexFormat:Ese,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};Ip.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let m=0;m<i;++m,t+=h.packedLength)o[m]=h.unpack(e,t);let r=ie.unpack(e,t,Cse);t+=ie.packedLength;let s=Pe.unpack(e,t,Ese);t+=Pe.packedLength;let a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return u(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=l,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(Dp.positions=o,Dp.width=a,Dp.height=c,Dp.extrudedHeight=l,Dp.cornerType=f,Dp.granularity=d,Dp.shadowVolume=p,Dp.offsetAttribute=g===-1?void 0:g,new Ip(Dp))};Ip.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,ie.WGS84),r=y(e.cornerType,Li.ROUNDED);return Ase(n,o,i,r,t)};Ip.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=bse(t,i);let o=go(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c=e._vertexFormat,l={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)l.height=r,l.extrudedHeight=s,l.shadowVolume=e._shadowVolume,l.offsetAttribute=e._offsetAttribute,f=lWe(l,c);else{let g=Bi.computePositions(l);if(f=Tse(g,c,i),f.attributes.position.values=ri.scaleToGeodeticHeight(f.attributes.position.values,r,i),u(e._offsetAttribute)){let m=e._offsetAttribute===nn.NONE?0:1,x=f.attributes.position.values.length,b=new Uint8Array(x/3).fill(m);f.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}}let d=f.attributes,p=se.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new ct({attributes:d,indices:f.indices,primitiveType:Le.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Ip.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Ip({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Ip.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=Ase(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var MA=Ip;var Sse=new h,wse=new h,uWe=new h;function fWe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function vse(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new hn,a,c=0,l=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,l+=i[f+1].length-3;for(c+=3,l+=3,f=0;f<o.length;f++){a=o[f];let M=o[f].leftPositions;u(M)?(p=M.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,l+=p,d+=p/3*2)}let g=u(r),m;g&&(m=r[0].length-3,c+=m,l+=m,m/=3,d+=m*4);let x=c+l,b=new Float64Array(x),T=0,A=x-1,C,S,w,D,O,R,N=m/2,F=ke.createTypedArray(x/3,d+4),_=0;if(F[_++]=T/3,F[_++]=(A-2)/3,g){n.push(T/3),R=Sse,O=wse;let M=r[0];for(f=0;f<N;f++)R=h.fromArray(M,(N-1-f)*3,R),O=h.fromArray(M,(N+f)*3,O),Bi.addAttribute(b,O,T),Bi.addAttribute(b,R,void 0,A),S=T/3,D=S+1,C=(A-2)/3,w=C-1,F[_++]=C,F[_++]=w,F[_++]=S,F[_++]=D,T+=3,A-=3}let E=0,v=i[E++],I=i[E++];for(b.set(v,T),b.set(I,A-I.length+1),p=I.length-3,n.push(T/3,(A-2)/3),f=0;f<p;f+=3)S=T/3,D=S+1,C=(A-2)/3,w=C-1,F[_++]=C,F[_++]=w,F[_++]=S,F[_++]=D,T+=3,A-=3;for(f=0;f<o.length;f++){let M;a=o[f];let B=a.leftPositions,H=a.rightPositions,U,G=uWe;if(u(B)){for(A-=3,U=w,n.push(D),M=0;M<B.length/3;M++)G=h.fromArray(B,M*3,G),F[_++]=U-M-1,F[_++]=U-M,Bi.addAttribute(b,G,void 0,A),A-=3;n.push(U-Math.floor(B.length/6)),t===Li.BEVELED&&n.push((A-2)/3+1),T+=3}else{for(T+=3,U=D,n.push(w),M=0;M<H.length/3;M++)G=h.fromArray(H,M*3,G),F[_++]=U+M,F[_++]=U+M+1,Bi.addAttribute(b,G,T),T+=3;n.push(U+Math.floor(H.length/6)),t===Li.BEVELED&&n.push(T/3-1),A-=3}for(v=i[E++],I=i[E++],v.splice(0,3),I.splice(I.length-3,3),b.set(v,T),b.set(I,A-I.length+1),p=I.length-3,M=0;M<I.length;M+=3)D=T/3,S=D-1,w=(A-2)/3,C=w+1,F[_++]=C,F[_++]=w,F[_++]=S,F[_++]=D,T+=3,A-=3;T-=3,A+=3,n.push(T/3,(A-2)/3)}if(g){T+=3,A-=3,R=Sse,O=wse;let M=r[1];for(f=0;f<N;f++)R=h.fromArray(M,(m-f-1)*3,R),O=h.fromArray(M,f*3,O),Bi.addAttribute(b,R,void 0,A),Bi.addAttribute(b,O,T),D=T/3,S=D-1,w=(A-2)/3,C=w+1,F[_++]=C,F[_++]=w,F[_++]=S,F[_++]=D,T+=3,A-=3;n.push(T/3)}else n.push(T/3,(A-2)/3);return F[_++]=T/3,F[_++]=(A-2)/3,s.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:F,wallIndices:n}}function dWe(e){let t=e.ellipsoid,n=Bi.computePositions(e),i=vse(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,l=a.position.values,f=l.length,d=new Float64Array(f);d.set(l);let p=new Float64Array(f*2);if(l=ri.scaleToGeodeticHeight(l,r,t),d=ri.scaleToGeodeticHeight(d,s,t),p.set(l),p.set(d,f),a.position.values=p,f/=3,u(e.offsetAttribute)){let C=new Uint8Array(f*2);if(e.offsetAttribute===nn.TOP)C=C.fill(1,0,f);else{let S=e.offsetAttribute===nn.NONE?0:1;C=C.fill(S)}a.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}let g,m=c.length,x=ke.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let C=c[g],S=c[g+1];x[b++]=C+f,x[b++]=S+f}let T,A;for(g=0;g<o.length;g++)T=o[g],A=T+f,x[b++]=T,x[b++]=A;return{attributes:a,indices:x}}function hv(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Li.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ie.packedLength+6}hv.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var Dse=ie.clone(ie.UNIT_SPHERE),Cg={positions:void 0,ellipsoid:Dse,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};hv.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)o[p]=h.unpack(e,t);let r=ie.unpack(e,t,Dse);t+=ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t];return u(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=l,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(Cg.positions=o,Cg.width=s,Cg.height=a,Cg.extrudedHeight=c,Cg.cornerType=l,Cg.granularity=f,Cg.offsetAttribute=d===-1?void 0:d,new hv(Cg))};hv.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=fWe(t,i);let o=go(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},l;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,l=dWe(c);else{let p=Bi.computePositions(c);if(l=vse(p,c.cornerType),l.attributes.position.values=ri.scaleToGeodeticHeight(l.attributes.position.values,r,i),u(e._offsetAttribute)){let g=l.attributes.position.values.length,m=e._offsetAttribute===nn.NONE?0:1,x=new Uint8Array(g/3).fill(m);l.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=l.attributes,d=se.fromVertices(f.position.values,void 0,3);return new ct({attributes:f,indices:l.indices,primitiveType:Le.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var RF=hv;var hWe=new Zn(0);function Ac(e){ii.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}u(Object.create)&&(Ac.prototype=Object.create(ii.prototype),Ac.prototype.constructor=Ac);Object.defineProperties(Ac.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Ac.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!u(t.height)&&!u(t.extrudedHeight)&&Zc.isSupported(this._scene)};Ac.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||u(n)&&n!==t};Ac.prototype._computeCenter=de.throwInstantiationError;Ac.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!u(o))return;u(o.zIndex)&&(u(o.height)||u(o.extrudedHeight))&&It(It.geometryZIndex),this._zIndex=y(o.zIndex,hWe),u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(u(r)||u(s)){let a=new _h(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new bT(this._scene,a,r,s)}};Ac.prototype.destroy=function(){u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ii.prototype.destroy.call(this)};Ac.getGeometryHeight=function(e,t){if(!u(e)){t!==We.NONE&&It(It.geometryHeightReference);return}return t!==We.CLAMP_TO_GROUND?e:0};Ac.getGeometryExtrudedHeight=function(e,t){if(!u(e)){t!==We.NONE&&It(It.geometryExtrudedHeightReference);return}return t!==We.CLAMP_TO_GROUND?e:Ac.CLAMP_TO_GROUND};Ac.CLAMP_TO_GROUND="clamp";Ac.computeGeometryOffsetAttribute=function(e,t,n,i){(!u(e)||!u(t))&&(t=We.NONE),(!u(n)||!u(i))&&(i=We.NONE);let o=0;if(t!==We.NONE&&o++,i===We.RELATIVE_TO_GROUND&&o++,o===2)return nn.ALL;if(o===1)return nn.TOP};var qn=Ac;var Ise=new z,Pse=h.ZERO,Ose=new h,Rse=new ce;function mWe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function dd(e,t){qn.call(this,{entity:e,scene:t,geometryOptions:new mWe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}u(Object.create)&&(dd.prototype=Object.create(qn.prototype),dd.prototype.constructor=dd);dd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Ise)),u(o)||(o=z.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Pse,Ose))),new yt({id:t,geometry:new MA(this._options),attributes:i})};dd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Ise),o={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Pse,Ose))),new yt({id:t,geometry:new RF(this._options),attributes:o})};dd.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!u(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};dd.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.width)||ii.prototype._isHidden.call(this,e,t)};dd.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.width)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Nt)};dd.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),o=j.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,We.NONE);u(o)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Nt?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(He.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.cornerType=j.getValueOrUndefined(t.cornerType,He.MINIMUM_VALUE),s.offsetAttribute=qn.computeGeometryOffsetAttribute(n,i,o,r),s.height=qn.getGeometryHeight(n,i),o=qn.getGeometryExtrudedHeight(o,r),o===qn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(MA.computeRectangle(s,Rse)).minimumTerrainHeight),s.extrudedHeight=o};dd.DynamicGeometryUpdater=LA;function LA(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(LA.prototype=Object.create(ni.prototype),LA.prototype.constructor=LA);LA.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.positions)||!u(i.width)||ni.prototype._isHidden.call(this,e,t,n)};LA.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,We.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,We.NONE);u(s)&&!u(o)&&(o=0),i.positions=j.getValueOrUndefined(t.positions,n),i.width=j.getValueOrUndefined(t.width,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=qn.computeGeometryOffsetAttribute(o,r,s,a),i.height=qn.getGeometryHeight(o,r),s=qn.getGeometryExtrudedHeight(s,a),s===qn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(MA.computeRectangle(i,Rse)).minimumTerrainHeight),i.extrudedHeight=s};var MF=dd;function LF(){de.throwInstantiationError()}Object.defineProperties(LF.prototype,{name:{get:de.throwInstantiationError},clock:{get:de.throwInstantiationError},entities:{get:de.throwInstantiationError},isLoading:{get:de.throwInstantiationError},changedEvent:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError},loadingEvent:{get:de.throwInstantiationError},show:{get:de.throwInstantiationError},clustering:{get:de.throwInstantiationError}});LF.prototype.update=function(e){de.throwInstantiationError()};LF.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Mr=LF;function Uh(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,u(t)&&(this.cameraPosition=t)}Object.defineProperties(Uh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Mse=new h;Uh.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Mse);return w9(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};Uh.prototype.isScaledSpacePointVisible=function(e){return w9(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var pWe=new h;Uh.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return u(t)&&t<0&&n.minimumRadius>-t?(o=pWe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),w9(e,o,i)};Uh.prototype.computeHorizonCullingPoint=function(e,t,n){return Fse(this._ellipsoid,e,t,n)};var Lse=ie.clone(ie.UNIT_SPHERE);Uh.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Nse(this._ellipsoid,n,Lse);return Fse(o,e,t,i)};Uh.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Bse(this._ellipsoid,e,t,n,i,o)};Uh.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Nse(this._ellipsoid,o,Lse);return Bse(s,e,t,n,i,r)};var _We=[];Uh.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=ce.subsample(e,t,0,_We),o=se.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var gWe=new h;function Nse(e,t,n){if(u(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,gWe);e=ie.fromCartesian3(i,n)}return e}function Fse(e,t,n,i){u(i)||(i=new h);let o=Vse(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],l=kse(e,c,o);if(l<0)return;r=Math.max(r,l)}return Use(o,r,i)}var NF=new h;function Bse(e,t,n,i,o,r){u(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=Vse(e,t),a=0;for(let c=0,l=n.length;c<l;c+=i){NF.x=n[c]+o.x,NF.y=n[c+1]+o.y,NF.z=n[c+2]+o.z;let f=kse(e,NF,s);if(f<0)return;a=Math.max(a,f)}return Use(s,a,r)}function w9(e,t,n){let i=t,o=n,r=h.subtract(e,i,Mse),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var yWe=new h,xWe=new h;function kse(e,t,n){let i=e.transformPositionToScaledSpace(t,yWe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,xWe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),l=1/r,f=Math.sqrt(o-1)*l;return 1/(a*l-c*f)}function Use(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var S9=new h;function Vse(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,S9),h.normalize(S9,S9))}var Eg=Uh;function Cr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;u(n)&&(n=Ot.clone(n)),u(i)&&(i=Ot.clone(i)),u(o)&&(o=wt.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=z.clone(y(e.color,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var zse=Cr.SHOW_INDEX=0,Wse=Cr.POSITION_INDEX=1,bWe=Cr.COLOR_INDEX=2,TWe=Cr.OUTLINE_COLOR_INDEX=3,AWe=Cr.OUTLINE_WIDTH_INDEX=4,CWe=Cr.PIXEL_SIZE_INDEX=5,EWe=Cr.SCALE_BY_DISTANCE_INDEX=6,SWe=Cr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,wWe=Cr.DISTANCE_DISPLAY_CONDITION_INDEX=8,vWe=Cr.DISABLE_DEPTH_DISTANCE_INDEX=9;Cr.NUMBER_OF_PROPERTIES=10;function tf(e,t){let n=e._pointPrimitiveCollection;u(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Cr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,tf(this,zse))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),tf(this,Wse))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Ot.equals(t,e)||(this._scaleByDistance=Ot.clone(e,t),tf(this,EWe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Ot.equals(t,e)||(this._translucencyByDistance=Ot.clone(e,t),tf(this,SWe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,tf(this,CWe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),tf(this,bWe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),tf(this,TWe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,tf(this,AWe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){wt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=wt.clone(e,this._distanceDisplayCondition),tf(this,wWe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,tf(this,vWe))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,tf(this,zse))}}});Cr.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Cr.prototype._getActualPosition=function(){return this._actualPosition};Cr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),tf(this,Wse)};var Hse=new oe;Cr._computeActualPosition=function(e,t,n){return t.mode===te.SCENE3D?e:(L.multiplyByPoint(n,e,Hse),$i.computeActualWgs84Position(t,Hse))};var Gse=new oe;Cr._computeScreenSpacePosition=function(e,t,n,i){let o=L.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,Gse),Gse);return $i.wgs84ToWindowCoordinates(n,o,i)};Cr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;u(t)||(t=new V);let i=n.modelMatrix,o=Cr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(u(o))return o.y=e.canvas.clientHeight-o.y,o};Cr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return u(n)||(n=new qe),n.x=r,n.y=s,n.width=a,n.height=c,n};Cr.prototype.equals=function(e){return this===e||u(e)&&this._id===e._id&&h.equals(this._position,e._position)&&z.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&z.equals(this._outlineColor,e._outlineColor)&&Ot.equals(this._scaleByDistance,e._scaleByDistance)&&Ot.equals(this._translucencyByDistance,e._translucencyByDistance)&&wt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Cr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Hs=Cr;var ix=`in vec4 v_color;
- in vec4 v_outlineColor;
- in float v_innerPercent;
- in float v_pixelDistance;
- in vec4 v_pickColor;
- void main()
- {
-
- float distanceToCenter = length(gl_PointCoord - vec2(0.5));
-
- float maxDistance = max(0.0, 0.5 - v_pixelDistance);
- float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter);
- float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter);
- vec4 color = mix(v_outlineColor, v_color, innerAlpha);
- color.a *= wholeAlpha;
- #if !defined(OPAQUE) && !defined(TRANSLUCENT)
- if (color.a < 0.005)
- {
- discard;
- }
- #else
- #ifdef OPAQUE
- if (color.a < 0.995)
- {
- discard;
- }
- #else
- if (color.a >= 0.995)
- {
- discard;
- }
- #endif
- #endif
- out_FragColor = czm_gammaCorrect(color);
- czm_writeLogDepth();
- }
- `;var FF=`uniform float u_maxTotalPointSize;
- in vec4 positionHighAndSize;
- in vec4 positionLowAndOutline;
- in vec4 compressedAttribute0;
- in vec4 compressedAttribute1;
- in vec4 scaleByDistance;
- in vec3 distanceDisplayConditionAndDisableDepth;
- out vec4 v_color;
- out vec4 v_outlineColor;
- out float v_innerPercent;
- out float v_pixelDistance;
- out vec4 v_pickColor;
- const float SHIFT_LEFT8 = 256.0;
- const float SHIFT_RIGHT8 = 1.0 / 256.0;
- void main()
- {
-
-
- vec3 positionHigh = positionHighAndSize.xyz;
- vec3 positionLow = positionLowAndOutline.xyz;
- float outlineWidthBothSides = 2.0 * positionLowAndOutline.w;
- float totalSize = positionHighAndSize.w + outlineWidthBothSides;
- float outlinePercent = outlineWidthBothSides / totalSize;
-
- totalSize *= czm_pixelRatio;
- float temp = compressedAttribute1.x * SHIFT_RIGHT8;
- float show = floor(temp);
- #ifdef EYE_DISTANCE_TRANSLUCENCY
- vec4 translucencyByDistance;
- translucencyByDistance.x = compressedAttribute1.z;
- translucencyByDistance.z = compressedAttribute1.w;
- translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
- temp = compressedAttribute1.y * SHIFT_RIGHT8;
- translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
- #endif
-
- vec4 color;
- vec4 outlineColor;
- vec4 pickColor;
-
- temp = compressedAttribute0.z * SHIFT_RIGHT8;
- pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
- pickColor.r = floor(temp);
-
- temp = compressedAttribute0.x * SHIFT_RIGHT8;
- color.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- color.g = (temp - floor(temp)) * SHIFT_LEFT8;
- color.r = floor(temp);
-
- temp = compressedAttribute0.y * SHIFT_RIGHT8;
- outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
- temp = floor(temp) * SHIFT_RIGHT8;
- outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
- outlineColor.r = floor(temp);
-
- temp = compressedAttribute0.w * SHIFT_RIGHT8;
- pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
- pickColor = pickColor / 255.0;
- temp = floor(temp) * SHIFT_RIGHT8;
- outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
- outlineColor /= 255.0;
- color.a = floor(temp);
- color /= 255.0;
-
- vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
- vec4 positionEC = czm_modelViewRelativeToEye * p;
-
- #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)
- float lengthSq;
- if (czm_sceneMode == czm_sceneMode2D)
- {
-
-
- lengthSq = czm_eyeHeight2D.y;
- }
- else
- {
- lengthSq = dot(positionEC.xyz, positionEC.xyz);
- }
- #endif
- #ifdef EYE_DISTANCE_SCALING
- totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq);
- #endif
- if (totalSize > 0.0) {
-
- totalSize += 3.0;
- }
-
- totalSize = min(totalSize, u_maxTotalPointSize);
-
-
- if (totalSize < 1.0)
- {
- positionEC.xyz = vec3(0.0);
- totalSize = 1.0;
- }
- float translucency = 1.0;
- #ifdef EYE_DISTANCE_TRANSLUCENCY
- translucency = czm_nearFarScalar(translucencyByDistance, lengthSq);
-
- if (translucency < 0.004)
- {
- positionEC.xyz = vec3(0.0);
- }
- #endif
- #ifdef DISTANCE_DISPLAY_CONDITION
- float nearSq = distanceDisplayConditionAndDisableDepth.x;
- float farSq = distanceDisplayConditionAndDisableDepth.y;
- if (lengthSq < nearSq || lengthSq > farSq) {
-
- positionEC.xyz = vec3(0.0, 0.0, 1.0);
- }
- #endif
- gl_Position = czm_projection * positionEC;
- czm_vertexLogDepth();
- #ifdef DISABLE_DEPTH_DISTANCE
- float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z;
- if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)
- {
- disableDepthTestDistance = czm_minimumDisableDepthTestDistance;
- }
- if (disableDepthTestDistance != 0.0)
- {
-
- float zclip = gl_Position.z / gl_Position.w;
- bool clipped = (zclip < -1.0 || zclip > 1.0);
- if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))
- {
-
- gl_Position.z = -gl_Position.w;
- #ifdef LOG_DEPTH
- czm_vertexLogDepth(vec4(czm_currentFrustum.x));
- #endif
- }
- }
- #endif
- v_color = color;
- v_color.a *= translucency * show;
- v_outlineColor = outlineColor;
- v_outlineColor.a *= translucency * show;
- v_innerPercent = 1.0 - outlinePercent;
- v_pixelDistance = 2.0 / totalSize;
- gl_PointSize = totalSize * show;
- gl_Position *= show;
- v_pickColor = pickColor;
- }
- `;var DWe=Hs.SHOW_INDEX,I9=Hs.POSITION_INDEX,jse=Hs.COLOR_INDEX,IWe=Hs.OUTLINE_COLOR_INDEX,PWe=Hs.OUTLINE_WIDTH_INDEX,OWe=Hs.PIXEL_SIZE_INDEX,qse=Hs.SCALE_BY_DISTANCE_INDEX,Yse=Hs.TRANSLUCENCY_BY_DISTANCE_INDEX,Xse=Hs.DISTANCE_DISPLAY_CONDITION_INDEX,RWe=Hs.DISABLE_DEPTH_DISTANCE_INDEX,P9=Hs.NUMBER_OF_PROPERTIES,Ua={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function nf(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(P9),this._maxPixelSize=1,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=L.clone(L.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Ao.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=te.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW,Be.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(nf.prototype,{length:{get:function(){return O9(this),this._pointPrimitives.length}}});function Kse(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}nf.prototype.add=function(e){let t=new Hs(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};nf.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};nf.prototype.removeAll=function(){Kse(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function O9(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}nf.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};nf.prototype.contains=function(e){return u(e)&&e._pointPrimitiveCollection===this};nf.prototype.get=function(e){return O9(this),this._pointPrimitives[e]};nf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<P9;++i){let o=n[i]===0?Be.STATIC_DRAW:Be.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function MWe(e,t,n){return new p_(e,[{index:Ua.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[I9]},{index:Ua.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[I9]},{index:Ua.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[jse]},{index:Ua.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Yse]},{index:Ua.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[qse]},{index:Ua.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:X.FLOAT,usage:n[Xse]}],t)}var v9=new Wn;function Zse(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===te.SCENE3D&&(se.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Wn.fromCartesian(r,v9);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[Ua.positionHighAndSize],l=v9.high;c(o,l.x,l.y,l.z,s);let f=n[Ua.positionLowAndOutline],d=v9.low;f(o,d.x,d.y,d.z,a)}var BF=65536,mv=256;function $se(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=z.floatToByte(r.red),l=z.floatToByte(r.green),f=z.floatToByte(r.blue),d=c*BF+l*mv+f;c=z.floatToByte(a.red),l=z.floatToByte(a.green),f=z.floatToByte(a.blue);let p=c*BF+l*mv+f;c=z.floatToByte(s.red),l=z.floatToByte(s.green),f=z.floatToByte(s.blue);let g=c*BF+l*mv+f,m=z.floatToByte(r.alpha)*BF+z.floatToByte(a.alpha)*mv+z.floatToByte(s.alpha),x=n[Ua.compressedAttribute0];x(o,d,p,g,m)}function Qse(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,l=i.translucencyByDistance;u(l)&&(r=l.near,s=l.nearValue,a=l.far,c=l.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*mv+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[Ua.compressedAttribute1];g(o,d,p,r,a)}function Jse(e,t,n,i){let o=i._index,r=n[Ua.scaleByDistance],s=0,a=1,c=1,l=1,f=i.scaleByDistance;u(f)&&(s=f.near,a=f.nearValue,c=f.far,l=f.farValue,(a!==1||l!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,l)}function eae(e,t,n,i){let o=i._index,r=n[Ua.distanceDisplayConditionAndDisableDepth],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;u(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let l=i.disableDepthTestDistance;l*=l,l>0&&(e._shaderDisableDepthDistance=!0,l===Number.POSITIVE_INFINITY&&(l=-1)),r(o,s,a,l)}function LWe(e,t,n,i){Zse(e,t,n,i),$se(e,t,n,i),Qse(e,t,n,i),Jse(e,t,n,i),eae(e,t,n,i)}function D9(e,t,n,i,o,r){let s;i.mode===te.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=Hs._computeActualPosition(f,i,o);u(d)&&(l._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function NWe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==te.SCENE3D&&!L.equals(r,e.modelMatrix)?(e._mode=n,L.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===te.SCENE3D||n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&D9(e,i,i.length,t,r,!0)):n===te.MORPHING?D9(e,i,i.length,t,r,!0):(n===te.SCENE2D||n===te.COLUMBUS_VIEW)&&D9(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function FWe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var BWe=[];nf.prototype.update=function(e){if(O9(this),!this.show)return;this._maxTotalPointSize=zt.maximumAliasedPointSize,NWe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,l=e.passes,f=l.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let w=0;w<P9;++w)r[w]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=MWe(c,n,this._buffersUsage),a=this._vaf.writers;for(let w=0;w<n;++w){let D=this._pointPrimitives[w];D._dirty=!1,LWe(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let w=BWe;w.length=0,(r[I9]||r[PWe]||r[OWe])&&w.push(Zse),(r[jse]||r[IWe])&&w.push($se),(r[DWe]||r[Yse])&&w.push(Qse),r[qse]&&w.push(Jse),(r[Xse]||r[RWe])&&w.push(eae);let D=w.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let N=0;N<D;++N)w[N](this,c,a,R)}this._vaf.commit()}else{for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let N=0;N<D;++N)w[N](this,c,a,R);this._vaf.subCommit(R._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=L.IDENTITY;e.mode===te.SCENE3D?(p=this.modelMatrix,d=se.clone(this._baseVolumeWC,this._boundingVolume)):d=se.clone(this._baseVolume2D,this._boundingVolume),FWe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===Ao.OPAQUE||this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:ee.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Ao.TRANSLUCENT||this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:ee.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let m,x;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(m=new ze({sources:[FF]}),this._shaderScaleByDistance&&m.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&m.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&m.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&m.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT&&(x=new ze({defines:["OPAQUE"],sources:[ix]}),this._sp=Kt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:Ua}),x=new ze({defines:["TRANSLUCENT"],sources:[ix]}),this._spTranslucent=Kt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:Ua})),this._blendOption===Ao.OPAQUE&&(x=new ze({sources:[ix]}),this._sp=Kt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:Ua})),this._blendOption===Ao.TRANSLUCENT&&(x=new ze({sources:[ix]}),this._spTranslucent=Kt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:Ua})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,A,C,S=e.commandList;if(l.render||f){let w=this._colorCommands,D=this._blendOption===Ao.OPAQUE,O=this._blendOption===Ao.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,w.length=T;let R=O?T*2:T;for(C=0;C<R;++C){let N=D||O&&C%2===0;A=w[C],u(A)||(A=w[C]=new et),A.primitiveType=Le.POINTS,A.pass=N||!O?Ee.OPAQUE:Ee.TRANSLUCENT,A.owner=this;let F=O?Math.floor(C/2):C;A.boundingVolume=d,A.modelMatrix=p,A.shaderProgram=N?this._sp:this._spTranslucent,A.uniformMap=this._uniforms,A.vertexArray=b[F].va,A.renderState=N?this._rsOpaque:this._rsTranslucent,A.debugShowBoundingVolume=this.debugShowBoundingVolume,A.pickId="v_pickColor",S.push(A)}}};nf.prototype.isDestroyed=function(){return!1};nf.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Kse(this._pointPrimitives),le(this)};var pv=nf;var tae=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],R9=1,_v=8,yv=class e{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==R9)throw new Error(`Got v${o} data when expected v${R9}.`);let r=tae[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=tae.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,_v,t),this.coords=new this.ArrayType(this.data,_v+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(_v+s+a+c),this.ids=new this.IndexArrayType(this.data,_v,t),this.coords=new this.ArrayType(this.data,_v+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(R9<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return L9(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],l=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let b=p;b<=d;b++){let T=s[2*b],A=s[2*b+1];T>=t&&T<=i&&A>=n&&A<=o&&l.push(r[b])}continue}let g=p+d>>1,m=s[2*g],x=s[2*g+1];m>=t&&m<=i&&x>=n&&x<=o&&l.push(r[g]),(f===0?t<=m:n<=x)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=m:o>=x)&&(c.push(g+1),c.push(d),c.push(1-f))}return l}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],l=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let b=p;b<=d;b++)nae(r[2*b],r[2*b+1],t,n)<=l&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];nae(m,x,t,n)<=l&&c.push(o[g]),(f===0?t-i<=m:n-i<=x)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=m:n+i>=x)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function L9(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;iae(e,t,s,i,o,r),L9(e,t,n,i,s-1,1-r),L9(e,t,n,s+1,o,1-r)}function iae(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let l=o-i+1,f=n-i+1,d=Math.log(l),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(l-p)/l)*(f-l/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/l+g)),x=Math.min(o,Math.floor(n+(l-f)*p/l+g));iae(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(gv(e,t,i,n),t[2*o+r]>s&&gv(e,t,i,o);a<c;){for(gv(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?gv(e,t,i,c):(c++,gv(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function gv(e,t,n,i){M9(e,n,i),M9(t,2*n,2*i),M9(t,2*n+1,2*i+1)}function M9(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function nae(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function hd(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new pe,this.show=y(e.show,!0)}function oae(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var kWe=new qe;function rae(e,t,n,i,o){if(u(e._labelCollection)&&i._clusterLabels?o=G0.getScreenSpaceBoundingBox(e,t,o):u(e._billboardCollection)&&i._clusterBillboards?o=ho.getScreenSpaceBoundingBox(e,t,o):u(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Hs.getScreenSpaceBoundingBox(e,t,o)),oae(o,n),i._clusterLabels&&!u(e._labelCollection)&&u(e.id)&&aae(i,e.id.id)&&u(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=G0.getScreenSpaceBoundingBox(s,t,kWe);oae(a,n),o=qe.union(o,a,o)}return o}function UWe(e,t){if(e.clusterShow=!0,!u(e._labelCollection)&&u(e.id)&&aae(t,e.id.id)&&u(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function sae(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function aae(e,t){return u(e)&&u(e._collectionIndicesByEntity[t])&&u(e._collectionIndicesByEntity[t].labelIndex)}function N9(e,t,n,i,o){if(!u(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===te.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&u(a._labelCollection),l=o._clusterBillboards&&u(a.id._billboard),f=o._clusterPoints&&u(a.id._point);if(c&&(f||l))continue;let d=a.computeScreenSpacePosition(n);u(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var VWe=new qe,zWe=new qe,HWe=new qe;function GWe(e){return function(t){if(u(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!u(i)&&!u(o)&&!u(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;u(s)?s.removeAll():s=e._clusterLabelCollection=new dp({scene:n}),u(a)?a.removeAll():a=e._clusterBillboardCollection=new qu({scene:n}),u(c)?c.removeAll():c=e._clusterPointCollection=new pv;let l=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,x=n.mapProjection.ellipsoid,b=n.camera.positionWC,T=new Eg(x,b),A=[];e._clusterLabels&&N9(i,A,n,T,e),e._clusterBillboards&&N9(o,A,n,T,e),e._clusterPoints&&N9(r,A,n,T,e);let C,S,w,D,O,R,N,F,_,E,v,I;if(A.length>0){let M=new yv(A.length,64,Uint32Array);for(let B=0;B<A.length;++B)M.add(A[B].coord.x,A[B].coord.y);if(M.finish(),m<g)for(w=d.length,C=0;C<w;++C){let B=d[C];if(!T.isPointVisible(B.position))continue;let H=ho._computeScreenSpacePosition(L.IDENTITY,B.position,h.ZERO,V.ZERO,n);if(!u(H))continue;let U=1-m/g,G=B.width=B.width*U,k=B.height=B.height*U;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let Y=H.x-G*.5,q=H.y-k*.5,Q=H.x+G,W=H.y+k;for(O=M.range(Y,q,Q,W),R=O.length,E=0,_=[],S=0;S<R;++S)N=O[S],F=A[N],F.clustered||(++E,v=F.collection,I=F.index,_.push(v.get(I).id));if(E>=f)for(sae(B.position,E,_,e),p.push(B),S=0;S<R;++S)A[O[S]].clustered=!0}for(w=A.length,C=0;C<w;++C){let B=A[C];if(B.clustered)continue;B.clustered=!0,v=B.collection,I=B.index;let H=v.get(I);D=rae(H,B.coord,l,e,VWe);let U=qe.clone(D,zWe);O=M.range(D.x,D.y,D.x+D.width,D.y+D.height),R=O.length;let G=h.clone(H.position);for(E=1,_=[H.id],S=0;S<R;++S)if(N=O[S],F=A[N],!F.clustered){let k=F.collection.get(F.index),Y=rae(k,F.coord,l,e,HWe);h.add(k.position,G,G),qe.union(U,Y,U),++E,_.push(k.id)}if(E>=f){let k=h.multiplyByScalar(G,1/E,G);for(sae(k,E,_,e),p.push({position:k,width:U.width,height:U.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S<R;++S)A[O[S]].clustered=!0}else UWe(H,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=m}}hd.prototype._initialize=function(e){this._scene=e;let t=GWe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(hd.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function B9(e,t,n,i){return function(o){let r=this[e];u(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(u(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),u(r)&&u(s[i]))return r.get(s[i]);u(r)||(r=this[e]=new t({scene:this._scene}));let a,c,l=this[n];l.length>0?(a=l.pop(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function k9(e,t){let n=e._collectionIndicesByEntity[t];!u(n.billboardIndex)&&!u(n.labelIndex)&&!u(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}hd.prototype.getLabel=B9("_labelCollection",dp,"_unusedLabelIndices","labelIndex");hd.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._labelCollection)||!u(t)||!u(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,k9(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};hd.prototype.getBillboard=B9("_billboardCollection",qu,"_unusedBillboardIndices","billboardIndex");hd.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._billboardCollection)||!u(t)||!u(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,k9(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};hd.prototype.getPoint=B9("_pointCollection",pv,"_unusedPointIndices","pointIndex");hd.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._pointCollection)||!u(t)||!u(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,k9(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function F9(e){if(!u(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function WWe(e){e.enabled||(u(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),u(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),u(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,F9(e._labelCollection),F9(e._billboardCollection),F9(e._pointCollection))}hd.prototype.update=function(e){if(!this.show)return;let t;u(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),u(this._billboardCollection)&&this._billboardCollection.length>0&&!u(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,WWe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),u(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),u(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),u(this._clusterPointCollection)&&this._clusterPointCollection.update(e),u(this._labelCollection)&&this._labelCollection.update(e),u(this._billboardCollection)&&this._billboardCollection.update(e),u(this._pointCollection)&&this._pointCollection.update(e)};hd.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),u(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var of=hd;function U9(e){this._name=e,this._clock=void 0,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._entityCollection=new Vs(this),this._entityCluster=new of}Object.defineProperties(U9.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Mr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});U9.prototype.update=function(e){return!0};var kF=U9;var cae={};cae.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,l=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,m=o?(a+i)*3:i*3;for(f=0;f<i;f++){let x=f/i*P.TWO_PI,b=Math.cos(x),T=Math.sin(x),A=b*n,C=T*n,S=b*t,w=T*t;l[p+g]=A,l[p+g+1]=C,l[p+g+2]=s,l[p+m]=S,l[p+m+1]=w,l[p+m+2]=r,p+=3,o&&(l[d++]=A,l[d++]=C,l[d++]=s,l[d++]=S,l[d++]=w,l[d++]=r)}return l};var NA=cae;var V9=new V,jWe=new h,qWe=new h,YWe=new h,XWe=new h;function Pp(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Pe.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}Pp.packedLength=Pe.packedLength+5;Pp.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var lae=new Pe,FA={vertexFormat:lae,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};Pp.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,lae);t+=Pe.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(FA.length=o,FA.topRadius=r,FA.bottomRadius=s,FA.slices=a,FA.offsetAttribute=c===-1?void 0:c,new Pp(FA))};Pp.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,l=NA.computePositions(t,n,i,r,!0),f=o.st?new Float32Array(c*2):void 0,d=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,g=o.bitangent?new Float32Array(c*3):void 0,m,x=o.normal||o.tangent||o.bitangent;if(x){let O=o.tangent||o.bitangent,R=0,N=0,F=0,_=Math.atan2(i-n,t),E=jWe;E.z=Math.sin(_);let v=Math.cos(_),I=YWe,M=qWe;for(m=0;m<r;m++){let B=m/r*P.TWO_PI,H=v*Math.cos(B),U=v*Math.sin(B);x&&(E.x=H,E.y=U,O&&(I=h.normalize(h.cross(h.UNIT_Z,E,I),I)),o.normal&&(d[R++]=E.x,d[R++]=E.y,d[R++]=E.z,d[R++]=E.x,d[R++]=E.y,d[R++]=E.z),o.tangent&&(p[N++]=I.x,p[N++]=I.y,p[N++]=I.z,p[N++]=I.x,p[N++]=I.y,p[N++]=I.z),o.bitangent&&(M=h.normalize(h.cross(E,I,M),M),g[F++]=M.x,g[F++]=M.y,g[F++]=M.z,g[F++]=M.x,g[F++]=M.y,g[F++]=M.z))}for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=-1),o.tangent&&(p[N++]=1,p[N++]=0,p[N++]=0),o.bitangent&&(g[F++]=0,g[F++]=-1,g[F++]=0);for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=1),o.tangent&&(p[N++]=1,p[N++]=0,p[N++]=0),o.bitangent&&(g[F++]=0,g[F++]=1,g[F++]=0)}let b=12*r-12,T=ke.createTypedArray(c,b),A=0,C=0;for(m=0;m<r-1;m++)T[A++]=C,T[A++]=C+2,T[A++]=C+3,T[A++]=C,T[A++]=C+3,T[A++]=C+1,C+=2;for(T[A++]=s-2,T[A++]=0,T[A++]=1,T[A++]=s-2,T[A++]=1,T[A++]=s-1,m=1;m<r-1;m++)T[A++]=s+m+1,T[A++]=s+m,T[A++]=s;for(m=1;m<r-1;m++)T[A++]=a,T[A++]=a+m,T[A++]=a+m+1;let S=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let R=h.fromArray(l,m*3,XWe);f[S++]=(R.x+O)/(2*O),f[S++]=(R.y+O)/(2*O)}}let w=new hn;o.position&&(w.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})),o.normal&&(w.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(w.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(w.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(w.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),V9.x=t*.5,V9.y=Math.max(i,n);let D=new se(h.ZERO,V.magnitude(V9));if(u(e._offsetAttribute)){t=l.length;let O=e._offsetAttribute===nn.NONE?0:1,R=new Uint8Array(t/3).fill(O);w.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new ct({attributes:w,indices:T,primitiveType:Le.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var z9;Pp.getUnitCylinder=function(){return u(z9)||(z9=Pp.createGeometry(new Pp({topRadius:1,bottomRadius:1,length:1,vertexFormat:Pe.POSITION_ONLY}))),z9};var UF=Pp;var H9=new V;function BA(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.slices,128),r=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}BA.packedLength=6;BA.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var ox={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};BA.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return u(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(ox.length=i,ox.topRadius=o,ox.bottomRadius=r,ox.slices=s,ox.numberOfVerticalLines=a,ox.offsetAttribute=c===-1?void 0:c,new BA(ox))};BA.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=NA.computePositions(t,n,i,o,!1),c=o*2,l;if(r>0){let x=Math.min(r,o);l=Math.round(o/x),c+=x}let f=ke.createTypedArray(s,c*2),d=0,p;for(p=0;p<o-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+o,f[d++]=p+1+o;if(f[d++]=o-1,f[d++]=0,f[d++]=o+o-1,f[d++]=o,r>0)for(p=0;p<o;p+=l)f[d++]=p,f[d++]=p+o;let g=new hn;g.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),H9.x=t*.5,H9.y=Math.max(i,n);let m=new se(h.ZERO,V.magnitude(H9));if(u(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===nn.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new ct({attributes:g,indices:f,primitiveType:Le.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var VF=BA;var uae=h.ZERO,fae=new h,KWe=new h,dae=new z;function ZWe(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Yl(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new ZWe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}u(Object.create)&&(Yl.prototype=Object.create(ii.prototype),Yl.prototype.constructor=Yl);Object.defineProperties(Yl.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Yl.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,dae)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,uae,fae))),new yt({id:t,geometry:new UF(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:s})};Yl.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,dae),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,uae,fae))),new yt({id:t,geometry:new VF(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:r})};Yl.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Yl.prototype._isHidden=function(e,t){return!u(e.position)||!u(t.length)||!u(t.topRadius)||!u(t.bottomRadius)||ii.prototype._isHidden.call(this,e,t)};Yl.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!j.isConstant(t.slices)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)};Yl.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(He.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(He.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(He.MINIMUM_VALUE),i.slices=j.getValueOrUndefined(t.slices,He.MINIMUM_VALUE),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),i.offsetAttribute=n!==We.NONE?nn.ALL:void 0};Yl.prototype._onEntityPropertyChanged=w_;Yl.DynamicGeometryUpdater=kA;function kA(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(kA.prototype=Object.create(ni.prototype),kA.prototype.constructor=kA);kA.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,KWe);return!u(o)||!u(i.length)||!u(i.topRadius)||!u(i.bottomRadius)||ni.prototype._isHidden.call(this,e,t,n)};kA.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,We.NONE),o=this._options;o.length=j.getValueOrUndefined(t.length,n),o.topRadius=j.getValueOrUndefined(t.topRadius,n),o.bottomRadius=j.getValueOrUndefined(t.bottomRadius,n),o.slices=j.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==We.NONE?nn.ALL:void 0};var zF=Yl;var $We={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Lr=Object.freeze($We);var QWe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},po=Object.freeze(QWe);var JWe={NONE:0,HOLD:1,EXTRAPOLATE:2},rf=Object.freeze(JWe);var hae=or(Sl(),1);function eje(e){let t=new hae.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var Sg=eje;var tje=P.factorial;function G9(e,t,n,i,o,r){let s=0,a,c,l;if(i>0){for(c=0;c<o;c++){for(a=!1,l=0;l<r.length&&!a;l++)c===r[l]&&(a=!0);a||(r.push(c),s+=G9(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,l=0;l<r.length&&!a;l++)c===r[l]&&(a=!0);a||(s*=e-n[t[c]])}return s}var HF={type:"Hermite"};HF.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};HF.interpolateOrderZero=function(e,t,n,i,o){u(o)||(o=new Array(i));let r,s,a,c,l,f,d=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let b=new Array(d);for(p[r]=b,s=0;s<d;s++)b[s]=[]}let g=d,m=new Array(g);for(r=0;r<g;r++)m[r]=r;let x=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=m[s]*i+c,p[c][0].push(n[f]);for(r=1;r<g;r++){let b=!1;for(s=0;s<g-r;s++){let T=t[m[s]],A=t[m[s+r]],C;A-T<=0?(f=m[s]*i+i*r+c,C=n[f],p[c][r].push(C/tje(r))):(C=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(C/(A-T))),b=b||C!==0}b||(x=r-1)}}for(a=0,l=0;a<=l;a++)for(r=a;r<=x;r++){let b=G9(e,m,t,a,r,[]);for(c=0;c<i;c++){let T=p[c][r][0];o[c+a*i]+=T*b}}return o};var nje=[];HF.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);u(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,l=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)l[f*(o+1)+T]=f;let d=l.length,p=nje,g=ije(p,l,t,n,i,o),m=[],x=d*(d+1)/2,b=Math.min(g,r);for(let T=0;T<=b;T++)for(f=T;f<=g;f++){m.length=0;let A=G9(e,l,t,T,f,m),C=Math.floor(f*(1-f)/2)+d*f;for(let S=0;S<i;S++){let w=Math.floor(S*x),D=p[w+C];s[S+T*i]+=D*A}}return s};function ije(e,t,n,i,o,r){let s,a,c=-1,l=t.length,f=l*(l+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<l;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<l;g++){let m=0,x=Math.floor(g*(1-g)/2)+l*g,b=!1;for(s=0;s<l-g;s++){let T=n[t[s]],A=n[t[s+g]],C,S;if(A-T<=0)a=t[s]*o*(r+1)+o*g+d,C=i[a],S=C/P.factorial(g),e[p+x+m]=S,m++;else{let w=Math.floor((g-1)*(2-g)/2)+l*(g-1);C=e[p+w+s+1]-e[p+w+s],S=C/(A-T),e[p+x+m]=S,m++}b=b||C!==0}b&&(c=Math.max(c,g))}}return c}var GF=HF;var W9={type:"Lagrange"};W9.getRequiredDataPoints=function(e){return Math.max(e+1,2)};W9.interpolateOrderZero=function(e,t,n,i,o){u(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let l=t[r]-t[s];c*=(e-t[s])/l}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var WF=W9;var j9={type:"Linear"};j9.getRequiredDataPoints=function(e){return 2};j9.interpolateOrderZero=function(e,t,n,i,o){u(o)||(o=new Array(i));let r,s,a,c=t[0],l=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+l*s-c*a)/(l-c);return o};var UA=j9;function Va(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}Va.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return u(t)||(t=new Va),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};Va.clone=function(e,t){if(u(e))return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new Va(e.clock,e.cone,e.magnitude)};Va.normalize=function(e,t){return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new Va(e.clock,e.cone,1)};Va.equals=function(e,t){return e===t||u(e)&&u(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};Va.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};Va.prototype.equals=function(e){return Va.equals(this,e)};Va.prototype.clone=function(e){return Va.clone(this,e)};Va.prototype.equalsEpsilon=function(e,t){return Va.equalsEpsilon(this,e,t)};Va.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var jF=Va;var Dv=or(Sl(),1);var q9;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?q9=function(){return performance.now()}:q9=function(){return Date.now()};var Ti=q9;function Y9(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;u(t)?t=J.clone(t):u(n)?t=J.clone(n):u(i)?t=J.addDays(i,-1,new J):t=J.now(),u(n)?n=J.clone(n):n=J.clone(t),u(i)?i=J.clone(i):i=J.addDays(n,1,new J),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Lr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new pe,this.onStop=new pe,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=Ti(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,po.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(Y9.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){J.equals(this._currentTime,e)||(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===po.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=J.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});Y9.prototype.tick=function(){let e=Ti(),t=J.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===po.SYSTEM_CLOCK)t=J.now(t);else{let i=this._multiplier;if(n===po.TICK_DEPENDENT)t=J.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=J.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Lr.CLAMPED)J.lessThan(t,r)?t=J.clone(r,t):J.greaterThan(t,s)&&(t=J.clone(s,t),this.onStop.raiseEvent(this));else if(o===Lr.LOOP_STOP)for(J.lessThan(t,r)&&(t=J.clone(r,t));J.greaterThan(t,s);)t=J.addSeconds(r,J.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var Vh=Y9;function rx(){this._definitionChanged=new pe,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(rx.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Ll("startTime"),stopTime:Ll("stopTime"),currentTime:Ll("currentTime"),clockRange:Ll("clockRange"),clockStep:Ll("clockStep"),multiplier:Ll("multiplier")});rx.prototype.clone=function(e){return u(e)||(e=new rx),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};rx.prototype.equals=function(e){return this===e||u(e)&&J.equals(this.startTime,e.startTime)&&J.equals(this.stopTime,e.stopTime)&&J.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};rx.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};rx.prototype.getValue=function(e){return u(e)||(e=new Vh),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var zh=rx;var oje=z.WHITE,rje=.1,sje=new V(8,8),aje=new V(0,0),cje=new V(1,1);function VA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(VA.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._cellAlpha)&&j.isConstant(this._lineCount)&&j.isConstant(this._lineThickness)&&j.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),cellAlpha:ae("cellAlpha"),lineCount:ae("lineCount"),lineThickness:ae("lineThickness"),lineOffset:ae("lineOffset")});VA.prototype.getType=function(e){return"Grid"};VA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,oje,t.color),t.cellAlpha=j.getValueOrDefault(this._cellAlpha,e,rje),t.lineCount=j.getValueOrClonedDefault(this._lineCount,e,sje,t.lineCount),t.lineThickness=j.getValueOrClonedDefault(this._lineThickness,e,cje,t.lineThickness),t.lineOffset=j.getValueOrClonedDefault(this._lineOffset,e,aje,t.lineOffset),t};VA.prototype.equals=function(e){return this===e||e instanceof VA&&j.equals(this._color,e._color)&&j.equals(this._cellAlpha,e._cellAlpha)&&j.equals(this._lineCount,e._lineCount)&&j.equals(this._lineThickness,e._lineThickness)&&j.equals(this._lineOffset,e._lineOffset)};var xv=VA;function zA(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(zA.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color")});zA.prototype.getType=function(e){return"PolylineArrow"};zA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};zA.prototype.equals=function(e){return this===e||e instanceof zA&&j.equals(this._color,e._color)};var bv=zA;var lje=z.WHITE,uje=z.TRANSPARENT,fje=16,dje=255;function HA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(HA.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._gapColor)&&j.isConstant(this._dashLength)&&j.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),gapColor:ae("gapColor"),dashLength:ae("dashLength"),dashPattern:ae("dashPattern")});HA.prototype.getType=function(e){return"PolylineDash"};HA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,lje,t.color),t.gapColor=j.getValueOrClonedDefault(this._gapColor,e,uje,t.gapColor),t.dashLength=j.getValueOrDefault(this._dashLength,e,fje,t.dashLength),t.dashPattern=j.getValueOrDefault(this._dashPattern,e,dje,t.dashPattern),t};HA.prototype.equals=function(e){return this===e||e instanceof HA&&j.equals(this._color,e._color)&&j.equals(this._gapColor,e._gapColor)&&j.equals(this._dashLength,e._dashLength)&&j.equals(this._dashPattern,e._dashPattern)};var Tv=HA;var hje=z.WHITE,mje=.25,pje=1;function GA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(GA.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),glowPower:ae("glowPower"),taperPower:ae("taperPower")});GA.prototype.getType=function(e){return"PolylineGlow"};GA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,hje,t.color),t.glowPower=j.getValueOrDefault(this._glowPower,e,mje,t.glowPower),t.taperPower=j.getValueOrDefault(this._taperPower,e,pje,t.taperPower),t};GA.prototype.equals=function(e){return this===e||e instanceof GA&&j.equals(this._color,e._color)&&j.equals(this._glowPower,e._glowPower)&&j.equals(this._taperPower,e._taperPower)};var Av=GA;var _je=z.WHITE,gje=z.BLACK,yje=1;function WA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(WA.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._outlineColor)&&j.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ae("color"),outlineColor:ae("outlineColor"),outlineWidth:ae("outlineWidth")});WA.prototype.getType=function(e){return"PolylineOutline"};WA.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,_je,t.color),t.outlineColor=j.getValueOrClonedDefault(this._outlineColor,e,gje,t.outlineColor),t.outlineWidth=j.getValueOrDefault(this._outlineWidth,e,yje),t};WA.prototype.equals=function(e){return this===e||e instanceof WA&&j.equals(this._color,e._color)&&j.equals(this._outlineColor,e._outlineColor)&&j.equals(this._outlineWidth,e._outlineWidth)};var sx=WA;function Op(e,t){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Or,this._referenceFrame=y(t,to.FIXED),this.setValue(e)}Object.defineProperties(Op.prototype,{isConstant:{get:function(){let e=this._value;if(!u(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});Op.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Op.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!u(i))return;let o=i.length;u(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);u(c)&&(n[s]=c,s++),r++}return n.length=s,n};Op.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];u(o)&&t.add(o.definitionChanged,Op.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Op.prototype.equals=function(e){return this===e||e instanceof Op&&this._referenceFrame===e._referenceFrame&&j.arrayEquals(this._value,e._value)};Op.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var wg=Op;function vg(e){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Or,this.setValue(e)}Object.defineProperties(vg.prototype,{isConstant:{get:function(){let e=this._value;if(!u(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});vg.prototype.getValue=function(e,t){let n=this._value;if(!u(n))return;let i=n.length;u(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);u(a)&&(t[r]=a,r++),o++}return t.length=r,t};vg.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];u(o)&&t.add(o.definitionChanged,vg.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};vg.prototype.equals=function(e){return this===e||e instanceof vg&&j.arrayEquals(this._value,e._value)};vg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Cv=vg;function ax(e){let t=e._targetProperty;if(!u(t)){let n=e._targetEntity;if(!u(n)){if(n=e._targetCollection.getById(e._targetId),!u(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Xl.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&u(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Xl(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new pe,e.collectionChanged.addEventListener(Xl.prototype._onCollectionChanged,this)}Object.defineProperties(Xl.prototype,{isConstant:{get:function(){return j.isConstant(ax(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=ax(this);return u(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return ax(this)}}});Xl.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new Xl(e,n,i)};Xl.prototype.getValue=function(e,t){let n=ax(this);return u(n)?n.getValue(e,t):void 0};Xl.prototype.getValueInReferenceFrame=function(e,t,n){let i=ax(this);return u(i)?i.getValueInReferenceFrame(e,t,n):void 0};Xl.prototype.getType=function(e){let t=ax(this);return u(t)?t.getType(e):void 0};Xl.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};Xl.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){u(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Xl.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;u(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Xl.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):u(i)||(i=ax(this),u(i)&&this._definitionChanged.raiseEvent(this))};var Dg=Xl;var xje={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){u(i)||(i=[]),t=y(t,0),n=y(n,e.length);let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-P.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+P.TWO_PI:o}},md=xje;var mae={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function pae(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function _ae(e,t){return e instanceof J?e:typeof e=="string"?J.fromIso8601(e):J.addSeconds(t,e,new J)}var X9=[],K9=[];function qF(e,t,n,i,o){let r=0,s,a,c,l,f,d;for(;r<i.length;){f=_ae(i[r],e),c=Eo(t,f,J.compare);let p=0,g=0;if(c<0){for(c=~c,l=c*o,a=void 0,d=t[c];r<i.length&&(f=_ae(i[r],e),!(u(a)&&J.compare(a,f)>=0||u(d)&&J.compare(f,d)>=0));){for(X9[p++]=f,r=r+1,s=0;s<o;s++)K9[g++]=i[r],r=r+1;a=f}p>0&&(K9.length=g,pae(n,l,K9),X9.length=p,pae(t,c,X9))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function pd(e,t){let n=e;n===Number&&(n=mae);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(u(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let l=t[c];l===Number&&(l=mae);let f=l.packedLength;i+=f,o+=y(l.packedInterpolationLength,f),s[c]=l}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=UA,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new pe,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=rf.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=rf.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(pd.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});pd.prototype.getValue=function(e,t){let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Eo(n,e,J.compare);if(a<0){if(a=~a,a===0){let S=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===rf.NONE||o!==0&&J.secondsDifference(S,e)>o)return;if(this._backwardExtrapolationType===rf.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===rf.NONE||o!==0&&J.secondsDifference(e,S)>o)return;if(this._forwardExtrapolationType===rf.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,l=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,l.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let S=a-(g/2|0)-1;S<m&&(S=m);let w=S+g;w>x&&(w=x,S=w-g,S<m&&(S=m)),m=S,x=w}let T=x-m+1;for(let S=0;S<T;++S)c[S]=J.secondsDifference(n[m+S],n[x]);if(u(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,l);else{let S=0,w=this._packedLength,D=m*w,O=(x+1)*w;for(;D<O;)l[S]=s[D],D++,S++}let A=J.secondsDifference(e,n[x]),C;if(p===0||!u(f.interpolate))C=f.interpolateOrderZero(A,c,l,d,this._interpolationResult);else{let S=Math.floor(d/(p+1));C=f.interpolate(A,c,l,S,p,p,this._interpolationResult)}return u(r.unpackInterpolationResult)?r.unpackInterpolationResult(C,s,m,x,t):r.unpack(C,0,t)}return r.unpack(s,a*this._packedLength,t)};pd.prototype.setInterpolationOptions=function(e){if(!u(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;u(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),u(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};pd.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=u(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}qF(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};pd.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=u(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let l=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(l[d],a,a.length)}qF(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};pd.prototype.addSamplesPackedArray=function(e,t){qF(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};pd.prototype.removeSample=function(e){let t=Eo(this._times,e,J.compare);return t<0?!1:(gae(this,t,1),!0)};function gae(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}pd.prototype.removeSamples=function(e){let t=this._times,n=Eo(t,e.start,J.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Eo(t,e.stop,J.compare);i<0?i=~i:e.isStopIncluded&&++i,gae(this,n,i-n)};pd.prototype.equals=function(e){if(this===e)return!0;if(!u(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=u(t),i=e._derivativeTypes,o=u(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!J.equals(a[r],c[r]))return!1;let l=this._values,f=e._values;for(s=l.length,r=0;r<s;r++)if(l[r]!==f[r])return!1;return!0};pd._mergeNewSamples=qF;var sf=pd;function af(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new sf(h,n),this._definitionChanged=new pe,this._referenceFrame=y(e,to.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(af.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});af.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};af.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),u(n))return A_.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};af.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};af.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};af.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};af.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};af.prototype.removeSample=function(e){return this._property.removeSample(e)};af.prototype.removeSamples=function(e){this._property.removeSamples(e)};af.prototype.equals=function(e){return this===e||e instanceof af&&j.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var ua=af;var bje={HORIZONTAL:0,VERTICAL:1},Hh=Object.freeze(bje);var Tje=Hh.HORIZONTAL,Aje=z.WHITE,Cje=z.BLACK,Eje=0,Sje=1;function jA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(jA.prototype,{isConstant:{get:function(){return j.isConstant(this._orientation)&&j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._offset)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:ae("orientation"),evenColor:ae("evenColor"),oddColor:ae("oddColor"),offset:ae("offset"),repeat:ae("repeat")});jA.prototype.getType=function(e){return"Stripe"};jA.prototype.getValue=function(e,t){return u(t)||(t={}),t.horizontal=j.getValueOrDefault(this._orientation,e,Tje)===Hh.HORIZONTAL,t.evenColor=j.getValueOrClonedDefault(this._evenColor,e,Aje,t.evenColor),t.oddColor=j.getValueOrClonedDefault(this._oddColor,e,Cje,t.oddColor),t.offset=j.getValueOrDefault(this._offset,e,Eje),t.repeat=j.getValueOrDefault(this._repeat,e,Sje),t};jA.prototype.equals=function(e){return this===e||e instanceof jA&&j.equals(this._orientation,e._orientation)&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._offset,e._offset)&&j.equals(this._repeat,e._repeat)};var Ev=jA;function Ig(e){this._definitionChanged=new pe,this._intervals=new Rr,this._intervals.changedEvent.addEventListener(Ig.prototype._intervalsChanged,this),this._referenceFrame=y(e,to.FIXED)}Object.defineProperties(Ig.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});Ig.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Ig.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(u(i))return A_.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Ig.prototype.equals=function(e){return this===e||e instanceof Ig&&this._intervals.equals(e._intervals,j.equals)&&this._referenceFrame===e._referenceFrame};Ig.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Pg=Ig;function cx(){this._definitionChanged=new pe,this._intervals=new Rr,this._intervals.changedEvent.addEventListener(cx.prototype._intervalsChanged,this)}Object.defineProperties(cx.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});cx.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);return u(n)&&typeof n.clone=="function"?n.clone(t):n};cx.prototype.equals=function(e){return this===e||e instanceof cx&&this._intervals.equals(e._intervals,j.equals)};cx.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Og=cx;function qA(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new pe,this._normalize=y(t,!0),this.position=e}Object.defineProperties(qA.prototype,{isConstant:{get:function(){return j.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(u(t)&&this._subscription(),this._position=e,u(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var wje=new h,yae=new h,xae=new J,Z9=1/60;qA.prototype.getValue=function(e,t){return this._getValue(e,t)};qA.prototype._getValue=function(e,t,n){u(t)||(t=new h);let i=this._position;if(j.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,wje),r=i.getValue(J.addSeconds(e,Z9,xae),yae);if(!u(o)||!u(r)&&(r=o,o=i.getValue(J.addSeconds(e,-Z9,xae),yae),!u(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);u(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,Z9,t)};qA.prototype.equals=function(e){return this===e||e instanceof qA&&j.equals(this._position,e._position)};var YA=qA;function Sv(e,t){this._velocityVectorProperty=new YA(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new pe,this.ellipsoid=y(t,ie.WGS84);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(Sv.prototype,{isConstant:{get:function(){return j.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var bae=new h,vje=new h,Tae=new $;Sv.prototype.getValue=function(e,t){let n=this._velocityVectorProperty._getValue(e,vje,bae);if(u(n))return Rt.rotationMatrixFromPositionVelocity(bae,n,this._ellipsoid,Tae),Ne.fromRotationMatrix(Tae,t)};Sv.prototype.equals=function(e){return this===e||e instanceof Sv&&j.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var YF=Sv;function Rg(){}Rg.packedLength=h.packedLength;Rg.unpack=h.unpack;Rg.pack=h.pack;var $9;function wv(e,t){return t[0]==="#"&&(t=$9+t),Dg.fromString(e,t)}function Aae(e,t,n){if(u(n.reference))return wv(t,n.reference);if(u(n.velocityReference)){let i=wv(t,n.velocityReference);switch(e){case h:case Rg:return new YA(i,e===Rg);case Ne:return new YF(i)}}throw new ue(`${JSON.stringify(n)} is not valid CZML.`)}function Dje(e,t){return new _h(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Ni=new h,Cc=new jF,za=new fe,lx=new An,XF=new Ne;function Ije(e){let t=e.rgbaf;if(u(t))return t;let n=e.rgba;if(!u(n))return;let i=n.length;if(i===z.packedLength)return[z.byteToFloat(n[0]),z.byteToFloat(n[1]),z.byteToFloat(n[2]),z.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=z.byteToFloat(n[o+1]),t[o+2]=z.byteToFloat(n[o+2]),t[o+3]=z.byteToFloat(n[o+3]),t[o+4]=z.byteToFloat(n[o+4]);return t}function Cae(e,t){let n=y(e.uri,e);return u(t)?t.getDerivedResource({url:n}):ve.createIfNeeded(n)}function Pje(e){let t=e.wsen;if(u(t))return t;let n=e.wsenDegrees;if(!u(n))return;let i=n.length;if(i===ce.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=P.toRadians(n[o+1]),t[o+2]=P.toRadians(n[o+2]),t[o+3]=P.toRadians(n[o+3]),t[o+4]=P.toRadians(n[o+4]);return t}function Oje(e){let t=e.length;if(Cc.magnitude=1,t===2)return Cc.clock=e[0],Cc.cone=e[1],h.fromSpherical(Cc,Ni),[Ni.x,Ni.y,Ni.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],Cc.clock=e[i+1],Cc.cone=e[i+2],h.fromSpherical(Cc,Ni),n[o+1]=Ni.x,n[o+2]=Ni.y,n[o+3]=Ni.z;return n}function Rje(e){let t=e.length;if(t===3)return Cc.clock=e[0],Cc.cone=e[1],Cc.magnitude=e[2],h.fromSpherical(Cc,Ni),[Ni.x,Ni.y,Ni.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Cc.clock=e[i+1],Cc.cone=e[i+2],Cc.magnitude=e[i+3],h.fromSpherical(Cc,Ni),n[i+1]=Ni.x,n[i+2]=Ni.y,n[i+3]=Ni.z;return n}function Mje(e){let t=e.length;if(t===3)return za.longitude=e[0],za.latitude=e[1],za.height=e[2],ie.WGS84.cartographicToCartesian(za,Ni),[Ni.x,Ni.y,Ni.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],za.longitude=e[i+1],za.latitude=e[i+2],za.height=e[i+3],ie.WGS84.cartographicToCartesian(za,Ni),n[i+1]=Ni.x,n[i+2]=Ni.y,n[i+3]=Ni.z;return n}function Lje(e){let t=e.length;if(t===3)return za.longitude=P.toRadians(e[0]),za.latitude=P.toRadians(e[1]),za.height=e[2],ie.WGS84.cartographicToCartesian(za,Ni),[Ni.x,Ni.y,Ni.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],za.longitude=P.toRadians(e[i+1]),za.latitude=P.toRadians(e[i+2]),za.height=e[i+3],ie.WGS84.cartographicToCartesian(za,Ni),n[i+1]=Ni.x,n[i+2]=Ni.y,n[i+3]=Ni.z;return n}function Q9(e){let t=e.cartesian;if(u(t))return t;let n=e.cartesianVelocity;if(u(n))return n;let i=e.unitCartesian;if(u(i))return i;let o=e.unitSpherical;if(u(o))return Oje(o);let r=e.spherical;if(u(r))return Rje(r);let s=e.cartographicRadians;if(u(s))return Mje(s);let a=e.cartographicDegrees;if(u(a))return Lje(a);throw new ue(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Eae(e,t){h.unpack(e,t,Ni),h.normalize(Ni,Ni),h.pack(Ni,e,t)}function Nje(e){let t=Q9(e);if(t.length===3)return Eae(t,0),t;for(let n=1;n<t.length;n+=4)Eae(t,n);return t}function Sae(e,t){Ne.unpack(e,t,XF),Ne.normalize(XF,XF),Ne.pack(XF,e,t)}function Fje(e){let t=e.unitQuaternion;if(u(t)){if(t.length===4)return Sae(t,0),t;for(let n=1;n<t.length;n+=5)Sae(t,n)}return t}function wae(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?qe:e.hasOwnProperty("cartesian2")?V:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Rg:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?z:e.hasOwnProperty("arcType")?Yt:e.hasOwnProperty("classificationType")?Un:e.hasOwnProperty("colorBlendMode")?gc:e.hasOwnProperty("cornerType")?Li:e.hasOwnProperty("heightReference")?We:e.hasOwnProperty("horizontalOrigin")?_i:e.hasOwnProperty("date")?J:e.hasOwnProperty("labelStyle")?Vo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Ot:e.hasOwnProperty("distanceDisplayCondition")?wt:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Ne:e.hasOwnProperty("shadowMode")?gn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?Hh:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?ce:e.hasOwnProperty("uri")?Dv.default:e.hasOwnProperty("verticalOrigin")?Pn:Object}function Bje(e,t,n){switch(e){case Yt:return Yt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case qe:return t.boundingRectangle;case V:return t.cartesian2;case h:return Q9(t);case Rg:return Nje(t);case z:return Ije(t);case Un:return Un[y(t.classificationType,t)];case gc:return gc[y(t.colorBlendMode,t)];case Li:return Li[y(t.cornerType,t)];case We:return We[y(t.heightReference,t)];case _i:return _i[y(t.horizontalOrigin,t)];case Image:return Cae(t,n);case J:return J.fromIso8601(y(t.date,t));case Vo:return Vo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Ot:return t.nearFarScalar;case wt:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Ne:return Fje(t);case md:return y(t.number,t);case gn:return gn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case Hh:return Hh[y(t.stripeOrientation,t)];case ce:return Pje(t);case Dv.default:return Cae(t,n);case Pn:return Pn[y(t.verticalOrigin,t)];default:throw new ue(e)}}var kje={HERMITE:GF,LAGRANGE:WF,LINEAR:UA};function KF(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(u(n)||u(i))&&t.setInterpolationOptions({interpolationAlgorithm:kje[n],interpolationDegree:i});let o=e.forwardExtrapolationType;u(o)&&(t.forwardExtrapolationType=rf[o]);let r=e.forwardExtrapolationDuration;u(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;u(s)&&(t.backwardExtrapolationType=rf[s]);let a=e.backwardExtrapolationDuration;u(a)&&(t.backwardExtrapolationDuration=a)}var vae={iso8601:void 0};function er(e){if(u(e))return vae.iso8601=e,An.fromIso8601(vae)}function J9(e){let t=He.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Dae(e){let t=new bc;return t.intervals.addInterval(J9(e)),t}function Iae(e){let t=new la(e.referenceFrame);return t.intervals.addInterval(J9(e)),t}function ZF(e,t,n,i,o,r,s){let a=er(i.interval);u(o)&&(u(a)?a=An.intersect(a,o,lx):a=o);let c,l,f,d=!u(i.reference)&&!u(i.velocityReference),p=u(a)&&!a.equals(He.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Vae(t[n],a)}let g=!1;if(d){if(l=Bje(e,i,r),!u(l))return;c=y(e.packedLength,1),f=y(l.length,1),g=!u(i.array)&&typeof l!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==md;if(!g&&!p){d?t[n]=new Zn(m?e.unpack(l,0):l):t[n]=Aae(e,s,i);return}let x=t[n],b,T=i.epoch;if(u(T)&&(b=J.fromIso8601(T)),g&&!p){x instanceof sf||(t[n]=x=new sf(e)),x.addSamplesPackedArray(l,b),KF(i,x);return}let A;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(l,0):l:a.data=Aae(e,s,i),u(x)||(t[n]=x=d?new Og:new bc),d&&x instanceof Og?x.intervals.addInterval(a):x instanceof bc?(d&&(a.data=new Zn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Dae(x),d&&(a.data=new Zn(a.data)),x.intervals.addInterval(a));return}u(x)||(t[n]=x=new bc),x instanceof bc||(t[n]=x=Dae(x));let C=x.intervals;A=C.findInterval(a),(!u(A)||!(A.data instanceof sf))&&(A=a.clone(),A.data=new sf(e),C.addInterval(A)),A.data.addSamplesPackedArray(l,b),KF(i,A.data)}function Vae(e,t){if(e instanceof sf){e.removeSamples(t);return}else if(e instanceof Og){e.intervals.removeInterval(t);return}else if(e instanceof bc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=An.intersect(n.get(i),t,lx);o.isEmpty||Vae(o.data,t)}n.removeInterval(t);return}}function _e(e,t,n,i,o,r,s){if(u(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)ZF(e,t,n,i[a],o,r,s);else ZF(e,t,n,i,o,r,s)}function Pae(e,t,n,i,o,r){let s=er(n.interval);u(i)&&(u(s)?s=An.intersect(s,i,lx):s=i);let a=u(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),l,f,d=!u(n.reference),p=u(s)&&!s.equals(He.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return zae(e[t],s)}let g,m=!1;if(d&&(u(n.referenceFrame)&&(g=to[n.referenceFrame]),g=y(g,to.FIXED),l=Q9(n),f=y(l.length,1),m=f>c),!m&&!p){d?e[t]=new $c(h.unpack(l),g):e[t]=wv(r,n.reference);return}let x=e[t],b,T=n.epoch;if(u(T)&&(b=J.fromIso8601(T)),m&&!p){(!(x instanceof ua)||u(g)&&x.referenceFrame!==g)&&(e[t]=x=new ua(g,a)),x.addSamplesPackedArray(l,b),KF(n,x);return}let A;if(!m&&p){s=s.clone(),d?s.data=h.unpack(l):s.data=wv(r,n.reference),u(x)||(d?x=new Pg(g):x=new la(g),e[t]=x),d&&x instanceof Pg&&u(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof la?(d&&(s.data=new $c(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=Iae(x),d&&(s.data=new $c(s.data,g)),x.intervals.addInterval(s));return}u(x)?x instanceof la||(e[t]=x=Iae(x)):e[t]=x=new la(g);let C=x.intervals;A=C.findInterval(s),(!u(A)||!(A.data instanceof ua)||u(g)&&A.data.referenceFrame!==g)&&(A=s.clone(),A.data=new ua(g,a),C.addInterval(A)),A.data.addSamplesPackedArray(l,b),KF(n,A.data)}function zae(e,t){if(e instanceof ua){e.removeSamples(t);return}else if(e instanceof Pg){e.intervals.removeInterval(t);return}else if(e instanceof la){let n=e.intervals;for(let i=0;i<n.length;++i){let o=An.intersect(n.get(i),t,lx);o.isEmpty||zae(o.data,t)}n.removeInterval(t);return}}function Hae(e,t,n,i,o,r){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Pae(e,t,n[s],i,o,r);else Pae(e,t,n,i,o,r)}function Oae(e,t,n,i){u(n.references)?$F(e,t,n.references,n.interval,i,Cv,bc):(u(n.cartesian2)?n.array=V.unpackArray(n.cartesian2):u(n.cartesian)&&(n.array=V.unpackArray(n.cartesian)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i))}function Rae(e,t,n,i,o,r){let s=er(n.interval);u(i)&&(u(s)?s=An.intersect(s,i,lx):s=i);let a=e[t],c,l;if(u(s)){a instanceof lv||(a=new lv,e[t]=a);let d=a.intervals;l=d.findInterval({start:s.start,stop:s.stop}),u(l)?c=l.data:(l=s.clone(),d.addInterval(l))}else c=a;let f;u(n.solidColor)?(c instanceof Nt||(c=new Nt),f=n.solidColor,_e(z,c,"color",f.color,void 0,void 0,r)):u(n.grid)?(c instanceof xv||(c=new xv),f=n.grid,_e(z,c,"color",f.color,void 0,o,r),_e(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),_e(V,c,"lineCount",f.lineCount,void 0,o,r),_e(V,c,"lineThickness",f.lineThickness,void 0,o,r),_e(V,c,"lineOffset",f.lineOffset,void 0,o,r)):u(n.image)?(c instanceof m0||(c=new m0),f=n.image,_e(Image,c,"image",f.image,void 0,o,r),_e(V,c,"repeat",f.repeat,void 0,o,r),_e(z,c,"color",f.color,void 0,o,r),_e(Boolean,c,"transparent",f.transparent,void 0,o,r)):u(n.stripe)?(c instanceof Ev||(c=new Ev),f=n.stripe,_e(Hh,c,"orientation",f.orientation,void 0,o,r),_e(z,c,"evenColor",f.evenColor,void 0,o,r),_e(z,c,"oddColor",f.oddColor,void 0,o,r),_e(Number,c,"offset",f.offset,void 0,o,r),_e(Number,c,"repeat",f.repeat,void 0,o,r)):u(n.polylineOutline)?(c instanceof sx||(c=new sx),f=n.polylineOutline,_e(z,c,"color",f.color,void 0,o,r),_e(z,c,"outlineColor",f.outlineColor,void 0,o,r),_e(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):u(n.polylineGlow)?(c instanceof Av||(c=new Av),f=n.polylineGlow,_e(z,c,"color",f.color,void 0,o,r),_e(Number,c,"glowPower",f.glowPower,void 0,o,r),_e(Number,c,"taperPower",f.taperPower,void 0,o,r)):u(n.polylineArrow)?(c instanceof bv||(c=new bv),f=n.polylineArrow,_e(z,c,"color",f.color,void 0,void 0,r)):u(n.polylineDash)?(c instanceof Tv||(c=new Tv),f=n.polylineDash,_e(z,c,"color",f.color,void 0,void 0,r),_e(z,c,"gapColor",f.gapColor,void 0,void 0,r),_e(Number,c,"dashLength",f.dashLength,void 0,o,r),_e(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):u(n.checkerboard)&&(c instanceof rv||(c=new rv),f=n.checkerboard,_e(z,c,"evenColor",f.evenColor,void 0,o,r),_e(z,c,"oddColor",f.oddColor,void 0,o,r),_e(V,c,"repeat",f.repeat,void 0,o,r)),u(l)?l.data=c:e[t]=c}function Kl(e,t,n,i,o,r){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Rae(e,t,n[s],i,o,r);else Rae(e,t,n,i,o,r)}function Uje(e,t,n,i){let o=t.name;u(o)&&(e.name=t.name)}function Vje(e,t,n,i){let o=t.description;u(o)&&_e(String,e,"description",o,void 0,i,n)}function zje(e,t,n,i){let o=t.position;u(o)&&Hae(e,"position",o,void 0,i,n)}function Hje(e,t,n,i){let o=t.viewFrom;u(o)&&_e(h,e,"viewFrom",o,void 0,i,n)}function Gje(e,t,n,i){let o=t.orientation;u(o)&&_e(Ne,e,"orientation",o,void 0,i,n)}function Wje(e,t,n,i){let o=t.properties;if(u(o)){u(e.properties)||(e.properties=new Nl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)ZF(wae(s[a]),e.properties,r,s[a],void 0,i,n);else ZF(wae(s),e.properties,r,s,void 0,i,n)}}}function $F(e,t,n,i,o,r,s){let a=n.map(function(c){return wv(o,c)});if(u(i)){i=er(i);let c=e[t];if(!(c instanceof s)){let l=new s;l.intervals.addInterval(J9(c)),e[t]=c=l}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Mae(e,t,n,i){let o=n.references;u(o)?$F(e,t,o,n.interval,i,Cv,bc):_e(Array,e,t,n,void 0,void 0,i)}function Lae(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Mae(e,t,n[o],i);else Mae(e,t,n,i)}function Nae(e,t,n,i){let o=n.references;u(o)?$F(e,t,o,n.interval,i,wg,la):(u(n.cartesian)?n.array=h.unpackArray(n.cartesian):u(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ie.WGS84):u(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ie.WGS84)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i))}function Iv(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Nae(e,t,n[o],i);else Nae(e,t,n,i)}function jje(e){return h.unpackArray(e)}function qje(e){return h.fromRadiansArrayHeights(e,ie.WGS84)}function Yje(e){return h.fromDegreesArrayHeights(e,ie.WGS84)}function Fae(e,t,n,i){let o=n.references;if(u(o)){let r=o.map(function(s){let a={};return $F(a,"positions",s,n.interval,i,wg,la),a.positions});e[t]=new wg(r)}else u(n.cartesian)?n.array=n.cartesian.map(jje):u(n.cartographicRadians)?n.array=n.cartographicRadians.map(qje):u(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(Yje)),u(n.array)&&_e(Array,e,t,n,void 0,void 0,i)}function Xje(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Fae(e,t,n[o],i);else Fae(e,t,n,i)}function Kje(e,t,n,i){if(u(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)Oae(e,t,n[o],i);else Oae(e,t,n,i)}function Zje(e,t,n,i){let o=t.availability;if(!u(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)u(r)||(r=new Rr),r.addInterval(er(o[s]));else r=new Rr,r.addInterval(er(o));e.availability=r}function $je(e,t,n,i,o){u(t)&&_e(Rg,e,"alignedAxis",t,n,i,o)}function Qje(e,t,n,i){let o=t.billboard;if(!u(o))return;let r=er(o.interval),s=e.billboard;u(s)||(e.billboard=s=new cc),_e(Boolean,s,"show",o.show,r,i,n),_e(Image,s,"image",o.image,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(V,s,"pixelOffset",o.pixelOffset,r,i,n),_e(h,s,"eyeOffset",o.eyeOffset,r,i,n),_e(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),_e(Pn,s,"verticalOrigin",o.verticalOrigin,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(z,s,"color",o.color,r,i,n),_e(md,s,"rotation",o.rotation,r,i,n),$je(s,o.alignedAxis,r,i,n),_e(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(Ot,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(Ot,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(Ot,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),_e(qe,s,"imageSubRegion",o.imageSubRegion,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function Jje(e,t,n,i){let o=t.box;if(!u(o))return;let r=er(o.interval),s=e.box;u(s)||(e.box=s=new cT),_e(Boolean,s,"show",o.show,r,i,n),_e(h,s,"dimensions",o.dimensions,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function e7e(e,t,n,i){let o=t.corridor;if(!u(o))return;let r=er(o.interval),s=e.corridor;u(s)||(e.corridor=s=new uT),_e(Boolean,s,"show",o.show,r,i,n),Iv(s,"positions",o.positions,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(We,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(Li,s,"cornerType",o.cornerType,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Un,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function t7e(e,t,n,i){let o=t.cylinder;if(!u(o))return;let r=er(o.interval),s=e.cylinder;u(s)||(e.cylinder=s=new fT),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"length",o.length,r,i,n),_e(Number,s,"topRadius",o.topRadius,r,i,n),_e(Number,s,"bottomRadius",o.bottomRadius,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),_e(Number,s,"slices",o.slices,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function n7e(e,t){let n=e.version;if(u(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ue("Cesium only supports CZML version 1.");t._version=n}}if(!u(t._version))throw new ue("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;u(e.name)&&(i.name=e.name);let o=e.clock;if(u(o)){let r=i.clock;u(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function i7e(e,t,n,i){let o=t.ellipse;if(!u(o))return;let r=er(o.interval),s=e.ellipse;u(s)||(e.ellipse=s=new dT),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),_e(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(We,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(md,s,"rotation",o.rotation,r,i,n),_e(md,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Un,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function o7e(e,t,n,i){let o=t.ellipsoid;if(!u(o))return;let r=er(o.interval),s=e.ellipsoid;u(s)||(e.ellipsoid=s=new hT),_e(Boolean,s,"show",o.show,r,i,n),_e(h,s,"radii",o.radii,r,i,n),_e(h,s,"innerRadii",o.innerRadii,r,i,n),_e(Number,s,"minimumClock",o.minimumClock,r,i,n),_e(Number,s,"maximumClock",o.maximumClock,r,i,n),_e(Number,s,"minimumCone",o.minimumCone,r,i,n),_e(Number,s,"maximumCone",o.maximumCone,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"stackPartitions",o.stackPartitions,r,i,n),_e(Number,s,"slicePartitions",o.slicePartitions,r,i,n),_e(Number,s,"subdivisions",o.subdivisions,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function r7e(e,t,n,i){let o=t.label;if(!u(o))return;let r=er(o.interval),s=e.label;u(s)||(e.label=s=new dh),_e(Boolean,s,"show",o.show,r,i,n),_e(String,s,"text",o.text,r,i,n),_e(String,s,"font",o.font,r,i,n),_e(Vo,s,"style",o.style,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(Boolean,s,"showBackground",o.showBackground,r,i,n),_e(z,s,"backgroundColor",o.backgroundColor,r,i,n),_e(V,s,"backgroundPadding",o.backgroundPadding,r,i,n),_e(V,s,"pixelOffset",o.pixelOffset,r,i,n),_e(h,s,"eyeOffset",o.eyeOffset,r,i,n),_e(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),_e(Pn,s,"verticalOrigin",o.verticalOrigin,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(z,s,"fillColor",o.fillColor,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Ot,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(Ot,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),_e(Ot,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function s7e(e,t,n,i){let o=t.model;if(!u(o))return;let r=er(o.interval),s=e.model;u(s)||(e.model=s=new C_),_e(Boolean,s,"show",o.show,r,i,n),_e(Dv.default,s,"uri",o.gltf,r,i,n),_e(Number,s,"scale",o.scale,r,i,n),_e(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),_e(Number,s,"maximumScale",o.maximumScale,r,i,n),_e(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),_e(Boolean,s,"runAnimations",o.runAnimations,r,i,n),_e(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(z,s,"silhouetteColor",o.silhouetteColor,r,i,n),_e(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),_e(z,s,"color",o.color,r,i,n),_e(gc,s,"colorBlendMode",o.colorBlendMode,r,i,n),_e(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,l=o.nodeTransformations;if(u(l))if(Array.isArray(l))for(a=0,c=l.length;a<c;++a)Bae(s,l[a],r,i,n);else Bae(s,l,r,i,n);let f=o.articulations;if(u(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)kae(s,f[a],r,i,n);else kae(s,f,r,i,n)}function Bae(e,t,n,i,o){let r=er(t.interval);u(n)&&(u(r)?r=An.intersect(r,n,lx):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!u(d))continue;u(s)||(e.nodeTransformations=s=new Nl),s.hasProperty(f)||s.addProperty(f);let p=s[f];u(p)||(s[f]=p=new mT),_e(h,p,"translation",d.translation,r,i,o),_e(Ne,p,"rotation",d.rotation,r,i,o),_e(h,p,"scale",d.scale,r,i,o)}}function kae(e,t,n,i,o){let r=er(t.interval);u(n)&&(u(r)?r=An.intersect(r,n,lx):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];u(d)&&(u(s)||(e.articulations=s=new Nl),s.hasProperty(f)||s.addProperty(f),_e(Number,s,f,d,r,i,o))}}function a7e(e,t,n,i){let o=t.path;if(!u(o))return;let r=er(o.interval),s=e.path;u(s)||(e.path=s=new E_),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"leadTime",o.leadTime,r,i,n),_e(Number,s,"trailTime",o.trailTime,r,i,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"resolution",o.resolution,r,i,n),Kl(s,"material",o.material,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function c7e(e,t,n,i){let o=t.point;if(!u(o))return;let r=er(o.interval),s=e.point;u(s)||(e.point=s=new _T),_e(Boolean,s,"show",o.show,r,i,n),_e(Number,s,"pixelSize",o.pixelSize,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(z,s,"color",o.color,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Ot,s,"scaleByDistance",o.scaleByDistance,r,i,n),_e(Ot,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function vv(e){this.polygon=e,this._definitionChanged=new pe}Object.defineProperties(vv.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!u(e)||e.isConstant)&&(!u(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});vv.prototype.getValue=function(e,t){let n;u(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return u(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),u(i)&&(i=i.map(function(o){return new Ia(o)}))),u(t)?(t.positions=n,t.holes=i,t):new Ia(n,i)};vv.prototype.equals=function(e){return this===e||e instanceof vv&&j.equals(this.polygon._positions,e.polygon._positions)&&j.equals(this.polygon._holes,e.polygon._holes)};function l7e(e,t,n,i){let o=t.polygon;if(!u(o))return;let r=er(o.interval),s=e.polygon;u(s)||(e.polygon=s=new hh),_e(Boolean,s,"show",o.show,r,i,n),Iv(s,"_positions",o.positions,n),Xje(s,"_holes",o.holes,n),(u(s._positions)||u(s._holes))&&(s.hierarchy=new vv(s)),_e(Number,s,"height",o.height,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(We,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(md,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),_e(Boolean,s,"closeTop",o.closeTop,r,i,n),_e(Boolean,s,"closeBottom",o.closeBottom,r,i,n),_e(Yt,s,"arcType",o.arcType,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Un,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function u7e(e){return e?Yt.GEODESIC:Yt.NONE}function f7e(e,t,n,i){let o=t.polyline;if(!u(o))return;let r=er(o.interval),s=e.polyline;if(u(s)||(e.polyline=s=new mc),_e(Boolean,s,"show",o.show,r,i,n),Iv(s,"positions",o.positions,n),_e(Number,s,"width",o.width,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),Kl(s,"material",o.material,r,i,n),Kl(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),_e(Yt,s,"arcType",o.arcType,r,i,n),_e(Boolean,s,"clampToGround",o.clampToGround,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Un,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n),u(o.followSurface)&&!u(o.arcType)){let a={};_e(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=Dje(a.followSurface,u7e)}}function d7e(e,t,n,i){let o=t.polylineVolume;if(!u(o))return;let r=er(o.interval),s=e.polylineVolume;u(s)||(e.polylineVolume=s=new gT),Iv(s,"positions",o.positions,n),Kje(s,"shape",o.shape,n),_e(Boolean,s,"show",o.show,r,i,n),_e(Li,s,"cornerType",o.cornerType,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function h7e(e,t,n,i){let o=t.rectangle;if(!u(o))return;let r=er(o.interval),s=e.rectangle;u(s)||(e.rectangle=s=new mh),_e(Boolean,s,"show",o.show,r,i,n),_e(ce,s,"coordinates",o.coordinates,r,i,n),_e(Number,s,"height",o.height,r,i,n),_e(We,s,"heightReference",o.heightReference,r,i,n),_e(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),_e(We,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),_e(md,s,"rotation",o.rotation,r,i,n),_e(md,s,"stRotation",o.stRotation,r,i,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),_e(Un,s,"classificationType",o.classificationType,r,i,n),_e(Number,s,"zIndex",o.zIndex,r,i,n)}function m7e(e,t,n,i){let o=t.tileset;if(!u(o))return;let r=er(o.interval),s=e.tileset;u(s)||(e.tileset=s=new pT),_e(Boolean,s,"show",o.show,r,i,n),_e(Dv.default,s,"uri",o.uri,r,i,n),_e(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function p7e(e,t,n,i){let o=t.wall;if(!u(o))return;let r=er(o.interval),s=e.wall;u(s)||(e.wall=s=new S_),_e(Boolean,s,"show",o.show,r,i,n),Iv(s,"positions",o.positions,n),Lae(s,"minimumHeights",o.minimumHeights,n),Lae(s,"maximumHeights",o.maximumHeights,n),_e(Number,s,"granularity",o.granularity,r,i,n),_e(Boolean,s,"fill",o.fill,r,i,n),Kl(s,"material",o.material,r,i,n),_e(Boolean,s,"outline",o.outline,r,i,n),_e(z,s,"outlineColor",o.outlineColor,r,i,n),_e(Number,s,"outlineWidth",o.outlineWidth,r,i,n),_e(gn,s,"shadows",o.shadows,r,i,n),_e(wt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Uae(e,t,n,i,o){let r=e.id;if(u(r)||(r=Gn()),$9=r,!u(o._version)&&r!=="document")throw new ue("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")n7e(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;u(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}$9=void 0}function _7e(e){let t,n=e._documentPacket.clock;if(!u(n)){if(!u(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(He.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=J.secondsDifference(s,r),c=Math.round(a/120);return t=new zh,t.startTime=J.clone(r),t.stopTime=J.clone(s),t.clockRange=Lr.LOOP_STOP,t.multiplier=c,t.currentTime=J.clone(r),t.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}u(e._clock)?t=e._clock.clone():(t=new zh,t.startTime=He.MINIMUM_VALUE.clone(),t.stopTime=He.MAXIMUM_VALUE.clone(),t.currentTime=He.MINIMUM_VALUE.clone(),t.clockRange=Lr.LOOP_STOP,t.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=er(n.interval);return u(i)&&(t.startTime=i.start,t.stopTime=i.stop),u(n.currentTime)&&(t.currentTime=J.fromIso8601(n.currentTime)),u(n.range)&&(t.clockRange=y(Lr[n.range],Lr.LOOP_STOP)),u(n.step)&&(t.clockStep=y(po[n.step],po.SYSTEM_CLOCK_MULTIPLIER)),u(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Gae(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new bt(s)),e._credit=s,typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return r=ve.createIfNeeded(r),Mr.setLoading(e,!0),Promise.resolve(o).then(function(a){return g7e(e,a,r,i)}).catch(function(a){return Mr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function g7e(e,t,n,i){Mr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new Wae,o.removeAll()),cl._processCzml(t,o,n,void 0,e);let r=_7e(e),s=e._documentPacket;return u(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!u(e._name)&&u(n)&&(e._name=Sg(n.getUrlComponent()),r=!0),Mr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function Wae(){this.name=void 0,this.clock=void 0}function cl(e){this._name=e,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._clock=void 0,this._documentPacket=new Wae,this._version=void 0,this._entityCollection=new Vs(this),this._entityCluster=new of,this._credit=void 0,this._resourceCredits=[]}cl.load=function(e,t){return new cl().load(e,t)};Object.defineProperties(cl.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});cl.updaters=[Qje,Jje,e7e,t7e,i7e,o7e,r7e,s7e,Uje,Vje,a7e,c7e,l7e,f7e,d7e,Wje,h7e,zje,m7e,Hje,p7e,Gje,Zje];cl.prototype.process=function(e,t){return Gae(this,e,t,!1)};cl.prototype.load=function(e,t){return Gae(this,e,t,!0)};cl.prototype.update=function(e){return!0};cl.processPacketData=_e;cl.processPositionPacketData=Hae;cl.processMaterialPacketData=Kl;cl._processCzml=function(e,t,n,i,o){if(i=y(i,cl.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)Uae(e[r],t,i,n,o);else Uae(e,t,i,n,o)};var QF=cl;function Ec(){this._dataSources=[],this._dataSourceAdded=new pe,this._dataSourceRemoved=new pe,this._dataSourceMoved=new pe}Object.defineProperties(Ec.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});Ec.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};Ec.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};Ec.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};Ec.prototype.contains=function(e){return this.indexOf(e)!==-1};Ec.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};Ec.prototype.get=function(e){return this._dataSources[e]};Ec.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function JF(e,t){return e.indexOf(t)}function jae(e,t,n){let i=e._dataSources,o=i.length-1;if(t=P.clamp(t,0,o),n=P.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}Ec.prototype.raise=function(e){let t=JF(this._dataSources,e);jae(this,t,t+1)};Ec.prototype.lower=function(e){let t=JF(this._dataSources,e);jae(this,t,t-1)};Ec.prototype.raiseToTop=function(e){let t=JF(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};Ec.prototype.lowerToBottom=function(e){let t=JF(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};Ec.prototype.isDestroyed=function(){return!1};Ec.prototype.destroy=function(){return this.removeAll(!0),le(this)};var eB=Ec;function Gs(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Gn(),this._primitiveAdded=new pe,this._primitiveRemoved=new pe,this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(Gs.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});Gs.prototype.add=function(e,t){let n=u(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),this._primitiveAdded.raiseEvent(e),e};Gs.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),this._primitiveRemoved.raiseEvent(e),!0}return!1};Gs.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};Gs.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy(),this._primitiveRemoved.raiseEvent(e[n]);this._primitives=[]};Gs.prototype.contains=function(e){return!!(u(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function tB(e,t){return e._primitives.indexOf(t)}Gs.prototype.raise=function(e){if(u(e)){let t=tB(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};Gs.prototype.raiseToTop=function(e){if(u(e)){let t=tB(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};Gs.prototype.lower=function(e){if(u(e)){let t=tB(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};Gs.prototype.lowerToBottom=function(e){if(u(e)){let t=tB(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};Gs.prototype.get=function(e){return this._primitives[e]};Gs.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};Gs.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.prePassesUpdate)&&i.prePassesUpdate(e)}};Gs.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];u(o.updateForPass)&&o.updateForPass(e,t)}};Gs.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.postPassesUpdate)&&i.postPassesUpdate(e)}};Gs.prototype.isDestroyed=function(){return!1};Gs.prototype.destroy=function(){return this.removeAll(),le(this)};var Zl=Gs;function Gh(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Gh.prototype,{length:{get:function(){return this._length}}});Gh.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!u(n)){n=new Zl({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};Gh.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Gh.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};Gh.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};Gh.prototype.contains=function(e){if(!u(e))return!1;let t=this._collections[e._zIndex];return u(t)&&t.contains(e)};Gh.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Gh.prototype.isDestroyed=function(){return!1};Gh.prototype.destroy=function(){return this.removeAll(),le(this)};var nB=Gh;function XA(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new xt}XA.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};XA.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);u(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};XA.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};XA.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};XA.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),u(e)&&u(e.getBoundingSphere)?e.getBoundingSphere(t):at.FAILED};var KA=XA;var tW={},iB=new h,qae=new h,Yae=new Ne,Xae=new $;function ZA(e,t,n,i,o,r,s,a,c,l){let f=e+t;h.multiplyByScalar(i,Math.cos(f),iB),h.multiplyByScalar(n,Math.sin(f),qae),h.add(iB,qae,iB);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let m=r/Math.sqrt(s*d+o*p)/a;return Ne.fromAxisAngle(iB,m,Yae),$.fromQuaternion(Yae,Xae),$.multiplyByVector(Xae,c,l),h.normalize(l,l),h.multiplyByScalar(l,a,l),l}var Kae=new h,Zae=new h,eW=new h,y7e=new h;tW.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,l=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,Kae);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,Zae),x=i.geodeticSurfaceNormal(g,y7e),b=h.multiplyByScalar(x,o,eW);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+l]=m.x,a[d+l]=m.y,a[p+l]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var x7e=new h,b7e=new h,T7e=new h;tW.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,l=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,x7e),g=h.cross(h.UNIT_Z,s,b7e);g=h.normalize(g,g);let m=h.cross(p,g,T7e),x=1+Math.ceil(P.PI_OVER_TWO/a),b=P.PI_OVER_TWO/(x-1),T=P.PI_OVER_TWO-x*b;T<0&&(x-=Math.ceil(Math.abs(T)/b));let A=2*(x*(x+2)),C=t?new Array(A*3):void 0,S=0,w=Kae,D=Zae,O=x*4*3,R=O-1,N=0,F=n?new Array(O):void 0,_,E,v,I,M;for(T=P.PI_OVER_TWO,w=ZA(T,r,m,g,c,f,l,d,p,w),t&&(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z),n&&(F[R--]=w.z,F[R--]=w.y,F[R--]=w.x),T=P.PI_OVER_TWO-b,_=1;_<x+1;++_){if(w=ZA(T,r,m,g,c,f,l,d,p,w),D=ZA(Math.PI-T,r,m,g,c,f,l,d,p,D),t){for(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,v=2*_+2,E=1;E<v-1;++E)I=E/(v-1),M=h.lerp(w,D,I,eW),C[S++]=M.x,C[S++]=M.y,C[S++]=M.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(F[R--]=w.z,F[R--]=w.y,F[R--]=w.x,F[N++]=D.x,F[N++]=D.y,F[N++]=D.z),T=P.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=P.PI_OVER_TWO-(_-1)*b,w=ZA(-T,r,m,g,c,f,l,d,p,w),D=ZA(T+Math.PI,r,m,g,c,f,l,d,p,D),t){for(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,v=2*(_-1)+2,E=1;E<v-1;++E)I=E/(v-1),M=h.lerp(w,D,I,eW),C[S++]=M.x,C[S++]=M.y,C[S++]=M.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(F[R--]=w.z,F[R--]=w.y,F[R--]=w.x,F[N++]=D.x,F[N++]=D.y,F[N++]=D.z)}T=P.PI_OVER_TWO,w=ZA(-T,r,m,g,c,f,l,d,p,w);let B={};return t&&(C[S++]=w.x,C[S++]=w.y,C[S++]=w.z,B.positions=C,B.numPts=x),n&&(F[R--]=w.z,F[R--]=w.y,F[R--]=w.x,B.outerPositions=F),B};var $l=tW;var $A=new h,nW=new h,iW=new h,$ae=new h,rs=new V,Qae=new $,A7e=new $,oW=new Ne,Jae=new h,ece=new h,tce=new h,sB=new fe,nce=new h,ice=new V,oce=new V;function rce(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,l=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(l*2):void 0,p=i.normal?new Float32Array(l*3):void 0,g=i.tangent?new Float32Array(l*3):void 0,m=i.bitangent?new Float32Array(l*3):void 0,x=f?new Float32Array(l*3):void 0,b=0,T=Jae,A=ece,C=tce,S=new Ii(a),w=S.project(a.cartesianToCartographic(o,sB),nce),D=a.scaleToGeodeticSurface(o,$A);a.geodeticSurfaceNormal(D,D);let O=Qae,R=A7e;if(c!==0){let M=Ne.fromAxisAngle(D,c,oW);O=$.fromQuaternion(M,O),M=Ne.fromAxisAngle(D,-c,oW),R=$.fromQuaternion(M,R)}else O=$.clone($.IDENTITY,O),R=$.clone($.IDENTITY,R);let N=V.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,ice),F=V.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,oce),_=e.length,E=n?_:0,v=E/3*2;for(let M=0;M<_;M+=3){let B=M+1,H=M+2,U=h.fromArray(e,M,$A);if(i.st){let G=$.multiplyByVector(O,U,nW),k=S.project(a.cartesianToCartographic(G,sB),iW);h.subtract(k,w,k),rs.x=(k.x+r)/(2*r),rs.y=(k.y+s)/(2*s),N.x=Math.min(rs.x,N.x),N.y=Math.min(rs.y,N.y),F.x=Math.max(rs.x,F.x),F.y=Math.max(rs.y,F.y),n&&(d[b+v]=rs.x,d[b+1+v]=rs.y),d[b++]=rs.x,d[b++]=rs.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(U,T),f&&(x[M+E]=-T.x,x[B+E]=-T.y,x[H+E]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(A=h.normalize(h.cross(h.UNIT_Z,T,A),A),$.multiplyByVector(R,A,A)),i.normal&&(p[M]=T.x,p[B]=T.y,p[H]=T.z,n&&(p[M+E]=-T.x,p[B+E]=-T.y,p[H+E]=-T.z)),i.tangent&&(g[M]=A.x,g[B]=A.y,g[H]=A.z,n&&(g[M+E]=-A.x,g[B+E]=-A.y,g[H+E]=-A.z)),i.bitangent&&(C=h.normalize(h.cross(T,A,C),C),m[M]=C.x,m[B]=C.y,m[H]=C.z,n&&(m[M+E]=C.x,m[B+E]=C.y,m[H+E]=C.z))))}if(i.st){_=d.length;for(let M=0;M<_;M+=2)d[M]=(d[M]-N.x)/(F.x-N.x),d[M+1]=(d[M+1]-N.y)/(F.y-N.y)}let I=new hn;if(i.position){let M=$l.raisePositionsToHeight(e,t,n);I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:M})}if(i.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(I.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),n&&u(t.offsetAttribute)){let M=new Uint8Array(l);if(t.offsetAttribute===nn.TOP)M=M.fill(1,0,l/2);else{let B=t.offsetAttribute===nn.NONE?0:1;M=M.fill(B)}I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}return I}function sce(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var ux=new h;function C7e(e){let t=e.center;ux=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,ux),e.height,ux),ux=h.add(t,ux,ux);let n=new se(ux,e.semiMajorAxis),i=$l.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=rce(o,e,!1),a=sce(r);return a=ke.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function E7e(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,l=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,m=n.tangent?new Float32Array(f*3):void 0,x=n.bitangent?new Float32Array(f*3):void 0,b=t.shadowVolume,T=b?new Float32Array(f*3):void 0,A=0,C=Jae,S=ece,w=tce,D=new Ii(s),O=D.project(s.cartesianToCartographic(i,sB),nce),R=s.scaleToGeodeticSurface(i,$A);s.geodeticSurfaceNormal(R,R);let N=Ne.fromAxisAngle(R,l,oW),F=$.fromQuaternion(N,Qae),_=V.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,ice),E=V.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,oce),v=e.length,I=v/3*2;for(let B=0;B<v;B+=3){let H=B+1,U=B+2,G=h.fromArray(e,B,$A),k;if(n.st){let q=$.multiplyByVector(F,G,nW),Q=D.project(s.cartesianToCartographic(q,sB),iW);h.subtract(Q,O,Q),rs.x=(Q.x+o)/(2*o),rs.y=(Q.y+r)/(2*r),_.x=Math.min(rs.x,_.x),_.y=Math.min(rs.y,_.y),E.x=Math.max(rs.x,E.x),E.y=Math.max(rs.y,E.y),p[A+I]=rs.x,p[A+1+I]=rs.y,p[A++]=rs.x,p[A++]=rs.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,nW),C=s.geodeticSurfaceNormal(G,C),b&&(T[B+v]=-C.x,T[H+v]=-C.y,T[U+v]=-C.z);let Y=h.multiplyByScalar(C,a,$ae);if(G=h.add(G,Y,G),Y=h.multiplyByScalar(C,c,Y),k=h.add(k,Y,k),n.position&&(d[B+v]=k.x,d[H+v]=k.y,d[U+v]=k.z,d[B]=G.x,d[H]=G.y,d[U]=G.z),n.normal||n.tangent||n.bitangent){w=h.clone(C,w);let q=h.fromArray(e,(B+3)%v,$ae);h.subtract(q,G,q);let Q=h.subtract(k,G,iW);C=h.normalize(h.cross(Q,q,C),C),n.normal&&(g[B]=C.x,g[H]=C.y,g[U]=C.z,g[B+v]=C.x,g[H+v]=C.y,g[U+v]=C.z),n.tangent&&(S=h.normalize(h.cross(w,C,S),S),m[B]=S.x,m[H]=S.y,m[U]=S.z,m[B+v]=S.x,m[B+1+v]=S.y,m[B+2+v]=S.z),n.bitangent&&(x[B]=w.x,x[H]=w.y,x[U]=w.z,x[B+v]=w.x,x[H+v]=w.y,x[U+v]=w.z)}}if(n.st){v=p.length;for(let B=0;B<v;B+=2)p[B]=(p[B]-_.x)/(E.x-_.x),p[B+1]=(p[B+1]-_.y)/(E.y-_.y)}let M=new hn;if(n.position&&(M.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(M.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(M.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(M.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(M.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(M.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),u(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===nn.TOP)B=B.fill(1,0,f/2);else{let H=t.offsetAttribute===nn.NONE?0:1;B=B.fill(H)}M.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return M}function S7e(e){let t=e.length/3,n=ke.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var oB=new se,rB=new se;function w7e(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,$A),e.height,$A);oB.center=h.add(t,o,oB.center),oB.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),rB.center=h.add(t,o,rB.center),rB.radius=i;let r=$l.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,l=se.union(oB,rB),f=rce(s,e,!0),d=sce(a),p=d.length;d.length=p*2;let g=s.length/3;for(let S=0;S<p;S+=3)d[S+p]=d[S+2]+g,d[S+1+p]=d[S+1]+g,d[S+2+p]=d[S]+g;let m=ke.createTypedArray(g*2/3,d),x=new ct({attributes:f,indices:m,primitiveType:Le.TRIANGLES}),b=E7e(c,e);d=S7e(c);let T=ke.createTypedArray(c.length*2/3,d),A=new ct({attributes:b,indices:T,primitiveType:Le.TRIANGLES}),C=Fn.combineInstances([new yt({geometry:x}),new yt({geometry:A})]);return{boundingSphere:l,attributes:C[0].attributes,indices:C[0].indices}}function ace(e,t,n,i,o,r,s){let c=$l.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,l=c.length/3,f=new Array(l);for(let p=0;p<l;++p)f[p]=h.fromArray(c,p*3);let d=ce.fromCartesianArray(f,r,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function jh(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ie.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ie.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Pe.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}jh.packedLength=h.packedLength+ie.packedLength+Pe.packedLength+9;jh.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var cce=new h,lce=new ie,uce=new Pe,Wh={center:cce,ellipsoid:lce,vertexFormat:uce,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};jh.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,cce);t+=h.packedLength;let o=ie.unpack(e,t,lce);t+=ie.packedLength;let r=Pe.unpack(e,t,uce);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=l,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(Wh.height=f,Wh.extrudedHeight=p,Wh.granularity=d,Wh.stRotation=l,Wh.rotation=c,Wh.semiMajorAxis=s,Wh.semiMinorAxis=a,Wh.shadowVolume=g,Wh.offsetAttribute=m===-1?void 0:m,new jh(Wh))};jh.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ie.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return ace(n,o,r,a,s,i,t)};jh.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=w7e(o);else if(r=C7e(o),u(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===nn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ct({attributes:r.attributes,indices:r.indices,primitiveType:Le.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};jh.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new jh({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function v7e(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=$l.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return ct._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(jh.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=ace(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=v7e(this)),this._textureCoordinateRotationPoints}}});var ll=jh;var fce=new h,fx=new h;function D7e(e){let t=e.center;fx=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,fx),e.height,fx),fx=h.add(t,fx,fx);let n=new se(fx,e.semiMajorAxis),i=$l.computeEllipsePositions(e,!1,!0).outerPositions,o=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:$l.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=ke.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var aB=new se,cB=new se;function I7e(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,fce),e.height,fce);aB.center=h.add(t,o,aB.center),aB.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),cB.center=h.add(t,o,cB.center),cB.radius=i;let r=$l.computeEllipsePositions(e,!1,!0).outerPositions,s=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:$l.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=se.union(aB,cB),c=r.length/3;if(u(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===nn.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===nn.NONE?0:1;m=m.fill(x)}s.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let l=y(e.numberOfVerticalLines,16);l=P.clamp(l,0,c/2);let f=ke.createTypedArray(c,c*2+l*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(l>0){let m=Math.min(l,c);g=Math.round(c/m);let x=Math.min(g*l,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function QA(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ie.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ie.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}QA.packedLength=h.packedLength+ie.packedLength+8;QA.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var dce=new h,hce=new ie,Rp={center:dce,ellipsoid:hce,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};QA.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,dce);t+=h.packedLength;let o=ie.unpack(e,t,hce);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=l,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(Rp.height=c,Rp.extrudedHeight=f,Rp.granularity=l,Rp.rotation=a,Rp.semiMajorAxis=r,Rp.semiMinorAxis=s,Rp.numberOfVerticalLines=d,Rp.offsetAttribute=p===-1?void 0:p,new QA(Rp))};QA.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=I7e(o);else if(r=D7e(o),u(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===nn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ct({attributes:r.attributes,indices:r.indices,primitiveType:Le.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var cf=QA;var mce=new z,pce=h.ZERO,_ce=new h,gce=new ce;function P7e(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function _d(e,t){qn.call(this,{entity:e,scene:t,geometryOptions:new P7e(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}u(Object.create)&&(_d.prototype=Object.create(qn.prototype),_d.prototype.constructor=_d);_d.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,mce)),u(o)||(o=z.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,pce,_ce))),new yt({id:t,geometry:new ll(this._options),attributes:i})};_d.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,mce),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,pce,_ce))),new yt({id:t,geometry:new cf(this._options),attributes:r})};_d.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};_d.prototype._isHidden=function(e,t){let n=e.position;return!u(n)||!u(t.semiMajorAxis)||!u(t.semiMinorAxis)||ii.prototype._isHidden.call(this,e,t)};_d.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!j.isConstant(t.rotation)||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Nt)};_d.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),o=j.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,We.NONE);u(o)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Nt?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(He.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(He.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(He.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=j.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.stRotation=j.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),s.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),s.offsetAttribute=qn.computeGeometryOffsetAttribute(n,i,o,r),s.height=qn.getGeometryHeight(n,i),o=qn.getGeometryExtrudedHeight(o,r),o===qn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(ll.computeRectangle(s,gce)).minimumTerrainHeight),s.extrudedHeight=o};_d.DynamicGeometryUpdater=JA;function JA(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(JA.prototype=Object.create(ni.prototype),JA.prototype.constructor=JA);JA.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.center)||!u(i.semiMajorAxis)||!u(i.semiMinorAxis)||ni.prototype._isHidden.call(this,e,t,n)};JA.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,We.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,We.NONE);u(s)&&!u(o)&&(o=0),i.center=j.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=j.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=j.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=qn.computeGeometryOffsetAttribute(o,r,s,a),i.height=qn.getGeometryHeight(o,r),s=qn.getGeometryExtrudedHeight(s,a),s===qn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(ll.computeRectangle(i,gce)).minimumTerrainHeight),i.extrudedHeight=s};var lB=_d;var O7e=new h,R7e=new h,M7e=new h,L7e=new h,N7e=new h,F7e=new h(1,1,1),yce=Math.cos,xce=Math.sin;function Mp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,F7e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),l=y(e.vertexFormat,Pe.DEFAULT);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Pe.clone(l),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}Mp.packedLength=2*h.packedLength+Pe.packedLength+7;Mp.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var bce=new h,Tce=new h,Ace=new Pe,Mg={radii:bce,innerRadii:Tce,vertexFormat:Ace,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};Mp.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,bce);t+=h.packedLength;let o=h.unpack(e,t,Tce);t+=h.packedLength;let r=Pe.unpack(e,t,Ace);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=l,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(Mg.minimumClock=s,Mg.maximumClock=a,Mg.minimumCone=c,Mg.maximumCone=l,Mg.stackPartitions=f,Mg.slicePartitions=d,Mg.offsetAttribute=p===-1?void 0:p,new Mp(Mg))};Mp.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,l=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),l=Math.round(l*Math.abs(s-r)/P.PI),c<2&&(c=2),l<2&&(l=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<l;f++)g.push(r+f*(s-r)/(l-1));for(g.push(s),d=0;d<c;d++)m.push(i+d*(o-i)/(c-1));m.push(o);let x=g.length,b=m.length,T=0,A=1,C=n.x!==t.x||n.y!==t.y||n.z!==t.z,S=!1,w=!1,D=!1;C&&(A=2,r>0&&(S=!0,T+=c-1),s<Math.PI&&(w=!0,T+=c-1),(o-i)%P.TWO_PI?(D=!0,T+=(l-1)*2+1):T+=1);let O=b*x*A,R=new Float64Array(O*3),N=new Array(O).fill(!1),F=new Array(O).fill(!1),_=c*l*A,E=6*(_+T+1-(c+l)*A),v=ke.createTypedArray(_,E),I=a.normal?new Float32Array(O*3):void 0,M=a.tangent?new Float32Array(O*3):void 0,B=a.bitangent?new Float32Array(O*3):void 0,H=a.st?new Float32Array(O*2):void 0,U=new Array(x),G=new Array(x);for(f=0;f<x;f++)U[f]=xce(g[f]),G[f]=yce(g[f]);let k=new Array(b),Y=new Array(b);for(d=0;d<b;d++)Y[d]=yce(m[d]),k[d]=xce(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=t.x*U[f]*Y[d],R[p++]=t.y*U[f]*k[d],R[p++]=t.z*G[f];let q=O/2;if(C)for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=n.x*U[f]*Y[d],R[p++]=n.y*U[f]*k[d],R[p++]=n.z*G[f],N[q]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(F[q]=!0),q++;p=0;let Q,W;for(f=1;f<x-2;f++)for(Q=f*b,W=(f+1)*b,d=1;d<b-2;d++)v[p++]=W+d,v[p++]=W+d+1,v[p++]=Q+d+1,v[p++]=W+d,v[p++]=Q+d+1,v[p++]=Q+d;if(C){let Ue=x*b;for(f=1;f<x-2;f++)for(Q=Ue+f*b,W=Ue+(f+1)*b,d=1;d<b-2;d++)v[p++]=W+d,v[p++]=Q+d,v[p++]=Q+d+1,v[p++]=W+d,v[p++]=Q+d+1,v[p++]=W+d+1}let K,Z;if(C){if(S)for(Z=x*b,f=1;f<b-2;f++)v[p++]=f,v[p++]=f+1,v[p++]=Z+f+1,v[p++]=f,v[p++]=Z+f+1,v[p++]=Z+f;if(w)for(K=x*b-b,Z=x*b*A-b,f=1;f<b-2;f++)v[p++]=K+f+1,v[p++]=K+f,v[p++]=Z+f,v[p++]=K+f+1,v[p++]=Z+f,v[p++]=Z+f+1}if(D){for(f=1;f<x-2;f++)Z=b*x+b*f,K=b*f,v[p++]=Z,v[p++]=K+b,v[p++]=K,v[p++]=Z,v[p++]=Z+b,v[p++]=K+b;for(f=1;f<x-2;f++)Z=b*x+b*(f+1)-1,K=b*(f+1)-1,v[p++]=K+b,v[p++]=Z,v[p++]=K,v[p++]=K+b,v[p++]=Z+b,v[p++]=Z}let me=new hn;a.position&&(me.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R}));let xe=0,re=0,ge=0,ye=0,Ae=O/2,De,Fe=ie.fromCartesian3(t),Re=ie.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){De=N[f]?Re:Fe;let Ue=h.fromArray(R,f*3,O7e),st=De.geodeticSurfaceNormal(Ue,R7e);if(F[f]&&h.negate(st,st),a.st){let pt=V.negate(st,N7e);H[xe++]=Math.atan2(pt.y,pt.x)/P.TWO_PI+.5,H[xe++]=Math.asin(st.z)/Math.PI+.5}if(a.normal&&(I[re++]=st.x,I[re++]=st.y,I[re++]=st.z),a.tangent||a.bitangent){let pt=M7e,nt=0,sn;if(N[f]&&(nt=Ae),!S&&f>=nt&&f<nt+b*2?sn=h.UNIT_X:sn=h.UNIT_Z,h.cross(sn,st,pt),h.normalize(pt,pt),a.tangent&&(M[ge++]=pt.x,M[ge++]=pt.y,M[ge++]=pt.z),a.bitangent){let Rn=h.cross(st,pt,L7e);h.normalize(Rn,Rn),B[ye++]=Rn.x,B[ye++]=Rn.y,B[ye++]=Rn.z}}}a.st&&(me.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:H})),a.normal&&(me.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(me.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:M})),a.bitangent&&(me.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(u(e._offsetAttribute)){let Ue=R.length,st=e._offsetAttribute===nn.NONE?0:1,pt=new Uint8Array(Ue/3).fill(st);me.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:pt})}return new ct({attributes:me,indices:v,primitiveType:Le.TRIANGLES,boundingSphere:se.fromEllipsoid(Fe),offsetAttribute:e._offsetAttribute})};var rW;Mp.getUnitEllipsoid=function(){return u(rW)||(rW=Mp.createGeometry(new Mp({radii:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),rW};var Ws=Mp;var B7e=new Nt(z.WHITE),sW=h.ZERO,aW=new h,k7e=new h,U7e=new h,cW=new z,V7e=new h(1,1,1);function z7e(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Ql(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new z7e(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}u(Object.create)&&(Ql.prototype=Object.create(ii.prototype),Ql.prototype.constructor=Ql);Object.defineProperties(Ql.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Ql.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new _n(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=kn.fromDistanceDisplayCondition(a),l={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Nt){let f;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,cW)),u(f)||(f=z.WHITE),r=kt.fromColor(f),l.color=r}return u(this._options.offsetAttribute)&&(l.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,sW,aW))),new yt({id:i,geometry:new Ws(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:l})};Ql.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,cW),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new _n(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(r),distanceDisplayCondition:kn.fromDistanceDisplayCondition(s),offset:void 0};return u(this._options.offsetAttribute)&&(a.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,sW,aW))),new yt({id:i,geometry:new Qu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:a})};Ql.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Ql.prototype._isHidden=function(e,t){return!u(e.position)||!u(t.radii)||ii.prototype._isHidden.call(this,e,t)};Ql.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.radii.isConstant||!j.isConstant(t.innerRadii)||!j.isConstant(t.stackPartitions)||!j.isConstant(t.slicePartitions)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.minimumClock)||!j.isConstant(t.maximumClock)||!j.isConstant(t.minimumCone)||!j.isConstant(t.maximumCone)||!j.isConstant(t.subdivisions)};Ql.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Nt?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(He.MINIMUM_VALUE,i.radii),i.innerRadii=j.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=j.getValueOrUndefined(t.minimumClock,He.MINIMUM_VALUE),i.maximumClock=j.getValueOrUndefined(t.maximumClock,He.MINIMUM_VALUE),i.minimumCone=j.getValueOrUndefined(t.minimumCone,He.MINIMUM_VALUE),i.maximumCone=j.getValueOrUndefined(t.maximumCone,He.MINIMUM_VALUE),i.stackPartitions=j.getValueOrUndefined(t.stackPartitions,He.MINIMUM_VALUE),i.slicePartitions=j.getValueOrUndefined(t.slicePartitions,He.MINIMUM_VALUE),i.subdivisions=j.getValueOrUndefined(t.subdivisions,He.MINIMUM_VALUE),i.offsetAttribute=n!==We.NONE?nn.ALL:void 0};Ql.prototype._onEntityPropertyChanged=w_;Ql.DynamicGeometryUpdater=Pv;function Pv(e,t,n){ni.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new L,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}u(Object.create)&&(Pv.prototype=Object.create(ni.prototype),Pv.prototype.constructor=Pv);Pv.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!j.getValueOrDefault(n.show,e,!0)){u(this._primitive)&&(this._primitive.show=!1),u(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=j.getValueOrUndefined(n.radii,e,k7e),o=u(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!u(o)||!u(i)){u(this._primitive)&&(this._primitive.show=!1),u(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=j.getValueOrDefault(n.fill,e,!0),s=j.getValueOrDefault(n.outline,e,!1),a=j.getValueOrClonedDefault(n.outlineColor,e,z.BLACK,cW),c=$o.getValue(e,y(n.material,B7e),this._material),l=j.getValueOrUndefined(n.innerRadii,e,U7e),f=j.getValueOrUndefined(n.minimumClock,e),d=j.getValueOrUndefined(n.maximumClock,e),p=j.getValueOrUndefined(n.minimumCone,e),g=j.getValueOrUndefined(n.maximumCone,e),m=j.getValueOrUndefined(n.stackPartitions,e),x=j.getValueOrUndefined(n.slicePartitions,e),b=j.getValueOrUndefined(n.subdivisions,e),T=j.getValueOrDefault(n.outlineWidth,e,1),A=j.getValueOrDefault(n.heightReference,e,We.NONE),C=A!==We.NONE?nn.ALL:void 0,S=this._scene.mode,w=S===te.SCENE3D&&A===We.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),N=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),F=j.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,sW,aW);if(!w||this._lastSceneMode!==S||!u(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||u(l)&&!h.equals(D.innerRadii!==l)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==C){let E=this._primitives;if(E.removeAndDestroy(this._primitive),E.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=S,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=C,D.radii=h.clone(w?V7e:i,D.radii),u(l))if(w){let B=h.magnitude(i);D.innerRadii=h.fromElements(l.x/B,l.y/B,l.z/B,D.innerRadii)}else D.innerRadii=h.clone(l,D.innerRadii);else D.innerRadii=void 0;D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let v=new oo({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=v.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,w,this._modelMatrix);this._primitive=E.add(new Sn({geometryInstances:I,appearance:v,asynchronous:!1,shadows:O}));let M=this._geometryUpdater.createOutlineGeometryInstance(e,w,this._modelMatrix);this._outlinePrimitive=E.add(new Sn({geometryInstances:M,appearance:new on({flat:!0,translucent:M.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(T)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=z.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=N,this._lastOffset=h.clone(F,this._lastOffset)}else if(this._primitive.ready){let E=this._primitive,v=this._outlinePrimitive;E.show=!0,v.show=!0,E.appearance.material=c;let I=this._attributes;u(I)||(I=E.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=_n.toValue(r,I.show),this._lastShow=r);let M=this._outlineAttributes;u(M)||(M=v.getGeometryInstanceAttributes(t),this._outlineAttributes=M),s!==this._lastOutlineShow&&(M.show=_n.toValue(s,M.show),this._lastOutlineShow=s),z.equals(a,this._lastOutlineColor)||(M.color=kt.toValue(a,M.color),z.clone(a,this._lastOutlineColor)),wt.equals(N,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=kn.toValue(N,I.distanceDisplayCondition),M.distanceDisplayCondition=kn.toValue(N,M.distanceDisplayCondition),wt.clone(N,this._lastDistanceDisplayCondition)),h.equals(F,this._lastOffset)||(I.offset=Ki.toValue(F,I.offset),M.offset=Ki.toValue(F,I.offset),h.clone(F,this._lastOffset))}w&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=L.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var uB=Ql;function eC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}eC.packedLength=Pe.packedLength;eC.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),t};var Cce=new Pe,H7e={vertexFormat:Cce};eC.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,Cce);return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n):new eC(H7e)};var fB=new h(-.5,-.5,0),dB=new h(.5,.5,0);eC.createGeometry=function(e){let t=e._vertexFormat,n=new hn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=fB.x,o[1]=fB.y,o[2]=0,o[3]=dB.x,o[4]=fB.y,o[5]=0,o[6]=dB.x,o[7]=dB.y,o[8]=0,o[9]=fB.x,o[10]=dB.y,o[11]=0,n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new ct({attributes:n,indices:i,primitiveType:Le.TRIANGLES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var hB=eC;function tC(){this._workerName="createPlaneOutlineGeometry"}tC.packedLength=0;tC.pack=function(e,t){return t};tC.unpack=function(e,t,n){return u(n)?n:new tC};var Lg=new h(-.5,-.5,0),mB=new h(.5,.5,0);tC.createGeometry=function(){let e=new hn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=Lg.x,n[1]=Lg.y,n[2]=Lg.z,n[3]=mB.x,n[4]=Lg.y,n[5]=Lg.z,n[6]=mB.x,n[7]=mB.y,n[8]=Lg.z,n[9]=Lg.x,n[10]=mB.y,n[11]=Lg.z,e.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new ct({attributes:e,indices:t,primitiveType:Le.LINES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var pB=tC;var G7e=new h,Ece=new z;function W7e(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function lf(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new W7e(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}u(Object.create)&&(lf.prototype=Object.create(ii.prototype),lf.prototype.constructor=lf);lf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let g;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Ece)),u(g)||(g=z.WHITE),o=kt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,l=this._options,f=t.computeModelMatrix(e),d=j.getValueOrDefault(c.plane,e,l.plane),p=j.getValueOrUndefined(c.dimensions,e,l.dimensions);return l.plane=d,l.dimensions=p,f=lW(d,p,f,f),new yt({id:t,geometry:new hB(this._options),modelMatrix:f,attributes:i})};lf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Ece),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=j.getValueOrDefault(r.plane,e,s.plane),l=j.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=l,a=lW(c,l,a,a),new yt({id:t,geometry:new pB,modelMatrix:a,attributes:{show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};lf.prototype._isHidden=function(e,t){return!u(t.plane)||!u(t.dimensions)||!u(e.position)||ii.prototype._isHidden.call(this,e,t)};lf.prototype._getIsClosed=function(e){return!1};lf.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};lf.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=this._options;i.vertexFormat=n?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(He.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions)};lf.DynamicGeometryUpdater=nC;function nC(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(nC.prototype=Object.create(ni.prototype),nC.prototype.constructor=nC);nC.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,G7e);return!u(o)||!u(i.plane)||!u(i.dimensions)||ni.prototype._isHidden.call(this,e,t,n)};nC.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=j.getValueOrDefault(t.plane,n,i.plane),i.dimensions=j.getValueOrUndefined(t.dimensions,n,i.dimensions)};var j7e=new h,q7e=new h,Y7e=new h,X7e=new h,K7e=new $,Z7e=new $,$7e=new L;function lW(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,Y7e),a=h.clone(h.UNIT_Z,q7e);P.equalsEpsilon(Math.abs(h.dot(a,o)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,j7e);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let l=K7e;$.setColumn(l,0,c,l),$.setColumn(l,1,a,l),$.setColumn(l,2,o,l);let f=h.fromElements(t.x,t.y,1,X7e),d=$.multiplyByScale(l,f,Z7e),p=L.fromRotationTranslation(d,s,$7e);return L.multiplyTransformation(n,p,i)}lf.createPrimitiveMatrix=lW;var _B=lf;var Q7e=new h,J7e=new qe,eqe=new V,tqe=new V,nqe=new h,iqe=new h,oqe=new h,Ov=new h,rqe=new h,sqe=new h,Sce=new Ne,aqe=new $,cqe=new $,lqe=new h;function uqe(e,t,n,i,o,r,s,a,c){let l=e.positions,f=ri.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=ke.createTypedArray(l.length,f.length);d.set(f);let p=aqe;if(i!==0){let _=Ne.fromAxisAngle(s,i,Sce);if(p=$.fromQuaternion(_,p),t.tangent||t.bitangent){_=Ne.fromAxisAngle(s,-i,Sce);let E=$.fromQuaternion(_,cqe);a=h.normalize($.multiplyByVector(E,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let g=tqe;t.st&&(g.x=n.x,g.y=n.y);let m=l.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,A=t.tangent?new Float32Array(x):void 0,C=t.bitangent?new Float32Array(x):void 0,S=t.st?new Float32Array(m*2):void 0,w=0,D=0,O=0,R=0,N=0;for(let _=0;_<m;_++){let E=l[_];if(b[w++]=E.x,b[w++]=E.y,b[w++]=E.z,t.st)if(u(o)&&o.positions.length===m)S[N++]=o.positions[_].x,S[N++]=o.positions[_].y;else{let v=$.multiplyByVector(p,E,Q7e),I=r(v,eqe);V.subtract(I,g,I);let M=P.clamp(I.x/n.width,0,1),B=P.clamp(I.y/n.height,0,1);S[N++]=M,S[N++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(A[R++]=a.x,A[R++]=a.y,A[R++]=a.z),t.bitangent&&(C[O++]=c.x,C[O++]=c.y,C[O++]=c.z)}let F=new hn;return t.position&&(F.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(F.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(F.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(F.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.st&&(F.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:S})),new ct({attributes:F,indices:d,primitiveType:Le.TRIANGLES})}function dx(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=Pe.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=zn.computeHierarchyPackedLength(t,h)+Pe.packedLength+ie.packedLength+(u(n)?zn.computeHierarchyPackedLength(n,V):1)+2}dx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new dx(t)};dx.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._stRotation,u(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,V):t[n++]=-1,t[n++]=e.packedLength,t};var fqe=ie.clone(ie.UNIT_SPHERE),dqe=new Pe,hqe={polygonHierarchy:{}};dx.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,fqe);t+=ie.packedLength;let r=Pe.unpack(e,t,dqe);t+=Pe.packedLength;let s=e[t++],a=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,V);u(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return u(n)||(n=new dx(hqe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};dx.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=u(o),s=n.positions;if(s=go(s,h.equalsEpsilon,!0),s.length<3)return;let a=nqe,c=iqe,l=oqe,f=rqe,d=sqe;if(!ug.computeProjectTo2DArguments(s,Ov,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(Ov,h.ZERO,P.EPSILON6)){let N=e._ellipsoid.geodeticSurfaceNormal(Ov,lqe);h.dot(a,N)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=ug.createProjectPointsTo2DFunction(Ov,f,d),m=ug.createProjectPointTo2DFunction(Ov,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(l=h.clone(d,l));let x=zn.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,A=function(N){return N},C=r?zn.polygonsFromHierarchy(o,!0,A,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let S=se.fromPoints(s),w=zn.computeBoundingRectangle(a,m,s,i,J7e),D=[];for(let N=0;N<T.length;N++){let F=new yt({geometry:uqe(T[N],t,w,i,r?C[N]:void 0,m,a,c,l)});D.push(F)}let O=Fn.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=ke.createTypedArray(O.attributes.position.values.length/3,O.indices);let R=O.attributes;return t.position||delete R.position,new ct({attributes:R,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:S})};var gB=dx;function Er(e,t){this.position=e,u(this.position)||(this.position=new V),this.tangentPlane=t,u(this.tangentPlane)||(this.tangentPlane=Er.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(Er.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let e=V.magnitude(this.position),t=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(P.PI_OVER_TWO-2*Math.atan2(e,t))}},longitude:{get:function(){let e=P.PI_OVER_TWO+Math.atan2(this.y,this.x);return e>Math.PI&&(e-=P.TWO_PI),e}}});var iC=new fe,mqe=new h;Er.prototype.getLatitude=function(e){u(e)||(e=ie.WGS84),iC.latitude=this.conformalLatitude,iC.longitude=this.longitude,iC.height=0;let t=this.ellipsoid.cartographicToCartesian(iC,mqe);return e.cartesianToCartographic(t,iC),iC.latitude};var pqe=new Cn,_qe=new h,gqe=new h;Er.fromCartesian=function(e,t){let n=P.signNotZero(e.z),i=Er.NORTH_POLE_TANGENT_PLANE,o=Er.SOUTH_POLE;n<0&&(i=Er.SOUTH_POLE_TANGENT_PLANE,o=Er.NORTH_POLE);let r=pqe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,_qe),h.normalize(r.direction,r.direction);let s=Ei.rayPlane(r,i.plane,gqe),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),l=n*h.dot(i.yAxis,a);return u(t)?(t.position=new V(c,l),t.tangentPlane=i,t):new Er(new V(c,l),i)};Er.fromCartesianArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=Er.fromCartesian(e[i],t[i]);return t};Er.clone=function(e,t){if(u(e))return u(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new Er(e.position,e.tangentPlane)};Er.HALF_UNIT_SPHERE=Object.freeze(new ie(.5,.5,.5));Er.NORTH_POLE=Object.freeze(new h(0,0,.5));Er.SOUTH_POLE=Object.freeze(new h(0,0,-.5));Er.NORTH_POLE_TANGENT_PLANE=Object.freeze(new Ir(Er.NORTH_POLE,Er.HALF_UNIT_SPHERE));Er.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new Ir(Er.SOUTH_POLE,Er.HALF_UNIT_SPHERE));var Sc=Er;var yqe=new fe,wce=new fe;function xqe(e,t,n,i){let r=i.cartesianToCartographic(e,yqe).height,s=i.cartesianToCartographic(t,wce);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,wce);a.height=r-100,i.cartographicToCartesian(a,n)}var vce=new qe,bqe=new h,Tqe=new h,Aqe=new h,Cqe=new h,Eqe=new h,Sqe=new h,yB=new h,qh=new h,oC=new h,wqe=new V,vqe=new V,Dqe=new h,Dce=new Ne,Iqe=new $,Pqe=new $;function uW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=u(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,l=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.rotationAxis,p=e.projectTo2d,g=e.ellipsoid,m=e.stRotation,x=e.perPositionHeight,b=wqe;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,A;t.normal&&(x&&c&&!a?A=n.attributes.normal.values:A=new Float32Array(s));let C=t.tangent?new Float32Array(s):void 0,S=t.bitangent?new Float32Array(s):void 0,w=i?new Float32Array(s):void 0,D=0,O=0,R=Tqe,N=Aqe,F=Cqe,_=!0,E=Iqe,v=Pqe;if(m!==0){let B=Ne.fromAxisAngle(d,m,Dce);E=$.fromQuaternion(B,E),B=Ne.fromAxisAngle(d,-m,Dce),v=$.fromQuaternion(B,v)}else E=$.clone($.IDENTITY,E),v=$.clone($.IDENTITY,v);let I=0,M=0;c&&l&&(I=s/2,M=s/3,s/=2);for(let B=0;B<s;B+=3){let H=h.fromArray(o,B,Dqe);if(t.st&&!u(r)){let U=$.multiplyByVector(E,H,bqe);U=g.scaleToGeodeticSurface(U,U);let G=p(U,vqe);V.subtract(G,b,G);let k=P.clamp(G.x/f.width,0,1),Y=P.clamp(G.y/f.height,0,1);l&&(T[D+M]=k,T[D+1+M]=Y),c&&(T[D]=k,T[D+1]=Y),D+=2}if(t.normal||t.tangent||t.bitangent||i){let U=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,Eqe);if(_){let Y=h.fromArray(o,B+s,Sqe);x&&xqe(H,k,Y,g),h.subtract(k,H,k),h.subtract(Y,H,Y),R=h.normalize(h.cross(Y,k,R),R),_=!1}h.equalsEpsilon(k,H,P.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(F=g.geodeticSurfaceNormal(H,F),t.tangent&&(N=h.normalize(h.cross(F,R,N),N)))}else R=g.geodeticSurfaceNormal(H,R),(t.tangent||t.bitangent)&&(x&&(yB=h.fromArray(A,O,yB),qh=h.cross(h.UNIT_Z,yB,qh),qh=h.normalize($.multiplyByVector(v,qh,qh),qh),t.bitangent&&(oC=h.normalize(h.cross(yB,qh,oC),oC))),N=h.cross(h.UNIT_Z,R,N),N=h.normalize($.multiplyByVector(v,N,N),N),t.bitangent&&(F=h.normalize(h.cross(R,N,F),F)));t.normal&&(e.wall?(A[O+I]=R.x,A[U+I]=R.y,A[G+I]=R.z):l&&(A[O+I]=-R.x,A[U+I]=-R.y,A[G+I]=-R.z),(c&&!x||a)&&(A[O]=R.x,A[U]=R.y,A[G]=R.z)),i&&(a&&(R=g.geodeticSurfaceNormal(H,R)),w[O+I]=-R.x,w[U+I]=-R.y,w[G+I]=-R.z),t.tangent&&(e.wall?(C[O+I]=N.x,C[U+I]=N.y,C[G+I]=N.z):l&&(C[O+I]=-N.x,C[U+I]=-N.y,C[G+I]=-N.z),c&&(x?(C[O]=qh.x,C[U]=qh.y,C[G]=qh.z):(C[O]=N.x,C[U]=N.y,C[G]=N.z))),t.bitangent&&(l&&(S[O+I]=F.x,S[U+I]=F.y,S[G+I]=F.z),c&&(x?(S[O]=oC.x,S[U]=oC.y,S[G]=oC.z):(S[O]=F.x,S[U]=F.y,S[G]=F.z))),O+=3}}t.st&&!u(r)&&(n.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T})),t.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:S})),i&&(n.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:w}))}if(e.extrude&&u(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===nn.TOP)c&&l||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===nn.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var Oqe=new fe,Rqe=new fe,Ng={westOverIDL:0,eastOverIDL:0},rC=new Gf;function Mqe(e,t,n,i,o){if(o=y(o,new ce),!u(e)||e.length<3)return o.west=0,o.north=0,o.south=0,o.east=0,o;if(n===Yt.RHUMB)return ce.fromCartesianArray(e,t,o);rC.ellipsoid.equals(t)||(rC=new Gf(void 0,void 0,t)),o.west=Number.POSITIVE_INFINITY,o.east=Number.NEGATIVE_INFINITY,o.south=Number.POSITIVE_INFINITY,o.north=Number.NEGATIVE_INFINITY,Ng.westOverIDL=Number.POSITIVE_INFINITY,Ng.eastOverIDL=Number.NEGATIVE_INFINITY;let r=1/P.chordLength(i,t.maximumRadius),s=e.length,a=t.cartesianToCartographic(e[0],Rqe),c=Oqe,l;for(let f=1;f<s;f++)l=c,c=a,a=t.cartesianToCartographic(e[f],l),rC.setEndPoints(c,a),Ice(rC,r,o,Ng);return l=c,c=a,a=t.cartesianToCartographic(e[0],l),rC.setEndPoints(c,a),Ice(rC,r,o,Ng),o.east-o.west>Ng.eastOverIDL-Ng.westOverIDL&&(o.west=Ng.westOverIDL,o.east=Ng.eastOverIDL,o.east>P.PI&&(o.east=o.east-P.TWO_PI),o.west>P.PI&&(o.west=o.west-P.TWO_PI)),o}var Lqe=new fe;function Ice(e,t,n,i){let o=e.surfaceDistance,r=Math.ceil(o*t),s=r>0?o/(r-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c<r;c++){let l=e.interpolateUsingSurfaceDistance(a,Lqe);a+=s;let f=l.longitude,d=l.latitude;n.west=Math.min(n.west,f),n.east=Math.max(n.east,f),n.south=Math.min(n.south,d),n.north=Math.max(n.north,d);let p=f>=0?f:f+P.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var Pce=[];function Nqe(e,t,n,i,o,r,s,a,c,l){let f={walls:[]},d;if(s||a){let A=zn.createGeometryFromPositions(e,t,n,i,r,c,l),C=A.attributes.position.values,S=A.indices,w,D;if(s&&a){let O=C.concat(C);w=O.length/3,D=ke.createTypedArray(w,S.length*2),D.set(S);let R=S.length,N=w/2;for(d=0;d<R;d+=3){let F=D[d]+N,_=D[d+1]+N,E=D[d+2]+N;D[d+R]=E,D[d+1+R]=_,D[d+2+R]=F}if(A.attributes.position.values=O,r&&c.normal){let F=A.attributes.normal.values;A.attributes.normal.values=new Float32Array(O.length),A.attributes.normal.values.set(F)}if(c.st&&u(n)){let F=A.attributes.st.values;A.attributes.st.values=new Float32Array(w*2),A.attributes.st.values=F.concat(F)}A.indices=D}else if(a){for(w=C.length/3,D=ke.createTypedArray(w,S.length),d=0;d<S.length;d+=3)D[d]=S[d+2],D[d+1]=S[d+1],D[d+2]=S[d];A.indices=D}f.topAndBottom=new yt({geometry:A})}let p=o.outerRing,g=Ir.fromPoints(p,e),m=g.projectPointsOntoPlane(p,Pce),x=ri.computeWindingOrder2D(m);x===Jr.CLOCKWISE&&(p=p.slice().reverse());let b=zn.computeWallGeometry(p,n,e,i,r,l);f.walls.push(new yt({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let A=T[d];g=Ir.fromPoints(A,e),m=g.projectPointsOntoPlane(A,Pce),x=ri.computeWindingOrder2D(m),x===Jr.COUNTER_CLOCKWISE&&(A=A.slice().reverse()),b=zn.computeWallGeometry(A,n,e,i,r,l),f.walls.push(new yt({geometry:b}))}return f}function Jl(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Pe.DEFAULT),i=y(e.ellipsoid,ie.WGS84),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&u(e.extrudedHeight),l=y(e.height,0),f=y(e.extrudedHeight,l);if(!c){let d=Math.max(l,f);f=Math.min(l,f),l=d}this._vertexFormat=Pe.clone(n),this._ellipsoid=ie.clone(i),this._granularity=o,this._stRotation=r,this._height=l,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,Yt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=zn.computeHierarchyPackedLength(t,h)+ie.packedLength+Pe.packedLength+(s?zn.computeHierarchyPackedLength(s,V):1)+12}Jl.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new Jl(t)};Jl.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,u(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,V):t[n++]=-1,t[n++]=e.packedLength,t};var Fqe=ie.clone(ie.UNIT_SPHERE),Bqe=new Pe,kqe={polygonHierarchy:{}};Jl.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,Fqe);t+=ie.packedLength;let r=Pe.unpack(e,t,Bqe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,m=e[t++]===1,x=e[t++],b=e[t++],T=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,V);u(T)?(t=T.startingIndex,delete T.startingIndex):t++;let A=e[t++];return u(n)||(n=new Jl(kqe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=l,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=m,n._offsetAttribute=x===-1?void 0:x,n._arcType=b,n._textureCoordinates=T,n.packedLength=A,n};var Uqe=new V,Vqe=new V,zqe=new Sc;function Oce(e,t,n,i,o,r){let s=e.longitude,a=s>=0?s:s+P.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),l=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==Yt.RHUMB){let p=V.subtract(t.position,e.position,Uqe),g=V.dot(t.position,p)/V.dot(p,p);if(g>0&&g<1){let m=V.add(t.position,V.multiplyByScalar(p,-g,p),Vqe),x=Sc.clone(t,zqe);x.position=m;let b=x.getLatitude(n);r.south=Math.min(r.south,b),r.north=Math.max(r.north,b),Math.abs(c)>Math.abs(b)&&(l=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=V.angleBetween(t.position,e.position)),l>=0&&(o.northAngle+=d),l<=0&&(o.southAngle+=d)}var Rce=new Sc,Hqe=new Sc,uf={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Jl.computeRectangleFromPositions=function(e,t,n,i){if(u(i)||(i=new ce),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,uf.northAngle=0,uf.southAngle=0,uf.westOverIdl=Number.POSITIVE_INFINITY,uf.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=Sc.fromCartesian(e[0],Hqe);for(let s=1;s<o;s++){let a=Sc.fromCartesian(e[s],Rce);Oce(a,r,t,n,uf,i),r=Sc.clone(a,r)}return Oce(Sc.fromCartesian(e[0],Rce),r,t,n,uf,i),i.east-i.west>uf.eastOverIdl-uf.westOverIdl&&(i.west=uf.westOverIdl,i.east=uf.eastOverIdl,i.east>P.PI&&(i.east=i.east-P.TWO_PI),i.west>P.PI&&(i.west=i.west-P.TWO_PI)),P.equalsEpsilon(Math.abs(uf.northAngle),P.TWO_PI,P.EPSILON10)&&(i.north=P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),P.equalsEpsilon(Math.abs(uf.southAngle),P.TWO_PI,P.EPSILON10)&&(i.south=-P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),i};Jl.computeRectangle=function(e,t){es("PolygonGeometry.computeRectangle","PolygonGeometry.computeRectangle was deprecated in CesiumJS 1.110. It will be removed in CesiumJS 1.112. Use PolygonGeometry.computeRectangleFromPositions instead.");let n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.arcType,Yt.GEODESIC),o=e.polygonHierarchy,r=y(e.ellipsoid,ie.WGS84);return Mqe(o.positions,r,i,n,t)};var Gqe=new Sc;function Wqe(e,t,n){return e.height>=P.PI||e.width>=P.PI?Sc.fromCartesian(t[0],Gqe).tangentPlane:Ir.fromPoints(t,n)}var Mce=new fe;function jqe(e,t){return(n,i)=>{if(e.height>=P.PI||e.width>=P.PI){if(e.south<0&&e.north>0){u(i)||(i=[]);for(let r=0;r<n.length;++r){let s=t.cartesianToCartographic(n[r],Mce);i[r]=new V(s.longitude/P.PI,s.latitude/P.PI_OVER_TWO)}return i.length=n.length,i}return Sc.fromCartesianArray(n,i)}return Ir.fromPoints(n,t).projectPointsOntoPlane(n,i)}}function qqe(e,t,n){if(e.height>=P.PI||e.width>=P.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Mce);return u(r)||(r=new V),r.x=s.longitude/P.PI,r.y=s.latitude/P.PI_OVER_TWO,r}return Sc.fromCartesian(o,r)};let i=Ir.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function Yqe(e,t,n,i){return(o,r)=>!i&&(e.height>=P.PI_OVER_TWO||e.width>=2*P.PI_OVER_THREE)?zn.splitPolygonsOnEquator(o,t,n,r):o}function Xqe(e,t,n,i){if(t.height>=P.PI||t.width>=P.PI)return qe.fromRectangle(t,void 0,vce);let o=e,r=Ir.fromPoints(o,n);return zn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,vce)}Jl.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,l=e._arcType,f=e._textureCoordinates,d=u(f);if(r.positions.length<3)return;let g=e.rectangle,m=zn.polygonsFromHierarchy(r,d,jqe(g,n),!s,n,Yqe(g,n,l,s)),x=m.hierarchy,b=m.polygons,T=function(I){return I},A=d?zn.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let C=x[0].outerRing,S=Xqe(C,g,n,o),w=[],D=e._height,O=e._extrudedHeight,R=e._perPositionHeightExtrude||!P.equalsEpsilon(D,O,0,P.EPSILON2),N={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:Wqe(g,C,n).plane.normal,projectTo2d:qqe(g,C,n),boundingRectangle:S,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:l},F;if(R)for(N.extrude=!0,N.top=a,N.bottom=c,N.shadowVolume=e._shadowVolume,N.offsetAttribute=e._offsetAttribute,F=0;F<b.length;F++){let I=Nqe(n,b[F],d?A[F]:void 0,i,x[F],s,a,c,t,l),M;a&&c?(M=I.topAndBottom,N.geometry=zn.scaleToGeodeticHeightExtruded(M.geometry,D,O,n,s)):a?(M=I.topAndBottom,M.geometry.attributes.position.values=ri.scaleToGeodeticHeight(M.geometry.attributes.position.values,D,n,!s),N.geometry=M.geometry):c&&(M=I.topAndBottom,M.geometry.attributes.position.values=ri.scaleToGeodeticHeight(M.geometry.attributes.position.values,O,n,!0),N.geometry=M.geometry),(a||c)&&(N.wall=!1,M.geometry=uW(N),w.push(M));let B=I.walls;N.wall=!0;for(let H=0;H<B.length;H++){let U=B[H];N.geometry=zn.scaleToGeodeticHeightExtruded(U.geometry,D,O,n,s),U.geometry=uW(N),w.push(U)}}else for(F=0;F<b.length;F++){let I=new yt({geometry:zn.createGeometryFromPositions(n,b[F],d?A[F]:void 0,i,s,t,l)});if(I.geometry.attributes.position.values=ri.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!s),N.geometry=I.geometry,I.geometry=uW(N),u(e._offsetAttribute)){let M=I.geometry.attributes.position.values.length,B=e._offsetAttribute===nn.NONE?0:1,H=new Uint8Array(M/3).fill(B);I.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:H})}w.push(I)}let _=Fn.combineInstances(w)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=ke.createTypedArray(_.attributes.position.values.length/3,_.indices);let E=_.attributes,v=se.fromVertices(E.position.values);return t.position||delete E.position,new ct({attributes:E,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:v,offsetAttribute:e._offsetAttribute})};Jl.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Jl({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function Kqe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,o=e.rectangle;return ct._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(Jl.prototype,{rectangle:{get:function(){if(!u(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Jl.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=Kqe(this)),this._textureCoordinateRotationPoints}}});var sC=Jl;var Lce=[],xB=[];function Zqe(e,t,n,i,o){let s=Ir.fromPoints(t,e).projectPointsOntoPlane(t,Lce);ri.computeWindingOrder2D(s)===Jr.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),l=0;l<f;l++){let m=t[l],x=t[(l+1)%f];c[d++]=m.x,c[d++]=m.y,c[d++]=m.z,c[d++]=x.x,c[d++]=x.y,c[d++]=x.z}else{let m=0;if(o===Yt.GEODESIC)for(l=0;l<f;l++)m+=zn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(o===Yt.RHUMB)for(l=0;l<f;l++)m+=zn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(m*3),l=0;l<f;l++){let x;o===Yt.GEODESIC?x=zn.subdivideLine(t[l],t[(l+1)%f],n,xB):o===Yt.RHUMB&&(x=zn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,xB));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=ke.createTypedArray(f,p);for(d=0,l=0;l<f-1;l++)g[d++]=l,g[d++]=l+1;return g[d++]=f-1,g[d++]=0,new yt({geometry:new ct({attributes:new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Le.LINES})})}function $qe(e,t,n,i,o){let s=Ir.fromPoints(t,e).projectPointsOntoPlane(t,Lce);ri.computeWindingOrder2D(s)===Jr.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),l=0;l<f;++l){d[l]=p/3;let b=t[l],T=t[(l+1)%f];c[p++]=b.x,c[p++]=b.y,c[p++]=b.z,c[p++]=T.x,c[p++]=T.y,c[p++]=T.z}else{let b=0;if(o===Yt.GEODESIC)for(l=0;l<f;l++)b+=zn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(o===Yt.RHUMB)for(l=0;l<f;l++)b+=zn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(b*3*2),l=0;l<f;++l){d[l]=p/3;let T;o===Yt.GEODESIC?T=zn.subdivideLine(t[l],t[(l+1)%f],n,xB):o===Yt.RHUMB&&(T=zn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,xB));let A=T.length;for(let C=0;C<A;++C)c[p++]=T[C]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=ke.createTypedArray(f+g,m);for(p=0,l=0;l<f;++l)x[p++]=l,x[p++]=(l+1)%f,x[p++]=l+f,x[p++]=(l+1)%f+f;for(l=0;l<g;l++){let b=d[l];x[p++]=b,x[p++]=b+f}return new yt({geometry:new ct({attributes:new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Le.LINES})})}function hx(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,ie.WGS84),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&u(e.extrudedHeight),s=y(e.arcType,Yt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let l=Math.max(a,c);c=Math.min(a,c),a=l}this._ellipsoid=ie.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+ie.packedLength+8}hx.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var Qqe=ie.clone(ie.UNIT_SPHERE),Jqe={polygonHierarchy:{}};hx.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,Qqe);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,l=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return u(n)||(n=new hx(Jqe)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=l,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};hx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new hx(t)};hx.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=zn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],l=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=$qe(t,s[m],l,o,r),a.geometry=zn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),u(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,A=new Uint8Array(T);e._offsetAttribute===nn.TOP?A=A.fill(1,0,T/2):(g=e._offsetAttribute===nn.NONE?0:1,A=A.fill(g)),a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}else for(m=0;m<s.length;m++){if(a=Zqe(t,s[m],l,o,r),a.geometry.attributes.position.values=ri.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),u(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===nn.NONE?0:1;let A=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}let x=Fn.combineInstances(c)[0],b=se.fromVertices(x.attributes.position.values);return new ct({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var bB=hx;var Nce="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Fce="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Bce=new z,kce=h.ZERO,Uce=new h,Vce=new ce,eYe=[],tYe=new V;function nYe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function eu(e,t){qn.call(this,{entity:e,scene:t,geometryOptions:new nYe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}u(Object.create)&&(eu.prototype=Object.create(qn.prototype),eu.prototype.constructor=eu);eu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let s;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Bce)),u(s)||(s=z.WHITE),o.color=kt.fromColor(s)}u(i.offsetAttribute)&&(o.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,kce,Uce)));let r;return i.perPositionHeight&&!u(i.extrudedHeight)?r=new gB(i):r=new sC(i),new yt({id:t,geometry:r,attributes:o})};eu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Bce),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(o),distanceDisplayCondition:kn.fromDistanceDisplayCondition(r),offset:void 0};u(i.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,kce,Uce)));let a;return i.perPositionHeight&&!u(i.extrudedHeight)?a=new cd(i):a=new bB(i),new yt({id:t,geometry:a,attributes:s})};eu.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!u(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.mapProjection.ellipsoid,r=Ir.fromPoints(i,o),s=r.projectPointsOntoPlane(i,eYe),a=s.length,c=0,l=a-1,f=new V;for(let p=0;p<a;l=p++){let g=s[p],m=s[l],x=g.x*m.y-m.x*g.y,b=V.add(g,m,tYe);b=V.multiplyByScalar(b,x,b),f=V.add(f,b,f),c+=x}let d=1/(c*3);return f=V.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};eu.prototype._isHidden=function(e,t){return!u(t.hierarchy)||ii.prototype._isHidden.call(this,e,t)};eu.prototype._isOnTerrain=function(e,t){let n=qn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=u(i)&&(i.isConstant?i.getValue(He.MINIMUM_VALUE):!0);return n&&!o};eu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.textureCoordinates)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.perPositionHeight)||!j.isConstant(t.closeTop)||!j.isConstant(t.closeBottom)||!j.isConstant(t.zIndex)||!j.isConstant(t.arcType)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Nt)};eu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=this._options;i.vertexFormat=n?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(He.MINIMUM_VALUE),r=j.getValueOrUndefined(t.height,He.MINIMUM_VALUE),s=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),a=j.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),c=j.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,We.NONE),l=j.getValueOrDefault(t.perPositionHeight,He.MINIMUM_VALUE,!1);r=qn.getGeometryHeight(r,s);let f;l?(u(r)&&(r=void 0,It(Nce)),s!==We.NONE&&l&&(r=void 0,It(Fce))):(u(a)&&!u(r)&&(r=0),f=qn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=j.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),i.stRotation=j.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),i.perPositionHeight=l,i.closeTop=j.getValueOrDefault(t.closeTop,He.MINIMUM_VALUE,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,He.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=j.getValueOrDefault(t.arcType,He.MINIMUM_VALUE,Yt.GEODESIC),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,He.MINIMUM_VALUE),a=qn.getGeometryExtrudedHeight(a,c),a===qn.CLAMP_TO_GROUND&&(a=li.getMinimumMaximumHeights(sC.computeRectangle(i,Vce)).minimumTerrainHeight),i.extrudedHeight=a};eu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=u(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};eu.DynamicGeometryUpdater=aC;function aC(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(aC.prototype=Object.create(ni.prototype),aC.prototype.constructor=aC);aC.prototype._isHidden=function(e,t,n){return!u(this._options.polygonHierarchy)||ni.prototype._isHidden.call(this,e,t,n)};aC.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=j.getValueOrUndefined(t.hierarchy,n);let o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,We.NONE),s=j.getValueOrDefault(t.extrudedHeightReference,n,We.NONE),a=j.getValueOrUndefined(t.extrudedHeight,n),c=j.getValueOrUndefined(t.perPositionHeight,n);o=qn.getGeometryHeight(o,s);let l;c?(u(o)&&(o=void 0,It(Nce)),r!==We.NONE&&c&&(o=void 0,It(Fce))):(u(a)&&!u(o)&&(o=0),l=qn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=j.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=j.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=l,i.height=o,i.arcType=j.getValueOrDefault(t.arcType,n,Yt.GEODESIC),a=qn.getGeometryExtrudedHeight(a,s),a===qn.CLAMP_TO_GROUND&&(a=li.getMinimumMaximumHeights(sC.computeRectangle(i,Vce)).minimumTerrainHeight),i.extrudedHeight=a};var TB=eu;function iYe(e,t,n,i){let o=new hn;i.position&&(o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=ri.triangulate(t),l=(a-1)*r*6+c.length*2,f=ke.createTypedArray(s,l),d,p,g,m,x,b,T=r*2,A=0;for(d=0;d<a-1;d++){for(p=0;p<r-1;p++)g=p*2+d*r*2,b=g+T,m=g+1,x=m+T,f[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b}if(i.st||i.tangent||i.bitangent){let w=new Float32Array(s*2),D=1/(a-1),O=1/n.height,R=n.height/2,N,F,_=0;for(d=0;d<a;d++){for(N=d*D,F=O*(t[0].y+R),w[_++]=N,w[_++]=F,p=1;p<r;p++)F=O*(t[p].y+R),w[_++]=N,w[_++]=F,w[_++]=N,w[_++]=F;F=O*(t[0].y+R),w[_++]=N,w[_++]=F}for(p=0;p<r;p++)N=0,F=O*(t[p].y+R),w[_++]=N,w[_++]=F;for(p=0;p<r;p++)N=(a-1)*D,F=O*(t[p].y+R),w[_++]=N,w[_++]=F;o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(w)})}let C=s-r*2;for(d=0;d<c.length;d+=3){let w=c[d]+C,D=c[d+1]+C,O=c[d+2]+C;f[A++]=w,f[A++]=D,f[A++]=O,f[A++]=O+r,f[A++]=D+r,f[A++]=w+r}let S=new ct({attributes:o,indices:f,boundingSphere:se.fromVertices(e),primitiveType:Le.TRIANGLES});if(i.normal&&(S=Fn.computeNormal(S)),i.tangent||i.bitangent){try{S=Fn.computeTangentAndBitangent(S)}catch{It("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(S.attributes.tangent=void 0),i.bitangent||(S.attributes.bitangent=void 0),i.st||(S.attributes.st=void 0)}return S}function Mv(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._cornerType=y(e.cornerType,Li.ROUNDED),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*V.packedLength,this.packedLength=i+ie.packedLength+Pe.packedLength+2}Mv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=V.packedLength)V.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var zce=ie.clone(ie.UNIT_SPHERE),Hce=new Pe,Rv={polylinePositions:void 0,shapePositions:void 0,ellipsoid:zce,vertexFormat:Hce,cornerType:void 0,granularity:void 0};Mv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=V.packedLength)s[i]=V.unpack(e,t);let a=ie.unpack(e,t,zce);t+=ie.packedLength;let c=Pe.unpack(e,t,Hce);t+=Pe.packedLength;let l=e[t++],f=e[t];return u(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._cornerType=l,n._granularity=f,n):(Rv.polylinePositions=r,Rv.shapePositions=s,Rv.cornerType=l,Rv.granularity=f,new Mv(Rv))};var oYe=new qe;Mv.createGeometry=function(e){let t=e._positions,n=go(t,h.equalsEpsilon),i=e._shape;if(i=kh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===Jr.CLOCKWISE&&i.reverse();let o=qe.fromPoints(i,oYe),r=kh.computePositions(n,i,o,e,!0);return iYe(r,i,o,e._vertexFormat)};var AB=Mv;function rYe(e,t){let n=new hn;n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=ke.createTypedArray(o,2*i*(s+1)),c,l,f=0;c=0;let d=c*i;for(l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,m=g+i;for(l=0;l<i;l++)a[f++]=l+g,a[f++]=l+m}return new ct({attributes:n,indices:ke.createTypedArray(o,a),boundingSphere:se.fromVertices(e),primitiveType:Le.LINES})}function Nv(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._cornerType=y(e.cornerType,Li.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*V.packedLength,this.packedLength=i+ie.packedLength+2}Nv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=V.packedLength)V.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Gce=ie.clone(ie.UNIT_SPHERE),Lv={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Gce,height:void 0,cornerType:void 0,granularity:void 0};Nv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=V.packedLength)s[i]=V.unpack(e,t);let a=ie.unpack(e,t,Gce);t+=ie.packedLength;let c=e[t++],l=e[t];return u(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=l,n):(Lv.polylinePositions=r,Lv.shapePositions=s,Lv.cornerType=c,Lv.granularity=l,new Nv(Lv))};var sYe=new qe;Nv.createGeometry=function(e){let t=e._positions,n=go(t,h.equalsEpsilon),i=e._shape;if(i=kh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===Jr.CLOCKWISE&&i.reverse();let o=qe.fromPoints(i,sYe),r=kh.computePositions(n,i,o,e,!1);return rYe(r,i)};var CB=Nv;var Wce=new z;function aYe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function Yh(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new aYe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}u(Object.create)&&(Yh.prototype=Object.create(ii.prototype),Yh.prototype.constructor=Yh);Yh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Wce)),u(c)||(c=z.WHITE),o=kt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new yt({id:t,geometry:new AB(this._options),attributes:i})};Yh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Wce),o=this._distanceDisplayConditionProperty.getValue(e);return new yt({id:t,geometry:new CB(this._options),attributes:{show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Yh.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.shape)||ii.prototype._isHidden.call(this,e,t)};Yh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!j.isConstant(t.granularity)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)};Yh.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Nt;o.vertexFormat=r?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(He.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(He.MINIMUM_VALUE,o.shape),o.granularity=u(n)?n.getValue(He.MINIMUM_VALUE):void 0,o.cornerType=u(i)?i.getValue(He.MINIMUM_VALUE):void 0};Yh.DynamicGeometryUpdater=cC;function cC(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(cC.prototype=Object.create(ni.prototype),cC.prototype.constructor=cC);cC.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.polylinePositions)||!u(i.shapePositions)||ni.prototype._isHidden.call(this,e,t,n)};cC.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=j.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=j.getValueOrUndefined(t.shape,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n)};var EB=Yh;var fW=new h,Yce=new h,Xce=new h,Kce=new h,Zce=new ce,cYe=new V,lYe=new se,uYe=new se;function $ce(e,t){let n=new ct({attributes:new hn,primitiveType:Le.TRIANGLES});return n.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function fYe(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,l=Kce,f=Xce,d=Yce;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,fW),m=c+1,x=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),$.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,l),l)),t.normal&&(r[c]=d.x,r[m]=d.y,r[x]=d.z),t.tangent&&(s[c]=f.x,s[m]=f.y,s[x]=f.z),t.bitangent&&(a[c]=l.x,a[m]=l.y,a[x]=l.z),c+=3}return $ce(t,{positions:e,normals:r,tangents:s,bitangents:a})}var dW=new h,Qce=new h;function dYe(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,l=0,f=!0,d=Kce,p=Xce,g=Yce;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,fW),b=h.fromArray(e,(m+6)%i,dW);if(f){let T=h.fromArray(e,(m+3)%i,Qce);h.subtract(b,x,b),h.subtract(T,x,T),g=h.normalize(h.cross(T,b,g),g),f=!1}h.equalsEpsilon(b,x,P.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(x,d),t.tangent&&(p=h.normalize(h.cross(d,g,p),p))),t.normal&&(o[a++]=g.x,o[a++]=g.y,o[a++]=g.z,o[a++]=g.x,o[a++]=g.y,o[a++]=g.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[l++]=d.x,s[l++]=d.y,s[l++]=d.z,s[l++]=d.x,s[l++]=d.y,s[l++]=d.z)}return $ce(t,{positions:e,normals:o,tangents:r,bitangents:s})}function Jce(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,l=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(l-=1,f-=1,d+=1),d+=r*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,m=0,x=0,b=fW,T=cYe,A=Number.MAX_VALUE,C=Number.MAX_VALUE,S=-Number.MAX_VALUE,w=-Number.MAX_VALUE;for(let E=c;E<l;++E)for(let v=0;v<r;++v)Es.computePosition(t,i,n.st,E,v,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),w=Math.max(w,T.y));if(s&&(Es.computePosition(t,i,n.st,0,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,A=T.x,C=T.y,S=T.x,w=T.y)),a&&(Es.computePosition(t,i,n.st,o-1,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m]=b.z,n.st&&(g[x++]=T.x,g[x]=T.y,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),w=Math.max(w,T.y))),n.st&&(A<0||C<0||S>1||w>1))for(let E=0;E<g.length;E+=2)g[E]=(g[E]-A)/(S-A),g[E+1]=(g[E+1]-C)/(w-C);let D=fYe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let R=ke.createTypedArray(d,O),N=0,F=0,_;for(_=0;_<f-1;++_){for(let E=0;E<r-1;++E){let v=N,I=v+r,M=I+1,B=v+1;R[F++]=v,R[F++]=I,R[F++]=B,R[F++]=B,R[F++]=I,R[F++]=M,++N}++N}if(s||a){let E=d-1,v=d-1;s&&a&&(E=d-2);let I,M;if(N=0,s)for(_=0;_<r-1;_++)I=N,M=I+1,R[F++]=E,R[F++]=I,R[F++]=M,++N;if(a)for(N=(f-1)*r,_=0;_<r-1;_++)I=N,M=I+1,R[F++]=I,R[F++]=v,R[F++]=M,++N}return D.indices=R,n.st&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function lC(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function uC(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var hW=new Pe;function hYe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,l=t.width,f;if(n){let nt=Pe.clone(o,hW);nt.normal=!0,e._vertexFormat=nt}let d=Jce(e,t);n&&(e._vertexFormat=o);let p=ri.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,m=g*2,x=new Float64Array(m);x.set(p);let b=ri.scaleToGeodeticHeight(d.attributes.position.values,r,a);x.set(b,g),d.attributes.position.values=x;let T=o.normal?new Float32Array(m):void 0,A=o.tangent?new Float32Array(m):void 0,C=o.bitangent?new Float32Array(m):void 0,S=o.st?new Float32Array(m/3*2):void 0,w,D;if(o.normal){for(D=d.attributes.normal.values,T.set(D),f=0;f<g;f++)D[f]=-D[f];T.set(D,g),d.attributes.normal.values=T}if(n){D=d.attributes.normal.values,o.normal||(d.attributes.normal=void 0);let nt=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];nt.set(D,g),d.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:nt})}let O,R=u(i);if(R){let nt=g/3*2,sn=new Uint8Array(nt);i===nn.TOP?sn=sn.fill(1,0,nt/2):(O=i===nn.NONE?0:1,sn=sn.fill(O)),d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:sn})}if(o.tangent){let nt=d.attributes.tangent.values;for(A.set(nt),f=0;f<g;f++)nt[f]=-nt[f];A.set(nt,g),d.attributes.tangent.values=A}if(o.bitangent){let nt=d.attributes.bitangent.values;C.set(nt),C.set(nt,g),d.attributes.bitangent.values=C}o.st&&(w=d.attributes.st.values,S.set(w),S.set(w,g/3*2),d.attributes.st.values=S);let N=d.indices,F=N.length,_=g/3,E=ke.createTypedArray(m/3,F*2);for(E.set(N),f=0;f<F;f+=3)E[f+F]=N[f+2]+_,E[f+1+F]=N[f+1]+_,E[f+2+F]=N[f]+_;d.indices=E;let v=t.northCap,I=t.southCap,M=c,B=2,H=0,U=4,G=4;v&&(B-=1,M-=1,H+=1,U-=2,G-=1),I&&(B-=1,M-=1,H+=1,U-=2,G-=1),H+=B*l+2*M-U;let k=(H+G)*2,Y=new Float64Array(k*3),q=n?new Float32Array(k*3):void 0,Q=R?new Uint8Array(k):void 0,W=o.st?new Float32Array(k*2):void 0,K=i===nn.TOP;R&&!K&&(O=i===nn.ALL?1:0,Q=Q.fill(O));let Z=0,me=0,xe=0,re=0,ge=l*M,ye;for(f=0;f<ge;f+=l)ye=f*3,Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,f*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1);if(I){let nt=v?ge+1:ge;for(ye=nt*3,f=0;f<2;f++)Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,nt*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1)}else for(f=ge-l;f<ge;f++)ye=f*3,Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,f*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1);for(f=ge-1;f>0;f-=l)ye=f*3,Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,f*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1);if(v){let nt=ge;for(ye=nt*3,f=0;f<2;f++)Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,nt*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1)}else for(f=l-1;f>=0;f--)ye=f*3,Y=lC(Y,Z,ye,p,b),Z+=6,o.st&&(W=uC(W,me,f*2,w),me+=4),n&&(xe+=3,q[xe++]=D[ye],q[xe++]=D[ye+1],q[xe++]=D[ye+2]),K&&(Q[re++]=1,re+=1);let Ae=dYe(Y,o,a);o.st&&(Ae.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:W})),n&&(Ae.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:q})),R&&(Ae.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Q}));let De=ke.createTypedArray(k,H*6),Fe,Re,Ue,st;g=Y.length/3;let pt=0;for(f=0;f<g-1;f+=2){Fe=f,st=(Fe+2)%g;let nt=h.fromArray(Y,Fe*3,dW),sn=h.fromArray(Y,st*3,Qce);h.equalsEpsilon(nt,sn,P.EPSILON10)||(Re=(Fe+1)%g,Ue=(Re+2)%g,De[pt++]=Fe,De[pt++]=Re,De[pt++]=st,De[pt++]=st,De[pt++]=Re,De[pt++]=Ue)}return Ae.indices=De,Ae=Fn.combineInstances([new yt({geometry:d}),new yt({geometry:Ae})]),Ae[0]}var mYe=[new h,new h,new h,new h],ele=new fe,pYe=new fe;function mW(e,t,n,i,o){if(n===0)return ce.clone(e,o);let r=Es.computeOptions(e,t,n,0,Zce,ele),s=r.height,a=r.width,c=mYe;return Es.computePosition(r,i,!1,0,0,c[0]),Es.computePosition(r,i,!1,0,a-1,c[1]),Es.computePosition(r,i,!1,s-1,0,c[2]),Es.computePosition(r,i,!1,s-1,a-1,c[3]),ce.fromCartesianArray(c,i,o)}function Xh(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=ce.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Xh.packedLength=ce.packedLength+ie.packedLength+Pe.packedLength+7;Xh.pack=function(e,t,n){return n=y(n,0),ce.pack(e._rectangle,t,n),n+=ce.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var tle=new ce,nle=ie.clone(ie.UNIT_SPHERE),Fg={rectangle:tle,ellipsoid:nle,vertexFormat:hW,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Xh.unpack=function(e,t,n){t=y(t,0);let i=ce.unpack(e,t,tle);t+=ce.packedLength;let o=ie.unpack(e,t,nle);t+=ie.packedLength;let r=Pe.unpack(e,t,hW);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return u(n)?(n._rectangle=ce.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=l,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Fg.granularity=s,Fg.height=a,Fg.rotation=c,Fg.stRotation=l,Fg.extrudedHeight=f,Fg.shadowVolume=d,Fg.offsetAttribute=p===-1?void 0:p,new Xh(Fg))};Xh.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,ie.WGS84),r=y(e.rotation,0);return mW(n,i,r,o,t)};var _Ye=new $,jce=new Ne,gYe=new fe;Xh.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=Es.computeOptions(t,e._granularity,i,o,Zce,ele,pYe),a=_Ye;if(o!==0||i!==0){let g=ce.center(t,gYe),m=n.geodeticSurfaceNormalCartographic(g,dW);Ne.fromAxisAngle(m,-o,jce),$.fromQuaternion(jce,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,l=e._extrudedHeight,f=!P.equalsEpsilon(c,l,0,P.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=hYe(e,s);let g=se.fromRectangle3D(t,n,c,uYe),m=se.fromRectangle3D(t,n,l,lYe);p=se.union(g,m)}else{if(d=Jce(e,s),d.attributes.position.values=ri.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),u(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===nn.NONE?0:1,x=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}p=se.fromRectangle3D(t,n,c)}return r.position||delete d.attributes.position,new ct({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Xh.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Xh({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};var qce=new ce,yYe=[new V,new V,new V],xYe=new Ji,bYe=new fe;function TYe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=ce.clone(e._rectangle,qce),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=mW(t,n,o,i,qce),s=yYe;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=Ji.fromRotation(e._stRotation,xYe),l=ce.center(a,bYe);for(let m=0;m<3;++m){let x=s[m];x.x-=l.longitude,x.y-=l.latitude,Ji.multiplyByVector(c,x,x),x.x+=l.longitude,x.y+=l.latitude,x.x=(x.x-a.west)/a.width,x.y=(x.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return V.pack(f,g),V.pack(d,g,2),V.pack(p,g,4),g}Object.defineProperties(Xh.prototype,{rectangle:{get:function(){return u(this._rotatedRectangle)||(this._rotatedRectangle=mW(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=TYe(this)),this._textureCoordinateRotationPoints}}});var fC=Xh;var ile=new z,ole=h.ZERO,rle=new h,sle=new ce,AYe=new ce,CYe=new fe;function EYe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function gd(e,t){qn.call(this,{entity:e,scene:t,geometryOptions:new EYe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}u(Object.create)&&(gd.prototype=Object.create(qn.prototype),gd.prototype.constructor=gd);gd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Nt){let o;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,ile)),u(o)||(o=z.WHITE),i.color=kt.fromColor(o)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,ole,rle))),new yt({id:t,geometry:new fC(this._options),attributes:i})};gd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,ile),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,ole,rle))),new yt({id:t,geometry:new _A(this._options),attributes:r})};gd.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.rectangle.coordinates,e,AYe);if(!u(n))return;let i=ce.center(n,CYe);return fe.toCartesian(i,ie.WGS84,t)};gd.prototype._isHidden=function(e,t){return!u(t.coordinates)||ii.prototype._isHidden.call(this,e,t)};gd.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.rotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Nt)};gd.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Nt,i=j.getValueOrUndefined(t.height,He.MINIMUM_VALUE),o=j.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,We.NONE),r=j.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),s=j.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,We.NONE);u(r)&&!u(i)&&(i=0);let a=this._options;a.vertexFormat=n?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(He.MINIMUM_VALUE,a.rectangle),a.granularity=j.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),a.stRotation=j.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),a.rotation=j.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),a.offsetAttribute=qn.computeGeometryOffsetAttribute(i,o,r,s),a.height=qn.getGeometryHeight(i,o),r=qn.getGeometryExtrudedHeight(r,s),r===qn.CLAMP_TO_GROUND&&(r=li.getMinimumMaximumHeights(fC.computeRectangle(a,sle)).minimumTerrainHeight),a.extrudedHeight=r};gd.DynamicGeometryUpdater=dC;function dC(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(dC.prototype=Object.create(ni.prototype),dC.prototype.constructor=dC);dC.prototype._isHidden=function(e,t,n){return!u(this._options.rectangle)||ni.prototype._isHidden.call(this,e,t,n)};dC.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,We.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,We.NONE);u(s)&&!u(o)&&(o=0),i.rectangle=j.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.offsetAttribute=qn.computeGeometryOffsetAttribute(o,r,s,a),i.height=qn.getGeometryHeight(o,r),s=qn.getGeometryExtrudedHeight(s,a),s===qn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(fC.computeRectangle(i,sle)).minimumTerrainHeight),i.extrudedHeight=s};var SB=gd;var ale=new z,SYe=new wt,wYe=new wt,vYe=h.ZERO,DYe=new h;function yd(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.subscriptions=new xt,this.showsUpdated=new xt,this.itemsToRemove=[],this.invalidated=!1;let a;u(o)&&(a=o.definitionChanged.addEventListener(yd.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}yd.prototype.onMaterialChanged=function(){this.invalidated=!0};yd.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:u(t)?t.equals(n):!1};yd.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};yd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};yd.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;u(this.depthFailAppearanceType)&&(u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new Sn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Nt)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let b=l.fillMaterialProperty.color,T=j.getValueOrDefault(b,e,z.WHITE,ale);z.equals(d._lastColor,T)||(d._lastColor=z.clone(T,d._lastColor),d.color=kt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}if(u(this.depthFailAppearanceType)&&l.depthFailMaterialProperty instanceof Nt&&(!l.depthFailMaterialProperty.isConstant||c)){let b=l.depthFailMaterialProperty.color,T=j.getValueOrDefault(b,e,z.WHITE,ale);z.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=z.clone(T,d._lastDepthFailColor),d.depthFailColor=kt.toValue(T,d.depthFailColor))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!j.isConstant(m)){let b=j.getValueOrDefault(m,e,wYe,SYe);wt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=l.terrainOffsetProperty;if(!j.isConstant(x)){let b=j.getValueOrDefault(x,e,vYe,DYe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Ki.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};yd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);u(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=_n.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};yd.prototype.contains=function(e){return this.updaters.contains(e.id)};yd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};yd.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),u(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function hC(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}hC.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new yd(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function cle(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}hC.prototype.remove=function(e){cle(this._solidItems,e)||cle(this._translucentItems,e)};function lle(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let l=a[r];s.remove(l),e.add(n,l),i=!0}}return i}function wB(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let l=0;l<c;l++)e.add(n,a[l]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}hC.prototype.update=function(e){let t=wB(this,this._solidItems,e,!0);t=wB(this,this._translucentItems,e,t)&&t;let n=lle(this,this._solidItems,e),i=lle(this,this._translucentItems,e);return(n||i)&&(t=wB(this,this._solidItems,e,t)&&t,t=wB(this,this._translucentItems,e,t)&&t),t};function ule(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return at.FAILED}hC.prototype.getBoundingSphere=function(e,t){let n=ule(this._solidItems,e,t);return n===at.FAILED?ule(this._translucentItems,e,t):n};function fle(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}hC.prototype.removeAllPrimitives=function(){fle(this._solidItems),fle(this._translucentItems)};var xd=hC;var IYe=new wt,PYe=new wt,OYe=h.ZERO,RYe=new h;function bd(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(bd.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt}bd.prototype.onMaterialChanged=function(){this.invalidated=!0};bd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=u(t)&&t.equals(n);return r=(!u(i)&&!u(o)||u(i)&&i.equals(o))&&r,r};bd.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty)||!j.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};bd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var MYe=new z;bd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=$o.getValue(e,this.materialProperty,this.material);let a;u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new Sn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Nt)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),u(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Nt&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=j.getValueOrDefault(b,e,z.WHITE,MYe);z.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=z.clone(T,d._lastDepthFailColor),d.depthFailColor=kt.toValue(T,d.depthFailColor))}let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!j.isConstant(m)){let b=j.getValueOrDefault(m,e,PYe,IYe);wt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!j.isConstant(x)){let b=j.getValueOrDefault(x,e,OYe,RYe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Ki.toValue(b,d.offset))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};bd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=_n.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};bd.prototype.contains=function(e){return this.updaters.contains(e.id)};bd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};bd.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function mC(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}mC.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new bd(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};mC.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};mC.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};mC.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};mC.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var Td=mC;var hle=or(dle(),1);function vB(){this._tree=new hle.default}function mx(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}mx.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};vB.prototype.insert=function(e,t){let n=mx.fromRectangleAndId(e,t,new mx);this._tree.insert(n)};function LYe(e,t){return e.id===t.id}var NYe=new mx;vB.prototype.remove=function(e,t){let n=mx.fromRectangleAndId(e,t,NYe);this._tree.remove(n,LYe)};var FYe=new mx;vB.prototype.collides=function(e){let t=mx.fromRectangleAndId("",e,FYe);return this._tree.collides(t)};var pC=vB;var BYe=new z,kYe=new wt,UYe=new wt;function Lp(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.subscriptions=new xt,this.showsUpdated=new xt,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new pC}Lp.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Lp.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Lp.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return u(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Lp.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Zc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let x=l.fillMaterialProperty.color,b=j.getValueOrDefault(x,e,z.WHITE,BYe);z.equals(d._lastColor,b)||(d._lastColor=z.clone(b,d._lastColor),d.color=kt.toValue(b,d.color))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!j.isConstant(m)){let x=j.getValueOrDefault(m,e,UYe,kYe);wt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Lp.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);u(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=_n.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Lp.prototype.contains=function(e){return this.updaters.contains(e.id)};Lp.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getBoundingSphere(e.entity);return u(i)?(i.clone(t),at.DONE):at.FAILED};Lp.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function _C(e,t){this._batches=[],this._primitives=e,this._classificationType=t}_C.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=j.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return u(r)||(r=new Lp(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};_C.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};_C.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let l=0;l<c;l++){n=a[l],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};_C.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};_C.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var Fv=_C;var VYe=new wt,zYe=new wt;function ff(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(ff.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new pC}ff.prototype.onMaterialChanged=function(){this.invalidated=!0};ff.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};ff.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Nt&&t instanceof Nt?!0:u(t)&&t.equals(n)};ff.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};ff.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return u(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};ff.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=$o.getValue(e,this.materialProperty,this.material),n=new Zc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!j.isConstant(m)){let x=j.getValueOrDefault(m,e,zYe,VYe);wt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};ff.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=_n.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};ff.prototype.contains=function(e){return this.updaters.contains(e.id)};ff.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};ff.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function gC(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}gC.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=Fu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=j.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let l=n[c];if(l.isMaterial(t)&&l.usingSphericalTextureCoordinates===r&&l.zIndex===s&&!l.overlapping(o.geometry.rectangle)){l.add(e,t,o);return}}let a=new ff(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};gC.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};gC.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};gC.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};gC.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var DB=gC;var HYe=new z,GYe=new wt,WYe=new wt,jYe=h.ZERO,qYe=new h;function Np(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.updaters=new xt,this.updatersWithAttributes=new xt,this.attributes=new xt,this.itemsToRemove=[],this.subscriptions=new xt,this.showsUpdated=new xt}Np.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Np.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Np.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)u(i)&&(u(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Sn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new on({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{u(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let l=s[r],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.outlineColorProperty.isConstant||c){let b=l.outlineColorProperty,T=j.getValueOrDefault(b,e,z.WHITE,HYe);z.equals(d._lastColor,T)||(d._lastColor=z.clone(T,d._lastColor),d.color=kt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}let p=l.entity.isShowing&&(l.hasConstantOutline||l.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!j.isConstant(m)){let b=j.getValueOrDefault(m,e,WYe,GYe);wt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=l.terrainOffsetProperty;if(!j.isConstant(x)){let b=j.getValueOrDefault(x,e,jYe,qYe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Ki.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Np.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);u(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=_n.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Np.prototype.contains=function(e){return this.updaters.contains(e.id)};Np.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};Np.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function yC(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new xt,this._translucentBatches=new xt}yC.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),u(r)||(r=new Np(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),u(r)||(r=new Np(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};yC.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};yC.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,l,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),l=o.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),l=o.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],o.remove(i),this.add(e,i)}}while(d);return f};yC.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return at.FAILED};yC.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var Bv=yC;var mle={};function YYe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var XYe=new fe,KYe=new fe;function ZYe(e,t,n,i){t=go(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=u(i),s=u(n),a=new Array(o),c=new Array(o),l=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,XYe);s&&(d.height=n[0]),c[0]=d.height,r?l[0]=i[0]:l[0]=0;let p=c[0],g=l[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],A=e.cartesianToCartographic(T,KYe);s&&(A.height=n[b]),m=m&&A.height===0,YYe(d,A)?d.height<A.height&&(c[x-1]=A.height):(a[x]=T,c[x]=A.height,r?l[x]=i[b]:l[x]=0,m=m&&c[x]===l[x],fe.clone(A,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,l.length=x,{positions:a,topHeights:c,bottomHeights:l}}var $Ye=new Array(2),QYe=new Array(2),JYe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};mle.computePositions=function(e,t,n,i,o,r){let s=ZYe(e,t,n,i);if(!u(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,l,f,d=P.chordLength(o,e.maximumRadius),p=JYe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=Mi.numberOfPoints(t[m],t[m+1],d)+1;l=new Float64Array(g*3),f=new Float64Array(g*3);let x=$Ye,b=QYe;p.positions=x,p.height=b;let T=0;for(m=0;m<a-1;m++){x[0]=t[m],x[1]=t[m+1],b[0]=n[m],b[1]=n[m+1];let A=Mi.generateArc(p);l.set(A,T),b[0]=i[m],b[1]=i[m+1],f.set(Mi.generateArc(p),T),T+=A.length}}else p.positions=t,p.height=n,l=new Float64Array(Mi.generateArc(p)),p.height=i,f=new Float64Array(Mi.generateArc(p));return{bottomPositions:f,topPositions:l,numCorners:c}};var xC=mle;var gW=new h,IB=new h,eXe=new h,ple=new h,tXe=new h,nXe=new h,iXe=new h;function px(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,ie.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Pe.clone(o),this._granularity=r,this._ellipsoid=ie.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;u(i)&&(a+=i.length),u(n)&&(a+=n.length),this.packedLength=a+ie.packedLength+Pe.packedLength+1}px.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=u(s)?s.length:0,t[n++]=r,u(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=u(a)?a.length:0,t[n++]=r,u(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._granularity,t};var _le=ie.clone(ie.UNIT_SPHERE),gle=new Pe,kv={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:_le,vertexFormat:gle,granularity:void 0};px.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ie.unpack(e,t,_le);t+=ie.packedLength;let l=Pe.unpack(e,t,gle);t+=Pe.packedLength;let f=e[t];return u(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._vertexFormat=Pe.clone(l,n._vertexFormat),n._granularity=f,n):(kv.positions=r,kv.minimumHeights=s,kv.maximumHeights=a,kv.granularity=f,new px(kv))};px.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=u(o),a=u(r);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new px(c)};px.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=xC.computePositions(s,t,i,n,r,!0);if(!u(a))return;let c=a.bottomPositions,l=a.topPositions,f=a.numCorners,d=l.length,p=d*2,g=o.position?new Float64Array(p):void 0,m=o.normal?new Float32Array(p):void 0,x=o.tangent?new Float32Array(p):void 0,b=o.bitangent?new Float32Array(p):void 0,T=o.st?new Float32Array(p/3*2):void 0,A=0,C=0,S=0,w=0,D=0,O=iXe,R=nXe,N=tXe,F=!0;d/=3;let _,E=0,v=1/(d-f-1);for(_=0;_<d;++_){let U=_*3,G=h.fromArray(l,U,gW),k=h.fromArray(c,U,IB);if(o.position&&(g[A++]=k.x,g[A++]=k.y,g[A++]=k.z,g[A++]=G.x,g[A++]=G.y,g[A++]=G.z),o.st&&(T[D++]=E,T[D++]=0,T[D++]=E,T[D++]=1),o.normal||o.tangent||o.bitangent){let Y=h.clone(h.ZERO,ple),q=h.subtract(G,s.geodeticSurfaceNormal(G,IB),IB);if(_+1<d&&(Y=h.fromArray(l,U+3,ple)),F){let Q=h.subtract(Y,G,eXe),W=h.subtract(q,G,gW);O=h.normalize(h.cross(W,Q,O),O),F=!1}h.equalsEpsilon(G,Y,P.EPSILON10)?F=!0:(E+=v,o.tangent&&(R=h.normalize(h.subtract(Y,G,R),R)),o.bitangent&&(N=h.normalize(h.cross(O,R,N),N))),o.normal&&(m[C++]=O.x,m[C++]=O.y,m[C++]=O.z,m[C++]=O.x,m[C++]=O.y,m[C++]=O.z),o.tangent&&(x[w++]=R.x,x[w++]=R.y,x[w++]=R.z,x[w++]=R.x,x[w++]=R.y,x[w++]=R.z),o.bitangent&&(b[S++]=N.x,b[S++]=N.y,b[S++]=N.z,b[S++]=N.x,b[S++]=N.y,b[S++]=N.z)}}let I=new hn;o.position&&(I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}));let M=p/3;p-=6*(f+1);let B=ke.createTypedArray(M,p),H=0;for(_=0;_<M-2;_+=2){let U=_,G=_+2,k=h.fromArray(g,U*3,gW),Y=h.fromArray(g,G*3,IB);if(h.equalsEpsilon(k,Y,P.EPSILON10))continue;let q=_+1,Q=_+3;B[H++]=q,B[H++]=U,B[H++]=Q,B[H++]=Q,B[H++]=U,B[H++]=G}return new ct({attributes:I,indices:B,primitiveType:Le.TRIANGLES,boundingSphere:new se.fromVertices(g)})};var PB=px;var yle=new h,xle=new h;function _x(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,ie.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ie.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;u(i)&&(s+=i.length),u(n)&&(s+=n.length),this.packedLength=s+ie.packedLength+1}_x.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=u(s)?s.length:0,t[n++]=r,u(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=u(a)?a.length:0,t[n++]=r,u(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n]=e._granularity,t};var ble=ie.clone(ie.UNIT_SPHERE),Uv={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:ble,granularity:void 0};_x.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ie.unpack(e,t,ble);t+=ie.packedLength;let l=e[t];return u(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._granularity=l,n):(Uv.positions=r,Uv.minimumHeights=s,Uv.maximumHeights=a,Uv.granularity=l,new _x(Uv))};_x.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=u(o),a=u(r);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new _x(c)};_x.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=xC.computePositions(r,t,i,n,o,!1);if(!u(s))return;let a=s.bottomPositions,c=s.topPositions,l=c.length,f=l*2,d=new Float64Array(f),p=0;l/=3;let g;for(g=0;g<l;++g){let A=g*3,C=h.fromArray(c,A,yle),S=h.fromArray(a,A,xle);d[p++]=S.x,d[p++]=S.y,d[p++]=S.z,d[p++]=C.x,d[p++]=C.y,d[p++]=C.z}let m=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=ke.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let A=g,C=g+2,S=h.fromArray(d,A*3,yle),w=h.fromArray(d,C*3,xle);if(h.equalsEpsilon(S,w,P.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=A,b[T++]=D,b[T++]=O,b[T++]=A,b[T++]=C}return b[T++]=x-2,b[T++]=x-1,new ct({attributes:m,indices:b,primitiveType:Le.LINES,boundingSphere:new se.fromVertices(d)})};var OB=_x;var Tle=new z;function oXe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function Ad(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new oXe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}u(Object.create)&&(Ad.prototype=Object.create(ii.prototype),Ad.prototype.constructor=Ad);Ad.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Nt){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Tle)),u(c)||(c=z.WHITE),o=kt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new yt({id:t,geometry:new PB(this._options),attributes:i})};Ad.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Tle),o=this._distanceDisplayConditionProperty.getValue(e);return new yt({id:t,geometry:new OB(this._options),attributes:{show:new _n(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Ad.prototype._isHidden=function(e,t){return!u(t.positions)||ii.prototype._isHidden.call(this,e,t)};Ad.prototype._getIsClosed=function(e){return!1};Ad.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.minimumHeights)||!j.isConstant(t.maximumHeights)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.granularity)};Ad.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Nt,s=this._options;s.vertexFormat=r?on.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.minimumHeights=u(n)?n.getValue(He.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=u(i)?i.getValue(He.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=u(o)?o.getValue(He.MINIMUM_VALUE):void 0};Ad.DynamicGeometryUpdater=bC;function bC(e,t,n){ni.call(this,e,t,n)}u(Object.create)&&(bC.prototype=Object.create(ni.prototype),bC.prototype.constructor=bC);bC.prototype._isHidden=function(e,t,n){return!u(this._options.positions)||ni.prototype._isHidden.call(this,e,t,n)};bC.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=j.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=j.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=j.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=j.getValueOrUndefined(t.granularity,n)};var RB=Ad;var rXe=[],Ale=[RM,zF,MF,lB,uB,_B,TB,EB,SB,RB];function Vv(e,t){this.entity=e,this.scene=t;let n=new Array(Ale.length),i=new pe;function o(s){i.raiseEvent(s)}let r=new Or;for(let s=0;s<n.length;s++){let a=new Ale[s](e,t);r.add(a.geometryChanged,o),n[s]=a}this.updaters=n,this.geometryChanged=i,this.eventHelper=r,this._removeEntitySubscription=e.definitionChanged.addEventListener(Vv.prototype._onEntityPropertyChanged,this)}Vv.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};Vv.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};Vv.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),le(this)};function df(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new xt,this._removedObjects=new xt,this._changedObjects=new xt;let o=gn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=Qo.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new Bv(n,e,s,!1),this._outlineBatches[o+s]=new Bv(n,e,s,!0),this._closedColorBatches[s]=new xd(n,on,void 0,!0,s,!0),this._closedColorBatches[o+s]=new xd(n,on,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Td(n,oo,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new Td(n,oo,void 0,!0,s,!1),this._openColorBatches[s]=new xd(n,on,void 0,!1,s,!0),this._openColorBatches[o+s]=new xd(n,on,void 0,!1,s,!1),this._openMaterialBatches[s]=new Td(n,oo,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new Td(n,oo,void 0,!1,s,!1);let a=Un.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),l=[];if(r)for(s=0;s<a;++s)l.push(new DB(i,s,oo)),c[s]=new Fv(i,s);else for(s=0;s<a;++s)c[s]=new Fv(i,s);this._groundColorBatches=c,this._groundMaterialBatches=l,this._dynamicBatch=new KA(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new xt,this._updaterSets=new xt,this._entityCollection=t,t.collectionChanged.addEventListener(df.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,rXe)}df.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,l,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaterSets.get(l),f.entity===c?f.forEach(function(x){d._removeUpdater(x),d._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],l=c.id,f=this._updaterSets.get(l),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new Vv(c,this._scene),this._updaterSets.set(l,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(l,f.geometryChanged.addEventListener(df._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,m=g.length;for(a=0;a<m;a++)p=g[a].update(e)&&p;return p};var sXe=[],aXe=new se;df.prototype.getBoundingSphere=function(e,t){let n=sXe,i=aXe,o=0,r=at.DONE,s=this._batches,a=s.length,c=e.id,l=this._updaterSets.get(c).updaters;for(let f=0;f<l.length;f++){let d=l[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===at.PENDING)return at.PENDING;r===at.DONE&&(n[o]=se.clone(i,n[o]),o++)}}return o===0?at.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),at.DONE)};df.prototype.isDestroyed=function(){return!1};df.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(df.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),le(this)};df.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};df.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=gn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(u(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof Nt?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Nt?u(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Nt?u(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};df._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!u(t.get(o))&&!u(n.get(o))&&n.set(o,i)};df.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var MB=df;var cXe=1,lXe="30px sans-serif",uXe=Vo.FILL,fXe=z.WHITE,dXe=z.BLACK,hXe=1,mXe=!1,pXe=new z(.165,.165,.165,.8),_Xe=new V(7,5),gXe=V.ZERO,yXe=h.ZERO,xXe=We.NONE,bXe=_i.CENTER,TXe=Pn.CENTER,AXe=new h,CXe=new z,EXe=new z,SXe=new z,wXe=new V,vXe=new h,DXe=new V,IXe=new Ot,PXe=new Ot,OXe=new Ot,RXe=new wt;function Cle(e){this.entity=e,this.label=void 0,this.index=void 0}function Bg(e,t){t.collectionChanged.addEventListener(Bg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}Bg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,l=r.label,f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=j.getValueOrUndefined(s._position,e,AXe),c=j.getValueOrUndefined(a._text,e),f=u(d)&&u(c)),!f){yW(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=j.getValueOrDefault(a._heightReference,e,xXe);u(l)||(l=n.getLabel(s),l.id=s,r.label=l,p=h.equals(l.position,d)&&l.heightReference===g),l.show=!0,l.position=d,l.text=c,l.scale=j.getValueOrDefault(a._scale,e,cXe),l.font=j.getValueOrDefault(a._font,e,lXe),l.style=j.getValueOrDefault(a._style,e,uXe),l.fillColor=j.getValueOrDefault(a._fillColor,e,fXe,CXe),l.outlineColor=j.getValueOrDefault(a._outlineColor,e,dXe,EXe),l.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,hXe),l.showBackground=j.getValueOrDefault(a._showBackground,e,mXe),l.backgroundColor=j.getValueOrDefault(a._backgroundColor,e,pXe,SXe),l.backgroundPadding=j.getValueOrDefault(a._backgroundPadding,e,_Xe,wXe),l.pixelOffset=j.getValueOrDefault(a._pixelOffset,e,gXe,DXe),l.eyeOffset=j.getValueOrDefault(a._eyeOffset,e,yXe,vXe),l.heightReference=g,l.horizontalOrigin=j.getValueOrDefault(a._horizontalOrigin,e,bXe),l.verticalOrigin=j.getValueOrDefault(a._verticalOrigin,e,TXe),l.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,IXe),l.pixelOffsetScaleByDistance=j.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,PXe),l.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,OXe),l.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,RXe),l.disableDepthTestDistance=j.getValueOrUndefined(a._disableDepthTestDistance,e),p&&l._updateClamping()}return!0};Bg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.label))return at.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,at.DONE};Bg.prototype.isDestroyed=function(){return!1};Bg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Bg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return le(this)};Bg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],u(r._label)&&u(r._position)&&s.set(r.id,new Cle(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._label)&&u(r._position)?s.contains(r.id)||s.set(r.id,new Cle(r)):(yW(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],yW(s.get(r.id),r,a),s.remove(r.id)};function yW(e,t,n){u(e)&&(e.label=void 0,n.removeLabel(t))}var LB=Bg;async function MXe(e,t,n,i){return u(i)||(i=!1),FXe(e,t,n,i)}function LXe(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(Sle(i)):r=o.then(Sle(i)).catch(BXe(i)),e.shift(),t.push(r),!0}function NXe(e){return new Promise(function(t){setTimeout(t,e)})}function xW(e,t,n){return e.length?LXe(e,t,n)?xW(e,t):NXe(100).then(()=>xW(e,t)):Promise.resolve()}function FXe(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let l=o.positionToTileXY(n[r],t);if(!u(l))continue;let f=l.toString();if(!a.hasOwnProperty(f)){let d={x:l.x,y:l.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return xW(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function Ele(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function Sle(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!Ele(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];Ele(s,i,n)}}):Promise.resolve()}}function BXe(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var NB=MXe;var bW=new V;async function wle(e,t,n){u(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let l=t[c],f=r.computeMaximumLevelAtPosition(l);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(l,1,bW);let p=e.loadTileDataAvailability(bW.x,bW.y,1);u(p)&&s.push(p)}let d=i[f];u(d)||(i[f]=d=[]),d.push(l)}await Promise.all(s),await Promise.all(i.map(function(c,l){if(u(c))return NB(e,l,c,n)}));let a=[];for(let c=0;c<t.length;++c){let l=t[c];r.computeMaximumLevelAtPosition(l)!==o[c]&&a.push(l)}return a.length>0&&await wle(e,a,n),t}var kg=wle;var kXe=1,UXe=0,VXe=!0,zXe=!0,HXe=gn.ENABLED,GXe=We.NONE,WXe=z.RED,jXe=0,qXe=z.WHITE,YXe=gc.HIGHLIGHT,XXe=.5,KXe=new V(1,1),ZXe=new L,$Xe=new L,vle=new z,Dle=new Array(4),QXe=new h;function Kh(e,t){t.collectionChanged.addEventListener(Kh.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new xt,this._onCollectionChanged(t,t.values,[],[])}async function JXe(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await Oh.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!u(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{u(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!u(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}Kh.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,ZXe),c=ve.createIfNeeded(j.getValueOrUndefined(a._uri,e)),f=u(d)&&u(c)),!f){u(l)&&l.modelPrimitive&&(l.modelPrimitive.show=!1);continue}if(!u(l)||c.url!==l.url){u(l?.modelPrimitive)&&(i.removeAndDestroy(l.modelPrimitive),delete n[s.id]),l={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1,awaitingSampleTerrain:!1,clampedBoundingSphere:void 0,sampleTerrainFailed:!1},n[s.id]=l;let m=j.getValueOrDefault(a._incrementallyLoadTextures,e,VXe);JXe(this,s,c,m)}let p=l.modelPrimitive;if(!u(p))continue;p.show=!0,p.scale=j.getValueOrDefault(a._scale,e,kXe),p.minimumPixelSize=j.getValueOrDefault(a._minimumPixelSize,e,UXe),p.maximumScale=j.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=L.clone(d,p.modelMatrix),p.shadows=j.getValueOrDefault(a._shadows,e,HXe),p.heightReference=j.getValueOrDefault(a._heightReference,e,GXe),p.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=j.getValueOrDefault(a._silhouetteColor,e,WXe,vle),p.silhouetteSize=j.getValueOrDefault(a._silhouetteSize,e,jXe),p.color=j.getValueOrDefault(a._color,e,qXe,vle),p.colorBlendMode=j.getValueOrDefault(a._colorBlendMode,e,YXe),p.colorBlendAmount=j.getValueOrDefault(a._colorBlendAmount,e,XXe),p.clippingPlanes=j.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=j.getValueOrDefault(a._clampAnimations,e,zXe),p.imageBasedLighting.imageBasedLightingFactor=j.getValueOrDefault(a._imageBasedLightingFactor,e,KXe);let g=j.getValueOrUndefined(a._lightColor,e);if(u(g)&&(z.pack(g,Dle,0),g=h.unpack(Dle,0,QXe)),p.lightColor=g,p.customShader=j.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=j.getValueOrDefault(a._runAnimations,e,!0);l.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:Wl.REPEAT}):p.activeAnimations.removeAll(),l.animationsRunning=m);let x=j.getValueOrUndefined(a._nodeTransformations,e,l.nodeTransformationsScratch);if(u(x)){let A=Object.keys(x);for(let C=0,S=A.length;C<S;++C){let w=A[C],D=x[w];if(!u(D))continue;let O=p.getNode(w);if(!u(O))continue;let R=L.fromTranslationRotationScale(D,$Xe);O.matrix=L.multiply(O.originalMatrix,R,R)}}let b=!1,T=j.getValueOrUndefined(a._articulations,e,l.articulationsScratch);if(u(T)){let A=Object.keys(T);for(let C=0,S=A.length;C<S;++C){let w=A[C],D=T[w];u(D)&&(b=!0,p.setArticulationStage(w,D))}}b&&p.applyArticulations()}}return!0};Kh.prototype.isDestroyed=function(){return!1};Kh.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Kh.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)TW(this,e[i],t,n);return le(this)};Kh._sampleTerrainMostDetailed=kg;var TC=new h,Ile=new fe;Kh.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!u(n))return at.FAILED;if(n.loadFailed)return at.FAILED;let i=n.modelPrimitive;if(!u(i)||!i.show)return at.PENDING;if(!i.ready||!n.modelUpdated)return at.PENDING;let r=this._scene.globe,s=u(r)?r.terrainProvider:void 0,a=i.heightReference!==We.NONE;if(u(r)&&a){let c=r.ellipsoid,l=i.modelMatrix;TC.x=l[12],TC.y=l[13],TC.z=l[14];let f=c.cartesianToCartographic(TC);if(!u(s.availability)){i.heightReference===We.CLAMP_TO_GROUND&&(f.height=0);let g=c.cartographicToCartesian(f);return se.clone(i.boundingSphere,t),t.center=g,at.DONE}let d=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,at.FAILED):u(d)?(se.clone(d,t),this._modelHash[e.id].clampedBoundingSphere=void 0,at.DONE):(d=new se,this._modelHash[e.id].awaitingSampleTerrain||(fe.clone(f,Ile),this._modelHash[e.id].awaitingSampleTerrain=!0,Kh._sampleTerrainMostDetailed(s,[Ile]).then(m=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let x=m[0];i.heightReference===We.RELATIVE_TO_GROUND&&(x.height+=f.height),c.cartographicToCartesian(x,TC),se.clone(i.boundingSphere,d),d.center=TC,this._modelHash[e.id].clampedBoundingSphere=se.clone(d)}).catch(m=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),at.PENDING)}return se.clone(i.boundingSphere,t),at.DONE};Kh.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],u(r._model)&&u(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],u(r._model)&&u(r._position)?(eKe(r,a),s.set(r.id,r)):(TW(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],TW(this,r,a,c),s.remove(r.id)};function TW(e,t,n,i){let o=n[t.id];u(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function eKe(e,t){let n=t[e.id];u(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var FB=Kh;function Ug(e){this._definitionChanged=new pe,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Ug.prototype,{isConstant:{get:function(){return j.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return u(this._value)?this._value.referenceFrame:to.FIXED}}});Ug.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Ug.prototype.setValue=function(e){this._value!==e&&(this._value=e,u(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),u(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Ug.prototype.getValueInReferenceFrame=function(e,t,n){if(u(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),u(n)?ie.WGS84.scaleToGeodeticSurface(n,n):void 0};Ug.prototype.equals=function(e){return this===e||e instanceof Ug&&this._value===e._value};Ug.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Fp=Ug;var tKe=60,nKe=1,Rle=new An,AW=new An,CW=new An;function Ple(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function iKe(e,t,n,i,o,r,s,a,c){let l=a,f;f=e.getValueInReferenceFrame(t,r,c[l]),u(f)&&(c[l++]=f);let d=!u(o)||J.lessThanOrEquals(o,t)||J.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,A,C;for(;p<g;){if(!d&&J.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[l]),u(f)&&(c[l++]=f),d=!0),J.greaterThan(m,t)&&J.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[l]),u(f)&&(c[l++]=f)),p<g-1){if(s>0&&!b){let S=i[p+1],w=J.secondsDifference(S,m);b=w>s,b&&(T=Math.ceil(w/s),A=0,C=w/Math.max(T,2),T=Math.max(T-1,1))}if(b&&A<T){m=J.addSeconds(m,C,new J),A++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[l]),u(f)&&(c[l++]=f),l}function oKe(e,t,n,i,o,r,s,a){let c,l=0,f=s,d=t,p=Math.max(r,60),g=!u(i)||J.lessThanOrEquals(i,t)||J.greaterThanOrEquals(i,n);for(;J.lessThan(d,n);)!g&&J.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),u(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),u(c)&&(a[f]=c,f++),l++,d=J.addSeconds(t,p*l,new J);return c=e.getValueInReferenceFrame(n,o,a[f]),u(c)&&(a[f]=c,f++),f}function rKe(e,t,n,i,o,r,s,a){CW.start=t,CW.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!An.intersect(d,CW,Rle).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=J.addSeconds(d.start,J.secondsDifference(d.stop,d.start)/2,new J));let g=e.getValueInReferenceFrame(p,o,a[c]);u(g)&&(a[c]=g,c++)}}return c}function sKe(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return u(c)&&(a[s++]=c),s}function aKe(e,t,n,i,o,r,s,a){AW.start=t,AW.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!An.intersect(d,AW,Rle).isEmpty){let p=d.start,g=d.stop,m=t;J.greaterThan(p,m)&&(m=p);let x=n;J.lessThan(g,x)&&(x=g),c=Mle(d.data,m,x,i,o,r,c,a)}}return c}function Mle(e,t,n,i,o,r,s,a){for(;e instanceof Dg;)e=e.resolvedProperty;if(e instanceof ua){let c=e._property._times;s=iKe(e,t,n,c,i,o,r,s,a)}else e instanceof la?s=aKe(e,t,n,i,o,r,s,a):e instanceof Pg?s=rKe(e,t,n,i,o,r,s,a):e instanceof $c||e instanceof Fp&&j.isConstant(e)?s=sKe(e,t,n,i,o,r,s,a):s=oKe(e,t,n,i,o,r,s,a);return s}function Lle(e,t,n,i,o,r,s){u(s)||(s=[]);let a=Mle(e,t,n,i,o,r,0,s);return s.length=a,s}var Ole=new $;function zv(e,t){this._unusedIndexes=[],this._polylineCollection=new Nh,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}zv.prototype.update=function(e){if(this._referenceFrame===to.INERTIAL){let t=Rt.computeIcrfToFixedMatrix(e,Ole);u(t)||(t=Rt.computeTemeToPseudoFixedMatrix(e,Ole)),L.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};zv.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,l=n.isShowing&&n.isAvailable(e)&&(!u(a)||a.getValue(e));if(l){let d=j.getValueOrUndefined(i._leadTime,e),p=j.getValueOrUndefined(i._trailTime,e),g=n._availability,m=u(g),x=u(d),b=u(p);if(l=m||x&&b,l){if(b&&(r=J.addSeconds(e,-p,new J)),x&&(s=J.addSeconds(e,d,new J)),m){let T=g.start,A=g.stop;(!b||J.greaterThan(T,r))&&(r=T),(!x||J.lessThan(A,s))&&(s=A)}l=J.lessThan(r,s)}}if(!l){u(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!u(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=j.getValueOrDefault(i._resolution,e,tKe);c.show=!0,c.positions=Lle(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=$o.getValue(e,i._material,c.material),c.width=j.getValueOrDefault(i._width,e,nKe),c.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};zv.prototype.removeObject=function(e){let t=e.polyline;u(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};zv.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),le(this)};function Vg(e,t){t.collectionChanged.addEventListener(Vg.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}Vg.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&u(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],a=r.entity._position,c=r.updater,l=to.FIXED;this._scene.mode===te.SCENE3D&&(l=a.referenceFrame);let f=this._updaters[l];if(c===f&&u(f)){f.updateObject(e,r);continue}u(c)&&c.removeObject(r),u(f)||(f=new zv(this._scene,l),f.update(e),this._updaters[l]=f),r.updater=f,u(f)&&f.updateObject(e,r)}return!0};Vg.prototype.isDestroyed=function(){return!1};Vg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Vg.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return le(this)};Vg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],u(r._path)&&u(r._position)&&a.set(r.id,new Ple(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._path)&&u(r._position)?a.contains(r.id)||a.set(r.id,new Ple(r)):(s=a.get(r.id),u(s)&&(u(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),u(s)&&(u(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Vg._subSample=Lle;var BB=Vg;var Nle=z.WHITE,Fle=z.BLACK,Ble=0,kle=1,Ule=0,Vle=new z,cKe=new h,zle=new z,Hle=new Ot,Gle=new Ot,Wle=new wt;function jle(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function zg(e,t){t.collectionChanged.addEventListener(zg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new xt,this._onCollectionChanged(t,t.values,[],[])}zg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,l=r.billboard,f=j.getValueOrDefault(a._heightReference,e,We.NONE),d=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),p;if(d&&(p=j.getValueOrUndefined(s._position,e,cKe),d=u(p)),!d){Hv(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==We.NONE&&!u(l)?(u(c)&&(Hv(r,s,n),c=void 0),l=n.getBillboard(s),l.id=s,l.image=void 0,r.billboard=l,g=!0,m=h.equals(l.position,p)&&l.heightReference===f):f===We.NONE&&!u(c)&&(u(l)&&(Hv(r,s,n),l=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),u(c))c.show=!0,c.position=p,c.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Hle),c.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Gle),c.color=j.getValueOrDefault(a._color,e,Nle,Vle),c.outlineColor=j.getValueOrDefault(a._outlineColor,e,Fle,zle),c.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,Ble),c.pixelSize=j.getValueOrDefault(a._pixelSize,e,kle),c.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Wle),c.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,Ule);else if(u(l)){l.show=!0,l.position=p,l.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Hle),l.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Gle),l.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Wle),l.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,Ule),l.heightReference=f;let x=j.getValueOrDefault(a._color,e,Nle,Vle),b=j.getValueOrDefault(a._outlineColor,e,Fle,zle),T=Math.round(j.getValueOrDefault(a._outlineWidth,e,Ble)),A=Math.max(1,Math.round(j.getValueOrDefault(a._pixelSize,e,kle)));if(T>0?(l.scale=1,g=g||T!==r.outlineWidth||A!==r.pixelSize||!z.equals(x,r.color)||!z.equals(b,r.outlineColor)):(l.scale=A/50,A=50,g=g||T!==r.outlineWidth||!z.equals(x,r.color)||!z.equals(b,r.outlineColor)),g){r.color=z.clone(x,r.color),r.outlineColor=z.clone(b,r.outlineColor),r.pixelSize=A,r.outlineWidth=T;let C=x.alpha,S=x.toCssColorString(),w=b.toCssColorString(),D=JSON.stringify([S,A,w,T]);l.setImage(D,iA(C,S,w,T,A))}m&&l._updateClamping()}}return!0};zg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!(u(n.pointPrimitive)||u(n.billboard)))return at.FAILED;if(u(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!u(i._clampedPosition))return at.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,at.DONE};zg.prototype.isDestroyed=function(){return!1};zg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(zg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return le(this)};zg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],u(r._point)&&u(r._position)&&s.set(r.id,new jle(r));for(o=i.length-1;o>-1;o--)r=i[o],u(r._point)&&u(r._position)?s.contains(r.id)||s.set(r.id,new jle(r)):(Hv(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],Hv(s.get(r.id),r,a),s.remove(r.id)};function Hv(e,t,n){if(u(e)){let i=e.pointPrimitive;if(u(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;u(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var kB=zg;var Zle=[];function lKe(e,t,n,i,o){let r=Zle;r.length=o;let s,a=n.red,c=n.green,l=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(z.equals(n,i)){for(s=0;s<o;s++)r[s]=z.clone(n);return r}let x=(d-a)/o,b=(p-c)/o,T=(g-l)/o,A=(m-f)/o;for(s=0;s<o;s++)r[s]=new z(a+s*x,c+s*b,l+s*T,f+s*A);return r}function Gv(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),o=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._arcType=y(e.arcType,Yt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ie.clone(y(e.ellipsoid,ie.WGS84)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=u(n)?1+n.length*z.packedLength:1,this.packedLength=r+ie.packedLength+Pe.packedLength+4}Gv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=u(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var $le=ie.clone(ie.UNIT_SPHERE),Qle=new Pe,gx={positions:void 0,colors:void 0,ellipsoid:$le,vertexFormat:Qle,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};Gv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=ie.unpack(e,t,$le);t+=ie.packedLength;let c=Pe.unpack(e,t,Qle);t+=Pe.packedLength;let l=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return u(n)?(n._positions=r,n._colors=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._width=l,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(gx.positions=r,gx.colors=s,gx.width=l,gx.colorsPerVertex=f,gx.arcType=d,gx.granularity=p,new Gv(gx))};var qle=new h,Yle=new h,Xle=new h,Kle=new h;Gv.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,l,f,d=[],p=go(e._positions,h.equalsEpsilon,!1,d);if(u(i)&&d.length>0){let M=0,B=d[0];i=i.filter(function(H,U){let G=!1;return o?G=U===B||U===0&&B===1:G=U+1===B,G?(M++,B=d[M],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Yt.GEODESIC||r===Yt.RHUMB){let M,B;r===Yt.GEODESIC?(M=P.chordLength(s,a.maximumRadius),B=Mi.numberOfPoints):(M=s,B=Mi.numberOfPointsRhumbLine);let H=Mi.extractHeights(p,a);if(u(i)){let U=1;for(c=0;c<g-1;++c)U+=B(p[c],p[c+1],M);let G=new Array(U),k=0;for(c=0;c<g-1;++c){let Y=p[c],q=p[c+1],Q=i[c],W=B(Y,q,M);if(o&&c<U){let K=i[c+1],Z=lKe(Y,q,Q,K,W),me=Z.length;for(l=0;l<me;++l)G[k++]=Z[l]}else for(l=0;l<W;++l)G[k++]=z.clone(Q)}G[k]=z.clone(i[i.length-1]),i=G,Zle.length=0}r===Yt.GEODESIC?p=Mi.generateCartesianArc({positions:p,minDistance:M,ellipsoid:a,height:H}):p=Mi.generateCartesianRhumbArc({positions:p,granularity:M,ellipsoid:a,height:H})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),A=new Float32Array(m*2),C=n.st?new Float32Array(m*2):void 0,S=u(i)?new Uint8Array(m*4):void 0,w=0,D=0,O=0,R=0,N;for(l=0;l<g;++l){l===0?(N=qle,h.subtract(p[0],p[1],N),h.add(p[0],N,N)):N=p[l-1],h.clone(N,Xle),h.clone(p[l],Yle),l===g-1?(N=qle,h.subtract(p[g-1],p[g-2],N),h.add(p[g-1],N,N)):N=p[l+1],h.clone(N,Kle);let M,B;u(S)&&(l!==0&&!o?M=i[l-1]:M=i[l],l!==g-1&&(B=i[l]));let H=l===0?2:0,U=l===g-1?2:4;for(f=H;f<U;++f){h.pack(Yle,x,w),h.pack(Xle,b,w),h.pack(Kle,T,w),w+=3;let G=f-2<0?-1:1;if(A[D++]=2*(f%2)-1,A[D++]=G*t,n.st&&(C[O++]=l/(g-1),C[O++]=Math.max(A[D-2],0)),u(S)){let k=f<2?M:B;S[R++]=z.floatToByte(k.red),S[R++]=z.floatToByte(k.green),S[R++]=z.floatToByte(k.blue),S[R++]=z.floatToByte(k.alpha)}}}let F=new hn;F.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),F.prevPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),F.nextPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),F.expandAndWidth=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}),n.st&&(F.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C})),u(S)&&(F.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:S,normalize:!0}));let _=ke.createTypedArray(m,g*6-6),E=0,v=0,I=g-1;for(l=0;l<I;++l)_[v++]=E,_[v++]=E+2,_[v++]=E+1,_[v++]=E+1,_[v++]=E+2,_[v++]=E+3,E+=4;return new ct({attributes:F,indices:_,primitiveType:Le.TRIANGLES,boundingSphere:se.fromPoints(p),geometryType:Nf.POLYLINES})};var Hg=Gv;var uKe=new Zn(0),UB={},Jle=new z,fKe=new Nt(z.WHITE),dKe=new Zn(!0),hKe=new Zn(gn.DISABLED),mKe=new Zn(new wt),pKe=new Zn(Un.BOTH);function _Ke(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function gKe(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Cd(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(Cd.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new pe,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new _Ke,this._groundGeometryOptions=new gKe,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=Qo.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(Cd.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!u(this._entity.availability)&&j.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});Cd.prototype.isOutlineVisible=function(e){return!1};Cd.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};Cd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new _n(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof Nt&&(u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Jle)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)),this.clampToGround?new yt({id:t,geometry:new rT(this._groundGeometryOptions),attributes:s}):(u(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Nt&&(u(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Jle)),u(a)||(a=z.WHITE),s.depthFailColor=kt.fromColor(a)),new yt({id:t,geometry:new Hg(this._geometryOptions),attributes:s}))};Cd.prototype.createOutlineGeometryInstance=function(e){};Cd.prototype.isDestroyed=function(){return!1};Cd.prototype.destroy=function(){this._entitySubscription(),le(this)};Cd.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!u(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(u(s)&&s.isConstant&&!s.getValue(He.MINIMUM_VALUE)||!u(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,fKe),l=c instanceof Nt;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,dKe),this._shadowsProperty=y(o.shadows,hKe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,mKe),this._classificationTypeProperty=y(o.classificationType,pKe),this._fillEnabled=!0,this._zIndex=y(a,uKe);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!j.isConstant(f)||!j.isConstant(d)||!j.isConstant(g)||!j.isConstant(p)||!j.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let m=this._geometryOptions,x=r.getValue(He.MINIMUM_VALUE,m.positions);if(!u(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;l&&(!u(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Nt)?b=zr.VERTEX_FORMAT:b=oa.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=u(f)?f.getValue(He.MINIMUM_VALUE):void 0,m.arcType=u(d)?d.getValue(He.MINIMUM_VALUE):void 0,m.granularity=u(g)?g.getValue(He.MINIMUM_VALUE):void 0;let T=this._groundGeometryOptions;T.positions=x,T.width=m.width,T.arcType=m.arcType,T.granularity=m.granularity,this._clampToGround=u(p)?p.getValue(He.MINIMUM_VALUE):!1,!this._clampToGround&&u(a)&&It("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Cd.prototype.createDynamicUpdater=function(e,t){return new Wv(e,t,this)};var AC={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function Wv(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function eue(e){if(u(e._line))return e._line;let t=e._geometryUpdater._scene.id,n=UB[t],i=e._primitives;!u(n)||n.isDestroyed()?(n=new Nh,UB[t]=n,i.add(n)):i.contains(n)||i.add(n);let o=n.add();return o.id=e._geometryUpdater._entity,e._line=o,o}Wv.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=j.getValueOrUndefined(o,e,this._positions);t._clampToGround=j.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=j.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=j.getValueOrDefault(i._arcType,e,Yt.GEODESIC),t._groundGeometryOptions.granularity=j.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(u(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)||!u(r)||r.length<2)return;let f=t.fillMaterialProperty,d;if(f instanceof Nt)d=new zr;else{let p=$o.getValue(e,f,this._material);d=new oa({material:p,translucent:p.isTranslucent()}),this._material=p}this._groundPolylinePrimitive=s.add(new fh({geometryInstances:t.createFillGeometryInstance(e),appearance:d,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),j.getValueOrUndefined(t.zIndex,e)),u(this._line)&&(this._line.show=!1);return}let a=eue(this);if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!u(r)||r.length<2){a.show=!1;return}let c=Yt.GEODESIC;c=j.getValueOrDefault(i._arcType,e,c);let l=t._scene.globe;c!==Yt.NONE&&u(l)&&(AC.ellipsoid=l.ellipsoid,AC.positions=r,AC.granularity=j.getValueOrUndefined(i._granularity,e),AC.height=Mi.extractHeights(r,l.ellipsoid),c===Yt.GEODESIC?r=Mi.generateCartesianArc(AC):r=Mi.generateCartesianRhumbArc(AC)),a.show=!0,a.positions=r.slice(),a.material=$o.getValue(e,t.fillMaterialProperty,a.material),a.width=j.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};Wv.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(u(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(u(n)&&u(n.boundingSphere))return se.clone(n.boundingSphere,e),at.DONE}return u(t)&&!t.ready?at.PENDING:at.DONE}else{let t=eue(this);if(t.show&&t.positions.length>0)return se.fromPoints(t.positions,e),at.DONE}return at.FAILED};Wv.prototype.isDestroyed=function(){return!1};Wv.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=UB[t];u(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete UB[t])),u(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),le(this)};var VB=Cd;var yKe=new z,xKe=new wt,bKe=new wt;function Ed(e,t,n,i,o){let r;n instanceof Nt?r=zr:r=oa,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new xt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new xt,this.material=void 0,this.updatersWithAttributes=new xt,this.attributes=new xt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Ed.prototype.onMaterialChanged,this),this.subscriptions=new xt,this.showsUpdated=new xt,this.zIndex=i,this._asynchronous=o}Ed.prototype.onMaterialChanged=function(){this.invalidated=!0};Ed.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Nt&&t instanceof Nt?!0:u(t)&&t.equals(n)};Ed.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Ed.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};Ed.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new fh({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===oa&&(this.material=$o.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===oa&&(this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let x=c.fillMaterialProperty.color,b=j.getValueOrDefault(x,e,z.WHITE,yKe);z.equals(d._lastColor,b)||(d._lastColor=z.clone(b,d._lastColor),d.color=kt.toValue(b,d.color))}let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=_n.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!j.isConstant(m)){let x=j.getValueOrDefault(m,e,bKe,xKe);wt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=wt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};Ed.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,l=a.show[0]===1;c!==l&&(a.show=_n.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Ed.prototype.contains=function(e){return this.updaters.contains(e.id)};Ed.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};Ed.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function CC(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}CC.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=j.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new Ed(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};CC.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};CC.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};CC.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};CC.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var zB=CC;var TKe=[];function tue(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function nue(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;u(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Nt?1:2);let r;u(i)&&(r=i+o*gn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Nt?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Zh(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new xt,this._removedObjects=new xt,this._changedObjects=new xt;let o,r=gn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new xd(n,zr,void 0,!1,o),this._materialBatches[o]=new Td(n,oa,void 0,!1,o),this._colorBatches[o+r]=new xd(n,zr,zr,!1,o),this._materialBatches[o+r]=new Td(n,oa,zr,!1,o),this._colorBatches[o+r*2]=new xd(n,zr,oa,!1,o),this._materialBatches[o+r*2]=new Td(n,oa,oa,!1,o);this._dynamicBatch=new KA(n,i);let s=Un.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new zB(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new xt,this._updaters=new xt,this._entityCollection=t,t.collectionChanged.addEventListener(Zh.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,TKe)}Zh.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,l,f;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaters.get(l),f.entity===c?(tue(this,f),nue(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],l=c.id,f=this._updaters.get(l),tue(this,f),f.destroy(),this._updaters.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new VB(c,this._scene),this._updaters.set(l,f),nue(this,e,f),this._subscriptions.set(l,f.geometryChanged.addEventListener(Zh._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var AKe=[],CKe=new se;Zh.prototype.getBoundingSphere=function(e,t){let n=AKe,i=CKe,o=0,r=at.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let l=0;l<a;l++){if(r=s[l].getBoundingSphere(c,i),r===at.PENDING)return at.PENDING;r===at.DONE&&(n[o]=se.clone(i,n[o]),o++)}return o===0?at.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),at.DONE)};Zh.prototype.isDestroyed=function(){return!1};Zh.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Zh.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),le(this)};Zh._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!u(t.get(o))&&!u(n.get(o))&&n.set(o,i)};Zh.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var HB=Zh;function hf(e){Zc.initializeTerrainHeights(),fh.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Or,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,hf.defaultVisualizersCallback);let i=!1,o=new Zl,r=new Zl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let l=0,f=n.length;l<f;l++)this._onDataSourceAdded(n,n.get(l));let s=new kF;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let l=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),l._removeDefaultDataSourceListener=void 0,l._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}hf.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new SR(t,i),new MB(e,i,n._primitives,n._groundPrimitives),new LB(t,i),new FB(e,i),new CF(e,i),new kB(t,i),new BB(e,i),new HB(e,i,n._primitives,n._groundPrimitives)]};Object.defineProperties(hf.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});hf.prototype.isDestroyed=function(){return!1};hf.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),u(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),le(this)};hf.prototype.update=function(e){if(!li.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(u(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return this._ready=t,t};hf.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;u(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(u(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var EKe=[],SKe=new se;hf.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return at.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let g=p.get(i);if(g.entities.contains(e)){r=g;break}}}if(!u(r))return at.FAILED;let s=EKe,a=SKe,c=0,l=at.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(u(p.getBoundingSphere)){if(l=f[i].getBoundingSphere(e,a),!t&&l===at.PENDING)return at.PENDING;l===at.DONE&&(s[c]=se.clone(a,s[c]),c++)}}return c===0?at.FAILED:(s.length=c,se.fromBoundingSpheres(s,n),at.DONE)};hf.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new Zl),s=o.add(new nB);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};hf.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let l=0;l<c;l++)a[l].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};hf.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var GB=hf;function EW(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}EW.clone=function(e,t){if(u(e))return u(t)||(t=new EW),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Sd=EW;var iue=new $,oue=new $,rue=new $,wKe=new L,WB=new h,sue=new h,SW=new h,wW=new h,aue=new h,cue=new h,EC=new J,vKe=1.25;function DKe(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(u(c)){let l=!1,f=!1,d,p,g;if(a===te.SCENE3D){J.addSeconds(r,.001,EC);let A=o.getValue(EC,WB);if(u(A)||(J.addSeconds(r,-.001,EC),A=o.getValue(EC,WB),f=!0),u(A)){let C=Rt.computeFixedToIcrfMatrix(r,iue),S=Rt.computeFixedToIcrfMatrix(EC,oue),w;!u(C)||!u(S)?(w=Rt.computeTemeToPseudoFixedMatrix(r,rue),C=$.transpose(w,iue),S=Rt.computeTemeToPseudoFixedMatrix(EC,oue),$.transpose(S,S)):w=$.transpose(C,rue);let D=$.multiplyByVector(C,c,aue),O=$.multiplyByVector(S,A,cue);h.subtract(D,O,wW);let R=h.magnitude(wW)*1e3,N=P.GRAVITATIONALPARAMETER,F=-N/(R*R-2*N/h.magnitude(D));F<0||F>vKe*s.maximumRadius?(d=sue,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,SW),p=h.cross(g,d,WB),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,SW),h.normalize(g,g),l=!0)):h.equalsEpsilon(c,A,P.EPSILON7)||(g=sue,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,SW),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,WB),$.multiplyByVector(w,d,d),$.multiplyByVector(w,p,p),$.multiplyByVector(w,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),l=!0))}}u(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,wW),x=h.clone(t.direction,aue),b=h.clone(t.up,cue));let T=wKe;l?(T[0]=d.x,T[1]=d.y,T[2]=d.z,T[3]=0,T[4]=p.x,T[5]=p.y,T[6]=p.z,T[7]=0,T[8]=g.x,T[9]=g.y,T[10]=g.z,T[11]=0,T[12]=c.x,T[13]=c.y,T[14]=c.z,T[15]=0):Rt.eastNorthUpToFixedFrame(c,s,T),t._setTransform(T),i&&(h.clone(m,t.position),h.clone(x,t.direction),h.clone(b,t.up),h.cross(x,b,t.right))}if(n){let l=a===te.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,l)}}function jv(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ie.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(jv,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});jv.defaultOffset3D=new h(-14e3,3500,3500);var jB=new Sd,IKe=new h;jv.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===te.MORPHING)return;let r=this.entity,s=r.position;if(!u(s))return;let a=r!==this._lastEntity,c=o!==this._mode,l=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=u(p);if(!g&&u(t)){jB.pitch=-P.PI_OVER_FOUR,jB.range=0;let m=s.getValue(e,IKe);if(u(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);jB.pitch*=x}l.viewBoundingSphere(t,jB),this.boundingSphere=t,f=!1,d=!1}else(!g||!u(p.getValue(e,this._offset3D)))&&h.clone(jv._defaultOffset3D,this._offset3D)}else!c&&this._mode!==te.SCENE2D&&h.clone(l.position,this._offset3D);this._lastEntity=r,this._mode=o,DKe(this,l,f,d,s,e,i)};var qB=jv;function Yv(){this._cache={}}Yv.prototype.fromColor=function(e,t){return YB(void 0,void 0,e,t,this._cache)};Yv.prototype.fromUrl=function(e,t,n){return YB(e,void 0,t,n,this._cache)};Yv.prototype.fromMakiIconId=function(e,t,n){return YB($t(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};Yv.prototype.fromText=function(e,t,n){return YB(void 0,e,t,n,this._cache)};var PKe=new z;function OKe(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,PKe).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function lue(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var qv=new Array(4);function YB(e,t,n,i,o){qv[0]=e,qv[1]=t,qv[2]=n,qv[3]=i;let r=JSON.stringify(qv),s=o[r];if(u(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(OKe(c,n,i),u(e)){let f=ve.createIfNeeded(e).fetchImage().then(function(d){return lue(c,d,i),o[r]=a,a});return o[r]=f,f}else if(u(t)){let l=rA(t,{font:`bold ${i}px sans-serif`});lue(c,l,i)}return o[r]=a,a}var Gg=Yv;function vW(e){return e}function XB(e){if(e==null)return vW;var t,n,i=e.scale[0],o=e.scale[1],r=e.translate[0],s=e.translate[1];return function(a,c){c||(t=n=0);var l=2,f=a.length,d=new Array(f);for(d[0]=(t+=a[0])*i+r,d[1]=(n+=a[1])*o+s;l<f;)d[l]=a[l],++l;return d}}function uue(e,t){for(var n,i=e.length,o=i-t;o<--i;)n=e[o],e[o++]=e[i],e[i]=n}function DW(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return fue(e,n)})}:fue(e,t)}function fue(e,t){var n=t.id,i=t.bbox,o=t.properties==null?{}:t.properties,r=IW(e,t);return n==null&&i==null?{type:"Feature",properties:o,geometry:r}:i==null?{type:"Feature",id:n,properties:o,geometry:r}:{type:"Feature",id:n,bbox:i,properties:o,geometry:r}}function IW(e,t){var n=XB(e.transform),i=e.arcs;function o(f,d){d.length&&d.pop();for(var p=i[f<0?~f:f],g=0,m=p.length;g<m;++g)d.push(n(p[g],g));f<0&&uue(d,m)}function r(f){return n(f)}function s(f){for(var d=[],p=0,g=f.length;p<g;++p)o(f[p],d);return d.length<2&&d.push(d[0]),d}function a(f){for(var d=s(f);d.length<4;)d.push(d[0]);return d}function c(f){return f.map(a)}function l(f){var d=f.type,p;switch(d){case"GeometryCollection":return{type:d,geometries:f.geometries.map(l)};case"Point":p=r(f.coordinates);break;case"MultiPoint":p=f.coordinates.map(r);break;case"LineString":p=s(f.arcs);break;case"MultiLineString":p=f.arcs.map(s);break;case"Polygon":p=c(f.arcs);break;case"MultiPolygon":p=f.arcs.map(c);break;default:return null}return{type:d,coordinates:p}}return l(t)}function KB(e){return h.fromDegrees(e[0],e[1],e[2])}var PW={"urn:ogc:def:crs:OGC:1.3:CRS84":KB,"EPSG:4326":KB,"urn:ogc:def:crs:EPSG::4326":KB},due={},hue={},OW=48,RW,MW=z.ROYALBLUE,LW=z.YELLOW,NW=2,FW=z.fromBytes(255,255,0,100),BW=!1,FKe={small:24,medium:48,large:64},BKe=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function mue(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||BKe.indexOf(i)!==-1)continue;let o=e[i];u(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${mue(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function kKe(e,t,n){let i;return function(o,r){return u(i)||(i=e(t,n)),i}}function UKe(e,t){return new _h(kKe(mue,e,t),!0)}function ZB(e,t,n){let i=e.id;if(!u(i)||e.type!=="Feature")i=Gn();else{let s=2,a=i;for(;u(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(u(r)){o.properties=r;let s,a=r.title;if(u(a))o.name=a,s="title";else{let l=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(l>1&&d==="title"){l=1,s=f;break}else l>2&&d==="name"?(l=2,s=f):l>3&&/title/i.test(f)?(l=3,s=f):l>4&&/name/i.test(f)&&(l=4,s=f)}u(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=u(c)?new Zn(c):n(r,s))}return o}function kW(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var pue={Feature:gue,FeatureCollection:VKe,GeometryCollection:yue,LineString:Cue,MultiLineString:Eue,MultiPoint:Tue,MultiPolygon:vue,Point:bue,Polygon:wue,Topology:Due},_ue={GeometryCollection:yue,LineString:Cue,MultiLineString:Eue,MultiPoint:Tue,MultiPolygon:vue,Point:bue,Polygon:wue,Topology:Due};function gue(e,t,n,i,o){if(t.geometry===null){ZB(t,e._entityCollection,o.describe);return}if(!u(t.geometry))throw new ue("feature.geometry is required.");let r=t.geometry.type,s=_ue[r];if(!u(s))throw new ue(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function VKe(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)gue(e,r[s],void 0,i,o)}function yue(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],l=c.type,f=_ue[l];if(!u(f))throw new ue(`Unknown geometry type: ${l}`);f(e,t,c,i,o)}}function xue(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(u(c)){let g=c["marker-color"];u(g)&&(s=z.fromCssColorString(g)),a=y(FKe[c["marker-size"]],a);let m=c["marker-symbol"];u(m)&&(r=m)}let l;u(r)?r.length===1?l=e._pinBuilder.fromText(r.toUpperCase(),s,a):l=e._pinBuilder.fromMakiIconId(r,s,a):l=e._pinBuilder.fromColor(s,a);let f=new cc;f.verticalOrigin=new Zn(Pn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=We.CLAMP_TO_GROUND);let d=ZB(t,e._entityCollection,o.describe);d.billboard=f,d.position=new $c(n(i));let p=Promise.resolve(l).then(function(g){f.image=new Zn(g)}).catch(function(){f.image=new Zn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function bue(e,t,n,i,o){xue(e,t,i,n.coordinates,o)}function Tue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)xue(e,t,i,r[s],o)}function Aue(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(u(a)){let f=a["stroke-width"];u(f)&&(s=new Zn(f));let d,p=a.stroke;u(p)&&(d=z.fromCssColorString(p));let g=a["stroke-opacity"];u(g)&&g!==1&&(u(d)||(d=r.color.getValue().clone()),d.alpha=g),u(d)&&(r=new Nt(d))}let c=ZB(t,e._entityCollection,o.describe),l=new mc;c.polyline=l,l.clampToGround=o.clampToGround,l.material=r,l.width=s,l.positions=new Zn(kW(i,n)),l.arcType=Yt.RHUMB}function Cue(e,t,n,i,o){Aue(e,t,i,n.coordinates,o)}function Eue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)Aue(e,t,i,r[s],o)}function Sue(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(u(c)){let g=c["stroke-width"];u(g)&&(a=new Zn(g));let m,x=c.stroke;u(x)&&(m=z.fromCssColorString(x));let b=c["stroke-opacity"];u(b)&&b!==1&&(u(m)||(m=r.getValue().clone()),m.alpha=b),u(m)&&(r=new Zn(m));let T,A=c.fill,C=s.color.getValue();u(A)&&(T=z.fromCssColorString(A),T.alpha=C.alpha),b=c["fill-opacity"],u(b)&&b!==C.alpha&&(u(T)||(T=C.clone()),T.alpha=b),u(T)&&(s=new Nt(T))}let l=new hh;l.outline=new Zn(!0),l.outlineColor=r,l.outlineWidth=a,l.material=s,l.arcType=Yt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new Ia(kW(i[g],n)));let d=i[0];l.hierarchy=new Zn(new Ia(kW(d,n),f)),d[0].length>2?l.perPositionHeight=new Zn(!0):o.clampToGround||(l.height=0);let p=ZB(t,e._entityCollection,o.describe);p.polygon=l}function wue(e,t,n,i,o){Sue(e,t,i,n.coordinates,o)}function vue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)Sue(e,t,i,r[s],o)}function Due(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=DW(n,n.objects[r]),a=pue[s.type];a(e,s,s,i,o)}}function Wg(e){this._name=e,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._entityCollection=new Vs(this),this._promises=[],this._pinBuilder=new Gg,this._entityCluster=new of,this._credit=void 0,this._resourceCredits=[]}Wg.load=function(e,t){return new Wg().load(e,t)};Object.defineProperties(Wg,{markerSize:{get:function(){return OW},set:function(e){OW=e}},markerSymbol:{get:function(){return RW},set:function(e){RW=e}},markerColor:{get:function(){return MW},set:function(e){MW=e}},stroke:{get:function(){return LW},set:function(e){LW=e}},strokeWidth:{get:function(){return NW},set:function(e){NW=e}},fill:{get:function(){return FW},set:function(e){FW=e}},clampToGround:{get:function(){return BW},set:function(e){BW=e}},crsNames:{get:function(){return PW}},crsLinkHrefs:{get:function(){return due}},crsLinkTypes:{get:function(){return hue}}});Object.defineProperties(Wg.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});Wg.prototype.load=function(e,t){return Iue(this,e,t,!0)};Wg.prototype.process=function(e,t){return Iue(this,e,t,!1)};function Iue(e,t,n,i){Mr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new bt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return n={describe:y(n.describe,UKe),markerSize:y(n.markerSize,OW),markerSymbol:y(n.markerSymbol,RW),markerColor:y(n.markerColor,MW),strokeWidthProperty:new Zn(y(n.strokeWidth,NW)),strokeMaterialProperty:new Nt(y(n.stroke,LW)),fillMaterialProperty:new Nt(y(n.fill,FW)),clampToGround:y(n.clampToGround,BW)},Promise.resolve(r).then(function(a){return zKe(e,a,n,s,i)}).catch(function(a){throw Mr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}Wg.prototype.update=function(e){return!0};function zKe(e,t,n,i,o){let r;u(i)&&(r=Sg(i)),u(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=pue[t.type];if(!u(s))throw new ue(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?KB:null;if(u(a)){if(!u(a.properties))throw new ue("crs.properties is undefined.");let l=a.properties;if(a.type==="name"){if(c=PW[l.name],!u(c))throw new ue(`Unknown crs name: ${l.name}`)}else if(a.type==="link"){let f=due[l.href];if(u(f)||(f=hue[l.type]),!u(f))throw new ue(`Unable to resolve crs link: ${JSON.stringify(l)}`);c=f(l)}else if(a.type==="EPSG"){if(c=PW[`EPSG:${l.code}`],!u(c))throw new ue(`Unknown crs EPSG code: ${l.code}`)}else throw new ue(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(l){return o&&e._entityCollection.removeAll(),l!==null&&s(e,t,t,l,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Mr.setLoading(e,!1),e})})}var $B=Wg;var Pue="4.0.0";function HKe(e){return e===void 0}function tu(e){return typeof e=="boolean"}function Oue(e,t){for(var n in t)t.hasOwnProperty(n)&&HKe(e[n])&&(e[n]=t[n]);return e}function Rue(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function Ro(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function jg(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function qg(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var Yg=/[A-Za-z]/,Ss=/[\d]/;var nu=/\s/,QB=/['"]/,Mue=/[\x00-\x1F\x7F]/,Lue=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,GKe=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,WKe=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,jKe=Lue+GKe+WKe,Nue=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,JGn=new RegExp("[".concat(Lue+Nue,"]")),UW=jKe+Nue,wd=new RegExp("[".concat(UW,"]"));var JB=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(nu):[],o=t.split(nu),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(nu):[],o=t.split(nu),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();function Fue(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(A){var C={},S=A,w=S.match(/^([a-z]+):\/\//i);return w&&(C.scheme=w[1],S=S.substr(w[0].length)),w=S.match(/^(.*?)(?=(\?|#|\/|$))/i),w&&(C.host=w[1],S=S.substr(w[0].length)),w=S.match(/^\/(.*?)(?=(\?|#|$))/i),w&&(C.path=w[1],S=S.substr(w[0].length)),w=S.match(/^\?(.*?)(?=(#|$))/i),w&&(C.query=w[1],S=S.substr(w[0].length)),w=S.match(/^#(.*?)$/i),w&&(C.fragment=w[1]),C},s=function(A){var C="";return A.scheme&&A.host&&(C+=A.scheme+"://"),A.host&&(C+=A.host),A.path&&(C+="/"+A.path),A.query&&(C+="?"+A.query),A.fragment&&(C+="#"+A.fragment),C},a=function(A,C){var S=C/2,w=Math.ceil(S),D=-1*Math.floor(S),O="";return D<0&&(O=A.substr(D)),A.substr(0,w)+n+O};if(e.length<=t)return e;var c=t-o,l=r(e);if(l.query){var f=l.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(l.query=l.query.substr(0,f[1].length),e=s(l))}if(e.length<=t||(l.host&&(l.host=l.host.replace(/^www\./,""),e=s(l)),e.length<=t))return e;var d="";if(l.host&&(d+=l.host),d.length>=c)return l.host.length==t?(l.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(l.path&&(p+="/"+l.path),l.query&&(p+="?"+l.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(l.fragment){var m="#"+l.fragment;if((d+m).length>=c){if((d+m).length==t)return(d+m).substr(0,t);var x=c-d.length;return(d+a(m,x)).substr(0,c+i)}else d+=m}if(l.scheme&&l.host){var b=l.scheme+"://";if((d+b).length<c)return(b+d).substr(0,t)}if(d.length<=t)return d;var T="";return c>0&&(T=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+T).substr(0,c+i)}function Bue(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}function kue(e,t,n){return Rue(e,t,n)}var Uue=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new JB({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,o=n.location;return o==="smart"?Fue(t,i):o==="middle"?Bue(t,i):kue(t,i)},e}();var VW=function(e,t){return VW=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},VW(e,t)};function $h(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");VW(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var ws=function(){return ws=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},ws.apply(this,arguments)};var Qh=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();var qKe="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)",Vue=new RegExp("^"+qKe+"$");var YKe=/[\/?#]/,XKe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/,zue=/[?!:,.;^]/,zW=/https?:\/\//i,Hue=new RegExp("^"+zW.source,"i"),Gue=new RegExp(zue.source+"$"),KKe=/^(javascript|vbscript):/i,ZKe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/,$Ke=/^(?:\/\/)?([^/#?:]+)/;function e3(e){return Yg.test(e)}function HW(e){return Yg.test(e)||Ss.test(e)||e==="+"||e==="-"||e==="."}function Bp(e){return wd.test(e)}function t3(e){return e==="_"||Bp(e)}function GW(e){return wd.test(e)||XKe.test(e)||zue.test(e)}function n3(e){return YKe.test(e)}function WW(e){return Vue.test(e.toLowerCase())}function Wue(e){if(KKe.test(e))return!1;var t=e.match(ZKe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!Yg.test(i))}function jue(e){var t=e.match($Ke);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!WW(o)}var QKe=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,JKe=/[:/?#]/;function que(e){var t=e.split(JKe,1)[0];return QKe.test(t)}var eZe=/^(https?:\/\/)?(www\.)?/i,tZe=/^\/\//,Yue=function(e){$h(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=oZe(n)),this.stripPrefix.scheme&&(n=nZe(n)),this.stripPrefix.www&&(n=iZe(n)),this.stripTrailingSlash&&(n=rZe(n)),this.decodePercentEncoding&&(n=sZe(n)),n},t}(Qh);function nZe(e){return e.replace(Hue,"")}function iZe(e){return e.replace(eZe,"$1")}function oZe(e){return e.replace(tZe,"")}function rZe(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function sZe(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}var Xue=/^mailto:/i,aZe=new RegExp("[".concat(UW,"!#$%&'*+/=?^_`{|}~-]"));function Kue(e){return wd.test(e)}function i3(e){return aZe.test(e)}function Zue(e){var t=e.split(".").pop()||"";return WW(t)}var $ue=function(e){$h(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Qh);function jW(e){return e==="_"||wd.test(e)}function Que(e){return e.length<=140}var Jue=["twitter","facebook","instagram","tiktok"];var efe=function(e){$h(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https:
- ${o}`),t}var Up=pJe;var _Je={NONE:0,LERC:1},Md=Object.freeze(_Je);var gJe={NONE:0,BITS12:1},Xs=Object.freeze(gJe);var wx=new h,yJe=new h,_f=new V,hk=new L,xJe=new L,bJe=Math.pow(2,12);function Ga(e,t,n,i,o,r,s,a,c,l){let f=Xs.NONE,d,p;if(u(t)&&u(n)&&u(i)&&u(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,yJe),b=i-n;Math.max(h.maximumComponent(x),b)<bJe-1?f=Xs.BITS12:f=Xs.NONE,d=L.inverseTransformation(o,new L);let A=h.negate(g,wx);L.multiply(L.fromTranslation(A,hk),d,d);let C=wx;C.x=1/x.x,C.y=1/x.y,C.z=1/x.z,L.multiply(L.fromScale(C,hk),d,d),p=L.clone(o),L.setTranslation(p,h.ZERO,p),o=L.clone(o,new L);let S=L.fromTranslation(g,hk),w=L.fromScale(x,xJe),D=L.multiply(S,w,hk);L.multiply(o,D,o),L.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=d,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(l,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Ga.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,l=i.y;if(this.quantization===Xs.BITS12){n=L.multiplyByPoint(this.toScaledENU,n,wx),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((o-this.minimumHeight)/f,0,1);V.fromElements(n.x,n.y,_f);let p=jn.compressTextureCoordinates(_f);V.fromElements(n.z,d,_f);let g=jn.compressTextureCoordinates(_f);V.fromElements(c,l,_f);let m=jn.compressTextureCoordinates(_f);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){V.fromElements(s,0,_f);let x=jn.compressTextureCoordinates(_f);e[t++]=x}}else h.subtract(n,this.center,wx),e[t++]=wx.x,e[t++]=wx.y,e[t++]=wx.z,e[t++]=o,e[t++]=c,e[t++]=l,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=jn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var TJe=new h,Ahe=new h;Ga.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*r+f;t[p]=e[d]}let a=this.decodePosition(t,s,TJe),c=n.geodeticSurfaceNormal(a,Ahe),l=s*r+this._offsetGeodeticSurfaceNormal;t[l]=c.x,t[l+1]=c.y,t[l+2]=c.z}};Ga.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};Ga.prototype.decodePosition=function(e,t,n){if(u(n)||(n=new h),t*=this.stride,this.quantization===Xs.BITS12){let i=jn.decompressTextureCoordinates(e[t],_f);n.x=i.x,n.y=i.y;let o=jn.decompressTextureCoordinates(e[t+1],_f);return n.z=o.x,L.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};Ga.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,Ahe),a=this.decodeHeight(e,t),c=Yc.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Ga.prototype.decodeTextureCoordinates=function(e,t,n){return u(n)||(n=new V),t*=this.stride,this.quantization===Xs.BITS12?jn.decompressTextureCoordinates(e[t+2],n):V.fromElements(e[t+4],e[t+5],n)};Ga.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Xs.BITS12?jn.decompressTextureCoordinates(e[t+1],_f).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Ga.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Xs.BITS12?jn.decompressTextureCoordinates(e[t+3],_f).x:e[t+6]};Ga.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return V.fromElements(o,r,n)};Ga.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};Ga.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Xs.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var mk={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},pk={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Ga.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===Xs.NONE){s(mk.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(mk.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(mk.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(pk.compressed0,a?4:3),c&&s(pk.compressed1,1),this.hasGeodeticSurfaceNormals&&s(pk.geodeticSurfaceNormal,3)}return r};Ga.prototype.getAttributeLocations=function(){return this.quantization===Xs.NONE?mk:pk};Ga.clone=function(e,t){if(u(e))return u(t)||(t=new Ga),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=L.clone(e.toScaledENU),t.fromScaledENU=L.clone(e.fromScaledENU),t.matrix=L.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var Dc=Ga;var om={};om.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var s7=new h,AJe=new L,CJe=new h,EJe=new h;om.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,l=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,ie.WGS84),x=1/m.maximumRadius,b=ce.clone(e.nativeRectangle),T=ce.clone(e.rectangle),A,C,S,w;u(T)?(A=T.west,C=T.south,S=T.east,w=T.north):g?(A=a(b.west),C=a(b.south),S=a(b.east),w=a(b.north)):(A=b.west*x,C=s-2*o(r(-b.south*x)),S=b.east*x,w=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=u(D);D=O?D:h.ZERO;let R=y(e.includeWebMercatorT,!1),N=y(e.exaggeration,1),F=y(e.exaggerationRelativeHeight,0),E=N!==1,v=y(e.structure,om.DEFAULT_STRUCTURE),I=y(v.heightScale,om.DEFAULT_STRUCTURE.heightScale),M=y(v.heightOffset,om.DEFAULT_STRUCTURE.heightOffset),B=y(v.elementsPerHeight,om.DEFAULT_STRUCTURE.elementsPerHeight),H=y(v.stride,om.DEFAULT_STRUCTURE.stride),U=y(v.elementMultiplier,om.DEFAULT_STRUCTURE.elementMultiplier),G=y(v.isBigEndian,om.DEFAULT_STRUCTURE.isBigEndian),k=ce.computeWidth(b),Y=ce.computeHeight(b),q=k/(l-1),Q=Y/(f-1);g||(k*=x,Y*=x);let W=m.radiiSquared,K=W.x,Z=W.y,me=W.z,xe=65536,re=-65536,ge=Rt.eastNorthUpToFixedFrame(D,m),ye=L.inverseTransformation(ge,AJe),Ae,De;R&&(Ae=Oi.geodeticLatitudeToMercatorAngle(C),De=1/(Oi.geodeticLatitudeToMercatorAngle(w)-Ae));let Fe=CJe;Fe.x=Number.POSITIVE_INFINITY,Fe.y=Number.POSITIVE_INFINITY,Fe.z=Number.POSITIVE_INFINITY;let Re=EJe;Re.x=Number.NEGATIVE_INFINITY,Re.y=Number.NEGATIVE_INFINITY,Re.z=Number.NEGATIVE_INFINITY;let Ue=Number.POSITIVE_INFINITY,st=l*f,pt=d>0?l*2+f*2:0,nt=st+pt,sn=new Array(nt),Rn=new Array(nt),Ut=new Array(nt),Ft=R?new Array(nt):[],he=E?new Array(nt):[],be=0,jt=f,lt=0,ui=l;p&&(--be,++jt,--lt,++ui);let qi=1e-5;for(let Xe=be;Xe<jt;++Xe){let ht=Xe;ht<0&&(ht=0),ht>=f&&(ht=f-1);let Vt=b.north-Q*ht;g?Vt=a(Vt):Vt=s-2*o(r(-Vt*x));let xn=(Vt-C)/(w-C);xn=P.clamp(xn,0,1);let ai=Xe===be,uo=Xe===jt-1;d>0&&(ai?Vt+=qi*Y:uo&&(Vt-=qi*Y));let Kr=t(Vt),Zr=n(Vt),Mo=me*Zr,Ui;R&&(Ui=(Oi.geodeticLatitudeToMercatorAngle(Vt)-Ae)*De);for(let $r=lt;$r<ui;++$r){let Hn=$r;Hn<0&&(Hn=0),Hn>=l&&(Hn=l-1);let Mn=ht*(l*H)+Hn*H,cn;if(B===1)cn=c[Mn];else{cn=0;let xa;if(G)for(xa=0;xa<B;++xa)cn=cn*U+c[Mn+xa];else for(xa=B-1;xa>=0;--xa)cn=cn*U+c[Mn+xa]}cn=cn*I+M,re=Math.max(re,cn),xe=Math.min(xe,cn);let mi=b.west+q*Hn;g?mi=a(mi):mi=mi*x;let ci=(mi-A)/(S-A);ci=P.clamp(ci,0,1);let Ds=ht*l+Hn;if(d>0){let xa=$r===lt,$d=$r===ui-1,fb=ai||uo||xa||$d;if((ai||uo)&&(xa||$d))continue;fb&&(cn-=d,xa?(Ds=st+(f-ht-1),mi-=qi*k):uo?Ds=st+f+(l-Hn-1):$d?(Ds=st+f+l+ht,mi+=qi*k):ai&&(Ds=st+f+l+f+Hn))}let fi=Kr*t(mi),wr=Kr*n(mi),Zd=K*fi,ir=Z*wr,Fc=1/i(Zd*fi+ir*wr+Mo*Zr),Vy=Zd*Fc,kr=ir*Fc,tc=Mo*Fc,Eu=new h;Eu.x=Vy+fi*cn,Eu.y=kr+wr*cn,Eu.z=tc+Zr*cn,L.multiplyByPoint(ye,Eu,s7),h.minimumByComponent(s7,Fe,Fe),h.maximumByComponent(s7,Re,Re),Ue=Math.min(Ue,cn),sn[Ds]=Eu,Ut[Ds]=new V(ci,xn),Rn[Ds]=cn,R&&(Ft[Ds]=Ui),E&&(he[Ds]=m.geodeticSurfaceNormal(Eu))}}let ec=se.fromPoints(sn),fs;u(T)&&(fs=On.fromRectangle(T,xe,re,m));let ds;O&&(ds=new Eg(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,sn,xe));let Xr=new i0(Fe,Re,D),Me=new Dc(D,Xr,Ue,re,ge,!1,R,E,N,F),Ke=new Float32Array(nt*Me.stride),Ze=0;for(let Xe=0;Xe<nt;++Xe)Ze=Me.encode(Ke,Ze,sn[Xe],Ut[Xe],Rn[Xe],void 0,Ft[Xe],he[Xe]);return{vertices:Ke,maximumHeight:re,minimumHeight:xe,encoding:Me,boundingSphere3D:ec,orientedBoundingBox:fs,occludeePointInScaledSpace:ds}};var lD=om;function iy(){de.throwInstantiationError()}Object.defineProperties(iy.prototype,{credits:{get:de.throwInstantiationError},waterMask:{get:de.throwInstantiationError}});iy.prototype.interpolateHeight=de.throwInstantiationError;iy.prototype.isChildAvailable=de.throwInstantiationError;iy.prototype.createMesh=de.throwInstantiationError;iy.prototype.upsample=de.throwInstantiationError;iy.prototype.wasCreatedByUpsampling=de.throwInstantiationError;iy.maximumAsynchronousTasks=5;var rm=iy;function SJe(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(l,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=m,this.northIndicesWestToEast=x}var Ld=SJe;function Ic(){de.throwInstantiationError()}Object.defineProperties(Ic.prototype,{errorEvent:{get:de.throwInstantiationError},credit:{get:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},hasWaterMask:{get:de.throwInstantiationError},hasVertexNormals:{get:de.throwInstantiationError},availability:{get:de.throwInstantiationError}});var Che=[];Ic.getRegularGridIndices=function(e,t){let n=Che[e];u(n)||(Che[e]=n=[]);let i=n[t];return u(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),vhe(e,t,i,0)),i};var Ehe=[];Ic.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Ehe[e];u(n)||(Ehe[e]=n=[]);let i=n[t];if(!u(i)){let o=Ic.getRegularGridIndices(e,t),r=whe(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,l=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:l}}return i};var She=[];Ic.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=She[e];u(n)||(She[e]=n=[]);let i=n[t];if(!u(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,l=r+a,f=whe(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=ke.createTypedArray(c,l);vhe(e,t,x,0),Ic.addSkirtIndices(d,p,g,m,o,x,r),i=n[t]={indices:x,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:m,indexCountWithoutSkirts:r}}return i};Ic.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=_k(e,a,r,s),a+=e.length,s=_k(t,a,r,s),a+=t.length,s=_k(n,a,r,s),a+=n.length,_k(i,a,r,s)};function whe(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function vhe(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,l=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=l,++o}++o}}function _k(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}Ic.heightmapTerrainQuality=.25;Ic.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*Ic.heightmapTerrainQuality/(t*n)};Ic.prototype.requestTileGeometry=de.throwInstantiationError;Ic.prototype.getLevelMaximumGeometricError=de.throwInstantiationError;Ic.prototype.getTileDataAvailable=de.throwInstantiationError;Ic.prototype.loadTileDataAvailability=de.throwInstantiationError;var jr=Ic;function Vp(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,Md.NONE);let t=lD.DEFAULT_STRUCTURE,n=e.structure;u(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===Md.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(Vp.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Dhe="createVerticesFromHeightmap",wJe=new pi(Dhe),vJe=new pi(Dhe,rm.maximumAsynchronousTasks);Vp.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,l=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(ce.center(f)),p=this._structure,m=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?vJe:wJe).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:l,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ii,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!u(b))return;let T=this;return Promise.resolve(b).then(function(A){let C;T._skirtHeight>0?C=jr.getRegularGridAndSkirtIndicesAndEdgeIndices(A.gridWidth,A.gridHeight):C=jr.getRegularGridIndicesAndEdgeIndices(A.gridWidth,A.gridHeight);let S=A.gridWidth*A.gridHeight;return T._mesh=new Ld(d,new Float32Array(A.vertices),C.indices,C.indexCountWithoutSkirts,S,A.minimumHeight,A.maximumHeight,se.clone(A.boundingSphere3D),h.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,On.clone(A.orientedBoundingBox),Dc.clone(A.encoding),C.westIndicesSouthToNorth,C.southIndicesEastToWest,C.eastIndicesNorthToSouth,C.northIndicesWestToEast),T._buffer=void 0,T._mesh})};Vp.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),l=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(ce.center(l)),d=this._structure,g=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=lD.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:l,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ii,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=jr.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=jr.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let b=m.gridWidth*m.gridHeight;return this._mesh=new Ld(f,m.vertices,x.indices,x.indexCountWithoutSkirts,b,m.minimumHeight,m.maximumHeight,m.boundingSphere3D,m.occludeePointInScaledSpace,m.encoding.stride,m.orientedBoundingBox,m.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};Vp.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,l=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=u(this._mesh),g=this._encoding===Md.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=Ihe(b,T,f,d,e,i,o,t,n)}else x=DJe(this._buffer,a,c,s,l,e,i,o,t,n),x=x*d+f;return x};Vp.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!u(a))return;let c=this._width,l=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*l*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,A=f.heightScale,C=f.elementsPerHeight,S=f.elementMultiplier,w=f.isBigEndian,D=Math.pow(S,C-1);for(let O=0;O<l;++O){let R=P.lerp(b.north,b.south,O/(l-1));for(let N=0;N<c;++N){let F=P.lerp(b.west,b.east,N/(c-1)),_=Ihe(g,m,T,A,x,c,l,F,R);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,IJe(p,C,S,D,d,w,O*c+N,_)}}return Promise.resolve(new Vp({buffer:p,width:c,height:l,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};Vp.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};Vp.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function DJe(e,t,n,i,o,r,s,a,c,l){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(l-r.south)*(a-1)/(r.north-r.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let m=d|0,x=m+1;x>=a&&(x=a-1,m=a-2);let b=f-p,T=d-m;m=a-1-m,x=a-1-x;let A=gk(e,t,n,i,o,m*s+p),C=gk(e,t,n,i,o,m*s+g),S=gk(e,t,n,i,o,x*s+p),w=gk(e,t,n,i,o,x*s+g);return Phe(b,T,A,C,S,w)}function Ihe(e,t,n,i,o,r,s,a,c){let l=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=l|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,m=g+1;m>=s&&(m=s-1,g=s-2);let x=l-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,A=(t.decodeHeight(e,g*r+p)-n)/i,C=(t.decodeHeight(e,m*r+d)-n)/i,S=(t.decodeHeight(e,m*r+p)-n)/i;return Phe(x,b,T,A,C,S)}function Phe(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function gk(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function IJe(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var Wa=Vp;function kC(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,u(this._tilingScheme)||(this._tilingScheme=new Gi({ellipsoid:y(e.ellipsoid,ie.WGS84)})),this._levelZeroMaximumGeometricError=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new pe}Object.defineProperties(kC.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});kC.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new Wa({buffer:new Uint8Array(16*16),width:16,height:16}))};kC.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};kC.prototype.getTileDataAvailable=function(e,t,n){};kC.prototype.loadTileDataAvailability=function(e,t,n){};var zp=kC;var yk=`uniform vec4 u_initialColor;
- #if TEXTURE_UNITS > 0
- uniform sampler2D u_dayTextures[TEXTURE_UNITS];
- uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS];
- uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS];
- #ifdef APPLY_ALPHA
- uniform float u_dayTextureAlpha[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_DAY_NIGHT_ALPHA
- uniform float u_dayTextureNightAlpha[TEXTURE_UNITS];
- uniform float u_dayTextureDayAlpha[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_SPLIT
- uniform float u_dayTextureSplit[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_BRIGHTNESS
- uniform float u_dayTextureBrightness[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_CONTRAST
- uniform float u_dayTextureContrast[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_HUE
- uniform float u_dayTextureHue[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_SATURATION
- uniform float u_dayTextureSaturation[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_GAMMA
- uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_IMAGERY_CUTOUT
- uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS];
- #endif
- #ifdef APPLY_COLOR_TO_ALPHA
- uniform vec4 u_colorsToAlpha[TEXTURE_UNITS];
- #endif
- uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS];
- #endif
- #ifdef SHOW_REFLECTIVE_OCEAN
- uniform sampler2D u_waterMask;
- uniform vec4 u_waterMaskTranslationAndScale;
- uniform float u_zoomedOutOceanSpecularIntensity;
- #endif
- #ifdef SHOW_OCEAN_WAVES
- uniform sampler2D u_oceanNormalMap;
- #endif
- #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)
- uniform vec2 u_lightingFadeDistance;
- #endif
- #ifdef TILE_LIMIT_RECTANGLE
- uniform vec4 u_cartographicLimitRectangle;
- #endif
- #ifdef GROUND_ATMOSPHERE
- uniform vec2 u_nightFadeDistance;
- #endif
- #ifdef ENABLE_CLIPPING_PLANES
- uniform highp sampler2D u_clippingPlanes;
- uniform mat4 u_clippingPlanesMatrix;
- uniform vec4 u_clippingPlanesEdgeStyle;
- #endif
- #if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
- uniform float u_minimumBrightness;
- #endif
- #ifdef COLOR_CORRECT
- uniform vec3 u_hsbShift;
- #endif
- #ifdef HIGHLIGHT_FILL_TILE
- uniform vec4 u_fillHighlightColor;
- #endif
- #ifdef TRANSLUCENT
- uniform vec4 u_frontFaceAlphaByDistance;
- uniform vec4 u_backFaceAlphaByDistance;
- uniform vec4 u_translucencyRectangle;
- #endif
- #ifdef UNDERGROUND_COLOR
- uniform vec4 u_undergroundColor;
- uniform vec4 u_undergroundColorAlphaByDistance;
- #endif
- #ifdef ENABLE_VERTEX_LIGHTING
- uniform float u_lambertDiffuseMultiplier;
- uniform float u_vertexShadowDarkness;
- #endif
- in vec3 v_positionMC;
- in vec3 v_positionEC;
- in vec3 v_textureCoordinates;
- in vec3 v_normalMC;
- in vec3 v_normalEC;
- #ifdef APPLY_MATERIAL
- in float v_height;
- in float v_slope;
- in float v_aspect;
- #endif
- #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
- in float v_distance;
- #endif
- #if defined(GROUND_ATMOSPHERE) || defined(FOG)
- in vec3 v_atmosphereRayleighColor;
- in vec3 v_atmosphereMieColor;
- in float v_atmosphereOpacity;
- #endif
- #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
- float interpolateByDistance(vec4 nearFarScalar, float distance)
- {
- float startDistance = nearFarScalar.x;
- float startValue = nearFarScalar.y;
- float endDistance = nearFarScalar.z;
- float endValue = nearFarScalar.w;
- float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0);
- return mix(startValue, endValue, t);
- }
- #endif
- #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL)
- vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor)
- {
- return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a);
- }
- #endif
- #ifdef TRANSLUCENT
- bool inTranslucencyRectangle()
- {
- return
- v_textureCoordinates.x > u_translucencyRectangle.x &&
- v_textureCoordinates.x < u_translucencyRectangle.z &&
- v_textureCoordinates.y > u_translucencyRectangle.y &&
- v_textureCoordinates.y < u_translucencyRectangle.w;
- }
- #endif
- vec4 sampleAndBlend(
- vec4 previousColor,
- sampler2D textureToSample,
- vec2 tileTextureCoordinates,
- vec4 textureCoordinateRectangle,
- vec4 textureCoordinateTranslationAndScale,
- float textureAlpha,
- float textureNightAlpha,
- float textureDayAlpha,
- float textureBrightness,
- float textureContrast,
- float textureHue,
- float textureSaturation,
- float textureOneOverGamma,
- float split,
- vec4 colorToAlpha,
- float nightBlend)
- {
-
-
-
-
-
-
-
- vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates);
- textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;
- alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates);
- textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;
- #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING)
- textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend);
- #endif
- vec2 translation = textureCoordinateTranslationAndScale.xy;
- vec2 scale = textureCoordinateTranslationAndScale.zw;
- vec2 textureCoordinates = tileTextureCoordinates * scale + translation;
- vec4 value = texture(textureToSample, textureCoordinates);
- vec3 color = value.rgb;
- float alpha = value.a;
- #ifdef APPLY_COLOR_TO_ALPHA
- vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb);
- colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b);
- alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha);
- #endif
- #if !defined(APPLY_GAMMA)
- vec4 tempColor = czm_gammaCorrect(vec4(color, alpha));
- color = tempColor.rgb;
- alpha = tempColor.a;
- #else
- color = pow(color, vec3(textureOneOverGamma));
- #endif
- #ifdef APPLY_SPLIT
- float splitPosition = czm_splitPosition;
-
- if (split < 0.0 && gl_FragCoord.x > splitPosition) {
- alpha = 0.0;
- }
-
- else if (split > 0.0 && gl_FragCoord.x < splitPosition) {
- alpha = 0.0;
- }
- #endif
- #ifdef APPLY_BRIGHTNESS
- color = mix(vec3(0.0), color, textureBrightness);
- #endif
- #ifdef APPLY_CONTRAST
- color = mix(vec3(0.5), color, textureContrast);
- #endif
- #ifdef APPLY_HUE
- color = czm_hue(color, textureHue);
- #endif
- #ifdef APPLY_SATURATION
- color = czm_saturation(color, textureSaturation);
- #endif
- float sourceAlpha = alpha * textureAlpha;
- float outAlpha = mix(previousColor.a, 1.0, sourceAlpha);
- outAlpha += sign(outAlpha) - 1.0;
- vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return vec4(outColor, max(outAlpha, 0.0));
- }
- vec3 colorCorrect(vec3 rgb) {
- #ifdef COLOR_CORRECT
-
- vec3 hsb = czm_RGBToHSB(rgb);
-
- hsb.x += u_hsbShift.x;
- hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0);
- hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0;
-
- rgb = czm_HSBToRGB(hsb);
- #endif
- return rgb;
- }
- vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend);
- vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade);
- const float fExposure = 2.0;
- vec3 computeEllipsoidPosition()
- {
- float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0);
- vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);
- xy *= czm_viewport.zw * mpp * 0.5;
- vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x));
- czm_ray ray = czm_ray(vec3(0.0), direction);
- vec3 ellipsoid_center = czm_view[3].xyz;
- czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii);
- vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start);
- return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz;
- }
- void main()
- {
- #ifdef TILE_LIMIT_RECTANGLE
- if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x ||
- v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y)
- {
- discard;
- }
- #endif
- #ifdef ENABLE_CLIPPING_PLANES
- float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix);
- #endif
- #if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR)
- vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0));
- vec3 normalEC = czm_normal3D * normalMC;
- #endif
- #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING)
- float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0);
- #else
- float nightBlend = 0.0;
- #endif
-
-
-
-
- vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend);
- #ifdef SHOW_TILE_BOUNDARIES
- if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) ||
- v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0))
- {
- color = vec4(1.0, 0.0, 0.0, 1.0);
- }
- #endif
- #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)
- float cameraDist;
- if (czm_sceneMode == czm_sceneMode2D)
- {
- cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5;
- }
- else if (czm_sceneMode == czm_sceneModeColumbusView)
- {
- cameraDist = -czm_view[3].z;
- }
- else
- {
- cameraDist = length(czm_view[3]);
- }
- float fadeOutDist = u_lightingFadeDistance.x;
- float fadeInDist = u_lightingFadeDistance.y;
- if (czm_sceneMode != czm_sceneMode3D) {
- vec3 radii = czm_ellipsoidRadii;
- float maxRadii = max(radii.x, max(radii.y, radii.z));
- fadeOutDist -= maxRadii;
- fadeInDist -= maxRadii;
- }
- float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0);
- #else
- float fade = 0.0;
- #endif
- #ifdef SHOW_REFLECTIVE_OCEAN
- vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy;
- vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw;
- vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation;
- waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y;
- float mask = texture(u_waterMask, waterMaskTextureCoordinates).r;
- if (mask > 0.0)
- {
- mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC);
- vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC);
- vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx);
- vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z));
- color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade);
- }
- #endif
- #ifdef APPLY_MATERIAL
- czm_materialInput materialInput;
- materialInput.st = v_textureCoordinates.st;
- materialInput.normalEC = normalize(v_normalEC);
- materialInput.positionToEyeEC = -v_positionEC;
- materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC));
- materialInput.slope = v_slope;
- materialInput.height = v_height;
- materialInput.aspect = v_aspect;
- czm_material material = czm_getMaterial(materialInput);
- vec4 materialColor = vec4(material.diffuse, material.alpha);
- color = alphaBlend(materialColor, color);
- #endif
- #ifdef ENABLE_VERTEX_LIGHTING
- float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0);
- vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a);
- #elif defined(ENABLE_DAYNIGHT_SHADING)
- float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0);
- diffuseIntensity = mix(1.0, diffuseIntensity, fade);
- vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a);
- #else
- vec4 finalColor = color;
- #endif
- #ifdef ENABLE_CLIPPING_PLANES
- vec4 clippingPlanesEdgeColor = vec4(1.0);
- clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb;
- float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a;
- if (clipDistance < clippingPlanesEdgeWidth)
- {
- finalColor = clippingPlanesEdgeColor;
- }
- #endif
- #ifdef HIGHLIGHT_FILL_TILE
- finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a);
- #endif
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN)
- vec3 atmosphereLightDirection = czm_sunDirectionWC;
- #else
- vec3 atmosphereLightDirection = czm_lightDirectionWC;
- #endif
- #if defined(GROUND_ATMOSPHERE) || defined(FOG)
- if (!czm_backFacing())
- {
- bool dynamicLighting = false;
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING))
- dynamicLighting = true;
- #endif
- vec3 rayleighColor;
- vec3 mieColor;
- float opacity;
- vec3 positionWC;
- vec3 lightDirection;
-
-
- #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE
- positionWC = computeEllipsoidPosition();
- lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC));
- computeAtmosphereScattering(
- positionWC,
- lightDirection,
- rayleighColor,
- mieColor,
- opacity
- );
- #else
- positionWC = v_positionMC;
- lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC));
- rayleighColor = v_atmosphereRayleighColor;
- mieColor = v_atmosphereMieColor;
- opacity = v_atmosphereOpacity;
- #endif
- rayleighColor = colorCorrect(rayleighColor);
- mieColor = colorCorrect(mieColor);
- vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity);
-
- #ifdef FOG
- vec3 fogColor = groundAtmosphereColor.rgb;
-
-
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
- float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0);
- fogColor *= darken;
- #endif
- #ifndef HDR
- fogColor.rgb = czm_acesTonemapping(fogColor.rgb);
- fogColor.rgb = czm_inverseGamma(fogColor.rgb);
- #endif
-
- const float modifier = 0.15;
- finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a);
- #else
-
-
-
- const float transmittanceModifier = 0.5;
- float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0);
- vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance;
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING))
- float fadeInDist = u_nightFadeDistance.x;
- float fadeOutDist = u_nightFadeDistance.y;
-
- float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0);
- float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0);
- vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken);
- finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity);
- #endif
-
- #ifndef HDR
- finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb);
- #else
- finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6);
- #endif
-
- finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade);
- #endif
- }
- #endif
- #ifdef UNDERGROUND_COLOR
- if (czm_backFacing())
- {
- float distanceFromEllipsoid = max(czm_eyeHeight, 0.0);
- float distance = max(v_distance - distanceFromEllipsoid, 0.0);
- float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance);
- vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount);
- finalColor = alphaBlend(undergroundColor, finalColor);
- }
- #endif
- #ifdef TRANSLUCENT
- if (inTranslucencyRectangle())
- {
- vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance;
- finalColor.a *= interpolateByDistance(alphaByDistance, v_distance);
- }
- #endif
-
- out_FragColor = finalColor;
- }
- #ifdef SHOW_REFLECTIVE_OCEAN
- float waveFade(float edge0, float edge1, float x)
- {
- float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
- return pow(1.0 - y, 5.0);
- }
- float linearFade(float edge0, float edge1, float x)
- {
- return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
- }
- const float oceanFrequencyLowAltitude = 825000.0;
- const float oceanAnimationSpeedLowAltitude = 0.004;
- const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0;
- const float oceanSpecularIntensity = 0.5;
- const float oceanFrequencyHighAltitude = 125000.0;
- const float oceanAnimationSpeedHighAltitude = 0.008;
- const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0;
- vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade)
- {
- vec3 positionToEyeEC = -positionEyeCoordinates;
- float positionToEyeECLength = length(positionToEyeEC);
-
- vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC));
-
- float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength);
- #ifdef SHOW_OCEAN_WAVES
-
- float time = czm_frameNumber * oceanAnimationSpeedHighAltitude;
- vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0);
- vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude);
-
- time = czm_frameNumber * oceanAnimationSpeedLowAltitude;
- noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0);
- vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude);
-
- float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength);
- float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength);
- vec3 normalTangentSpace =
- (highAltitudeFade * normalTangentSpaceHighAltitude) +
- (lowAltitudeFade * normalTangentSpaceLowAltitude);
- normalTangentSpace = normalize(normalTangentSpace);
-
- normalTangentSpace.xy *= waveIntensity;
- normalTangentSpace = normalize(normalTangentSpace);
- #else
- vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0);
- #endif
- vec3 normalEC = enuToEye * normalTangentSpace;
- const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6);
-
- float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue;
- vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade);
- #ifdef SHOW_OCEAN_WAVES
-
-
- float tsPerturbationRatio = normalTangentSpace.z;
- vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity);
- #else
- vec3 nonDiffuseHighlight = vec3(0.0);
- #endif
-
- float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0);
- float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue);
- float specular = specularIntensity * surfaceReflectance;
- #ifdef HDR
- specular *= 1.4;
- float e = 0.2;
- float d = 3.3;
- float c = 1.7;
- vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular));
- #else
- vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular;
- #endif
- return vec4(color, imageryColor.a);
- }
- #endif
- `;var xk=`#ifdef QUANTIZATION_BITS12
- in vec4 compressed0;
- in float compressed1;
- #else
- in vec4 position3DAndHeight;
- in vec4 textureCoordAndEncodedNormals;
- #endif
- #ifdef GEODETIC_SURFACE_NORMALS
- in vec3 geodeticSurfaceNormal;
- #endif
- #ifdef EXAGGERATION
- uniform vec2 u_terrainExaggerationAndRelativeHeight;
- #endif
- uniform vec3 u_center3D;
- uniform mat4 u_modifiedModelView;
- uniform mat4 u_modifiedModelViewProjection;
- uniform vec4 u_tileRectangle;
- uniform vec2 u_southAndNorthLatitude;
- uniform vec2 u_southMercatorYAndOneOverHeight;
- out vec3 v_positionMC;
- out vec3 v_positionEC;
- out vec3 v_textureCoordinates;
- out vec3 v_normalMC;
- out vec3 v_normalEC;
- #ifdef APPLY_MATERIAL
- out float v_slope;
- out float v_aspect;
- out float v_height;
- #endif
- #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
- out float v_distance;
- #endif
- #if defined(FOG) || defined(GROUND_ATMOSPHERE)
- out vec3 v_atmosphereRayleighColor;
- out vec3 v_atmosphereMieColor;
- out float v_atmosphereOpacity;
- #endif
- vec4 getPosition(vec3 position, float height, vec2 textureCoordinates);
- float get2DYPositionFraction(vec2 textureCoordinates);
- vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates)
- {
- return u_modifiedModelViewProjection * vec4(position, 1.0);
- }
- float get2DMercatorYPositionFraction(vec2 textureCoordinates)
- {
-
-
-
-
-
- const float maxTileWidth = 0.003068;
- float positionFraction = textureCoordinates.y;
- float southLatitude = u_southAndNorthLatitude.x;
- float northLatitude = u_southAndNorthLatitude.y;
- if (northLatitude - southLatitude > maxTileWidth)
- {
- float southMercatorY = u_southMercatorYAndOneOverHeight.x;
- float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y;
- float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y);
- currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude);
- positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight);
- }
- return positionFraction;
- }
- float get2DGeographicYPositionFraction(vec2 textureCoordinates)
- {
- return textureCoordinates.y;
- }
- vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates)
- {
- float yPositionFraction = get2DYPositionFraction(textureCoordinates);
- vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);
- return u_modifiedModelViewProjection * rtcPosition2D;
- }
- vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates)
- {
- return getPositionPlanarEarth(position, 0.0, textureCoordinates);
- }
- vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates)
- {
- return getPositionPlanarEarth(position, height, textureCoordinates);
- }
- vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates)
- {
-
-
- vec3 position3DWC = position + u_center3D;
- float yPositionFraction = get2DYPositionFraction(textureCoordinates);
- vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);
- vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime);
- return czm_modelViewProjection * morphPosition;
- }
- #ifdef QUANTIZATION_BITS12
- uniform vec2 u_minMaxHeight;
- uniform mat4 u_scaleAndBias;
- #endif
- void main()
- {
- #ifdef QUANTIZATION_BITS12
- vec2 xy = czm_decompressTextureCoordinates(compressed0.x);
- vec2 zh = czm_decompressTextureCoordinates(compressed0.y);
- vec3 position = vec3(xy, zh.x);
- float height = zh.y;
- vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z);
- height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x;
- position = (u_scaleAndBias * vec4(position, 1.0)).xyz;
- #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y)
- float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;
- float encodedNormal = compressed1;
- #elif defined(INCLUDE_WEB_MERCATOR_Y)
- float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;
- float encodedNormal = 0.0;
- #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)
- float webMercatorT = textureCoordinates.y;
- float encodedNormal = compressed0.w;
- #else
- float webMercatorT = textureCoordinates.y;
- float encodedNormal = 0.0;
- #endif
- #else
-
- vec3 position = position3DAndHeight.xyz;
- float height = position3DAndHeight.w;
- vec2 textureCoordinates = textureCoordAndEncodedNormals.xy;
- #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y)
- float webMercatorT = textureCoordAndEncodedNormals.z;
- float encodedNormal = textureCoordAndEncodedNormals.w;
- #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)
- float webMercatorT = textureCoordinates.y;
- float encodedNormal = textureCoordAndEncodedNormals.z;
- #elif defined(INCLUDE_WEB_MERCATOR_Y)
- float webMercatorT = textureCoordAndEncodedNormals.z;
- float encodedNormal = 0.0;
- #else
- float webMercatorT = textureCoordinates.y;
- float encodedNormal = 0.0;
- #endif
- #endif
- vec3 position3DWC = position + u_center3D;
- #ifdef GEODETIC_SURFACE_NORMALS
- vec3 ellipsoidNormal = geodeticSurfaceNormal;
- #else
- vec3 ellipsoidNormal = normalize(position3DWC);
- #endif
- #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS)
- float exaggeration = u_terrainExaggerationAndRelativeHeight.x;
- float relativeHeight = u_terrainExaggerationAndRelativeHeight.y;
- float newHeight = (height - relativeHeight) * exaggeration + relativeHeight;
-
- float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z);
- newHeight = max(newHeight, -minRadius);
- vec3 offset = ellipsoidNormal * (newHeight - height);
- position += offset;
- position3DWC += offset;
- height = newHeight;
- #endif
- gl_Position = getPosition(position, height, textureCoordinates);
- v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz;
- v_positionMC = position3DWC;
- v_textureCoordinates = vec3(textureCoordinates, webMercatorT);
- #if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)
- vec3 normalMC = czm_octDecode(encodedNormal);
- #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS)
- vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal;
- vec3 rejection = normalMC - projection;
- normalMC = normalize(projection + rejection * exaggeration);
- #endif
- v_normalMC = normalMC;
- v_normalEC = czm_normal3D * v_normalMC;
- #endif
- #if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE))
- bool dynamicLighting = false;
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING))
- dynamicLighting = true;
- #endif
- #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN)
- vec3 atmosphereLightDirection = czm_sunDirectionWC;
- #else
- vec3 atmosphereLightDirection = czm_lightDirectionWC;
- #endif
- vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC));
- computeAtmosphereScattering(
- position3DWC,
- lightDirection,
- v_atmosphereRayleighColor,
- v_atmosphereMieColor,
- v_atmosphereOpacity
- );
- #endif
- #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT)
- v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz);
- #endif
- #ifdef APPLY_MATERIAL
- float northPoleZ = czm_ellipsoidRadii.z;
- vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ);
- vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal));
- float dotProd = abs(dot(ellipsoidNormal, v_normalMC));
- v_slope = acos(dotProd);
- vec3 normalRejected = ellipsoidNormal * dotProd;
- vec3 normalProjected = v_normalMC - normalRejected;
- vec3 aspectVector = normalize(normalProjected);
- v_aspect = acos(dot(aspectVector, vectorEastMC));
- float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal);
- v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect);
- v_height = height;
- #endif
- }
- `;var oy=`uniform vec3 u_radiiAndDynamicAtmosphereColor;
- uniform float u_atmosphereLightIntensity;
- uniform float u_atmosphereRayleighScaleHeight;
- uniform float u_atmosphereMieScaleHeight;
- uniform float u_atmosphereMieAnisotropy;
- uniform vec3 u_atmosphereRayleighCoefficient;
- uniform vec3 u_atmosphereMieCoefficient;
- const float ATMOSPHERE_THICKNESS = 111e3;
- const int PRIMARY_STEPS_MAX = 16;
- const int LIGHT_STEPS_MAX = 4;
- float approximateTanh(float x) {
- float x2 = x * x;
- return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2)));
- }
- void computeScattering(
- czm_ray primaryRay,
- float primaryRayLength,
- vec3 lightDirection,
- float atmosphereInnerRadius,
- out vec3 rayleighColor,
- out vec3 mieColor,
- out float opacity
- ) {
-
- rayleighColor = vec3(0.0);
- mieColor = vec3(0.0);
- opacity = 0.0;
- float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;
- vec3 origin = vec3(0.0);
-
- czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius);
-
- if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) {
- return;
- }
-
-
-
-
- float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength);
-
-
- float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x));
-
-
- float start_0 = primaryRayAtmosphereIntersect.start;
- primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0);
-
- primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength));
-
-
-
- float x_o_a = start_0 - ATMOSPHERE_THICKNESS;
- float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a));
- int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0);
- int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0);
-
- float rayPositionLength = primaryRayAtmosphereIntersect.start;
-
-
- float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength;
- float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0));
- float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS));
- vec3 rayleighAccumulation = vec3(0.0);
- vec3 mieAccumulation = vec3(0.0);
- vec2 opticalDepth = vec2(0.0);
- vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight);
-
- for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) {
-
-
- if (i >= PRIMARY_STEPS) {
- break;
- }
-
- vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength);
-
- float sampleHeight = length(samplePosition) - atmosphereInnerRadius;
-
- vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength;
- opticalDepth += sampleDensity;
-
- czm_ray lightRay = czm_ray(samplePosition, lightDirection);
- czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius);
- float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS);
- float lightPositionLength = 0.0;
- vec2 lightOpticalDepth = vec2(0.0);
-
- for (int j = 0; j < LIGHT_STEPS_MAX; ++j) {
-
-
- if (j >= LIGHT_STEPS) {
- break;
- }
-
- vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5);
-
- float lightHeight = length(lightPosition) - atmosphereInnerRadius;
-
- lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength;
-
- lightPositionLength += lightStepLength;
- }
-
- vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x))));
-
- rayleighAccumulation += sampleDensity.x * attenuation;
- mieAccumulation += sampleDensity.y * attenuation;
-
- rayPositionLength += (rayStepLength += rayStepLengthIncrease);
- }
-
- rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation;
- mieColor = u_atmosphereMieCoefficient * mieAccumulation;
-
- opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x))));
- }
- vec4 computeAtmosphereColor(
- vec3 positionWC,
- vec3 lightDirection,
- vec3 rayleighColor,
- vec3 mieColor,
- float opacity
- ) {
-
- vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
- vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
- float cosAngle = dot(cameraToPositionWCDirection, lightDirection);
- float cosAngleSq = cosAngle * cosAngle;
- float G = u_atmosphereMieAnisotropy;
- float GSq = G * G;
-
- float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq);
-
- float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq));
-
- vec3 rayleigh = rayleighPhase * rayleighColor;
- vec3 mie = miePhase * mieColor;
- vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity;
- return vec4(color, opacity);
- }
- `;var uD=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) {
- vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
- vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
- czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection);
-
- float atmosphereInnerRadius = length(positionWC);
- computeScattering(
- primaryRay,
- length(cameraToPositionWC),
- lightDirection,
- atmosphereInnerRadius,
- rayleighColor,
- mieColor,
- opacity
- );
- }
- `;var PJe=new V;function OJe(e,t){let n=e.unionClippingRegions,i=e.length,o=xs.useFloatTexture(t),r=xs.getTextureResolution(e,t,PJe),s=r.x,a=r.y,c=o?LJe(s,a):NJe(s,a);return c+=`
- `,c+=n?RJe(i):MJe(i),c}function RJe(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)
- {
- vec4 position = czm_windowToEyeCoordinates(fragCoord);
- vec3 clipNormal = vec3(0.0);
- vec3 clipPosition = vec3(0.0);
- float clipAmount;
- float pixelWidth = czm_metersPerPixel(position);
- bool breakAndDiscard = false;
- for (int i = 0; i < ${e}; ++i)
- {
- vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
- clipNormal = clippingPlane.xyz;
- clipPosition = -clippingPlane.w * clipNormal;
- float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
- clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount));
- if (amount <= 0.0)
- {
- breakAndDiscard = true;
- break;
- }
- }
- if (breakAndDiscard) {
- discard;
- }
- return clipAmount;
- }
- `}function MJe(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)
- {
- bool clipped = true;
- vec4 position = czm_windowToEyeCoordinates(fragCoord);
- vec3 clipNormal = vec3(0.0);
- vec3 clipPosition = vec3(0.0);
- float clipAmount = 0.0;
- float pixelWidth = czm_metersPerPixel(position);
- for (int i = 0; i < ${e}; ++i)
- {
- vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);
- clipNormal = clippingPlane.xyz;
- clipPosition = -clippingPlane.w * clipNormal;
- float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;
- clipAmount = max(amount, clipAmount);
- clipped = clipped && (amount <= 0.0);
- }
- if (clipped)
- {
- discard;
- }
- return clipAmount;
- }
- `}function LJe(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform)
- {
- int pixY = clippingPlaneNumber / ${e};
- int pixX = clippingPlaneNumber - (pixY * ${e});
- float u = (float(pixX) + 0.5) * ${o};
- float v = (float(pixY) + 0.5) * ${r};
- vec4 plane = texture(packedClippingPlanes, vec2(u, v));
- return czm_transformPlane(plane, transform);
- }
- `}function NJe(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform)
- {
- int clippingPlaneStartIndex = clippingPlaneNumber * 2;
- int pixY = clippingPlaneStartIndex / ${e};
- int pixX = clippingPlaneStartIndex - (pixY * ${e});
- float u = (float(pixX) + 0.5) * ${o};
- float v = (float(pixY) + 0.5) * ${r};
- vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0;
- vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w);
- vec4 plane;
- plane.xyz = czm_octDecode(oct, 65535.0);
- plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v)));
- return czm_transformPlane(plane, transform);
- }
- `}var ry=OJe;function FJe(e,t,n,i,o){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o}function a7(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function BJe(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case te.SCENE3D:o=t;break;case te.SCENE2D:case te.COLUMBUS_VIEW:o=n;break;case te.MORPHING:o=i;break}return o}function kJe(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}a7.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,l=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.showReflectiveOcean,g=e.showOceanWaves,m=e.enableLighting,x=e.dynamicAtmosphereLighting,b=e.dynamicAtmosphereLightingFromSun,T=e.showGroundAtmosphere,A=e.perFragmentGroundAtmosphere,C=e.hasVertexNormals,S=e.useWebMercatorProjection,w=e.enableFog,D=e.enableClippingPlanes,O=e.clippingPlanes,R=e.clippedByBoundaries,N=e.hasImageryLayerCutout,F=e.colorCorrect,_=e.highlightFillTile,E=e.colorToAlpha,v=e.hasGeodeticSurfaceNormals,I=e.hasExaggeration,M=e.showUndergroundColor,B=e.translucent,H=0,U="",k=n.renderedMesh.encoding;k.quantization===Xs.BITS12&&(H=1,U="QUANTIZATION_BITS12");let q=0,Q="";R&&(q=1,Q="TILE_LIMIT_RECTANGLE");let W=0,K="";N&&(W=1,K="APPLY_IMAGERY_CUTOUT");let Z=t.mode,me=Z|o<<2|r<<3|s<<4|a<<5|c<<6|l<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|A<<14|C<<15|S<<16|w<<17|H<<18|d<<19|D<<20|q<<21|W<<22|F<<23|_<<24|E<<25|v<<26|I<<27|M<<28|B<<29|f<<30,xe=0;u(O)&&O.length>0&&(xe=D?O.clippingPlanesState:0);let re=n.surfaceShader;if(u(re)&&re.numberOfDayTextures===i&&re.flags===me&&re.material===this.material&&re.clippingShaderState===xe)return re.shaderProgram;let ge=this._shadersByTexturesFlags[i];if(u(ge)||(ge=this._shadersByTexturesFlags[i]=[]),re=ge[me],!u(re)||re.material!==this.material||re.clippingShaderState!==xe){let ye=this.baseVertexShaderSource.clone(),Ae=this.baseFragmentShaderSource.clone();xe!==0&&Ae.sources.unshift(ry(O,t.context)),ye.defines.push(U),Ae.defines.push(`TEXTURE_UNITS ${i}`,Q,K),o&&Ae.defines.push("APPLY_BRIGHTNESS"),r&&Ae.defines.push("APPLY_CONTRAST"),s&&Ae.defines.push("APPLY_HUE"),a&&Ae.defines.push("APPLY_SATURATION"),c&&Ae.defines.push("APPLY_GAMMA"),l&&Ae.defines.push("APPLY_ALPHA"),f&&Ae.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Ae.defines.push("SHOW_REFLECTIVE_OCEAN"),ye.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&Ae.defines.push("SHOW_OCEAN_WAVES"),E&&Ae.defines.push("APPLY_COLOR_TO_ALPHA"),M&&(ye.defines.push("UNDERGROUND_COLOR"),Ae.defines.push("UNDERGROUND_COLOR")),B&&(ye.defines.push("TRANSLUCENT"),Ae.defines.push("TRANSLUCENT")),m&&(C?(ye.defines.push("ENABLE_VERTEX_LIGHTING"),Ae.defines.push("ENABLE_VERTEX_LIGHTING")):(ye.defines.push("ENABLE_DAYNIGHT_SHADING"),Ae.defines.push("ENABLE_DAYNIGHT_SHADING"))),x&&(ye.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Ae.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),b&&(ye.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Ae.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),T&&(ye.defines.push("GROUND_ATMOSPHERE"),Ae.defines.push("GROUND_ATMOSPHERE"),A&&(ye.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Ae.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),ye.defines.push("INCLUDE_WEB_MERCATOR_Y"),Ae.defines.push("INCLUDE_WEB_MERCATOR_Y"),w&&(ye.defines.push("FOG"),Ae.defines.push("FOG")),d&&Ae.defines.push("APPLY_SPLIT"),D&&Ae.defines.push("ENABLE_CLIPPING_PLANES"),F&&Ae.defines.push("COLOR_CORRECT"),_&&Ae.defines.push("HIGHLIGHT_FILL_TILE"),v&&ye.defines.push("GEODETIC_SURFACE_NORMALS"),I&&ye.defines.push("EXAGGERATION");let De=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend)
- {
- vec4 color = initialColor;
- `;N&&(De+=` vec4 cutoutAndColorResult;
- bool texelUnclipped;
- `);for(let Re=0;Re<i;++Re)N?De+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${Re}];
- texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y;
- cutoutAndColorResult = sampleAndBlend(
- `:De+=` color = sampleAndBlend(
- `,De+=` color,
- u_dayTextures[${Re}],
- u_dayTextureUseWebMercatorT[${Re}] ? textureCoordinates.xz : textureCoordinates.xy,
- u_dayTextureTexCoordsRectangle[${Re}],
- u_dayTextureTranslationAndScale[${Re}],
- ${l?`u_dayTextureAlpha[${Re}]`:"1.0"},
- ${f?`u_dayTextureNightAlpha[${Re}]`:"1.0"},
- ${f?`u_dayTextureDayAlpha[${Re}]`:"1.0"},
- ${o?`u_dayTextureBrightness[${Re}]`:"0.0"},
- ${r?`u_dayTextureContrast[${Re}]`:"0.0"},
- ${s?`u_dayTextureHue[${Re}]`:"0.0"},
- ${a?`u_dayTextureSaturation[${Re}]`:"0.0"},
- ${c?`u_dayTextureOneOverGamma[${Re}]`:"0.0"},
- ${d?`u_dayTextureSplit[${Re}]`:"0.0"},
- ${E?`u_colorsToAlpha[${Re}]`:"vec4(0.0)"},
- nightBlend );
- `,N&&(De+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color);
- `);De+=` return color;
- }`,Ae.sources.push(De),ye.sources.push(BJe(Z)),ye.sources.push(kJe(S));let Fe=Kt.fromCache({context:t.context,vertexShaderSource:ye,fragmentShaderSource:Ae,attributeLocations:k.getAttributeLocations()});re=ge[me]=new FJe(i,me,this.material,Fe,xe)}return n.surfaceShader=re,re.shaderProgram};a7.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!u(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],u(t)&&t.shaderProgram.destroy())}return le(this)};var bk=a7;var UJe={NONE:-1,PARTIAL:0,FULL:1},fr=Object.freeze(UJe);function Tk(e,t,n,i,o,r,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=o,this.timesRetried=y(r,0),this.retry=!1,this.error=s}Tk.reportError=function(e,t,n,i,o,r,s,a){let c=e;return u(e)?(c.provider=t,c.message=i,c.x=o,c.y=r,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new Tk(t,i,o,r,s,0,a),u(n)&&n.numberOfListeners>0?n.raiseEvent(c):u(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Up(i)}`),c};Tk.reportSuccess=function(e){u(e)&&(e.timesRetried=-1)};var Co=Tk;var VJe={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},si=Object.freeze(VJe);var zJe={START:0,LOADING:1,DONE:2,FAILED:3},Ks=Object.freeze(zJe);var HJe={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},co=Object.freeze(HJe);function jo(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=co.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new se,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(jo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===co.RECEIVING||e===co.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!u(s.loadingImagery)||s.loadingImagery.state!==si.TRANSITIONING}return n}},renderedMesh:{get:function(){if(u(this.vertexArray))return this.mesh;if(u(this.fill))return this.fill.mesh}}});var GJe=new fe;function c7(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(u(t)&&t!==te.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,GJe);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var WJe=new h,jJe=new h,qJe=new h;jo.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!u(r))return;let s=r.vertices,a=r.indices,c=r.encoding,l=a.length,f=Number.MAX_VALUE;for(let d=0;d<l;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=c7(c,t,n,s,p,WJe),b=c7(c,t,n,s,g,jJe),T=c7(c,t,n,s,m,qJe),A=Ei.rayTriangleParametric(e,x,b,T,i);u(A)&&A<f&&A>=0&&(f=A)}return f!==Number.MAX_VALUE?Cn.getPoint(e,f,o):void 0};jo.prototype.freeResources=function(){u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=co.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};jo.prototype.freeVertexArray=function(){jo._freeVertexArray(this.vertexArray),this.vertexArray=void 0,jo._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};jo.initialize=function(e,t,n){let i=e.data;u(i)||(i=e.data=new jo),e.state===Ks.START&&(YJe(e,t,n),e.state=Ks.LOADING)};jo.processStateMachine=function(e,t,n,i,o,r,s){jo.initialize(e,n,i);let a=e.data;if(e.state===Ks.LOADING&&XJe(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=u(a.vertexArray);let l=a.terrainState===co.READY;e.upsampledFromParent=u(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(l&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=Ks.DONE}c&&(e.renderable=!0)};jo.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,l,f;for(l=0,f=c.length;l<f;++l){let d=c[l];if(!u(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===si.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(l,1),g._createTileImagerySkeletons(e,t,l),--l,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||u(d.readyImagery),r=r&&u(d.loadingImagery)&&(d.loadingImagery.state===si.FAILED||d.loadingImagery.state===si.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function Ohe(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=Dc.clone(s);c.hasGeodeticSurfaceNormals=t,c=Dc.clone(c);let l=c.stride,f=new Float32Array(a*l);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=l,o!==e.mesh?(jo._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=jo._createVertexArrayForMesh(i.context,o)):(jo._freeVertexArray(e.vertexArray),e.vertexArray=jo._createVertexArrayForMesh(i.context,o)),jo._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}jo.prototype.addGeodeticSurfaceNormals=function(e,t){Ohe(this,!0,e,t)};jo.prototype.removeGeodeticSurfaceNormals=function(e){Ohe(this,!1,void 0,e)};jo.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.terrainExaggeration,s=t.terrainExaggerationRelativeHeight,a=r!==1,c=o.encoding,l=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(l||f){if(l)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=r,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let m=d[g];m.level=-1}}}};function YJe(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!u(i)&&u(e.parent)){let o=e.parent,r=o.data;u(r)&&u(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=co.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function XJe(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===co.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||jo.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===co.FAILED&&KJe(s,e,t,n,e.x,e.y,e.level),s.terrainState===co.UNLOADED&&ZJe(s,n,e.x,e.y,e.level),s.terrainState===co.RECEIVED&&QJe(s,t,n,e.x,e.y,e.level),s.terrainState===co.TRANSFORMED&&(JJe(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=co.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)tet(t.context,s);else{let l=s._findAncestorTileWithTerrainData(e);u(l)&&u(l.data.waterMaskTexture)&&(s.waterMaskTexture=l.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,l,s.waterMaskTranslationAndScale))}}function KJe(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Ks.FAILED;return}let c=a.data.terrainData,l=a.x,f=a.y,d=a.level;if(!u(c))return;let p=c.upsample(i.tilingScheme,l,f,d,o,r,s);u(p)&&(e.terrainState=co.RECEIVING,Promise.resolve(p).then(function(g){u(g)&&(e.terrainData=g,e.terrainState=co.RECEIVED)}).catch(function(){e.terrainState=co.FAILED}))}function ZJe(e,t,n,i,o){function r(c){if(!u(c)){e.terrainState=co.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=co.RECEIVED,e.request=void 0}function s(c){if(e.request.state===Qn.CANCELLED){e.terrainData=void 0,e.terrainState=co.UNLOADED,e.request=void 0;return}e.terrainState=co.FAILED,e.request=void 0;let l=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Co.reportError(t._requestError,t,t.errorEvent,l,n,i,o),t._requestError.retry&&a()}function a(){let c=new Ko({throttle:!1,throttleByServer:!0,type:ts.TERRAIN});e.request=c;let l=t.requestTileGeometry(n,i,o,c);u(l)?(e.terrainState=co.RECEIVING,Promise.resolve(l).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=co.UNLOADED,e.request=void 0)}a()}var $Je={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function QJe(e,t,n,i,o,r){let s=n.tilingScheme,a=$Je;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let l=e.terrainData.createMesh(a);u(l)&&(e.terrainState=co.TRANSFORMING,Promise.resolve(l).then(function(f){e.mesh=f,e.terrainState=co.TRANSFORMED}).catch(function(){e.terrainState=co.FAILED}))}jo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=ut.createVertexBuffer({context:e,typedArray:n,usage:Be.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!u(s)||s.isDestroyed()){let a=t.indices;s=ut.createIndexBuffer({context:e,typedArray:a,usage:Be.STATIC_DRAW,indexDatatype:ke.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ti({context:e,attributes:o,indexBuffer:s})};jo._freeVertexArray=function(e){if(u(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),u(t)&&!t.isDestroyed()&&u(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function JJe(e,t,n,i,o,r,s){e.vertexArray=jo._createVertexArrayForMesh(t,e.mesh),e.terrainState=co.READY,e.fill=e.fill&&e.fill.destroy(s)}function eet(e){let t=e.cache.tile_waterMaskData;if(!u(t)){let n=Pt.create({context:e,pixelFormat:rt.LUMINANCE,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:an.LINEAR,magnificationFilter:Ci.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function tet(e,t){let n=t.terrainData.waterMask,i=eet(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Pt.create({context:e,pixelFormat:rt.LUMINANCE,pixelDatatype:Ye.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,oe.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}jo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;u(t)&&(!u(t.data)||!u(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};jo.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var Nd=jo;function sy(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ie.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Oi(this._ellipsoid),u(e.rectangleSouthwestInMeters)&&u(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new V(-i,-i),this._rectangleNortheastInMeters=new V(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new ce(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(sy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});sy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};sy.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};sy.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(ce.southwest(e)),o=n.project(ce.northeast(e));return u(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new ce(i.x,i.y,o.x,o.y)};sy.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.getNumberOfXTilesAtLevel(n),r=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,l=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*l,d=this._rectangleNortheastInMeters.y-(t+1)*l;return u(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new ce(a,d,c,f)};sy.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new V(o.west,o.south)),a=r.unproject(new V(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};sy.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!ce.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,l=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,m=p/a|0;m>=o&&(m=o-1);let x=g/l|0;return x>=r&&(x=r-1),u(n)?(n.x=m,n.y=x,n):new V(m,x)};var qr=sy;var l7,Rhe="AAPK4db83df15a06415e9b7d45d826eec992u0REAmuLmykhOFOk_4e61HgsO_e3C_qGUgiWNGElpjpiMfO9_Qg5ZRyy8POvB5EF",UC={};UC.defaultAccessToken=Rhe;UC.defaultWorldImageryServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});UC.defaultWorldHillshadeServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});UC.defaultWorldOceanServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});UC.getDefaultTokenCredit=function(e){if(e===Rhe){if(!u(l7)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';l7=new bt(t,!0)}return l7}};var gf=UC;function u7(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=ve.createIfNeeded(e.missingImageUrl),n=this;function i(r){u(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=th(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,l=e.pixelsToCheck;for(let f=0,d=l.length;a&&f<d;++f){let p=l[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}u7.prototype.isReady=function(){return this._isReady};u7.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!u(n)||u(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=th(e),o=e.width;for(let r=0,s=t.length;r<s;++r){let a=t[r],c=a.x*4+a.y*o;for(let l=0;l<4;++l){let f=c+l;if(i[f]!==n[f])return!1}}return!0};var Ak=u7;function f7(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}f7.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let o=i.toLowerCase();t>1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}u(n)&&(this.name=e[n])};f7.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];u(r)&&(typeof r=="object"?i+=`<tr><td>${o}</td><td>${t(r)}</td></tr>`:i+=`<tr><td>${o}</td><td>${r}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var sm=f7;function VC(){de.throwInstantiationError()}Object.defineProperties(VC.prototype,{rectangle:{get:de.throwInstantiationError},tileWidth:{get:de.throwInstantiationError},tileHeight:{get:de.throwInstantiationError},maximumLevel:{get:de.throwInstantiationError},minimumLevel:{get:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},tileDiscardPolicy:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError},credit:{get:de.throwInstantiationError},proxy:{get:de.throwInstantiationError},hasAlphaChannel:{get:de.throwInstantiationError}});VC.prototype.getTileCredits=function(e,t,n){de.throwInstantiationError()};VC.prototype.requestImage=function(e,t,n,i){de.throwInstantiationError()};VC.prototype.pickFeatures=function(e,t,n,i,o){de.throwInstantiationError()};var net=/\.ktx2$/i;VC.loadImage=function(e,t){let n=ve.createIfNeeded(t);return net.test(n.url)?vl(n):u(e)&&u(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var pl=VC;var iet={SATELLITE:1,OCEANS:2,HILLSHADE:3},am=Object.freeze(iet);function Mhe(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Gi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new bt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}Mhe.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!u(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new Ak({missingImageUrl:Lhe(e,0,0,this.maximumLevel).url,pixelsToCheck:[new V(0,0),new V(200,20),new V(20,200),new V(80,110),new V(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function oet(e,t){let n=e.tileInfo;if(!u(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new qr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Gi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ue(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,u(e.fullExtent)){if(u(e.fullExtent.spatialReference)&&u(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Oi,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new ce(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=ce.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new ue(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}u(e.copyrightText)&&e.copyrightText.length>0&&(u(t.credit)?t.tileCredits=[new bt(e.copyrightText)]:t.credit=new bt(e.copyrightText))}function ret(e,t){let n=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(n+=`: ${t.message}`),new ue(n)}async function set(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();oet(i,t)}catch(i){ret(e,i)}}function cm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Gi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new bt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new pe}cm.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case am.SATELLITE:{n=y(t.token,gf.defaultAccessToken),i=ve.createIfNeeded(gf.defaultWorldImageryServer),i.appendForwardSlash();let r=gf.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;case am.OCEANS:{n=y(t.token,gf.defaultAccessToken),i=ve.createIfNeeded(gf.defaultWorldOceanServer),i.appendForwardSlash();let r=gf.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;case am.HILLSHADE:{n=y(t.token,gf.defaultAccessToken),i=ve.createIfNeeded(gf.defaultWorldHillshadeServer),i.appendForwardSlash();let r=gf.getDefaultTokenCredit(n);u(r)&&(o=bt.clone(r))}break;default:}return cm.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Lhe(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Ii?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(cm.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});cm.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&n.setQueryParameters({token:t.token});let i=new cm(t);i._resource=n;let o=new Mhe(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await set(n,o),o.build(i),i};cm.prototype.getTileCredits=function(e,t,n){return this._tileCredits};cm.prototype.requestImage=function(e,t,n,i){return pl.loadImage(this,Lhe(this,e,t,n,i))};cm.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Ii)s=P.toDegrees(i),a=P.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new fe(i,o,0));s=p.x,a=p.y,c="3857"}let l="visible";u(this._layers)&&(l+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:l};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!u(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new sm;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let A=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(A===4326||A===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(A===102100||A===900913||A===3857){let C=new Oi;T.position=C.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};cm._metadataCache={};var ay=cm;var aet={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},fD=Object.freeze(aet);function dD(e){}dD.prototype.isReady=function(){return!0};dD.prototype.shouldDiscardImage=function(e){return dD.EMPTY_IMAGE===e};var Ck;Object.defineProperties(dD,{EMPTY_IMAGE:{get:function(){return u(Ck)||(Ck=new Image,Ck.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),Ck}}});var hD=dD;function Nhe(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}Nhe.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let o=t[n];if(o.credit instanceof bt)break;o.credit=new bt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],l=c.bbox;c.bbox=new ce(P.toRadians(l[1]),P.toRadians(l[0]),P.toRadians(l[3]),P.toRadians(l[2]))}}};function cet(e,t){if(e.resourceSets.length!==1)throw new ue("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl,t.attributionList=n.imageryProviders}function uet(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i+=`: ${t.message}`),Co.reportError(void 0,n,u(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ue(i)}async function fet(e,t,n){let i=e.url,o=as._metadataCache[i];u(o)||(o=e.fetchJsonp("jsonp"),as._metadataCache[i]=o);try{let r=await o;return cet(r,t)}catch(r){uet(e,r,n)}}function as(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,fD.AERIAL),this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,u(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new hD),this._proxy=e.proxy,this._credit=new bt(`<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${as.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new qr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new pe}Object.defineProperties(as.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});as.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;u(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,fD.AERIAL),o=ve.createIfNeeded(e);o.appendForwardSlash();let r=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:{incl:"ImageryProviders",key:t.key,uriScheme:n}}),s=new as(t);s._resource=o;let a=new Nhe(t);return await fet(r,a),a.build(s),s};var det=new ce;as.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,det);return pet(this._attributionList,n,i)};as.prototype.requestImage=function(e,t,n,i){let o=pl.loadImage(this,het(this,e,t,n,i));if(u(o))return o.catch(function(r){return u(r.blob)&&r.blob.size===0?hD.EMPTY_IMAGE:Promise.reject(r)})};as.prototype.pickFeatures=function(e,t,n,i,o){};as.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;e&r&&(s|=1),t&r&&(s|=2),i+=s}return i};as.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];s&1&&(t|=r),s&2&&(n|=r)}return{x:t,y:n,level:i}};as._logoUrl=void 0;Object.defineProperties(as,{logoUrl:{get:function(){return u(as._logoUrl)||(as._logoUrl=$t("Assets/Images/bing_maps_credit.png")),as._logoUrl},set:function(e){as._logoUrl=e}}});function het(e,t,n,i,o){let r=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:r,request:o,templateValues:{quadkey:as.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var met=new ce;function pet(e,t,n){++t;let i=[];for(let o=0,r=e.length;o<r;++o){let s=e[o],a=s.coverageAreas,c=!1;for(let l=0,f=s.coverageAreas.length;!c&&l<f;++l){let d=a[l];if(t>=d.zoomMin&&t<=d.zoomMax){let p=ce.intersection(n,d.bbox,met);u(p)&&(c=!0)}}c&&i.push(s.credit)}return i}as._metadataCache={};var Ek=as;var Fhe=/{[^}]+}/g,Bhe={x:xet,y:Tet,z:Eet,s:wet,reverseX:bet,reverseY:Aet,reverseZ:Cet,westDegrees:vet,southDegrees:Det,eastDegrees:Iet,northDegrees:Pet,westProjected:Oet,southProjected:Ret,eastProjected:Met,northProjected:Let,width:Net,height:Fet},_et=gt(Bhe,{i:Bet,j:ket,reverseI:Uet,reverseJ:Vet,longitudeDegrees:Het,latitudeDegrees:Get,longitudeProjected:Wet,latitudeProjected:jet,format:Yet});function mD(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new pe;let t=ve.createIfNeeded(e.url),n=ve.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():u(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new qr({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=ce.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new bt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=gt(Bhe,r),a=gt(_et,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(mD.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});mD.prototype.getTileCredits=function(e,t,n){};mD.prototype.requestImage=function(e,t,n,i){return pl.loadImage(this,get(this,e,t,n,i))};mD.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!u(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(l,f){return l.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let l=s._getFeatureInfoFormats[r],f=yet(s,e,t,n,i,o,l.format);return++r,l.type==="json"?f.fetchJson().then(l.callback).catch(c):l.type==="xml"?f.fetchXML().then(l.callback).catch(c):l.type==="text"||l.type==="html"?f.fetchText().then(l.callback).catch(c):f.fetch({responseType:l.format}).then(a.bind(void 0,l)).catch(c)}return c()};var Sk=!1,uu=new ce,wk=!1,pD=new ce;function get(e,t,n,i,o){Sk=!1,wk=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},l=s.match(Fhe);return u(l)&&l.forEach(function(f){let d=f.substring(1,f.length-1);u(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var d7=!1,HC=new V,h7=!1;function yet(e,t,n,i,o,r,s){Sk=!1,wk=!1,d7=!1,h7=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),l=e._pickFeaturesTags,f={},d=c.match(Fhe);return u(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);u(l[g])&&(f[g]=l[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function GC(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function xet(e,t,n,i){return GC(e,"{x}",t)}function bet(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return GC(e,"{reverseX}",o)}function Tet(e,t,n,i){return GC(e,"{y}",n)}function Aet(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return GC(e,"{reverseY}",o)}function Cet(e,t,n,i){let o=e.maximumLevel,r=u(o)&&i<o?o-i-1:i;return GC(e,"{reverseZ}",r)}function Eet(e,t,n,i){return GC(e,"{z}",i)}function wet(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function vk(e,t,n,i){Sk||(e.tilingScheme.tileXYToRectangle(t,n,i,uu),uu.west=P.toDegrees(uu.west),uu.south=P.toDegrees(uu.south),uu.east=P.toDegrees(uu.east),uu.north=P.toDegrees(uu.north),Sk=!0)}function vet(e,t,n,i){return vk(e,t,n,i),uu.west}function Det(e,t,n,i){return vk(e,t,n,i),uu.south}function Iet(e,t,n,i){return vk(e,t,n,i),uu.east}function Pet(e,t,n,i){return vk(e,t,n,i),uu.north}function Dk(e,t,n,i){wk||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,pD),wk=!0)}function Oet(e,t,n,i){return Dk(e,t,n,i),pD.west}function Ret(e,t,n,i){return Dk(e,t,n,i),pD.south}function Met(e,t,n,i){return Dk(e,t,n,i),pD.east}function Let(e,t,n,i){return Dk(e,t,n,i),pD.north}function Net(e,t,n,i){return e.tileWidth}function Fet(e,t,n,i){return e.tileHeight}function Bet(e,t,n,i,o,r,s){return Ik(e,t,n,i,o,r),HC.x}function ket(e,t,n,i,o,r,s){return Ik(e,t,n,i,o,r),HC.y}function Uet(e,t,n,i,o,r,s){return Ik(e,t,n,i,o,r),e.tileWidth-HC.x-1}function Vet(e,t,n,i,o,r,s){return Ik(e,t,n,i,o,r),e.tileHeight-HC.y-1}var zet=new ce,zC=new h;function Ik(e,t,n,i,o,r,s){if(d7)return;m7(e,t,n,i,o,r);let a=zC,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,zet);HC.x=e.tileWidth*(a.x-c.west)/c.width|0,HC.y=e.tileHeight*(c.north-a.y)/c.height|0,d7=!0}function Het(e,t,n,i,o,r,s){return P.toDegrees(o)}function Get(e,t,n,i,o,r,s){return P.toDegrees(r)}function Wet(e,t,n,i,o,r,s){return m7(e,t,n,i,o,r),zC.x}function jet(e,t,n,i,o,r,s){return m7(e,t,n,i,o,r),zC.y}var qet=new fe;function m7(e,t,n,i,o,r,s){if(!h7){if(e.tilingScheme.projection instanceof Ii)zC.x=P.toDegrees(o),zC.y=P.toDegrees(r);else{let a=qet;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,zC)}h7=!0}}function Yet(e,t,n,i,o,r,s){return s}var ja=mD;function yf(e){ja.call(this,e)}yf._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return yf._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Pm)return yf._metadataFailure(e,t);throw o}};yf.fromUrl=async function(e,t){let n=ve.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await yf._requestMetadata(t,i,o);return new yf(r)};u(Object.create)&&(yf.prototype=Object.create(ja.prototype),yf.prototype.constructor=yf);function khe(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function Uhe(e,t,n){let i=e.positionToTileXY(ce.southwest(t),n),o=e.positionToTileXY(ce.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}yf._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,l,f,d,p=[],g=e.childNodes[0].childNodes;for(let R=0;R<g.length;R++)if(r.test(g.item(R).nodeName))l=g.item(R);else if(a.test(g.item(R).nodeName)){d=g.item(R);let N=g.item(R).childNodes;for(let F=0;F<N.length;F++)s.test(N.item(F).nodeName)&&p.push(N.item(F))}else c.test(g.item(R).nodeName)&&(f=g.item(R));let m;if(!u(d)||!u(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,u(o)&&Co.reportError(void 0,o,o.errorEvent,m),new ue(m);let x=y(t.fileExtension,l.getAttribute("extension")),b=y(t.tileWidth,parseInt(l.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(l.getAttribute("height"),10)),A=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),C=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),S=d.getAttribute("profile"),w=t.tilingScheme;if(!u(w))if(S==="geodetic"||S==="global-geodetic")w=new Gi({ellipsoid:t.ellipsoid});else if(S==="mercator"||S==="global-mercator")w=new qr({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${S}.`,u(o)&&Co.reportError(void 0,o,o.errorEvent,m),new ue(m);let D=ce.clone(t.rectangle);if(!u(D)){let R,N,F,_;y(t.flipXY,!1)?(F=new V(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new V(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(F=new V(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new V(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let v=S==="geodetic"||S==="mercator";if(w.projection instanceof Ii||v)R=fe.fromDegrees(F.x,F.y),N=fe.fromDegrees(_.x,_.y);else{let I=w.projection;R=I.unproject(F),N=I.unproject(_)}D=new ce(R.longitude,R.latitude,N.longitude,N.latitude)}return D=khe(D,w),A=Uhe(w,D,A),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:w,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:A,maximumLevel:C,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};yf._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=u(e.tilingScheme)?e.tilingScheme:new qr({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=khe(a,s);let c=Uhe(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:o,minimumLevel:c,maximumLevel:r,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var vx=yf;function Vhe(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}Vhe.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function Xet(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let o=0;o<n.layers.length;o++)if(n.layers[o].id===t.channel){i=n.layers[o];break}if(!u(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new ue(o)}if(!u(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new ue(o)}if(t.version=i.version,u(n.projection)&&n.projection==="flat")t.tilingScheme=new Gi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ce(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!u(n.projection)||n.projection==="mercator")t.tilingScheme=new qr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new ue(o)}return!0}function Ket(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw u(e)&&u(e.message)&&(i+=`: ${e.message}`),Co.reportError(void 0,n,u(n)?n._errorEvent:void 0,i),new ue(i)}async function Zet(e,t,n){try{let i=await e.fetchText();Xet(i,t)}catch(i){Ket(i,e,n)}}function _l(e){e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new bt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${_l.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new pe}Object.defineProperties(_l.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});_l.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=ve.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new Vhe(n);s.channel=t,await Zet(r,s);let a=new _l(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};_l.prototype.getTileCredits=function(e,t,n){};_l.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return pl.loadImage(this,o)};_l.prototype.pickFeatures=function(e,t,n,i,o){};_l._logoUrl=void 0;Object.defineProperties(_l,{logoUrl:{get:function(){return u(_l._logoUrl)||(_l._logoUrl=$t("Assets/Images/google_earth_credit.png")),_l._logoUrl},set:function(e){_l._logoUrl=e}}});var Pk=_l;var $et=/\/$/,zhe=new bt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function WC(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=ve.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();$et.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;u(e.credit)?(s=e.credit,typeof s=="string"&&(s=new bt(s))):s=zhe,this._resource=i,this._imageryProvider=new ja({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(WC.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});WC.prototype.getTileCredits=function(e,t,n){};WC.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};WC.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};WC._defaultCredit=zhe;var Ok=WC;function Dx(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,ce.MAX_VALUE),n=new Gi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new pe;let i=e.credit;typeof i=="string"&&(i=new bt(i)),this._credit=i;let o=ve.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(Dx.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function Qet(e,t,n,i){let o=`Failed to load image ${e.url}`;u(t)&&u(t.message)&&(o+=`: ${t.message}`);let r=Co.reportError(i,n,u(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return p7(e,n,r);throw u(n)&&(n._hasError=!0),new ue(o)}async function p7(e,t,n){try{return await pl.loadImage(null,e)}catch(i){return Qet(e,i,t,n)}}Dx.fromUrl=async function(e,t){let n=ve.createIfNeeded(e),i=await p7(n);t=y(t,y.EMPTY_OBJECT);let o=new Dx({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};Dx.prototype.getTileCredits=function(e,t,n){};Dx.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!u(this._image)){let o=await p7(this._resource,this);return this._image=o,Co.reportSuccess(this._errorEvent),o}return this._image};Dx.prototype.pickFeatures=function(e,t,n,i,o){};var Rk=Dx;function Jet(e,t,n){this.type=e,u(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,u(n)||(e==="json"?n=ett:e==="xml"?n=ott:(e==="html"||e==="text")&&(n=Hhe)),this.callback=n}function ett(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new sm;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),u(o.geometry)&&o.geometry.type==="Point"){let s=o.geometry.coordinates[0],a=o.geometry.coordinates[1];r.position=fe.fromDegrees(s,a)}t.push(r)}return t}var _7="http://www.mapinfo.com/mxp",ttt="http://www.esri.com/wms",ntt="http://www.opengis.net/wfs",itt="http://www.opengis.net/gml";function ott(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===_7)return rtt(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===ttt)return stt(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===ntt)return att(e);if(t.localName==="ServiceExceptionReport")throw new ue(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?ctt(e):ltt(e)}function rtt(e){let t=[],i=e.documentElement.getElementsByTagNameNS(_7,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(_7,"Val");for(let l=0;l<a.length;++l){let f=a[l];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new sm;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function stt(e){let t=e.documentElement,n=[],i,o=t.getElementsByTagNameNS("*","FIELDS");if(o.length>0)for(let r=0;r<o.length;++r){let s=o[r];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let l=a[c];i[l.name]=l.value}n.push(Mk(s,i))}else{let r=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<r.length;++s){let a=r[s];i={};let c=a.childNodes;for(let l=0;l<c.length;++l){let f=c[l];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(Mk(a,i))}}return n}function att(e){let t=[],i=e.documentElement.getElementsByTagNameNS(itt,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};g7(r,s),t.push(Mk(r,s))}return t}function ctt(e){let t=[],n,i=e.documentElement.childNodes;for(let r=0;r<i.length;r++)if(i[r].nodeType===Node.ELEMENT_NODE){n=i[r];break}if(!u(n))throw new ue("Unable to find first child of the feature info xml document");let o=n.childNodes;for(let r=0;r<o.length;++r){let s=o[r];if(s.nodeType===Node.ELEMENT_NODE){let a={};g7(s,a),t.push(Mk(s,a))}}return t}function g7(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let o=e.childNodes[i];o.nodeType===Node.ELEMENT_NODE&&(n=!1),!(o.localName==="Point"||o.localName==="LineString"||o.localName==="Polygon"||o.localName==="boundedBy")&&o.hasChildNodes()&&g7(o,t)&&(t[o.localName]=o.textContent)}return n}function Mk(e,t){let n=new sm;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function ltt(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new sm;return o.data=e,o.description=n.innerHTML,[o]}var utt=/<body>\s*<\/body>/im,ftt=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,dtt=/<title>([\s\S]*)<\/title>/im;function Hhe(e){if(utt.test(e)||ftt.test(e))return;let t,n=dtt.exec(e);n&&n.length>1&&(t=n[1]);let i=new sm;return i.name=t,i.description=e,i.data=e,[i]}var jC=Jet;function _D(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(_D.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});_D.prototype.getFromCache=function(e,t,n,i){let o=Ghe(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(u(s)&&u(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};_D.prototype.checkApproachingInterval=function(e,t,n,i){let o=Ghe(e,t,n),r=this._tilesRequestedForInterval,s=Whe(this),a={key:o,priorityFunction:i.priorityFunction};(!u(s)||!jhe(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};_D.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=Whe(this);if(u(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=jhe(this,c,r),a||s.push(c)}}};function Ghe(e,t,n){return`${e}-${t}-${n}`}function htt(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Whe(e){let t=e._times;if(!u(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=J.secondsDifference(c.stop,i),++a):(s=J.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function jhe(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];u(r)||(r=o[i]={});let s=t.key;if(u(r[s]))return!0;let a=htt(s),c=new Ko({throttle:!1,throttleByServer:!0,type:ts.IMAGERY,priorityFunction:t.priorityFunction}),l=e._requestImageFunction(a.x,a.y,a.level,c,n);return u(l)?(r[s]={promise:l,request:c},!0):!1}var qC=_D;var mtt=[3034,3035,3042,3043,3044],ptt=[4471,4559];function Fd(e){if(e=y(e,y.EMPTY_OBJECT),u(e.times)&&!u(e.clock))throw new de("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=ve.createIfNeeded(e.url),n=ve.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Fd.DefaultParameters,!0),n.setQueryParameters(Fd.GetFeatureInfoDefaultParameters,!0),u(e.parameters)&&t.setQueryParameters(qhe(e.parameters)),u(e.getFeatureInfoParameters)&&n.setQueryParameters(qhe(e.getFeatureInfoParameters));let i=this;this._reload=void 0,u(e.times)&&(this._timeDynamicImagery=new qC({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,l,f){return Yhe(i,s,a,c,l,f)},reloadFunction:function(){u(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Oi?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!ptt.includes(a)||mtt.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Oi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new ja({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Gi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Fd.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function Yhe(e,t,n,i,o,r){let s=u(r)?r.data:void 0,a=e._tileProvider;return u(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function _tt(e,t,n,i,o,r,s){let a=u(s)?s.data:void 0,c=e._tileProvider;return u(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Fd.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Fd.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Fd.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return u(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),u(o)||(o=Yhe(this,e,t,n,i,s)),u(o)&&u(r)&&r.checkApproachingInterval(e,t,n,i),o};Fd.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=u(r)?r.currentInterval:void 0;return _tt(this,e,t,n,i,o,s)};Fd.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Fd.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Fd.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new jC("json","application/json")),Object.freeze(new jC("xml","text/xml")),Object.freeze(new jC("text","text/html"))]);function qhe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var Lk=Fd;var gtt=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function gD(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=ve.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!u(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(gtt),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=u(e.tilingScheme)?e.tilingScheme:new qr({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,u(e.times)&&(this._timeDynamicImagery=new qC({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return Xhe(s,d,p,g,m,x)},reloadFunction:function(){u(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(ce.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(ce.northeast(this._rectangle),this._minimumLevel),l=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new pe;let f=e.credit;this._credit=typeof f=="string"?new bt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():u(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function Xhe(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=u(s)?s[i]:i.toString(),c=e._subdomains,l=e._dimensions,f=u(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),u(l)&&d.setTemplateValues(l),u(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,u(l)&&(g=gt(g,l)),u(f)&&(g=gt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return pl.loadImage(e,d)}Object.defineProperties(gD.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,u(this._reload)&&this._reload())}}});gD.prototype.getTileCredits=function(e,t,n){};gD.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return u(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),u(o)||(o=Xhe(this,e,t,n,i,s)),u(o)&&u(r)&&r.checkApproachingInterval(e,t,n,i),o};gD.prototype.pickFeatures=function(e,t,n,i,o){};var Nk=gD;var ytt={ARCGIS_MAPSERVER:ay.fromUrl,BING:async(e,t)=>Ek.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,Pk.fromUrl(e,n,t)},MAPBOX:(e,t)=>new Ok({url:e,...t}),SINGLE_TILE:Rk.fromUrl,TMS:vx.fromUrl,URL_TEMPLATE:(e,t)=>new ja({url:e,...t}),WMS:(e,t)=>new Lk({url:e,...t}),WMTS:(e,t)=>new Nk({url:e,...t})};function lm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new pe}Object.defineProperties(lm.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});lm.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ku._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=lm._endpointCache[i];u(o)||(o=n.fetchJson(),lm._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ue(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!u(a))s=await vx.fromUrl(new ku(r,n));else{let l=ytt[a];if(!u(l))throw new ue(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await l(d,f)}let c=new lm(t);return s.errorEvent.addEventListener(function(l){l.provider=c,c._errorEvent.raiseEvent(l)}),c._tileCredits=ku.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};lm.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return u(i)?this._tileCredits.concat(i):this._tileCredits};lm.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};lm.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};lm._endpointCache={};var cy=lm;var xtt={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ly=Object.freeze(xtt);function btt(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ly.AERIAL);return cy.fromAssetId(t)}var uy=btt;var Fk=`uniform sampler2D u_texture;
- in vec2 v_textureCoordinates;
- void main()
- {
- out_FragColor = texture(u_texture, v_textureCoordinates);
- }
- `;var Bk=`in vec4 position;
- in float webMercatorT;
- uniform vec2 u_textureDimensions;
- out vec2 v_textureCoordinates;
- void main()
- {
- v_textureCoordinates = vec2(position.x, webMercatorT);
- gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0));
- }
- `;function YC(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=si.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!u(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}YC.createPlaceholder=function(e){let t=new YC(e,0,0,0);return t.addReference(),t.state=si.PLACEHOLDER,t};YC.prototype.addReference=function(){++this.referenceCount};YC.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),u(this.parent)&&this.parent.releaseReference(),u(this.image)&&u(this.image.destroy)&&this.image.destroy(),u(this.texture)&&this.texture.destroy(),u(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),le(this),0):this.referenceCount};YC.prototype.processStateMachine=function(e,t,n){this.state===si.UNLOADED&&!n&&(this.state=si.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===si.RECEIVED&&(this.state=si.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===si.READY&&t&&!this.texture;(this.state===si.TEXTURE_LOADED||i)&&(this.state=si.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var yD=YC;function y7(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}y7.prototype.freeResources=function(){u(this.readyImagery)&&this.readyImagery.releaseReference(),u(this.loadingImagery)&&this.loadingImagery.releaseReference()};y7.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===si.READY)return u(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;u(r)&&(r.state!==si.READY||!this.useWebMercatorT&&!u(r.texture));)r.state!==si.FAILED&&r.state!==si.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(u(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,u(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===si.FAILED||i.state===si.INVALID?u(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var xD=y7;function hi(e,t){this._imageryProvider=e,this._readyEvent=new pe,this._errorEvent=new pe,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,hi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,hi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,hi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,hi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,hi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,hi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,hi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,hi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,ce.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new xD(yD.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,hi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(hi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return u(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});hi.DEFAULT_BRIGHTNESS=1;hi.DEFAULT_CONTRAST=1;hi.DEFAULT_HUE=0;hi.DEFAULT_SATURATION=1;hi.DEFAULT_GAMMA=1;hi.DEFAULT_SPLIT=il.NONE;hi.DEFAULT_MINIFICATION_FILTER=an.LINEAR;hi.DEFAULT_MAGNIFICATION_FILTER=Ci.LINEAR;hi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;hi.fromProviderAsync=function(e,t){let n=new hi(void 0,t);return Stt(n,Promise.resolve(e)),n};hi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),hi.fromProviderAsync(uy({style:e.style}),e)};hi.prototype.isBaseLayer=function(){return this._isBaseLayer};hi.prototype.isDestroyed=function(){return!1};hi.prototype.destroy=function(){return le(this)};var $he=new ce,Khe=new ce,x7=new ce,Qhe=new ce;hi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return ce.intersection(e.rectangle,t)};hi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!u(t)||u(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||u(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;u(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Oi&&e.rectangle.north<Oi.MaximumLatitude&&e.rectangle.south>-Oi.MaximumLatitude,s=ce.intersection(o.rectangle,this._rectangle,$he),a=ce.intersection(e.rectangle,s,Khe);if(!u(a)){if(!this.isBaseLayer())return!1;let v=s,I=e.rectangle;a=Khe,I.south>=v.north?a.north=a.south=v.north:I.north<=v.south?a.north=a.south=v.south:(a.south=Math.max(I.south,v.south),a.north=Math.min(I.north,v.north)),I.west>=v.east?a.west=a.east=v.east:I.east<=v.west?a.west=a.east=v.west:(a.west=Math.max(I.west,v.west),a.east=Math.min(I.east,v.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Ctt(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),u(o.minimumLevel)){let v=o.minimumLevel;d<v&&(d=v)}let g=o.tilingScheme,m=g.positionToTileXY(ce.northwest(a),d),x=g.positionToTileXY(ce.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,A=g.tileXYToRectangle(m.x,m.y,d);Math.abs(A.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(A.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let C=g.tileXYToRectangle(x.x,x.y,d);Math.abs(C.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(C.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let S=ce.clone(e.rectangle,Qhe),w=g.tileXYToRectangle(m.x,m.y,d),D=ce.intersection(w,s,x7),O;r?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(w,w),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=S.width/512,T=S.height/512):O=g.tileXYToRectangle.bind(g);let R,N=0,F=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=b&&(N=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=T&&(F=Math.max(0,(D.north-S.south)/S.height));let E=F;for(let v=m.x;v<=x.x;v++)if(R=N,w=O(v,m.y,d),D=ce.simpleIntersection(w,s,x7),!!u(D)){N=Math.min(1,(D.east-S.west)/S.width),v===x.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<b)&&(N=1),F=E;for(let I=m.y;I<=x.y;I++){if(_=F,w=O(v,I,d),D=ce.simpleIntersection(w,s,x7),!u(D))continue;F=Math.max(0,(D.south-S.south)/S.height),I===x.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<T)&&(F=0);let M=new oe(R,F,N,_),B=this.getImageryFromCache(v,I,d);i.imagery.splice(n,0,new xD(B,M,r)),++n}}return!0};hi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,$he),i=c.rectangleToNativeRectangle(i,Qhe)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new oe(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};hi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!u(s))return o();e.image=s,e.state=si.RECEIVED,e.request=void 0,Co.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===Qn.CANCELLED){e.state=si.UNLOADED,e.request=void 0;return}e.state=si.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Co.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Ko({throttle:!1,throttleByServer:!0,type:ts.IMAGERY});e.request=s,e.state=si.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!u(a)){e.state=si.UNLOADED,e.request=void 0;return}u(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};hi.prototype._createTextureWebGL=function(e,t){let n=new ln({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return u(i.internalFormat)?new Pt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Pt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?rt.RGBA:rt.RGB,sampler:n})};hi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(u(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(u(r)){if(!r.isReady()){t.state=si.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=si.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Oi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=si.TEXTURE_LOADED};function Zhe(e,t,n){return`${e}:${t}:${n}`}hi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===an.LINEAR&&i===Ci.LINEAR&&!rt.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=an.LINEAR_MIPMAP_LINEAR;let r=zt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=Zhe(n,i,s),c=e.cache.imageryLayerMipmapSamplers;u(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let l=c[a];u(l)||(l=c[a]=new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Lm.NICEST),t.sampler=l}else{let r=Zhe(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;u(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];u(a)||(a=s[r]=new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};hi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Ii)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Mf({persists:!0,owner:this,preExecute:function(c){Att(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=si.READY,t.releaseReference()},canceled:function(){t.state=si.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=si.READY};hi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};hi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){u(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};hi.prototype.getImageryFromCache=function(e,t,n,i){let o=Jhe(e,t,n),r=this._imageryCache[o];return u(r)||(r=new yD(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};hi.prototype.removeImageryFromCache=function(e){let t=Jhe(e.x,e.y,e.level);delete this._imageryCache[t]};function Jhe(e,t,n){return JSON.stringify([e,t,n])}var kk={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new V,texture:void 0},Ttt=Bt.supportsTypedArrays()?new Float32Array(2*64):void 0;function Att(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!u(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){u(this.framebuffer)&&this.framebuffer.destroy(),u(this.vertexArray)&&this.vertexArray.destroy(),u(this.shaderProgram)&&this.shaderProgram.destroy()}};let b=new Float32Array(2*64*2),T=0;for(let D=0;D<64;++D){let O=D/63;b[T++]=0,b[T++]=O,b[T++]=1,b[T++]=O}let A={position:0,webMercatorT:1},C=jr.getRegularGridIndices(2,64),S=ut.createIndexBuffer({context:t,typedArray:C,usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT});o.vertexArray=new ti({context:t,attributes:[{index:A.position,vertexBuffer:ut.createVertexBuffer({context:t,typedArray:b,usage:Be.STATIC_DRAW}),componentsPerAttribute:2},{index:A.webMercatorT,vertexBuffer:ut.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Be.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let w=new ze({sources:[Bk]});o.shaderProgram=Kt.fromCache({context:t,vertexShaderSource:w,fragmentShaderSource:Fk,attributeLocations:A}),o.sampler=new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:an.LINEAR,magnificationFilter:Ci.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;kk.textureDimensions.x=r,kk.textureDimensions.y=s,kk.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Pt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(Lm.NICEST);let p=i.south,g=i.north,m=Ttt,x=0;for(let b=0;b<64;++b){let T=b/63,A=P.lerp(p,g,T);a=Math.sin(A);let S=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=S,m[x++]=S}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=kk,e.vertexArray=o.vertexArray}function Ctt(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Ii?1:Math.cos(n),a=o.rectangle,l=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(l)/Math.log(2);return Math.round(f)|0}function Ett(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Stt(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Ett(e._errorEvent,i)}}var ha=hi;var wtt={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},pn=wtt;var eme={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=eme.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Kn=eme;function KC(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe}KC.prototype.update=function(e,t,n){this.changedThisFrame&&(ame(e,t,this.tile,n),this.changedThisFrame=!1)};KC.prototype.destroy=function(e){this._destroyVertexArray(e),u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};KC.prototype._destroyVertexArray=function(e){u(this.vertexArray)&&(u(e)?e.push(this.vertexArray):Nd._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var vtt=new j0;KC.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=vtt;a.clear();for(let l=0;l<t.length;++l){let f=t[l];u(f.data.vertexArray)&&a.enqueue(t[l])}let c=a.dequeue();for(;c!==void 0;){let l=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);cs(e,n,c,l,s,pn.EAST,!1,a,i),cs(e,n,c,f,s,pn.NORTH,!1,a,i),cs(e,n,c,d,s,pn.WEST,!1,a,i),cs(e,n,c,p,s,pn.SOUTH,!1,a,i);let g=l.findTileToNorth(r),m=l.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);cs(e,n,c,g,s,pn.SOUTHEAST,!1,a,i),cs(e,n,c,x,s,pn.SOUTHWEST,!1,a,i),cs(e,n,c,m,s,pn.NORTHEAST,!1,a,i),cs(e,n,c,b,s,pn.NORTHWEST,!1,a,i),c=a.dequeue()}};function cs(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let l=i;for(;l&&(l._lastSelectionResultFrame!==o||Kn.wasKicked(l._lastSelectionResult)||Kn.originalResult(l._lastSelectionResult)===Kn.CULLED);){if(s)return;let f=l.parent;if(r>=pn.NORTHWEST&&f!==void 0)switch(r){case pn.NORTHWEST:l=l===f.northwestChild?f:void 0;break;case pn.NORTHEAST:l=l===f.northeastChild?f:void 0;break;case pn.SOUTHWEST:l=l===f.southwestChild?f:void 0;break;case pn.SOUTHEAST:l=l===f.southeastChild?f:void 0;break}else l=f}if(l!==void 0){if(l._lastSelectionResult===Kn.RENDERED){if(u(l.data.vertexArray))return;Dtt(e,t,n,l,r,o,a,c);return}if(Kn.originalResult(i._lastSelectionResult)!==Kn.CULLED)switch(r){case pn.WEST:cs(e,t,n,i.northwestChild,o,r,!0,a,c),cs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case pn.EAST:cs(e,t,n,i.southeastChild,o,r,!0,a,c),cs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case pn.SOUTH:cs(e,t,n,i.southwestChild,o,r,!0,a,c),cs(e,t,n,i.southeastChild,o,r,!0,a,c);break;case pn.NORTH:cs(e,t,n,i.northeastChild,o,r,!0,a,c),cs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case pn.NORTHWEST:cs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case pn.NORTHEAST:cs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case pn.SOUTHWEST:cs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case pn.SOUTHEAST:cs(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new de("Invalid edge")}}}function Dtt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new KC(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),Itt(e,t,n,i,o,a)}function Itt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;u(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(ame(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let l,f;switch(o){case pn.WEST:l=s.westMeshes,f=s.westTiles;break;case pn.SOUTH:l=s.southMeshes,f=s.southTiles;break;case pn.EAST:l=s.eastMeshes,f=s.eastTiles;break;case pn.NORTH:l=s.northMeshes,f=s.northTiles;break;case pn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case pn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case pn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case pn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||l[0]!==a||l.length!==1,l[0]=a,f[0]=n,l.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case pn.WEST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.north,m.south,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.south,m.north,b));++p);break;case pn.SOUTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.west,m.east,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.east,m.west,b));++p);break;case pn.EAST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.south,m.north,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.north,m.south,b));++p);break;case pn.NORTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.east,m.west,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.west,m.east,b));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||l[d]!==a,l[d]=a,f[d]=n):(s.changedThisFrame=!0,l.splice(d,p-d,a),f.splice(d,p-d,n))}var Ix=new fe,Ptt=new fe,XC=new h,C7=new h,b7=new V,T7=new V,fu=new V;function jk(){this.height=0,this.encodedNormal=new V}function Uk(e,t,n,i,o,r,s,a,c){if(u(o))return o;let l;if(u(r)&&u(s))l=(r.height+s.height)*.5;else if(u(r))l=r.height;else if(u(s))l=s.height;else if(u(a))l=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;u(d)&&(p=d.minimumHeight,g=d.maximumHeight),l=(p+g)*.5}return cme(e,t,n,i,l,c),c}var Ott={minimumHeight:0,maximumHeight:0},Rtt=new h,tme=new jk,nme=new jk,ime=new jk,ome=new jk,Mtt=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Ltt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function ame(e,t,n,i){Nd.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,l=a!==1,f=n.tilingScheme.ellipsoid,d=zk(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,ime),p=zk(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,tme),g=zk(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,nme),m=zk(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,ome);d=Uk(r,f,0,1,d,p,m,g,ime),p=Uk(r,f,0,0,p,d,g,m,tme),g=Uk(r,f,1,1,g,p,m,d,nme),m=Uk(r,f,1,1,m,g,d,p,ome);let x=p.height,b=g.height,T=d.height,A=m.height,C=Math.min(x,b,T,A),S=Math.max(x,b,T,A),w=(C+S)*.5,D,O,R=e.getLevelMaximumGeometricError(n.level),N=f.maximumRadius-R,F=Math.acos(N/f.maximumRadius)*4;if(F*=1.5,s.width>F&&S-C<=R){let v=new Wa({width:9,height:9,buffer:Mtt,structure:{heightOffset:S}}),I=Ltt;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=v._createMeshSync(I)}else{let v=l,I=ce.center(s,Ptt);I.height=w;let M=f.cartographicToCartesian(I,Rtt),B=new Dc(M,void 0,void 0,void 0,void 0,!0,!0,v,a,c),H=5,U;for(U=r.westMeshes,D=0,O=U.length;D<O;++D)H+=U[D].eastIndicesNorthToSouth.length;for(U=r.southMeshes,D=0,O=U.length;D<O;++D)H+=U[D].northIndicesWestToEast.length;for(U=r.eastMeshes,D=0,O=U.length;D<O;++D)H+=U[D].westIndicesSouthToNorth.length;for(U=r.northMeshes,D=0,O=U.length;D<O;++D)H+=U[D].southIndicesEastToWest.length;let G=Ott;G.minimumHeight=C,G.maximumHeight=S;let k=B.stride,Y=new Float32Array(H*k),q=0,Q=q;q=Vk(f,s,B,Y,q,0,1,d.height,d.encodedNormal,1,G),q=Gk(r,f,B,Y,q,r.westTiles,r.westMeshes,pn.EAST,G);let W=q;q=Vk(f,s,B,Y,q,0,0,p.height,p.encodedNormal,0,G),q=Gk(r,f,B,Y,q,r.southTiles,r.southMeshes,pn.NORTH,G);let K=q;q=Vk(f,s,B,Y,q,1,0,g.height,g.encodedNormal,0,G),q=Gk(r,f,B,Y,q,r.eastTiles,r.eastMeshes,pn.WEST,G);let Z=q;q=Vk(f,s,B,Y,q,1,1,m.height,m.encodedNormal,1,G),q=Gk(r,f,B,Y,q,r.northTiles,r.northMeshes,pn.SOUTH,G),C=G.minimumHeight,S=G.maximumHeight;let me=On.fromRectangle(s,C,S,n.tilingScheme.ellipsoid),xe=Oi.geodeticLatitudeToMercatorAngle(s.south),re=1/(Oi.geodeticLatitudeToMercatorAngle(s.north)-xe),ge=(Oi.geodeticLatitudeToMercatorAngle(I.latitude)-xe)*re,ye=f.geodeticSurfaceNormalCartographic(Ix,C7),Ae=jn.octEncode(ye,b7),De=q;B.encode(Y,q*k,me.center,V.fromElements(.5,.5,fu),w,Ae,ge,ye),++q;let Fe=q,Re=Fe<256?1:2,Ue=(Fe-1)*3,st=Ue*Re,pt=(Y.length-Fe*k)*Float32Array.BYTES_PER_ELEMENT,nt;if(pt>=st){let be=Fe*k*Float32Array.BYTES_PER_ELEMENT;nt=Fe<256?new Uint8Array(Y.buffer,be,Ue):new Uint16Array(Y.buffer,be,Ue)}else nt=Fe<256?new Uint8Array(Ue):new Uint16Array(Ue);Y=new Float32Array(Y.buffer,0,Fe*k);let sn=0;for(D=0;D<Fe-2;++D)nt[sn++]=De,nt[sn++]=D,nt[sn++]=D+1;nt[sn++]=De,nt[sn++]=D,nt[sn++]=0;let Rn=[];for(D=W;D>=Q;--D)Rn.push(D);let Ut=[];for(D=K;D>=W;--D)Ut.push(D);let Ft=[];for(D=Z;D>=K;--D)Ft.push(D);let he=[];for(he.push(0),D=De-1;D>=Z;--D)he.push(D);r.mesh=new Ld(B.center,Y,nt,Ue,Fe,C,S,se.fromOrientedBoundingBox(me),ztt(e,me.center,s,C,S),B.stride,me,B,Rn,Ut,Ft,he)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=Nd._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let E=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let v=o._findAncestorTileWithTerrainData(n);u(v)&&u(v.data.waterMaskTexture)&&(r.waterMaskTexture=v.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,v,r.waterMaskTranslationAndScale))}u(E)&&(--E.referenceCount,E.referenceCount===0&&E.destroy())}function Vk(e,t,n,i,o,r,s,a,c,l,f){let d=Ix;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,XC),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,C7));let m=T7;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,l,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var Wk=new ce;function bD(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=ce.clone(e.rectangle,Wk),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=ce.clone(e.rectangle,Wk),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,l=o.north-o.south,f=(r.south-o.south)/l,d=(r.north-o.south)/l,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var Ntt=new V;function A7(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var Ftt=new V,Btt=new h;function ktt(e,t,n,i,o,r,s,a,c,l){let f=i.encoding,d=i.vertices,p=bD(t,n,f.decodeTextureCoordinates(d,o,fu),fu),g=bD(t,n,f.decodeTextureCoordinates(d,r,T7),T7),m;c?m=(s-p.x)/(g.x-p.x):m=(a-p.y)/(g.y-p.y);let x=f.decodeHeight(d,o),b=f.decodeHeight(d,r),T=n.rectangle;Ix.longitude=P.lerp(T.west,T.east,s),Ix.latitude=P.lerp(T.south,T.north,a),l.height=Ix.height=P.lerp(x,b,m);let A;if(f.hasVertexNormals){let C=f.getOctEncodedNormal(d,o,Ntt),S=f.getOctEncodedNormal(d,r,Ftt),w=jn.octDecode(C.x,C.y,XC),D=jn.octDecode(S.x,S.y,Btt);A=h.lerp(w,D,m,XC),h.normalize(A,A),jn.octEncode(A,l.encodedNormal)}else A=e.geodeticSurfaceNormalCartographic(Ix,XC),jn.octEncode(A,l.encodedNormal)}function cme(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(Ix,XC);jn.octEncode(s,r.encodedNormal)}function zk(e,t,n,i,o,r,s,a,c,l,f){if(sme(e,t,a,s,!1,n,i,f)||sme(e,t,l,c,!0,n,i,f))return f;let p;if(E7(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],A7(r,p,n,i,f),f;let g;if(n===0?i===0?g=Hk(e.westMeshes,e.westTiles,pn.EAST,e.southMeshes,e.southTiles,pn.NORTH,n,i):g=Hk(e.northMeshes,e.northTiles,pn.SOUTH,e.westMeshes,e.westTiles,pn.EAST,n,i):i===0?g=Hk(e.southMeshes,e.southTiles,pn.NORTH,e.eastMeshes,e.eastTiles,pn.WEST,n,i):g=Hk(e.eastMeshes,e.eastTiles,pn.WEST,e.northMeshes,e.northTiles,pn.SOUTH,n,i),u(g))return cme(e,t,n,i,g,f),f}function Hk(e,t,n,i,o,r,s,a){let c=rme(e,t,!1,n,s,a),l=rme(i,o,!0,r,s,a);return u(c)&&u(l)?(c+l)*.5:u(c)?c:l}function Gk(e,t,n,i,o,r,s,a,c){for(let l=0;l<r.length;++l)o=Utt(e,t,n,i,o,r[l],s[l],a,c);return o}function Utt(e,t,n,i,o,r,s,a,c){let l=r.rectangle;a===pn.EAST&&e.tile.x===0?(l=ce.clone(r.rectangle,Wk),l.west-=P.TWO_PI,l.east-=P.TWO_PI):a===pn.WEST&&r.x===0&&(l=ce.clone(r.rectangle,Wk),l.west+=P.TWO_PI,l.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,fu),d=fu.x,p=fu.y);let g,m;switch(a){case pn.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case pn.NORTH:g=s.northIndicesWestToEast,m=!0;break;case pn.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case pn.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,A=s.vertices,C=n.stride,S,w;T.hasWebMercatorT&&(S=Oi.geodeticLatitudeToMercatorAngle(f.south),w=1/(Oi.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let O=g[D],R=T.decodeTextureCoordinates(A,O,fu);bD(x,b,R,R);let N=R.x,F=R.y,_=m?N:F;if(_<0||_>1||Math.abs(N-d)<P.EPSILON5&&Math.abs(F-p)<P.EPSILON5)continue;let E=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5,v=Math.abs(F)<P.EPSILON5||Math.abs(F-1)<P.EPSILON5;if(E&&v)continue;let I=T.decodePosition(A,O,XC),M=T.decodeHeight(A,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(A,O,b7):(B=b7,B.x=0,B.y=0);let H=F;if(T.hasWebMercatorT){let G=P.lerp(f.south,f.north,F);H=(Oi.geodeticLatitudeToMercatorAngle(G)-S)*w}let U;n.hasGeodeticSurfaceNormals&&(U=t.geodeticSurfaceNormal(I,C7)),n.encode(i,o*C,I,R,M,B,H,U),c.minimumHeight=Math.min(c.minimumHeight,M),c.maximumHeight=Math.max(c.maximumHeight,M),++o}return o}function rme(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let l=s;l!==a;l+=c){let f=e[l],d=t[l];if(!E7(d,f))continue;let p;switch(i){case pn.WEST:p=f.westIndicesSouthToNorth;break;case pn.SOUTH:p=f.southIndicesEastToWest;break;case pn.EAST:p=f.eastIndicesNorthToSouth;break;case pn.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(u(g))return f.encoding.decodeHeight(f.vertices,g)}}function E7(e,t){return u(t)&&(!u(e.data.fill)||!e.data.fill.changedThisFrame)}function sme(e,t,n,i,o,r,s,a){let c,l,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(E7(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,l=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,l=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,l=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,l=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,fu);let x=bD(g,e.tile,fu,fu);if(x.x===r&&x.y===s)return A7(m,p,r,s,a),!0;if(d=Eo(c,l?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,fu);let A=bD(g,e.tile,fu,fu);return f?l?A.x-r:A.y-s:l?r-A.x:s-A.y}),d<0){if(d=~d,d>0&&d<c.length)return ktt(t,g,e.tile,m,c[d-1],c[d],r,s,l,a),!0}else return A7(m,c[d],r,s,a),!0}return!1}var Vtt=[new h,new h,new h,new h];function ztt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Vtt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var TD=KC;function qo(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=gn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new pe,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(qo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(qo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(qo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(qo.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new pe,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new z(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=ce.clone(ce.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(qo.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=oe.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(u(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,u(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){xs.setOwner(e,this,"_clippingPlanes")}}});function Htt(e,t){let n=e.loadingImagery;u(n)||(n=e.readyImagery);let i=t.loadingImagery;return u(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}qo.prototype.update=function(e){this._imageryLayers._update()};function Gtt(e,t){let n=t.creditDisplay,i=e._terrainProvider;u(i)&&u(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&u(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}qo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Htt)})),Gtt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Nd._freeVertexArray(t[i]);t.length=0};qo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,o=t.length;i<o;++i){let r=t[i];u(r)&&(r.length=0)}let n=this._clippingPlanes;u(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};qo.prototype.endUpdate=function(e){if(!u(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:uc.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:uc.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=Ge(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ve.fromCache(s),s=Ge(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ve.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&TD.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,o=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(u(c))for(let l=0,f=c.length;l<f;++l){let d=c[l],p=d.data.tileBoundingRegion;hnt(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function hme(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}qo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)hme(t[n],e)};qo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};qo.prototype.getLevelMaximumGeometricError=function(e){return u(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};qo.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;u(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Kn.CULLED_BUT_NEEDED,o=n.terrainState),Nd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==fr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Nd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var Wtt=new se,mme=new ce,jtt=new ce,qtt=new fe;function Yk(e,t){if(t.west<t.east)return t;let n=ce.clone(t,jtt);return ce.center(e,qtt).longitude>0?n.east=P.PI:n.west=-P.PI,n}function pme(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(u(n)&&n.enabled||!ce.equals(e.cartographicLimitRectangle,ce.MAX_VALUE))}qo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=pme(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return fr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return fr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;u(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let l=Yk(e.rectangle,this.cartographicLimitRectangle),f=ce.simpleIntersection(l,e.rectangle,mme);if(!u(f))return fr.NONE;if(ce.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==te.SCENE3D&&(c=Wtt,se.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===te.MORPHING&&u(r.renderedMesh)&&(c=se.union(s.boundingSphere,c,c))),!u(c))return fr.PARTIAL;let d=this._clippingPlanes;if(u(d)&&d.enabled){let x=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=x!==Zt.INSIDE,x===Zt.OUTSIDE)return fr.NONE}let p,g=a.computeVisibility(c);if(g===Zt.OUTSIDE?p=fr.NONE:g===Zt.INTERSECTING?p=fr.PARTIAL:g===Zt.INSIDE&&(p=fr.FULL),p===fr.NONE)return p;let m=t.mode===te.SCENE3D&&t.camera.frustum instanceof Qt;if(t.mode===te.SCENE3D&&!m&&u(n)&&!o){let x=r.occludeePointInScaledSpace;return!u(x)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(x,s.minimumHeight)?p:fr.NONE}return p};qo.prototype.canRefine=function(e){return u(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var Ytt=[],Xtt=[];qo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=Ytt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;u(n)&&(o=n.terrainState===co.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(u(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!u(p)||p.state===si.FAILED||p.state===si.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let l=this.quadtree._lastSelectionFrameNumber,f=Xtt;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===l?d._lastSelectionResult:Kn.NONE;if(p===Kn.RENDERED){let g=d.data;if(!u(g))continue;if(!o&&d.data.terrainState===co.READY)return!1;let m=d.data.imagery;for(a=0,c=m.length;a<c;++a){let x=m[a],b=x.loadingImagery,T=!u(b)||b.state===si.FAILED||b.state===si.INVALID,A=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[A])return!1}}else p===Kn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var Ktt=new h;qo.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,Ktt),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var lme=new L,qk=new L,Ztt=new oe,$tt=new oe,Qtt=new oe,Jtt=new h,ume=new h,ent=new h,tnt=new h;qo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let l=i[a];u(l.readyImagery)&&l.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];u(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;u(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var nnt=[new h,new h,new h,new h];function fme(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=nnt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}qo.prototype.computeDistanceToTile=function(e,t){int(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,l=Math.abs(c-r),f=Math.abs(c-s);l>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function int(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Nd);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new ad({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,l=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let m=g.mesh,x=g.terrainData;if(m!==void 0&&m.minimumHeight!==void 0&&m.maximumHeight!==void 0){r.minimumHeight=m.minimumHeight,r.maximumHeight=m.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}l=p}if(l!==void 0){let p=n.terrainExaggeration,g=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Yc.getHeight(r.minimumHeight,p,g),r.maximumHeight=Yc.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=On.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=se.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),u(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=fme(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=fme(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=l,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}qo.prototype.isDestroyed=function(){return!1};qo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),le(this)};function ont(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,l;for(l=0;l<c;++l)if(o=a[l],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=l;break}if(s!==-1){let f=s+e;if(o=a[f],r=u(o)?y(o.readyImagery,o.loadingImagery):void 0,!u(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(l=s;l<f;++l)a[l].freeResources();a.splice(s,e)}return!0}}qo.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(u(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,l=c.length,f=-1,d=0;for(a=0;a<l;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=ont(d,e,n),s.state=Ks.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Ks.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Kn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};qo.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],l=c.loadingImagery;if(u(l)||(l=c.readyImagery),l.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),u(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};qo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};qo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var rnt=new L,snt=new L;function dme(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=L.multiplyByPoint(i,this.properties.rtc,ume);return L.setTranslation(i,o,lme),lme},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=L.multiplyByPoint(i,this.properties.rtc,ume);return L.setTranslation(i,r,qk),L.multiply(o,qk,qk),qk},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return u(i)&&u(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=u(i)?L.multiply(e.context.uniformState.view,i.modelMatrix,rnt):L.IDENTITY;return L.inverseTranspose(o,snt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new oe(0,0,.5,1),fillHighlightColor:new z(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new V(65e5,9e6),nightFadeDistance:new V(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new L,tileRectangle:new oe,terrainExaggerationAndRelativeHeight:new V(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new V,southMercatorYAndOneOverHeight:new V,waterMask:void 0,waterMaskTranslationAndScale:new oe,minMaxHeight:new V,scaleAndBias:new L,clippingPlanesEdgeColor:z.clone(z.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new oe,frontFaceAlphaByDistance:new oe,backFaceAlphaByDistance:new oe,localizedTranslucencyRectangle:new oe,undergroundColor:z.clone(z.TRANSPARENT),undergroundColorAlphaByDistance:new oe,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return u(t.materialUniformMap)?gt(n,t.materialUniformMap):n}function ant(e,t,n){let i=n.data,o,r;if(u(i.vertexArray)?(o=i.mesh,r=i.vertexArray):u(i.fill)&&u(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!u(o)||!u(r))){if(u(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=cnt(e,r,o),i.wireframeVertexArray.mesh=o}}function cnt(e,t,n){let o={indices:n.indices,primitiveType:Le.TRIANGLES};Fn.toWireframe(o);let r=o.indices,s=ut.createIndexBuffer({context:e,typedArray:r,usage:Be.STATIC_DRAW,indexDatatype:ke.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ti({context:e,attributes:t._attributes,indexBuffer:s})}var _me,gme,Xk;(function(){let e=new yt({geometry:ch.fromDimensions({dimensions:new h(2,2,2)})}),t=new yt({geometry:new mg({radius:1})}),n=new L,i,o;function r(s){return new Sn({geometryInstances:s,appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})}_me=function(s,a){return s===i||(Xk(),i=s,n=L.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=kt.fromColor(a),o=r(e)),o},gme=function(s,a){return s===i||(Xk(),i=s,n=L.fromTranslation(s.center,n),n=L.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=kt.fromColor(a),o=r(t)),o},Xk=function(){u(o)&&(o.destroy(),o=void 0,i=void 0)}})();var lnt=new oe(0,0,0,0),unt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},fnt=z.TRANSPARENT,dnt=new Ot;function hnt(e,t,n){let i=t.data;u(i.vertexArray)||(i.fill===void 0&&(i.fill=new TD(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(u(r)&&u(r.credits)){let he=r.credits;for(let be=0,jt=he.length;be<jt;++be)o.addCreditToNextFrame(he[be])}let s=zt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!u(a)&&u(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let l=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,fnt),b=y(e.undergroundColorAlphaByDistance,dnt),T=pme(e,n)&&n.mode===te.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),A=e.lambertDiffuseMultiplier,C=e.vertexShadowDarkness,S=e.hasWaterMask&&u(a),w=e.oceanNormalMap,D=S&&u(w),O=e.terrainProvider,R=u(O)&&e.terrainProvider.hasVertexNormals,N=n.fog.enabled&&n.fog.renderable&&!l,F=e.showGroundAtmosphere&&n.mode===te.SCENE3D,_=gn.castShadows(e.shadows)&&!d,E=gn.receiveShadows(e.shadows)&&!d,v=e.hueShift,I=e.saturationShift,M=e.brightnessShift,B=!(P.equalsEpsilon(v,0,P.EPSILON7)&&P.equalsEpsilon(I,0,P.EPSILON7)&&P.equalsEpsilon(M,0,P.EPSILON7)),H=!1;if(F){let he=h.magnitude(n.camera.positionWC),be=e.nightFadeOutDistance;H=he>be}S&&--s,D&&--s,u(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,u(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=f.numberOfTextureUniforms;let U=i.renderedMesh,G=U.center,k=U.encoding,Y=i.tileBoundingRegion,q=n.terrainExaggeration,Q=n.terrainExaggerationRelativeHeight,W=q!==1,K=k.hasGeodeticSurfaceNormals,Z=Ztt,me=0,xe=0,re=0,ge=0,ye=!1;if(n.mode!==te.SCENE3D){let he=n.mapProjection,be=he.project(ce.southwest(t.rectangle),ent),jt=he.project(ce.northeast(t.rectangle),tnt);if(Z.x=be.x,Z.y=be.y,Z.z=jt.x,Z.w=jt.y,n.mode!==te.MORPHING&&(G=Jtt,G.x=0,G.y=(Z.z+Z.x)*.5,G.z=(Z.w+Z.y)*.5,Z.x-=G.y,Z.y-=G.z,Z.z-=G.y,Z.w-=G.z),n.mode===te.SCENE2D&&k.quantization===Xs.BITS12){let lt=1/(Math.pow(2,12)-1)*.5,ui=(Z.z-Z.x)*lt,qi=(Z.w-Z.y)*lt;Z.x-=ui,Z.y-=qi,Z.z+=ui,Z.w+=qi}he instanceof Oi&&(me=t.rectangle.south,xe=t.rectangle.north,re=Oi.geodeticLatitudeToMercatorAngle(me),ge=1/(Oi.geodeticLatitudeToMercatorAngle(xe)-re),ye=!0)}let Ae=unt;Ae.frameState=n,Ae.surfaceTile=i,Ae.showReflectiveOcean=S,Ae.showOceanWaves=D,Ae.enableLighting=e.enableLighting,Ae.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ae.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ae.showGroundAtmosphere=F,Ae.atmosphereLightIntensity=e.atmosphereLightIntensity,Ae.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ae.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ae.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ae.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ae.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ae.perFragmentGroundAtmosphere=H,Ae.hasVertexNormals=R,Ae.useWebMercatorProjection=ye,Ae.clippedByBoundaries=i.clippedByBoundaries,Ae.hasGeodeticSurfaceNormals=K,Ae.hasExaggeration=W;let De=i.imagery,Fe=0,Re=De.length,Ue=e.showSkirts&&!l&&!d,st=e.backFaceCulling&&!l&&!d,pt=st?e._renderState:e._disableCullingRenderState,nt=st?e._blendRenderState:e._disableCullingBlendRenderState,sn=pt,Rn=e._firstPassInitialColor,Ut=n.context;if(u(e._debug.boundingSphereTile)||Xk(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let he=e._drawCommands.length;for(let be=0;be<he;++be)e._uniformMaps[be]=dme(n,e)}do{let he=0,be,jt;if(e._drawCommands.length<=e._usedDrawCommands?(be=new et,be.owner=t,be.cull=!1,be.boundingVolume=new se,be.orientedBoundingBox=void 0,jt=dme(n,e),e._drawCommands.push(be),e._uniformMaps.push(jt)):(be=e._drawCommands[e._usedDrawCommands],jt=e._uniformMaps[e._usedDrawCommands]),be.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let fi=Y.boundingVolume,wr=Y.boundingSphere;u(fi)?_me(fi,z.RED).update(n):u(wr)&&gme(wr,z.RED).update(n)}let lt=jt.properties;oe.clone(Rn,lt.initialColor),lt.oceanNormalMap=w,lt.lightingFadeDistance.x=e.lightingFadeOutDistance,lt.lightingFadeDistance.y=e.lightingFadeInDistance,lt.nightFadeDistance.x=e.nightFadeOutDistance,lt.nightFadeDistance.y=e.nightFadeInDistance,lt.atmosphereLightIntensity=e.atmosphereLightIntensity,lt.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,lt.atmosphereMieCoefficient=e.atmosphereMieCoefficient,lt.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,lt.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,lt.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,lt.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let ui=l?g:p,qi=l?p:g;u(ui)&&(oe.fromElements(ui.near,ui.nearValue,ui.far,ui.farValue,lt.frontFaceAlphaByDistance),oe.fromElements(qi.near,qi.nearValue,qi.far,qi.farValue,lt.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,lt.undergroundColorAlphaByDistance),z.clone(x,lt.undergroundColor),lt.lambertDiffuseMultiplier=A,lt.vertexShadowDarkness=C;let ec=!u(i.vertexArray)&&u(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;ec&&z.clone(e.fillHighlightColor,lt.fillHighlightColor),lt.terrainExaggerationAndRelativeHeight.x=q,lt.terrainExaggerationAndRelativeHeight.y=Q,lt.center3D=U.center,h.clone(G,lt.rtc),oe.clone(Z,lt.tileRectangle),lt.southAndNorthLatitude.x=me,lt.southAndNorthLatitude.y=xe,lt.southMercatorYAndOneOverHeight.x=re,lt.southMercatorYAndOneOverHeight.y=ge;let fs=$tt,ds=Yk(t.rectangle,e.cartographicLimitRectangle),Xr=Qtt,Me=Yk(t.rectangle,m);h.fromElements(v,I,M,lt.hsbShift);let Ke=t.rectangle,Ze=1/Ke.width,Xe=1/Ke.height;fs.x=(ds.west-Ke.west)*Ze,fs.y=(ds.south-Ke.south)*Xe,fs.z=(ds.east-Ke.west)*Ze,fs.w=(ds.north-Ke.south)*Xe,oe.clone(fs,lt.localizedCartographicLimitRectangle),Xr.x=(Me.west-Ke.west)*Ze,Xr.y=(Me.south-Ke.south)*Xe,Xr.z=(Me.east-Ke.west)*Ze,Xr.w=(Me.north-Ke.south)*Xe,oe.clone(Xr,lt.localizedTranslucencyRectangle);let ht=N&&P.fog(t._distance,n.fog.density)>P.EPSILON3;B=B&&(ht||F);let Vt=!1,xn=!1,ai=!1,uo=!1,Kr=!1,Zr=!1,Mo=!1,Ui=!1,$r=!1,Hn=!1;for(;he<s&&Fe<Re;){let fi=De[Fe],wr=fi.readyImagery;if(++Fe,!u(wr)||wr.imageryLayer.alpha===0)continue;let Zd=fi.useWebMercatorT?wr.textureWebMercator:wr.texture,ir=wr.imageryLayer;u(fi.textureTranslationAndScale)||(fi.textureTranslationAndScale=ir._calculateTextureTranslationAndScale(t,fi)),lt.dayTextures[he]=Zd,lt.dayTextureTranslationAndScale[he]=fi.textureTranslationAndScale,lt.dayTextureTexCoordsRectangle[he]=fi.textureCoordinateRectangle,lt.dayTextureUseWebMercatorT[he]=fi.useWebMercatorT,lt.dayTextureAlpha[he]=ir.alpha,Zr=Zr||lt.dayTextureAlpha[he]!==1,lt.dayTextureNightAlpha[he]=ir.nightAlpha,Mo=Mo||lt.dayTextureNightAlpha[he]!==1,lt.dayTextureDayAlpha[he]=ir.dayAlpha,Mo=Mo||lt.dayTextureDayAlpha[he]!==1,lt.dayTextureBrightness[he]=ir.brightness,Vt=Vt||lt.dayTextureBrightness[he]!==ha.DEFAULT_BRIGHTNESS,lt.dayTextureContrast[he]=ir.contrast,xn=xn||lt.dayTextureContrast[he]!==ha.DEFAULT_CONTRAST,lt.dayTextureHue[he]=ir.hue,ai=ai||lt.dayTextureHue[he]!==ha.DEFAULT_HUE,lt.dayTextureSaturation[he]=ir.saturation,uo=uo||lt.dayTextureSaturation[he]!==ha.DEFAULT_SATURATION,lt.dayTextureOneOverGamma[he]=1/ir.gamma,Kr=Kr||lt.dayTextureOneOverGamma[he]!==1/ha.DEFAULT_GAMMA,lt.dayTextureSplit[he]=ir.splitDirection,Ui=Ui||lt.dayTextureSplit[he]!==0;let Cu=lt.dayTextureCutoutRectangles[he];if(u(Cu)||(Cu=lt.dayTextureCutoutRectangles[he]=new oe),oe.clone(oe.ZERO,Cu),u(ir.cutoutRectangle)){let kr=Yk(Ke,ir.cutoutRectangle),tc=ce.simpleIntersection(kr,Ke,mme);$r=u(tc)||$r,Cu.x=(kr.west-Ke.west)*Ze,Cu.y=(kr.south-Ke.south)*Xe,Cu.z=(kr.east-Ke.west)*Ze,Cu.w=(kr.north-Ke.south)*Xe}let Fc=lt.colorsToAlpha[he];u(Fc)||(Fc=lt.colorsToAlpha[he]=new oe);let Vy=u(ir.colorToAlpha)&&ir.colorToAlphaThreshold>0;if(Hn=Hn||Vy,Vy){let kr=ir.colorToAlpha;Fc.x=kr.red,Fc.y=kr.green,Fc.z=kr.blue,Fc.w=ir.colorToAlphaThreshold}else Fc.w=-1;if(u(wr.credits)){let kr=wr.credits;for(let tc=0,Eu=kr.length;tc<Eu;++tc)o.addCreditToNextFrame(kr[tc])}++he}lt.dayTextures.length=he,lt.waterMask=a,oe.clone(c,lt.waterMaskTranslationAndScale),lt.minMaxHeight.x=k.minimumHeight,lt.minMaxHeight.y=k.maximumHeight,L.clone(k.matrix,lt.scaleAndBias);let Mn=e._clippingPlanes,cn=u(Mn)&&Mn.enabled&&t.isClipped;cn&&(lt.clippingPlanesEdgeColor=z.clone(Mn.edgeColor,lt.clippingPlanesEdgeColor),lt.clippingPlanesEdgeWidth=Mn.edgeWidth),Ae.numberOfDayTextures=he,Ae.applyBrightness=Vt,Ae.applyContrast=xn,Ae.applyHue=ai,Ae.applySaturation=uo,Ae.applyGamma=Kr,Ae.applyAlpha=Zr,Ae.applyDayNightAlpha=Mo,Ae.applySplit=Ui,Ae.enableFog=ht,Ae.enableClippingPlanes=cn,Ae.clippingPlanes=Mn,Ae.hasImageryLayerCutout=$r,Ae.colorCorrect=B,Ae.highlightFillTile=ec,Ae.colorToAlpha=Hn,Ae.showUndergroundColor=T,Ae.translucent=d;let mi=i.renderedMesh.indices.length;Ue||(mi=i.renderedMesh.indexCountWithoutSkirts),be.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ae),be.castShadows=_,be.receiveShadows=E,be.renderState=sn,be.primitiveType=Le.TRIANGLES,be.vertexArray=i.vertexArray||i.fill.vertexArray,be.count=mi,be.uniformMap=jt,be.pass=Ee.GLOBE,e._debug.wireframe&&(ant(Ut,e,t),u(i.wireframeVertexArray)&&(be.vertexArray=i.wireframeVertexArray,be.primitiveType=Le.LINES,be.count=mi*2));let ci=be.boundingVolume,Ds=be.orientedBoundingBox;n.mode!==te.SCENE3D?(se.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,Y.minimumHeight,Y.maximumHeight,ci),h.fromElements(ci.center.z,ci.center.x,ci.center.y,ci.center),n.mode===te.MORPHING&&(ci=se.union(Y.boundingSphere,ci,ci))):(be.boundingVolume=se.clone(Y.boundingSphere,ci),be.orientedBoundingBox=On.clone(Y.boundingVolume,Ds)),be.dirty=!0,d&&f.updateDerivedCommands(be,n),hme(be,n),sn=nt,Rn=lnt}while(Fe<Re)}var Kk=qo;function yme(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=ce.clone(ce.MAX_VALUE)}Object.defineProperties(yme.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Ot.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Ot.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){u(e)||(e=ce.clone(ce.MAX_VALUE)),ce.clone(e,this._rectangle)}}});var Zk=yme;function ls(){this._layers=[],this.layerAdded=new pe,this.layerRemoved=new pe,this.layerMoved=new pe,this.layerShownOrHidden=new pe}Object.defineProperties(ls.prototype,{length:{get:function(){return this._layers.length}}});ls.prototype.add=function(e,t){u(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};ls.prototype.addImageryProvider=function(e,t){let n=new ha(e);return this.add(n,t),n};ls.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};ls.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};ls.prototype.contains=function(e){return this.indexOf(e)!==-1};ls.prototype.indexOf=function(e){return this._layers.indexOf(e)};ls.prototype.get=function(e){return this._layers[e]};function $k(e,t){return e.indexOf(t)}function xme(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}ls.prototype.raise=function(e){let t=$k(this._layers,e);xme(this,t,t+1)};ls.prototype.lower=function(e){let t=$k(this._layers,e);xme(this,t,t-1)};ls.prototype.raiseToTop=function(e){let t=$k(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};ls.prototype.lowerToBottom=function(e){let t=$k(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var mnt=new ce;function bme(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!u(r)&&a<o.length;++a){let c=o[a];ce.contains(c.rectangle,t)&&(r=c)}if(!u(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],l=c.readyImagery;if(!u(l)||!l.imageryLayer.ready)continue;let f=l.imageryLayer.imageryProvider;if(n&&!u(f.pickFeatures)||!ce.contains(l.rectangle,t))continue;let d=mnt,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),ce.contains(d,t)&&i(l)}}ls.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(bme(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};ls.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(bme(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);u(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let l=s[c],f=r[c];if(u(l)&&l.length>0)for(let d=0;d<l.length;++d){let p=l[d];p.imageryLayer=f,u(p.position)||(p.position=i),a.push(p)}}return a})};ls.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};ls.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};ls.prototype.isDestroyed=function(){return!1};ls.prototype.destroy=function(){return this.removeAll(!0),le(this)};ls.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(u(i._show)&&(u(n)||(n=[]),n.push(i)),i._show=i.show);if(u(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var Qk=ls;function Tme(e){this._ellipsoid=new Eg(e.ellipsoid,h.ZERO)}Object.defineProperties(Tme.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var Jk=Tme;function Pc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Kn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Ks.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Pc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new Pc({tilingScheme:e,x:s,y:r,level:0});return i};Pc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(u(t)&&u(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],ce.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(u(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],ce.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Pc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return u(this._southwestChild)||(this._southwestChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return u(this._southeastChild)||(this._southeastChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return u(this._northwestChild)||(this._northwestChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return u(this._northeastChild)||(this._northeastChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<Ks.DONE}},eligibleForUnloading:{get:function(){let e=!0;return u(this.data)&&(e=this.data.eligibleForUnloading,u(e)||(e=!0)),e}}});Pc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};Pc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Pc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Pc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Pc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Pc.prototype.freeResources=function(){this.state=Ks.START,this.renderable=!1,this.upsampledFromParent=!1,u(this.data)&&u(this.data.freeResources)&&this.data.freeResources(),eU(this._southwestChild),this._southwestChild=void 0,eU(this._southeastChild),this._southeastChild=void 0,eU(this._northwestChild),this._northwestChild=void 0,eU(this._northeastChild),this._northeastChild=void 0};function eU(e){u(e)&&e.freeResources()}var tU=Pc;function nU(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}nU.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};nU.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&u(this._lastBeforeStartOfFrame)&&this.count>e&&u(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),Ame(this,t)),t=i}};function Ame(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}nU.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!u(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(u(e.replacementPrevious)||u(e.replacementNext))&&Ame(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var iU=nU;function xf(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new iU,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new Jk({ellipsoid:n}),this._tileLoadProgressEvent=new pe,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(xf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});xf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function pnt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Eme(e);let n=e._levelZeroTiles;if(u(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}xf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;u(t);)t.state!==Ks.START&&e(t),t=t.replacementNext};xf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};xf.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};xf.prototype.update=function(e){u(this._tileProvider.update)&&this._tileProvider.update(e)};function Eme(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}xf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(pnt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Eme(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};xf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),xnt(this,e),Int(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function _nt(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=pe.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}xf.prototype.endFrame=function(e){!e.passes.render||e.mode===te.MORPHING||(Snt(this,e),Dnt(this,e),_nt(this,e))};xf.prototype.isDestroyed=function(){return!1};xf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var CD,Cme=new fe;function gnt(e,t){let n=ce.center(e.rectangle,Cme),i=n.longitude-CD.longitude,o=n.latitude-CD.latitude;n=ce.center(t.rectangle,Cme);let r=n.longitude-CD.longitude,s=n.latitude-CD.latitude;return i*i+o*o-(r*r+s*s)}var ynt=new h,AD=[];function xnt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!u(e._levelZeroTiles)){let x=r.tilingScheme;if(u(x)){let b=r.tilingScheme;e._levelZeroTiles=tU.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(AD.length<T)for(AD=new Array(T),o=0;o<T;++o)AD[o]===void 0&&(AD[o]=new ED)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;CD=t.camera.positionCartographic,a.sort(gnt);let l=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(l.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,l,f);l.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=L.getTranslation(g.transform,ynt);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(m,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?ma(e,s,r,t,c,!1,AD[o]):(Hp(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function Hp(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function ED(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Sme(){this.southwest=new ED,this.southeast=new ED,this.northwest=new ED,this.northeast=new ED}Sme.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var v7=new Array(31);for(let e=0;e<v7.length;++e)v7[e]=new Sme;function bnt(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Cnt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,l=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Kn.NONE,g=e.tileProvider;if(s||i){let m=Kn.originalResult(p)===Kn.RENDERED,x=Kn.originalResult(p)===Kn.CULLED||p===Kn.NONE,b=n.state===Ks.DONE,T=m||x||b;if(T||u(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&Hp(e,e._tileLoadQueueMedium,n,t),oU(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&Hp(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&l.upsampledFromParent&&f.upsampledFromParent){oU(e,n),Hp(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(l),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,A=e._tileLoadQueueHigh.length,C=e._tileToUpdateHeights.length;if(Tnt(e,a,c,l,f,t,i,o),x!==e._tilesToRender.length){let S=o.allAreRenderable,w=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!S&&!w){let R=e._tilesToRender;for(let F=x;F<R.length;++F){let _=R[F];for(;_!==void 0&&_._lastSelectionResult!==Kn.KICKED&&_!==n;)_._lastSelectionResult=Kn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=C,oU(e,n),n._lastSelectionResult=Kn.RENDERED;let N=p===Kn.RENDERED;!N&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=A,Hp(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=N,N||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&Hp(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,oU(e,n),Hp(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Tnt(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,l=e._tileProvider,f=e._occluders,d=v7[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(ma(e,t,l,r,f,s,p),ma(e,n,l,r,f,s,g),ma(e,i,l,r,f,s,m),ma(e,o,l,r,f,s,x)):(ma(e,i,l,r,f,s,m),ma(e,t,l,r,f,s,p),ma(e,o,l,r,f,s,x),ma(e,n,l,r,f,s,g)):c.latitude<t.rectangle.north?(ma(e,n,l,r,f,s,g),ma(e,t,l,r,f,s,p),ma(e,o,l,r,f,s,x),ma(e,i,l,r,f,s,m)):(ma(e,o,l,r,f,s,x),ma(e,i,l,r,f,s,m),ma(e,n,l,r,f,s,g),ma(e,t,l,r,f,s,p)),d.combine(a)}function Ant(e,t){let n=t.rectangle;return u(e._cameraPositionCartographic)&&ce.contains(n,e._cameraPositionCartographic)||u(e._cameraReferenceFrameOriginCartographic)&&ce.contains(n,e._cameraReferenceFrameOriginCartographic)}function ma(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==fr.NONE)return bnt(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Ant(e,t)){(!u(t.data)||!u(t.data.vertexArray))&&Hp(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Kn.NONE;c!==Kn.CULLED_BUT_NEEDED&&c!==Kn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Kn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(Hp(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Kn.CULLED):t._lastSelectionResult=Kn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Cnt(e,t,n){if(t.mode===te.SCENE2D||t.camera.frustum instanceof Qt||t.camera.frustum instanceof vr)return Ent(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Ent(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;u(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,l=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=l/f;return t.fog.enabled&&t.mode!==te.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function oU(e,t){e._tilesToRender.push(t)}function Snt(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=Ti()+e._loadQueueTimeSlice,s=e._tileProvider,a=S7(e,t,s,r,n,!1);a=S7(e,t,s,r,i,a),S7(e,t,s,r,o,a)}function wnt(e,t){return e._loadPriority-t._loadPriority}function S7(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(wnt);for(let s=0,a=o.length;s<a&&(Ti()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var ZC=new Cn,w7=new fe,fy=new h,vnt=[];function Dnt(e,t){if(!u(e.tileProvider.tilingScheme))return;let n=vnt;n.length=0;let i=e._tileToUpdateHeights,o=Ti(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,l=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!u(d.data)||!u(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Kn.NONE;(x===Kn.RENDERED||x===Kn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,m=!1;for(f=e._lastTileIndex;f<g;++f){let x=p[f],b=d.data.terrainData,T=u(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(u(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,l)),a===te.SCENE3D){let C=l.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,ZC.direction),S=l.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,ZC.origin);if(!u(S)){let w=0;u(d.data.tileBoundingRegion)&&(w=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(w,-11500),O=h.multiplyByScalar(C,Math.abs(D)+1,fy);h.subtract(x.positionOnEllipsoidSurface,O,ZC.origin)}}else fe.clone(x.positionCartographic,w7),w7.height=-11500,c.project(w7,fy),h.fromElements(fy.z,fy.x,fy.y,fy),h.clone(fy,ZC.origin),h.clone(h.UNIT_X,ZC.direction);let A=d.data.pick(ZC,a,c,!1,fy);u(A)&&(u(x.callback)&&x.callback(A),x.level=d.level)}if(Ti()>=s){m=!0;break}}if(m){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function Int(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var rU=xf;function Bd(e){e=y(e,ie.WGS84);let t=new zp({ellipsoid:e}),n=new Qk;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new bk,this._material=void 0,this._surface=new rU({tileProvider:new Kk({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new pe,this._undergroundColor=z.clone(z.BLACK),this._undergroundColorAlphaByDistance=new Ot(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new Zk,I7(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new ve({url:$t("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=gn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Bd.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return u(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){u(e)||(e=ce.clone(ce.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),u(this._material)&&I7(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,I7(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=z.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Ot.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function I7(e){let t=[],n=u(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[oy,uD];u(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(yk),e._surfaceShaderSet.baseVertexShaderSource=new ze({sources:[oy,uD,xk],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new ze({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function Pnt(e){return function(t,n){let i=se.distanceSquaredTo(t.pickBoundingSphere,e),o=se.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var Ont=[],Rnt={start:0,stop:0};Bd.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=Ont;s.length=0;let a=this._surface._tilesToRender,c=a.length,l,f;for(f=0;f<c;++f){l=a[f];let p=l.data;if(!u(p))continue;let g=p.pickBoundingSphere;if(o!==te.SCENE3D)p.pickBoundingSphere=g=se.fromRectangleWithHeights2D(l.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(u(p.renderedMesh))se.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=Ei.raySphere(e,g,Rnt);u(m)&&s.push(p)}s.sort(Pnt(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!u(d));++f);return d};var Mnt=new fe;Bd.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),u(n)&&t.mode!==te.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,Mnt);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var Lnt=new h,wme=new h,Nnt=new fe,Fnt=new Cn;function D7(e,t){return u(e)&&ce.contains(e.rectangle,t)?e:void 0}Bd.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!u(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!ce.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;u(n);)n=D7(n._southwestChild,e)||D7(n._southeastChild,e)||D7(n._northwestChild,e)||n._northeastChild,u(n)&&u(n.data)&&u(n.data.renderedMesh)&&(r=n);if(n=r,!u(n)||!u(n.data)||!u(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,Lnt),l=Fnt,f=a.geodeticSurfaceNormal(c,l.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,l.origin);if(!u(d)){let g;u(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,wme);h.subtract(c,x,l.origin)}let p=n.data.pick(l,void 0,s,!1,wme);if(u(p))return a.cartesianToCartographic(p,Nnt).height};Bd.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Bd.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&u(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(u(c)){let l=this;a.fetchImage().then(function(f){c===l._oceanNormalMapResource.url&&(l._oceanNormalMap=l._oceanNormalMap&&l._oceanNormalMap.destroy(),l._oceanNormalMap=new Pt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===te.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Bd.prototype.render=function(e){this.show&&(u(this._material)&&this._material.update(e.context),this._surface.render(e))};Bd.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Bd.prototype.isDestroyed=function(){return!1};Bd.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),le(this)};var sU=Bd;function Bnt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var aU=Bnt;var Vme={},knt=32.184,Unt=2451545,vme=-.0529921,Dme=-.1059842,Ime=13.0120009,Pme=13.3407154,Ome=.9856003,Rme=26.4057084,Mme=13.064993,Lme=.3287146,Nme=1.7484877,Fme=-.1589763,Bme=.0036096,kme=.1643573,Ume=12.9590088,P7=new J;Vme.ComputeMoon=function(e,t){u(e)||(e=J.now()),P7=J.addSeconds(e,knt,P7);let n=J.totalDays(P7)-Unt,i=n/Xn.DAYS_PER_JULIAN_CENTURY,o=(125.045+vme*n)*P.RADIANS_PER_DEGREE,r=(250.089+Dme*n)*P.RADIANS_PER_DEGREE,s=(260.008+Ime*n)*P.RADIANS_PER_DEGREE,a=(176.625+Pme*n)*P.RADIANS_PER_DEGREE,c=(357.529+Ome*n)*P.RADIANS_PER_DEGREE,l=(311.589+Rme*n)*P.RADIANS_PER_DEGREE,f=(134.963+Mme*n)*P.RADIANS_PER_DEGREE,d=(276.617+Lme*n)*P.RADIANS_PER_DEGREE,p=(34.226+Nme*n)*P.RADIANS_PER_DEGREE,g=(15.134+Fme*n)*P.RADIANS_PER_DEGREE,m=(119.743+Bme*n)*P.RADIANS_PER_DEGREE,x=(239.961+kme*n)*P.RADIANS_PER_DEGREE,b=(25.053+Ume*n)*P.RADIANS_PER_DEGREE,T=Math.sin(o),A=Math.sin(r),C=Math.sin(s),S=Math.sin(a),w=Math.sin(c),D=Math.sin(l),O=Math.sin(f),R=Math.sin(d),N=Math.sin(p),F=Math.sin(g),_=Math.sin(m),E=Math.sin(x),v=Math.sin(b),I=Math.cos(o),M=Math.cos(r),B=Math.cos(s),H=Math.cos(a),U=Math.cos(c),G=Math.cos(l),k=Math.cos(f),Y=Math.cos(d),q=Math.cos(p),Q=Math.cos(g),W=Math.cos(m),K=Math.cos(x),Z=Math.cos(b),me=(269.9949+.0031*i-3.8787*T-.1204*A+.07*C-.0172*S+.0072*D-.0052*F+.0043*v)*P.RADIANS_PER_DEGREE,xe=(66.5392+.013*i+1.5419*I+.0239*M-.0278*B+.0068*H-.0029*G+9e-4*k+8e-4*Q-9e-4*Z)*P.RADIANS_PER_DEGREE,re=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*A-.0642*C+.0158*S+.0252*w-.0066*D-.0047*O-.0046*R+.0028*N+.0052*F+.004*_+.0019*E-.0044*v)*P.RADIANS_PER_DEGREE,ge=(13.17635815-14e-13*(2*n)+3.561*I*vme+.1208*M*Dme-.0642*B*Ime+.0158*H*Pme+.0252*U*Ome-.0066*G*Rme-.0047*k*Mme-.0046*Y*Lme+.0028*q*Nme+.0052*Q*Fme+.004*W*Bme+.0019*K*kme-.0044*Z*Ume)/86400*P.RADIANS_PER_DEGREE;return u(t)||(t=new aU),t.rightAscension=me,t.declination=xe,t.rotation=re,t.rotationRate=ge,t};var cU=Vme;function zme(e){(!u(e)||typeof e!="function")&&(e=cU.ComputeMoon),this._computeFunction=e}var Vnt=new h,znt=new h,Hnt=new h;function Gnt(e,t,n){let i=Vnt;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=Hnt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,znt);return u(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var Wnt=new $,jnt=new Ne;zme.prototype.evaluate=function(e,t){u(e)||(e=J.now());let n=this._computeFunction(e),i=Gnt(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Ne.fromAxisAngle(h.UNIT_Z,o,jnt),s=$.fromQuaternion(Ne.conjugate(r,r),Wnt);return $.multiply(s,i,i)};var lU=zme;var SD=`uniform vec3 u_radii;
- uniform vec3 u_oneOverEllipsoidRadiiSquared;
- in vec3 v_positionEC;
- vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side)
- {
- vec3 positionEC = czm_pointAlongRay(ray, intersection);
- vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz;
- vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared));
- vec3 sphericalNormal = normalize(positionMC / u_radii);
- vec3 normalMC = geodeticNormal * side;
- vec3 normalEC = normalize(czm_normal * normalMC);
- vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal);
- vec3 positionToEyeEC = -positionEC;
- czm_materialInput materialInput;
- materialInput.s = st.s;
- materialInput.st = st;
- materialInput.str = (positionMC + u_radii) / u_radii;
- materialInput.normalEC = normalEC;
- materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC);
- materialInput.positionToEyeEC = positionToEyeEC;
- czm_material material = czm_getMaterial(materialInput);
- #ifdef ONLY_SUN_LIGHTING
- return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC);
- #else
- return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC);
- #endif
- }
- void main()
- {
-
-
-
-
-
-
- float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5;
- vec3 direction = normalize(v_positionEC);
- vec3 ellipsoidCenter = czm_modelView[3].xyz;
- float t1 = -1.0;
- float t2 = -1.0;
- float b = -2.0 * dot(direction, ellipsoidCenter);
- float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius;
- float discriminant = b * b - 4.0 * c;
- if (discriminant >= 0.0) {
- t1 = (-b - sqrt(discriminant)) * 0.5;
- t2 = (-b + sqrt(discriminant)) * 0.5;
- }
- if (t1 < 0.0 && t2 < 0.0) {
- discard;
- }
- float t = min(t1, t2);
- if (t < 0.0) {
- t = 0.0;
- }
-
- czm_ray ray = czm_ray(t * direction, direction);
- vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z);
- czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii);
- if (czm_isEmpty(intersection))
- {
- discard;
- }
-
- vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0);
-
- vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0);
- out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a);
- out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a);
- #if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth)))
- t = (intersection.start != 0.0) ? intersection.start : intersection.stop;
- vec3 positionEC = czm_pointAlongRay(ray, t);
- vec4 positionCC = czm_projection * vec4(positionEC, 1.0);
- #ifdef LOG_DEPTH
- czm_writeLogDepth(1.0 + positionCC.w);
- #else
- float z = positionCC.z / positionCC.w;
- float n = czm_depthRange.near;
- float f = czm_depthRange.far;
- gl_FragDepth = (z * (f - n) + f + n) * 0.5;
- #endif
- #endif
- }
- `;var wD=`in vec3 position;
- uniform vec3 u_radii;
- out vec3 v_positionEC;
- void main()
- {
-
-
-
-
- vec4 p = vec4(u_radii * position, 1.0);
- v_positionEC = (czm_modelView * p).xyz;
- gl_Position = czm_modelViewProjection * p;
-
-
-
-
-
-
-
- gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far);
- czm_vertexLogDepth();
- }
- `;var O7={position:0};function uU(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new se,this.modelMatrix=L.clone(y(e.modelMatrix,L.IDENTITY)),this._modelMatrix=new L,this._computedModelMatrix=new L,this.show=y(e.show,!0),this.material=y(e.material,Hi.fromType(Hi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new et({owner:y(e._owner,this)}),this._pickCommand=new et({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function qnt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(u(t))return t;let n=Rl.createGeometry(Rl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=ti.fromGeometry({context:e,geometry:n,attributeLocations:O7,bufferUsage:Be.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}uU.prototype.update=function(e){if(!this.show||e.mode!==te.SCENE3D||!u(this.center)||!u(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!u(this._rs)||i)&&(this._translucent=n,this._rs=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),u(this._va)||(this._va=qnt(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!L.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(L.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),L.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),se.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,l=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||l)&&(d=new ze({sources:[wD]}),p=new ze({sources:[this.material.shaderSource,SD]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Kt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:O7}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=gt(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,m=e.passes;if(m.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?Ee.TRANSLUCENT:Ee.OPAQUE,g.push(f)),m.pick){let x=this._pickCommand;(!u(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!u(this._pickSP)||l)&&(d=new ze({sources:[wD]}),p=new ze({sources:[this.material.shaderSource,SD],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Kt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:O7}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=gt(gt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?Ee.TRANSLUCENT:Ee.OPAQUE,g.push(x)}};uU.prototype.isDestroyed=function(){return!1};uU.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),le(this)};var fU=uU;function vD(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;u(t)||(t=$t("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ie.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new fU({radii:this.ellipsoid.radii,material:Hi.fromType(Hi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new lU}Object.defineProperties(vD.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var dU=new $,Ynt=new $,Xnt=new h,hU=[];vD.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;u(Rt.computeIcrfToFixedMatrix(n,dU))||Rt.computeTemeToPseudoFixedMatrix(n,dU);let i=this._axes.evaluate(n,Ynt);$.transpose(i,i),$.multiply(dU,i,i);let o=Jy.computeMoonPositionInEarthInertialFrame(n,Xnt);$.multiplyByVector(dU,o,o),L.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=hU,hU.length=0,t.update(e),e.commandList=r,hU.length===1?hU[0]:void 0};vD.prototype.isDestroyed=function(){return!1};vD.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),le(this)};var mU=vD;var R7=[],M7=[];function Knt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=R7,l=M7,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)l[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=l[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function L7(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);L7(e,t,n,i,r),L7(e,t,n,r+1,o),Knt(e,t,n,i,r,o)}function Znt(e,t,n){let i=e.length,o=Math.ceil(i*.5);R7.length=o,M7.length=o,L7(e,t,n,0,i-1),R7.length=0,M7.length=0}var dy=Znt;function qa(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var pU=new h;Object.defineProperties(qa.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,pU),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,pU);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,pU),pU)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});qa.fromBoundingSphere=function(e,t,n){return u(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new qa(e,t)};var Gme=new h;qa.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,Gme),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var $nt=new h;qa.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,$nt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Gme),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Qnt=new h;qa.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return fr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Qnt),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?fr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?fr.FULL:fr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?fr.PARTIAL:fr.FULL))}}return fr.NONE};var _U=new h;qa.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,_U),_U),c=-h.dot(a,o),l=qa._anyRotationVector(o,a,c),f=qa._horizonToPlaneNormalDotProduct(e,a,c,l,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=qa._horizonToPlaneNormalDotProduct(e,a,c,l,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,_U),_U)};var Jnt=[];qa.computeOccludeePointFromRectangle=function(e,t){t=y(t,ie.WGS84);let n=ce.subsample(e,t,0,Jnt),i=se.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return qa.computeOccludeePoint(new se(o,t.minimumRadius),i.center,n)};var eit=new h;qa._anyRotationVector=function(e,t,n){let i=h.abs(t,eit),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var tit=new h;qa._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,tit);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>P.EPSILON13)return h.normalize(s,new h)}return o};var N7=new h,nit=new h,gU=new h,Hme=new h;qa._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,N7),s=h.clone(e.center,nit),a=e.radius,c=h.subtract(s,r,gU),l=h.magnitudeSquared(c),f=a*a;if(l<f)return!1;let d=l-f,p=Math.sqrt(d),m=1/Math.sqrt(l),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,Hme),Hme),A=Math.sqrt(d-b*b),C=this._rotationVector(s,t,n,r,i),S=h.fromElements(C.x*C.x*c.x+(C.x*C.y-C.z)*c.y+(C.x*C.z+C.y)*c.z,(C.x*C.y+C.z)*c.x+C.y*C.y*c.y+(C.y*C.z-C.x)*c.z,(C.x*C.z-C.y)*c.x+(C.y*C.z+C.x)*c.y+C.z*C.z*c.z,N7);S=h.normalize(S,S);let w=h.multiplyByScalar(S,A,N7);C=h.normalize(h.subtract(h.add(T,w,gU),s,gU),gU);let D=h.dot(t,C);C=h.normalize(h.subtract(h.subtract(T,w,C),s,C),C);let O=h.dot(t,C);return D<O?D:O};var yU=qa;function um(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ns,this._perspectiveMatrix=new L,this._infinitePerspective=new L}function F7(e){let t=e.top,n=e.bottom,i=e.right,o=e.left,r=e.near,s=e.far;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=L.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=L.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(um.prototype,{projectionMatrix:{get:function(){return F7(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return F7(this),this._infinitePerspective}}});var iit=new h,oit=new h,rit=new h,sit=new h;um.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,l=this.far,f=h.cross(t,n,iit),d=oit;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=rit;h.multiplyByScalar(t,l,p),h.add(e,p,p);let g=sit;h.multiplyByScalar(f,a,g),h.add(d,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let m=i[0];return u(m)||(m=i[0]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(f,s,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),m=i[1],u(m)||(m=i[1]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(f,g,g),h.normalize(g,g),m=i[2],u(m)||(m=i[2]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(g,f,g),h.normalize(g,g),m=i[3],u(m)||(m=i[3]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),m=i[4],u(m)||(m=i[4]=new oe),m.x=t.x,m.y=t.y,m.z=t.z,m.w=-h.dot(t,d),h.negate(t,g),m=i[5],u(m)||(m=i[5]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,p),this._cullingVolume};um.prototype.getPixelDimensions=function(e,t,n,i,o){F7(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};um.prototype.clone=function(e){return u(e)||(e=new um),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};um.prototype.equals=function(e){return u(e)&&e instanceof um&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};um.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof um&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var gl=um;function yl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new gl,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}yl.packedLength=6;yl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};yl.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new yl),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function kd(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(yl.prototype,{projectionMatrix:{get:function(){return kd(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return kd(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return kd(this),this._fovy}},sseDenominator:{get:function(){return kd(this),this._sseDenominator}},offCenterFrustum:{get:function(){return kd(this),this._offCenterFrustum}}});yl.prototype.computeCullingVolume=function(e,t,n){return kd(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};yl.prototype.getPixelDimensions=function(e,t,n,i,o){return kd(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};yl.prototype.clone=function(e){return u(e)||(e=new yl),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};yl.prototype.equals=function(e){return!u(e)||!(e instanceof yl)?!1:(kd(this),kd(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};yl.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof yl)?!1:(kd(this),kd(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var vi=yl;var xU=`in vec2 v_textureCoordinates;
- const float M_PI = 3.141592653589793;
- float vdcRadicalInverse(int i)
- {
- float r;
- float base = 2.0;
- float value = 0.0;
- float invBase = 1.0 / base;
- float invBi = invBase;
- for (int x = 0; x < 100; x++)
- {
- if (i <= 0)
- {
- break;
- }
- r = mod(float(i), base);
- value += r * invBi;
- invBi *= invBase;
- i = int(float(i) * invBase);
- }
- return value;
- }
- vec2 hammersley2D(int i, int N)
- {
- return vec2(float(i) / float(N), vdcRadicalInverse(i));
- }
- vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N)
- {
- float a = roughness * roughness;
- float phi = 2.0 * M_PI * xi.x;
- float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y));
- float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
- vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);
- vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
- vec3 tangentX = normalize(cross(upVector, N));
- vec3 tangentY = cross(N, tangentX);
- return tangentX * H.x + tangentY * H.y + N * H.z;
- }
- float G1_Smith(float NdotV, float k)
- {
- return NdotV / (NdotV * (1.0 - k) + k);
- }
- float G_Smith(float roughness, float NdotV, float NdotL)
- {
- float k = roughness * roughness / 2.0;
- return G1_Smith(NdotV, k) * G1_Smith(NdotL, k);
- }
- vec2 integrateBrdf(float roughness, float NdotV)
- {
- vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV);
- float A = 0.0;
- float B = 0.0;
- const int NumSamples = 1024;
- for (int i = 0; i < NumSamples; i++)
- {
- vec2 xi = hammersley2D(i, NumSamples);
- vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0));
- vec3 L = 2.0 * dot(V, H) * H - V;
- float NdotL = clamp(L.z, 0.0, 1.0);
- float NdotH = clamp(H.z, 0.0, 1.0);
- float VdotH = clamp(dot(V, H), 0.0, 1.0);
- if (NdotL > 0.0)
- {
- float G = G_Smith(roughness, NdotV, NdotL);
- float G_Vis = G * VdotH / (NdotH * NdotV);
- float Fc = pow(1.0 - VdotH, 5.0);
- A += (1.0 - Fc) * G_Vis;
- B += Fc * G_Vis;
- }
- }
- return vec2(A, B) / float(NumSamples);
- }
- void main()
- {
- out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0);
- }
- `;function DD(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(DD.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function ait(e,t,n){let i=t.createViewportQuadCommand(xU,{framebuffer:n,renderState:Ve.fromCache({viewport:new qe(0,0,256,256)})});e._drawCommand=i}DD.prototype.update=function(e){if(!u(this._colorTexture)){let t=e.context,n=new Pt({context:t,width:256,height:256,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST});this._colorTexture=n;let i=new ta({context:t,colorTextures:[n],destroyAttachments:!1});ait(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};DD.prototype.isDestroyed=function(){return!1};DD.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),le(this)};var bU=DD;var Yme={};function cit(e,t,n){let i,o,r;if(e instanceof vi){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof gl)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var lit=new h,Wme=new h;function Xme(e,t,n,i){if(u(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(l){let f=n(l);if(l<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function k7(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!u(r)){let a=e.position,c=t,l=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,lit),g=h.magnitude(h.multiplyByScalar(l,h.dot(p,l),Wme)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),Wme));r=Math.min(cit(d,g,m)*.2,1e9)}if(s<r){let l=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-l)+l;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function ID(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var Kme=new h;function uit(e,t,n,i,o,r,s,a){let c=e.camera,l=h.clone(c.position,Kme),f=c.pitch,d=ID(c.heading,i),p=ID(c.roll,r),g=k7(c,n,l.z,n.z,s),m=Xme(f,o,g,a);function x(b){let T=b.time/t;c.setView({orientation:{heading:P.lerp(d,i,T),pitch:m(T),roll:P.lerp(p,r,T)}}),V.lerp(l,n,T,c.position),c.position.z=g(T)}return x}function fit(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function dit(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var hit=new fe,mit=new fe;function pit(e,t,n,i,o,r,s,a,c,l){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,hit),m=f.pitch,x=ID(f.heading,i),b=ID(f.roll,r),T=p.cartesianToCartographic(n,mit);g.longitude=P.zeroToTwoPi(g.longitude),T.longitude=P.zeroToTwoPi(T.longitude);let A=!1;if(u(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),R=Math.max(g.longitude,T.longitude),N=D>=O&&D<=R;if(u(c)){let F=Math.abs(g.longitude-T.longitude),_=P.TWO_PI-F;(N?F:_)<(N?_:F)*c&&!N&&(A=!0)}else N||(A=!0)}A?fit(g,T):dit(g,T);let C=k7(f,n,g.height,T.height,s),S=Xme(m,o,C,l);function w(){let D=g.longitude,O=T.longitude,R=g.latitude,N=T.latitude;return function(_){let E=_.time/t,v=h.fromRadians(P.lerp(D,O,E),P.lerp(R,N,E),C(E),p);f.setView({destination:v,orientation:{heading:P.lerp(x,i,E),pitch:S(E),roll:P.lerp(b,r,E)}})}}return w()}function _it(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,Kme),l=ID(a.heading,i),f=a.frustum.right-a.frustum.left,d=k7(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(l,i,m)}}),V.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,A=(x-(b.right-b.left))*.5;b.right+=A,b.left-=A,b.top=T*b.right,b.bottom=-b.top}return p}var jme=new fe,git=new h;function B7(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function qme(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}Yme.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===te.MORPHING)return B7();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,l=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==te.SCENE3D&&(s.cartesianToCartographic(n,jme),n=r.project(jme,git));let p=e.camera,g=t.endTransform;u(g)&&p._setTransform(g);let m=t.duration;u(m)||(m=Math.ceil(h.distance(p.position,n)/1e6)+2,m=Math.min(m,3));let x=y(t.heading,0),b=y(t.pitch,-P.PI_OVER_TWO),T=y(t.roll,0),A=e.screenSpaceCameraController;A.enableInputs=!1;let C=qme(A,t.complete),S=qme(A,t.cancel),w=p.frustum,D=e.mode===te.SCENE2D;if(D=D&&V.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(w.right-w.left,w.top-w.bottom),n.z,P.EPSILON6),D=D||e.mode!==te.SCENE2D&&h.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(b),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(T),P.negativePiToPi(p.roll),P.EPSILON10),D)return B7(C,S);let O=new Array(4);if(O[te.SCENE2D]=_it,O[te.SCENE3D]=pit,O[te.COLUMBUS_VIEW]=uit,m<=0)return B7(function(){O[i](e,1,n,x,b,T,a,c,l,f)({time:1}),typeof C=="function"&&C()},S);let R=O[i](e,m,n,x,b,T,a,c,l,f);if(!u(d)){let N=p.positionCartographic.height,F=i===te.SCENE3D?s.cartesianToCartographic(n).height:n.z;N>F&&N>11500?d=Nr.CUBIC_OUT:d=Nr.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:R,complete:C,cancel:S}};var TU=Yme;var yit={ROTATE:0,INFINITE_SCROLL:1},du=Object.freeze(yit);function Xt(e){this._scene=e,this._transform=L.clone(L.IDENTITY),this._invTransform=L.clone(L.IDENTITY),this._actualTransform=L.clone(L.IDENTITY),this._actualInvTransform=L.clone(L.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new fe,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new vi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new pe,this._moveEnd=new pe,this._changed=new pe,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this.percentageChanged=.5,this._viewMatrix=new L,this._invViewMatrix=new L,ipe(this),this._mode=te.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,ppe(this,Xt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*Xt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}Xt.TRANSFORM_2D=new L(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Xt.TRANSFORM_2D_INVERSE=L.inverseTransformation(Xt.TRANSFORM_2D,new L);Xt.DEFAULT_VIEW_RECTANGLE=ce.fromDegrees(-95,-20,-70,90);Xt.DEFAULT_VIEW_FACTOR=.5;Xt.DEFAULT_OFFSET=new Sd(0,-P.PI_OVER_FOUR,0);function ipe(e){L.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),L.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),L.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function xit(e){if(!u(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=Ti()):e.timeSinceMoved=Math.max(Ti()-e._lastMovedTimestamp,0)/1e3}}Xt.prototype.canPreloadFlight=function(){return u(this._currentFlight)&&this._mode!==te.SCENE2D};Xt.prototype._updateCameraChanged=function(){let e=this;if(xit(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;u(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;if(o>t&&(e._changed.raiseEvent(o),e._changedHeading=n),e._mode===te.SCENE2D){if(!u(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let l=e.position,f=e._changedPosition,d=e.frustum,p=e._changedFrustum,g=l.x+d.left,m=l.x+d.right,x=f.x+p.left,b=f.x+p.right,T=l.y+d.bottom,A=l.y+d.top,C=f.y+p.bottom,S=f.y+p.top,w=Math.max(g,x),D=Math.min(m,b),O=Math.max(T,C),R=Math.min(A,S),N;if(w>=D||O>=A)N=1;else{let F=p;g<x&&m>b&&T<C&&A>S&&(F=d),N=1-(D-w)*(R-O)/((F.right-F.left)*(F.top-F.bottom))}N>t&&(e._changed.raiseEvent(N),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!u(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let r=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),s;u(e.frustum.fovy)?s=r/(e.frustum.fovy*.5):s=r;let c=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function bit(e){Rt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Tit=new fe,Ait=new h,AU=new h,Cit=new oe,Eit=new oe,Sit=new oe,wit=new oe,vit=new oe;function Dit(e){let t=e._projection,n=t.ellipsoid,i=L.getColumn(e._transform,3,Cit),o=n.cartesianToCartographic(i,Tit),r=t.project(o,Ait),s=Eit;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,vit),c=oe.add(L.getColumn(e._transform,0,AU),i,AU);n.cartesianToCartographic(c,o),t.project(o,r);let l=Sit;l.x=r.z,l.y=r.x,l.z=r.y,l.w=0,h.subtract(l,s,l),l.x=0;let f=wit;if(h.magnitudeSquared(l)>P.EPSILON10)h.cross(a,l,f);else{let d=oe.add(L.getColumn(e._transform,1,AU),i,AU);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,h.subtract(f,s,f),f.x=0,h.magnitudeSquared(f)<P.EPSILON10&&(oe.clone(oe.UNIT_Y,l),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,l),h.normalize(l,l),h.cross(a,l,f),h.normalize(f,f),L.setColumn(e._actualTransform,0,l,e._actualTransform),L.setColumn(e._actualTransform,1,f,e._actualTransform),L.setColumn(e._actualTransform,2,a,e._actualTransform),L.setColumn(e._actualTransform,3,s,e._actualTransform)}var U7=new h;function Xa(e){let t=e._mode,n=!1,i=0;t===te.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,l=!h.equals(c,e.up);l&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let f=e._right,d=!h.equals(f,e.right);d&&(h.normalize(e.right,e.right),f=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(L.inverseTransformation(e._transform,e._invTransform),e._mode===te.COLUMBUS_VIEW||e._mode===te.SCENE2D?L.equals(L.IDENTITY,e._transform)?L.clone(Xt.TRANSFORM_2D,e._actualTransform):e._mode===te.COLUMBUS_VIEW?bit(e):Dit(e):L.clone(e._transform,e._actualTransform),L.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=L.multiplyByPoint(g,o,e._positionWC),t===te.SCENE3D||t===te.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=U7;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===te.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||l||d){let m=h.dot(s,h.cross(c,f,U7));if(Math.abs(1-m)>P.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,U7);c=h.normalize(h.subtract(c,T,e._up),e._up),h.clone(c,e.up),f=h.cross(s,c,e._right),h.clone(f,e.right)}}(a||p)&&(e._directionWC=L.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(l||p)&&(e._upWC=L.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=L.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||l||d||p)&&ipe(e)}function ope(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function rpe(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function spe(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var SU=new L,wU=new L;Object.defineProperties(Xt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return Xa(this),this._invTransform}},viewMatrix:{get:function(){return Xa(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return Xa(this),this._invViewMatrix}},positionCartographic:{get:function(){return Xa(this),this._positionCartographic}},positionWC:{get:function(){return Xa(this),this._positionWC}},directionWC:{get:function(){return Xa(this),this._directionWC}},upWC:{get:function(){return Xa(this),this._upWC}},rightWC:{get:function(){return Xa(this),this._rightWC}},heading:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=L.clone(this._transform,SU),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,wU);this._setTransform(n);let i=ope(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=L.clone(this._transform,SU),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,wU);this._setTransform(n);let i=rpe(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==te.MORPHING){let e=this._projection.ellipsoid,t=L.clone(this._transform,SU),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,wU);this._setTransform(n);let i=spe(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Xt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==te.MORPHING,t=this._mode===te.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===te.SCENE2D&&upe(this,this.position)};var Iit=new h,Pit=new h,Oit=new h;Xt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,Iit),n=h.clone(this.upWC,Pit),i=h.clone(this.directionWC,Oit);L.clone(e,this._transform),this._transformChanged=!0,Xa(this);let o=this._actualInvTransform;L.multiplyByPoint(o,t,this.position),L.multiplyByPointAsVector(o,i,this.direction),L.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),Xa(this)};var Rit=new V,Mit=new Cn,Lit=new h,Nit=new h;function ape(e){if(!L.equals(L.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=Rit;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(u(n)){let a=e.getPickRay(i,Mit);o=n.pickWorldCoordinates(a,t,!0,Lit)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Nit));let s;if(u(o)||u(r)){let a=u(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=u(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Xt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof Qt&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=ape(this)))};var vU=new h,W7=new L,Fit=new L,j7=new Ne,q7=new $,cpe=new fe;function Bit(e,t,n){let i=L.clone(e.transform,W7),o=Rt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Fit);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,j7),s=$.fromQuaternion(r,q7);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function kit(e,t,n,i){let o=L.clone(e.transform,W7);if(e._setTransform(L.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,cpe);t=a.project(c,vU)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,j7),s=$.fromQuaternion(r,q7);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function Uit(e,t,n,i){let o=L.clone(e.transform,W7);if(e._setTransform(L.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,l=c.ellipsoid.cartesianToCartographic(t,cpe);t=c.project(l,vU)}V.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===du.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Ne.fromHeadingPitchRoll(n,j7),s=$.fromQuaternion(r,q7);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var Vit=new h,zit=new h,Hit=new h;function lpe(e,t,n,i){let o=h.clone(n.direction,Vit),r=h.clone(n.up,zit);if(e._scene.mode===te.SCENE3D){let a=e._projection.ellipsoid,c=Rt.eastNorthUpToFixedFrame(t,a,SU),l=L.inverseTransformation(c,wU);L.multiplyByPointAsVector(l,o,o),L.multiplyByPointAsVector(l,r,r)}let s=h.cross(o,r,Hit);return i.heading=ope(o,r),i.pitch=rpe(o),i.roll=spe(o,r,s),i}var G7={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},$C=new oc;Xt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===te.MORPHING)return;u(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,vU));u(o)&&u(o.west)&&(o=this.getRectangleCameraCoordinates(o,vU),i=!1),u(t.direction)&&(t=lpe(this,o,t,G7.orientation)),$C.heading=y(t.heading,0),$C.pitch=y(t.pitch,-P.PI_OVER_TWO),$C.roll=y(t.roll,0),n===te.SCENE3D?Bit(this,o,$C):n===te.SCENE2D?Uit(this,o,$C,i):kit(this,o,$C,i)};var Git=new h;Xt.prototype.flyHome=function(e){let t=this._mode;if(t===te.MORPHING&&this._scene.completeMorph(),t===te.SCENE2D)this.flyTo({destination:Xt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:L.IDENTITY});else if(t===te.SCENE3D){let n=this.getRectangleCameraCoordinates(Xt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*Xt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:L.IDENTITY})}else if(t===te.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Git).z),roll:0},endTransform:L.IDENTITY,convert:!1})}};Xt.prototype.worldToCameraCoordinates=function(e,t){return u(t)||(t=new oe),Xa(this),L.multiplyByVector(this._actualInvTransform,e,t)};Xt.prototype.worldToCameraCoordinatesPoint=function(e,t){return u(t)||(t=new h),Xa(this),L.multiplyByPoint(this._actualInvTransform,e,t)};Xt.prototype.worldToCameraCoordinatesVector=function(e,t){return u(t)||(t=new h),Xa(this),L.multiplyByPointAsVector(this._actualInvTransform,e,t)};Xt.prototype.cameraToWorldCoordinates=function(e,t){return u(t)||(t=new oe),Xa(this),L.multiplyByVector(this._actualTransform,e,t)};Xt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return u(t)||(t=new h),Xa(this),L.multiplyByPoint(this._actualTransform,e,t)};Xt.prototype.cameraToWorldCoordinatesVector=function(e,t){return u(t)||(t=new h),Xa(this),L.multiplyByPointAsVector(this._actualTransform,e,t)};function upe(e,t){let n=e._scene.mapMode2D===du.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var Zme=new h;Xt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,Zme),h.add(n,Zme,n),this._mode===te.SCENE2D&&upe(this,n),this._adjustOrthographicFrustum(!0)};Xt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===te.SCENE2D?DU(this,e):this.move(this.direction,e)};Xt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===te.SCENE2D?DU(this,-e):this.move(this.direction,-e)};Xt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Xt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Xt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Xt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Xt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.up,-e)};Xt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.up,e)};Xt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.right,-e)};Xt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==te.SCENE2D&&this.look(this.right,e)};var Wit=new Ne,jit=new $;Xt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Ne.fromAxisAngle(e,-n,Wit),o=$.fromQuaternion(i,jit),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};Xt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Xt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var qit=new Ne,Yit=new $;Xt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Ne.fromAxisAngle(e,-n,qit),o=$.fromQuaternion(i,Yit);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Xt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),fpe(this,e)};Xt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),fpe(this,-e)};var Xit=new h,Kit=new h,Zit=new h,$me=new h;function fpe(e,t){let n=e.position;if(u(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,Xit),o=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,$me),P.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,Kit),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,$me)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let l=h.cross(s,i,Zit);e.rotate(l,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Xt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),dpe(this,-e)};Xt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),dpe(this,e)};function dpe(e,t){u(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function DU(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===du.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===du.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function hpe(e,t){e.move(e.direction,t)}Xt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===te.SCENE2D?DU(this,e):hpe(this,e)};Xt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===te.SCENE2D?DU(this,-e):hpe(this,-e)};Xt.prototype.getMagnitude=function(){if(this._mode===te.SCENE3D)return h.magnitude(this.position);if(this._mode===te.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===te.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var $it=new L;Xt.prototype.lookAt=function(e,t){let n=Rt.eastNorthUpToFixedFrame(e,ie.WGS84,$it);this.lookAtTransform(n,t)};var Qit=new h,Jit=new Ne,eot=new Ne,tot=new $;function mpe(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Ne.fromAxisAngle(h.UNIT_Y,-t,Jit),o=Ne.fromAxisAngle(h.UNIT_Z,-e,eot),r=Ne.multiply(o,i,o),s=$.fromQuaternion(r,tot),a=h.clone(h.UNIT_X,Qit);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}Xt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!u(t))return;let n;if(u(t.heading)?n=mpe(t.heading,t.pitch,t.range):n=t,this._mode===te.SCENE2D){V.clone(V.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<P.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(L.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<P.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var PD=new fe,not=new fe,iot=new h,oot=new h,rot=new h,sot=new h,aot=new h,cot=new h,lot=new h,V7=new h,uot={direction:new h,right:new h,up:new h},Qme;function Ya(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function ppe(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:uot,s=t.north,a=t.south,c=t.east,l=t.west;l>c&&(c+=P.TWO_PI);let f=(l+c)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let N=PD;N.longitude=f,N.latitude=s,N.height=0;let F=not;F.longitude=f,F.latitude=a,F.height=0;let _=Qme;(!u(_)||_.ellipsoid!==o)&&(Qme=_=new Gf(void 0,void 0,o)),_.setEndPoints(N,F),d=_.interpolateUsingFraction(.5,PD).latitude}let p=PD;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,lot),m=PD;m.longitude=c,m.latitude=s;let x=o.cartographicToCartesian(m,iot);m.longitude=l;let b=o.cartographicToCartesian(m,rot);m.longitude=f;let T=o.cartographicToCartesian(m,aot);m.latitude=a;let A=o.cartographicToCartesian(m,cot);m.longitude=c;let C=o.cartographicToCartesian(m,sot);m.longitude=l;let S=o.cartographicToCartesian(m,oot);h.subtract(b,g,b),h.subtract(C,g,C),h.subtract(x,g,x),h.subtract(S,g,S),h.subtract(T,g,T),h.subtract(A,g,A);let w=o.geodeticSurfaceNormal(g,r.direction);h.negate(w,w);let D=h.cross(w,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,w,r.up),R;if(e.frustum instanceof Qt){let N=Math.max(h.distance(x,b),h.distance(C,S)),F=Math.max(h.distance(x,C),h.distance(b,S)),_,E,v=e.frustum._offCenterFrustum,I=v.right/v.top,M=F*I;N>M?(_=N,E=_/I):(E=F,_=M),R=Math.max(_,E)}else{let N=Math.tan(e.frustum.fovy*.5),F=e.frustum.aspectRatio*N;if(R=Math.max(Ya(w,O,b,N),Ya(w,O,C,N),Ya(w,O,x,N),Ya(w,O,S,N),Ya(w,O,T,N),Ya(w,O,A,N),Ya(w,D,b,F),Ya(w,D,C,F),Ya(w,D,x,F),Ya(w,D,S,F),Ya(w,D,T,F),Ya(w,D,A,F)),a<0&&s>0){let _=PD;_.longitude=l,_.latitude=0,_.height=0;let E=o.cartographicToCartesian(_,V7);h.subtract(E,g,E),R=Math.max(R,Ya(w,O,E,N),Ya(w,D,E,F)),_.longitude=c,E=o.cartographicToCartesian(_,V7),h.subtract(E,g,E),R=Math.max(R,Ya(w,O,E,N),Ya(w,D,E,F))}}return h.add(g,h.multiplyByScalar(w,-R,V7),n)}var fot=new fe,dot=new h,hot=new h;function mot(e,t,n){let i=e._projection;t.west>t.east&&(t=ce.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=fot;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,dot);L.multiplyByPoint(o,a,a),L.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,hot);if(L.multiplyByPoint(o,c,c),L.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,u(e.frustum.fovy)){let l=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*l;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/l)*.5}else{let l=a.x-c.x,f=a.y-c.y;n.z=Math.max(l,f)}return n}var pot=new fe,_ot=new h,got=new h;function yot(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===du.INFINITE_SCROLL?o+=P.TWO_PI:(t=ce.MAX_VALUE,o=t.east));let r=pot;r.longitude=o,r.latitude=t.north;let s=i.project(r,_ot);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,got),c=Math.abs(s.x-a.x)*.5,l=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=l*p;return c>g?(f=c,d=f/p):(d=l,f=g),l=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=l,n=i.project(r,n),n}Xt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(u(t)||(t=new h),n===te.SCENE3D)return ppe(this,e,t);if(n===te.COLUMBUS_VIEW)return mot(this,e,t);if(n===te.SCENE2D)return yot(this,e,t)};var xot=new Cn;function bot(e,t,n,i){n=y(n,ie.WGS84);let o=e.getPickRay(t,xot),r=Ei.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return Cn.getPoint(o,s,i)}var Tot=new Cn;function Aot(e,t,n,i){let r=e.getPickRay(t,Tot).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Cot=new Cn;function Eot(e,t,n,i){let o=e.getPickRay(t,Cot),r=-o.origin.x/o.direction.x;Cn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Xt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(u(n)||(n=new h),t=y(t,ie.WGS84),this._mode===te.SCENE3D)n=bot(this,e,t,n);else if(this._mode===te.SCENE2D)n=Aot(this,e,this._projection,n);else if(this._mode===te.COLUMBUS_VIEW)n=Eot(this,e,this._projection,n);else return;return n}};var Sot=new h,wot=new h,vot=new h;function Dot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,l=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;h.clone(d,n.origin);let p=h.multiplyByScalar(e.directionWC,c,Sot);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,l*c*a,wot),m=h.multiplyByScalar(e.upWC,f*c*s,vot),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var CU=new h;function Iot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let l=2/r*(r-t.y)-1;l*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,CU),h.add(CU,f,f),h.multiplyByScalar(e.up,l,CU),h.add(CU,f,f),h.clone(e.directionWC,n.direction),(e._mode===te.COLUMBUS_VIEW||e._mode===te.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Xt.prototype.getPickRay=function(e,t){u(t)||(t=new Cn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return u(i.aspectRatio)&&u(i.fov)&&u(i.near)?Dot(this,e,t):Iot(this,e,t)};var Pot=new h,Oot=new h;Xt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,Pot),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),Oot);return Math.max(0,h.magnitude(n)-e.radius)};var Rot=new V;Xt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,Rot);return Math.max(o.x,o.y)};function Mot(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let l=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(l,e.position)}return{easingFunction:Nr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Lot=new h,Jme=new h,Not=new h,Fot=new h;function Bot(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Lot),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,Jme),Jme);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Not);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,l=h.magnitude(h.subtract(n,s,Fot)),f=c*l,d=a*l,p=e._maxCoord.x,g=e._maxCoord.y,m=Math.max(f-p,p),x=Math.max(d-g,g);if(n.z<-m||n.z>m||n.y<-x||n.y>x){let b=s.y<-m||s.y>m,T=s.z<-x||s.z>x;if(b||T)return Mot(e,n,s,m,x,t)}}Xt.prototype.createCorrectPositionTween=function(e){if(this._mode===te.COLUMBUS_VIEW)return Bot(this,e)};var kot=new h,vs={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Xt.prototype.cancelFlight=function(){u(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Xt.prototype.completeFlight=function(){if(u(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=vs.destination,e.orientation.heading=vs.heading,e.orientation.pitch=vs.pitch,e.orientation.roll=vs.roll,this.setView(e),u(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Xt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===te.MORPHING)return;this.cancelFlight();let i=t instanceof ce;i&&(t=this.getRectangleCameraCoordinates(t,kot));let o=y(e.orientation,y.EMPTY_OBJECT);if(u(o.direction)&&(o=lpe(this,t,o,G7.orientation)),u(e.duration)&&e.duration<=0){let f=G7;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;vs.destination=t,vs.heading=o.heading,vs.pitch=o.pitch,vs.roll=o.roll,vs.duration=e.duration,vs.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),u(e.complete)&&e.complete()},vs.cancel=e.cancel,vs.endTransform=e.endTransform,vs.convert=i?!1:e.convert,vs.maximumHeight=e.maximumHeight,vs.pitchAdjustHeight=e.pitchAdjustHeight,vs.flyOverLongitude=e.flyOverLongitude,vs.flyOverLongitudeWeight=e.flyOverLongitudeWeight,vs.easingFunction=e.easingFunction;let a=this._scene,c=TU.createTween(a,vs);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let l=this._scene.preloadFlightCamera;this._mode!==te.SCENE2D&&(u(l)||(l=Xt.clone(this)),l.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=l.frustum.computeCullingVolume(l.positionWC,l.directionWC,l.upWC))};function Uot(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function Vot(e,t){let n=e.frustum,i=n.offCenterFrustum;u(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var zot=100;function _pe(e,t,n){n=Sd.clone(u(n)?n:Xt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!u(r)||r===0){let s=t.radius;s===0?n.range=zot:e.frustum instanceof Qt||e._mode===te.SCENE2D?n.range=Vot(e,s):n.range=Uot(e,s),n.range=P.clamp(n.range,i,o)}return n}Xt.prototype.viewBoundingSphere=function(e,t){t=_pe(this,e,t),this.lookAt(e.center,t)};var Hot=new L,Got=new h,Wot=new h,jot=new h,qot=new h,Yot=new oe,Xot=new Ne,Kot=new $;Xt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===te.SCENE2D||this._mode===te.COLUMBUS_VIEW;this._setTransform(L.IDENTITY);let i=_pe(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,Got):o=mpe(i.heading,i.pitch,i.range);let r=Rt.eastNorthUpToFixedFrame(e.center,ie.WGS84,Hot);L.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=h.subtract(e.center,o,Wot),h.normalize(s,s),a=L.multiplyByPointAsVector(r,h.UNIT_Z,jot),1-Math.abs(h.dot(s,a))<P.EPSILON6){let l=Ne.fromAxisAngle(s,i.heading,Xot),f=$.fromQuaternion(l,Kot);h.fromCartesian4(L.getColumn(r,1,Yot),a),$.multiplyByVector(f,a,a)}let c=h.cross(s,a,qot);h.cross(c,s,a),h.normalize(a,a)}this.flyTo({destination:o,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var epe=new h,tpe=new h,z7=new h,npe=new h,OD=[new h,new h,new h,new h];function Zot(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,epe),r=h.magnitude(o),s=h.normalize(o,tpe),a,c;h.equalsEpsilon(s,h.UNIT_Z,P.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,z7),z7),c=h.normalize(h.cross(s,a,npe),npe));let l=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,epe),d=l/r,p=h.multiplyByScalar(a,d,tpe),g=h.multiplyByScalar(c,d,z7),m=h.add(f,g,OD[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,OD[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,OD[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,OD[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),OD}var H7=new V,$ot=new h,hy=[new fe,new fe,new fe,new fe];function EU(e,t,n,i,o,r){H7.x=e,H7.y=t;let s=i.pickEllipsoid(H7,o,$ot);return u(s)?(hy[n]=o.cartesianToCartographic(s,hy[n]),1):(hy[n]=o.cartesianToCartographic(r[n],hy[n]),0)}Xt.prototype.computeViewRectangle=function(e,t){e=y(e,ie.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new se(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Zt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,l=Zot(this,e);if(c+=EU(0,0,0,this,e,l),c+=EU(0,a,1,this,e,l),c+=EU(s,a,2,this,e,l),c+=EU(s,0,3,this,e,l),c<2)return ce.MAX_VALUE;t=ce.fromCartographicArray(hy,t);let f=0,d=hy[3].longitude;for(let p=0;p<4;++p){let g=hy[p].longitude,m=Math.abs(g-d);m>P.PI?f+=P.TWO_PI-m:f+=m,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,hy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Xt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===te.SCENE2D||this.frustum instanceof vi)return;let e=this._scene;this.frustum=new vi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Xt.prototype.switchToOrthographicFrustum=function(){if(this._mode===te.SCENE2D||this.frustum instanceof Qt)return;let e=ape(this),t=this._scene;this.frustum=new Qt,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Xt.clone=function(e,t){return u(t)||(t=new Xt(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),L.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var lo=Xt;function Qot(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Ud=Qot;var Tpe=or(Sl(),1),gpe=576,Jot=100,RD="#ffffff",Y7="#48b";function Ape(e,t){this.credit=e,this.count=y(t,1)}function ert(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(bt.equals(o,t))return!0}return!1}function trt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;bt.equals(n,t)||(u(t)&&e._cesiumCreditContainer.removeChild(t.element),u(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Cpe="cesium-credit-delimiter";function ype(e){let t=document.createElement("span");return t.textContent=e,t.className=Cpe,t}function xpe(e,t){if(u(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function bpe(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(u(a)){if(r=s,u(n)&&(r*=2,s>0)){let l=r-1;if(o.length<=l)e.appendChild(ype(n));else{let f=o[l];f.className!==Cpe&&e.replaceChild(ype(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(xpe(c,i));else{let l=o[r];l._creditId!==a._id&&e.replaceChild(xpe(c,i),l)}}}for(++r;r<o.length;)e.removeChild(o[r])}function nrt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<gpe?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=gpe&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Ka(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` }
- `,n}function irt(e){let t="";t+=Ka(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=Ka(".cesium-credit-lightbox",{"background-color":"#303336",color:RD,position:"relative","min-height":`${Jot}px`,margin:"auto"}),t+=Ka(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:RD}),t+=Ka(".cesium-credit-lightbox > ul > li a:hover",{color:Y7}),t+=Ka(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=Ka(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=Ka(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=Ka(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:RD}),t+=Ka(".cesium-credit-lightbox-close:hover",{color:Y7}),t+=Ka(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=Ka(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=Ka(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=Ka(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:RD}),t+=Ka(".cesium-credit-expand-link:hover",{color:Y7}),t+=Ka(".cesium-credit-text",{color:RD}),t+=Ka(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function nr(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(m){r.contains(m.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let l=document.createElement("ul");r.appendChild(l);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),irt(e);let g=bt.clone(nr.cesiumCredit);this._delimiter=y(t," \u2022 "),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=l,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new xt,lightboxCredits:new xt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Epe(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(u(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new Ape(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}nr.prototype.addCreditToNextFrame=function(e){if(e.isIon()){u(this._defaultCredit)||(this._defaultCredit=bt.clone(Spe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Epe(this,t,e)};nr.prototype.addStaticCredit=function(e){let t=this._staticCredits;ert(t,e)||t.push(e)};nr.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};nr.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};nr.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};nr.prototype.update=function(){this._expanded&&nrt(this)};nr.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&bt.equals(nr.cesiumCredit,this._cesiumCredit)||Epe(this,s,r,Number.MAX_VALUE)}bt.equals(nr.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=bt.clone(nr.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};nr.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;bpe(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",bpe(this._creditList,t,void 0,"li"),trt(this)};nr.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),le(this)};nr.prototype.isDestroyed=function(){return!1};nr._cesiumCredit=void 0;nr._cesiumCreditInitialized=!1;var IU;function Spe(){if(!u(IU)){let e=$t("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Tpe.default(e).path()),IU=new bt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return nr._cesiumCreditInitialized||(nr._cesiumCredit=IU,nr._cesiumCreditInitialized=!0),IU}Object.defineProperties(nr,{cesiumCredit:{get:function(){return Spe(),nr._cesiumCredit},set:function(e){nr._cesiumCredit=e,nr._cesiumCreditInitialized=!0}}});nr.CreditDisplayElement=Ape;var PU=nr;var OU=0,ort=1;function Px(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof vi?(s=OU,a=vi.packedLength):t instanceof Qt&&(s=ort,a=Qt.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Ne.packedLength+Pe.packedLength}Px.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===OU?(vi.pack(o,t,n),n+=vi.packedLength):(Qt.pack(o,t,n),n+=Qt.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var rrt=new vi,srt=new Qt,art=new Ne,crt=new h,lrt=new Pe;Px.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===OU?(o=vi.unpack(e,t,rrt),t+=vi.packedLength):(o=Qt.unpack(e,t,srt),t+=Qt.packedLength);let r=h.unpack(e,t,crt);t+=h.packedLength;let s=Ne.unpack(e,t,art);t+=Ne.packedLength;let a=Pe.unpack(e,t,lrt);t+=Pe.packedLength;let c=e[t]===1;if(!u(n))return new Px({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let l=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(l),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function QC(e,t,n,i,o,r,s,a){let c=e/3*2;for(let l=0;l<4;++l)u(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),u(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),u(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var urt=new $,frt=new L,X7=new L,wpe=new h,vpe=new h,Dpe=new h,drt=new h,hrt=new h,mrt=new h,my=new Array(3),MD=new Array(4);MD[0]=new oe(-1,-1,1,1);MD[1]=new oe(1,-1,1,1);MD[2]=new oe(1,1,1,1);MD[3]=new oe(-1,1,1,1);var Ipe=new Array(4);for(let e=0;e<4;++e)Ipe[e]=new oe;Px._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,urt),l=y(r,wpe),f=y(s,vpe),d=y(a,Dpe);l=$.getColumn(c,0,l),f=$.getColumn(c,1,f),d=$.getColumn(c,2,d),h.normalize(l,l),h.normalize(f,f),h.normalize(d,d),h.negate(l,l);let p=L.computeView(e,d,f,l,frt),g,m,x=i.projectionMatrix;if(n===OU){let b=L.multiply(x,p,X7);m=L.inverse(b,X7)}else g=L.inverseTransformation(p,X7);u(m)?(my[0]=i.near,my[1]=i.far):(my[0]=0,my[1]=i.near,my[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let A=oe.clone(MD[T],Ipe[T]);if(u(m)){A=L.multiplyByVector(m,A,A);let C=1/A.w;h.multiplyByScalar(A,C,A),h.subtract(A,e,A),h.normalize(A,A);let S=h.dot(d,A);h.multiplyByScalar(A,my[b]/S,A),h.add(A,e,A)}else{let C=i.offCenterFrustum;u(C)&&(i=C);let S=my[b],w=my[b+1];A.x=(A.x*(i.right-i.left)+i.left+i.right)*.5,A.y=(A.y*(i.top-i.bottom)+i.bottom+i.top)*.5,A.z=(A.z*(S-w)-S-w)*.5,A.w=1,L.multiplyByVector(g,A,A)}o[12*b+T*3]=A.x,o[12*b+T*3+1]=A.y,o[12*b+T*3+2]=A.z}};Px.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);Px._computeNearFarPlanes(i,o,t,n,c);let l=3*4*2;c[l]=c[3*4],c[l+1]=c[3*4+1],c[l+2]=c[3*4+2],c[l+3]=c[0],c[l+4]=c[1],c[l+5]=c[2],c[l+6]=c[3*3],c[l+7]=c[3*3+1],c[l+8]=c[3*3+2],c[l+9]=c[3*7],c[l+10]=c[3*7+1],c[l+11]=c[3*7+2],l+=3*4,c[l]=c[3*5],c[l+1]=c[3*5+1],c[l+2]=c[3*5+2],c[l+3]=c[3],c[l+4]=c[3+1],c[l+5]=c[3+2],c[l+6]=c[0],c[l+7]=c[1],c[l+8]=c[2],c[l+9]=c[3*4],c[l+10]=c[3*4+1],c[l+11]=c[3*4+2],l+=3*4,c[l]=c[3],c[l+1]=c[3+1],c[l+2]=c[3+2],c[l+3]=c[3*5],c[l+4]=c[3*5+1],c[l+5]=c[3*5+2],c[l+6]=c[3*6],c[l+7]=c[3*6+1],c[l+8]=c[3*6+2],c[l+9]=c[3*2],c[l+10]=c[3*2+1],c[l+11]=c[3*2+2],l+=3*4,c[l]=c[3*2],c[l+1]=c[3*2+1],c[l+2]=c[3*2+2],c[l+3]=c[3*6],c[l+4]=c[3*6+1],c[l+5]=c[3*6+2],c[l+6]=c[3*7],c[l+7]=c[3*7+1],c[l+8]=c[3*7+2],c[l+9]=c[3*3],c[l+10]=c[3*3+1],c[l+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(u(s.normal)||u(s.tangent)||u(s.bitangent)||u(s.st)){let p=u(s.normal)?new Float32Array(12*a):void 0,g=u(s.tangent)?new Float32Array(3*4*a):void 0,m=u(s.bitangent)?new Float32Array(3*4*a):void 0,x=u(s.st)?new Float32Array(2*4*a):void 0,b=wpe,T=vpe,A=Dpe,C=h.negate(b,drt),S=h.negate(T,hrt),w=h.negate(A,mrt);l=0,r&&(QC(l,p,g,m,x,w,b,T),l+=3*4),QC(l,p,g,m,x,A,C,T),l+=3*4,QC(l,p,g,m,x,C,w,T),l+=3*4,QC(l,p,g,m,x,S,w,C),l+=3*4,QC(l,p,g,m,x,b,A,T),l+=3*4,QC(l,p,g,m,x,T,A,C),u(p)&&(f.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),u(g)&&(f.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),u(m)&&(f.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),u(x)&&(f.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,m=p*4;d[g]=m,d[g+1]=m+1,d[g+2]=m+2,d[g+3]=m,d[g+4]=m+2,d[g+5]=m+3}return new ct({attributes:f,indices:d,primitiveType:Le.TRIANGLES,boundingSphere:se.fromVertices(c)})};var JC=Px;var K7=0,prt=1;function LD(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof vi?(r=K7,s=vi.packedLength):t instanceof Qt&&(r=prt,s=Qt.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Ne.packedLength}LD.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===K7?(vi.pack(o,t,n),n+=vi.packedLength):(Qt.pack(o,t,n),n+=Qt.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,t[n]=e._drawNearPlane?1:0,t};var _rt=new vi,grt=new Qt,yrt=new Ne,xrt=new h;LD.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===K7?(o=vi.unpack(e,t,_rt),t+=vi.packedLength):(o=Qt.unpack(e,t,grt),t+=Qt.packedLength);let r=h.unpack(e,t,xrt);t+=h.packedLength;let s=Ne.unpack(e,t,yrt);t+=Ne.packedLength;let a=e[t]===1;if(!u(n))return new LD({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._drawNearPlane=a,n};LD.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);JC._computeNearFarPlanes(i,o,t,n,s);let a=new hn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,l,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,l=p*4,d[c]=l,d[c+1]=l+1,d[c+2]=l+1,d[c+3]=l+2,d[c+4]=l+2,d[c+5]=l+3,d[c+6]=l+3,d[c+7]=l;for(p=0;p<2;++p)c=(f+p)*8,l=p*4,d[c]=l,d[c+1]=l+4,d[c+2]=l+1,d[c+3]=l+5,d[c+4]=l+2,d[c+5]=l+6,d[c+6]=l+3,d[c+7]=l+7;return new ct({attributes:a,indices:d,primitiveType:Le.LINES,boundingSphere:se.fromVertices(s)})};var RU=LD;function MU(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,z.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var brt=new h,Trt=new $,Art=new Ne,Crt=new vi,Ert=new gl,Srt=new Qt,wrt=new vr,vrt=new z,Drt=[1,1e5];MU.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof vi?a=Crt:s instanceof gl?a=Ert:s instanceof Qt?a=Srt:a=wrt,a=s.clone(a);let c,l=this._frustumSplits;!u(l)||l.length<=1?(l=Drt,l[0]=this._camera.frustum.near,l[1]=this._camera.frustum.far,c=1):c=l.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,brt);let m=Trt;$.setColumn(m,0,g,m),$.setColumn(m,1,p,m),$.setColumn(m,2,d,m);let x=Ne.fromRotationMatrix(m,Art);for(t.length=n.length=c,i=0;i<c;++i)a.near=l[i],a.far=l[i+1],t[i]=new Sn({geometryInstances:new yt({geometry:new JC({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(z.fromAlpha(this._color,.1,vrt))},id:this.id,pickPrimitive:this}),appearance:new on({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new Sn({geometryInstances:new yt({geometry:new RU({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new on({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};MU.prototype.isDestroyed=function(){return!1};MU.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return le(this)};var Gp=MU;var LU=`in vec4 positionEC;
- void main()
- {
- vec3 position;
- vec3 direction;
- if (czm_orthographicIn3D == 1.0)
- {
- vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw;
- vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y);
- vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x);
- position = vec3(mix(minPlane, maxPlane, uv), 0.0);
- direction = vec3(0.0, 0.0, -1.0);
- }
- else
- {
- position = vec3(0.0);
- direction = normalize(positionEC.xyz);
- }
- czm_ray ray = czm_ray(position, direction);
- vec3 ellipsoid_center = czm_view[3].xyz;
- czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii);
- if (!czm_isEmpty(intersection))
- {
- out_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
- }
- else
- {
- discard;
- }
- czm_writeLogDepth();
- }
- `;var NU=`in vec4 position;
- out vec4 positionEC;
- void main()
- {
- positionEC = czm_modelView * position;
- gl_Position = czm_projection * positionEC;
- czm_vertexLogDepth();
- }
- `;function FD(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var ND=Bt.supportsTypedArrays()?new Float32Array(12):[],Ppe=new h,Ope=new h,Z7=new h,Rpe=new h,FU=new h;function Irt(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof Qt)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Ppe),g=h.normalize(p,Ope),m=h.normalize(h.cross(h.UNIT_Z,p,Z7),Z7),x=h.normalize(h.cross(g,m,Rpe),Rpe),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Ppe);let A=T/b;r=h.multiplyByScalar(m,A,Ope),s=h.multiplyByScalar(x,A,Z7)}let a=h.add(o,s,FU);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,ND,0);let c=h.subtract(o,s,FU);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,ND,3);let l=h.add(o,s,FU);h.add(l,r,l),h.multiplyComponents(n,l,l),h.pack(l,ND,6);let f=h.subtract(o,s,FU);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,ND,9),ND}FD.prototype.update=function(e){if(this._mode=e.mode,e.mode!==te.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ie(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(u(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new et({renderState:this._rs,boundingVolume:new se(h.ZERO,i.maximumRadius),pass:Ee.OPAQUE,owner:this})),!u(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new ze({sources:[NU]}),a=new ze({sources:[LU]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Kt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=Irt(i,e);if(u(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new ct({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Le.TRIANGLES});this._va=ti.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Be.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};FD.prototype.execute=function(e,t){this._mode===te.SCENE3D&&this._command.execute(e,t)};FD.prototype.isDestroyed=function(){return!1};FD.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var BU=FD;function BD(){}var Prt=/\bgl_FragDepth\b/,Ort=/\bdiscard\b/;function Rrt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!u(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(Prt.test(a[r])||Ort.test(a[r])){s=!0;break}let l=!1,f=o.defines;for(c=f.length,r=0;r<c;++r)if(f[r]==="LOG_DEPTH"){l=!0;break}let d;!s&&!l?(d=`void main()
- {
- out_FragColor = vec4(1.0);
- }
- `,o=new ze({sources:[d]})):!s&&l&&(d=`void main()
- {
- out_FragColor = vec4(1.0);
- czm_writeLogDepth();
- }
- `,o=new ze({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function Mrt(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!u(i)){let o=Ve.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=Ve.fromCache(o),n[t.id]=i}return i}BD.createDepthOnlyDerivedCommand=function(e,t,n,i){u(i)||(i={});let o,r;return u(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=et.shallowClone(t,i.depthOnlyCommand),!u(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=Rrt(n,t.shaderProgram),i.depthOnlyCommand.renderState=Mrt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var Lrt=/\s+czm_writeLogDepth\(/,Nrt=/\s+czm_vertexLogDepth\(/;function Frt(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!u(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=u(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,l=!1,f=r.sources,d=f.length;for(a=0;a<d;++a)if(Nrt.test(f[a])){l=!0;break}if(!l){for(a=0;a<d;++a)f[a]=ze.replaceMain(f[a],"czm_log_depth_main");c=`
- void main()
- {
- czm_log_depth_main();
- czm_vertexLogDepth();
- }
- `,f.push(c)}for(f=s.sources,d=f.length,l=!1,a=0;a<d;++a)Lrt.test(f[a])&&(l=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(l=!0);let p="";if(!l){for(a=0;a<d;a++)f[a]=ze.replaceMain(f[a],"czm_log_depth_main");p+=`
- void main()
- {
- czm_log_depth_main();
- czm_writeLogDepth();
- }
- `}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}BD.createLogDepthCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=et.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Frt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function Brt(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!u(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,l=s.some(p=>p.includes("out_FragData"))?"out_FragData_0":"out_FragColor",f=`void main ()
- {
- czm_non_pick_main();
- if (${l}.a == 0.0) {
- discard;
- }
- ${l} = ${n};
- } `,d=new Array(a+1);for(let p=0;p<a;++p)d[p]=ze.replaceMain(s[p],"czm_non_pick_main");d[a]=f,r=new ze({sources:d,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function krt(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!u(i)){let o=Ve.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=Ve.fromCache(o),n[t.id]=i}return i}BD.createPickDerivedCommand=function(e,t,n,i){u(i)||(i={});let o,r;return u(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=et.shallowClone(t,i.pickCommand),!u(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=Brt(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=krt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function Urt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!u(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=u(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}BD.createHdrCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=et.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Urt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var py=BD;function kU(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!u(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var Vrt=new Ne,Mpe=new Ne,zrt=new $;function Hrt(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Ne.fromAxisAngle(o,n,Mpe),c=Ne.fromAxisAngle(r,i,Vrt),l=Ne.multiply(c,a,c),f=Ne.fromAxisAngle(s,t,Mpe);Ne.multiply(f,l,l);let d=$.fromQuaternion(l,zrt);$.multiplyByVector(d,r,r),$.multiplyByVector(d,s,s),$.multiplyByVector(d,o,o)}kU.prototype.update=function(){if(!u(this._alpha))return;u(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;Hrt(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};kU.prototype.isDestroyed=function(){return!1};kU.prototype.destroy=function(){return this._removeListener(),le(this)};var UU=kU;function Lpe(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var VU=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],fm=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<fm.length;++e)fm[e]*=1e6;var Npe=fm[1],$7=fm[fm.length-1];for(let e=0;e<fm.length;++e)fm[e]=(fm[e]-$7)/(Npe-$7);var Zs=0;function Grt(e){let t=VU,n=t.length;if(e<t[0])return Zs=0,Zs;if(e>t[n-1])return Zs=n-2,Zs;if(e>=t[Zs]){if(Zs+1<n&&e<t[Zs+1])return Zs;if(Zs+2<n&&e<t[Zs+2])return++Zs,Zs}else if(Zs-1>=0&&e>=t[Zs-1])return--Zs,Zs;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return Zs=i,Zs}var Wrt=new h;Lpe.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!u(i)||i.height>8e5||e.mode!==te.SCENE3D){e.fog.enabled=!1;return}let o=i.height,r=Grt(o),s=P.clamp((o-VU[r])/(VU[r+1]-VU[r]),0,1),a=P.lerp(fm[r],fm[r+1],s),c=this.density*1e6,l=c/Npe*$7;a=a*(c-l)*1e-6;let f=h.normalize(n.positionWC,Wrt),d=Math.abs(h.dot(n.directionWC,f));a*=1-d,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var zU=Lpe;function jrt(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=te.SCENE3D,this.morphTime=te.getMorphTime(te.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var HU=jrt;var $s={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},Ox=$s.DERIVED_COMMANDS_MAXIMUM_LENGTH,jpe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function Rx(){this._frontFaceAlphaByDistance=new Ot(0,1,0,1),this._backFaceAlphaByDistance=new Ot(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=ce.clone(ce.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(Ox),this._derivedBlendCommandTypes=new Array(Ox),this._derivedPickCommandTypes=new Array(Ox),this._derivedCommandTypesToUpdate=new Array(Ox),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(Rx.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});Rx.prototype.update=function(e){let t=e.globe;if(!u(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Fpe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Fpe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=Bpe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=Bpe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Krt(this,e,t),this._sunVisibleThroughGlobe=qrt(this,e),this._environmentVisible=Yrt(this,e),this._useDepthPlane=Xrt(this,e),this._numberOfTextureUniforms=Zrt(this),this._rectangle=ce.clone(t.translucency.rectangle,this._rectangle),$rt(this,e)};function Fpe(e,t,n,i){return e?u(n)?(Ot.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function Bpe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function qrt(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function Yrt(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function Xrt(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Krt(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==te.SCENE2D&&t.context.depthTexture}function Zrt(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function $rt(e,t){e._derivedCommandsLength=Q7(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Q7(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Q7(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<Ox;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!u(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=dst())}function Q7(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,l=e._requiresManualDepthTest,f=i?$s.PICK_FRONT_FACE:l?$s.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:$s.TRANSLUCENT_FRONT_FACE,d=i?$s.PICK_BACK_FACE:l?$s.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:$s.TRANSLUCENT_BACK_FACE;return t.mode===te.SCENE2D?(o[r++]=$s.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=$s.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=$s.DEPTH_ONLY_BACK_FACE),o[r++]=$s.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=$s.DEPTH_ONLY_FRONT_FACE),o[r++]=$s.OPAQUE_BACK_FACE,o[r++]=f),r)}function bf(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function kpe(e,t){return e.indexOf(t)>-1}function Qrt(e,t){bf(e.defines,"TRANSLUCENT"),bf(t.defines,"TRANSLUCENT")}function Jrt(e,t){bf(e.defines,"GROUND_ATMOSPHERE"),bf(t.defines,"GROUND_ATMOSPHERE"),bf(e.defines,"FOG"),bf(t.defines,"FOG"),bf(e.defines,"TRANSLUCENT"),bf(t.defines,"TRANSLUCENT")}function J7(e,t){if(kpe(t.defines,"TILE_LIMIT_RECTANGLE")||kpe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main()
- {
- out_FragColor = vec4(1.0);
- }
- `;t.sources=[n]}function eq(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=ze.replaceMain(n[r],"czm_globe_translucency_main");let o=`
- uniform sampler2D u_classificationTexture;
- void main()
- {
- vec2 st = gl_FragCoord.xy / czm_viewport.zw;
- #ifdef MANUAL_DEPTH_TEST
- float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st));
- if (logDepthOrDepth != 0.0)
- {
- vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
- float depthEC = eyeCoordinate.z / eyeCoordinate.w;
- if (v_positionEC.z < depthEC)
- {
- discard;
- }
- }
- #endif
- czm_globe_translucency_main();
- vec4 classificationColor = texture(u_classificationTexture, st);
- if (classificationColor.a > 0.0)
- {
-
- classificationColor.rgb /= classificationColor.a;
- }
- out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a);
- }
- `;n.push(o)}function qpe(e,t){eq(e,t),bf(e.defines,"GROUND_ATMOSPHERE"),bf(t.defines,"GROUND_ATMOSPHERE"),bf(e.defines,"FOG"),bf(t.defines,"FOG")}function est(e,t){eq(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function tst(e,t){qpe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Upe(e,t){let n=`uniform sampler2D u_classificationTexture;
- void main()
- {
- vec2 st = gl_FragCoord.xy / czm_viewport.zw;
- vec4 pickColor = texture(u_classificationTexture, st);
- if (pickColor == vec4(0.0))
- {
- discard;
- }
- out_FragColor = pickColor;
- }
- `;t.sources=[n]}function nst(e,t,n,i,o,r){if(!u(o))return t;if(!i&&u(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!u(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),l=t.fragmentShaderSource.clone();c.defines=u(c.defines)?c.defines.slice(0):[],l.defines=u(l.defines)?l.defines.slice(0):[],o(c,l),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:a})}return s}function ist(e){e.cull.face=gi.BACK,e.cull.enabled=!0}function ost(e){e.cull.face=gi.FRONT,e.cull.enabled=!0}function rst(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function sst(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function ast(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Vpe(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function zpe(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function cst(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function lst(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function ust(e,t,n,i,o){if(!u(i))return e;if(!n&&u(t))return t;let r=o[e.id];if(!u(r)){let s=Ve.getState(e);i(s),r=Ve.fromCache(s),o[e.id]=r}return r}function eE(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function fst(e,t,n,i,o){return u(o)?!i&&u(n)?n:gt(t,o(e),!1):t}function Vd(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function dst(){return[new Vd({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:Qrt,getRenderStateFunction:ist,getUniformMapFunction:void 0}),new Vd({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:Jrt,getRenderStateFunction:ost,getUniformMapFunction:void 0}),new Vd({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:J7,getRenderStateFunction:rst,getUniformMapFunction:void 0}),new Vd({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:J7,getRenderStateFunction:sst,getUniformMapFunction:void 0}),new Vd({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:J7,getRenderStateFunction:ast,getUniformMapFunction:void 0}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:eq,getRenderStateFunction:Vpe,getUniformMapFunction:eE}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:qpe,getRenderStateFunction:zpe,getUniformMapFunction:eE}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:est,getRenderStateFunction:Vpe,getUniformMapFunction:eE}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:tst,getRenderStateFunction:zpe,getUniformMapFunction:eE}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Upe,getRenderStateFunction:cst,getUniformMapFunction:eE}),new Vd({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Upe,getRenderStateFunction:lst,getUniformMapFunction:eE})]}var Hpe=new Array(Ox),Gpe=new Array(Ox);Rx.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Gpe[o]=this._derivedCommandPacks[n[o]],Hpe[o]=jpe[n[o]];hst(this,e,i,n,Hpe,Gpe,t)}};function hst(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!u(a)||c){t.dirty=!1,u(a)||(a={},t.derivedCommands.globeTranslucency=a);let l=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,m=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=l),m&&(a.shaderProgramDirtyFrame=l),x&&(a.renderStateDirtyFrame=l),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let b=0;b<n;++b){let T=r[b],A=i[b],C=o[b],S=a[C],w,D,O;u(S)?(w=S.uniformMap,D=S.shaderProgram,O=S.renderState):(w=void 0,D=void 0,O=void 0),S=et.shallowClone(t,S),a[C]=S;let R=y(S.derivedCommands.uniformMapDirtyFrame,0),N=y(S.derivedCommands.shaderProgramDirtyFrame,0),F=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||R<f,E=m||N<d,v=x||F<p;_&&(S.derivedCommands.uniformMapDirtyFrame=l),E&&(S.derivedCommands.shaderProgramDirtyFrame=l),v&&(S.derivedCommands.renderStateDirtyFrame=l),S.derivedCommands.type=A,S.pass=T.pass,S.pickOnly=T.pickOnly,S.uniformMap=fst(e,t.uniformMap,w,_,T.getUniformMapFunction),S.shaderProgram=nst(s.context,t.shaderProgram,D,E,T.getShaderProgramFunction,C),S.renderState=ust(t.renderState,O,v,T.getRenderStateFunction,T.renderStateCache)}}}Rx.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=jpe[o[a]];n.commandList.push(s[c])}};function Ype(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],l=c.derivedCommands.type;(!u(s)||s.indexOf(l)>-1)&&n(c,i,o,r)}}function Wpe(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var mst=[$s.OPAQUE_FRONT_FACE,$s.OPAQUE_BACK_FACE],pst=[$s.DEPTH_ONLY_FRONT_FACE,$s.DEPTH_ONLY_BACK_FACE,$s.DEPTH_ONLY_FRONT_AND_BACK_FACE];Rx.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Ee.GLOBE],a=e.indices[Ee.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),Ype(s,a,t,i,r,o,mst))};Rx.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Ee.GLOBE],a=e.indices[Ee.GLOBE],c=e.commands[Ee.TERRAIN_CLASSIFICATION],l=e.indices[Ee.TERRAIN_CLASSIFICATION];if(a===0||l===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Wpe(c,l,t,i,r,o),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,g=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,Ype(s,a,t,i,r,o,pst),r.depthTexture){let m=n.packDepth(r,o);r.uniformState.globeDepthTexture=m}Wpe(c,l,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=g};var GU=Rx;var hu=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- out_FragColor = texture(colorTexture, v_textureCoordinates);
- }
- `;function dm(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new di({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new di({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ei({color:new z(0,0,0,0),owner:this}),this._clearCommand=new ei({color:new z(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(dm.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});dm.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var _st={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Vn.NEVER,reference:0,mask:Lt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},gst={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Vn.NEVER,reference:0,mask:Lt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},yst={depthMask:!0,depthTest:{enabled:!0},stencilTest:Lt.setCesium3DTileBit(),stencilMask:Lt.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},xst=`uniform sampler2D colorTexture;
- uniform sampler2D depthTexture;
- uniform sampler2D classifiedTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec4 color = texture(colorTexture, v_textureCoordinates);
- if (color.a == 0.0)
- {
- discard;
- }
- bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0)));
- #ifdef UNCLASSIFIED
- vec4 highlightColor = czm_invertClassificationColor;
- if (isClassified)
- {
- discard;
- }
- #else
- vec4 highlightColor = vec4(1.0);
- if (!isClassified)
- {
- discard;
- }
- #endif
- out_FragColor = color * highlightColor;
- gl_FragDepth = texture(depthTexture, v_textureCoordinates).r;
- }
- `,bst=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec4 color = texture(colorTexture, v_textureCoordinates);
- if (color.a == 0.0)
- {
- discard;
- }
- #ifdef UNCLASSIFIED
- out_FragColor = color * czm_invertClassificationColor;
- #else
- out_FragColor = color;
- #endif
- }
- `;dm.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!u(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),u(this._previousFramebuffer)||(this._depthStencilTexture=new Pt({context:e,width:s,height:a,pixelFormat:rt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Ou({context:e,width:s,height:a,format:Wc.DEPTH24_STENCIL8,numSamples:t})))),!u(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let l,f;u(this._previousFramebuffer)?(l=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(l=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(l),u(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),u(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(l),this._fboClassified.update(e,s,a))}if(u(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(_st),this._rsClassified=Ve.fromCache(gst),this._rsDefault=Ve.fromCache(yst)),!u(this._unclassifiedCommand)||o||r){u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let l=u(this._previousFramebuffer)?bst:xst,f=new ze({defines:["UNCLASSIFIED"],sources:[l]}),d=new ze({sources:[l]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:u(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:u(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),u(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),u(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(hu,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};dm.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};dm.prototype.clear=function(e,t){u(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};dm.prototype.executeClassified=function(e,t){if(!u(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};dm.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};dm.prototype.isDestroyed=function(){return!1};dm.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),le(this)};var kD=dm;function WU(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(WU.prototype,{total:{get:function(){return this._total}}});function _y(e){let t=new Array(Oa.NUMBER_OF_JOB_TYPES);t[Oa.TEXTURE]=new WU(u(e)?e[Oa.TEXTURE]:10),t[Oa.PROGRAM]=new WU(u(e)?e[Oa.PROGRAM]:10),t[Oa.BUFFER]=new WU(u(e)?e[Oa.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}_y.getTimestamp=Ti;Object.defineProperties(_y.prototype,{totalBudget:{get:function(){return this._totalBudget}}});_y.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};_y.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};_y.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,l;for(l=0;l<c&&(r=n[l],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++l);if(l===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=_y.getTimestamp();e.execute();let a=_y.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var jU=_y;function qU(e){e=y(e,y.EMPTY_OBJECT);let t=In(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=Ti(),this._lastMsSampleTime=Ti(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(qU.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});qU.prototype.update=function(e){let t=Ti(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};qU.prototype.destroy=function(){return le(this)};var gy=qU;function Mx(){this._framebuffer=new di,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(Mx.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Tst(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Ast(e,t,n){if(!u(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture;
- in vec2 v_textureCoordinates;
- void main()
- {
- out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r);
- }
- `;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:Ve.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}Mx.prototype.update=function(e,t){Tst(this,e,t),Ast(this,e,t)};var Cst=new oe,Est=new oe(1,1/255,1/65025,1/16581375);Mx.prototype.getDepth=function(e,t,n){if(!u(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,Cst);return oe.divideByScalar(o,255,o),oe.dot(o,Est)};Mx.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};Mx.prototype.isDestroyed=function(){return!1};Mx.prototype.destroy=function(){return this._framebuffer.destroy(),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=u(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),le(this)};var YU=Mx;function Sst(e,t){this.near=y(e,0),this.far=y(t,0);let n=Ee.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var XU=Sst;var Lx=`uniform highp sampler2D u_depthTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r);
- }
- `;function hm(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new di,this._tempCopyDepthFramebuffer=new di,this._updateDepthFramebuffer=new di({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new qe,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(hm.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function wst(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function Xpe(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!qe.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,qe.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=qe.clone(o.viewport,e._scissorRectangle),s=!0),(!u(e._rs)||!qe.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Vn.NEVER,reference:Lt.CESIUM_3D_TILE_MASK,mask:Lt.CESIUM_3D_TILE_MASK}})),u(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Lx,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,u(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(hu,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,u(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Lx,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,u(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(hu,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,u(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ei({color:new z(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}hm.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),Xpe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};hm.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};hm.prototype.executeCopyDepth=function(e,t){u(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};hm.prototype.executeUpdateDepth=function(e,t,n,i){let o=u(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(u(this._updateDepthCommand)){if(!u(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==o||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,r,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(o),this._updateDepthFramebuffer.update(e,r,s),Xpe(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}u(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};hm.prototype.executeCopyColor=function(e,t){u(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};hm.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;u(i)&&(z.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};hm.prototype.isDestroyed=function(){return!1};hm.prototype.destroy=function(){return wst(this),u(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),u(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),u(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),le(this)};var KU=hm;function Nx(){this._framebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new di,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new qe,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(Nx.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function vst(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function Dst(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function Ist(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!qe.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,qe.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=qe.clone(o.viewport,e._scissorRectangle),s=!0),(!u(e._renderState)||!qe.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Lx,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),u(e._clearCommand)||(e._clearCommand=new ei({color:new z(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}Nx.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;Dst(this,n,o,r,e),Ist(this,n,o,r,i),this._useHdr=e};Nx.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};Nx.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};Nx.prototype.isDestroyed=function(){return!1};Nx.prototype.destroy=function(){return vst(this),le(this)};var ZU=Nx;var UD=`#ifdef MRT
- layout (location = 0) out vec4 out_FragData_0;
- layout (location = 1) out vec4 out_FragData_1;
- #else
- layout (location = 0) out vec4 out_FragColor;
- #endif
- uniform vec4 u_bgColor;
- uniform sampler2D u_depthTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- if (texture(u_depthTexture, v_textureCoordinates).r < 1.0)
- {
- #ifdef MRT
- out_FragData_0 = u_bgColor;
- out_FragData_1 = vec4(u_bgColor.a);
- #else
- out_FragColor = u_bgColor;
- #endif
- return;
- }
-
- discard;
- }
- `;var $U=`
- uniform sampler2D u_opaque;
- uniform sampler2D u_accumulation;
- uniform sampler2D u_revealage;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec4 opaque = texture(u_opaque, v_textureCoordinates);
- vec4 accum = texture(u_accumulation, v_textureCoordinates);
- float r = texture(u_revealage, v_textureCoordinates).r;
- #ifdef MRT
- vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a);
- #else
- vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r);
- #endif
- out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque;
- if (opaque != czm_backgroundColor)
- {
- out_FragColor.a = 1.0;
- }
- }
- `;function Wp(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new di({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new di({createColorAttachments:!1}),this._opaqueClearCommand=new ei({color:new z(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ei({color:new z(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ei({color:new z(0,0,0,0),owner:this}),this._alphaClearCommand=new ei({color:new z(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new qe,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function Kpe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function tq(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function Zpe(e){Kpe(e),tq(e)}function Pst(e,t,n,i){Kpe(e),e._accumulationTexture=new Pt({context:t,width:n,height:i,pixelFormat:rt.RGBA,pixelDatatype:Ye.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new Pt({context:t,pixelFormat:rt.RGBA,pixelDatatype:Ye.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function Ost(e,t){tq(e);let n=ee.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(tq(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,l=e._adjustAlphaFBO.status===n;(!s||!a||!c||!l)&&(Zpe(e),e._translucentMultipassSupport=!1,i=!1)}return i}Wp.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!u(a)||a.width!==r||a.height!==s||i!==this._useHDR,l=this._numSamples!==o;if((c||l)&&(this._numSamples=o,Pst(this,e,r,s)),(!u(this._translucentFBO.framebuffer)||c||l)&&!Ost(this,e))return;this._useHDR=i;let f=this,d,p;u(this._compositeCommand)||(d=new ze({sources:[$U]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),u(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new ze({defines:["MRT"],sources:[UD]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new ze({sources:[UD]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!qe.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,qe.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=qe.clone(t.viewport,this._scissorRectangle),m=!0),(!u(this._rs)||!qe.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),u(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var Rst={enabled:!0,color:new z(0,0,0,0),equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.ONE,functionDestinationRgb:bo.ONE,functionSourceAlpha:bo.ZERO,functionDestinationAlpha:bo.ONE_MINUS_SOURCE_ALPHA},Mst={enabled:!0,color:new z(0,0,0,0),equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.ONE,functionDestinationRgb:bo.ONE,functionSourceAlpha:bo.ONE,functionDestinationAlpha:bo.ONE},Lst={enabled:!0,color:new z(0,0,0,0),equationRgb:va.ADD,equationAlpha:va.ADD,functionSourceRgb:bo.ZERO,functionDestinationRgb:bo.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:bo.ZERO,functionDestinationAlpha:bo.ONE_MINUS_SOURCE_ALPHA};function nq(e,t,n,i){let o=n[i.id];if(!u(o)){let r=Ve.getState(i);r.depthMask=!1,r.blending=t,o=Ve.fromCache(r),n[i.id]=o}return o}function Nst(e,t,n){return nq(t,Rst,e._translucentRenderStateCache,n)}function Fst(e,t,n){return nq(t,Mst,e._translucentRenderStateCache,n)}function Bst(e,t,n){return nq(t,Lst,e._alphaRenderStateCache,n)}var kst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a;
- float ai = czm_out_FragColor.a;
- float wzi = czm_alphaWeight(ai);
- out_FragData_0 = vec4(Ci * wzi, ai);
- out_FragData_1 = vec4(ai * wzi);
- `,Ust=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a;
- float ai = czm_out_FragColor.a;
- float wzi = czm_alphaWeight(ai);
- out_FragColor = vec4(Ci, ai) * wzi;
- `,Vst=` float ai = czm_out_FragColor.a;
- out_FragColor = vec4(ai);
- `;function iq(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(u(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return ze.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor;
- bool czm_discard = false;
- `);let c=[...i.matchAll(/out_FragData_(\d+)/g)],l="";for(let f=0;f<c.length;f++){let d=c[f];l=`layout (location = ${d[1]}) out vec4 ${d[0]};
- ${l}`}return a.sources.push(l),a.sources.push(`void main()
- {
- czm_translucent_main();
- if (czm_discard)
- {
- discard;
- }
- ${i}}
- `),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function zst(e,t){return iq(e,t,"translucentMRT",kst)}function Hst(e,t){return iq(e,t,"translucentMultipass",Ust)}function Gst(e,t){return iq(e,t,"alphaMultipass",Vst)}Wp.prototype.createDerivedCommands=function(e,t,n){if(u(n)||(n={}),this._translucentMRTSupport){let a,c;return u(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=et.shallowClone(e,n.translucentCommand),!u(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=zst(t,e.shaderProgram),n.translucentCommand.renderState=Nst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return u(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=et.shallowClone(e,n.translucentCommand),n.alphaCommand=et.shallowClone(e,n.alphaCommand),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Hst(t,e.shaderProgram),n.translucentCommand.renderState=Fst(this,t,e.renderState),n.alphaCommand.shaderProgram=Gst(t,e.shaderProgram),n.alphaCommand.renderState=Bst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function Wst(e,t,n,i,o,r){let s,a,c,{context:l,frameState:f}=t,{useLogDepth:d,shadowState:p}=f,g=t._hdr,m=i.framebuffer,x=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(l,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(l,i);let b=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,b);for(u(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,b)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,b);u(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,b)),i.framebuffer=m}function jst(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:l}=a,f=t._hdr,d=i.framebuffer,p=l.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let m,x;for(let b=0;b<o.length;++b)m=o[b],m=c?m.derivedCommands.logDepth.command:m,m=f?m.derivedCommands.hdr.command:m,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(x,t,s,i,g);u(r)&&(m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(x,t,s,i,g)),i.framebuffer=d}Wp.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){jst(this,e,t,n,i,o);return}Wst(this,e,t,n,i,o)};Wp.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};Wp.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,z.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};Wp.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};Wp.prototype.isDestroyed=function(){return!1};Wp.prototype.destroy=function(){return Zpe(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),le(this)};var QU=Wp;function VD(){this._framebuffer=new di({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(VD.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function qst(e){e._framebuffer.destroy()}function Yst(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new sc(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new qe},o.viewport=new qe,e._passState=o}VD.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&Yst(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};VD.prototype.isDestroyed=function(){return!1};VD.prototype.destroy=function(){return qst(this),le(this)};var JU=VD;function HD(e){let t=new sc(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new qe},t.viewport=new qe,this._context=e,this._fb=new di({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}HD.prototype.begin=function(e,t){let n=this._context,i=t.width,o=t.height;return qe.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var zD=new z;HD.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),l=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=l&&l<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+l+a);zD.red=z.byteToFloat(o[m]),zD.green=z.byteToFloat(o[m+1]),zD.blue=z.byteToFloat(o[m+2]),zD.alpha=z.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(zD);if(u(x))return x}if(l===f||l<0&&-l===f||l>0&&l===1-f){let m=d;d=-p,p=m}l+=d,f+=p}};HD.prototype.isDestroyed=function(){return!1};HD.prototype.destroy=function(){return this._fb.destroy(),le(this)};var eV=HD;function jp(){this._numSamples=1,this._colorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new z(0,0,0,0),this._clearCommand=new ei({color:new z(0,0,0,0),depth:1,owner:this})}function Xst(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(jp.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});jp.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};jp.prototype.clear=function(e,t,n){z.clone(n,this._clearCommand.color),z.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};jp.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};jp.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};jp.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};jp.prototype.isDestroyed=function(){return!1};jp.prototype.destroy=function(){return Xst(this),le(this)};var tE=jp;function Fx(){}Fx.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};Fx.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=ze.findPositionVarying(e),s=u(r);if(t&&!s){let a=o.length;for(let l=0;l<a;++l)o[l]=ze.replaceMain(o[l],"czm_shadow_cast_main");let c=`out vec3 v_positionEC;
- void main()
- {
- czm_shadow_cast_main();
- v_positionEC = (czm_inverseProjection * gl_Position).xyz;
- }`;o.push(c)}return new ze({defines:i,sources:o})};Fx.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=ze.findPositionVarying(e),a=u(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=ze.replaceMain(r[f],"czm_shadow_cast_main");let l="";return t&&(a||(l+=`in vec3 v_positionEC;
- `),l+=`uniform vec4 shadowMap_lightPositionEC;
- `),i?l+=`void main()
- {
- `:l+=`void main()
- {
- czm_shadow_cast_main();
- if (out_FragColor.a == 0.0)
- {
- discard;
- }
- `,t?l+=` float distance = length(${s});
- if (distance >= shadowMap_lightPositionEC.w)
- {
- discard;
- }
- distance /= shadowMap_lightPositionEC.w;
- out_FragColor = czm_packDepth(distance);
- `:n?l+=` out_FragColor = vec4(1.0);
- `:l+=` out_FragColor = czm_packDepth(gl_FragCoord.z);
- `,l+=`}
- `,r.push(l),new ze({defines:o,sources:r})};Fx.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,l=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${l}${f}${t}${n}${i}`};Fx.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new ze({defines:i,sources:o})};Fx.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=ze.findNormalVarying(e),s=!i&&u(r)||i&&o,a=ze.findPositionVarying(e),c=u(a),l=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,m=t.debugCascadeColors,x=t.softShadows,b=d?t._pointBias:i?t._terrainBias:t._primitiveBias,T=e.defines.slice(0),A=e.sources.slice(0),C=A.length;for(let D=0;D<C;++D)A[D]=ze.replaceMain(A[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):l&&T.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!d&&T.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?T.push("ENABLE_VERTEX_LIGHTING"):T.push("ENABLE_DAYNIGHT_SHADING")),n&&b.normalShading&&s&&(T.push("USE_NORMAL_SHADING"),b.normalShadingSmooth>0&&T.push("USE_NORMAL_SHADING_SMOOTH"));let S="";d?S+=`uniform samplerCube shadowMap_textureCube;
- `:S+=`uniform sampler2D shadowMap_texture;
- `;let w;return c?w=` return vec4(${a}, 1.0);
- `:w=`#ifndef LOG_DEPTH
- return czm_windowToEyeCoordinates(gl_FragCoord);
- #else
- return vec4(v_logPositionEC, 1.0);
- #endif
- `,S+=`uniform mat4 shadowMap_matrix;
- uniform vec3 shadowMap_lightDirectionEC;
- uniform vec4 shadowMap_lightPositionEC;
- uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness;
- uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth;
- #ifdef LOG_DEPTH
- in vec3 v_logPositionEC;
- #endif
- vec4 getPositionEC()
- {
- ${w}}
- vec3 getNormalEC()
- {
- ${s?` return normalize(${r});
- `:` return vec3(1.0);
- `}}
- void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL)
- {
- ${b.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x;
- float normalOffsetScale = 1.0 - nDotL;
- vec3 offset = normalOffset * normalOffsetScale * normalEC;
- positionEC.xyz += offset;
- `:""}}
- `,S+=`void main()
- {
- czm_shadow_receive_main();
- vec4 positionEC = getPositionEC();
- vec3 normalEC = getNormalEC();
- float depth = -positionEC.z;
- `,S+=` czm_shadowParameters shadowParameters;
- shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy;
- shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z;
- shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w;
- shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w;
- `,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0);
- `:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015);
- `),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz;
- float distance = length(directionEC);
- directionEC = normalize(directionEC);
- float radius = shadowMap_lightPositionEC.w;
-
- if (distance > radius)
- {
- return;
- }
- vec3 directionWC = czm_inverseViewRotation * directionEC;
- shadowParameters.depth = distance / radius;
- shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);
- shadowParameters.texCoords = directionWC;
- float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters);
- `:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz);
- float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);
- applyNormalOffset(positionEC, normalEC, nDotL);
- vec4 shadowPosition = shadowMap_matrix * positionEC;
-
- shadowPosition /= shadowPosition.w;
-
- if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0))))
- {
- return;
- }
- shadowParameters.texCoords = shadowPosition.xy;
- shadowParameters.depth = shadowPosition.z;
- shadowParameters.nDotL = nDotL;
- float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
- `:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w;
-
- if (depth > maxDepth)
- {
- return;
- }
-
- vec4 weights = czm_cascadeWeights(depth);
-
- float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0);
- applyNormalOffset(positionEC, normalEC, nDotL);
-
- vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC;
-
- shadowParameters.texCoords = shadowPosition.xy;
- shadowParameters.depth = shadowPosition.z;
- shadowParameters.nDotL = nDotL;
- float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
-
- float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z;
- float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0);
- visibility = mix(visibility, 1.0, fade);
- ${m?` // Draw cascade colors for debugging
- out_FragColor *= czm_cascadeColor(weights);
- `:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0);
- applyNormalOffset(positionEC, normalEC, nDotL);
- vec4 shadowPosition = shadowMap_matrix * positionEC;
-
- if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0))))
- {
- return;
- }
- shadowParameters.texCoords = shadowPosition.xy;
- shadowParameters.depth = shadowPosition.z;
- shadowParameters.nDotL = nDotL;
- float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters);
- `,S+=` out_FragColor.rgb *= visibility;
- }
- `,A.push(S),new ze({defines:T,sources:A})};var qp=Fx;function mm(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Bt.isInternetExplorer()||Bt.isEdge()||(Bt.isChrome()||Bt.isFirefox())&&Bt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new L,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new oe,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new tV,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new se,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new V,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new vr:u(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new oe,new oe],this._cascadeMatrices=[new L,new L,new L,new L],this._cascadeDistances=new oe;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new Kst(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,rq(this),this._clearCommand=new ei({depth:1,color:new z}),this._clearPassState=new sc(t),this._size=y(e.size,2048),this.size=this._size}mm.MAXIMUM_DISTANCE=2e4;function Kst(e){this.camera=new tV,this.passState=new sc(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function oq(e,t){return Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function rq(e){let t=!e._usesDepthTexture;e._primitiveRenderState=oq(t,e._primitiveBias),e._terrainRenderState=oq(t,e._terrainBias),e._pointRenderState=oq(t,e._pointBias)}mm.prototype.debugCreateRenderStates=function(){rq(this)};Object.defineProperties(mm.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){tat(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function sq(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;u(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function Zst(e,t){let n=new Ou({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Wc.DEPTH_COMPONENT16}),i=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST}),o=new ta({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function $st(e,t){let n=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:rt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),i=new ta({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function Qst(e,t){let n=new Ou({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Wc.DEPTH_COMPONENT16}),i=new rc({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,sampler:ln.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new ta({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Jpe(e,t){e._isPointLight?Qst(e,t):e._usesDepthTexture?$st(e,t):Zst(e,t)}function Jst(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ee.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,rq(e),sq(e),Jpe(e,t))}function eat(e,t){(!u(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(sq(e),Jpe(e,t),Jst(e,t),e_e(e,t))}function e_e(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function tat(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=zt.maximumCubeMapSize>=t?t:zt.maximumCubeMapSize,o.x=t,o.y=t;let r=new qe(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=zt.maximumTextureSize>=t?t:zt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new qe(0,0,t,t)):i===4&&(t=zt.maximumTextureSize>=t*2?t:zt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new qe(0,0,t,t),n[1].passState.viewport=new qe(t,0,t,t),n[2].passState.viewport=new qe(0,t,t,t),n[3].passState.viewport=new qe(t,t,t,t));e._clearPassState.viewport=new qe(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,l=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new L(f,0,0,c,0,d,0,l,0,0,1,0,0,0,0,1)}}var nat=new qe;function iat(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec2 uv = v_textureCoordinates;
- vec3 dir;
-
- if (uv.y < 0.5)
- {
- if (uv.x < 0.333)
- {
- dir.x = -1.0;
- dir.y = uv.x * 6.0 - 1.0;
- dir.z = uv.y * 4.0 - 1.0;
- }
- else if (uv.x < 0.666)
- {
- dir.y = -1.0;
- dir.x = uv.x * 6.0 - 3.0;
- dir.z = uv.y * 4.0 - 1.0;
- }
- else
- {
- dir.z = -1.0;
- dir.x = uv.x * 6.0 - 5.0;
- dir.y = uv.y * 4.0 - 1.0;
- }
- }
- else
- {
- if (uv.x < 0.333)
- {
- dir.x = 1.0;
- dir.y = uv.x * 6.0 - 1.0;
- dir.z = uv.y * 4.0 - 3.0;
- }
- else if (uv.x < 0.666)
- {
- dir.y = 1.0;
- dir.x = uv.x * 6.0 - 3.0;
- dir.z = uv.y * 4.0 - 3.0;
- }
- else
- {
- dir.z = 1.0;
- dir.x = uv.x * 6.0 - 5.0;
- dir.y = uv.y * 4.0 - 3.0;
- }
- }
-
- float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir));
- out_FragColor = vec4(vec3(shadow), 1.0);
- }
- `:n=`uniform sampler2D shadowMap_texture;
- in vec2 v_textureCoordinates;
- void main()
- {
- ${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r;
- `:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates));
- `} out_FragColor = vec4(vec3(shadow), 1.0);
- }
- `;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=Ee.OVERLAY,i}function oat(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=nat;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;u(a)||(a=iat(e,n),e._debugShadowViewCommand=a),(!u(a.renderState)||!qe.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:qe.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var pm=new Array(8);pm[0]=new oe(-1,-1,-1,1);pm[1]=new oe(1,-1,-1,1);pm[2]=new oe(1,1,-1,1);pm[3]=new oe(-1,1,-1,1);pm[4]=new oe(-1,-1,1,1);pm[5]=new oe(1,-1,1,1);pm[6]=new oe(1,1,1,1);pm[7]=new oe(-1,1,1,1);var yy=new L,aq=new Array(8);for(let e=0;e<8;++e)aq[e]=new oe;function rat(e,t){let n=new yt({geometry:new ch({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:kt.fromColor(t)}}),i=new yt({geometry:new mg({radius:.5}),attributes:{color:kt.fromColor(t)}});return new Sn({geometryInstances:[n,i],appearance:new on({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var sat=[z.RED,z.GREEN,z.BLUE,z.MAGENTA],aat=new h;function cat(e,t){oat(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Gp({camera:e._sceneCamera,color:z.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Gp({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Gp({camera:e._passes[i].camera,color:sat[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!u(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Ne.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,aat),a=L.fromTranslationQuaternionRotationScale(i,o,s,yy);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=rat(a,z.YELLOW)}e._debugLightFrustum.update(t)}else(!u(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Gp({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function tV(){this.viewMatrix=new L,this.inverseViewMatrix=new L,this.frustum=void 0,this.positionCartographic=new fe,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new L}tV.prototype.clone=function(e){L.clone(e.viewMatrix,this.viewMatrix),L.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),fe.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var lat=new L(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);tV.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return L.multiply(t,e,this.viewProjectionMatrix),L.multiply(lat,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var uat=new Array(5),fat=new vi,dat=new Array(4),t_e=new h,n_e=new h;function hat(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,l=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=dat,g=uat;for(g[0]=o,g[s]=r,a=0;a<s;++a){let F=(a+1)/s,_=o*Math.pow(l,F),E=o+c*F,v=P.lerp(E,_,f);g[a+1]=v,p[a]=v-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let F=g[0];for(a=0;a<s-1;++a)F+=p[a],g[a+1]=F}oe.unpack(g,0,e._cascadeSplits[0]),oe.unpack(g,1,e._cascadeSplits[1]),oe.unpack(p,0,e._cascadeDistances);let m=n.frustum,x=m.left,b=m.right,T=m.bottom,A=m.top,C=m.near,S=m.far,w=n.positionWC,D=n.directionWC,O=n.upWC,R=i.frustum.clone(fat),N=n.getViewProjection();for(a=0;a<s;++a){R.near=g[a],R.far=g[a+1];let F=L.multiply(R.projectionMatrix,i.viewMatrix,yy),_=L.inverse(F,yy),E=L.multiply(N,_,yy),v=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,t_e),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,n_e);for(let G=0;G<8;++G){let k=oe.clone(pm[G],aq[G]);L.multiplyByVector(E,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,v,v),h.maximumByComponent(k,I,I)}v.x=Math.max(v.x,0),v.y=Math.max(v.y,0),v.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let M=e._passes[a],B=M.camera;B.clone(n);let H=B.frustum;H.left=x+v.x*(b-x),H.right=x+I.x*(b-x),H.bottom=T+v.y*(A-T),H.top=T+I.y*(A-T),H.near=C+v.z*(S-C),H.far=C+I.z*(S-C),M.cullingVolume=B.frustum.computeCullingVolume(w,D,O);let U=e._cascadeMatrices[a];L.multiply(B.getViewProjection(),i.inverseViewMatrix,U),L.multiply(M.textureOffsets,U,U)}}var mat=new L,pat=new h,_at=new h,$pe=new h;function gat(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=L.multiply(i.frustum.projectionMatrix,i.viewMatrix,yy),r=L.inverse(o,yy),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,pat);a=h.cross(c,s,_at),h.normalize(a,a),h.normalize(c,c);let l=h.fromElements(0,0,0,$pe),f=L.computeView(l,s,a,c,mat),d=L.multiply(f,r,yy),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,t_e),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,n_e);for(let S=0;S<8;++S){let w=oe.clone(pm[S],aq[S]);L.multiplyByVector(d,w,w),h.divideByScalar(w,w.w,w),h.minimumByComponent(w,p,p),h.maximumByComponent(w,g,g)}g.z+=1e3,p.z-=10;let m=$pe;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=L.fromTranslation(m,yy);f=L.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),A=g.z-p.z,C=n.frustum;C.left=-b,C.right=b,C.bottom=-T,C.top=T,C.near=.01,C.far=A,L.clone(f,n.viewMatrix),L.inverse(f,n.inverseViewMatrix),L.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var yat=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],xat=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],bat=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function Tat(e,t){let n=new vi;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=yat[i],o.upWC=xat[i],o.rightWC=bat[i],L.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),L.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Aat=new h,Cat=new h,i_e=new se,Qpe=i_e.center;function Eat(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=i_e;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Aat),s=h.negate(i.directionWC,Cat),a=h.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===Zt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,Qpe),Qpe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Zt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere)}}function Sat(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;L.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),L.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=lo.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Eat(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}mm.prototype.update=function(e){if(Sat(this,e),this._needsUpdate)if(eat(this,e.context),this._isPointLight&&Tat(this,e),this._cascadesEnabled&&(gat(this,e),this._numberOfCascades>1&&hat(this,e)),this._isPointLight)this._shadowMapCullingVolume=ns.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;L.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&cat(this,e)};mm.prototype.updatePass=function(e,t){e_e(this,e,t)};var wat=new V;function o_e(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=wat;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,oe.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return oe.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new oe,combinedUniforms2:new oe};return gt(t,o,!1)}function vat(e,t,n,i,o,r){let s,a,c;if(u(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=et.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!u(s)||o!==n.shaderProgram.id||t){let l=n.shaderProgram,f=n.pass===Ee.GLOBE,d=n.pass!==Ee.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=qp.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(l,m),!u(s)){let b=l.vertexShaderSource,T=l.fragmentShaderSource,A=qp.createShadowCastVertexShader(b,p,f),C=qp.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(l,m,{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:l._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ge(a,!1),a.cull=Ge(a.cull,!1),a.cull.enabled=!1,a=Ve.fromCache(a)),c=o_e(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}mm.createReceiveDerivedCommand=function(e,t,n,i,o){u(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,l=t.pass===Ee.GLOBE,f=!1;if(l&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;u(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=et.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!u(d)||m||n||g){let x=qp.getShadowReceiveShaderKeyword(e[0],t.castShadows,l,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!u(d)){let b=qp.createShadowReceiveVertexShader(a,l,f),T=qp.createShadowReceiveFragmentShader(c,e[0],t.castShadows,l,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=o_e(e[0],t.uniformMap,l)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};mm.createCastDerivedCommand=function(e,t,n,i,o){if(u(o)||(o={}),t.castShadows){let r=o.castCommands;u(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=vat(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};mm.prototype.isDestroyed=function(){return!1};mm.prototype.destroy=function(){sq(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return le(this)};var xy=mm;var nV=`uniform sampler2D u_opaqueDepthTexture;
- uniform sampler2D u_translucentDepthTexture;
- in vec2 v_textureCoordinates;
- void main()
- {
- float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r;
- float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r;
- translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth);
- out_FragColor = czm_packDepth(translucentDepth);
- }
- `;var nE=`uniform sampler2D colorTexture;
- #ifdef DEBUG_SHOW_DEPTH
- uniform sampler2D u_packedTranslucentDepth;
- #endif
- in vec2 v_textureCoordinates;
- void main()
- {
- #ifdef DEBUG_SHOW_DEPTH
- if (v_textureCoordinates.x < 0.5)
- {
- out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates)));
- out_FragColor.a = 1.0;
- }
- #else
- vec4 color = texture(colorTexture, v_textureCoordinates);
- #ifdef PICK
- if (color == vec4(0.0))
- {
- discard;
- }
- #else
-
- color.rgb /= color.a;
- #endif
- out_FragColor = color;
- #endif
- }
- `;var Dat=!1;function by(e){this._drawClassificationFBO=new di({createDepthAttachments:!1}),this._accumulationFBO=new di({createDepthAttachments:!1}),this._packFBO=new di,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ei({color:new z(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ei({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new qe,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(by.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function r_e(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function s_e(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function Iat(e,t,n,i){r_e(e),e._translucentDepthStencilTexture=new Pt({context:t,width:n,height:i,pixelFormat:rt.DEPTH_STENCIL,pixelDatatype:Ye.UNSIGNED_INT_24_8,sampler:ln.NEAREST})}function Pat(e,t,n,i){s_e(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function Oat(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(Iat(e,t,o,r),Pat(e,t,o,r));let s,a;if(u(e._packDepthCommand)||(s=new ze({sources:[nV]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!u(e._compositeCommand)){s=new ze({sources:[nE]}),a={colorTexture:function(){return e._textureToComposite}},Dat&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new ze({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=et.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}u(e._copyCommand)||(s=new ze({sources:[nE]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),u(e._accumulateCommand)||(s=new ze({sources:[nE]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!qe.equals(e._viewport,n.viewport),l=c!==e._useScissorTest;e._useScissorTest=c,qe.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=qe.clone(n.viewport,e._scissorRectangle),l=!0),(!u(e._rsDepth)||!qe.equals(e._viewport,e._rsDepth.viewport)||l)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!u(e._rsAccumulate)||!qe.equals(e._viewport,e._rsAccumulate.viewport)||l)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,reference:Lt.CESIUM_3D_TILE_MASK}})),u(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!u(e._rsComp)||!qe.equals(e._viewport,e._rsComp.viewport)||l)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),u(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}by.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,l=e.context,f=n.framebuffer;for(a=0;a<r;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(Oat(this,l,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(l,n),a=0;a<r;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let d=s.derivedCommands.depth.depthOnlyCommand;t(d,e,l,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(l,n)),n.framebuffer=f}};by.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(o,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],l=i.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<l;++f)t(c[f],e,o,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};by.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),Rat(this,e,t)};function Rat(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}by.prototype.isSupported=function(){return this._supported};by.prototype.isDestroyed=function(){return!1};by.prototype.destroy=function(){return r_e(this),s_e(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),le(this)};var iV=by;function Mat(){this.command=void 0,this.near=void 0,this.far=void 0}function oV(e,t,n){let i=e.context,o;i.depthTexture&&(o=new KU);let r;e._useOIT&&i.depthTexture&&(r=new QU(i));let s=new sc(i);s.viewport=qe.clone(n),this.camera=t,this._cameraClone=lo.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new eV(i),this.pickDepthFramebuffer=new JU,this.sceneFramebuffer=new tE,this.globeDepth=o,this.globeTranslucencyFramebuffer=new ZU,this.oit=r,this.translucentTileClassification=new iV(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var a_e=new h,c_e=new h;function Lat(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),o=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),o)}function Nat(e,t,n){let i=1/Math.max(1,Lat(e.position,t.position));return h.multiplyByScalar(e.position,i,a_e),h.multiplyByScalar(t.position,i,c_e),h.equalsEpsilon(a_e,c_e,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&L.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}oV.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return Nat(t,n,P.EPSILON15)?(this._cameraStartFired&&Ti()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=Ti(),lo.clone(t,n),!0)};function Fat(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===te.SCENE2D,c=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let l;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),l=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):l=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=l;for(let d=0;d<l;++d){let p,g;a?(p=Math.min(i-c,n+d*c),g=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,d)*n),g=Math.min(i,s*p));let m=f[d];u(m)?(m.near=p,m.far=g):m=f[d]=new XU(p,g)}}function Bat(e,t,n,i,o){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let r=e.frustumCommandsList,s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.near,f=c.far;if(i>f)continue;if(o<l)break;let d=n.pass,p=c.indices[d]++;if(c.commands[d][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=u(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var l_e=new ns,kat=new jc;oV.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,o=n.positionWC,r=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,l=c.length,f=Ee.NUMBER_OF_PASSES;for(let E=0;E<l;++E)for(let v=0;v<f;++v)c[E].indices[v]=0;r.length=0,s.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,x=-Number.MAX_VALUE,b=t.shadowState.shadowsEnabled,T=+Number.MAX_VALUE,A=-Number.MAX_VALUE,C=Number.MAX_VALUE,S=t.mode===te.SCENE3D?t.occluder:void 0,w=t.cullingVolume,D=l_e.planes;for(let E=0;E<5;++E)D[E]=w.planes[E];w=l_e;let O=a.length;for(let E=0;E<O;++E){let v=a[E],I=v.pass;if(I===Ee.COMPUTE)r.push(v);else if(I===Ee.OVERLAY)s.push(v);else{let M,B,H=v.boundingVolume;if(u(H)){if(!e.isVisible(v,w,S))continue;let G=H.computePlaneDistances(o,i,kat);if(M=G.start,B=G.stop,m=Math.min(m,M),x=Math.max(x,B),b&&v.receiveShadows&&M<xy.MAXIMUM_DISTANCE&&!(I===Ee.GLOBE&&M<-100&&B>100)){let k=B-M;I!==Ee.GLOBE&&M<100&&(C=Math.min(C,k)),T=Math.min(T,M),A=Math.max(A,B)}}else v instanceof ei?(M=n.frustum.near,B=n.frustum.far):(M=n.frustum.near,B=n.frustum.far,m=Math.min(m,M),x=Math.max(x,B));let U=d[g];u(U)||(U=d[g]=new Mat),U.command=v,U.near=M,U.far=B,g++}}b&&(T=Math.min(Math.max(T,n.frustum.near),n.frustum.far),A=Math.max(Math.min(A,n.frustum.far),T)),b&&(t.shadowState.nearPlane=T,t.shadowState.farPlane=A,t.shadowState.closestObjectSize=C),Fat(this,e,m,x);let R,N;for(R=0;R<g;R++)N=d[R],Bat(this,e,N.command,N.near,N.far);if(g<p)for(R=g;R<p&&(N=d[R],!!u(N.command));R++)N.command=void 0;let F=c.length,_=t.frustumSplits;_.length=F+1;for(let E=0;E<F;++E)_[E]=c[E].near,E===F-1&&(_[E+1]=c[E].far)};oV.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var iE=oV;var f_e=.1,Uat=new Ud({pass:Po.MOST_DETAILED_PRELOAD}),Vat=new Ud({pass:Po.MOST_DETAILED_PICK}),cq=new Ud({pass:Po.PICK});function pa(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new qe(0,0,1,1),n=new lo(e);n.frustum=new Qt({width:f_e,aspectRatio:1,near:.1}),this._pickOffscreenView=new iE(e,n,t)}pa.prototype.update=function(){this._pickPositionCacheDirty=!0};pa.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return u(i)||(i=new YU,n[t]=i),i};var zat=new vr,Hat=new h,rV=new h,Gat=new V,Wat=new L;function jat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let l=2*(o.height-t.y-o.y)/o.height-1;l*=(s.top-s.bottom)*.5;let f=L.clone(r.transform,Wat);r._setTransform(L.IDENTITY);let d=h.clone(r.position,Hat);h.multiplyByScalar(r.right,c,rV),h.add(rV,d,d),h.multiplyByScalar(r.up,l,rV),h.add(rV,d,d),r._setTransform(f),e.mode===te.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,Gat),g=zat;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var qat=new gl,Yat=new V;function Xat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),l=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*l,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,Yat),x=m.x*n*.5,b=m.y*i*.5,T=qat;return T.top=g+b,T.bottom=g-b,T.right=p+x,T.left=p-x,T.near=a,T.far=s.far,T.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function d_e(e,t,n,i,o){let r=e.camera.frustum;return r instanceof Qt||r instanceof vr?jat(e,t,n,i,o):Xat(e,t,n,i,o)}var oE=3,GD=3,_m=new qe(0,0,oE,GD),h_e=new V,lq=new z(0,0,0,0);pa.prototype.pick=function(e,t,n,i){oE=y(n,3),GD=y(i,oE);let o=e.context,r=o.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=o.drawingBufferWidth,c.height=o.drawingBufferHeight;let l=a.passState;l.viewport=qe.clone(c,l.viewport);let f=$i.transformWindowToDrawingBuffer(e,t,h_e);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=d_e(e,f,oE,GD,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=cq,r.update(s),e.updateEnvironment(),_m.x=f.x-(oE-1)*.5,_m.y=e.drawingBufferHeight-f.y-(GD-1)*.5,_m.width=oE,_m.height=GD,l=a.pickFramebuffer.begin(_m,a.viewport),e.updateAndExecuteCommands(l,lq),e.resolveFramebuffers(l);let d=a.pickFramebuffer.end(_m);return o.endFrame(),d};function Kat(e,t){let n=e.context,i=e.frameState,o=e.environmentState,r=e.defaultView;e.view=r;let s=r.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=r.passState;a.viewport=qe.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=d_e(e,t,1,1,s),i.tilesetPassState=cq,e.updateEnvironment(),o.renderTranslucentDepthForPick=!0,a=r.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,lq),e.resolveFramebuffers(a),n.endFrame()}var Zat=new vi,$at=new gl,Qat=new Qt,Jat=new vr;pa.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let o=e.frameState,r=e.context,s=r.uniformState,a=e.defaultView;e.view=a;let c=$i.transformWindowToDrawingBuffer(e,t,h_e);e.pickTranslucentDepth?Kat(e,c):(e.updateFrameState(),s.update(o),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let l=e.camera,f;u(l.frustum.fov)?f=l.frustum.clone(Zat):u(l.frustum.infiniteProjectionMatrix)?f=l.frustum.clone($at):u(l.frustum.width)?f=l.frustum.clone(Qat):f=l.frustum.clone(Jat);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(r,c.x,c.y);if(u(x)&&x>0&&x<1){let b=d[g],T;return e.mode===te.SCENE2D?(T=l.position.z,l.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,s.update(o),s.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,s.updateFrustum(f)),n=$i.drawingBufferToWgs84Coordinates(e,c,x,n),e.mode===te.SCENE2D&&(l.position.z=T,s.update(o)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var ect=new fe;pa.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),u(n)&&e.mode!==te.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,ect);o.cartographicToCartesian(r,n)}return n};function m_e(e,t){let n,i,o=[],r=[],s=[],a=[];u(e)||(e=Number.MAX_VALUE);let c=t();for(;u(c);){let l=c.object,f=c.position,d=c.exclude;if(u(f)&&!u(l)){o.push(c);break}if(!u(l)||!u(l.primitive)||!d&&(o.push(c),0>=--e))break;let p=l.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&u(l.id)&&(i=p.getGeometryInstanceAttributes(l.id),u(i)&&u(i.show)&&(g=!0,i.show=_n.toValue(!1,i.show),s.push(i))),l instanceof Ms&&(g=!0,l.show=!1,a.push(l)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=_n.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}pa.prototype.drillPick=function(e,t,n,i,o){let r=this;return m_e(n,function(){let c=r.pick(e,t,i,o);if(u(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var u_e=new h,tct=new h;function nct(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function p_e(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,u_e),s=h.cross(o,r,u_e),a=h.cross(o,s,tct);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,f_e),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function ict(e,t,n){let i=t.frameState,o=n.ray,r=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=p_e(e,o,r,a),l=Uat;l.camera=a,l.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,l),f=f&&l.ready)}return f&&n._completePick(),f}pa.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)ict(this,e,t[n])&&t.splice(n--,1)};function __e(e,t,n){let i=e.length;for(let o=0;o<i;++o){let r=e.get(o);r.show&&(u(r.isCesium3DTileset)?(!u(t)||t.indexOf(r)===-1)&&n.push(r):r instanceof Zl&&__e(r,t,n))}}function sV(e,t,n,i,o,r){let s=[];if(__e(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new nct(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function oct(e,t){return!u(e)||!u(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function rct(e,t,n,i,o,r,s){let a=t.context,c=a.uniformState,l=t.frameState,f=e._pickOffscreenView;t.view=f,p_e(e,n,o,f.camera),_m=qe.clone(f.viewport,_m);let d=f.pickFramebuffer.begin(_m,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),l.invertClassification=!1,l.passes.pick=!0,l.passes.offscreen=!0,s?l.tilesetPassState=Vat:l.tilesetPassState=cq,c.update(l),t.updateEnvironment(),t.updateAndExecuteCommands(d,lq),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(_m);if(t.context.depthTexture){let m=f.frustumCommandsList.length;for(let x=0;x<m;++x){let T=e.getPickDepth(t,x).getDepth(a,0,0);if(u(T)&&T>0&&T<1){let A=f.frustumCommandsList[x],C=A.near*(x!==0?t.opaqueFrustumNearOffset:1),S=A.far,w=C+T*(S-C);p=Cn.getPoint(n,w);break}}}if(t.view=t.defaultView,a.endFrame(),u(g)||u(p))return{object:g,position:p,exclude:!u(p)&&r||oct(g,i)}}function g_e(e,t,n,i,o,r,s,a){return m_e(i,function(){return rct(e,t,n,o,r,s,a)})}function rE(e,t,n,i,o,r,s){let a=g_e(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function y_e(e,t,n,i,o,r,s,a){return g_e(e,t,n,i,o,r,s,a)}function aV(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}pa.prototype.pickFromRay=function(e,t,n,i){return rE(this,e,t,n,i,!1,!1)};pa.prototype.drillPickFromRay=function(e,t,n,i,o){return y_e(this,e,t,n,i,o,!1,!1)};pa.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=Cn.clone(t),n=u(n)?n.slice():n,aV(e,sV(o,e,t,n,i,function(){return rE(o,e,t,n,i,!1,!0)}))};pa.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=Cn.clone(t),i=u(i)?i.slice():i,aV(e,sV(r,e,t,i,o,function(){return y_e(r,e,t,n,i,o,!1,!0)}))};var sct=new h,act=new h,cct=new Cn,x_e=new fe;function uq(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=li._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,act),s=fe.toCartesian(t,i,sct),a=cct;a.origin=s,a.direction=r;let c=new Cn;return Cn.getPoint(a,o,c.origin),h.negate(r,c.direction),c}function b_e(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=fe.fromCartesian(t,i,x_e);return uq(e,o)}function T_e(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid;return fe.fromCartesian(t,i,x_e).height}function lct(e,t,n,i,o){let r=uq(t,n);return sV(e,t,r,i,o,function(){let s=rE(e,t,r,i,o,!0,!0);if(u(s))return T_e(t,s.position)})}function uct(e,t,n,i,o,r){let s=b_e(t,n);return sV(e,t,s,i,o,function(){let a=rE(e,t,s,i,o,!0,!0);if(u(a))return h.clone(a.position,r)})}pa.prototype.sampleHeight=function(e,t,n,i){let o=uq(e,t),r=rE(this,e,o,n,i,!0,!1);if(u(r))return T_e(e,r.position)};pa.prototype.clampToHeight=function(e,t,n,i,o){let r=b_e(e,t),s=rE(this,e,r,n,i,!0,!1);if(u(s))return h.clone(s.position,o)};pa.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=lct(this,e,t[s],n,i);return aV(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};pa.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=uct(this,e,t[s],n,i,t[s]);return aV(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};pa.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var cV=pa;var lV=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- #ifdef AUTO_EXPOSURE
- uniform sampler2D autoExposure;
- #endif
- void main()
- {
- vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
- vec3 color = fragmentColor.rgb;
- #ifdef AUTO_EXPOSURE
- color /= texture(autoExposure, vec2(0.5)).r;
- #endif
- color = czm_acesTonemapping(color);
- color = czm_inverseGamma(color);
- out_FragColor = vec4(color, fragmentColor.a);
- }
- `;var uV=`uniform sampler2D randomTexture;
- uniform sampler2D depthTexture;
- uniform float intensity;
- uniform float bias;
- uniform float lengthCap;
- uniform float stepSize;
- uniform float frustumLength;
- in vec2 v_textureCoordinates;
- vec4 clipToEye(vec2 uv, float depth)
- {
- vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));
- vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0);
- posEC = posEC / posEC.w;
- return posEC;
- }
- vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize)
- {
- vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU);
- vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD);
- vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL);
- vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR);
- vec3 up = posInCamera.xyz - posInCameraUp.xyz;
- vec3 down = posInCameraDown.xyz - posInCamera.xyz;
- vec3 left = posInCamera.xyz - posInCameraLeft.xyz;
- vec3 right = posInCameraRight.xyz - posInCamera.xyz;
- vec3 DX = length(left) < length(right) ? left : right;
- vec3 DY = length(up) < length(down) ? up : down;
- return normalize(cross(DY, DX));
- }
- void main(void)
- {
- float depth = czm_readDepth(depthTexture, v_textureCoordinates);
- vec4 posInCamera = clipToEye(v_textureCoordinates, depth);
- if (posInCamera.z > frustumLength)
- {
- out_FragColor = vec4(1.0);
- return;
- }
- vec2 pixelSize = czm_pixelRatio / czm_viewport.zw;
- float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y));
- float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y));
- float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0));
- float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0));
- vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize);
- float ao = 0.0;
- vec2 sampleDirection = vec2(1.0, 0.0);
- float gapAngle = 90.0 * czm_radiansPerDegree;
-
- float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x;
-
- for (int i = 0; i < 4; i++)
- {
- float newGapAngle = gapAngle * (float(i) + randomVal);
- float cosVal = cos(newGapAngle);
- float sinVal = sin(newGapAngle);
-
- vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y);
- float localAO = 0.0;
- float localStepSize = stepSize;
-
- for (int j = 0; j < 6; j++)
- {
- vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize;
-
- if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0)
- {
- break;
- }
- float stepDepthInfo = czm_readDepth(depthTexture, newCoords);
- vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo);
- vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz;
- float len = length(diffVec);
- if (len > lengthCap)
- {
- break;
- }
- float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 );
- float weight = len / lengthCap;
- weight = 1.0 - weight * weight;
- if (dotVal < bias)
- {
- dotVal = 0.0;
- }
- localAO = max(localAO, dotVal * weight);
- localStepSize += stepSize;
- }
- ao += localAO;
- }
- ao /= 4.0;
- ao = 1.0 - clamp(ao, 0.0, 1.0);
- ao = pow(ao, intensity);
- out_FragColor = vec4(vec3(ao), 1.0);
- }
- `;var fV=`uniform sampler2D colorTexture;
- uniform sampler2D ambientOcclusionTexture;
- uniform bool ambientOcclusionOnly;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec4 color = texture(colorTexture, v_textureCoordinates);
- vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates);
- out_FragColor = ambientOcclusionOnly ? ao : ao * color;
- }
- `;var dV=`uniform sampler2D colorTexture;
- uniform float gradations;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
- #ifdef CZM_SELECTED_FEATURE
- if (czm_selected()) {
- out_FragColor = vec4(rgb, 1.0);
- return;
- }
- #endif
- float luminance = czm_luminance(rgb);
- float darkness = luminance * gradations;
- darkness = (darkness - fract(darkness)) / gradations;
- out_FragColor = vec4(vec3(darkness), 1.0);
- }
- `;var hV=`uniform sampler2D colorTexture;
- uniform sampler2D bloomTexture;
- uniform bool glowOnly;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec4 color = texture(colorTexture, v_textureCoordinates);
- #ifdef CZM_SELECTED_FEATURE
- if (czm_selected()) {
- out_FragColor = color;
- return;
- }
- #endif
- vec4 bloom = texture(bloomTexture, v_textureCoordinates);
- out_FragColor = glowOnly ? bloom : bloom + color;
- }
- `;var mV=`uniform sampler2D colorTexture;
- uniform float brightness;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
- vec3 target = vec3(0.0);
- out_FragColor = vec4(mix(target, rgb, brightness), 1.0);
- }
- `;var pV=`uniform sampler2D colorTexture;
- uniform float contrast;
- uniform float brightness;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz;
- sceneColor = czm_RGBToHSB(sceneColor);
- sceneColor.z += brightness;
- sceneColor = czm_HSBToRGB(sceneColor);
- float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast));
- sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5);
- out_FragColor = vec4(sceneColor, 1.0);
- }
- `;var _V=`uniform sampler2D colorTexture;
- uniform sampler2D blurTexture;
- uniform sampler2D depthTexture;
- uniform float focalDistance;
- in vec2 v_textureCoordinates;
- vec4 toEye(vec2 uv, float depth)
- {
- vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));
- vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0);
- posInCamera = posInCamera / posInCamera.w;
- return posInCamera;
- }
- float computeDepthBlur(float depth)
- {
- float f;
- if (depth < focalDistance)
- {
- f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x);
- }
- else
- {
- f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance);
- f = pow(f, 0.1);
- }
- f *= f;
- f = clamp(f, 0.0, 1.0);
- return pow(f, 0.5);
- }
- void main(void)
- {
- float depth = czm_readDepth(depthTexture, v_textureCoordinates);
- vec4 posInCamera = toEye(v_textureCoordinates, depth);
- float d = computeDepthBlur(-posInCamera.z);
- out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d);
- }
- `;var gV=`uniform sampler2D depthTexture;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- float depth = czm_readDepth(depthTexture, v_textureCoordinates);
- out_FragColor = vec4(vec3(depth), 1.0);
- }
- `;var yV=`uniform sampler2D depthTexture;
- uniform float length;
- uniform vec4 color;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- float directions[3];
- directions[0] = -1.0;
- directions[1] = 0.0;
- directions[2] = 1.0;
- float scalars[3];
- scalars[0] = 3.0;
- scalars[1] = 10.0;
- scalars[2] = 3.0;
- float padx = czm_pixelRatio / czm_viewport.z;
- float pady = czm_pixelRatio / czm_viewport.w;
- #ifdef CZM_SELECTED_FEATURE
- bool selected = false;
- for (int i = 0; i < 3; ++i)
- {
- float dir = directions[i];
- selected = selected || czm_selected(vec2(-padx, dir * pady));
- selected = selected || czm_selected(vec2(padx, dir * pady));
- selected = selected || czm_selected(vec2(dir * padx, -pady));
- selected = selected || czm_selected(vec2(dir * padx, pady));
- if (selected)
- {
- break;
- }
- }
- if (!selected)
- {
- out_FragColor = vec4(color.rgb, 0.0);
- return;
- }
- #endif
- float horizEdge = 0.0;
- float vertEdge = 0.0;
- for (int i = 0; i < 3; ++i)
- {
- float dir = directions[i];
- float scale = scalars[i];
- horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale;
- horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale;
- vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale;
- vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale;
- }
- float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge);
- out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0);
- }
- `;var xV=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- #ifdef AUTO_EXPOSURE
- uniform sampler2D autoExposure;
- #endif
- void main()
- {
- vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
- vec3 color = fragmentColor.rgb;
- #ifdef AUTO_EXPOSURE
- float exposure = texture(autoExposure, vec2(0.5)).r;
- color /= exposure;
- #endif
- const float A = 0.22;
- const float B = 0.30;
- const float C = 0.10;
- const float D = 0.20;
- const float E = 0.01;
- const float F = 0.30;
- const float white = 11.2;
- vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F;
- float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F;
- c = czm_inverseGamma(c / w);
- out_FragColor = vec4(c, fragmentColor.a);
- }
- `;var bV=`in vec2 v_textureCoordinates;
- uniform sampler2D colorTexture;
- const float fxaaQualitySubpix = 0.5;
- const float fxaaQualityEdgeThreshold = 0.125;
- const float fxaaQualityEdgeThresholdMin = 0.0833;
- void main()
- {
- vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw;
- vec4 color = FxaaPixelShader(
- v_textureCoordinates,
- colorTexture,
- fxaaQualityRcpFrame,
- fxaaQualitySubpix,
- fxaaQualityEdgeThreshold,
- fxaaQualityEdgeThresholdMin);
- float alpha = texture(colorTexture, v_textureCoordinates).a;
- out_FragColor = vec4(color.rgb, alpha);
- }
- `;var Bx=`#define SAMPLES 8
- uniform float delta;
- uniform float sigma;
- uniform float direction;
- uniform sampler2D colorTexture;
- #ifdef USE_STEP_SIZE
- uniform float stepSize;
- #else
- uniform vec2 step;
- #endif
- in vec2 v_textureCoordinates;
- void main()
- {
- vec2 st = v_textureCoordinates;
- vec2 dir = vec2(1.0 - direction, direction);
- #ifdef USE_STEP_SIZE
- vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw));
- #else
- vec2 step = step;
- #endif
- vec3 g;
- g.x = 1.0 / (sqrt(czm_twoPi) * sigma);
- g.y = exp((-0.5 * delta * delta) / (sigma * sigma));
- g.z = g.y * g.y;
- vec4 result = texture(colorTexture, st) * g.x;
- for (int i = 1; i < SAMPLES; ++i)
- {
- g.xy *= g.yz;
- vec2 offset = float(i) * dir * step;
- result += texture(colorTexture, st - offset) * g.x;
- result += texture(colorTexture, st + offset) * g.x;
- }
- out_FragColor = result;
- }
- `;var TV=`uniform sampler2D colorTexture;
- uniform sampler2D dirtTexture;
- uniform sampler2D starTexture;
- uniform vec2 dirtTextureDimensions;
- uniform float distortion;
- uniform float ghostDispersal;
- uniform float haloWidth;
- uniform float dirtAmount;
- uniform float earthRadius;
- uniform float intensity;
- in vec2 v_textureCoordinates;
- #define DISTANCE_TO_SPACE 6500000.0
- vec4 getNDCFromWC(vec3 WC, float earthRadius)
- {
- vec4 positionEC = czm_view * vec4(WC, 1.0);
- positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0);
- vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
- return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0);
- }
- float isInEarth(vec2 texcoord, vec2 sceneSize)
- {
- vec2 NDC = texcoord * 2.0 - 1.0;
- vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0);
- vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5);
- NDC.xy -= earthPosSC.xy;
- float X = abs(NDC.x) * sceneSize.x;
- float Y = abs(NDC.y) * sceneSize.y;
- return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0));
- }
- vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace)
- {
- vec2 sceneSize = czm_viewport.zw;
- vec3 color;
- if(isSpace)
- {
- color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r;
- color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g;
- color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b;
- }
- else
- {
- color.r = texture(tex, texcoord + direction * distortion.r).r;
- color.g = texture(tex, texcoord + direction * distortion.g).g;
- color.b = texture(tex, texcoord + direction * distortion.b).b;
- }
- return vec4(clamp(color, 0.0, 1.0), 0.0);
- }
- void main(void)
- {
- vec4 originalColor = texture(colorTexture, v_textureCoordinates);
- vec3 rgb = originalColor.rgb;
- bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE;
-
- vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0);
- vec4 sunPositionEC = czm_view * sunPos;
- vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC);
- sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0);
-
- if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1)))
- {
-
-
- out_FragColor = originalColor;
- return;
- }
- vec2 texcoord = vec2(1.0) - v_textureCoordinates;
- vec2 pixelSize = czm_pixelRatio / czm_viewport.zw;
- vec2 invPixelSize = 1.0 / pixelSize;
- vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion);
-
- vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal;
- vec3 direction = normalize(vec3(ghostVec, 0.0));
-
- vec4 result = vec4(0.0);
- vec4 ghost = vec4(0.0);
- for (int i = 0; i < 4; ++i)
- {
- vec2 offset = fract(texcoord + ghostVec * float(i));
-
- ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace);
- }
- result += ghost;
-
- vec2 haloVec = normalize(ghostVec) * haloWidth;
- float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5));
- weightForHalo = pow(1.0 - weightForHalo, 5.0);
- result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5;
-
- vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions;
- if (dirtTexCoords.x > 1.0)
- {
- dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x);
- }
- if (dirtTexCoords.y > 1.0)
- {
- dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y);
- }
- result += dirtAmount * texture(dirtTexture, dirtTexCoords);
-
-
- float camrot = czm_view[0].z + czm_view[1].y;
- float cosValue = cos(camrot);
- float sinValue = sin(camrot);
- mat3 rotation = mat3(
- cosValue, -sinValue, 0.0,
- sinValue, cosValue, 0.0,
- 0.0, 0.0, 1.0
- );
- vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0);
- vec3 st2 = vec3((rotation * st1).xy, 1.0);
- vec3 st3 = st2 * 0.5 + vec3(0.5);
- vec2 lensStarTexcoord = st3.xy;
- float weightForLensFlare = length(vec3(sunPos.xy, 0.0));
- float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0);
- if (!isSpace)
- {
- result *= oneMinusWeightForLensFlare * intensity * 0.2;
- }
- else
- {
- result *= oneMinusWeightForLensFlare * intensity;
- result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0;
- }
- result += texture(colorTexture, v_textureCoordinates);
- out_FragColor = result;
- }
- `;var AV=`uniform sampler2D colorTexture;
- uniform vec3 white;
- in vec2 v_textureCoordinates;
- #ifdef AUTO_EXPOSURE
- uniform sampler2D autoExposure;
- #endif
- void main()
- {
- vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
- vec3 color = fragmentColor.rgb;
- #ifdef AUTO_EXPOSURE
- float exposure = texture(autoExposure, vec2(0.5)).r;
- color /= exposure;
- #endif
- color = (color * (1.0 + color / white)) / (1.0 + color);
- color = czm_inverseGamma(color);
- out_FragColor = vec4(color, fragmentColor.a);
- }
- `;var CV=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- float rand(vec2 co)
- {
- return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453);
- }
- void main(void)
- {
- float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1;
- vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb;
- vec3 green = vec3(0.0, 1.0, 0.0);
- out_FragColor = vec4((noiseValue + rgb) * green, 1.0);
- }
- `;var EV=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- #ifdef AUTO_EXPOSURE
- uniform sampler2D autoExposure;
- #endif
- void main()
- {
- vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
- vec3 color = fragmentColor.rgb;
- #ifdef AUTO_EXPOSURE
- float exposure = texture(autoExposure, vec2(0.5)).r;
- color /= exposure;
- #endif
- color = color / (1.0 + color);
- color = czm_inverseGamma(color);
- out_FragColor = vec4(color, fragmentColor.a);
- }
- `;var SV=`uniform sampler2D colorTexture;
- uniform sampler2D silhouetteTexture;
- in vec2 v_textureCoordinates;
- void main(void)
- {
- vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates);
- vec4 color = texture(colorTexture, v_textureCoordinates);
- out_FragColor = mix(color, silhouetteColor, silhouetteColor.a);
- }
- `;/**
- * @license
- * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of NVIDIA CORPORATION nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */var wV=`
- #if (FXAA_QUALITY_PRESET == 10)
- #define FXAA_QUALITY_PS 3
- #define FXAA_QUALITY_P0 1.5
- #define FXAA_QUALITY_P1 3.0
- #define FXAA_QUALITY_P2 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 11)
- #define FXAA_QUALITY_PS 4
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 3.0
- #define FXAA_QUALITY_P3 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 12)
- #define FXAA_QUALITY_PS 5
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 4.0
- #define FXAA_QUALITY_P4 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 13)
- #define FXAA_QUALITY_PS 6
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 4.0
- #define FXAA_QUALITY_P5 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 14)
- #define FXAA_QUALITY_PS 7
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 4.0
- #define FXAA_QUALITY_P6 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 15)
- #define FXAA_QUALITY_PS 8
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 4.0
- #define FXAA_QUALITY_P7 12.0
- #endif
- #if (FXAA_QUALITY_PRESET == 20)
- #define FXAA_QUALITY_PS 3
- #define FXAA_QUALITY_P0 1.5
- #define FXAA_QUALITY_P1 2.0
- #define FXAA_QUALITY_P2 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 21)
- #define FXAA_QUALITY_PS 4
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 22)
- #define FXAA_QUALITY_PS 5
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 23)
- #define FXAA_QUALITY_PS 6
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 24)
- #define FXAA_QUALITY_PS 7
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 3.0
- #define FXAA_QUALITY_P6 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 25)
- #define FXAA_QUALITY_PS 8
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 4.0
- #define FXAA_QUALITY_P7 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 26)
- #define FXAA_QUALITY_PS 9
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 2.0
- #define FXAA_QUALITY_P7 4.0
- #define FXAA_QUALITY_P8 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 27)
- #define FXAA_QUALITY_PS 10
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 2.0
- #define FXAA_QUALITY_P7 2.0
- #define FXAA_QUALITY_P8 4.0
- #define FXAA_QUALITY_P9 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 28)
- #define FXAA_QUALITY_PS 11
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 2.0
- #define FXAA_QUALITY_P7 2.0
- #define FXAA_QUALITY_P8 2.0
- #define FXAA_QUALITY_P9 4.0
- #define FXAA_QUALITY_P10 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 29)
- #define FXAA_QUALITY_PS 12
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.5
- #define FXAA_QUALITY_P2 2.0
- #define FXAA_QUALITY_P3 2.0
- #define FXAA_QUALITY_P4 2.0
- #define FXAA_QUALITY_P5 2.0
- #define FXAA_QUALITY_P6 2.0
- #define FXAA_QUALITY_P7 2.0
- #define FXAA_QUALITY_P8 2.0
- #define FXAA_QUALITY_P9 2.0
- #define FXAA_QUALITY_P10 4.0
- #define FXAA_QUALITY_P11 8.0
- #endif
- #if (FXAA_QUALITY_PRESET == 39)
- #define FXAA_QUALITY_PS 12
- #define FXAA_QUALITY_P0 1.0
- #define FXAA_QUALITY_P1 1.0
- #define FXAA_QUALITY_P2 1.0
- #define FXAA_QUALITY_P3 1.0
- #define FXAA_QUALITY_P4 1.0
- #define FXAA_QUALITY_P5 1.5
- #define FXAA_QUALITY_P6 2.0
- #define FXAA_QUALITY_P7 2.0
- #define FXAA_QUALITY_P8 2.0
- #define FXAA_QUALITY_P9 2.0
- #define FXAA_QUALITY_P10 4.0
- #define FXAA_QUALITY_P11 8.0
- #endif
- #define FxaaBool bool
- #define FxaaFloat float
- #define FxaaFloat2 vec2
- #define FxaaFloat3 vec3
- #define FxaaFloat4 vec4
- #define FxaaHalf float
- #define FxaaHalf2 vec2
- #define FxaaHalf3 vec3
- #define FxaaHalf4 vec4
- #define FxaaInt2 vec2
- #define FxaaTex sampler2D
- #define FxaaSat(x) clamp(x, 0.0, 1.0)
- #define FxaaTexTop(t, p) texture(t, p)
- #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r))
- FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }
- FxaaFloat4 FxaaPixelShader(
-
-
-
- FxaaFloat2 pos,
-
-
-
-
-
- FxaaTex tex,
-
-
-
-
-
- FxaaFloat2 fxaaQualityRcpFrame,
-
-
-
-
-
-
-
-
-
-
-
- FxaaFloat fxaaQualitySubpix,
-
-
-
-
-
-
-
-
-
-
- FxaaFloat fxaaQualityEdgeThreshold,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FxaaFloat fxaaQualityEdgeThresholdMin
- ) {
- FxaaFloat2 posM;
- posM.x = pos.x;
- posM.y = pos.y;
- FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);
- #define lumaM rgbyM.y
- FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));
- FxaaFloat maxSM = max(lumaS, lumaM);
- FxaaFloat minSM = min(lumaS, lumaM);
- FxaaFloat maxESM = max(lumaE, maxSM);
- FxaaFloat minESM = min(lumaE, minSM);
- FxaaFloat maxWN = max(lumaN, lumaW);
- FxaaFloat minWN = min(lumaN, lumaW);
- FxaaFloat rangeMax = max(maxWN, maxESM);
- FxaaFloat rangeMin = min(minWN, minESM);
- FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;
- FxaaFloat range = rangeMax - rangeMin;
- FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);
- FxaaBool earlyExit = range < rangeMaxClamped;
- if(earlyExit)
- return rgbyM;
- FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));
- FxaaFloat lumaNS = lumaN + lumaS;
- FxaaFloat lumaWE = lumaW + lumaE;
- FxaaFloat subpixRcpRange = 1.0/range;
- FxaaFloat subpixNSWE = lumaNS + lumaWE;
- FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;
- FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;
- FxaaFloat lumaNESE = lumaNE + lumaSE;
- FxaaFloat lumaNWNE = lumaNW + lumaNE;
- FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;
- FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;
- FxaaFloat lumaNWSW = lumaNW + lumaSW;
- FxaaFloat lumaSWSE = lumaSW + lumaSE;
- FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
- FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
- FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;
- FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;
- FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;
- FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;
- FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;
- FxaaFloat lengthSign = fxaaQualityRcpFrame.x;
- FxaaBool horzSpan = edgeHorz >= edgeVert;
- FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;
- if(!horzSpan) lumaN = lumaW;
- if(!horzSpan) lumaS = lumaE;
- if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;
- FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;
- FxaaFloat gradientN = lumaN - lumaM;
- FxaaFloat gradientS = lumaS - lumaM;
- FxaaFloat lumaNN = lumaN + lumaM;
- FxaaFloat lumaSS = lumaS + lumaM;
- FxaaBool pairN = abs(gradientN) >= abs(gradientS);
- FxaaFloat gradient = max(abs(gradientN), abs(gradientS));
- if(pairN) lengthSign = -lengthSign;
- FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);
- FxaaFloat2 posB;
- posB.x = posM.x;
- posB.y = posM.y;
- FxaaFloat2 offNP;
- offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;
- offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;
- if(!horzSpan) posB.x += lengthSign * 0.5;
- if( horzSpan) posB.y += lengthSign * 0.5;
- FxaaFloat2 posN;
- posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;
- posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;
- FxaaFloat2 posP;
- posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;
- posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;
- FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;
- FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));
- FxaaFloat subpixE = subpixC * subpixC;
- FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));
- if(!pairN) lumaNN = lumaSS;
- FxaaFloat gradientScaled = gradient * 1.0/4.0;
- FxaaFloat lumaMM = lumaM - lumaNN * 0.5;
- FxaaFloat subpixF = subpixD * subpixE;
- FxaaBool lumaMLTZero = lumaMM < 0.0;
- lumaEndN -= lumaNN * 0.5;
- lumaEndP -= lumaNN * 0.5;
- FxaaBool doneN = abs(lumaEndN) >= gradientScaled;
- FxaaBool doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;
- FxaaBool doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;
- #if (FXAA_QUALITY_PS > 3)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;
- #if (FXAA_QUALITY_PS > 4)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;
- #if (FXAA_QUALITY_PS > 5)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;
- #if (FXAA_QUALITY_PS > 6)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;
- #if (FXAA_QUALITY_PS > 7)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;
- #if (FXAA_QUALITY_PS > 8)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;
- #if (FXAA_QUALITY_PS > 9)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;
- #if (FXAA_QUALITY_PS > 10)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;
- #if (FXAA_QUALITY_PS > 11)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;
- #if (FXAA_QUALITY_PS > 12)
- if(doneNP) {
- if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
- if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
- if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
- if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
- doneN = abs(lumaEndN) >= gradientScaled;
- doneP = abs(lumaEndP) >= gradientScaled;
- if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;
- if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;
- doneNP = (!doneN) || (!doneP);
- if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;
- if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- #endif
- }
- FxaaFloat dstN = posM.x - posN.x;
- FxaaFloat dstP = posP.x - posM.x;
- if(!horzSpan) dstN = posM.y - posN.y;
- if(!horzSpan) dstP = posP.y - posM.y;
- FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;
- FxaaFloat spanLength = (dstP + dstN);
- FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;
- FxaaFloat spanLengthRcp = 1.0/spanLength;
- FxaaBool directionN = dstN < dstP;
- FxaaFloat dst = min(dstN, dstP);
- FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;
- FxaaFloat subpixG = subpixF * subpixF;
- FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
- FxaaFloat subpixH = subpixG * fxaaQualitySubpix;
- FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
- FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);
- if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
- if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
- return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);
- }
- `;function kx(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new di,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new V,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(kx.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(u(e))return e[e.length-1].getColorTexture(0)}}});function A_e(e){let t=e._framebuffers;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function fct(e,t){A_e(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new di,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function C_e(e){let t=e._commands;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function dct(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function hct(e,t){let n=`uniform sampler2D colorTexture;
- in vec2 v_textureCoordinates;
- float sampleTexture(vec2 offset) {
- `;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset);
- return czm_luminance(color.rgb);
- `:n+=` return texture(colorTexture, v_textureCoordinates + offset).r;
- `,n+=`}
- `,n+=`uniform vec2 colorTextureDimensions;
- uniform vec2 minMaxLuminance;
- uniform sampler2D previousLuminance;
- void main() {
- float color = 0.0;
- float xStep = 1.0 / colorTextureDimensions.x;
- float yStep = 1.0 / colorTextureDimensions.y;
- int count = 0;
- for (int i = 0; i < 3; ++i) {
- for (int j = 0; j < 3; ++j) {
- vec2 offset;
- offset.x = -xStep + float(i) * xStep;
- offset.y = -yStep + float(j) * yStep;
- if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) {
- continue;
- }
- color += sampleTexture(offset);
- ++count;
- }
- }
- if (count > 0) {
- color /= float(count);
- }
- `,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r;
- color = clamp(color, minMaxLuminance.x, minMaxLuminance.y);
- color = previous + (color - previous) / (60.0 * 1.5);
- color = clamp(color, minMaxLuminance.x, minMaxLuminance.y);
- `),n+=` out_FragColor = vec4(color);
- }
- `,n}function mct(e,t){C_e(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(hct(r,i),{framebuffer:n[r].framebuffer,uniformMap:dct(e,r)});e._commands=o}kx.prototype.clear=function(e){let t=this._framebuffers;if(!u(t))return;let n=this._clearCommand;u(n)||(n=this._clearCommand=new ei({color:new z(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};kx.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,fct(this,e),mct(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};kx.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!u(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};kx.prototype.isDestroyed=function(){return!1};kx.prototype.destroy=function(){return A_e(this),C_e(this),le(this)};var vV=kx;var pct={NEAREST:0,LINEAR:1},Tf=pct;function Ux(e){e=y(e,y.EMPTY_OBJECT);let t=e.fragmentShader,n=y(e.textureScale,1),i=y(e.pixelFormat,rt.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,Tf.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ye.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,z.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new sc;o.scissorTest={enabled:!0,rectangle:u(e.scissorRectangle)?qe.clone(e.scissorRectangle):new qe},this._passState=o,this._ready=!1;let r=e.name;u(r)||(r=Gn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(Ux.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(u(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(u(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var _ct=/uniform\s+sampler2D\s+depthTexture/g;Ux.prototype._isSupported=function(e){return!_ct.test(this._fragmentShader)||e.depthTexture};function gct(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];u(a)&&a!==r&&a instanceof Pt&&!u(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Pt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function yct(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function xct(e,t){return function(){let n=e[t]();if(u(n))return n.dimensions}}function bct(e){if(u(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i)if(i.hasOwnProperty(r)){typeof i[r]!="function"?(t[r]=yct(e,r),n[r]=gct(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Pt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=xct(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=gt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function Tct(e,t){if(u(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(u(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE
- uniform sampler2D czm_idTexture;
- uniform sampler2D czm_selectedIdTexture;
- uniform float czm_selectedIdTextureStep;
- in vec2 v_textureCoordinates;
- bool czm_selected(vec2 offset)
- {
- bool selected = false;
- vec4 id = texture(czm_idTexture, v_textureCoordinates + offset);
- for (int i = 0; i < ${o}; ++i)
- {
- vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5));
- if (all(equal(id, selectedId)))
- {
- return true;
- }
- }
- return false;
- }
- bool czm_selected()
- {
- return czm_selected(vec2(0.0));
- }
- ${n}`}let i=new ze({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Act(e){let t=e._sampleMode,n,i;t===Tf.LINEAR?(n=an.LINEAR,i=Ci.LINEAR):(n=an.NEAREST,i=Ci.NEAREST);let o=e._sampler;(!u(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new ln({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Cct(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Ect(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function Sct(e,t){let n,i,o,r=e._texturesToRelease,s=r.length;for(n=0;n<s;++n)i=r[n],i=i&&i.destroy();r.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let d=a[n];o=d.name;let p=d.source;e._actualUniforms[o]=new Pt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!u(e._texturePromise)){e._ready=!0;return}if(c.length===0||u(e._texturePromise))return;s=c.length;let l=e._uniforms,f=[];for(n=0;n<s;++n){o=c[n];let d=l[o],p=e._textureCache.getStageByName(d);if(u(p))e._actualUniforms[o]=Ect(e,d);else if(typeof d=="string"){let g=new ve({url:d});f.push(g.fetchImage().then(Cct(e,o)))}else e._texturesToCreate.push({name:o,source:d})}c.length=0,f.length>0?(e._ready=!1,e._texturePromise=Promise.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function E_e(e){u(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!u(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof Pt&&(u(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function wct(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function vct(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!u(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],u(o.pickIds)?r+=o.pickIds.length:u(o.pickId)&&++r;if(s===0||r===0){let f=new Uint8Array(4);f[0]=255,f[1]=255,f[2]=255,f[3]=255,e._selectedIdTexture=new Pt({context:t,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:ln.NEAREST});return}let a,c=0,l=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],u(o.pickIds)){let f=o.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,l[c]=z.floatToByte(a.red),l[c+1]=z.floatToByte(a.green),l[c+2]=z.floatToByte(a.blue),l[c+3]=z.floatToByte(a.alpha),c+=4}else u(o.pickId)&&(a=o.pickId.color,l[c]=z.floatToByte(a.red),l[c+1]=z.floatToByte(a.green),l[c+2]=z.floatToByte(a.blue),l[c+3]=z.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Pt({context:t,pixelFormat:rt.RGBA,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:l,width:r,height:1},sampler:ln.NEAREST})}Ux.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&E_e(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=wct(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(this._parentSelected)?this._parentSelected.length:0,vct(this,e),bct(this),Sct(this,e),Tct(this,e),Act(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!u(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!u(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new qe(0,0,i.width,i.height)}))),this._command.renderState=o};Ux.prototype.execute=function(e,t,n,i){if(!u(this._command)||!u(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,ln.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;u(o)&&(o.context=e),this._command.execute(e,o)};Ux.prototype.isDestroyed=function(){return!1};Ux.prototype.destroy=function(){return E_e(this),le(this)};var _o=Ux;function Vx(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;u(t)||(t=Gn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(Vx.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});Vx.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};Vx.prototype.get=function(e){return this._stages[e]};function Dct(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}Vx.prototype.update=function(e,t){this._selectedDirty=Dct(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};Vx.prototype.isDestroyed=function(){return!1};Vx.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return le(this)};var xl=Vx;var Sr={};function DV(e){let o=`#define USE_STEP_SIZE
- ${Bx}`,r=new _o({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Tf.LINEAR}),s=new _o({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Tf.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let l=r.uniforms,f=s.uniforms;l.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let l=r.uniforms,f=s.uniforms;l.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let l=r.uniforms,f=s.uniforms;l.stepSize=f.stepSize=c}}}),new xl({name:e,stages:[r,s],uniforms:a})}Sr.createBlurStage=function(){return DV("czm_blur")};Sr.createDepthOfFieldStage=function(){let e=DV("czm_depth_of_field_blur"),t=new _o({name:"czm_depth_of_field_composite",fragmentShader:_V,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new xl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Sr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Sr.createEdgeDetectionStage=function(){let e=Gn();return new _o({name:`czm_edge_detection_${e}`,fragmentShader:yV,uniforms:{length:.25,color:z.clone(z.BLACK)}})};Sr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function Ict(e){if(!u(e))return Sr.createEdgeDetectionStage();let t=new xl({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a};
- `,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates);
- if (edge${a}.a > 0.0)
- {
- color = edge${a};
- break;
- }
- `,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates;
- void main() {
- vec4 color = vec4(0.0);
- for (int i = 0; i < ${e.length}; i++)
- {
- ${o} }
- out_FragColor = color;
- }
- `,s=new _o({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new xl({name:"czm_edge_detection_composite",stages:[t,s]})}Sr.createSilhouetteStage=function(e){let t=Ict(e),n=new _o({name:"czm_silhouette_color_edges",fragmentShader:SV,uniforms:{silhouetteTexture:t.name}});return new xl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Sr.isSilhouetteSupported=function(e){return e.context.depthTexture};Sr.createBloomStage=function(){let e=new _o({name:"czm_bloom_contrast_bias",fragmentShader:pV,uniforms:{contrast:128,brightness:-.3}}),t=DV("czm_bloom_blur"),n=new xl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new _o({name:"czm_bloom_generate_composite",fragmentShader:hV,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new xl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Sr.createAmbientOcclusionStage=function(){let e=new _o({name:"czm_ambient_occlusion_generate",fragmentShader:uV,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=DV("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new xl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new _o({name:"czm_ambient_occlusion_composite",fragmentShader:fV,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new xl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Sr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var Pct=`#define FXAA_QUALITY_PRESET 39
- ${wV}
- ${bV}`;Sr.createFXAAStage=function(){return new _o({name:"czm_FXAA",fragmentShader:Pct,sampleMode:Tf.LINEAR})};Sr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
- `:"";return t+=lV,new _o({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Sr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
- `:"";return t+=xV,new _o({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Sr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
- `:"";return t+=EV,new _o({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Sr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
- `:"";return t+=AV,new _o({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:z.WHITE,autoExposure:void 0}})};Sr.createAutoExposureStage=function(){return new vV};Sr.createBlackAndWhiteStage=function(){return new _o({name:"czm_black_and_white",fragmentShader:dV,uniforms:{gradations:5}})};Sr.createBrightnessStage=function(){return new _o({name:"czm_brightness",fragmentShader:mV,uniforms:{brightness:.5}})};Sr.createNightVisionStage=function(){return new _o({name:"czm_night_vision",fragmentShader:CV})};Sr.createDepthViewStage=function(){return new _o({name:"czm_depth_view",fragmentShader:gV})};Sr.createLensFlareStage=function(){return new _o({name:"czm_lens_flare",fragmentShader:TV,uniforms:{dirtTexture:$t("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:$t("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ie.WGS84.maximumRadius}})};var zd=Sr;function Yp(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function jD(e){for(;u(e.length);)e=e.get(e.length-1);return e.name}function fq(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(u(o)){let a=e.getStageByName(o);r[jD(a)]=!0}let s=i.uniforms;if(u(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let l=0;l<c;++l){let f=s[a[l]];if(typeof f=="string"){let d=e.getStageByName(f);u(d)&&(r[jD(d)]=!0)}}}return i.name}function WD(e,t,n,i,o){if(u(i.enabled)&&!i.enabled||u(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!u(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);u(p.length)?a=WD(e,t,n,p,o):a=fq(e,t,n,p,o),s&&(o=a)}let l,f;if(s)for(l=1;l<c;++l)f=jD(i.get(l)),u(n[f])||(n[f]={}),n[f][r]=!0;else for(l=1;l<c;++l){f=jD(i.get(l));let d=n[f];for(let p=0;p<l;++p)d[jD(i.get(p))]=!0}return a}function Oct(e,t){let n={};if(u(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=WD(e,t,n,i,void 0);a=WD(e,t,n,o,a),a=fq(e,t,n,r,a),a=WD(e,t,n,e,a),fq(e,t,n,s,a)}else WD(e,t,n,e,void 0);return n}function Rct(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,l=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!z.equals(l,d.clearColor))continue;let m=d.stages,x=m.length,b=!1;for(let T=0;T<x;++T)if(n[m[T]]){b=!0;break}if(!b)break}return u(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:l,stages:[t],buffer:new di({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function Mct(e,t){let n=Oct(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=Rct(e,i,n[i]))}function dq(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function Lct(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,l=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(l,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),l=d,f=d),a.buffer.update(t,l,f),a.clear=new ei({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}Yp.prototype.updateDependencies=function(){this._updateDependencies=!0};Yp.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=u(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=u(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=u(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=u(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!u(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(dq(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&Mct(this,e);let c=e.drawingBufferWidth,l=e.drawingBufferHeight,f=this._width!==c||this._height!==l;!n&&!f||(this._width=c,this._height=l,this._updateDependencies=!1,dq(this),Lct(this,e))};Yp.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};Yp.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};Yp.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};Yp.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(u(t))return t.buffer.framebuffer};Yp.prototype.isDestroyed=function(){return!1};Yp.prototype.destroy=function(){return dq(this),le(this)};var sE=Yp;var qD={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===qD.REINHARD||e===qD.MODIFIED_REINHARD||e===qD.FILMIC||e===qD.ACES}},zx=Object.freeze(qD);var hq=[];function Oc(){let e=zd.createFXAAStage(),t=zd.createAmbientOcclusionStage(),n=zd.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=zd.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=zx.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new sE(this),r={},s=hq;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let l=c.length;if(u(l))for(let f=0;f<l;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(Oc.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return mq(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(u(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!u(t))continue;if(u(t.selected))return!0;let n=t.length;if(u(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;u(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case zx.REINHARD:n=zd.createReinhardTonemappingStage(t);break;case zx.MODIFIED_REINHARD:n=zd.createModifiedReinhardTonemappingStage(t);break;case zx.FILMIC:n=zd.createFilmicTonemappingStage(t);break;default:n=zd.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,u(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function mq(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._stages=t}Oc.prototype.add=function(e){let t=this._stageNames,n=hq;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(u(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};Oc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=hq;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(u(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};Oc.prototype.contains=function(e){return u(e)&&u(e._index)&&e._textureCache===this._textureCache};Oc.prototype.get=function(e){return mq(this),this._stages[e]};Oc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};Oc.prototype.getStageByName=function(e){return this._stageNames[e]};Oc.prototype.update=function(e,t,n){mq(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,l=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[l++]=c);o.length=l;let f=l!==i.length;if(!f){for(a=0;a<l;++a)if(o[a]!==i[a]){f=!0;break}}let d=this._ao,p=this._bloom,g=this._autoExposure,m=this._tonemapping,x=this._fxaa;m.enabled=n;let b=d.enabled&&d._isSupported(e),T=p.enabled&&p._isSupported(e),A=m.enabled&&m._isSupported(e),C=x.enabled&&x._isSupported(e);if((f||this._textureCacheDirty||b!==this._aoEnabled||T!==this._bloomEnabled||A!==this._tonemappingEnabled||C!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=b,this._bloomEnabled=T,this._tonemappingEnabled=A,this._fxaaEnabled=C,this._textureCacheDirty=!1),u(this._randomTexture)&&!b&&(this._randomTexture.destroy(),this._randomTexture=void 0),!u(this._randomTexture)&&b){s=256*256*3;let S=new Uint8Array(s);for(a=0;a<s;a+=3)S[a]=Math.floor(Math.random()*255);this._randomTexture=new Pt({context:e,pixelFormat:rt.RGB,pixelDatatype:Ye.UNSIGNED_BYTE,source:{arrayBufferView:S,width:256,height:256},sampler:new ln({wrapS:vn.REPEAT,wrapT:vn.REPEAT,minificationFilter:an.NEAREST,magnificationFilter:Ci.NEAREST})})}for(this._textureCache.update(e),x.update(e,t),d.update(e,t),p.update(e,t),m.update(e,t),this._autoExposureEnabled&&g.update(e,t),s=r.length,a=0;a<s;++a)r[a].update(e,t);for(l=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&l++;f=l!==o.length,f&&this.update(e,t,n)};Oc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function Hx(e){for(;u(e.length);)e=e.get(e.length-1);return e.outputTexture}Oc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(u(t))return Hx(t)};function gm(e,t,n,i,o){if(u(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(gm(e.get(0),t,n,i,o),s=1;s<r;++s)gm(e.get(s),t,Hx(e.get(s-1)),i,o);else for(s=0;s<r;++s)gm(e.get(s),t,n,i,o)}Oc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,l=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,m=f.enabled&&f._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!d&&!p&&!m&&r===0)return;let b=t;d&&a.ready&&(gm(a,e,b,n,i),b=Hx(a)),p&&c.ready&&(gm(c,e,b,n,i),b=Hx(c)),g&&l.ready&&gm(l,e,b,n,i),m&&f.ready&&(gm(f,e,b,n,i),b=Hx(f));let T=b;if(r>0){gm(o[0],e,b,n,i);for(let A=1;A<r;++A)gm(o[A],e,Hx(o[A-1]),n,i);T=Hx(o[r-1])}x&&s.ready&&gm(s,e,T,n,i)};Oc.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(hu,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Oc.prototype.isDestroyed=function(){return!1};Oc.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),le(this)};var IV=Oc;var Nct={SHIFT:0,CTRL:1,ALT:2},_a=Object.freeze(Nct);var Fct={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},yn=Object.freeze(Fct);function Ty(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function bq(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function Gx(e){if(e.shiftKey)return _a.SHIFT;if(e.ctrlKey)return _a.CTRL;if(e.altKey)return _a.ALT}var us={LEFT:0,MIDDLE:1,RIGHT:2};function mu(e,t,n,i){function o(r){i(e,r)}Bt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function Bct(e){let t=e._element,n=u(t.disableRootEvents)?t:document;Bt.supportsPointerEvents()?(mu(e,"pointerdown",t,Gct),mu(e,"pointerup",t,L_e),mu(e,"pointermove",t,Wct),mu(e,"pointercancel",t,L_e)):(mu(e,"mousedown",t,N_e),mu(e,"mouseup",n,F_e),mu(e,"mousemove",n,B_e),mu(e,"touchstart",t,zct),mu(e,"touchend",n,I_e),mu(e,"touchmove",n,Hct),mu(e,"touchcancel",n,I_e)),mu(e,"dblclick",t,Uct);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",mu(e,i,t,Vct)}function kct(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var S_e={position:new V};function Tq(e){e._lastSeenTouchEvent=Ti()}function Aq(e){return Ti()-e._lastSeenTouchEvent>Hd.mouseEmulationIgnoreMilliseconds}function xq(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function N_e(e,t){if(!Aq(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===us.LEFT)i=yn.LEFT_DOWN;else if(n===us.MIDDLE)i=yn.MIDDLE_DOWN;else if(n===us.RIGHT)i=yn.RIGHT_DOWN;else return;let o=Ty(e,t,e._primaryPosition);V.clone(o,e._primaryStartPosition),V.clone(o,e._primaryPreviousPosition);let r=Gx(t),s=e.getInputAction(i,r);u(s)&&(V.clone(o,S_e.position),s(S_e),t.preventDefault())}var w_e={position:new V},v_e={position:new V};function pq(e,t,n,i){let o=Gx(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(u(r)||u(s)){let a=Ty(e,i,e._primaryPosition);if(u(r)&&(V.clone(a,w_e.position),r(w_e)),u(s)){let c=e._primaryStartPosition;xq(c,a,e._clickPixelTolerance)&&(V.clone(a,v_e.position),s(v_e))}}}function F_e(e,t){if(!Aq(e))return;let n=t.button;n!==us.LEFT&&n!==us.MIDDLE&&n!==us.RIGHT||(e._buttonDown[us.LEFT]&&(pq(e,yn.LEFT_UP,yn.LEFT_CLICK,t),e._buttonDown[us.LEFT]=!1),e._buttonDown[us.MIDDLE]&&(pq(e,yn.MIDDLE_UP,yn.MIDDLE_CLICK,t),e._buttonDown[us.MIDDLE]=!1),e._buttonDown[us.RIGHT]&&(pq(e,yn.RIGHT_UP,yn.RIGHT_CLICK,t),e._buttonDown[us.RIGHT]=!1))}var _q={startPosition:new V,endPosition:new V};function B_e(e,t){if(!Aq(e))return;let n=Gx(t),i=Ty(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(yn.MOUSE_MOVE,n);u(r)&&(V.clone(o,_q.startPosition),V.clone(i,_q.endPosition),r(_q)),V.clone(i,o),(e._buttonDown[us.LEFT]||e._buttonDown[us.MIDDLE]||e._buttonDown[us.RIGHT])&&t.preventDefault()}var D_e={position:new V};function Uct(e,t){let n=t.button,i;if(n===us.LEFT)i=yn.LEFT_DOUBLE_CLICK;else return;let o=Gx(t),r=e.getInputAction(i,o);u(r)&&(Ty(e,t,D_e.position),r(D_e))}function Vct(e,t){let n;if(u(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!u(n))return;let i=Gx(t),o=e.getInputAction(yn.WHEEL,i);u(o)&&(o(n),t.preventDefault())}function zct(e,t){Tq(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,Ty(e,r,new V));PV(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,V.clone(a.get(s)))}function I_e(e,t){Tq(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);PV(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var P_e={position:new V},gq={position1:new V,position2:new V},O_e={position:new V},R_e={position:new V},M_e={position:new V};function PV(e,t){let n=Gx(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[us.LEFT]){if(e._buttonDown[us.LEFT]=!1,u(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(yn.LEFT_UP,n),u(r)&&(V.clone(e._primaryPosition,O_e.position),r(O_e)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(yn.LEFT_CLICK,n),u(s))){let c=e._primaryStartPosition,l=e._previousPositions.values[0];xq(c,l,e._clickPixelTolerance)&&(V.clone(e._primaryPosition,R_e.position),s(R_e))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(yn.PINCH_END,n),u(r)&&r()),o===1&&!a){let c=i.values[0];V.clone(c,e._primaryPosition),V.clone(c,e._primaryStartPosition),V.clone(c,e._primaryPreviousPosition),e._buttonDown[us.LEFT]=!0,r=e.getInputAction(yn.LEFT_DOWN,n),u(r)&&(V.clone(c,P_e.position),r(P_e)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(yn.RIGHT_CLICK,n),u(s))){let l=e._primaryStartPosition,f=e._previousPositions.values[0];xq(l,f,e._holdPixelTolerance)&&(V.clone(e._primaryPosition,M_e.position),s(M_e))}},Hd.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(yn.PINCH_START,n),u(r)&&(V.clone(i.values[0],gq.position1),V.clone(i.values[1],gq.position2),r(gq),t.preventDefault()))}function Hct(e,t){Tq(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let l=a.get(s);u(l)&&Ty(e,r,l)}k_e(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,V.clone(a.get(s),c.get(s))}var yq={startPosition:new V,endPosition:new V},YD={distance:{startPosition:new V,endPosition:new V},angleAndHeight:{startPosition:new V,endPosition:new V}};function k_e(e,t){let n=Gx(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[us.LEFT]){let a=i.values[0];V.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(yn.MOUSE_MOVE,n),u(s)&&(V.clone(c,yq.startPosition),V.clone(a,yq.endPosition),s(yq)),V.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(yn.PINCH_MOVE,n),u(s))){let a=i.values[0],c=i.values[1],l=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,m=f.x-l.x,x=f.y-l.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,A=(f.y+l.y)*.125,C=Math.atan2(p,d),S=Math.atan2(x,m);V.fromElements(0,b,YD.distance.startPosition),V.fromElements(0,g,YD.distance.endPosition),V.fromElements(S,A,YD.angleAndHeight.startPosition),V.fromElements(C,T,YD.angleAndHeight.endPosition),s(YD)}}function Gct(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,Ty(e,t,new V)),PV(e,t),e._previousPositions.set(i,V.clone(n.get(i)))}else N_e(e,t)}function L_e(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),PV(e,t),e._previousPositions.remove(i)}else F_e(e,t)}function Wct(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!u(o))return;Ty(e,t,o),k_e(e,t);let r=e._previousPositions;V.clone(n.get(i),r.get(i))}else B_e(e,t)}function Hd(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Hd.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new V,this._primaryPosition=new V,this._primaryPreviousPosition=new V,this._positions=new xt,this._previousPositions=new xt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),Bct(this)}Hd.prototype.setInputAction=function(e,t,n){let i=bq(t,n);this._inputEvents[i]=e};Hd.prototype.getInputAction=function(e,t){let n=bq(e,t);return this._inputEvents[n]};Hd.prototype.removeInputAction=function(e,t){let n=bq(e,t);delete this._inputEvents[n]};Hd.prototype.isDestroyed=function(){return!1};Hd.prototype.destroy=function(){return kct(this),le(this)};Hd.mouseEmulationIgnoreMilliseconds=800;Hd.touchHoldDelayMilliseconds=1500;var Af=Hd;function Wx(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}Wx.prototype.completeMorph=function(){u(this._completeMorph)&&this._completeMorph()};Wx.prototype.morphTo2D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof Qt,!(this._previousMode===te.SCENE2D||this._previousMode===te.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,te.SCENE2D,!0),n._mode=te.MORPHING,n.camera._setTransform(L.IDENTITY),this._previousMode===te.COLUMBUS_VIEW?Clt(this,e):Plt(this,e,t),e===0&&u(this._completeMorph)&&this._completeMorph())};var jct=new h,qct=new h,Yct=new h,Xct=new h,Kct=new h,Zct=new h,$ct=new h,Qct=new fe,Jct=new L,elt=new vi,tlt=new Qt,nlt={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};Wx.prototype.morphToColumbusView=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===te.COLUMBUS_VIEW||this._previousMode===te.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,te.COLUMBUS_VIEW,!0),n.camera._setTransform(L.IDENTITY);let i=jct,o=qct,r=Yct;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let l=n.camera;if(this._previousMode===te.SCENE2D)h.clone(l.position,i),i.z=l.frustum.right-l.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(l.positionWC,i),h.clone(l.directionWC,o),h.clone(l.upWC,r);let f=t.scaleToGeodeticSurface(i,$ct),d=Rt.eastNorthUpToFixedFrame(f,t,Jct);L.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,Qct),i),L.multiplyByPointAsVector(d,o,o),L.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=tlt,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=elt,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=nlt;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=Rlt(a);XD(this,c),this._previousMode===te.SCENE2D?Olt(this,e,a,c):(a.position2D=L.multiplyByPoint(lo.TRANSFORM_2D,i,Xct),a.direction2D=L.multiplyByPointAsVector(lo.TRANSFORM_2D,o,Kct),a.up2D=L.multiplyByPointAsVector(lo.TRANSFORM_2D,r,Zct),n._mode=te.MORPHING,K_e(this,e,a,c)),e===0&&u(this._completeMorph)&&this._completeMorph()};var Sq={position:new h,direction:new h,up:new h,frustum:void 0},V_e=new vi;Wx.prototype.morphTo3D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===te.SCENE3D||this._previousMode===te.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,te.SCENE3D,!0),n._mode=te.MORPHING,n.camera._setTransform(L.IDENTITY),this._previousMode===te.SCENE2D)hlt(this,e,t);else{let i;e>0?(i=Sq,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=z_e(this,t);let o,r=n.camera;r.frustum instanceof Qt?o=r.frustum.clone():(o=V_e,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=$_e(i);XD(this,s),Eq(this,e,i,s)}e===0&&u(this._completeMorph)&&this._completeMorph()}};Wx.prototype.isDestroyed=function(){return!1};Wx.prototype.destroy=function(){return OV(this),le(this)};function XD(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Af(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,yn.LEFT_DOWN),e._morphHandler.setInputAction(n,yn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,yn.RIGHT_DOWN),e._morphHandler.setInputAction(n,yn.WHEEL)}}function OV(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var ilt=new fe,olt=new h,rlt=new L;function z_e(e,t){let n=e._scene,i=n.camera,o=Sq,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,ilt);t.cartographicToCartesian(c,r);let l=t.scaleToGeodeticSurface(r,olt),f=Rt.eastNorthUpToFixedFrame(l,t,rlt);return L.multiplyByPointAsVector(f,i.direction,s),L.multiplyByPointAsVector(f,i.up,a),o}var slt=new h,alt=new h,clt=new h,llt=new h,ult=new h,flt=new h;function Eq(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,slt),a=h.clone(r.direction,alt),c=h.clone(r.up,clt),l=L.multiplyByPoint(lo.TRANSFORM_2D_INVERSE,n.position,llt),f=L.multiplyByPointAsVector(lo.TRANSFORM_2D_INVERSE,n.direction,ult),d=L.multiplyByPointAsVector(lo.TRANSFORM_2D_INVERSE,n.up,flt);function p(m){Cf(s,l,m.time,r.position),Cf(a,f,m.time,r.direction),Cf(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Z_e(e,o,0,1,t,i)}});e._currentTweens.push(g)}var dlt=new Qt,H_e=new h,G_e=new h,W_e=new h,wq=new h,j_e=new h,q_e=new h;function hlt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=Sq,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=z_e(e,n));let s;e._morphToOrthographic?(s=dlt,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=V_e,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=$_e(r);XD(e,a);let c;e._morphToOrthographic?c=function(){Eq(e,t,r,a)}:c=function(){X_e(e,t,r,function(){Eq(e,t,r,a)})},t>0?(i._mode=te.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,wq),complete:function(){i._mode=te.MORPHING,c()}})):c()}function Cf(e,t,n,i){return h.lerp(e,t,n,i)}function Y_e(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof Qt)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,l=n.position.z*Math.tan(a*.5);s.frustum.far=l/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=l/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var mlt=new h,plt=new h,_lt=new h,Cq=new h,glt=new h,ylt=new h,xlt=new vr,blt=new Cn,Tlt=new h,Alt={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Clt(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,mlt),r=h.clone(i.direction,plt),s=h.clone(i.up,_lt),a=h.negate(h.UNIT_Z,glt),c=h.clone(h.UNIT_Y,ylt),l=Cq;if(t>0)h.clone(h.ZERO,Cq),l.z=5*n.mapProjection.ellipsoid.maximumRadius;else{h.clone(o,Cq);let b=blt;L.multiplyByPoint(lo.TRANSFORM_2D,o,b.origin),L.multiplyByPointAsVector(lo.TRANSFORM_2D,r,b.direction);let T=n.globe;if(u(T)){let A=T.pickWorldCoordinates(b,n,!0,Tlt);u(A)&&(L.multiplyByPoint(lo.TRANSFORM_2D_INVERSE,A,l),l.z+=h.distance(o,l))}}let f=xlt;f.right=l.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=Alt;d.position=l,d.direction=a,d.up=c,d.frustum=f;let p=Q_e(d);XD(e,p);function g(b){Cf(o,l,b.time,i.position),Cf(r,a,b.time,i.direction),Cf(s,c,b.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function m(b,T){b.position.z=T}let x=n.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){Y_e(e,t,d,m,p)}});e._currentTweens.push(x)}var U_e=new fe,Elt={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new vr},Slt={position:new h,direction:new h,up:new h,frustum:void 0},wlt=new h,vlt=new Cn,Dlt=new L,Ilt=new h;function Plt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Elt;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,U_e),i.mapProjection.project(U_e,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=vlt;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,Ilt),m=Rt.eastNorthUpToFixedFrame(g,n,Dlt);L.inverseTransformation(m,m),L.multiplyByPointAsVector(m,p,p),L.multiplyByPointAsVector(lo.TRANSFORM_2D,p,p);let x=i.globe;if(u(x)){let b=x.pickWorldCoordinates(d,i,!0,wlt);if(u(b)){let T=h.distance(r.position2D,b);b.x+=T,h.clone(b,r.position2D)}}}function s(d,p){d.position.x=p}L.multiplyByPoint(lo.TRANSFORM_2D,r.position,r.position2D),L.multiplyByPointAsVector(lo.TRANSFORM_2D,r.direction,r.direction2D),L.multiplyByPointAsVector(lo.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=Slt;L.multiplyByPoint(lo.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let l=Q_e(c);XD(e,l);function f(){Y_e(e,t,r,s,l)}K_e(e,t,r,f)}function X_e(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,l=s*Math.tan(a*.5);r.frustum.far=l/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=l/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function Olt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,wq),a=h.clone(n.direction,j_e),c=h.clone(n.up,q_e);o._mode=te.MORPHING;function l(){r.frustum=n.frustum.clone();let f=h.clone(r.position,H_e),d=h.clone(r.direction,G_e),p=h.clone(r.up,W_e);f.z=s.z;function g(x){Cf(f,s,x.time,r.position),Cf(d,a,x.time,r.direction),Cf(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let m=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?l():X_e(e,0,n,l)}function K_e(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,H_e),a=h.clone(r.direction,G_e),c=h.clone(r.up,W_e),l=h.clone(n.position2D,wq),f=h.clone(n.direction2D,j_e),d=h.clone(n.up2D,q_e);function p(m){Cf(s,l,m.time,r.position),Cf(a,f,m.time,r.direction),Cf(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Z_e(e,o,1,0,t,i)}});e._currentTweens.push(g)}function Z_e(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Nr.QUARTIC_OUT};u(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function $_e(e){return function(t){let n=t._scene;n._mode=te.SCENE3D,n.morphTime=te.getMorphTime(te.SCENE3D),OV(t);let i=n.camera;(t._previousMode!==te.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.SCENE3D,r)}}function Q_e(e){return function(t){let n=t._scene;n._mode=te.SCENE2D,n.morphTime=te.getMorphTime(te.SCENE2D),OV(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.SCENE2D,o)}}function Rlt(e){return function(t){let n=t._scene;n._mode=te.COLUMBUS_VIEW,n.morphTime=te.getMorphTime(te.COLUMBUS_VIEW),OV(t);let i=n.camera;(t._previousModeMode!==te.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,te.COLUMBUS_VIEW,r)}}var RV=Wx;var Mlt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Fi=Object.freeze(Mlt);function Za(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function Llt(e,t){V.clone(e.distance.startPosition,t.distance.startPosition),V.clone(e.distance.endPosition,t.distance.endPosition),V.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),V.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function J_e(e,t,n){let i=Za(Fi.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new V;let l=e._movement[i];u(l)||(l=e._movement[i]={}),l.distance={startPosition:new V,endPosition:new V},l.angleAndHeight={startPosition:new V,endPosition:new V},l.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,V.lerp(f.position1,f.position2,.5,s[i])},yn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},yn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(Llt(f,l),o[i]=!1,l.prevAngle=l.angleAndHeight.startPosition.x):(V.clone(f.distance.endPosition,l.distance.endPosition),V.clone(f.angleAndHeight.endPosition,l.angleAndHeight.endPosition));let d=l.angleAndHeight.endPosition.x,p=l.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;l.angleAndHeight.endPosition.x=-d*n.clientWidth/12,l.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},yn.PINCH_MOVE,t)}function ege(e,t){let n=Za(Fi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];u(s)||(s=e._movement[n]={});let a=e._lastMovement[n];u(a)||(a=e._lastMovement[n]={startPosition:new V,endPosition:new V,valid:!1}),s.startPosition=new V,V.clone(V.ZERO,s.startPosition),s.endPosition=new V,e._eventHandler.setInputAction(function(c){let l=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=l,V.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},yn.WHEEL,t)}function aE(e,t,n){let i=Za(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;o[i]=!1,r[i]=new V;let c=e._lastMovement[i];u(c)||(c=e._lastMovement[i]={startPosition:new V,endPosition:new V,valid:!1});let l,f;n===Fi.LEFT_DRAG?(l=yn.LEFT_DOWN,f=yn.LEFT_UP):n===Fi.RIGHT_DRAG?(l=yn.RIGHT_DOWN,f=yn.RIGHT_UP):n===Fi.MIDDLE_DRAG&&(l=yn.MIDDLE_DOWN,f=yn.MIDDLE_UP),e._eventHandler.setInputAction(function(d){e._buttonsDown++,c.valid=!1,o[i]=!0,s[i]=new Date,V.clone(d.position,r[i])},l,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},f,t)}function tge(e,t){V.clone(e.startPosition,t.startPosition),V.clone(e.endPosition,t.endPosition)}function nge(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Fi)if(Fi.hasOwnProperty(s)){let a=Fi[s];if(u(a)){let c=Za(a,t);n[c]=!0,u(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new V,endPosition:new V,valid:!1}),u(e._movement[c])||(e._movement[c]={startPosition:new V,endPosition:new V})}}e._eventHandler.setInputAction(function(s){for(let a in Fi)if(Fi.hasOwnProperty(a)){let c=Fi[a];if(u(c)){let l=Za(c,t);r[l]&&(n[l]?(tge(i[l],o[l]),o[l].valid=!0,tge(s,i[l]),n[l]=!1):V.clone(s.endPosition,i[l].endPosition))}}V.clone(s.endPosition,e._currentMousePosition)},yn.MOUSE_MOVE,t)}function Ef(e){this._eventHandler=new Af(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new V,ege(this,void 0),J_e(this,void 0,e),aE(this,void 0,Fi.LEFT_DRAG),aE(this,void 0,Fi.RIGHT_DRAG),aE(this,void 0,Fi.MIDDLE_DRAG),nge(this,void 0);for(let t in _a)if(_a.hasOwnProperty(t)){let n=_a[t];u(n)&&(ege(this,n),J_e(this,n,e),aE(this,n,Fi.LEFT_DRAG),aE(this,n,Fi.RIGHT_DRAG),aE(this,n,Fi.MIDDLE_DRAG),nge(this,n))}}Object.defineProperties(Ef.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[Za(Fi.WHEEL)]||!this._update[Za(Fi.WHEEL,_a.SHIFT)]||!this._update[Za(Fi.WHEEL,_a.CTRL)]||!this._update[Za(Fi.WHEEL,_a.ALT)];return this._buttonsDown>0||e}}});Ef.prototype.isMoving=function(e,t){let n=Za(e,t);return!this._update[n]};Ef.prototype.getMovement=function(e,t){let n=Za(e,t);return this._movement[n]};Ef.prototype.getLastMovement=function(e,t){let n=Za(e,t),i=this._lastMovement[n];if(i.valid)return i};Ef.prototype.isButtonDown=function(e,t){let n=Za(e,t);return this._isDown[n]};Ef.prototype.getStartMousePosition=function(e,t){if(e===Fi.WHEEL)return this._currentMousePosition;let n=Za(e,t);return this._eventStartPosition[n]};Ef.prototype.getButtonPressTime=function(e,t){let n=Za(e,t);return this._pressTime[n]};Ef.prototype.getButtonReleaseTime=function(e,t){let n=Za(e,t);return this._releaseTime[n]};Ef.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};Ef.prototype.isDestroyed=function(){return!1};Ef.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),le(this)};var MV=Ef;function LV(e,t,n,i,o,r,s,a,c,l){this._tweens=e,this._tweenjs=t,this._startObject=Ge(n),this._stopObject=Ge(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=l,this.needsStart=!0}Object.defineProperties(LV.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});LV.prototype.cancelTween=function(){this._tweens.remove(this)};function Gd(){this._tweens=[]}Object.defineProperties(Gd.prototype,{length:{get:function(){return this._tweens.length}}});Gd.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return u(e.complete)&&e.complete(),new LV(this);let t=e.duration/Xn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Xn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Nr.LINEAR_NONE),r=e.startObject,s=new zde(r);s.to(Ge(e.stopObject),t),s.delay(i),s.easing(o),u(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new LV(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};Gd.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};Gd.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&u(t.uniforms[o])&&u(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};Gd.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};Gd.prototype.remove=function(e){if(!u(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),u(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};Gd.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),u(n.cancel)&&n.cancel()}e.length=0};Gd.prototype.contains=function(e){return u(e)&&this._tweens.indexOf(e)!==-1};Gd.prototype.get=function(e){return this._tweens[e]};Gd.prototype.update=function(e){let t=this._tweens,n=0;for(e=u(e)?e/Xn.SECONDS_PER_MILLISECOND:Ti();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var cE=Gd;function ZD(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=Fi.LEFT_DRAG,this.zoomEventTypes=[Fi.RIGHT_DRAG,Fi.WHEEL,Fi.PINCH],this.rotateEventTypes=Fi.LEFT_DRAG,this.tiltEventTypes=[Fi.MIDDLE_DRAG,Fi.PINCH,{eventType:Fi.LEFT_DRAG,modifier:_a.CTRL},{eventType:Fi.RIGHT_DRAG,modifier:_a.CTRL}],this.lookEventTypes={eventType:Fi.LEFT_DRAG,modifier:_a.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new MV(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new cE,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new V(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new V(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new V,this._strafeEndMousePosition=new V,this._zoomMouseStart=new V(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new V,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new fe(Math.PI,P.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function Nlt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Flt(e){return V.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var Blt=.4;function klt(e,t,n,i,o,r,s){let a=r[s];u(a)||(a=r[s]={startPosition:new V,endPosition:new V,motion:new V,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),l=e.getButtonReleaseTime(t,n),f=c&&l&&(l.getTime()-c.getTime())/1e3,p=l&&(new Date().getTime()-l.getTime())/1e3;if(c&&l&&f<Blt){let g=Nlt(p,i),m=e.getLastMovement(t,n);if(!u(m)||Flt(m)||!a.inertiaEnabled||(a.motion.x=(m.endPosition.x-m.startPosition.x)*.5,a.motion.y=(m.endPosition.y-m.startPosition.y)*.5,a.startPosition=V.clone(m.startPosition,a.startPosition),a.endPosition=V.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=V.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||V.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function Ult(e,t){if(u(t)){let n=e[t];u(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(u(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],u(n)&&(n.inertiaEnabled=!1)}}}var ige=[];function Rc(e,t,n,i,o,r){if(!u(n))return;let s=e._aggregator;Array.isArray(n)||(ige[0]=n,n=ige);let a=n.length;for(let c=0;c<a;++c){let l=n[c],f=u(l.eventType)?l.eventType:l,d=l.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),Ult(e,r)):o<1&&klt(s,f,d,o,i,e,r))}}var NV=new Cn,Vlt=new h,zlt=new V,Hlt=new h,Glt=new V,Wlt=new h,jlt=new h,qlt=new h,Ylt=new h,pge=new h,Xlt=new h,Klt=new h,Zlt=new h,$lt=new h,Qlt=new h,Jlt=new h,eut=new h,tut=new h,nut=new h,iut=new h,jx=new h,oge=new h,rge=new h,vq={orientation:new oc};function Nq(e,t,n,i,o,r){let s=1;u(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,l=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-l,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let m=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!u(e._globe)){if(m>0&&Math.abs(o-l)<1||m<0&&Math.abs(o-f)<1)return;o-m<l?m=o-l-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,A=vq.orientation;if(A.heading=b.heading,A.pitch=b.pitch,A.roll=b.roll,b.frustum instanceof Qt){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let C=y(n.inertiaEnabled,V.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,w=e._rotatingZoom,D;if(C||(e._zoomMouseStart=V.clone(t,e._zoomMouseStart),u(e._globe)&&T===te.SCENE2D?(D=b.getPickRay(t,NV).origin,D=h.fromElements(D.y,D.z,D.x)):u(e._globe)&&(D=Xp(e,t,Vlt)),u(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,w=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===te.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(w=!0),!C||w){if(T===te.SCENE2D){let R=e._zoomWorldPosition,N=b.position;if(!h.equals(R,N)&&b.positionCartographic.height<e._maxCoord.x*2){let F=b.position.x,_=h.subtract(R,N,Hlt);h.normalize(_,_);let E=h.distance(R,N)*m/(b.getMagnitude()*.5);b.move(_,E*.5),(b.position.x<0&&F>0||b.position.x>0&&F<0)&&(D=b.getPickRay(t,NV).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===te.SCENE3D){let R=h.normalize(b.position,pge);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,R))<.6)O=!0;else{let N=x.canvas,F=Glt;F.x=N.clientWidth/2,F.y=N.clientHeight/2;let _=Xp(e,F,Wlt);if(!u(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,R)>=-.5)O=!0;else{let E=Klt;h.clone(b.position,E);let v=e._zoomWorldPosition,I=Xlt;if(I=h.normalize(v,I),h.dot(I,R)<0)return;let M=iut,B=Qlt;h.clone(b.direction,B),h.add(E,h.multiplyByScalar(B,1e3,jx),M);let H=Jlt,U=eut;h.subtract(v,E,H),h.normalize(H,U);let G=h.dot(R,U);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),Y=h.magnitude(E),q=h.magnitude(v),Q=Y-m,W=h.magnitude(H),K=Math.asin(P.clamp(W/q*Math.sin(k),-1,1)),Z=Math.asin(P.clamp(Q/q*Math.sin(k),-1,1)),me=K-Z+k,xe=Zlt;h.normalize(E,xe);let re=$lt;re=h.cross(U,xe,re),re=h.normalize(re,re),h.normalize(h.cross(xe,re,jx),B),h.multiplyByScalar(h.normalize(M,jx),h.magnitude(M)-m,M),h.normalize(E,E),h.multiplyByScalar(E,Q,E);let ge=tut;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(me)-1,oge),h.multiplyByScalar(B,Math.sin(me),rge),jx),Q,ge),h.add(E,ge,E),h.normalize(M,xe),h.normalize(h.cross(xe,re,jx),B);let ye=nut;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(me)-1,oge),h.multiplyByScalar(B,Math.sin(me),rge),jx),h.magnitude(M),ye),h.add(M,ye,M),h.clone(E,b.position),h.normalize(h.subtract(M,E,jx),b.direction),h.clone(b.direction,b.direction),h.cross(b.direction,b.up,b.right),h.cross(b.right,b.direction,b.up),b.setView(vq);return}else{let E=h.normalize(_,jlt),v=h.normalize(e._zoomWorldPosition,qlt),I=h.dot(v,E);if(I>0&&I<1){let M=P.acosClamped(I),B=h.cross(v,E,Ylt),H=Math.abs(M)>P.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,U=m/H;b.rotate(B,M*U)}}}}e._rotatingZoom=!O}if(!C&&O||S){let R,N=$i.wgs84ToWindowCoordinates(x,e._zoomWorldPosition,zlt);T!==te.COLUMBUS_VIEW&&V.equals(t,e._zoomMouseStart)&&u(N)?R=b.getPickRay(N,NV):R=b.getPickRay(t,NV);let F=R.direction;(T===te.COLUMBUS_VIEW||T===te.SCENE2D)&&h.fromElements(F.y,F.z,F.x,F),b.move(F,m),e._zoomingOnVector=!0}else b.zoomIn(m);e._cameraUnderground||b.setView(vq)}var out=new Cn,rut=new Cn,sut=new h;function aut(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,out).origin,s=o.getPickRay(n.endPosition,rut).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,sut),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function sge(e,t,n){u(n.distance)&&(n=n.distance);let o=e._scene.camera;Nq(e,t,n,e._zoomFactor,o.getMagnitude())}var cut=new V,lut=new V;function age(e,t,n){if(u(n.angleAndHeight)){uut(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=cut;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=V.normalize(c,c);let l=lut;l.x=2/s*n.endPosition.x-1,l.y=2/a*(a-n.endPosition.y)-1,l=V.normalize(l,l);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(l.x);l.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function uut(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function fut(e){let t=e._scene.mapMode2D===du.ROTATE;L.equals(L.IDENTITY,e._scene.camera.transform)?(Rc(e,e.enableTranslate,e.translateEventTypes,aut,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Rc(e,e.enableZoom,e.zoomEventTypes,sge,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Rc(e,e.enableRotate,e.tiltEventTypes,age,e.inertiaSpin,"_lastInertiaTiltMovement")):(Rc(e,e.enableZoom,e.zoomEventTypes,sge,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Rc(e,e.enableRotate,e.translateEventTypes,age,e.inertiaSpin,"_lastInertiaSpinMovement"))}var _ge=new Cn,dut=new h,hut=new h;function Xp(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,dut)),!u(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,_ge),l=o.pickWorldCoordinates(c,i,a,hut),f=u(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=u(l)?h.distance(l,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(l,n)}var mut=new fe;function HV(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===te.SCENE3D){let c=t.cartesianToCartographic(i.position,mut);u(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var put=new h;function gge(e,t){let n=t.origin,i=t.direction,o=HV(e),r=h.normalize(n,put),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function yge(e,t,n,i){let o=h.distance(t.origin,n),r=HV(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),Cn.getPoint(t,o,i)}function xge(e,t,n,i){let o;return u(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=HV(e))):o=HV(e),Cn.getPoint(t,o,i)}var _ut=new V;function bge(e,t){let n=t.endPosition,i=V.subtract(t.endPosition,t.startPosition,_ut),o=e._strafeEndMousePosition;V.add(o,i,o),t.endPosition=o,Fq(e,t,e._strafeStartPosition),t.endPosition=n}var cge=new Cn,gut=new Cn,Dq=new h,yut=new h,xut=new h,but=new h,Tut=new tn(h.UNIT_X,0),Aut=new V,Cut=new V;function Eut(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){_u(e,t,n);return}if(e._strafing){bge(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=V.clone(n.startPosition,Aut),a=V.clone(n.endPosition,Cut),c=o.getPickRay(s,cge),l=h.clone(h.ZERO,but),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=Xp(e,s,Dq),u(d)&&(l.x=d.x)),r||l.x>o.position.z&&u(d)){let C=d;r&&(C=xge(e,c,d,Dq)),V.clone(t,e._strafeMousePosition),V.clone(t,e._strafeEndMousePosition),h.clone(C,e._strafeStartPosition),e._strafing=!0,Fq(e,n,e._strafeStartPosition);return}let p=tn.fromPointNormal(l,f,Tut);c=o.getPickRay(s,cge);let g=Ei.rayPlane(c,p,Dq),m=o.getPickRay(a,gut),x=Ei.rayPlane(m,p,yut);if(!u(g)||!u(x)){e._looking=!0,_u(e,t,n),V.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,xut),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let A=h.magnitude(b);A>P.EPSILON6&&(h.normalize(b,b),o.move(b,A))}var Tge=new V,kV=new Cn,UV=new h,Sut=new h,Age=new L,wut=new L,vut=new h,Dut=new tn(h.UNIT_X,0),Iq=new h,Rq=new fe,Cge=new L,Iut=new Ne,Put=new $,VV=new h;function Out(e,t,n){if(u(n.angleAndHeight)&&(n=n.angleAndHeight),V.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){_u(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,Rut(e,t,n)):Mut(e,t,n)}function Rut(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=Tge;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,kV),c=h.UNIT_X,l=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,l)/p),!u(d)||d<=0){e._looking=!0,_u(e,t,n),V.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,UV);h.add(l,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,Rq);x.cartographicToCartesian(b,g);let T=Rt.eastNorthUpToFixedFrame(g,x,Age),A=e._globe,C=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=L.clone(o.transform,Cge);o._setTransform(T),pu(e,t,n,h.UNIT_Z),o._setTransform(S),e._globe=A,e._ellipsoid=C;let w=C.maximumRadius;e._rotateFactor=1/w,e._rotateRateRangeAdjustment=w}function Mut(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(V.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,UV);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=Xp(e,t,UV)),!u(s)){a=o.getPickRay(t,kV);let _=a.origin,E=a.direction,v,I=h.dot(c,E);if(Math.abs(I)>P.EPSILON6&&(v=-h.dot(c,_)/I),!u(v)||v<=0){e._looking=!0,_u(e,t,n),V.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(E,v,UV),h.add(_,s,s)}r&&(u(a)||(a=o.getPickRay(t,kV)),yge(e,a,s,s)),V.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let l=i.canvas,f=Tge;f.x=l.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,kV);let d=h.clone(h.ZERO,vut);d.x=s.x;let p=tn.fromPointNormal(d,c,Dut),g=Ei.rayPlane(a,p,Sut),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,Rq);x.cartographicToCartesian(b,s);let T=Rt.eastNorthUpToFixedFrame(s,x,Age),A;u(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,Rq),x.cartographicToCartesian(b,g),A=Rt.eastNorthUpToFixedFrame(g,x,wut)):A=T;let C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let w=h.UNIT_Z,D=L.clone(o.transform,Cge);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,Iq),Iq),R=h.dot(o.right,O);if(pu(e,t,n,w,!1,!0),o._setTransform(A),R<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(w=void 0);let E=o.constrainedAxis;o.constrainedAxis=void 0,pu(e,t,n,w,!0,!1),o.constrainedAxis=E}else pu(e,t,n,w,!0,!1);if(u(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,VV);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,o.right)<0&&h.negate(_,_),h.cross(_,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(D),e._globe=C,e._ellipsoid=S;let N=S.maximumRadius;e._rotateFactor=1/N,e._rotateRateRangeAdjustment=N;let F=h.clone(o.positionWC,Iq);if(e.enableCollisionDetection&&Uq(e),!h.equals(o.positionWC,F)){o._setTransform(A),o.worldToCameraCoordinatesPoint(F,F);let _=h.magnitudeSquared(F);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let E=h.angleBetween(F,o.position),v=h.cross(F,o.position,F);h.normalize(v,v);let I=Ne.fromAxisAngle(v,E,Iut),M=$.fromQuaternion(I,Put);$.multiplyByVector(M,o.direction,o.direction),$.multiplyByVector(M,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var Ege=new V,Sge=new Cn,wge=new h;function Lut(e,t,n){u(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=Ege,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,Sge),l=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=Xp(e,a,wge));let g;if(u(p)&&(g=h.distance(l,p)),s){let m=gge(e,c,d);u(g)?g=Math.min(g,m):g=m}if(!u(g)){let m=h.UNIT_X;g=-h.dot(m,l)/h.dot(m,f)}Nq(e,t,n,e._zoomFactor,g)}function Nut(e){let n=e._scene.camera;if(!L.equals(L.IDENTITY,n.transform))Rc(e,e.enableRotate,e.rotateEventTypes,pu,e.inertiaSpin,"_lastInertiaSpinMovement"),Rc(e,e.enableZoom,e.zoomEventTypes,Dge,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),Rc(e,e.enableTilt,e.tiltEventTypes,Out,e.inertiaSpin,"_lastInertiaTiltMovement"),Rc(e,e.enableTranslate,e.translateEventTypes,Eut,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Rc(e,e.enableZoom,e.zoomEventTypes,Lut,e.inertiaZoom,"_lastInertiaZoomMovement"),Rc(e,e.enableLook,e.lookEventTypes,_u),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);u(o)&&(e._tween=i.add(o))}i.update()}}var Fut=new Cn,But=new tn(h.UNIT_X,0),kut=new h,Uut=new h;function Fq(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Fut),s=h.clone(o.direction,Uut);i.mode===te.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=tn.fromPointNormal(n,s,But),c=Ei.rayPlane(r,a,kut);u(c)&&(s=h.subtract(n,c,s),i.mode===te.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var lge=new h,vge=new fe,Mq=new h,Lq=new ie,Vut=new h,zut=new h,Hut=new h;function Gut(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!L.equals(o.transform,L.IDENTITY)){pu(e,t,n);return}let a,c,l=s.geodeticSurfaceNormal(o.position,Vut);if(V.equals(t,e._rotateMousePosition)){if(e._looking)_u(e,t,n,l);else if(e._rotating)pu(e,t,n);else if(e._strafing)bge(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=Mq,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,Lq),Oq(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,vge).height,d=e._globe;if(u(d)&&f<e._minimumPickingTerrainHeight){let p=Xp(e,n.startPosition,Hut);if(u(p)){let g=!1,m=o.getPickRay(n.startPosition,_ge);if(r)g=!0,xge(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,zut);Math.abs(h.dot(m.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(V.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,Fq(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=Mq,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,Lq),Oq(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,_u(e,t,n,l)}else u(o.pickEllipsoid(n.startPosition,e._ellipsoid,lge))?(Oq(e,t,n,e._ellipsoid),h.clone(lge,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,pu(e,t,n)):(e._looking=!0,_u(e,t,n,l));V.clone(t,e._rotateMousePosition)}function pu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,l=a.constrainedAxis;u(i)&&(a.constrainedAxis=i);let f=h.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let m=d*p*Math.PI*2,x=d*g*Math.PI;o||a.rotateRight(m),r||a.rotateUp(x),a.constrainedAxis=l}var Pq=oe.clone(oe.UNIT_W),uge=oe.clone(oe.UNIT_W),FV=new h,lE=new h,BV=new h,fge=new h,Wut=new V,jut=new V,qut=new V,Yut=new V,Xut=new Cn;function Oq(e,t,n,i){let o=e._scene,r=o.camera,s=V.clone(n.startPosition,Wut),a=V.clone(n.endPosition,jut),c=i.cartesianToCartographic(r.positionWC,vge).height,l,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(l=h.clone(e._panLastWorldPosition,Pq),!u(e._globe)&&!V.equalsEpsilon(s,e._panLastMousePosition)&&(l=Xp(e,s,Pq)),!u(e._globe)&&u(l))){let d=h.subtract(l,r.positionWC,lE),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),lE),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,Yut),x=V.subtract(a,s,qut),b=h.multiplyByScalar(r.rightWC,x.x*m.x,lE),T=h.normalize(r.positionWC,pge),A=r.getPickRay(a,Xut).direction,C=h.subtract(A,h.projectVector(A,r.rightWC,BV),BV),S=h.angleBetween(C,r.directionWC),w=1;u(r.frustum.fov)&&(w=Math.max(Math.tan(S),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(w)*(1-D),R=h.multiplyByScalar(A,O,BV);D=Math.abs(h.dot(r.upWC,T));let N=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,fge);f=h.add(l,b,uge),f=h.add(f,R,f),f=h.add(f,N,f),h.clone(f,e._panLastWorldPosition),V.clone(a,e._panLastMousePosition)}if((!u(l)||!u(f))&&(l=r.pickEllipsoid(s,i,Pq),f=r.pickEllipsoid(a,i,uge)),!u(l)||!u(f)){e._rotating=!0,pu(e,t,n);return}if(l=r.worldToCameraCoordinates(l,l),f=r.worldToCameraCoordinates(f,f),u(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,FV);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,lE),m=h.magnitude(l),x=h.dot(d,l),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,BV);h.subtract(l,T,T),h.normalize(T,T);let A=h.magnitude(f),C=h.dot(d,f),S=Math.acos(C/A),w=h.multiplyByScalar(d,C,fge);h.subtract(f,w,w),h.normalize(w,w);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=P.TWO_PI-D);let O=Math.acos(h.dot(w,p));h.dot(w,g)<0&&(O=P.TWO_PI-O);let R=D-O,N;h.equalsEpsilon(d,r.position,P.EPSILON2)?N=r.right:N=h.cross(d,r.position,FV);let F=h.cross(d,N,FV),_=h.dot(F,h.subtract(l,d,lE)),E=h.dot(F,h.subtract(f,d,lE)),v;_>0&&E>0?v=S-b:_>0&&E<=0?h.dot(r.position,d)>0?v=-b-S:v=b+S:v=b-S,r.rotateRight(R),r.rotateUp(v)}else{h.normalize(l,l),h.normalize(f,f);let d=h.dot(l,f),p=h.cross(l,f,FV);if(d<1&&!h.equalsEpsilon(p,h.ZERO,P.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var Kut=new h,Zut=new fe,dge=0;function Dge(e,t,n){u(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,l;c?l=t:(l=Ege,l.x=a.clientWidth/2,l.y=a.clientHeight/2);let f=s.getPickRay(l,Sge),d,p=o.cartesianToCartographic(s.position,Zut).height,g=Math.abs(dge)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=Xp(e,l,wge));let x;if(u(d)&&(x=h.distance(f.origin,d),dge=x),c){let T=gge(e,f,p);u(x)?x=Math.min(x,T):x=T}u(x)||(x=p);let b=h.normalize(s.position,Kut);Nq(e,t,n,e._zoomFactor,x,h.dot(b,s.direction))}var Ige=new V,zV=new Cn,KD=new h,$ut=new h,Pge=new L,Qut=new L,Oge=new L,Jut=new Ne,eft=new $,Bq=new fe,kq=new h;function tft(e,t,n){let o=e._scene.camera;if(!L.equals(o.transform,L.IDENTITY))return;if(u(n.angleAndHeight)&&(n=n.angleAndHeight),V.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,kq);_u(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,Bq);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,ift(e,t,n)):oft(e,t,n)}var nft=new fe;function ift(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,nft).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,l=Ige;l.x=c.clientWidth/2,l.y=c.clientHeight/2;let f=r.getPickRay(l,zV),d,p=Ei.rayEllipsoid(f,i);if(u(p))d=Cn.getPoint(f,p.start,KD);else if(a>e._minimumTrackBallHeight){let A=Ei.grazingAltitudeLocation(f,i);if(!u(A))return;let C=i.cartesianToCartographic(A,Bq);C.height=0,d=i.cartographicToCartesian(C,KD)}else{e._looking=!0;let A=e._ellipsoid.geodeticSurfaceNormal(r.position,kq);_u(e,t,n,A),V.clone(t,e._tiltCenterMousePosition);return}let g=Rt.eastNorthUpToFixedFrame(d,i,Pge),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=L.clone(r.transform,Oge);r._setTransform(g),pu(e,t,n,h.UNIT_Z),r._setTransform(b),e._globe=m,e._ellipsoid=x;let T=x.maximumRadius;e._rotateFactor=1/T,e._rotateRateRangeAdjustment=T}function oft(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,l;if(V.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,KD);else{if(a=Xp(e,t,KD),!u(a)){if(c=r.getPickRay(t,zV),l=Ei.rayEllipsoid(c,i),!u(l)){if(i.cartesianToCartographic(r.position,Bq).height<=e._minimumTrackBallHeight){e._looking=!0;let E=e._ellipsoid.geodeticSurfaceNormal(r.position,kq);_u(e,t,n,E),V.clone(t,e._tiltCenterMousePosition)}return}a=Cn.getPoint(c,l.start,KD)}s&&(u(c)||(c=r.getPickRay(t,zV)),yge(e,c,a,a)),V.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=Ige;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,zV);let p=h.magnitude(a),g=h.fromElements(p,p,p,Mq),m=ie.fromCartesian3(g,Lq);if(l=Ei.rayEllipsoid(c,m),!u(l))return;let x=h.magnitude(c.origin)>p?l.start:l.stop,b=Cn.getPoint(c,x,$ut),T=Rt.eastNorthUpToFixedFrame(a,i,Pge),A=Rt.eastNorthUpToFixedFrame(b,m,Qut),C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let w=h.UNIT_Z,D=L.clone(r.transform,Oge);r._setTransform(A);let O=h.cross(b,r.positionWC,VV);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(w=void 0);let E=r.constrainedAxis;r.constrainedAxis=void 0,pu(e,t,n,w,!0,!1),r.constrainedAxis=E}else pu(e,t,n,w,!0,!1);if(r._setTransform(T),pu(e,t,n,w,!1,!0),u(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,VV);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,r.right)<0&&h.negate(_,_),h.cross(_,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(D),e._globe=C,e._ellipsoid=S;let N=S.maximumRadius;e._rotateFactor=1/N,e._rotateRateRangeAdjustment=N;let F=h.clone(r.positionWC,VV);if(e.enableCollisionDetection&&Uq(e),!h.equals(r.positionWC,F)){r._setTransform(A),r.worldToCameraCoordinatesPoint(F,F);let _=h.magnitudeSquared(F);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let E=h.angleBetween(F,r.position),v=h.cross(F,r.position,F);h.normalize(v,v);let I=Ne.fromAxisAngle(v,E,Jut),M=$.fromQuaternion(I,eft);$.multiplyByVector(M,r.direction,r.direction),$.multiplyByVector(M,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var rft=new V,sft=new V,hge=new Cn,mge=new Cn,aft=new h,cft=new h;function _u(e,t,n,i){let r=e._scene.camera,s=rft;s.x=n.startPosition.x,s.y=0;let a=sft;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,hge),l=r.getPickRay(a,mge),f=0,d,p;r.frustum instanceof Qt?(d=c.origin,p=l.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=l.direction);let g=h.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let m=e._horizontalRotationAxis;if(u(i)?r.look(i,-f):u(m)?r.look(m,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,hge),l=r.getPickRay(a,mge),f=0,r.frustum instanceof Qt?(d=c.origin,p=l.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=l.direction),g=h.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,m),u(i)){let x=r.direction,b=h.negate(i,aft),T=h.equalsEpsilon(x,i,P.EPSILON2),A=h.equalsEpsilon(x,b,P.EPSILON2);if(!T&&!A){g=h.dot(x,i);let C=P.acosClamped(g);f>0&&f>C&&(f=C-P.EPSILON4),g=h.dot(x,b),C=P.acosClamped(g),f<0&&-f>C&&(f=-C+P.EPSILON4);let S=h.cross(i,x,cft);r.look(S,f)}else(T&&f<0||A&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function lft(e){Rc(e,e.enableRotate,e.rotateEventTypes,Gut,e.inertiaSpin,"_lastInertiaSpinMovement"),Rc(e,e.enableZoom,e.zoomEventTypes,Dge,e.inertiaZoom,"_lastInertiaZoomMovement"),Rc(e,e.enableTilt,e.tiltEventTypes,tft,e.inertiaSpin,"_lastInertiaTiltMovement"),Rc(e,e.enableLook,e.lookEventTypes,_u)}var uft=new L,fft=new fe;function Uq(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!u(i)||n===te.SCENE2D||n===te.MORPHING)return;let o=t.camera,r=i.ellipsoid,s=t.mapProjection,a,c;L.equals(o.transform,L.IDENTITY)||(a=L.clone(o.transform,uft),c=h.magnitude(o.position),o._setTransform(L.IDENTITY));let l=fft;n===te.SCENE3D?r.cartesianToCartographic(o.position,l):s.unproject(o.position,l);let f=!1;if(l.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(u(d)){let p=d+e.minimumZoomDistance;l.height<p&&(l.height=p,n===te.SCENE3D?r.cartographicToCartesian(l,o.position):s.project(l,o.position),f=!0)}}u(a)&&(o._setTransform(a),f&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}ZD.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===te.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var dft=new h,hft=new h;ZD.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;L.equals(t.transform,L.IDENTITY)?(this._globe=n,this._ellipsoid=u(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=ie.UNIT_SPHERE);let o=u(this._globe)?this._globe.terrainExaggeration:1,r=u(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=Yc.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Yc.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Yc.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&u(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,dft),c=h.clone(t.directionWC,hft);i===te.SCENE2D?fut(this):i===te.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,Nut(this)):i===te.SCENE3D&&(this._horizontalRotationAxis=void 0,lft(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC))&&Uq(this),this._aggregator.reset()};ZD.prototype.isDestroyed=function(){return!1};ZD.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),le(this)};var GV=ZD;var WV=`uniform sampler2D colorTexture;
- uniform sampler2D colorTexture2;
- uniform vec2 center;
- uniform float radius;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec4 color0 = texture(colorTexture, v_textureCoordinates);
- vec4 color1 = texture(colorTexture2, v_textureCoordinates);
- float x = length(gl_FragCoord.xy - center) / radius;
- float t = smoothstep(0.5, 0.8, x);
- out_FragColor = mix(color0 + color1, color1, t);
- }
- `;var jV=`uniform sampler2D colorTexture;
- uniform float avgLuminance;
- uniform float threshold;
- uniform float offset;
- in vec2 v_textureCoordinates;
- float key(float avg)
- {
- float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0));
- return max(0.0, guess) + 0.1;
- }
- void main()
- {
- vec4 color = texture(colorTexture, v_textureCoordinates);
- vec3 xyz = czm_RGBToXYZ(color.rgb);
- float luminance = xyz.r;
- float scaledLum = key(avgLuminance) * luminance / avgLuminance;
- float brightLum = max(scaledLum - threshold, 0.0);
- float brightness = brightLum / (offset + brightLum);
- xyz.r = brightness;
- out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0);
- }
- `;function Kp(){this._sceneFramebuffer=new tE;let e=.125,t=new Array(6);t[0]=new _o({fragmentShader:hu,textureScale:e,forcePowerOfTwo:!0,sampleMode:Tf.LINEAR});let n=t[1]=new _o({fragmentShader:jV,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new V,t[2]=new _o({fragmentShader:Bx,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new _o({fragmentShader:Bx,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new _o({fragmentShader:hu,sampleMode:Tf.LINEAR}),this._uCenter=new V,this._uRadius=void 0,t[5]=new _o({fragmentShader:WV,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new xl({stages:t});let o=new sE(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}Kp.prototype.get=function(e){return this._stages.get(e)};Kp.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var mft=new oe,Rge=new V,pft=new V,Mge=new L;function _ft(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=L.computeViewportTransformation(n,0,1,Mge),l=L.multiplyByPoint(r,o,mft),f=Rt.pointToGLWindowCoordinates(s,c,o,Rge);l.x+=P.SOLAR_RADIUS;let d=Rt.pointToGLWindowCoordinates(a,c,l,l),p=V.magnitude(V.subtract(d,f,d))*30*2,g=pft;g.x=p,g.y=p,e._uCenter=V.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let m=t.drawingBufferWidth,x=t.drawingBufferHeight,b=e._stages,T=b.get(0),A=T.outputTexture.width,C=T.outputTexture.height,S=new qe;S.width=A,S.height=C,c=L.computeViewportTransformation(S,0,1,Mge),f=Rt.pointToGLWindowCoordinates(s,c,o,Rge),g.x*=A/m,g.y*=C/x;let w=T.scissorRectangle;w.x=Math.max(f.x-g.x*.5,0),w.y=Math.max(f.y-g.y*.5,0),w.width=Math.min(g.x,m),w.height=Math.min(g.y,x);for(let D=1;D<4;++D)qe.clone(w,b.get(D).scissorRectangle)}Kp.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};Kp.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),_ft(this,t,n),o};Kp.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};Kp.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(hu,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Kp.prototype.isDestroyed=function(){return!1};Kp.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),le(this)};var qV=Kp;function Lge(){this._cachedShowFrustumsShaders={}}function gft(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function yft(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=ze.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor;
- `,a+=`uniform vec3 debugShowFrustumsColor;
- `,a+=`void main()
- {
- czm_Debug_main();
- `;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor;
- `,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor;
- `;else a+=` out_FragColor.rgb *= debugShowCommandsColor;
- `,a+=` out_FragColor.rgb *= debugShowFrustumsColor;
- `;a+="}",o.sources.push(a);let l=gft(i);return Kt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:l})}var $D=new z;function xft(e,t){let n;return u(t.uniformMap)?n=t.uniformMap:n={},u(n.debugShowCommandsColor)||u(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(u(t._debugColor)||(t._debugColor=z.fromRandom()),t._debugColor):z.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?($D.red=t.debugOverlappingFrustums&1?1:0,$D.green=t.debugOverlappingFrustums&2?1:0,$D.blue=t.debugOverlappingFrustums&4?1:0,$D.alpha=1,$D):z.WHITE}),n}var bft=new et;Lge.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];u(o)||(o=yft(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=et.shallowClone(t,bft);r.shaderProgram=o,r.uniformMap=xft(e,t),r.execute(e.context,n)};var YV=Lge;var KV=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function ki(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ge(e.contextOptions),r=u(n),s=new bR(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),u(i)||(i=t.parentNode),this._id=Gn(),this._jobScheduler=new jU,this._frameState=new HU(s,new PU(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new pP(s),this._globe=void 0,this._globeTranslucencyState=new GU,this._primitives=new Zl,this._groundPrimitives=new Zl,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new cE,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new BU(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ei({color:new z,stencil:0,owner:this}),this._depthClearCommand=new ei({depth:1,owner:this}),this._stencilClearCommand=new ei({stencil:0}),this._classificationStencilClearCommand=new ei({stencil:0,renderState:Ve.fromCache({stencilMask:Lt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new RV(this),this._preUpdate=new pe,this._postUpdate=new pe,this._renderError=new pe,this._preRender=new pe,this._postRender=new pe,this._minimumDisableDepthTestDistance=0,this._debugInspector=new YV,this._msaaSamples=y(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new pe,this.morphComplete=new pe,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=z.clone(z.BLACK),this._mode=te.SCENE3D,this._mapProjection=u(e.mapProjection)?e.mapProjection:new Ii,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new zU,this._shadowMapCamera=new lo(this),this.shadowMap=new xy({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=z.clone(z.WHITE),this._actualInvertClassificationColor=z.clone(this._invertClassificationColor),this._invertClassification=new kD,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new IV,this._brdfLutGenerator=new bU,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new GV(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,du.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=ic.requestCompletedEvent.addEventListener(KV(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener(KV(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new qe(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new lo(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new lo(this),this.preloadFlightCullingVolume=void 0,this._picking=new cV(this),this._defaultView=new iE(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new m_,kge(this,0,J.now()),this.updateFrameState(),this.initializeFrame()}function Tft(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];u(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(KV(e))),n.push(t.terrainProviderChanged.addEventListener(KV(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(ki.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return zt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return zt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return yh.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Tft(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(u(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(u(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),u(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(u(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===te.SCENE2D?this.morphTo2D(0):e===te.SCENE3D?this.morphTo3D(0):e===te.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new lo(this),u(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new UU(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,zt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});ki.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function Nge(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;u(t.pickId)&&(c.picking=py.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=py.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=py.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=xy.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Ee.TRANSLUCENT&&u(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=u(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}ki.prototype.updateDerivedCommands=function(e){if(!u(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,o=t.shadowState.lastDirtyTime;e.lastDirtyTime!==o&&(e.lastDirtyTime=o,e.dirty=!0,i=!0);let r=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=u(a.logDepth),l=u(a.hdr),f=u(a.originalCommand),d=r&&!c,p=s&&!l,g=(!r||!s)&&!f;if(e.dirty=e.dirty||d||p||g,e.dirty){e.dirty=!1;let m=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=xy.createCastDerivedCommand(m,e,i,n,a.shadows)),(c||d)&&(a.logDepth=py.createLogDepthCommand(e,n,a.logDepth),Nge(this,a.logDepth.command,i)),(f||g)&&Nge(this,e,i)}};var Aft=new Ud({pass:Po.RENDER}),Vq=new Ud({pass:Po.PRELOAD}),zq=new Ud({pass:Po.PRELOAD_FLIGHT}),Cft=new Ud({pass:Po.REQUEST_RENDER_MODE_DEFER_CHECK}),Fge=new se,Hq;function Eft(e){let t=e.globe;if(e._mode===te.SCENE3D&&u(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return Fge.radius=n.minimumRadius+i,Hq=yU.fromBoundingSphere(Fge,e.camera.positionWC,Hq),Hq}}ki.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function kge(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=J.clone(n,i.time)}ki.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Eft(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof Qt||this.camera.frustum instanceof vr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,u(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=z.clone(this.invertClassificationColor,this._actualInvertClassificationColor),kD.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,u(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};ki.prototype.isVisible=function(e,t,n){return u(e)&&(!u(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==Zt.OUTSIDE&&(!u(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var XV=new L(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);XV=L.inverseTransformation(XV,XV);function Sft(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;u(t._debugVolume)&&t._debugVolume.destroy();let a,c=h.clone(s.center);if(o.mode!==te.SCENE3D){c=L.multiplyByPoint(XV,c,c);let p=o.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(u(s.radius)){let p=s.radius;a=Fn.toWireframe(Ws.createGeometry(new Ws({radii:new h(p,p,p),vertexFormat:on.FLAT_VERTEX_FORMAT}))),t._debugVolume=new Sn({geometryInstances:new yt({geometry:a,modelMatrix:L.fromTranslation(c),attributes:{color:new kt(1,0,0,1)}}),appearance:new on({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Fn.toWireframe(Rl.createGeometry(Rl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:on.FLAT_VERTEX_FORMAT}))),t._debugVolume=new Sn({geometryInstances:new yt({geometry:a,modelMatrix:L.fromRotationTranslation(p,c,new L),attributes:{color:new kt(1,0,0,1)}}),appearance:new on({flat:!0,translucent:!1}),asynchronous:!1})}let l=o.commandList,f=o.commandList=[];t._debugVolume.update(o),e=f[0],o.useLogDepth&&(e=py.createLogDepthCommand(e,r).command);let d;u(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(r,n),u(d)&&(n.framebuffer=d),o.commandList=l}function ga(e,t,n,i,o){let r=t._frameState;if(u(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ei){e.execute(n,i);return}e.debugShowBoundingVolume&&u(e.boundingVolume)&&Sft(e,t,i,o),r.useLogDepth&&u(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.depth&&t._hdr&&u(e.derivedCommands)&&u(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&u(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(u(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}r.shadowState.lightShadowsEnabled&&e.receiveShadows&&u(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function QD(e,t,n,i){let o=t._frameState,r=e.derivedCommands;u(r)&&(o.useLogDepth&&u(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,u(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):u(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function Uge(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function wft(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function vft(e,t,n,i,o){let r=e.context;dy(i,Uge,e.camera.positionWC),u(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function Dft(e,t,n,i,o){let r=e.context;dy(i,wft,e.camera.positionWC),u(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function Ift(e,t,n,i){let o=e.context;dy(i,Uge,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var Pft=new vi,Oft=new gl,Rft=new Qt,Mft=new vr;function Gq(e,t){let n=e.camera,i=e.context,o=e.frameState,r=i.uniformState;r.updateCamera(n);let s;u(n.frustum.fov)?s=n.frustum.clone(Pft):u(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(Oft):u(n.frustum.width)?s=n.frustum.clone(Rft):s=n.frustum.clone(Mft),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(Ee.ENVIRONMENT);let a=o.passes,c=a.pick,l=e._environmentState,f=e._view,d=l.renderTranslucentDepthForPick,p=l.useWebVR;if(!c){let E=l.skyBoxCommand;if(u(E)&&ga(E,e,i,t),l.isSkyAtmosphereVisible&&ga(l.skyAtmosphereCommand,e,i,t),l.isSunVisible&&(l.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let v;l.useGlobeDepthFramebuffer?v=f.globeDepth.framebuffer:l.usePostProcess?v=f.sceneFramebuffer.framebuffer:v=l.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,v),t.framebuffer=v}l.isMoonVisible&&l.moonCommand.execute(i,t)}let g;l.useOIT?(u(e._executeOITFunction)||(e._executeOITFunction=function(E,v,I,M,B){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(E,v,I,M,B)}),g=e._executeOITFunction):a.render?g=vft:g=Dft;let m=f.frustumCommandsList,x=m.length,b=l.clearGlobeDepth,T=l.useDepthPlane,A=e._globeTranslucencyState,C=A.translucent,S=e._view.globeTranslucencyFramebuffer,w=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,R=e._depthPlane,N=l.usePostProcessSelected,F=n.position.z,_;for(let E=0;E<x;++E){let v=x-E-1,I=m[v];e.mode===te.SCENE2D?(n.position.z=F-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=v!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),w.execute(i,t),i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.GLOBE);let M=I.commands[Ee.GLOBE],B=I.indices[Ee.GLOBE];if(C)A.executeGlobeCommands(I,ga,S,e,t);else for(_=0;_<B;++_)ga(M[_],e,i,t);let H=f.globeDepth;if(u(H)&&l.useGlobeDepthFramebuffer&&H.executeCopyDepth(i,t),!l.renderTranslucentDepthForPick)if(r.updatePass(Ee.TERRAIN_CLASSIFICATION),M=I.commands[Ee.TERRAIN_CLASSIFICATION],B=I.indices[Ee.TERRAIN_CLASSIFICATION],C)A.executeGlobeClassificationCommands(I,ga,S,e,t);else for(_=0;_<B;++_)ga(M[_],e,i,t);if(b&&(w.execute(i,t),T&&R.execute(i,t)),!l.useInvertClassification||c||l.renderTranslucentDepthForPick){for(r.updatePass(Ee.CESIUM_3D_TILE),M=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)ga(M[_],e,i,t);if(B>0&&(u(H)&&l.useGlobeDepthFramebuffer&&(H.prepareColorTextures(i,b),H.executeUpdateDepth(i,t,b,H.depthStencilTexture)),!l.renderTranslucentDepthForPick))for(r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION),M=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)ga(M[_],e,i,t)}else{e._invertClassification.clear(i,t);let Y=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,r.updatePass(Ee.CESIUM_3D_TILE),M=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)ga(M[_],e,i,t);for(u(H)&&l.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),H.executeUpdateDepth(i,t,b,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),M=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<B;++_)ga(M[_],e,i,t);for(t.framebuffer=Y,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),B>0&&i.stencilBuffer&&O.execute(i,t),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION),M=I.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)ga(M[_],e,i,t)}for(B>0&&i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.VOXELS),M=I.commands[Ee.VOXELS],B=I.indices[Ee.VOXELS],M.length=B,Ift(e,ga,t,M),r.updatePass(Ee.OPAQUE),M=I.commands[Ee.OPAQUE],B=I.indices[Ee.OPAQUE],_=0;_<B;++_)ga(M[_],e,i,t);v!==0&&e.mode!==te.SCENE2D&&(s.near=I.near,r.updateFrustum(s));let U;if(!c&&l.useInvertClassification&&o.invertClassificationColor.alpha<1&&(U=e._invertClassification),r.updatePass(Ee.TRANSLUCENT),M=I.commands[Ee.TRANSLUCENT],M.length=I.indices[Ee.TRANSLUCENT],g(e,ga,t,M,U),I.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,ga,t,M,H.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,ga,t,I)),i.depthTexture&&e.useDepthPicking&&(l.useGlobeDepthFramebuffer||d)){let Y=H.depthStencilTexture,q=e._picking.getPickDepth(e,v);q.update(i,Y),q.executeCopyDepth(i,t)}if(c||!N)continue;let k=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=v!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),r.updatePass(Ee.GLOBE),M=I.commands[Ee.GLOBE],B=I.indices[Ee.GLOBE],C)A.executeGlobeCommands(I,QD,S,e,t);else for(_=0;_<B;++_)QD(M[_],e,i,t);for(b&&(w.framebuffer=t.framebuffer,w.execute(i,t),w.framebuffer=void 0),b&&T&&R.execute(i,t),r.updatePass(Ee.CESIUM_3D_TILE),M=I.commands[Ee.CESIUM_3D_TILE],B=I.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)QD(M[_],e,i,t);for(r.updatePass(Ee.OPAQUE),M=I.commands[Ee.OPAQUE],B=I.indices[Ee.OPAQUE],_=0;_<B;++_)QD(M[_],e,i,t);for(r.updatePass(Ee.TRANSLUCENT),M=I.commands[Ee.TRANSLUCENT],B=I.indices[Ee.TRANSLUCENT],_=0;_<B;++_)QD(M[_],e,i,t);t.framebuffer=k}}function Vge(e){e.context.uniformState.updatePass(Ee.COMPUTE);let n=e._environmentState.sunComputeCommand;u(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,o=i.length;for(let r=0;r<o;++r)i[r].execute(e._computeEngine)}function Lft(e,t){e.context.uniformState.updatePass(Ee.OVERLAY);let i=e.context,o=e._overlayCommandList,r=o.length;for(let s=0;s<r;++s)o[s].execute(i,t)}function Nft(e,t,n){let i=n.shadowMapCullingVolume,o=n.isPointLight,r=n.passes,s=r.length,a=t.length;for(let c=0;c<a;++c){let l=t[c];if(e.updateDerivedCommands(l),l.castShadows&&(l.pass===Ee.GLOBE||l.pass===Ee.CESIUM_3D_TILE||l.pass===Ee.OPAQUE||l.pass===Ee.TRANSLUCENT)&&e.isVisible(l,i))if(o)for(let f=0;f<s;++f)r[f].commandList.push(l);else if(s===1)r[0].commandList.push(l);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(l,p))r[d].commandList.push(l),f=!0;else if(f)break}}}}function zge(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let o=e.context,r=o.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,l=c.length;for(let d=0;d<l;++d)c[d].commandList.length=0;let f=e.frameState.commandList;Nft(e,f,a);for(let d=0;d<l;++d){let p=a.passes[d];r.updateCamera(p.camera),a.updatePass(o,d);let g=p.commandList.length;for(let m=0;m<g;++m){let x=p.commandList[m];r.updatePass(x.pass),ga(x.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var Fft=new h;ki.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?Bft(this,e,t):i!==te.SCENE2D||this._mapMode2D===du.ROTATE?Ay(!0,this,e,t):(Wq(this,e,t),qft(this,e))};function Bft(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;Wq(e,t,n),Hge(e),i.createPotentiallyVisibleSet(e),Vge(e),s||zge(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=lo.clone(o,e._cameraVR);c.frustum=o.frustum;let l=o.frustum.near,f=l*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=h.multiplyByScalar(c.right,d*.5,Fft);o.frustum.aspectRatio=a.width/a.height;let g=.5*d*l/f;h.add(c.position,p,o.position),o.frustum.xOffset=g,Gq(e,t),a.x=a.width,h.subtract(c.position,p,o.position),o.frustum.xOffset=-g,Gq(e,t),lo.clone(c,o)}var kft=new fe(Math.PI,P.PI_OVER_TWO),Uft=new h,Vft=new h,zft=new L,Hft=new L,Gft=new h,Wft=new h,jft=new qe;function qft(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=qe.clone(r,jft);t.viewport=s;let a=kft,c=Uft;e.mapProjection.project(a,c);let f=h.clone(o.position,Vft),d=L.clone(o.transform,Hft),p=o.frustum.clone();o._setTransform(L.IDENTITY);let g=L.computeViewportTransformation(s,0,1,zft),m=o.frustum.projectionMatrix,x=o.positionWC.y,b=h.fromElements(P.sign(x)*c.x-x,0,-o.positionWC.x,Gft),T=Rt.pointToGLWindowCoordinates(m,g,b,Wft);T.x=Math.floor(T.x);let A=s.x,C=s.width;if(x===0||T.x<=A||T.x>=A+C)Ay(!0,e,t);else if(Math.abs(A+C*.5-T.x)<1)s.width=T.x-s.x,o.position.x*=P.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!0,e,t),s.x=T.x,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!1,e,t);else if(T.x>A+C*.5){s.width=T.x-A;let S=o.frustum.right;o.frustum.right=c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!0,e,t),s.x=T.x,s.width=A+C-T.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=S-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!1,e,t)}else{s.x=T.x,s.width=A+C-T.x;let S=o.frustum.left;o.frustum.left=-c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!0,e,t),s.x=A,s.width=T.x-A,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=S-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ay(!1,e,t)}o._setTransform(d),h.clone(f,o.position),o.frustum=p.clone(),t.viewport=r}function Ay(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),Hge(t),r.createPotentiallyVisibleSet(t),e&&(u(i)&&Wq(t,n,i),Vge(t),s||zge(t)),Gq(t,n)}var Bge=new ns;ki.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==te.SCENE2D&&t.camera.frustum instanceof Qt||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{u(r)?(u(s)?(r.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!s.show||s._surface._tilesToRender.length>0):n.isReadyForAtmosphere=!0,n.skyAtmosphereCommand=r.update(e,s),u(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=u(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let x=u(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=u(x)?x.drawCommand:void 0,n.sunComputeCommand=u(x)?x.computeCommand:void 0,n.moonCommand=u(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=u(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===te.SCENE2D);(n.useDepthPlane=c&&this.mode===te.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==te.SCENE2D&&!o;let f=e.mode===te.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,d=e.cullingVolume,p=Bge.planes;for(let x=0;x<5;++x)p[x]=d.planes[x];d=Bge,n.isSkyAtmosphereVisible=u(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,d,f),n.isMoonVisible=this.isVisible(n.moonCommand,d,f);let g=this.specularEnvironmentMaps,m=this._specularEnvironmentMapAtlas;u(g)&&(!u(m)||m.url!==g)?(m=m&&m.destroy(),this._specularEnvironmentMapAtlas=new yh(g)):!u(g)&&u(m)&&(m.destroy(),this._specularEnvironmentMapAtlas=void 0),u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function Yft(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Gp({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),u(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Xft(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&e.mode===te.SCENE3D;if(o!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=o),t.shadowState.lightShadowsEnabled=!1,!!o){for(let r=0;r<i;++r)if(n[r]!==t.shadowState.shadowMaps[r]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let r=0;r<i;++r){let s=n[r];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function Hge(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),Yft(e),Xft(e),e._globe&&e._globe.render(t)}function Wq(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,c=e._frameState.passes.pick;u(s.globeDepth)&&(s.globeDepth.picking=c);let l=r.useWebVR;r.originalFramebuffer=t.framebuffer,u(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!l?e._sunPostProcess=new qV:u(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!u(e.sun)&&u(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;z.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=u(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&u(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let m=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||m.length>0||m.ambientOcclusion.enabled||m.fxaa.enabled||m.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),m.update(i,o.useLogDepth,e._hdr),m.clear(i),x=r.usePostProcess=m.ready,r.usePostProcessSelected=x&&m.hasSelected),r.isSunVisible&&e.sunBloom&&!l?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),u(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&u(t.framebuffer)&&e.invertClassification){let T;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(T=s.globeDepth.framebuffer),u(T)||i.depthTexture){if(e._invertClassification.previousFramebuffer=T,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&g){let A=e._invertClassification.unclassifiedCommand,C=A.derivedCommands;C.oit=p.createDerivedCommands(A,i,C.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}ki.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;u(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,l=s?o.colorFramebufferManager:void 0,f=i.sceneFramebuffer._colorFramebuffer,d=i.sceneFramebuffer.idFramebuffer;r&&(e.framebuffer=a?f.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let g=f;s&&!r&&(g=l);let m=this.postProcessStages,x=g.getColorTexture(0),b=d.getColorTexture(0),T=y(l,f).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function Kft(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function Zft(e){let t=e._globe,i=e.camera.positionCartographic;if(u(t)&&t.show&&u(i))return t.getHeight(i)}function $ft(e){let t=e.camera,n=e._mode,i=e.globe,o=e._screenSpaceCameraController,r=t.positionCartographic;if(!u(r))return!1;if(!o.onMap()&&r.height<0)return!0;if(!u(i)||!i.show||n===te.SCENE2D||n===te.MORPHING)return!1;let s=e._globeHeight;return u(s)&&r.height<s}ki.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=Zft(this),this._cameraUnderground=$ft(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),u(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function Qft(e,t){if(e.debugShowFramesPerSecond){if(!u(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new gy({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else u(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function Jft(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),u(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function edt(e){let t=e._frameState;e.primitives.postPassesUpdate(t),ic.update()}var tdt=new z;function ndt(e){let t=e._frameState,n=e.context,i=n.uniformState,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Aft;let r=y(e.backgroundColor,z.BLACK);e._hdr&&(r=z.clone(r,tdt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,e.fog.update(t),i.update(t);let s=e.shadowMap;u(s)&&s.enabled&&(!u(e.light)||e.light instanceof m_?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=qe.clone(a,c.viewport),u(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,Lft(e,c),u(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function qx(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function idt(e){return e._picking.updateMostDetailedRayPicks(e)}ki.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,u(e)||(e=J.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===te.MORPHING;if(!i&&u(this.maximumRenderTimeChange)&&u(this._lastRenderTime)){let o=Math.abs(J.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=J.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);kge(this,o,e),t.newFrame=!0}qx(this,Jft),this.primitives.show&&(qx(this,idt),qx(this,odt),qx(this,rdt),i||qx(this,sdt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),qx(this,ndt)),Qft(this,i),qx(this,edt),Kft(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};ki.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};ki.prototype.requestRender=function(){this._renderRequested=!0};ki.prototype.clampLineWidth=function(e){return Math.max(zt.minimumAliasedLineWidth,Math.min(e,zt.maximumAliasedLineWidth))};ki.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};ki.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};ki.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};ki.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function odt(e){let t=e._frameState;Vq.camera=t.camera,Vq.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,Vq)}function rdt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;zq.camera=e.preloadFlightCamera,zq.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,zq)}function sdt(e){e.primitives.updateForPass(e._frameState,Cft)}ki.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};ki.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};ki.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};ki.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};ki.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};ki.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};ki.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};ki.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};ki.prototype.cartesianToCanvasCoordinates=function(e,t){return $i.wgs84ToWindowCoordinates(this,e,t)};ki.prototype.completeMorph=function(){this._transitioner.completeMorph()};ki.prototype.morphTo2D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};ki.prototype.morphToColumbusView=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};ki.prototype.morphTo3D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function adt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){u(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{u(e)&&u(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}ki.prototype.setTerrain=function(e){return adt(this,e),e};ki.prototype.isDestroyed=function(){return!1};ki.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),u(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,le(this)};var ZV=ki;var JD=`float interpolateByDistance(vec4 nearFarScalar, float distance)
- {
- float startDistance = nearFarScalar.x;
- float startValue = nearFarScalar.y;
- float endDistance = nearFarScalar.z;
- float endValue = nearFarScalar.w;
- float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0);
- return mix(startValue, endValue, t);
- }
- vec3 getLightDirection(vec3 positionWC)
- {
- float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
- vec3 lightDirection =
- positionWC * float(lightEnum == 0.0) +
- czm_lightDirectionWC * float(lightEnum == 1.0) +
- czm_sunDirectionWC * float(lightEnum == 2.0);
- return normalize(lightDirection);
- }
- void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe)
- {
- float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z;
-
- float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0;
- float distanceAdjustMax = czm_ellipsoidRadii.x;
- float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0;
- float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0);
-
-
- float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust;
- float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust;
-
- vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
- vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
- czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection);
- underTranslucentGlobe = 0.0;
-
- #if defined(GLOBE_TRANSLUCENT)
-
- czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust);
- if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) {
-
-
- vec3 direction = normalize(positionWC);
- czm_ray ellipsoidRay = czm_ray(positionWC, -direction);
- czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii);
- vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start);
-
- float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth));
-
- opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth));
- vec3 horizonColor = vec3(0.1, 0.2, 0.3);
- vec3 nearColor = vec3(0.0);
- rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity);
-
-
- underTranslucentGlobe = 1.0;
- return;
- }
- #endif
- computeScattering(
- primaryRay,
- length(cameraToPositionWC),
- lightDirection,
- atmosphereInnerRadius,
- rayleighColor,
- mieColor,
- opacity
- );
-
-
- float cameraHeight = czm_eyeHeight + atmosphereInnerRadius;
- float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;
- opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0);
-
- float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0;
- opacity *= pow(nightAlpha, 0.5);
- }
- `;var $V=`in vec3 v_outerPositionWC;
- uniform vec3 u_hsbShift;
- #ifndef PER_FRAGMENT_ATMOSPHERE
- in vec3 v_mieColor;
- in vec3 v_rayleighColor;
- in float v_opacity;
- in float v_translucent;
- #endif
- void main (void)
- {
- vec3 lightDirection = getLightDirection(v_outerPositionWC);
-
- vec3 mieColor;
- vec3 rayleighColor;
- float opacity;
- float translucent;
- #ifdef PER_FRAGMENT_ATMOSPHERE
- computeAtmosphereScattering(
- v_outerPositionWC,
- lightDirection,
- rayleighColor,
- mieColor,
- opacity,
- translucent
- );
- #else
- mieColor = v_mieColor;
- rayleighColor = v_rayleighColor;
- opacity = v_opacity;
- translucent = v_translucent;
- #endif
- vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity);
- #ifndef HDR
- color.rgb = czm_acesTonemapping(color.rgb);
- color.rgb = czm_inverseGamma(color.rgb);
- #endif
- #ifdef COLOR_CORRECT
-
- vec3 hsb = czm_RGBToHSB(color.rgb);
-
- hsb.x += u_hsbShift.x;
- hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0);
- hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0;
-
- color.rgb = czm_HSBToRGB(hsb);
- #endif
-
-
-
-
- if (translucent == 0.0) {
- color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime);
- }
- out_FragColor = color;
- }
- `;var QV=`in vec4 position;
- out vec3 v_outerPositionWC;
- #ifndef PER_FRAGMENT_ATMOSPHERE
- out vec3 v_mieColor;
- out vec3 v_rayleighColor;
- out float v_opacity;
- out float v_translucent;
- #endif
- void main(void)
- {
- vec4 positionWC = czm_model * position;
- vec3 lightDirection = getLightDirection(positionWC.xyz);
- #ifndef PER_FRAGMENT_ATMOSPHERE
- computeAtmosphereScattering(
- positionWC.xyz,
- lightDirection,
- v_rayleighColor,
- v_mieColor,
- v_opacity,
- v_translucent
- );
- #endif
-
- v_outerPositionWC = positionWC.xyz;
- gl_Position = czm_modelViewProjection * position;
- }
- `;function uE(e){e=y(e,ie.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=L.fromScale(n),this._modelMatrix=new L,this._command=new et({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(uE.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});uE.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var jq=new L;uE.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==te.SCENE3D&&n!==te.MORPHING||!e.passes.render)return;let i=L.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,jq),o=L.multiplyTransformation(i,wo.Y_UP_TO_Z_UP,jq),r=L.multiply(this._scaleMatrix,o,jq);L.clone(r,this._modelMatrix);let s=e.context,a=cdt(this),c=e.globeTranslucencyState.translucent,l=this.perFragmentAtmosphere||c||!u(t)||!t.show,f=this._command;if(!u(f.vertexArray)){let p=Ws.createGeometry(new Ws({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=ti.fromGeometry({context:s,geometry:p,attributeLocations:Fn.createAttributeLocations(p),bufferUsage:Be.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|l<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),l&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new ze({defines:p,sources:[oy,JD,QV]}),m=new ze({defines:p,sources:[oy,JD,$V]});this._spSkyAtmosphere=Kt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function cdt(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}uE.prototype.isDestroyed=function(){return!1};uE.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),le(this)};var JV=uE;var ez=`uniform samplerCube u_cubeMap;
- in vec3 v_texCoord;
- void main()
- {
- vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord));
- out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);
- }
- `;var tz=`in vec3 position;
- out vec3 v_texCoord;
- void main()
- {
- vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));
- gl_Position = czm_projection * vec4(p, 1.0);
- v_texCoord = position.xyz;
- }
- `;function nz(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new et({modelMatrix:L.clone(L.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}nz.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==te.SCENE3D&&e.mode!==te.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let r=this.sources;typeof r.positiveX=="string"?ER(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new rc({context:i,source:r}))}let o=this._command;if(!u(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=Rl.createGeometry(Rl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY})),s=this._attributeLocations=Fn.createAttributeLocations(r);o.vertexArray=ti.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Be.STATIC_DRAW}),o.renderState=Ve.fromCache({blending:un.ALPHA_BLEND})}if(!u(o.shaderProgram)||this._useHdr!==t){let r=new ze({defines:[t?"HDR":""],sources:[ez]});o.shaderProgram=Kt.fromCache({context:i,vertexShaderSource:tz,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(u(this._cubeMap))return o};nz.prototype.isDestroyed=function(){return!1};nz.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),le(this)};var iz=nz;var oz=`uniform sampler2D u_texture;
- in vec2 v_textureCoordinates;
- void main()
- {
- vec4 color = texture(u_texture, v_textureCoordinates);
- out_FragColor = czm_gammaCorrect(color);
- }
- `;var rz=`uniform float u_radiusTS;
- in vec2 v_textureCoordinates;
- vec2 rotate(vec2 p, vec2 direction)
- {
- return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x);
- }
- vec4 addBurst(vec2 position, vec2 direction, float lengthScalar)
- {
- vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75);
- float radius = length(rotatedPosition) * lengthScalar;
- float burst = 1.0 - smoothstep(0.0, 0.55, radius);
- return vec4(burst);
- }
- void main()
- {
- float lengthScalar = 2.0 / sqrt(2.0);
- vec2 position = v_textureCoordinates - vec2(0.5);
- float radius = length(position) * lengthScalar;
- float surface = step(radius, u_radiusTS);
- vec4 color = vec4(vec2(1.0), surface + 0.2, surface);
- float glow = 1.0 - smoothstep(0.0, 0.55, radius);
- color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75;
- vec4 burst = vec4(0.0);
-
-
-
-
-
-
-
-
-
-
- burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar);
- burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar);
- burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar);
- burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar);
- burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar);
- burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar);
-
- color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15;
- out_FragColor = clamp(color, vec4(0.0), vec4(1.0));
- }
- `;var sz=`in vec2 direction;
- uniform float u_size;
- out vec2 v_textureCoordinates;
- void main()
- {
- vec4 position;
- if (czm_morphTime == 1.0)
- {
- position = vec4(czm_sunPositionWC, 1.0);
- }
- else
- {
- position = vec4(czm_sunPositionColumbusView.zxy, 1.0);
- }
-
- vec4 positionEC = czm_view * position;
- vec4 positionWC = czm_eyeToWindowCoordinates(positionEC);
-
- vec2 halfSize = vec2(u_size * 0.5);
- halfSize *= ((direction * 2.0) - 1.0);
-
- gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0);
-
- v_textureCoordinates = direction;
- }
- `;function tI(){this.show=!0,this._drawCommand=new et({primitiveType:Le.TRIANGLES,boundingVolume:new se,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new se,this._boundingVolume2D=new se,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(tI.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var ldt=new V,udt=new V,fdt=new oe,eI=new oe;tI.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===te.SCENE2D||i===te.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!u(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let S=Math.max(r,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let w=n?o.halfFloatingPointTexture?Ye.HALF_FLOAT:Ye.FLOAT:Ye.UNSIGNED_BYTE;this._texture=new Pt({context:o,width:S,height:S,pixelFormat:rt.RGBA,pixelDatatype:w}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new Mf({fragmentShaderSource:rz,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!u(a.vertexArray)){let S={direction:0},w=new Uint8Array(4*2);w[0]=0,w[1]=0,w[2]=255,w[3]=0,w[4]=255,w[5]=255,w[6]=0,w[7]=255;let D=ut.createVertexBuffer({context:o,typedArray:w,usage:Be.STATIC_DRAW}),O=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],R=ut.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Be.STATIC_DRAW,indexDatatype:ke.UNSIGNED_SHORT});a.vertexArray=new ti({context:o,attributes:O,indexBuffer:R}),a.shaderProgram=Kt.fromCache({context:o,vertexShaderSource:sz,fragmentShaderSource:oz,attributeLocations:S}),a.renderState=Ve.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,l=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=l.z,d.center.y=l.x,d.center.z=l.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===te.SCENE3D?se.clone(f,a.boundingVolume):i===te.COLUMBUS_VIEW&&se.clone(d,a.boundingVolume);let p=$i.computeActualWgs84Position(e,c,eI),g=h.magnitude(h.subtract(p,e.camera.position,eI)),m=o.uniformState.projection,x=fdt;x.x=0,x.y=0,x.z=-g,x.w=1;let b=L.multiplyByVector(m,x,eI),T=$i.clipToGLWindowCoordinates(t.viewport,b,ldt);x.x=P.SOLAR_RADIUS;let A=L.multiplyByVector(m,x,eI),C=$i.clipToGLWindowCoordinates(t.viewport,A,udt);return this._size=V.magnitude(V.subtract(C,T,eI)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};tI.prototype.isDestroyed=function(){return!1};tI.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),le(this)};var az=tI;function fE(e){return $t(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function ddt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!u(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let r="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(r,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function Gge(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,u(e._scene)&&(e._scene.pixelRatio=t),t}function Wge(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=Gge(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function jge(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;u(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Yx(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Bt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Bt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=u(t.creditContainer)?In(t.creditContainer):n;c.appendChild(a);let l=u(t.creditViewport)?In(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=l,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._clock=u(t.clock)?t.clock:new Vh,Wge(this);try{let p=new ZV({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:l,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=h.UNIT_Z,Gge(this),jge(this);let g=y(p.mapProjection.ellipsoid,ie.WGS84),m=t.globe;u(m)||(m=new sU(g)),m!==!1&&(p.globe=m,p.globe.shadows=y(t.terrainShadows,gn.RECEIVE_ONLY));let x=t.skyBox;u(x)||(x=new iz({sources:{positiveX:fE("px"),negativeX:fE("mx"),positiveY:fE("py"),negativeY:fE("my"),positiveZ:fE("pz"),negativeZ:fE("mz")}})),x!==!1&&(p.skyBox=x,p.sun=new az,p.moon=new mU);let b=t.skyAtmosphere;u(b)||(b=new JV(g),b.show=t.globe!==!1&&m.show),b!==!1&&(p.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(u(T)||(T=ha.fromWorldImagery()),p.imageryLayers.add(T)),u(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),u(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Af(i),u(t.sceneMode)&&(t.sceneMode===te.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===te.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let A=this;this._onRenderError=function(C,S){if(A._useDefaultRenderLoop=!1,A._renderLoopRunning=!1,A._showRenderLoopErrors){let w="An error occurred while rendering. Rendering has stopped.";A.showErrorPanel(w,void 0,S)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(f){let g="Error constructing CesiumWidget.",m='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(g,m,p)}throw p}}Object.defineProperties(Yx.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&ddt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});Yx.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),u(window.addEventListener)&&window.addEventListener("resize",c,!1);let l=u(t),f=u(n);if(l||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=Up(n);l||(typeof n=="string"&&(n=new Error(n)),t=Up({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e}
- ${t}
- ${m}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let b=document.createElement("span");b.className="cesium-widget-errorPanel-more-details",b.appendChild(document.createTextNode("See more...")),x.appendChild(b),x.onclick=function(T){x.removeChild(b),x.appendChild(document.createTextNode(m)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){u(c)&&u(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};Yx.prototype.isDestroyed=function(){return!1};Yx.prototype.destroy=function(){u(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),le(this)};Yx.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,Wge(this),jge(this),this._scene.requestRender())};Yx.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var cz=Yx;var lz=`uniform sampler2D u_noiseTexture;
- uniform vec3 u_noiseTextureDimensions;
- uniform float u_noiseDetail;
- in vec2 v_offset;
- in vec3 v_maximumSize;
- in vec4 v_color;
- in float v_slice;
- in float v_brightness;
- float wrap(float value, float rangeLength) {
- if(value < 0.0) {
- float absValue = abs(value);
- float modValue = mod(absValue, rangeLength);
- return mod(rangeLength - modValue, rangeLength);
- }
- return mod(value, rangeLength);
- }
- vec3 wrapVec(vec3 value, float rangeLength) {
- return vec3(wrap(value.x, rangeLength),
- wrap(value.y, rangeLength),
- wrap(value.z, rangeLength));
- }
- vec2 voxelToUV(vec3 voxelIndex) {
- float textureSliceWidth = u_noiseTextureDimensions.x;
- float noiseTextureRows = u_noiseTextureDimensions.y;
- float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
- float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth;
- vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared,
- inverseNoiseTextureRows / textureSliceWidth);
- vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth);
- float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows);
- float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows);
- float xPixelCoord = wrappedIndex.x + column * textureSliceWidth;
- float yPixelCoord = wrappedIndex.y + row * textureSliceWidth;
- return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions;
- }
- vec4 lerpSamplesX(vec3 voxelIndex, float x) {
- vec2 uv0 = voxelToUV(voxelIndex);
- vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0));
- vec4 sample0 = texture(u_noiseTexture, uv0);
- vec4 sample1 = texture(u_noiseTexture, uv1);
- return mix(sample0, sample1, x);
- }
- vec4 sampleNoiseTexture(vec3 position) {
- float textureSliceWidth = u_noiseTextureDimensions.x;
- vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0);
- vec3 lerpValue = fract(recenteredPos);
- vec3 voxelIndex = floor(recenteredPos);
- vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x);
- vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x);
- vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x);
- vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x);
- vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y);
- vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y);
- return mix(yLerp0, yLerp1, lerpValue.z);
- }
- bool intersectSphere(vec3 origin, vec3 dir, float slice,
- out vec3 point, out vec3 normal) {
- float A = dot(dir, dir);
- float B = dot(origin, dir);
- float C = dot(origin, origin) - 0.25;
- float discriminant = (B * B) - (A * C);
- if(discriminant < 0.0) {
- return false;
- }
- float root = sqrt(discriminant);
- float t = (-B - root) / A;
- if(t < 0.0) {
- t = (-B + root) / A;
- }
- point = origin + t * dir;
- if(slice >= 0.0) {
- point.z = (slice / 2.0) - 0.5;
- if(length(point) > 0.5) {
- return false;
- }
- }
- normal = normalize(point);
- point -= czm_epsilon2 * normal;
- return true;
- }
- bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice,
- out vec3 point, out vec3 normal) {
- if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) {
- return false;
- }
- vec3 o = (origin - center) / scale;
- vec3 d = dir / scale;
- vec3 p, n;
- bool intersected = intersectSphere(o, d, slice, p, n);
- if(intersected) {
- point = (p * scale) + center;
- normal = n;
- }
- return intersected;
- }
- vec2 phaseShift2D(vec2 p, vec2 freq) {
- return (czm_pi / 2.0) * sin(freq.yx * p.yx);
- }
- vec2 phaseShift3D(vec3 p, vec2 freq) {
- return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z));
- }
- const float T0 = 0.6;
- const float k = 0.1;
- const float C0 = 0.8;
- const float FX0 = 0.6;
- const float FY0 = 0.6;
- const int octaves = 5;
- float T(vec3 point) {
- vec2 sum = vec2(0.0);
- float Ci = C0;
- vec2 FXY = vec2(FX0, FY0);
- vec2 PXY = vec2(0.0);
- for(int i = 1; i <= octaves; i++) {
- PXY = phaseShift3D(point, FXY);
- Ci *= 0.707;
- FXY *= 2.0;
- vec2 sinTerm = sin(FXY * point.xy + PXY);
- sum += Ci * sinTerm + vec2(T0);
- }
- return k * sum.x * sum.y;
- }
- const float a = 0.5;
- const float t = 0.4;
- const float s = 0.25;
- float I(float Id, float Is, float It) {
- return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a;
- }
- const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7));
- vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice,
- float brightness) {
- vec3 cloudPoint, cloudNormal;
- if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice,
- cloudPoint, cloudNormal)) {
- return vec4(0.0);
- }
- float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0);
- float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0);
- float It = T(cloudPoint);
- float intensity = I(Id, Is, It);
- vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0));
- vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint);
- float W = noise.x;
- float W2 = noise.y;
- float W3 = noise.z;
-
-
-
-
-
-
- float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0);
- float TR = pow(ndDot, 3.0) - W;
- TR *= 1.3;
-
-
-
-
-
-
-
- float minusDot = 0.5 - ndDot;
-
-
-
-
-
-
-
- TR -= min(minusDot * W2, 0.0);
-
-
-
-
- TR -= 0.8 * (minusDot + 0.25) * W3;
-
-
-
-
-
- float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR);
-
-
- shading = clamp(shading + 0.2, 0.3, 1.0);
-
- vec3 finalColor = mix(vec3(0.5), shading * color, 1.15);
- return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color;
- }
- void main() {
- #ifdef DEBUG_BILLBOARDS
- out_FragColor = vec4(0.0, 0.5, 0.5, 1.0);
- #endif
-
-
- vec2 coordinate = v_maximumSize.xy * v_offset;
- vec3 ellipsoidScale = 0.82 * v_maximumSize;
- vec3 ellipsoidCenter = vec3(0.0);
- float zOffset = max(ellipsoidScale.z - 10.0, 0.0);
- vec3 eye = vec3(0, 0, -10.0 - zOffset);
- vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye);
- vec3 rayOrigin = eye;
- #ifdef DEBUG_ELLIPSOIDS
- vec3 point, normal;
- if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice,
- point, normal)) {
- out_FragColor = v_brightness * v_color;
- }
- #else
- #ifndef DEBUG_BILLBOARDS
- vec4 cloud = drawCloud(rayOrigin, rayDir,
- ellipsoidCenter, ellipsoidScale, v_slice, v_brightness);
- if(cloud.w < 0.01) {
- discard;
- }
- out_FragColor = cloud;
- #endif
- #endif
- }
- `;var uz=`#ifdef INSTANCED
- in vec2 direction;
- #endif
- in vec4 positionHighAndScaleX;
- in vec4 positionLowAndScaleY;
- in vec4 packedAttribute0;
- in vec4 packedAttribute1;
- in vec4 color;
- out vec2 v_offset;
- out vec3 v_maximumSize;
- out vec4 v_color;
- out float v_slice;
- out float v_brightness;
- void main() {
-
- vec3 positionHigh = positionHighAndScaleX.xyz;
- vec3 positionLow = positionLowAndScaleY.xyz;
- vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w);
- float show = packedAttribute0.x;
- float brightness = packedAttribute0.y;
- vec2 coordinates = packedAttribute0.wz;
- vec3 maximumSize = packedAttribute1.xyz;
- float slice = packedAttribute1.w;
- #ifdef INSTANCED
- vec2 dir = direction;
- #else
- vec2 dir = coordinates;
- #endif
- vec2 offset = dir - vec2(0.5, 0.5);
- vec2 scaledOffset = scale * offset;
- vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
- vec4 positionEC = czm_modelViewRelativeToEye * p;
- positionEC.xy += scaledOffset;
-
- positionEC.xyz *= show;
- gl_Position = czm_projection * positionEC;
- v_offset = offset;
- v_maximumSize = maximumSize;
- v_color = color;
- v_slice = slice;
- v_brightness = brightness;
- }
- `;var fz=`uniform vec3 u_noiseTextureDimensions;
- uniform float u_noiseDetail;
- uniform vec3 u_noiseOffset;
- in vec2 v_position;
- float wrap(float value, float rangeLength) {
- if(value < 0.0) {
- float absValue = abs(value);
- float modValue = mod(absValue, rangeLength);
- return mod(rangeLength - modValue, rangeLength);
- }
- return mod(value, rangeLength);
- }
- vec3 wrapVec(vec3 value, float rangeLength) {
- return vec3(wrap(value.x, rangeLength),
- wrap(value.y, rangeLength),
- wrap(value.z, rangeLength));
- }
- vec3 random3(vec3 p) {
- float dot1 = dot(p, vec3(127.1, 311.7, 932.8));
- float dot2 = dot(p, vec3(269.5, 183.3, 421.4));
- return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2));
- }
- vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) {
- float textureSliceWidth = u_noiseTextureDimensions.x;
- vec3 cell = centerCell + offset;
- cell = wrapVec(cell, textureSliceWidth / u_noiseDetail);
- cell += floor(u_noiseOffset / u_noiseDetail);
- vec3 p = offset + random3(cell);
- return p;
- }
- float worleyNoise(vec3 p, float freq) {
- vec3 centerCell = floor(p * freq);
- vec3 pointInCell = fract(p * freq);
- float shortestDistance = 1000.0;
- for(float z = -1.0; z <= 1.0; z++) {
- for(float y = -1.0; y <= 1.0; y++) {
- for(float x = -1.0; x <= 1.0; x++) {
- vec3 offset = vec3(x, y, z);
- vec3 point = getWorleyCellPoint(centerCell, offset, freq);
- float distance = length(pointInCell - point);
- if(distance < shortestDistance) {
- shortestDistance = distance;
- }
- }
- }
- }
- return shortestDistance;
- }
- const float MAX_FBM_ITERATIONS = 10.0;
- float worleyFBMNoise(vec3 p, float octaves, float scale) {
- float noise = 0.0;
- float freq = 1.0;
- float persistence = 0.625;
- for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) {
- if(i >= octaves) {
- break;
- }
- noise += worleyNoise(p * scale, freq * scale) * persistence;
- persistence *= 0.5;
- freq *= 2.0;
- }
- return noise;
- }
- void main() {
- float textureSliceWidth = u_noiseTextureDimensions.x;
- float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
- float x = mod(v_position.x, textureSliceWidth);
- float y = mod(v_position.y, textureSliceWidth);
- float sliceRow = floor(v_position.y / textureSliceWidth);
- float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth;
- vec3 position = vec3(x, y, z);
- position /= u_noiseDetail;
- float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0);
- float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0);
- float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0);
- out_FragColor = vec4(worley0, worley1, worley2, 1.0);
- }
- `;var dz=`uniform vec3 u_noiseTextureDimensions;
- in vec2 position;
- out vec2 v_position;
- void main()
- {
- gl_Position = vec4(position, 0.1, 1.0);
- float textureSliceWidth = u_noiseTextureDimensions.x;
- float noiseTextureRows = u_noiseTextureDimensions.y;
- float inverseNoiseTextureRows = u_noiseTextureDimensions.z;
- vec2 transformedPos = (position * 0.5) + vec2(0.5);
- transformedPos *= textureSliceWidth;
- transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows;
- transformedPos.y *= noiseTextureRows;
- v_position = transformedPos;
- }
- `;var hz=`
- in vec2 v_textureCoordinates;
- void main()
- {
- czm_materialInput materialInput;
-
- materialInput.s = v_textureCoordinates.s;
- materialInput.st = v_textureCoordinates;
- materialInput.str = vec3(v_textureCoordinates, 0.0);
- materialInput.normalEC = vec3(0.0, 0.0, -1.0);
-
- czm_material material = czm_getMaterial(materialInput);
- out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
- }
- `;function mE(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var Xx=new ce;function hdt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}mE.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)hdt(e,g,p,s)||s.push(new dE(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,Xx);let a=Xx.west,c=Xx.north;r.tileXYToRectangle(i,o,e,Xx);let l=Xx.east,f=Xx.south,d=new ydt(e,a,f,l,c);for(let p=0;p<s.length;++p){let g=s[p];qq(g.extent,d)&&xdt(this._maximumLevel,g,d)}};mE.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(hE(i.extent,e)){t=i;break}}return u(t)?nI(void 0,t,e):-1};var mdt=[],pdt=[],_dt=new ce,gdt=new ce;mE.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=mdt;t.length=0,e.east<e.west?(t.push(ce.fromRadians(-Math.PI,e.south,e.east,e.north,_dt)),t.push(ce.fromRadians(e.west,e.south,Math.PI,e.north,gdt))):t.push(e);let n=pdt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)iI(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(u(n[i])&&n[i].length===0)return i;return 0};var qge=new fe;mE.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,Xx);return ce.center(i,qge),this.computeMaximumLevelAtPosition(qge)>=e};mE.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function dE(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(dE.prototype,{nw:{get:function(){return this._nw||(this._nw=new dE(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new dE(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new dE(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new dE(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function ydt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function qq(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function xdt(e,t,n){for(;t.level<e;)if(mz(t.nw.extent,n))t=t.nw;else if(mz(t.ne.extent,n))t=t.ne;else if(mz(t.sw.extent,n))t=t.sw;else if(mz(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Eo(t.rectangles,n.level,bdt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function bdt(e,t){return e.level-t}function mz(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function hE(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function nI(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&hE(t._nw.extent,n),s=t._ne&&hE(t._ne.extent,n),a=t._sw&&hE(t._sw.extent,n),c=t._se&&hE(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,nI(t,t._nw,n))),s&&(i=Math.max(i,nI(t,t._ne,n))),a&&(i=Math.max(i,nI(t,t._sw,n))),c&&(i=Math.max(i,nI(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];hE(a,n)&&(i=a.level)}t=t.parent}return i}function iI(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||qq(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Tdt(e[s.level],s)}iI(e,t._nw,n),iI(e,t._ne,n),iI(e,t._sw,n),iI(e,t._se,n)}function Tdt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];qq(o,t)?(o.west<t.west&&n.push(new ce(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new ce(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new ce(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new ce(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var ym=mE;var Adt=15;function Yge(e){this.ellipsoid=y(e.ellipsoid,ie.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}Yge.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function Cdt(e,t){let n=t.copyrightText;u(n)&&(e.credit=new bt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=ce.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Gi(s);else if(o===3857){let l=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>l&&(t.extent.xmax=l),t.extent.ymax>l&&(t.extent.ymax=l),t.extent.xmin<-l&&(t.extent.xmin=-l),t.extent.ymin<-l&&(t.extent.ymin=-l),s.rectangleSouthwestInMeters=new V(r.xmin,r.ymin),s.rectangleNortheastInMeters=new V(r.xmax,r.ymax),e.tilingScheme=new qr(s)}else throw new ue("Invalid spatial reference");let a=t.tileInfo;if(!u(a))throw new ue("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Md.LERC:Md.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new ym(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new ym(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),u(t.minValues)&&u(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function Edt(e,t,n){try{let i=await t.fetchJson();Cdt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Co.reportError(void 0,n,u(n)?n._errorEvent:void 0,o),i}}function Cy(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new pe}Object.defineProperties(Cy.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});Cy.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new Yge(t);await Edt(o,i);let r=new Cy(t);return o.build(r),r._resource=n,r};Cy.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!u(Yq(this,n+1,e*2,t*2))){let d=Xge(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!u(c)||!u(s))return;let l=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new Wa({buffer:d[0],width:l._width,height:l._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):Adt,structure:l._terrainDataStructure,encoding:l._encoding})}).catch(function(d){return u(a)&&a.state===Qn.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=Qn.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function Yq(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}Cy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Cy.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=Yq(this,n,e,t);if(u(i))return i;Xge(this,n,e,t)};Cy.prototype.loadTileDataAvailability=function(e,t,n){};function Sdt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},l=new V(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=l.x,g=d?l.y+1:l.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+l.x]!==s){f=!0;break}f?(a.push(new V(l.x,e.y)),--l.x,--p,c.endX=l.x):l.x===o?(c.endX=l.x,f=!0):++l.x}if(!d){let m=l.y*t;for(let x=e.x;x<=p;++x)if(i[m+x]!==s){d=!0;break}d?(a.push(new V(e.x,l.y)),--l.y,c.endY=l.y):l.y===r?(c.endY=l.y,d=!0):++l.y}}return{endingIndices:a,range:c,value:s}}function wdt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new V(0,0)];for(;a.length>0;){let c=a.pop(),l=Sdt(c,n,i,o);if(l.value===1){let d=l.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=l.endingIndices;f.length>0&&(a=a.concat(f))}return r}function Xge(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(u(c[a]))return c[a];let l=new Ko({throttle:!1,throttleByServer:!0,type:ts.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:l}).fetchJson();return u(d)?(d=d.then(function(p){let g=wdt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let m=e._tilesAvailable;for(let x=0;x<g.length;++x){let b=g[x];m.addAvailableTileRange(t,b.startX,b.startY,b.endX,b.endY)}return Yq(e,t,n,i)}),c[a]={promise:d,request:l},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:l}):{}}var Kge=Cy;var Zge="https://dev.virtualearth.net/REST/v1/Locations";function Xq(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};u(e.culture)&&(n.culture=e.culture),this._resource=new ve({url:Zge,queryParameters:n}),this._credit=new bt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(Xq.prototype,{url:{get:function(){return Zge}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});Xq.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],l=r[3];return{displayName:o.name,destination:ce.fromDegrees(a,s,l,c)}})})};var $ge=Xq;function Kq(){}Object.defineProperties(Kq.prototype,{credit:{get:function(){}}});Kq.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var Qge=Kq;var vdt=new oe,Jge=new h,pE=new h;function Ddt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){u(c)||(c=new h);let l=(a-i)*o;return h.lerp(r,s,l,c)}}return function(i,o){u(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=vdt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,l,f,d,p;return r===0?(c=t[0],l=t[1],f=e.firstTangent,d=h.subtract(t[2],c,Jge),h.multiplyByScalar(d,.5,d),p=L.multiplyByVector(O0.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],l=t[r+1],d=e.lastTangent,f=h.subtract(l,t[r-1],Jge),h.multiplyByScalar(f,.5,f),p=L.multiplyByVector(O0.hermiteCoefficientMatrix,a,a)):(c=t[r-1],l=t[r],f=t[r+1],d=t[r+2],p=L.multiplyByVector(Ey.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(l,p.y,pE),h.add(o,pE,o),h.multiplyByScalar(f,p.z,pE),h.add(o,pE,o),h.multiplyByScalar(d,p.w,pE),h.add(o,pE,o)}}var Idt=new h,Pdt=new h;function Ey(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(u(i)||(i=Idt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!u(o))){let r=t.length-1;o=Pdt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=Ddt(this),this._lastTimeIndex=0}Object.defineProperties(Ey.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});Ey.catmullRomCoefficientMatrix=new L(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);Ey.prototype.findTimeInterval=io.prototype.findTimeInterval;Ey.prototype.wrapTime=io.prototype.wrapTime;Ey.prototype.clampTime=io.prototype.clampTime;Ey.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var eye=Ey;var pz={};pz.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){u(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let l=s+a+c,f,d,p,g,m,x;return l===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(m=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),m!==1&&(r.push(-1),r.push(2),r.push(0),r.push(m))):l===2?!s&&n!==e?(g=(e-i)/(n-i),m=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(m)):!a&&i!==e?(x=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):l!==3&&(r.push(0),r.push(1),r.push(2)),r};pz.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let l=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*l+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+l*m)*g,A=1-b-T;return u(c)?(c.x=b,c.y=T,c.z=A,c):new h(b,T,A)};pz.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let l=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=l/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return u(c)||(c=new V),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Sy=pz;function wy(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=gz(e.westIndices,o,t),this._southIndices=gz(e.southIndices,r,t),this._eastIndices=gz(e.eastIndices,o,t),this._northIndices=gz(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(wy.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return u(this._mesh)}}});var _z=[];function gz(e,t,n){_z.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)_z[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(_z.sort(t),ke.createTypedArray(n,_z)):e}var tye="createVerticesFromQuantizedTerrainMesh",Odt=new pi(tye),Rdt=new pi(tye,rm.maximumAsynchronousTasks);wy.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,l=t.tileXYToRectangle(n,i,o),d=(a?Rdt:Odt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:l,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!u(d))return;let p=this;return Promise.resolve(d).then(function(g){let m=p._quantizedVertices.length/3,x=m+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,b=ke.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),A=g.center,C=g.minimumHeight,S=g.maximumHeight,w=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),R=g.vertexStride,N=Dc.clone(g.encoding);return p._mesh=new Ld(A,T,b,g.indexCountWithoutSkirts,m,C,S,w,O,R,D,N,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Mdt=new pi("upsampleQuantizedTerrainMesh",rm.maximumAsynchronousTasks);wy.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!u(this._mesh))return;let c=t*2!==o,l=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=Mdt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:l,childRectangle:d,ellipsoid:f});if(!u(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let m=c?g*.5:this._westSkirtHeight,x=l?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=l?this._northSkirtHeight:g*.5,A=this._credits;return Promise.resolve(p).then(function(C){let S=new Uint16Array(C.vertices),w=ke.createTypedArray(S.length/3,C.indices),D;return u(C.encodedNormals)&&(D=new Uint8Array(C.encodedNormals)),new wy({quantizedVertices:S,indices:w,encodedNormals:D,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,boundingSphere:se.clone(C.boundingSphere),orientedBoundingBox:On.clone(C.orientedBoundingBox),horizonOcclusionPoint:h.clone(C.horizonOcclusionPoint),westIndices:C.westIndices,southIndices:C.southIndices,eastIndices:C.eastIndices,northIndices:C.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:A,createdByUpsampling:!0})})};var Zq=32767,nye=new h;wy.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=Zq;let o=P.clamp((n-e.south)/e.height,0,1);return o*=Zq,u(this._mesh)?Bdt(this,i,o):kdt(this,i,o)};function iye(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),l=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=l&&t>=f&&t<=d}var Ldt=new V,Ndt=new V,Fdt=new V;function Bdt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,l,Ldt),g=r.decodeTextureCoordinates(o,f,Ndt),m=r.decodeTextureCoordinates(o,d,Fdt);if(iye(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=Sy.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,nye);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,l),T=r.decodeHeight(o,f),A=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*A}}}}function kdt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],f=s[a+1],d=s[a+2],p=i[l],g=i[f],m=i[d],x=o[l],b=o[f],T=o[d];if(iye(t,n,p,x,g,b,m,T)){let A=Sy.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,nye);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let C=A.x*r[l]+A.y*r[f]+A.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,C/Zq)}}}}wy.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};wy.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var _E=wy;function Udt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function rye(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}rye.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=u(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function sye(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,u(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let c=t.tiles,l=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,l),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Gi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new qr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}if(e.levelZeroMaximumGeometricError=jr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,x),new ue(x)}let f;u(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:u(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),u(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),u(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(u(p)&&!u(d)){g=new ym(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);u(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let A=0;A<b.length;++A){let C=b[A],S=T-C.endY-1,w=T-C.startY-1;e.overallAvailability[x].push([C.startX,S,C.endX,w]),g.addAvailableTileRange(x,C.startX,S,C.endX,w)}}}else u(d)&&(f=new ym(e.tilingScheme,l),g=new ym(e.tilingScheme,l),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,u(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Udt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let m=t.parentUrl;return u(m)?u(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await Jq(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Vdt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(u(t)&&(i+=`
- ${t.message}`),e.previousError=Co.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,i),e.previousError.retry)return Jq(e,n);throw new ue(i)}async function zdt(e,t,n){await sye(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new ym(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new bt(e.attribution);e.tileCredits.push(o)}return!0}async function Jq(e,t){try{let n=await e.layerJsonResource.fetchJson();return zdt(e,n,t)}catch(n){return u(n)&&n.statusCode===404?(await sye(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Vdt(e,n,t)}}function Wd(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new pe;let t=e.credit;typeof t=="string"&&(t=new bt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var $q={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function oye(e){return!u(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*
- ])*\\*+/|//.*
- |/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),M=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},H={};return{Ra:[],wa:H,ac:_,vb:function(U,G){function k(Z,me){var xe;if(!W){var re=m.getBindingHandler(Z);if(re&&re.preprocess&&!(me=re.preprocess(me,Z,k)))return;(re=H[Z])&&(xe=me,0<=m.a.A(E,xe)?xe=!1:(re=xe.match(v),xe=re===null?!1:re[1]?"Object("+re[1]+")"+re[2]:xe),re=xe),re&&q.push("'"+(typeof H[Z]=="string"?H[Z]:Z)+"':function(_z){"+xe+"=_z}")}Q&&(me="function(){return "+me+" }"),Y.push("'"+Z+"':"+me)}G=G||{};var Y=[],q=[],Q=G.valueAccessors,W=G.bindingParams,K=typeof U=="string"?_(U):U;return m.a.D(K,function(Z){k(Z.key||Z.unknown,Z.value)}),q.length&&k("_ko_property_writers","{"+q.join(",")+" }"),Y.join(",")},Id:function(U,G){for(var k=0;k<U.length;k++)if(U[k].key==G)return!0;return!1},eb:function(U,G,k,Y,q){U&&m.O(U)?!m.Za(U)||q&&U.v()===Y||U(Y):(U=G.get("_ko_property_writers"))&&U[k]&&U[k](Y)}}}(),m.b("expressionRewriting",m.m),m.b("expressionRewriting.bindingRewriteValidators",m.m.Ra),m.b("expressionRewriting.parseObjectLiteral",m.m.ac),m.b("expressionRewriting.preProcessBindings",m.m.vb),m.b("expressionRewriting._twoWayBindings",m.m.wa),m.b("jsonExpressionRewriting",m.m),m.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",m.m.vb),function(){function _(k){return k.nodeType==8&&B.test(M?k.text:k.nodeValue)}function E(k){return k.nodeType==8&&H.test(M?k.text:k.nodeValue)}function v(k,Y){for(var q=k,Q=1,W=[];q=q.nextSibling;){if(E(q)&&(m.a.g.set(q,G,!0),Q--,Q===0))return W;W.push(q),_(q)&&Q++}if(!Y)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function I(k,Y){var q=v(k,Y);return q?0<q.length?q[q.length-1].nextSibling:k.nextSibling:null}var M=n&&n.createComment("test").text==="<!--test-->",B=M?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,H=M?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,U={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?v(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var Y=0,q=k.length;Y<q;Y++)m.removeNode(k[Y])}else m.a.Tb(k)},va:function(k,Y){if(_(k)){m.h.Ea(k);for(var q=k.nextSibling,Q=0,W=Y.length;Q<W;Q++)q.parentNode.insertBefore(Y[Q],q)}else m.a.va(k,Y)},Vc:function(k,Y){var q;_(k)?(q=k.nextSibling,k=k.parentNode):q=k.firstChild,q?Y!==q&&k.insertBefore(Y,q):k.appendChild(Y)},Wb:function(k,Y,q){q?(q=q.nextSibling,_(k)&&(k=k.parentNode),q?Y!==q&&k.insertBefore(Y,q):k.appendChild(Y)):m.h.Vc(k,Y)},firstChild:function(k){if(_(k))return!k.nextSibling||E(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&E(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(_(k)&&(k=I(k)),k.nextSibling&&E(k.nextSibling)){var Y=k.nextSibling;if(E(Y)&&!m.a.g.get(Y,G))throw Error("Found end comment without a matching opening comment, as child of "+k);return null}return k.nextSibling},Cd:_,Vd:function(k){return(k=(M?k.text:k.nodeValue).match(B))?k[1]:null},Sc:function(k){if(U[m.a.R(k)]){var Y=k.firstChild;if(Y)do if(Y.nodeType===1){var q;q=Y.firstChild;var Q=null;if(q)do if(Q)Q.push(q);else if(_(q)){var W=I(q,!0);W?q=W:Q=[q]}else E(q)&&(Q=[q]);while(q=q.nextSibling);if(q=Q)for(Q=Y.nextSibling,W=0;W<q.length;W++)Q?k.insertBefore(q[W],Q):k.appendChild(q[W])}while(Y=Y.nextSibling)}}}}(),m.b("virtualElements",m.h),m.b("virtualElements.allowedBindings",m.h.ea),m.b("virtualElements.emptyNode",m.h.Ea),m.b("virtualElements.insertAfter",m.h.Wb),m.b("virtualElements.prepend",m.h.Vc),m.b("virtualElements.setDomNodeChildren",m.h.va),function(){m.ga=function(){this.nd={}},m.a.extend(m.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||m.j.getComponentNameForNode(_);case 8:return m.h.Cd(_);default:return!1}},getBindings:function(_,E){var v=this.getBindingsString(_,E),v=v?this.parseBindingsString(v,E,_):null;return m.j.tc(v,_,E,!1)},getBindingAccessors:function(_,E){var v=this.getBindingsString(_,E),v=v?this.parseBindingsString(v,E,_,{valueAccessors:!0}):null;return m.j.tc(v,_,E,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,E,v,I){try{var M=this.nd,B=_+(I&&I.valueAccessors||""),H;if(!(H=M[B])){var U,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";U=new Function("$context","$element",G),H=M[B]=U}return H(E,v)}catch(k){throw k.message=`Unable to parse bindings.
- Bindings value: `+_+`
- Message: `+k.message,k}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(re){var ge=(re=m.a.g.get(re,xe))&&re.N;ge&&(re.N=null,ge.Tc())}function E(re,ge,ye){this.node=re,this.yc=ge,this.kb=[],this.H=!1,ge.N||m.a.K.za(re,_),ye&&ye.N&&(ye.N.kb.push(re),this.Kb=ye)}function v(re){return function(){return re}}function I(re){return re()}function M(re){return m.a.Ga(m.u.G(re),function(ge,ye){return function(){return re()[ye]}})}function B(re,ge,ye){return typeof re=="function"?M(re.bind(null,ge,ye)):m.a.Ga(re,v)}function H(re,ge){return M(this.getBindings.bind(this,re,ge))}function U(re,ge){var ye=m.h.firstChild(ge);if(ye){var Ae,De=m.ga.instance,Fe=De.preprocessNode;if(Fe){for(;Ae=ye;)ye=m.h.nextSibling(Ae),Fe.call(De,Ae);ye=m.h.firstChild(ge)}for(;Ae=ye;)ye=m.h.nextSibling(Ae),G(re,Ae)}m.i.ma(ge,m.i.H)}function G(re,ge){var ye=re,Ae=ge.nodeType===1;Ae&&m.h.Sc(ge),(Ae||m.ga.instance.nodeHasBindings(ge))&&(ye=Y(ge,null,re).bindingContextForDescendants),ye&&!Z[m.a.R(ge)]&&U(ye,ge)}function k(re){var ge=[],ye={},Ae=[];return m.a.P(re,function De(Fe){if(!ye[Fe]){var Re=m.getBindingHandler(Fe);Re&&(Re.after&&(Ae.push(Fe),m.a.D(Re.after,function(Ue){if(re[Ue]){if(m.a.A(Ae,Ue)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ae.join(", "));De(Ue)}}),Ae.length--),ge.push({key:Fe,Mc:Re})),ye[Fe]=!0}}),ge}function Y(re,ge,ye){var Ae=m.a.g.Ub(re,xe,{}),De=Ae.hd;if(!ge){if(De)throw Error("You cannot apply bindings multiple times to the same element.");Ae.hd=!0}De||(Ae.context=ye),Ae.Zb||(Ae.Zb={});var Fe;if(ge&&typeof ge!="function")Fe=ge;else{var Re=m.ga.instance,Ue=Re.getBindingAccessors||H,st=m.$(function(){return(Fe=ge?ge(ye,re):Ue.call(Re,re,ye))&&(ye[Q]&&ye[Q](),ye[K]&&ye[K]()),Fe},null,{l:re});Fe&&st.ja()||(st=null)}var pt=ye,nt;if(Fe){var sn=function(){return m.a.Ga(st?st():Fe,I)},Rn=st?function(Ut){return function(){return I(st()[Ut])}}:function(Ut){return Fe[Ut]};sn.get=function(Ut){return Fe[Ut]&&I(Rn(Ut))},sn.has=function(Ut){return Ut in Fe},m.i.H in Fe&&m.i.subscribe(re,m.i.H,function(){var Ut=(0,Fe[m.i.H])();if(Ut){var Ft=m.h.childNodes(re);Ft.length&&Ut(Ft,m.Ec(Ft[0]))}}),m.i.pa in Fe&&(pt=m.i.Cb(re,ye),m.i.subscribe(re,m.i.pa,function(){var Ut=(0,Fe[m.i.pa])();Ut&&m.h.firstChild(re)&&Ut(re)})),Ae=k(Fe),m.a.D(Ae,function(Ut){var Ft=Ut.Mc.init,he=Ut.Mc.update,be=Ut.key;if(re.nodeType===8&&!m.h.ea[be])throw Error("The binding '"+be+"' cannot be used with virtual elements");try{typeof Ft=="function"&&m.u.G(function(){var jt=Ft(re,Rn(be),sn,pt.$data,pt);if(jt&&jt.controlsDescendantBindings){if(nt!==e)throw Error("Multiple bindings ("+nt+" and "+be+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");nt=be}}),typeof he=="function"&&m.$(function(){he(re,Rn(be),sn,pt.$data,pt)},null,{l:re})}catch(jt){throw jt.message='Unable to process binding "'+be+": "+Fe[be]+`"
- Message: `+jt.message,jt}})}return Ae=nt===e,{shouldBindDescendants:Ae,bindingContextForDescendants:Ae&&pt}}function q(re,ge){return re&&re instanceof m.fa?re:new m.fa(re,e,e,ge)}var Q=m.a.Da("_subscribable"),W=m.a.Da("_ancestorBindingInfo"),K=m.a.Da("_dataDependency");m.c={};var Z={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(re){return m.c[re]};var me={};m.fa=function(re,ge,ye,Ae,De){function Fe(){var Rn=pt?st():st,Ut=m.a.f(Rn);return ge?(m.a.extend(Re,ge),W in ge&&(Re[W]=ge[W])):(Re.$parents=[],Re.$root=Ut,Re.ko=m),Re[Q]=nt,Ue?Ut=Re.$data:(Re.$rawData=Rn,Re.$data=Ut),ye&&(Re[ye]=Ut),Ae&&Ae(Re,ge,Ut),ge&&ge[Q]&&!m.S.o().Vb(ge[Q])&&ge[Q](),sn&&(Re[K]=sn),Re.$data}var Re=this,Ue=re===me,st=Ue?e:re,pt=typeof st=="function"&&!m.O(st),nt,sn=De&&De.dataDependency;De&&De.exportDependencies?Fe():(nt=m.xb(Fe),nt.v(),nt.ja()?nt.equalityComparer=null:Re[Q]=e)},m.fa.prototype.createChildContext=function(re,ge,ye,Ae){if(!Ae&&ge&&typeof ge=="object"&&(Ae=ge,ge=Ae.as,ye=Ae.extend),ge&&Ae&&Ae.noChildContext){var De=typeof re=="function"&&!m.O(re);return new m.fa(me,this,null,function(Fe){ye&&ye(Fe),Fe[ge]=De?re():re},Ae)}return new m.fa(re,this,ge,function(Fe,Re){Fe.$parentContext=Re,Fe.$parent=Re.$data,Fe.$parents=(Re.$parents||[]).slice(0),Fe.$parents.unshift(Fe.$parent),ye&&ye(Fe)},Ae)},m.fa.prototype.extend=function(re,ge){return new m.fa(me,this,null,function(ye){m.a.extend(ye,typeof re=="function"?re(ye):re)},ge)};var xe=m.a.g.Z();E.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},E.prototype.sd=function(re){m.a.Pa(this.kb,re),!this.kb.length&&this.H&&this.Cc()},E.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,m.a.K.yb(this.node,_),m.i.ma(this.node,m.i.pa),this.Tc())},m.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(re,ge,ye,Ae,De){var Fe=m.a.g.Ub(re,xe,{});return Fe.Fa||(Fe.Fa=new m.T),De&&De.notifyImmediately&&Fe.Zb[ge]&&m.u.G(ye,Ae,[re]),Fe.Fa.subscribe(ye,Ae,ge)},ma:function(re,ge){var ye=m.a.g.get(re,xe);if(ye&&(ye.Zb[ge]=!0,ye.Fa&&ye.Fa.notifySubscribers(re,ge),ge==m.i.H)){if(ye.N)ye.N.Cc();else if(ye.N===e&&ye.Fa&&ye.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(re,ge){var ye=m.a.g.Ub(re,xe,{});return ye.N||(ye.N=new E(re,ye,ge[W])),ge[W]==ye?ge:ge.extend(function(Ae){Ae[W]=ye})}},m.Td=function(re){return(re=m.a.g.get(re,xe))&&re.context},m.ib=function(re,ge,ye){return re.nodeType===1&&m.h.Sc(re),Y(re,ge,q(ye))},m.ld=function(re,ge,ye){return ye=q(ye),m.ib(re,B(ge,ye,re),ye)},m.Oa=function(re,ge){ge.nodeType!==1&&ge.nodeType!==8||U(q(re),ge)},m.vc=function(re,ge,ye){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(ge=n.body,!ge)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!ge||ge.nodeType!==1&&ge.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(q(re,ye),ge)},m.Dc=function(re){return!re||re.nodeType!==1&&re.nodeType!==8?e:m.Td(re)},m.Ec=function(re){return(re=m.Dc(re))?re.$data:e},m.b("bindingHandlers",m.c),m.b("bindingEvent",m.i),m.b("bindingEvent.subscribe",m.i.subscribe),m.b("bindingEvent.startPossiblyAsyncContentBinding",m.i.Cb),m.b("applyBindings",m.vc),m.b("applyBindingsToDescendants",m.Oa),m.b("applyBindingAccessorsToNode",m.ib),m.b("applyBindingsToNode",m.ld),m.b("contextFor",m.Dc),m.b("dataFor",m.Ec)}(),function(_){function E(H,U){var G=Object.prototype.hasOwnProperty.call(M,H)?M[H]:_,k;G?G.subscribe(U):(G=M[H]=new m.T,G.subscribe(U),v(H,function(Y,q){var Q=!(!q||!q.synchronous);B[H]={definition:Y,Gd:Q},delete M[H],k||Q?G.notifySubscribers(Y):m.na.zb(function(){G.notifySubscribers(Y)})}),k=!0)}function v(H,U){I("getConfig",[H],function(G){G?I("loadComponent",[H,G],function(k){U(k,G)}):U(null,null)})}function I(H,U,G,k){k||(k=m.j.loaders.slice(0));var Y=k.shift();if(Y){var q=Y[H];if(q){var Q=!1;if(q.apply(Y,U.concat(function(W){Q?G(null):W!==null?G(W):I(H,U,G,k)}))!==_&&(Q=!0,!Y.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(H,U,G,k)}else G(null)}var M={},B={};m.j={get:function(H,U){var G=Object.prototype.hasOwnProperty.call(B,H)?B[H]:_;G?G.Gd?m.u.G(function(){U(G.definition)}):m.na.zb(function(){U(G.definition)}):E(H,U)},Bc:function(H){delete B[H]},oc:I},m.j.loaders=[],m.b("components",m.j),m.b("components.get",m.j.get),m.b("components.clearCachedDefinition",m.j.Bc)}(),function(){function _(G,k,Y,q){function Q(){--K===0&&q(W)}var W={},K=2,Z=Y.template;Y=Y.viewModel,Z?M(k,Z,function(me){m.j.oc("loadTemplate",[G,me],function(xe){W.template=xe,Q()})}):Q(),Y?M(k,Y,function(me){m.j.oc("loadViewModel",[G,me],function(xe){W[U]=xe,Q()})}):Q()}function E(G,k,Y){if(typeof k=="function")Y(function(Q){return new k(Q)});else if(typeof k[U]=="function")Y(k[U]);else if("instance"in k){var q=k.instance;Y(function(){return q})}else"viewModel"in k?E(G,k.viewModel,Y):G("Unknown viewModel value: "+k)}function v(G){switch(m.a.R(G)){case"script":return m.a.ua(G.text);case"textarea":return m.a.ua(G.value);case"template":if(I(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function M(G,k,Y){typeof k.require=="string"?a||t.require?(a||t.require)([k.require],function(q){q&&typeof q=="object"&&q.Xd&&q.default&&(q=q.default),Y(q)}):G("Uses require, but no AMD loader is present"):Y(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var H={};m.j.register=function(G,k){if(!k)throw Error("Invalid configuration for "+G);if(m.j.tb(G))throw Error("Component "+G+" is already registered");H[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(H,G)},m.j.unregister=function(G){delete H[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?H[G]:null)},loadComponent:function(G,k,Y){var q=B(G);M(q,k,function(Q){_(G,q,Q,Y)})},loadTemplate:function(G,k,Y){if(G=B(G),typeof k=="string")Y(m.a.ua(k));else if(k instanceof Array)Y(k);else if(I(k))Y(m.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)Y(v(k));else if(typeof k=="string"){var q=n.getElementById(k);q?Y(v(q)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,Y){E(B(G),k,Y)}};var U="createViewModel";m.b("components.register",m.j.register),m.b("components.isRegistered",m.j.tb),m.b("components.unregister",m.j.unregister),m.b("components.defaultLoader",m.j.Fc),m.j.loaders.push(m.j.Fc),m.j.dd=H}(),function(){function _(v,I){var M=v.getAttribute("params");if(M){var M=E.parseBindingsString(M,I,v,{valueAccessors:!0,bindingParams:!0}),M=m.a.Ga(M,function(U){return m.o(U,null,{l:v})}),B=m.a.Ga(M,function(U){var G=U.v();return U.ja()?m.o({read:function(){return m.a.f(U())},write:m.Za(G)&&function(k){U()(k)},l:v}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=M),B}return{$raw:{}}}m.j.getComponentNameForNode=function(v){var I=m.a.R(v);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+v=="[object HTMLUnknownElement]"||8>=m.a.W&&v.tagName===I))return I},m.j.tc=function(v,I,M,B){if(I.nodeType===1){var H=m.j.getComponentNameForNode(I);if(H){if(v=v||{},v.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var U={name:H,params:_(I,M)};v.component=B?function(){return U}:U}}return v};var E=new m.ga;9>m.a.W&&(m.j.register=function(v){return function(I){return v.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(v){return function(){var I=v(),M=m.j.dd,B;for(B in M);return I}}(n.createDocumentFragment))}(),function(){function _(I,M,B){if(M=M.template,!M)throw Error("Component '"+I+"' has no template");I=m.a.Ca(M),m.h.va(B,I)}function E(I,M,B){var H=I.createViewModel;return H?H.call(I,M,B):M}var v=0;m.c.component={init:function(I,M,B,H,U){function G(){var W=k&&k.dispose;typeof W=="function"&&W.call(k),q&&q.s(),Y=k=q=null}var k,Y,q,Q=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var W=m.a.f(M()),K,Z;if(typeof W=="string"?K=W:(K=m.a.f(W.name),Z=m.a.f(W.params)),!K)throw Error("No component name specified");var me=m.i.Cb(I,U),xe=Y=++v;m.j.get(K,function(re){if(Y===xe){if(G(),!re)throw Error("Unknown component '"+K+"'");_(K,re,I);var ge=E(re,Z,{element:I,templateNodes:Q});re=me.createChildContext(ge,{extend:function(ye){ye.$component=ge,ye.$componentTemplateNodes=Q}}),ge&&ge.koDescendantsComplete&&(q=m.i.subscribe(I,m.i.pa,ge.koDescendantsComplete,ge)),k=ge,m.Oa(re,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var N={class:"className",for:"htmlFor"};m.c.attr={update:function(_,E){var v=m.a.f(E())||{};m.a.P(v,function(I,M){M=m.a.f(M);var B=I.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(I.substr(0,B)),H=M===!1||M===null||M===e;H?B?_.removeAttributeNS(B,I):_.removeAttribute(I):M=M.toString(),8>=m.a.W&&I in N?(I=N[I],H?_.removeAttribute(I):_[I]=M):H||(B?_.setAttributeNS(B,I,M):_.setAttribute(I,M)),I==="name"&&m.a.Yc(_,H?"":M)})}},function(){m.c.checked={after:["value","attr"],init:function(_,E,v){function I(){var W=_.checked,K=B();if(!m.S.Ya()&&(W||!U&&!m.S.qa())){var Z=m.u.G(E);if(k){var me=Y?Z.v():Z,xe=Q;Q=K,xe!==K?W&&(m.a.Na(me,K,!0),m.a.Na(me,xe,!1)):m.a.Na(me,K,W),Y&&m.Za(Z)&&Z(me)}else H&&(K===e?K=W:W||(K=e)),m.m.eb(Z,v,"checked",K,!0)}}function M(){var W=m.a.f(E()),K=B();k?(_.checked=0<=m.a.A(W,K),Q=K):_.checked=H&&K===e?!!W:B()===W}var B=m.xb(function(){if(v.has("checkedValue"))return m.a.f(v.get("checkedValue"));if(q)return v.has("value")?m.a.f(v.get("value")):_.value}),H=_.type=="checkbox",U=_.type=="radio";if(H||U){var G=E(),k=H&&m.a.f(G)instanceof Array,Y=!(k&&G.push&&G.splice),q=U||k,Q=k?B():e;U&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(M,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,E){_.value=m.a.f(E())}}}(),m.c.class={update:function(_,E){var v=m.a.Db(m.a.f(E()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=v,m.a.Eb(_,v,!0)}},m.c.css={update:function(_,E){var v=m.a.f(E());v!==null&&typeof v=="object"?m.a.P(v,function(I,M){M=m.a.f(M),m.a.Eb(_,I,M)}):m.c.class.update(_,E)}},m.c.enable={update:function(_,E){var v=m.a.f(E());v&&_.disabled?_.removeAttribute("disabled"):v||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,E){m.c.enable.update(_,function(){return!m.a.f(E())})}},m.c.event={init:function(_,E,v,I,M){var B=E()||{};m.a.P(B,function(H){typeof H=="string"&&m.a.B(_,H,function(U){var G,k=E()[H];if(k){try{var Y=m.a.la(arguments);I=M.$data,Y.unshift(I),G=k.apply(I,Y)}finally{G!==!0&&(U.preventDefault?U.preventDefault():U.returnValue=!1)}v.get(H+"Bubble")===!1&&(U.cancelBubble=!0,U.stopPropagation&&U.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var E=_(),v=m.a.bc(E);return!v||typeof v.length=="number"?{foreach:E,templateEngine:m.ba.Ma}:(m.a.f(E),{foreach:v.data,as:v.as,noChildContext:v.noChildContext,includeDestroyed:v.includeDestroyed,afterAdd:v.afterAdd,beforeRemove:v.beforeRemove,afterRender:v.afterRender,beforeMove:v.beforeMove,afterMove:v.afterMove,templateEngine:m.ba.Ma})}},init:function(_,E){return m.c.template.init(_,m.c.foreach.Rc(E))},update:function(_,E,v,I,M){return m.c.template.update(_,m.c.foreach.Rc(E),v,I,M)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,E,v){function I(H){_.__ko_hasfocusUpdating=!0;var U=_.ownerDocument;if("activeElement"in U){var G;try{G=U.activeElement}catch{G=U.body}H=G===_}U=E(),m.m.eb(U,v,"hasfocus",H,!0),_.__ko_hasfocusLastValue=H,_.__ko_hasfocusUpdating=!1}var M=I.bind(null,!0),B=I.bind(null,!1);m.a.B(_,"focus",M),m.a.B(_,"focusin",M),m.a.B(_,"blur",B),m.a.B(_,"focusout",B),_.__ko_hasfocusLastValue=!1},update:function(_,E){var v=!!m.a.f(E());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===v||(v?_.focus():_.blur(),!v&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,v?"focusin":"focusout"]))}},m.m.wa.hasfocus=!0,m.c.hasFocus=m.c.hasfocus,m.m.wa.hasFocus="hasfocus",m.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,E){m.a.fc(_,E())}},function(){function _(E,v,I){m.c[E]={init:function(M,B,H,U,G){var k,Y,q={},Q,W,K;if(v){U=H.get("as");var Z=H.get("noChildContext");K=!(U&&Z),q={as:U,noChildContext:Z,exportDependencies:K}}return W=(Q=H.get("completeOn")=="render")||H.has(m.i.pa),m.o(function(){var me=m.a.f(B()),xe=!I!=!me,re=!Y,ge;(K||xe!==k)&&(W&&(G=m.i.Cb(M,G)),xe&&((!v||K)&&(q.dataDependency=m.S.o()),ge=v?G.createChildContext(typeof me=="function"?me:B,q):m.S.qa()?G.extend(null,q):G),re&&m.S.qa()&&(Y=m.a.Ca(m.h.childNodes(M),!0)),xe?(re||m.h.va(M,m.a.Ca(Y)),m.Oa(ge,M)):(m.h.Ea(M),Q||m.i.ma(M,m.i.H)),k=xe)},null,{l:M}),{controlsDescendantBindings:!0}}},m.m.Ra[E]=!1,m.h.ea[E]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,E,v,I,M){return E=M.extend(E),m.Oa(E,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var F={};m.c.options={init:function(_){if(m.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,E,v){function I(){return m.a.jb(_.options,function(Z){return Z.selected})}function M(Z,me,xe){var re=typeof me;return re=="function"?me(Z):re=="string"?Z[me]:xe}function B(Z,me){if(W&&k)m.i.ma(_,m.i.H);else if(Q.length){var xe=0<=m.a.A(Q,m.w.M(me[0]));m.a.Zc(me[0],xe),W&&!xe&&m.u.G(m.a.Fb,null,[_,"change"])}}var H=_.multiple,U=_.length!=0&&H?_.scrollTop:null,G=m.a.f(E()),k=v.get("valueAllowUnset")&&v.has("value"),Y=v.get("optionsIncludeDestroyed");E={};var q,Q=[];k||(H?Q=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&Q.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),q=m.a.jb(G,function(Z){return Y||Z===e||Z===null||!m.a.f(Z._destroy)}),v.has("optionsCaption")&&(G=m.a.f(v.get("optionsCaption")),G!==null&&G!==e&&q.unshift(F)));var W=!1;if(E.beforeRemove=function(Z){_.removeChild(Z)},G=B,v.has("optionsAfterRender")&&typeof v.get("optionsAfterRender")=="function"&&(G=function(Z,me){B(0,me),m.u.G(v.get("optionsAfterRender"),null,[me[0],Z!==F?Z:e])}),m.a.ec(_,q,function(Z,me,xe){return xe.length&&(Q=!k&&xe[0].selected?[m.w.M(xe[0])]:[],W=!0),me=_.ownerDocument.createElement("option"),Z===F?(m.a.Bb(me,v.get("optionsCaption")),m.w.cb(me,e)):(xe=M(Z,v.get("optionsValue"),Z),m.w.cb(me,m.a.f(xe)),Z=M(Z,v.get("optionsText"),xe),m.a.Bb(me,Z)),[me]},E,G),!k){var K;H?K=Q.length&&I().length<Q.length:K=Q.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==Q[0]:Q.length||0<=_.selectedIndex,K&&m.u.G(m.a.Fb,null,[_,"change"])}(k||m.S.Ya())&&m.i.ma(_,m.i.H),m.a.wd(_),U&&20<Math.abs(U-_.scrollTop)&&(_.scrollTop=U)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,E,v){function I(){var H=E(),U=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&U.push(m.w.M(G))}),m.m.eb(H,v,"selectedOptions",U)}function M(){var H=m.a.f(E()),U=_.scrollTop;H&&typeof H.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(H,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=U}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var B;m.i.subscribe(_,m.i.H,function(){B?I():(m.a.B(_,"change",I),B=m.o(M,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,E){var v=m.a.f(E()||{});m.a.P(v,function(I,M){if(M=m.a.f(M),(M===null||M===e||M===!1)&&(M=""),o)o(_).css(I,M);else if(/^--/.test(I))_.style.setProperty(I,M);else{I=I.replace(/-(\w)/g,function(H,U){return U.toUpperCase()});var B=_.style[I];_.style[I]=M,M===B||_.style[I]!=B||isNaN(M)||(_.style[I]=M+"px")}})}},m.c.submit={init:function(_,E,v,I,M){if(typeof E()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var H,U=E();try{H=U.call(M.$data,_)}finally{H!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,E){m.a.Bb(_,E())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(q){if(q)return parseFloat(q[1])},E=t.navigator.userAgent,v,I,M,B,H;(v=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(H=_(E.match(/Edge\/([^ ]+)$/)))||_(E.match(/Chrome\/([^ ]+)/))||(I=_(E.match(/Version\/([^ ]+) Safari/)))||(M=_(E.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(E.match(/MSIE ([^ ]+)/)))||(B=_(E.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var U=m.a.g.Z(),G=m.a.g.Z(),k=function(q){var Q=this.activeElement;(Q=Q&&m.a.g.get(Q,G))&&Q(q)},Y=function(q,Q){var W=q.ownerDocument;m.a.g.get(W,U)||(m.a.g.set(W,U,!0),m.a.B(W,"selectionchange",k)),m.a.g.set(q,G,Q)};m.c.textInput={init:function(q,Q,W){function K(Fe,Re){m.a.B(q,Fe,Re)}function Z(){var Fe=m.a.f(Q());(Fe===null||Fe===e)&&(Fe=""),ye!==e&&Fe===ye?m.a.setTimeout(Z,4):q.value!==Fe&&(De=!0,q.value=Fe,De=!1,re=q.value)}function me(){ge||(ye=q.value,ge=m.a.setTimeout(xe,4))}function xe(){clearTimeout(ge),ye=ge=e;var Fe=q.value;re!==Fe&&(re=Fe,m.m.eb(Q(),W,"textInput",Fe))}var re=q.value,ge,ye,Ae=m.a.W==9?me:xe,De=!1;B&&K("keypress",xe),11>B&&K("propertychange",function(Fe){De||Fe.propertyName!=="value"||Ae(Fe)}),B==8&&(K("keyup",xe),K("keydown",xe)),Y&&(Y(q,Ae),K("dragend",me)),(!B||9<=B)&&K("input",Ae),5>I&&m.a.R(q)==="textarea"?(K("keydown",me),K("paste",me),K("cut",me)):11>v?K("keydown",me):4>M?(K("DOMAutoComplete",xe),K("dragdrop",xe),K("drop",xe)):H&&q.type==="number"&&K("keydown",me),K("change",xe),K("blur",xe),m.o(Z,null,{l:q})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(q,Q,W){W("textInput",q)}}}(),m.c.uniqueName={init:function(_,E){if(E()){var v="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,v)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,E,v,I,M){var B;return v.has("as")&&(B={as:v.get("as"),noChildContext:v.get("noChildContext")}),E=M.createChildContext(E,B),m.Oa(E,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,E,v){var I=m.a.R(_),M=I=="input";if(!M||_.type!="checkbox"&&_.type!="radio"){var B=[],H=v.get("valueUpdate"),U=!1,G=null;H&&(typeof H=="string"?B=[H]:B=m.a.wc(H),m.a.Pa(B,"change"));var k=function(){G=null,U=!1;var Q=E(),W=m.w.M(_);m.m.eb(Q,v,"value",W)};!m.a.W||!M||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){U=!0}),m.a.B(_,"focus",function(){U=!1}),m.a.B(_,"blur",function(){U&&k()})),m.a.D(B,function(Q){var W=k;m.a.Ud(Q,"after")&&(W=function(){G=m.w.M(_),m.a.setTimeout(k,0)},Q=Q.substring(5)),m.a.B(_,Q,W)});var Y;if(Y=M&&_.type=="file"?function(){var Q=m.a.f(E());Q===null||Q===e||Q===""?_.value="":m.u.G(k)}:function(){var Q=m.a.f(E()),W=m.w.M(_);G!==null&&Q===G?m.a.setTimeout(Y,0):(Q!==W||W===e)&&(I==="select"?(W=v.get("valueAllowUnset"),m.w.cb(_,Q,W),W||Q===m.w.M(_)||m.u.G(k)):m.w.cb(_,Q))},I==="select"){var q;m.i.subscribe(_,m.i.H,function(){q?v.get("valueAllowUnset")?Y():k():(m.a.B(_,"change",k),q=m.o(Y,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(Y,null,{l:_})}else m.ib(_,{checkedValue:E})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,E){var v=m.a.f(E()),I=_.style.display!="none";v&&!I?_.style.display="":!v&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,E){m.c.visible.update(_,function(){return!m.a.f(E())})}},function(_){m.c[_]={init:function(E,v,I,M,B){return m.c.event.init.call(this,E,function(){var H={};return H[_]=v(),H},I,M,B)}}}("click"),m.ca=function(){},m.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},m.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},m.ca.prototype.makeTemplateSource=function(_,E){if(typeof _=="string"){E=E||n;var v=E.getElementById(_);if(!v)throw Error("Cannot find template with ID "+_);return new m.C.F(v)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,E,v,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,E,v,I)},m.ca.prototype.isTemplateRewritten=function(_,E){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,E).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,E,v){_=this.makeTemplateSource(_,v),E=E(_.text()),_.text(E),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,M,B,H){I=m.m.ac(I);for(var U=m.m.Ra,G=0;G<I.length;G++){var k=I[G].key;if(Object.prototype.hasOwnProperty.call(U,k)){var Y=U[k];if(typeof Y=="function"){if(k=Y(I[G].value))throw Error(k)}else if(!Y)throw Error("This template engine does not support the '"+k+"' binding within its templates")}}return B="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+m.m.vb(I,{valueAccessors:!0})+" } })()},'"+B.toLowerCase()+"')",H.createJavaScriptEvaluatorBlock(B)+M}var E=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,v=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,M,B){M.isTemplateRewritten(I,B)||M.rewriteTemplate(I,function(H){return m.kc.Ld(H,M)},B)},Ld:function(I,M){return I.replace(E,function(B,H,U,G,k){return _(k,H,U,M)}).replace(v,function(B,H){return _(H,"<!-- ko -->","#comment",M)})},md:function(I,M){return m.aa.Xb(function(B,H){var U=B.nextSibling;U&&U.nodeName.toLowerCase()===M&&m.ib(U,I,H)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(v){if(this.F=v){var I=m.a.R(v);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&v.content&&v.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var v=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[v];var I=arguments[0];v==="innerHTML"?m.a.fc(this.F,I):this.F[v]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(v){if(arguments.length===1)return m.a.g.get(this.F,_+v);m.a.g.set(this.F,_+v,arguments[1])};var E=m.a.g.Z();m.C.F.prototype.nodes=function(){var v=this.F;if(arguments.length==0){var I=m.a.g.get(v,E)||{},M=I.lb||(this.ab===3?v.content:this.ab===4?v:e);if(!M||I.jd){var B=this.text();B&&B!==I.bb&&(M=m.a.Md(B,v.ownerDocument),m.a.g.set(v,E,{lb:M,bb:B,jd:!0}))}return M}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(v,E,{lb:I})},m.C.ia=function(v){this.F=v},m.C.ia.prototype=new m.C.F,m.C.ia.prototype.constructor=m.C.ia,m.C.ia.prototype.text=function(){if(arguments.length==0){var v=m.a.g.get(this.F,E)||{};return v.bb===e&&v.lb&&(v.bb=v.lb.innerHTML),v.bb}m.a.g.set(this.F,E,{bb:arguments[0]})},m.b("templateSources",m.C),m.b("templateSources.domElement",m.C.F),m.b("templateSources.anonymousTemplate",m.C.ia)}(),function(){function _(G,k,Y){var q;for(k=m.h.nextSibling(k);G&&(q=G)!==k;)G=m.h.nextSibling(q),Y(q,G)}function E(G,k){if(G.length){var Y=G[0],q=G[G.length-1],Q=Y.parentNode,W=m.ga.instance,K=W.preprocessNode;if(K){if(_(Y,q,function(Z,me){var xe=Z.previousSibling,re=K.call(W,Z);re&&(Z===Y&&(Y=re[0]||me),Z===q&&(q=re[re.length-1]||xe))}),G.length=0,!Y)return;Y===q?G.push(Y):(G.push(Y,q),m.a.Ua(G,Q))}_(Y,q,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.vc(k,Z)}),_(Y,q,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.aa.cd(Z,[k])}),m.a.Ua(G,Q)}}function v(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,k,Y,q,Q){Q=Q||{};var W=(G&&v(G)||Y||{}).ownerDocument,K=Q.templateEngine||B;if(m.kc.xd(Y,K,W),Y=K.renderTemplate(Y,q,Q,W),typeof Y.length!="number"||0<Y.length&&typeof Y[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(W=!1,k){case"replaceChildren":m.h.va(G,Y),W=!0;break;case"replaceNode":m.a.Xc(G,Y),W=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return W&&(E(Y,q),Q.afterRender&&m.u.G(Q.afterRender,null,[Y,q[Q.as||"$data"]]),k=="replaceChildren"&&m.i.ma(G,m.i.H)),Y}function M(G,k,Y){return m.O(G)?G():typeof G=="function"?G(k,Y):G}var B;m.gc=function(G){if(G!=e&&!(G instanceof m.ca))throw Error("templateEngine must inherit from ko.templateEngine");B=G},m.dc=function(G,k,Y,q,Q){if(Y=Y||{},(Y.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if(Q=Q||"replaceChildren",q){var W=v(q);return m.$(function(){var Z=k&&k instanceof m.fa?k:new m.fa(k,null,null,null,{exportDependencies:!0}),K=M(G,Z.$data,Z),Z=I(q,Q,K,Z,Y);Q=="replaceNode"&&(q=Z,W=v(q))},null,{Sa:function(){return!W||!m.a.Sb(W)},l:W&&Q=="replaceNode"?W.parentNode:W})}return m.aa.Xb(function(K){m.dc(G,k,Y,K,"replaceNode")})},m.Qd=function(G,k,Y,q,Q){function W(ye,Ae){m.u.G(m.a.ec,null,[q,ye,Z,Y,K,Ae]),m.i.ma(q,m.i.H)}function K(ye,Ae){E(Ae,me),Y.afterRender&&Y.afterRender(Ae,ye),me=null}function Z(ye,Ae){me=Q.createChildContext(ye,{as:xe,noChildContext:Y.noChildContext,extend:function(Fe){Fe.$index=Ae,xe&&(Fe[xe+"Index"]=Ae)}});var De=M(G,ye,me);return I(q,"ignoreTargetNode",De,me,Y)}var me,xe=Y.as,re=Y.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!Y.includeDestroyed;if(re||Y.beforeRemove||!m.Pc(k))return m.$(function(){var ye=m.a.f(k)||[];typeof ye.length>"u"&&(ye=[ye]),re&&(ye=m.a.jb(ye,function(Ae){return Ae===e||Ae===null||!m.a.f(Ae._destroy)})),W(ye)},null,{l:q});W(k.v());var ge=k.subscribe(function(ye){W(k(),ye)},null,"arrayChange");return ge.l(q),ge};var H=m.a.g.Z(),U=m.a.g.Z();m.c.template={init:function(G,k){var Y=m.a.f(k());if(typeof Y=="string"||"name"in Y)m.h.Ea(G);else if("nodes"in Y){if(Y=Y.nodes||[],m.O(Y))throw Error('The "nodes" option must be a plain, non-observable array.');var q=Y[0]&&Y[0].parentNode;q&&m.a.g.get(q,U)||(q=m.a.Yb(Y),m.a.g.set(q,U,!0)),new m.C.ia(G).nodes(q)}else if(Y=m.h.childNodes(G),0<Y.length)q=m.a.Yb(Y),new m.C.ia(G).nodes(q);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,k,Y,q,Q){var W=k();k=m.a.f(W),Y=!0,q=null,typeof k=="string"?k={}:(W="name"in k?k.name:G,"if"in k&&(Y=m.a.f(k.if)),Y&&"ifnot"in k&&(Y=!m.a.f(k.ifnot)),Y&&!W&&(Y=!1)),"foreach"in k?q=m.Qd(W,Y&&k.foreach||[],k,G,Q):Y?(Y=Q,"data"in k&&(Y=Q.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),q=m.dc(W,Y,k,G)):m.h.Ea(G),Q=q,(k=m.a.g.get(G,H))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,H,!Q||Q.ja&&!Q.ja()?e:Q)}},m.m.Ra.template=function(G){return G=m.m.ac(G),G.length==1&&G[0].unknown||m.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},m.h.ea.template=!0}(),m.b("setTemplateEngine",m.gc),m.b("renderTemplate",m.dc),m.a.Kc=function(_,E,v){if(_.length&&E.length){var I,M,B,H,U;for(I=M=0;(!v||I<v)&&(H=_[M]);++M){for(B=0;U=E[B];++B)if(H.value===U.value){H.moved=U.index,U.moved=H.index,E.splice(B,1),I=B=0;break}I+=B}}},m.a.Pb=function(){function _(E,v,I,M,B){var H=Math.min,U=Math.max,G=[],k,Y=E.length,q,Q=v.length,W=Q-Y||1,K=Y+Q+1,Z,me,xe;for(k=0;k<=Y;k++)for(me=Z,G.push(Z=[]),xe=H(Q,k+W),q=U(0,k-1);q<=xe;q++)Z[q]=q?k?E[k-1]===v[q-1]?me[q-1]:H(me[q]||K,Z[q-1]||K)+1:q+1:k+1;for(H=[],U=[],W=[],k=Y,q=Q;k||q;)Q=G[k][q]-1,q&&Q===G[k][q-1]?U.push(H[H.length]={status:I,value:v[--q],index:q}):k&&Q===G[k-1][q]?W.push(H[H.length]={status:M,value:E[--k],index:k}):(--q,--k,B.sparse||H.push({status:"retained",value:v[q]}));return m.a.Kc(W,U,!B.dontLimitMoves&&10*Y),H.reverse()}return function(E,v,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},E=E||[],v=v||[],E.length<v.length?_(E,v,"added","deleted",I):_(v,E,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,M,B,H,U){var G=[],k=m.$(function(){var Y=M(B,U,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,Y),H&&m.u.G(H,null,[B,Y,U])),G.length=0,m.a.Nb(G,Y)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var E=m.a.g.Z(),v=m.a.g.Z();m.a.ec=function(I,M,B,H,U,G){function k(Ut){De={Aa:Ut,pb:m.ta(me++)},K.push(De),W||Ae.push(De)}function Y(Ut){De=Q[Ut],me!==De.pb.v()&&ye.push(De),De.pb(me++),m.a.Ua(De.Y,I),K.push(De)}function q(Ut,Ft){if(Ut)for(var he=0,be=Ft.length;he<be;he++)m.a.D(Ft[he].Y,function(jt){Ut(jt,he,Ft[he].Aa)})}M=M||[],typeof M.length>"u"&&(M=[M]),H=H||{};var Q=m.a.g.get(I,E),W=!Q,K=[],Z=0,me=0,xe=[],re=[],ge=[],ye=[],Ae=[],De,Fe=0;if(W)m.a.D(M,k);else{if(!G||Q&&Q._countWaitingForRemove){var Re=m.a.Mb(Q,function(Ut){return Ut.Aa});G=m.a.Pb(Re,M,{dontLimitMoves:H.dontLimitMoves,sparse:!0})}for(var Re=0,Ue,st,pt;Ue=G[Re];Re++)switch(st=Ue.moved,pt=Ue.index,Ue.status){case"deleted":for(;Z<pt;)Y(Z++);st===e&&(De=Q[Z],De.$&&(De.$.s(),De.$=e),m.a.Ua(De.Y,I).length&&(H.beforeRemove&&(K.push(De),Fe++,De.Aa===v?De=null:ge.push(De)),De&&xe.push.apply(xe,De.Y))),Z++;break;case"added":for(;me<pt;)Y(Z++);st!==e?(re.push(K.length),Y(st)):k(Ue.value)}for(;me<M.length;)Y(Z++);K._countWaitingForRemove=Fe}m.a.g.set(I,E,K),q(H.beforeMove,ye),m.a.D(xe,H.beforeRemove?m.oa:m.removeNode);var nt,sn,Rn;try{Rn=I.ownerDocument.activeElement}catch{}if(re.length)for(;(Re=re.shift())!=e;){for(De=K[Re],nt=e;Re;)if((sn=K[--Re].Y)&&sn.length){nt=sn[sn.length-1];break}for(M=0;Z=De.Y[M];nt=Z,M++)m.h.Wb(I,Z,nt)}for(Re=0;De=K[Re];Re++){for(De.Y||m.a.extend(De,_(I,B,De.Aa,U,De.pb)),M=0;Z=De.Y[M];nt=Z,M++)m.h.Wb(I,Z,nt);!De.Ed&&U&&(U(De.Aa,De.Y,De.pb),De.Ed=!0,nt=De.Y[De.Y.length-1])}for(Rn&&I.ownerDocument.activeElement!=Rn&&Rn.focus(),q(H.beforeRemove,ge),Re=0;Re<ge.length;++Re)ge[Re].Aa=v;q(H.afterMove,ye),q(H.afterAdd,Ae)}}(),m.b("utils.setDomNodeChildrenFromArrayMapping",m.a.ec),m.ba=function(){this.allowTemplateRewriting=!1},m.ba.prototype=new m.ca,m.ba.prototype.constructor=m.ba,m.ba.prototype.renderTemplateSource=function(_,E,v,I){return(E=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(E.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,I))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var E=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(v,I,M,B){if(B=B||n,M=M||{},2>E)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var H=v.data("precompiled");return H||(H=v.text()||"",H=o.template(null,"{{ko_with $item.koBindingContext}}"+H+"{{/ko_with}}"),v.data("precompiled",H)),v=[I.$data],I=o.extend({koBindingContext:I},M.templateOptions),I=o.tmpl(H,v,I),I.appendTo(B.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(v){return"{{ko_code ((function() { return "+v+" })()) }}"},this.addTemplate=function(v,I){n.write("<script type='text/html' id='"+v+"'>"+I+"<\/script>")},0<E&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},m.$a.prototype=new m.ca,m.$a.prototype.constructor=m.$a;var _=new m.$a;0<_.Hd&&m.gc(_),m.b("jqueryTmplTemplateEngine",m.$a)}()})})()})()})();var Kgt=ko;typeof window<"u"?(ko=window.ko,typeof OI<"u"?window.ko=OI:delete window.ko):(ko=global.ko,typeof OI<"u"?global.ko=OI:delete global.ko);var FE=Kgt;
- var zY="__knockoutObservables",HY="__knockoutSubscribable";function Txe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=Axe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===zY||o===HY)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&$gt(n,a)}}),e}function Axe(e,t){var n=e[zY];return!n&&t&&(n={},Object.defineProperty(e,zY,{value:n})),n}function Zgt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),Txe.call(i,e,[t]),e}function $gt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=Qgt(e,t,i))})}function Qgt(e,t,n){var i=Jgt(e,n);return i.subscribe(t)}function Jgt(e,t){var n=t[HY];if(!n){n=new e.subscribable,Object.defineProperty(t,HY,{value:n});var i={};eyt(t,n,i),tyt(e,t,n,i)}return n}function eyt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function tyt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function Cxe(e,t){if(!e)return null;var n=Axe(e,!1);return n&&n[t]||null}function nyt(e,t){var n=Cxe(e,t);n&&n.valueHasMutated()}function iyt(e){e.track=Txe,e.getObservable=Cxe,e.valueHasMutated=nyt,e.defineProperty=Zgt}var P4={attachToKo:iyt};var Exe="http://www.w3.org/2000/svg",Sxe="cesium-svgPath-svg",oyt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(Exe,"svg:svg");i.setAttribute("class",Sxe);let o=document.createElementNS(Exe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${Sxe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},O4=oyt;P4.attachToKo(FE);O4.register(FE);var Te=FE;function RI(e){u(e)||(e=new Vh),this._clock=e,this._eventHelper=new Or,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Te.observable(J.now()),this.systemTime.equalityComparer=J.equals,this.startTime=Te.observable(e.startTime),this.startTime.equalityComparer=J.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Te.observable(e.stopTime),this.stopTime.equalityComparer=J.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Te.observable(e.currentTime),this.currentTime.equalityComparer=J.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Te.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Te.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Te.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Te.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Te.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Te.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(RI.prototype,{clock:{get:function(){return this._clock}}});RI.prototype.synchronize=function(){let e=this._clock;this.systemTime=J.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};RI.prototype.isDestroyed=function(){return!1};RI.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var R4=RI;function ryt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,de.throwInstantiationError()}var wxe=ryt;var MI={};MI.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return u(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};MI.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};MI.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let l=document.createElement("div");return l.className="cesium-cesiumInspector-slider",l.appendChild(document.createTextNode(e)),l.appendChild(s),l.appendChild(c),l};MI.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return u(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Ja=MI;function vxe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Te.track(this,["toggled","tooltip"])}Object.defineProperties(vxe.prototype,{command:{get:function(){return this._command}}});var ab=vxe;function syt(e,t){t=y(t,!0);let n=new pe,i=new pe;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Te.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var En=syt;function ayt(e,t,n,i,o){return n.call(i,e[t]),Te.getObservable(e,t).subscribe(n,i,o)}var ya=ayt;var cb="http://www.w3.org/2000/svg",Pxe="http://www.w3.org/1999/xlink",M4,LI=z.fromCssColorString("rgba(247,250,255,0.384)"),L4=z.fromCssColorString("rgba(143,191,255,0.216)"),GY=z.fromCssColorString("rgba(153,197,255,0.098)"),N4=z.fromCssColorString("rgba(255,255,255,0.086)"),cyt=z.fromCssColorString("rgba(255,255,255,0.267)"),lyt=z.fromCssColorString("rgba(255,255,255,0)"),Dxe=z.fromCssColorString("rgba(66,67,68,0.3)"),Ixe=z.fromCssColorString("rgba(0,0,0,0.5)");function Fy(e){return z.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var NI={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function Kd(e){let t=document.createElementNS(cb,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(Kd(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(Pxe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function WY(e,t,n){let i=document.createElementNS(cb,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(cb,"tspan");return o.textContent=n,i.appendChild(o),i}function uyt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var F4=new z;function Br(e,t){let n=t.alpha,i=1-n;return F4.red=e.red*i+t.red*n,F4.green=e.green*i+t.green*n,F4.blue=e.blue*i+t.blue*n,F4.toCssColorString()}function jY(e,t,n){let i=NI[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Kd(o)}function fyt(e,t,n){let i=NI[n],o=NI.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Kd(r)}function dyt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&M4!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,l;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,l=t.touches[0].clientY):(c=t.clientX,l=t.clientY),!i&&(c>a.right||c<a.left||l<a.top||l>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=l-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let m=n.shuttleRingAngle;i||c<f.right&&c>f.left&&l>f.top&&l<f.bottom?(M4=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===M4&&(M4=void 0),n.shuttleRingDragging=!1}function e_(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[ya(t,"toggled",this.setToggled,this),ya(t,"tooltip",this.setTooltip,this),ya(t.command,"canExecute",this.setEnabled,this)]}e_.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();le(this)};e_.prototype.isDestroyed=function(){return!1};e_.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};e_.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};e_.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function BE(e,t){e=In(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(cb,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",Pxe);let s=document.createElementNS(cb,"g");this._topG=s,this._realtimeSVG=new e_(fyt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new e_(jY(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new e_(jY(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new e_(jY(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(cb,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=Kd({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let l=NI.animation_pathSwooshFX,f=NI.animation_pathPointer,d=Kd({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:l.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:l.d},{tagName:l.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:l.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=Kd({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=Kd({tagName:"g",transform:"translate(100,100)"});this._knobOuter=Kd({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=Kd({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=WY(0,-24,""),this._knobTime=WY(0,-7,""),this._knobStatus=WY(0,-41,"");let x=Kd({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(cb,"g");b.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(b),s.appendChild(p),s.appendChild(a),b.appendChild(c),b.appendChild(d),b.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(m),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let T=this;function A(O){dyt(T,O)}this._mouseCallback=A,c.addEventListener("mousedown",A,!0),c.addEventListener("touchstart",A,!0),d.addEventListener("mousedown",A,!0),d.addEventListener("touchstart",A,!0),n.addEventListener("mousemove",A,!0),n.addEventListener("touchmove",A,!0),n.addEventListener("mouseup",A,!0),n.addEventListener("touchend",A,!0),n.addEventListener("touchcancel",A,!0),this._shuttleRingPointer.addEventListener("mousedown",A,!0),this._shuttleRingPointer.addEventListener("touchstart",A,!0),this._knobOuter.addEventListener("mousedown",A,!0),this._knobOuter.addEventListener("touchstart",A,!0);let C=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],w=this._knobStatus.childNodes[0],D;this._subscriptions=[ya(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),ya(t,"shuttleRingAngle",function(O){uyt(T._shuttleRingPointer,T._knobOuter,O)}),ya(t,"dateLabel",function(O){S.textContent!==O&&(S.textContent=O)}),ya(t,"timeLabel",function(O){C.textContent!==O&&(C.textContent=O)}),ya(t,"multiplierLabel",function(O){w.textContent!==O&&(w.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(BE.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});BE.prototype.isDestroyed=function(){return!1};BE.prototype.destroy=function(){u(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return le(this)};BE.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};BE.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(u(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=Fy(this._themeNormal),n=Fy(this._themeHover),i=Fy(this._themeSelect),o=Fy(this._themeDisabled),r=Fy(this._themeKnob),s=Fy(this._themePointer),a=Fy(this._themeSwoosh),c=Fy(this._themeSwooshHover),l=Kd({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(t,LI)},{tagName:"stop",offset:"12%","stop-color":Br(t,L4)},{tagName:"stop",offset:"46%","stop-color":Br(t,GY)},{tagName:"stop",offset:"81%","stop-color":Br(t,N4)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(n,LI)},{tagName:"stop",offset:"12%","stop-color":Br(n,L4)},{tagName:"stop",offset:"46%","stop-color":Br(n,GY)},{tagName:"stop",offset:"81%","stop-color":Br(n,N4)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(i,LI)},{tagName:"stop",offset:"12%","stop-color":Br(i,L4)},{tagName:"stop",offset:"46%","stop-color":Br(i,GY)},{tagName:"stop",offset:"81%","stop-color":Br(i,N4)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(o,cyt)},{tagName:"stop",offset:"75%","stop-color":Br(o,lyt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Br(s,Ixe)},{tagName:"stop",offset:"100%","stop-color":Br(s,Ixe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Br(r,LI)},{tagName:"stop",offset:"60%","stop-color":Br(r,Dxe)},{tagName:"stop",offset:"85%","stop-color":Br(r,L4)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Br(r,Dxe)},{tagName:"stop",offset:"60%","stop-color":Br(r,LI)},{tagName:"stop",offset:"85%","stop-color":Br(r,N4)}]}]});u(this._defsElement)?this._svgNode.replaceChild(l,this._defsElement):this._svgNode.appendChild(l),this._defsElement=l};var B4=BE;var hyt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],By=15,kE=105;function Oxe(e,t){return e-t}function qY(e,t){let n=Eo(t,e,Oxe);return n<0?~n:n}function myt(e,t){if(Math.abs(e)<=By)return e/By;let n=By,i=kE,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function pyt(e,t,n){if(n.clockStep===po.SYSTEM_CLOCK)return By;if(Math.abs(e)<=1)return e*By;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=By,r=kE,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function If(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=If.defaultDateFormatter,this._timeFormatter=If.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Te.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(If.defaultTicks),this.timeLabel=void 0,Te.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Te.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Te.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===po.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Te.defineProperty(this,"shuttleRingAngle",{get:function(){return pyt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,kE),-kE);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===kE){c.multiplier=s>0?a[a.length-1]:a[0];return}let l=myt(s,a);if(t.snapToTicks)l=a[qY(l,a)];else if(l!==0){let f=Math.abs(l);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);l=Math.round(l/p)*p|0}else f>By?l=Math.round(l):f>1?l=+l.toFixed(1):f>0&&(l=+l.toFixed(2))}c.multiplier=l}}),this._canAnimate=void 0,Te.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Lr.UNBOUNDED)return!0;let c=s.multiplier,l=s.currentTime,f=s.startTime,d=!1;if(a===Lr.LOOP_STOP)d=J.greaterThan(l,f)||l.equals(f)&&c>0;else{let p=s.stopTime;d=J.greaterThan(l,f)&&J.lessThan(l,p)||l.equals(f)&&c>0||l.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,Te.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Lr.UNBOUNDED)return!0;let c=s.systemTime;return J.greaterThanOrEquals(c,s.startTime)&&J.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Te.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=En(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new ab(n,{toggled:Te.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=En(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new ab(i,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=En(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new ab(o,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==po.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=En(function(){t._clockViewModel.clockStep=po.SYSTEM_CLOCK},Te.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new ab(r,{toggled:Te.computed(function(){return e.clockStep===po.SYSTEM_CLOCK}),tooltip:Te.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=En(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=qY(c,a)-1;l>=0&&(s.multiplier=a[l])}),this._faster=En(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=qY(c,a)+1;l<a.length&&(s.multiplier=a[l])})}If.defaultDateFormatter=function(e,t){let n=J.toGregorianDate(e);return`${hyt[n.month-1]} ${n.day} ${n.year}`};If.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];If.defaultTimeFormatter=function(e,t){let n=J.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};If.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};If.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(Oxe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(If.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});If._maxShuttleRingAngle=kE;If._realtimeShuttleRingAngle=By;var k4=If;function Rxe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Te.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Te.getObservable(this,"imageryProviderViewModels"),r=Te.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;u(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._imageryProviders=r;let s=Te.getObservable(this,"terrainProviderViewModels"),a=Te.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;u(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,Te.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=u(d)?d.name:void 0,m=u(p)?p.name:void 0;return u(g)&&u(m)?`${g}
- ${m}`:u(g)?g:m}),this.buttonImageUrl=void 0,Te.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(u(d))return d.iconUrl}),this.selectedImagery=void 0;let c=Te.observable();this._currentImageryLayers=[],Te.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,m=g.length,x=this._globe.imageryLayers,b=!1;for(p=0;p<m;p++){let T=x.length;for(let A=0;A<T;A++){let C=x.get(A);if(C===g[p]){x.remove(C),b=!0;break}}}if(u(d)){let T=d.creationCommand();if(Array.isArray(T)){let A=T.length;for(this._currentImageryLayers=[],p=A-1;p>=0;p--){let C=ha.fromProviderAsync(T[p]);x.add(C,0),this._currentImageryLayers.push(C)}}else{this._currentImageryLayers=[];let A=ha.fromProviderAsync(T);if(A.name=d.name,b)x.add(A,0);else{let C=x.get(0);u(C)&&x.remove(C),x.add(A,0)}this._currentImageryLayers.push(A)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let l=Te.observable();Te.defineProperty(this,"selectedTerrain",{get:function(){return l()},set:function(d){if(l()===d){this.dropDownVisible=!1;return}let p;if(u(d)&&(p=d.creationCommand()),u(p)&&!u(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof zp),this._globe.terrainProvider=p;else if(u(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new s4(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof zp),this._globe.terrainProvider=T,b())})}l(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=En(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(Rxe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var U4=Rxe;function V4(e,t){e=In(e);let n=new U4(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let l=document.createElement("div");l.className="cesium-baseLayerPicker-categoryTitle",l.setAttribute("data-bind","text: name"),c.appendChild(l);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let m=document.createElement("div");m.className="cesium-baseLayerPicker-sectionTitle",m.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),m.innerHTML="Terrain",r.appendChild(m);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let b=document.createElement("div");b.className="cesium-baseLayerPicker-category",x.appendChild(b);let T=document.createElement("div");T.className="cesium-baseLayerPicker-categoryTitle",T.setAttribute("data-bind","text: name"),b.appendChild(T);let A=document.createElement("div");A.className="cesium-baseLayerPicker-choices",A.setAttribute("data-bind","foreach: providers"),b.appendChild(A);let C=document.createElement("div");C.className="cesium-baseLayerPicker-item",C.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),A.appendChild(C);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),C.appendChild(S);let w=document.createElement("div");w.className="cesium-baseLayerPicker-itemLabel",w.setAttribute("data-bind","text: name"),C.appendChild(w),Te.applyBindings(n,i),Te.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(V4.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});V4.prototype.isDestroyed=function(){return!1};V4.prototype.destroy=function(){return Bt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._element),Te.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),le(this)};var z4=V4;function Mxe(e){let t=e.creationFunction;u(t.canExecute)||(t=En(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Te.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(Mxe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var Yr=Mxe;function _yt(){let e=[],t=devicePixelRatio>=2;return e.push(new Yr({name:"Bing Maps Aerial",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return uy({style:ly.AERIAL})}})),e.push(new Yr({name:"Bing Maps Aerial with Labels",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return uy({style:ly.AERIAL_WITH_LABELS})}})),e.push(new Yr({name:"Bing Maps Roads",iconUrl:$t("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return uy({style:ly.ROAD})}})),e.push(new Yr({name:"ArcGIS World Imagery",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at
- https:
- https:
- https:
- http:
- https:
- © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
- © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
- © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia x Stamen Toner",iconUrl:$t("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays.
- https:
- © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
- © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
- © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia Alidade Smooth",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine.
- https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new Ly({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
- © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
- © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia Alidade Smooth Dark",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine.
- https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new Ly({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
- © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
- © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Sentinel-2",iconUrl:$t("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return cy.fromAssetId(3954)}})),e.push(new Yr({name:"Blue Marble",iconUrl:$t("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return cy.fromAssetId(3845)}})),e.push(new Yr({name:"Earth at night",iconUrl:$t("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return cy.fromAssetId(3812)}})),e.push(new Yr({name:"Natural Earth\xA0II",iconUrl:$t("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast.
- http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return vx.fromUrl($t("Assets/Textures/NaturalEarthII"))}})),e}var H4=_yt;function gyt(){let e=[];return e.push(new Yr({name:"WGS84 Ellipsoid",iconUrl:$t("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new zp}})),e.push(new Yr({name:"Cesium World Terrain",iconUrl:$t("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return CE({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var G4=gyt;function yyt(e){return function(t){let n=e._scene.pick(t.position);u(n)&&n.primitive instanceof ca&&(e.tileset=n.primitive),e.pickActive=!1}}function Nxe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);u(i)&&i.primitive instanceof ca&&(e.tileset=i.primitive)},yn.MOUSE_MOVE):(e._eventHandler.removeInputAction(yn.MOUSE_MOVE),e.picking=e.picking)}var xyt={maximumFractionDigits:3};function FI(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,xyt):Math.round(t).toLocaleString()}function BI(e,t){if(!u(e))return"";let n=t?e._statisticsPerPass[Po.PICK]:e._statisticsPerPass[Po.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${FI(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${FI(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${FI(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function Fxe(){let e=Wi.statistics;return`
- <ul class="cesium-cesiumInspector-statistics">
- <li><strong>Geometry Memory (MB): </strong>${FI(e.geometryByteLength)}</li>
- <li><strong>Texture Memory (MB): </strong>${FI(e.texturesByteLength)}</li>
- </ul>
- `}var byt=[{text:"Highlight",value:kl.HIGHLIGHT},{text:"Replace",value:kl.REPLACE},{text:"Mix",value:kl.MIX}],Lxe=new z(1,1,0,.4),Tyt=new z,W4=new z;function Js(e,t){let n=this,i=e.canvas;this._eventHandler=new Af(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new gy({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Te.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Te.observable({}),this.properties=[],Te.defineProperty(this,"properties",function(){let k=[],Y=n._properties();for(let q in Y)Y.hasOwnProperty(q)&&k.push(q);return k});let o=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),u(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=Te.observable();Te.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),u(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=kl.HIGHLIGHT;let s=Te.observable(),a=Te.observable();Te.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(Y){let q=e.pick(Y.endPosition);if(q instanceof Ms?(n.feature=q,n.tile=q.content.tile):u(q)&&u(q.content)?(n.feature=void 0,n.tile=q.content.tile):(n.feature=void 0,n.tile=void 0),!!u(n._tileset)){if(s&&u(q)&&u(q.content)){let Q;e.pickPositionSupported&&(Q=e.pickPosition(Y.endPosition),u(Q)&&(n._tileset.debugPickPosition=Q)),n._tileset.debugPickedTile=q.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},yn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(yn.MOUSE_MOVE))}}),this.picking=!0;let c=Te.observable();Te.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),u(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let l=Te.observable();Te.defineProperty(this,"wireframe",{get:function(){return l()},set:function(k){l(k),u(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let f=Te.observable();Te.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(k){f(k),u(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=Te.observable();Te.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(k){d(k),u(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Te.observable();Te.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),u(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Te.observable();Te.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),u(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,Te.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),u(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=Te.observable();Te.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(k){m(k),u(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=Te.observable();Te.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),u(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let b=Te.observable();Te.defineProperty(this,"showMemoryUsage",{get:function(){return b()},set:function(k){b(k),u(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let T=Te.observable();Te.defineProperty(this,"showUrl",{get:function(){return T()},set:function(k){T(k),u(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let A=Te.observable();Te.defineProperty(this,"maximumScreenSpaceError",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),u(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let C=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Te.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(C(),1/6)},set:function(k){C(Math.pow(k,6))}});let S=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=4;let w=yyt(this),D=Te.observable();Te.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(w,yn.LEFT_CLICK):n._eventHandler.removeInputAction(yn.LEFT_CLICK)}});let O=Te.observable();Te.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),u(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let R=Te.observable();Te.defineProperty(this,"geometricErrorScale",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),u(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let N=Te.observable();Te.defineProperty(this,"maximumAttenuation",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),u(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let F=Te.observable();Te.defineProperty(this,"baseResolution",{get:function(){return F()},set:function(k){k=Number(k),isNaN(k)||(F(k),u(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let _=Te.observable();Te.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(k){_(k),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let E=Te.observable();Te.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let v=Te.observable();Te.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return v()},set:function(k){k=Number(k),isNaN(k)||(v(k),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Te.observable();Te.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(k){I(k),u(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let M=Te.observable();Te.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return M()},set:function(k){k=Number(k),isNaN(k)||(M(k),u(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let B=Te.observable();Te.defineProperty(this,"baseScreenSpaceError",{get:function(){return B()},set:function(k){k=Number(k),isNaN(k)||(B(k),u(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let H=Te.observable();Te.defineProperty(this,"skipLevels",{get:function(){return H()},set:function(k){k=Number(k),isNaN(k)||(H(k),u(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let U=Te.observable();Te.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return U()},set:function(k){U(k),u(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=Te.observable();Te.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(k){G(k),u(n._tileset)&&(n._tileset.loadSiblings=k)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),u(this._tileset)||Nxe(this,!0)}Object.defineProperties(Js.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return byt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,u(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=BI(e,!1),this._pickStatisticsText=BI(e,!0),this._resourceCacheStatisticsText=Fxe(),Nxe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;u(t)&&!t.content.isDestroyed()&&(!this.colorize&&u(this._style)?t.color=u(this._style.color)?this._style.color.evaluateColor(t,Tyt):z.WHITE:t.color=W4,this._scene.requestRender()),u(e)&&(z.clone(e.color,W4),e.color=Lxe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;u(t)&&!t.isDestroyed()&&!YY(t.content)&&(t.color=W4,this._scene.requestRender()),u(e)&&!YY(e.content)&&(z.clone(e.color,W4),e.color=Lxe,this._scene.requestRender()),this._tile=e}}});function YY(e){if(!u(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(u(t)){let n=t.length;for(let i=0;i<n;++i)if(!YY(t[i]))return!1;return!0}return!1}Js.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};Js.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Js.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};Js.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Js.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};Js.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};Js.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};Js.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};Js.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};Js.prototype.trimTilesCache=function(){u(this._tileset)&&this._tileset.trimLoadedTiles()};Js.prototype.compileStyle=function(){let e=this._tileset;if(!(!u(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new SE(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};Js.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(`
- `),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let f=a.join(`
- `);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};Js.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),u(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=BI(e,!1),this._pickStatisticsText=BI(e,!0),this._resourceCacheStatisticsText=Fxe())};Js.prototype.isDestroyed=function(){return!1};Js.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),le(this)};Js.getStatistics=BI;var j4=Js;function q4(e,t){e=In(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new j4(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Ja.createSection,c=Ja.createCheckbox,l=Ja.createRangeInput,f=Ja.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),m=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),b=a(s,"Style","styleVisible","toggleStyle"),T=a(s,"Optimization","optimizationVisible","toggleOptimization"),A=document.createElement("div");A.className="field-group";let C=document.createElement("label");C.className="field-label",C.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),A.appendChild(C),A.appendChild(S),d.appendChild(A),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let w=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",w.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(l("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(l("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(l("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let R=document.createElement("div");R.setAttribute("data-bind","visible: eyeDomeLighting"),R.appendChild(l("EDL Strength","eyeDomeLightingStrength",0,2,.1)),R.appendChild(l("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(R),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let N=document.createElement("div");N.appendChild(l("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(N);let F=document.createElement("div");F.setAttribute("data-bind","visible: dynamicScreenSpaceError"),F.appendChild(l("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),F.appendChild(l("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.1)),g.appendChild(F),m.appendChild(c("Performance","performance")),m.appendChild(i),m.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),m.appendChild(_),m.appendChild(c("Pick Statistics","showPickStatistics"));let E=document.createElement("div");E.className="cesium-3dTilesInspector-statistics",E.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(E),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let v=document.createElement("div");v.className="cesium-3dTilesInspector-statistics",v.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(v);let I=document.createElement("div");b.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let M=document.createElement("select");M.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(M);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(B);let H=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(H);let U=document.createElement("div");U.className="cesium-cesiumInspector-error",U.setAttribute("data-bind","text: editorError"),I.appendChild(U),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),T.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(l("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(l("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let Y=document.createElement("div");Y.appendChild(l("Min. levels to skip","skipLevels",0,10,1)),T.appendChild(Y),T.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),T.appendChild(c("Load siblings of visible tiles","loadSiblings")),Te.applyBindings(o,n)}Object.defineProperties(q4.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});q4.prototype.isDestroyed=function(){return!1};q4.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};var Y4=q4;function Ayt(e){let t;if(u(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br> ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function XY(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var Cyt=new Cn,Eyt=new h;function kI(e,t){let n=this,i=e.canvas,o=new Af(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Te.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=En(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=En(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=En(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=En(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Te.getObservable(this,"frustums").subscribe(function(l){n._scene.debugShowFrustums=l,n._scene.requestRender()}),this._frustumPlanesSubscription=Te.getObservable(this,"frustumPlanes").subscribe(function(l){n._scene.debugShowFrustumPlanes=l,n._scene.requestRender()}),this._performanceSubscription=Te.getObservable(this,"performance").subscribe(function(l){l?n._performanceDisplay=new gy({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=En(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Te.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=En(function(){if(n.primitiveReferenceFrame){let l=n._primitive.modelMatrix;n._modelMatrixPrimitive=new Hz({modelMatrix:l}),n._scene.primitives.add(n._modelMatrixPrimitive)}else u(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Te.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=En(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(l){return u(n._modelMatrixPrimitive)&&l.owner===n._modelMatrixPrimitive._primitive?!0:u(n._primitive)?l.owner===n._primitive||l.owner===n._primitive._billboardCollection||l.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Te.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Te.getObservable(this,"wireframe").subscribe(function(l){r._surface.tileProvider._debug.wireframe=l,n._scene.requestRender()}),this._depthFrustumSubscription=Te.getObservable(this,"depthFrustum").subscribe(function(l){n._scene.debugShowDepthFrustum=l,n._scene.requestRender()}),this._incrementDepthFrustum=En(function(){let l=n.depthFrustum+1;return n.depthFrustum=XY(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._decrementDepthFrustum=En(function(){let l=n.depthFrustum-1;return n.depthFrustum=XY(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Te.getObservable(this,"suspendUpdates").subscribe(function(l){r._surface._debug.suspendLodUpdate=l,l||(n.filterTile=!1)});let s;this._showTileCoordinates=En(function(){return n.tileCoordinates&&!u(s)?s=e.imageryLayers.addImageryProvider(new a4({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&u(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Te.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Te.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=En(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=En(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],u(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Te.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(l){let f=n._scene.pick({x:l.position.x,y:l.position.y});u(f)&&(n.primitive=u(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=En(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Te.getObservable(this,"pickPrimitiveActive").subscribe(function(l){l?o.setInputAction(a,yn.LEFT_CLICK):o.removeInputAction(yn.LEFT_CLICK)});function c(l){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(l.position,Cyt),g=r.pick(p,n._scene,Eyt);if(u(g)){let m=d.cartesianToCartographic(g),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let b=0;!f&&b<x.length;++b){let T=x[b];if(u(T))for(let A=0;!f&&A<T.length;++A){let C=T[A];ce.contains(C.rectangle,m)&&(f=C)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=En(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Te.getObservable(this,"pickTileActive").subscribe(function(l){l?o.setInputAction(c,yn.LEFT_CLICK):o.removeInputAction(yn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(kI.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return En(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return En(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return En(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return En(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return En(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,u(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,u(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(u(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;u(n)&&u(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});kI.prototype._update=function(){this.frustums&&(this.frustumStatisticText=Ayt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=XY(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};kI.prototype.isDestroyed=function(){return!1};kI.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),le(this)};var X4=kI;function K4(e,t){e=In(e);let n=document.createElement("div"),i=new X4(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Ja.createSection,c=Ja.createCheckbox,l=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),l.appendChild(f),l.appendChild(c("Show Frustum Planes","frustumPlanes")),l.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",l.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),l.appendChild(p);let g=document.createElement("div");l.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: " Frustum:"'),g.appendChild(m);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(x);let b=document.createElement("input");b.type="button",b.value="-",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(b);let T=document.createElement("input");T.type="button",T.value="+",T.className="cesium-cesiumInspector-pickButton",T.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(T);let A=a(s,"Primitives","primitivesVisible","togglePrimitives"),C=document.createElement("div");C.className="cesium-cesiumInspector-pickSection",A.appendChild(C);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let w=document.createElement("div");w.className="cesium-cesiumInspector-center",w.appendChild(S),C.appendChild(w),C.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),C.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),C.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let R=document.createElement("input");R.type="button",R.value="Pick a tile",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),w=document.createElement("div"),w.appendChild(R),w.className="cesium-cesiumInspector-center",O.appendChild(w);let N=document.createElement("div");O.appendChild(N);let F=document.createElement("input");F.type="button",F.value="Parent",F.className="cesium-cesiumInspector-pickButton",F.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let E=document.createElement("input");E.type="button",E.value="NE",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind","click: selectNE");let v=document.createElement("input");v.type="button",v.value="SW",v.className="cesium-cesiumInspector-pickButton",v.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let M=document.createElement("div");M.className="cesium-cesiumInspector-tileText",N.className="cesium-cesiumInspector-frustumStatistics",N.appendChild(M),N.setAttribute("data-bind","visible: hasPickedTile"),M.setAttribute("data-bind","html: tileText");let B=document.createElement("div");B.className="cesium-cesiumInspector-relativeText",B.textContent="Select relative:",N.appendChild(B);let H=document.createElement("table"),U=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(F);let Y=document.createElement("td");Y.appendChild(_);let q=document.createElement("td");q.appendChild(E),U.appendChild(k),U.appendChild(Y),U.appendChild(q);let Q=document.createElement("td"),W=document.createElement("td");W.appendChild(v);let K=document.createElement("td");K.appendChild(I),G.appendChild(Q),G.appendChild(W),G.appendChild(K),H.appendChild(U),H.appendChild(G),N.appendChild(H),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),Te.applyBindings(i,this._element)}Object.defineProperties(K4.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});K4.prototype.isDestroyed=function(){return!1};K4.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};var Z4=K4;function $4(e,t){u(t)||(t=document.body),t=In(t);let n=this,i=Te.observable(hr.fullscreen),o=Te.observable(hr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Te.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Te.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&hr.enabled)}}),this.tooltip=void 0,Te.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=En(function(){hr.fullscreen?hr.exitFullscreen():hr.requestFullscreen(n._fullscreenElement)},Te.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(In(e),r.body),this._callback=function(){i(hr.fullscreen)},r.addEventListener(hr.changeEventName,this._callback)}Object.defineProperties($4.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});$4.prototype.isDestroyed=function(){return!1};$4.prototype.destroy=function(){document.removeEventListener(hr.changeEventName,this._callback),le(this)};var Q4=$4;var Syt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",wyt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function J4(e,t){e=In(e);let n=new Q4(t,e);n._exitFullScreenPath=wyt,n._enterFullScreenPath=Syt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Te.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(J4.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});J4.prototype.isDestroyed=function(){return!1};J4.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var e8=J4;function Bxe(e,t){this._scene=e,this._duration=t;let n=this;this._command=En(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Te.track(this,["tooltip"])}Object.defineProperties(Bxe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var t8=Bxe;function n8(e,t,n){e=In(e);let i=new t8(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Te.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(n8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});n8.prototype.isDestroyed=function(){return!1};n8.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var i8=n8;var kxe=1e3;function Pf(e){u(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new wz({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new pe,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=Vxe,this._handleArrowUp=Uxe;let t=this;this._suggestionsVisible=Te.pureComputed(function(){let o=Te.getObservable(t,"_suggestions")().length>0,r=Te.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=En(function(i){if(i=y(i,Kx.SEARCH),t._focusTextbox=!1,u(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)Ryt(t);else return Pyt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?Uxe(t):r?Vxe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;Gxe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,Pf.flyToDestination),this._focusTextbox=!1,Te.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Te.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){Pf._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Te.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Te.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Te.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(Pf.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});Pf.prototype.destroy=function(){this._suggestionSubscription.dispose()};function Uxe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],Pf._adjustSuggestionsScroll(e,n)}function Vxe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],Pf._adjustSuggestionsScroll(e,i)}function vyt(e,t){let n=u(t)?t.availability:void 0;return u(n)?kg(t,[e]).then(function(i){return e=i[0],e.height+=kxe,e}):(e.height+=kxe,Promise.resolve(e))}function Dyt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof ce?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=ce.center(t):c=NE(t,n):t=o.cartesianToCartographic(t),u(c)||(c=vyt(t,s)),c.then(function(l){a=o.cartographicToCartesian(l)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:L.IDENTITY})})}async function Iyt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function Pyt(e,t,n){let i=e._searchText;if(Hxe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await Iyt(t[o],i,n),u(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,ZY(e);let s=r.value;if(r.state==="fulfilled"&&u(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=zxe(e,rI.getCreditsFromResult(s[0]));u(a)||KY(e,t[o].credit);return}e._searchText=`${i} (not found)`}function KY(e,t){u(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function zxe(e,t){return u(t)&&t.forEach(n=>KY(e,n)),t}function ZY(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function Oyt(e,t){let n=In(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function Ryt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function Hxe(e){return/^\s*$/.test(e)}function Gxe(e){Te.getObservable(e,"_suggestions").removeAll()}async function Myt(e){if(!e.autoComplete)return;let t=e._searchText;if(Gxe(e),ZY(e),!Hxe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,Kx.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=rI.getCreditsFromResult(r);o=o&&!u(s),zxe(e,s)}),o&&KY(e,n.credit)}if(e._suggestions.length>=5)return}}Pf.flyToDestination=Dyt;Pf._updateSearchSuggestions=Myt;Pf._adjustSuggestionsScroll=Oyt;Pf.prototype.isDestroyed=function(){return!1};Pf.prototype.destroy=function(){return ZY(this),le(this)};var o8=Pf;var Lyt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",Nyt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function r8(e){let t=In(e.container),n=new o8(e);n._startSearchPath=Lyt,n._stopSearchPath=Nyt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Te.applyBindings(n,i),Te.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(l){let f=l.target;typeof l.composedPath=="function"&&(f=l.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(l){n._focusTextbox=!0,n.showSuggestions()},Bt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(r8.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});r8.prototype.isDestroyed=function(){return!1};r8.prototype.destroy=function(){let e=this._container;return Bt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Te.cleanNode(this._form),Te.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),le(this)};var s8=r8;var Fyt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",Byt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function $Y(){this._cameraClicked=new pe,this._closeClicked=new pe,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Te.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Te.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?Byt:Fyt}}),Te.defineProperty(this,"_bodyless",{get:function(){return!u(this.description)||this.description.length===0}})}$Y.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties($Y.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var a8=$Y;function c8(e){e=In(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new a8;Te.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,l=c.createElement("link");l.href=$t("Widgets/InfoBox/InfoBoxDescription.css"),l.rel="stylesheet",l.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(l),c.body.appendChild(f),a._descriptionSubscription=ya(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let x=window.getComputedStyle(g);if(x!==null){let b=x["background-color"],T=z.fromCssColorString(b);u(T)&&T.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let m=f.getBoundingClientRect().height;r.style.height=`${m}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(c8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});c8.prototype.isDestroyed=function(){return!1};c8.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),u(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),le(this)};var l8=c8;function Wxe(){this.showInstructions=!1;let e=this;this._command=En(function(){e.showInstructions=!e.showInstructions}),this._showClick=En(function(){e._touch=!1}),this._showTouch=En(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Te.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(Wxe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var u8=Wxe;function f8(e){let t=In(e.container),n=new u8,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=$t("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let l=document.createElement("button");l.type="button",l.className="cesium-navigation-button cesium-navigation-button-right",l.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=$t("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",l.appendChild(f),l.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(l);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Te.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(f8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});f8.prototype.isDestroyed=function(){return!1};f8.prototype.destroy=function(){return Bt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),le(this)};var d8=f8;function QY(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Te.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=En(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=jz.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(QY.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});QY.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),le(this)};var h8=QY;function m8(e){let t=In(e.container),n=new h8(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Te.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(m8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});m8.prototype.isDestroyed=function(){return!1};m8.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var p8=m8;function _8(e){this._scene=e,this._orthographic=e.camera.frustum instanceof Qt,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Te.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Te.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=En(function(){t.sceneMode===te.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Or,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===te.SCENE2D||t._scene.camera.frustum instanceof Qt}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=u(e.camera._currentFlight)}),this._switchToPerspective=En(function(){t.sceneMode!==te.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=En(function(){t.sceneMode!==te.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=te}Object.defineProperties(_8.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});_8.prototype.isDestroyed=function(){return!1};_8.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var g8=_8;var kyt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",Uyt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function y8(e,t){e=In(e);let n=new g8(t);n._perspectivePath=kyt,n._orthographicPath=Uyt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Te.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(y8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});y8.prototype.isDestroyed=function(){return!1};y8.prototype.destroy=function(){return this._viewModel.destroy(),Bt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),le(this)};var x8=y8;function b8(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Or,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Te.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Te.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===te.SCENE2D?n.tooltip2D:o===te.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=En(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=En(function(){e.morphTo2D(n._duration)}),this._morphTo3D=En(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=En(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=te}Object.defineProperties(b8.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});b8.prototype.isDestroyed=function(){return!1};b8.prototype.destroy=function(){this._eventHelper.removeAll(),le(this)};var T8=b8;var Vyt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",zyt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",Hyt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function A8(e,t,n){e=In(e);let i=new T8(t,n);i._globePath=Vyt,i._flatMapPath=zyt,i._columbusViewPath=Hyt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Te.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(l){o.contains(l.target)||(i.dropDownVisible=!1)},Bt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(A8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});A8.prototype.isDestroyed=function(){return!1};A8.prototype.destroy=function(){return this._viewModel.destroy(),Bt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),le(this)};var C8=A8;var Gyt=new V,E8="-1000px";function UI(e,t,n){this._scene=e,this._screenPositionX=E8,this._screenPositionY=E8,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Te.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Te.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&u(this.position)}}),Te.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return $i.wgs84ToWindowCoordinates(e,i,o)}}UI.prototype.update=function(){if(this.showSelection&&u(this.position)){let e=this.computeScreenSpacePosition(this.position,Gyt);if(!u(e))this._screenPositionX=E8,this._screenPositionY=E8;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};UI.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Nr.EXPONENTIAL_OUT})};UI.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Nr.EXPONENTIAL_OUT})};Object.defineProperties(UI.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var S8=UI;function w8(e,t){e=In(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new S8(t,this._element,this._container);this._viewModel=c,Te.applyBindings(this._viewModel,this._element)}Object.defineProperties(w8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});w8.prototype.isDestroyed=function(){return!1};w8.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),le(this)};var v8=w8;function lb(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}lb.prototype.getHeight=function(){return this._height};lb.prototype.getBase=function(){return this._base};lb.prototype.getStartTime=function(){return this._start};lb.prototype.getStopTime=function(){return this._stop};lb.prototype.setRange=function(e,t){this._start=e,this._stop=t};lb.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=J.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=J.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var D8=lb;function jxe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new z(.5,.5,.5,1),this.backgroundColor=i||new z(0,0,0,0)}jxe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=J.addSeconds(t.startJulian,t.duration,new J);if(J.lessThan(n,o)&&J.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(J.lessThanOrEquals(n,r)&&J.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let l=J.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new J);!u(a)&&J.greaterThanOrEquals(l,n)?a=s:!u(c)&&J.greaterThanOrEquals(l,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),u(a)&&(u(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var I8=jxe;var JY=1e12,Of={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},Lc={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},ky=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],Wyt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Nc(e,t){e=In(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=Of.none,this._touchMode=Lc.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=jyt(this),this._onMouseUp=qyt(this),this._onMouseMove=Yyt(this),this._onMouseWheel=Xyt(this),this._onTouchStart=Kyt(this),this._onTouchMove=$yt(this),this._onTouchEnd=Zyt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}Nc.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};Nc.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};Nc.prototype.isDestroyed=function(){return!1};Nc.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),le(this)};Nc.prototype.addHighlightRange=function(e,t,n){let i=new D8(e,t,n);return this._highlightRanges.push(i),this.resize(),i};Nc.prototype.addTrack=function(e,t,n,i){let o=new I8(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};Nc.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=J.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Lr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=J.secondsDifference(o,i),s=J.secondsDifference(i,this._startJulian),a=J.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=J.addSeconds(this._endJulian,s,new J),this._startJulian=i,this._timeBarSecondsSpan=J.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=J.addSeconds(this._startJulian,a,new J),this._endJulian=o,this._timeBarSecondsSpan=J.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};Nc.prototype.zoomFrom=function(e){let t=J.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(J.addSeconds(this._startJulian,t-t*e,new J),J.addSeconds(this._endJulian,n*e-n,new J))};function eX(e){return e<10?`0${e.toString()}`:e.toString()}Nc.prototype.makeLabel=function(e){let t=J.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${Wyt[t.month-1]} ${t.day} ${t.year} ${eX(t.hour)}:${eX(t.minute)}:${eX(t.second)}${i}`};Nc.prototype.smallestTicInPixels=7;Nc.prototype._makeTics=function(){let e=this._timeBarEle,t=J.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,l=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=J.addSeconds(this._startJulian,a,new J)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=J.addSeconds(this._startJulian,c,new J));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),x,b=J.toGregorianDate(g);d>31536e4?x=J.fromDate(new Date(Date.UTC(Math.floor(b.year/100)*100,0))):d>31536e3?x=J.fromDate(new Date(Date.UTC(Math.floor(b.year/10)*10,0))):d>86400?x=J.fromDate(new Date(Date.UTC(b.year,0))):x=J.fromDate(new Date(Date.UTC(b.year,b.month,b.day)));let T=J.secondsDifference(this._startJulian,J.addSeconds(x,m,new J)),A=T+d;this._epochJulian=x;function C(k){return Math.floor(T/k)*k}function S(k,Y){return Math.ceil(k/Y+.5)*Y}function w(k){return(k-T)/d}function D(k,Y){return k-Y*Math.round(k/Y)}this._rulerEle.innerHTML=this.makeLabel(J.addSeconds(this._endJulian,-a,new J));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let R=f;f-=l;let N={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:w};this._highlightRanges.forEach(function(k){s+=k.render(N)});let F=0,_=0,E=0,v=O/p;v>1&&(v=1),v*=this._timeBarSecondsSpan;let I=-1,M=-1,B=ky.length,H;for(H=0;H<B;++H){let k=ky[H];if(++I,F=k,k>v&&k>f)break;M<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(M=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(F,ky[I]))<1e-5){ky[I]>=f&&(_=ky[I]);break}if(M>=0)for(;M<I;){if(Math.abs(D(_,ky[M]))<1e-5&&ky[M]>=f){E=ky[M];break}++M}}f=R,f>l&&E<1e-5&&Math.abs(f-F)>l&&(E=f,f<=F+l&&(_=0));let U=-999999,G;if(p*(E/this._timeBarSecondsSpan)>=3)for(o=C(E);o<=A;o=S(o,E))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*w(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=C(_);o<=A;o=S(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*w(o)).toString()}px;"></span>`;if(p*(F/this._timeBarSecondsSpan)>=2){this._mainTicSpan=F,A+=F,o=C(F);let k=J.computeTaiMinusUtc(x);for(;o<=A;){let Y=J.addSeconds(g,o-T,new J);if(F>2.1){let K=J.computeTaiMinusUtc(Y);Math.abs(K-k)>.1&&(o+=K-k,Y=J.addSeconds(g,o-T,new J))}let q=Math.round(p*w(o)),Q=this.makeLabel(Y);this._rulerEle.innerHTML=Q,G=this._rulerEle.offsetWidth,G<10&&(G=O);let W=q-(G/2-1);W>U?(U=W+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${q.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${W.toString()}px;">${Q}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${q.toString()}px;"></span>`,o=S(o,F)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),N.y=0,this._trackList.forEach(function(k){k.render(r._context,N),N.y+=k.height})};Nc.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(u(this._scrubElement)){let t=J.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}u(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(J.addSeconds(this._startJulian,this._timelineDrag,new J),J.addSeconds(this._endJulian,this._timelineDrag,new J)))};Nc.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=J.addSeconds(this._startJulian,t,new J),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function jyt(e){return function(t){e._mouseMode!==Of.touchOnly&&(t.button===0?(e._mouseMode=Of.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Of.zoom:e._mouseMode=Of.slide)),t.preventDefault()}}function qyt(e){return function(t){e._mouseMode=Of.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function Yyt(e){return function(t){let n;if(e._mouseMode===Of.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===Of.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(J.addSeconds(e._startJulian,i,new J),J.addSeconds(e._endJulian,i,new J))}}else e._mouseMode===Of.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function Xyt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;JY=Math.max(Math.min(Math.abs(n),JY),1),n/=JY,e.zoomFrom(Math.pow(1.05,-n))}}function Kyt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Of.touchOnly,n===1?(i=J.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=Lc.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=Lc.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=Lc.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=Lc.ignore}}function Zyt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===Lc.singleTap?(e._touchMode=Lc.scrub,e._onTouchMove(t)):e._touchMode===Lc.scrub&&e._onTouchMove(t),e._mouseMode=Of.touchOnly,n!==1?e._touchMode=n>0?Lc.ignore:Lc.none:e._touchMode===Lc.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function $yt(e){return function(t){let n,i,o,r,s,a,c=1,l=e._topDiv.getBoundingClientRect().left;e._touchMode===Lc.singleTap&&(e._touchMode=Lc.slideZoom),e._mouseMode=Of.touchOnly,e._touchMode===Lc.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-l,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===Lc.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-l,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-l,s=0),u(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=J.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new J)):(n=e._touchState.centerX-r,a=J.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new J)),e.zoomTo(a,J.addSeconds(a,e._timeBarSecondsSpan*c,new J)),e._touchState.centerX=r,e._touchState.spanX=s))}}Nc.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var P8=Nc;var Zxe=or(Kxe(),1);function e0t(e){let t=!1,n=window.screen;return u(n)&&(u(n.lockOrientation)?t=n.lockOrientation(e):u(n.mozLockOrientation)?t=n.mozLockOrientation(e):u(n.msLockOrientation)?t=n.msLockOrientation(e):u(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function $xe(){let e=window.screen;u(e)&&(u(e.unlockOrientation)?e.unlockOrientation():u(e.mozUnlockOrientation)?e.mozUnlockOrientation():u(e.msUnlockOrientation)?e.msUnlockOrientation():u(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function t0t(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&($xe(),e._locked=!1),e._noSleep.disable(),hr.exitFullscreen(),n(!1)):(hr.fullscreen||hr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=e0t("landscape")),t.useWebVR=!0,n(!0)))}function O8(e,t){let n=this,i=Te.observable(hr.enabled),o=Te.observable(!1);this.isVRMode=void 0,Te.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Te.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&hr.enabled)}}),this.tooltip=void 0,Te.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Te.observable(!1);this._isOrthographic=void 0,Te.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Or,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof Qt)}),this._locked=!1,this._noSleep=new Zxe.default,this._command=En(function(){t0t(n,e,o,r)},Te.getObservable(this,"isVREnabled")),this._vrElement=y(In(t),document.body),this._callback=function(){!hr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&($xe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(hr.changeEventName,this._callback)}Object.defineProperties(O8.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});O8.prototype.isDestroyed=function(){return!1};O8.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(hr.changeEventName,this._callback),le(this)};var R8=O8;var n0t="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",i0t="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function M8(e,t,n){e=In(e);let i=new R8(t,n);i._exitVRPath=i0t,i._enterVRPath=n0t;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Te.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(M8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});M8.prototype.isDestroyed=function(){return!1};M8.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),le(this)};var L8=M8;var Uy=new se;function ebe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function o0t(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);u(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function r0t(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(u(r)&&r!=="")return r}return"Unnamed Feature"}function Qxe(e,t){let n=e.scene.pick(t.position);if(u(n)){let i=y(n.id,n.primitive.id);if(i instanceof Qo)return i;if(n instanceof Ms)return new Qo({name:r0t(n),description:o0t(n),feature:n})}if(u(e.scene.globe))return c0t(e,t.position)}var s0t=new J;function tbe(e,t,n){if(u(n)){let i=n.clock;if(u(i)&&(i.getValue(t),u(e))){let o=i.startTime,r=i.stopTime;J.equals(o,r)&&(r=J.addSeconds(o,P.EPSILON2,s0t)),e.updateFromClock(),e.zoomTo(o,r)}}}var a0t=new h;function c0t(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!u(o))return;let r=new Qo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!u(s)||s.length===0){e.selectedEntity=Jxe();return}let a=s[0],c=new Qo({id:a.name,description:a.description});if(u(a.position)){let l=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,a0t);c.position=new $c(l)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=Jxe())}),r}function Jxe(){return new Qo({id:"None",description:"No features found."})}function l0t(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,l=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(u(n)&&(n.container.style.visibility=p),u(i)&&(i.container.style.visibility=p),u(o)&&(o.container.style.visibility=p),u(r)&&(r.container.style.visibility=p),u(s)&&(s.container.style.visibility=p),u(a)&&(a.container.style.visibility=p),u(c)&&(c.container.style.visibility=p),u(l)&&l.viewModel.isFullscreenEnabled&&(l.container.style.visibility=p),u(f)&&(f.container.style.visibility=p),u(d)&&(d.container.style.visibility=p),e._container){let g=t||!u(l)?0:l.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Di(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=(!u(t.globe)||t.globe!==!1)&&(!u(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,l,f=!1;u(t.clockViewModel)?(l=t.clockViewModel,c=l.clock):(c=new Vh,l=new R4(c),f=!0),u(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new cz(r,{baseLayer:n||u(t.baseLayer)||u(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:u(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,g=!1;u(p)||(p=new eB,g=!0);let m=d.scene,x=new GB({scene:m,dataSourceCollection:p}),b=new Or;b.add(c.onTick,Di.prototype._onTick,this),b.add(m.morphStart,Di.prototype._clearTrackedObject,this);let T;if(!u(t.selectionIndicator)||t.selectionIndicator!==!1){let q=document.createElement("div");q.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(q),T=new v8(q,m)}let A;if(!u(t.infoBox)||t.infoBox!==!1){let q=document.createElement("div");q.className="cesium-viewer-infoBoxContainer",o.appendChild(q),A=new l8(q);let Q=A.viewModel;b.add(Q.cameraClicked,Di.prototype._onInfoBoxCameraClicked,this),b.add(Q.closeClicked,Di.prototype._onInfoBoxClockClicked,this)}let C=document.createElement("div");C.className="cesium-viewer-toolbar",o.appendChild(C);let S;if(!u(t.geocoder)||t.geocoder!==!1){let q=document.createElement("div");q.className="cesium-viewer-geocoderContainer",C.appendChild(q);let Q;u(t.geocoder)&&typeof t.geocoder!="boolean"&&(Q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new s8({container:q,geocoderServices:Q,scene:m}),b.add(S.viewModel.search.beforeExecute,Di.prototype._clearObjects,this)}let w;(!u(t.homeButton)||t.homeButton!==!1)&&(w=new i8(C,m),u(S)&&b.add(w.viewModel.command.afterExecute,function(){let q=S.viewModel;q.searchText="",q.isSearchInProgress&&q.search()}),b.add(w.viewModel.command.beforeExecute,Di.prototype._clearTrackedObject,this));let D;!a&&(!u(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new C8(C,m));let O;t.projectionPicker&&(O=new x8(C,m));let R,N;if(n){let q=y(t.imageryProviderViewModels,H4()),Q=y(t.terrainProviderViewModels,G4());R=new z4(C,{globe:m.globe,imageryProviderViewModels:q,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:Q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),N=C.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}u(t.baseLayer)&&t.baseLayer!==!1&&(n&&(R.viewModel.selectedImagery=void 0),m.imageryLayers.removeAll(),m.imageryLayers.add(t.baseLayer)),u(t.terrainProvider)&&(n&&(R.viewModel.selectedTerrain=void 0),m.terrainProvider=t.terrainProvider),u(t.terrain)&&(n&&(R.viewModel.selectedTerrain=void 0,m.globe.depthTestAgainstTerrain=!0),m.setTerrain(t.terrain));let F;if(!u(t.navigationHelpButton)||t.navigationHelpButton!==!1){let q=!0;try{if(u(window.localStorage)){let Q=window.localStorage.getItem("cesium-hasSeenNavHelp");u(Q)&&Q?q=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}F=new d8({container:C,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,q)})}let _;if(!u(t.animation)||t.animation!==!1){let q=document.createElement("div");q.className="cesium-viewer-animationContainer",o.appendChild(q),_=new B4(q,new k4(l))}let E;if(!u(t.timeline)||t.timeline!==!1){let q=document.createElement("div");q.className="cesium-viewer-timelineContainer",o.appendChild(q),E=new P8(q,c),E.addEventListener("settime",ebe,!1),E.zoomTo(c.startTime,c.stopTime)}let v,I,M;(!u(t.fullscreenButton)||t.fullscreenButton!==!1)&&(M=document.createElement("div"),M.className="cesium-viewer-fullscreenContainer",o.appendChild(M),v=new e8(M,t.fullscreenElement),I=ya(v.viewModel,"isFullscreenEnabled",function(q){M.style.display=q?"block":"none",u(E)&&(E.container.style.right=`${M.clientWidth}px`,E.resize())}));let B,H,U;if(t.vrButton){let q=document.createElement("div");q.className="cesium-viewer-vrContainer",o.appendChild(q),B=new L8(q,m,t.fullScreenElement),H=ya(B.viewModel,"isVREnabled",function(Q){q.style.display=Q?"block":"none",u(v)&&(q.style.right=`${M.clientWidth}px`),u(E)&&(E.container.style.right=`${q.clientWidth}px`,E.resize())}),U=ya(B.viewModel,"isVRMode",function(Q){l0t(i,Q)})}this._baseLayerPickerDropDown=N,this._fullscreenSubscription=I,this._vrSubscription=H,this._vrModeSubscription=U,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=y(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=T,this._infoBox=A,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=x,this._clockViewModel=l,this._destroyClockViewModel=f,this._toolbar=C,this._homeButton=w,this._sceneModePicker=D,this._projectionPicker=O,this._baseLayerPicker=R,this._navigationHelpButton=F,this._animation=_,this._timeline=E,this._fullscreenButton=v,this._vrButton=B,this._geocoder=S,this._eventHelper=b,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=u(A)||u(T),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new pe,this._trackedEntityChanged=new pe,Te.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),b.add(p.dataSourceAdded,Di.prototype._onDataSourceAdded,this),b.add(p.dataSourceRemoved,Di.prototype._onDataSourceRemoved,this),b.add(m.postUpdate,Di.prototype.resize,this),b.add(m.postRender,Di.prototype._postRender,this);let G=p.length;for(let q=0;q<G;q++)this._dataSourceAdded(p,p.get(q));this._dataSourceAdded(void 0,x.defaultDataSource),b.add(p.dataSourceAdded,Di.prototype._dataSourceAdded,this),b.add(p.dataSourceRemoved,Di.prototype._dataSourceRemoved,this);function k(q){let Q=Qxe(i,q);u(Q)?j.getValueOrUndefined(Q.position,i.clock.currentTime)?i.trackedEntity=Q:i.zoomTo(Q):u(i.trackedEntity)&&(i.trackedEntity=void 0)}function Y(q){i.selectedEntity=Qxe(i,q)}d.screenSpaceEventHandler.setInputAction(Y,yn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(k,yn.LEFT_DOUBLE_CLICK)}Object.defineProperties(Di.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,oX(this);let t=this.scene,n=t.mode;!u(e)||!u(e.position)?(this._needTrackedEntityUpdate=!1,(n===te.COLUMBUS_VIEW||n===te.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===te.COLUMBUS_VIEW||n===te.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(L.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(e)?u(t)&&t.animateAppear():u(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,tbe(this._timeline,this.clock,e))}}});Di.prototype.extend=function(e,t){e(this,t)};Di.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=u(this._animation),r=u(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(u(a)&&(a.style.maxHeight=`${s}px`),u(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}u(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,l,f=0,d=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;l=this._animation.container,n>900?(f=169,g<=900&&(l.style.width="169px",l.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(l.style.width="136px",l.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(l.style.width="106px",l.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let g=this._fullscreenButton,m=this._vrButton,x=c.container,b=x.style;p=x.clientHeight+3,b.left=`${f}px`;let T=0;u(g)&&(T+=g.container.clientWidth),u(m)&&(T+=m.container.clientWidth),b.right=`${T}px`,c.resize()}this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};Di.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Di.prototype.render=function(){this._cesiumWidget.render()};Di.prototype.isDestroyed=function(){return!1};Di.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(yn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(yn.LEFT_DOUBLE_CLICK);let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),u(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),u(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),u(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),u(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),u(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),u(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),u(this._timeline)&&(this._timeline.removeEventListener("settime",ebe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),u(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),u(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),u(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),u(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),le(this)};Di.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Di.prototype._onEntityCollectionChanged,this)};Di.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Di.prototype._onEntityCollectionChanged,this),u(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),u(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Di.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(u(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,Uy)===at.DONE&&i.update(t,Uy)}let o,r=!1,s=this.selectedEntity,a=u(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,Uy)!==at.FAILED?o=Uy.center:u(s.position)&&(o=s.position.getValue(t,o)),r=u(o));let c=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(c)&&(c.position=h.clone(o,c.position),c.showSelection=a&&r,c.update());let l=u(this._infoBox)?this._infoBox.viewModel:void 0;u(l)&&(l.showInfo=a,l.enableCamera=r,l.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(l.titleText=y(s.name,s.id),l.description=j.getValueOrDefault(s.description,t,"")):(l.titleText="",l.description=""))};Di.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0),this.selectedEntity===r&&(this.selectedEntity=void 0)}};Di.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;u(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Di.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Di.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Di.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Di.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&tbe(this.timeline,this.clock,e)};Di.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Di.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Di.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Di.prototype.zoomTo=function(e,t){return nbe(this,e,{offset:t},!1)};Di.prototype.flyTo=function(e,t){return nbe(this,e,t,!0)};function nbe(e,t,n,i){oX(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof ha){let s;u(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return NE(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof ca||r instanceof EI||r instanceof II){e._zoomTarget=r;return}if(r.isLoading&&u(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=y(r.values,r),u(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function VI(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function oX(e){let t=e._zoomPromise;u(t)&&(VI(e),e._completeZoom(!1))}Di.prototype._postRender=function(){u0t(this),f0t(this)};function u0t(e){let t=e._zoomTarget;if(!u(t)||e.scene.mode===te.MORPHING)return;let n=e.scene,i=n.camera,o=y(e._zoomOptions,{}),r;function s(f){u(o.offset)||(o.offset=new Sd(0,-.5,f.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(f,o.offset),i.lookAtTransform(L.IDENTITY),e._completeZoom(!0)),VI(e)}if(t instanceof EI){if(u(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof ca||t instanceof II){s(t.boundingSphere);return}if(t instanceof fe){r={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),VI(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,Uy);if(p===at.PENDING)return;p!==at.FAILED&&c.push(se.clone(Uy))}if(c.length===0){oX(e);return}e.trackedEntity=void 0;let l=se.fromBoundingSpheres(c);e._zoomIsFlight?(VI(e),i.flyToBoundingSphere(l,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(l,o.offset),i.lookAtTransform(L.IDENTITY),VI(e),e._completeZoom(!0))}function f0t(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=j.getValueOrUndefined(t.position,n);if(!u(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,Uy);if(r===at.PENDING)return;let s=o.mode;(s===te.COLUMBUS_VIEW||s===te.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===te.COLUMBUS_VIEW||s===te.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==at.FAILED?Uy:void 0;e._entityView=new qB(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var ibe=Di;function d0t(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new Y4(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var obe=d0t;function h0t(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new Z4(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var rbe=h0t;function m0t(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new pe,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=In(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){sbe(s,l),s=f,rX(s,l)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?rX(s,l):sbe(s,l),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function l(f){ub(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let m=d[g],x=new FileReader;x.onload=p0t(e,m,c,a),x.onerror=_0t(e,m),x.readAsText(m)}}rX(s,l),e.destroy=Mz(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=l}function ub(e){e.stopPropagation(),e.preventDefault()}function sbe(e,t){let n=e;u(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",ub,!1),n.removeEventListener("dragover",ub,!1),n.removeEventListener("dragexit",ub,!1))}function rX(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",ub,!1),e.addEventListener("dragover",ub,!1),e.addEventListener("dragexit",ub,!1)}function p0t(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=QF.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=$B.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=uk.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=a3.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}u(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function _0t(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var abe=m0t;function g0t(e,t){t=y(t,y.EMPTY_OBJECT);let n=new p8({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var cbe=g0t;function lbe(e){let t=e.split(`
- `),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c}
- `}return i}function Rf(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),u(c)&&t._getPrimitiveFunctions.push(c);let l=Te.observable();return Te.defineProperty(t,r,{get:function(){return l()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),l(f),u(a)&&u(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,l}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=lbe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===ji.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===ji.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===ji.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.translationX=L.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.translationY=L.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.translationZ=L.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.scaleX=L.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.scaleY=L.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)},getPrimitiveFunction:function(){t.scaleZ=L.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Tm(t)}})}var y0t=new h,x0t=new h,b0t=new oc,T0t=new $;function Tm(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,y0t),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,x0t),i=b0t;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,T0t),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=L.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(Rf.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(u(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),u(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=lbe(i),u(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,Tm(t)}}}});Rf.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Rf.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Rf.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};Rf.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};Rf.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};Rf.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};Rf.prototype.compileShader=function(){u(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new LE({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};Rf.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(`
- `),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let f=a.join(`
- `);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};Rf.prototype.isDestroyed=function(){return!1};Rf.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),le(this)};var N8=Rf;function F8(e,t){e=In(e);let n=document.createElement("div"),i=new N8(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=Ja.createSection,a=Ja.createCheckbox,c=Ja.createRangeInput,l=Ja.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),m=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let x=10,b=10,T=P.PI;d.appendChild(c("Translation X","translationX",-x,+x)),d.appendChild(c("Translation Y","translationY",-x,+x)),d.appendChild(c("Translation Z","translationZ",-x,+x)),d.appendChild(c("Scale X","scaleX",0,+b)),d.appendChild(c("Scale Y","scaleY",0,+b)),d.appendChild(c("Scale Z","scaleZ",0,+b)),d.appendChild(c("Heading","angleX",-T,+T)),d.appendChild(c("Pitch","angleY",-T,+T)),d.appendChild(c("Roll","angleZ",-T,+T));let A=ji.getMinBounds(ji.BOX),C=ji.getMaxBounds(ji.BOX),S=h.fromElements(ji.getMinBounds(ji.ELLIPSOID).x,ji.getMinBounds(ji.ELLIPSOID).y,-ie.WGS84.maximumRadius,new h),w=h.fromElements(ji.getMaxBounds(ji.ELLIPSOID).x,ji.getMaxBounds(ji.ELLIPSOID).y,1e7,new h),D=ji.getMinBounds(ji.CYLINDER),O=ji.getMaxBounds(ji.CYLINDER);UE("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",A,C,"shapeIsBox",p),UE("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,w,"shapeIsEllipsoid",p),UE("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),UE("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",A,C,"shapeIsBox",g),UE("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,w,"shapeIsEllipsoid",g),UE("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let R=document.createElement("div");m.appendChild(R);let N=document.createElement("textarea");N.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(N);let F=l("Compile (Ctrl+Enter)","compileShader");R.appendChild(F);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),R.appendChild(_),Te.applyBindings(i,n)}Object.defineProperties(F8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});F8.prototype.isDestroyed=function(){return!1};F8.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),le(this)};function UE(e,t,n,i,o,r,s,a,c,l,f,d,p,g,m,x){let b=Ja.createRangeInput,T=p,A=g,C=x.appendChild(document.createElement("div"));C.setAttribute("data-bind",`if: ${m}`),C.appendChild(b(e,s,T.x,A.x)),C.appendChild(b(t,a,T.x,A.x)),C.appendChild(b(n,c,T.y,A.y)),C.appendChild(b(i,l,T.y,A.y)),C.appendChild(b(o,f,T.z,A.z)),C.appendChild(b(r,d,T.z,A.z))}var B8=F8;function A0t(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new B8(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var ube=A0t;globalThis.CESIUM_VERSION="1.110.1";var jXi="1.110.1";export{Jm as AlphaMode,SN as AlphaPipelineStage,B4 as Animation,k4 as AnimationViewModel,eo as Appearance,li as ApproximateTerrainHeights,Kge as ArcGISTiledElevationTerrainProvider,am as ArcGisBaseMapType,ay as ArcGisMapServerImageryProvider,gf as ArcGisMapService,Yt as ArcType,yc as ArticulationStageType,xt as AssociativeArray,jn as AttributeCompression,rn as AttributeType,vV as AutoExposure,t_ as AutomaticUniforms,wo as Axis,i0 as AxisAlignedBoundingBox,kL as B3dmLoader,BL as B3dmParser,z4 as BaseLayerPicker,U4 as BaseLayerPickerViewModel,Kb as BatchTable,ET as BatchTableHierarchy,Jc as BatchTexture,wN as BatchTexturePipelineStage,ho as Billboard,qu as BillboardCollection,cc as BillboardGraphics,SR as BillboardVisualizer,$ge as BingMapsGeocoderService,Ek as BingMapsImageryProvider,fD as BingMapsStyle,va as BlendEquation,bo as BlendFunction,Ao as BlendOption,un as BlendingState,qe as BoundingRectangle,se as BoundingSphere,at as BoundingSphereState,LT as BoundingVolumeSemantics,Wye as BoxEmitter,Rl as BoxGeometry,RM as BoxGeometryUpdater,cT as BoxGraphics,ch as BoxOutlineGeometry,bU as BrdfLutGenerator,ut as Buffer,vT as BufferLoader,Be as BufferUsage,PN as CPUStylingPipelineStage,_h as CallbackProperty,lo as Camera,MV as CameraEventAggregator,Fi as CameraEventType,TU as CameraFlightPath,V as Cartesian2,h as Cartesian3,oe as Cartesian4,fe as Cartographic,Qge as CartographicGeocoderService,eye as CatmullRomSpline,CT as Cesium3DContentGroup,ud as Cesium3DTile,I_ as Cesium3DTileBatchTable,kl as Cesium3DTileColorBlendMode,jye as Cesium3DTileContent,lA as Cesium3DTileContentFactory,zo as Cesium3DTileContentState,As as Cesium3DTileContentType,Ms as Cesium3DTileFeature,vh as Cesium3DTileFeatureTable,rd as Cesium3DTileOptimizationHint,fF as Cesium3DTileOptimizations,Po as Cesium3DTilePass,Ud as Cesium3DTilePassState,rg as Cesium3DTilePointFeature,Uo as Cesium3DTileRefine,SE as Cesium3DTileStyle,gF as Cesium3DTileStyleEngine,Y4 as Cesium3DTilesInspector,j4 as Cesium3DTilesInspectorViewModel,i0e as Cesium3DTilesVoxelProvider,ca as Cesium3DTileset,xF as Cesium3DTilesetBaseTraversal,hF as Cesium3DTilesetCache,pT as Cesium3DTilesetGraphics,pF as Cesium3DTilesetHeatmap,EA as Cesium3DTilesetMetadata,yF as Cesium3DTilesetMostDetailedTraversal,TF as Cesium3DTilesetSkipTraversal,gg as Cesium3DTilesetStatistics,Us as Cesium3DTilesetTraversal,CF as Cesium3DTilesetVisualizer,Z4 as CesiumInspector,X4 as CesiumInspectorViewModel,yz as CesiumTerrainProvider,cz as CesiumWidget,El as Check,rv as CheckerboardMaterialProperty,Uz as CircleEmitter,cye as CircleGeometry,lye as CircleOutlineGeometry,iN as ClassificationModelDrawCommand,vN as ClassificationPipelineStage,CS as ClassificationPrimitive,Un as ClassificationType,ei as ClearCommand,FT as ClippingPlane,xs as ClippingPlaneCollection,Vh as Clock,Lr as ClockRange,po as ClockStep,R4 as ClockViewModel,u0e as CloudCollection,uI as CloudType,z as Color,gc as ColorBlendMode,kt as ColorGeometryInstanceAttribute,Nt as ColorMaterialProperty,wxe as Command,X as ComponentDatatype,kM as Composite3DTileContent,Jre as CompositeEntityCollection,lv as CompositeMaterialProperty,la as CompositePositionProperty,bc as CompositeProperty,UP as CompressedTextureBuffer,Mf as ComputeCommand,pP as ComputeEngine,Lz as ConditionsExpression,f0e as ConeEmitter,$c as ConstantPositionProperty,Zn as ConstantProperty,qL as ConstantSpline,q2 as ContentMetadata,bR as Context,zt as ContextLimits,gB as CoplanarPolygonGeometry,ug as CoplanarPolygonGeometryLibrary,cd as CoplanarPolygonOutlineGeometry,Li as CornerType,MA as CorridorGeometry,Bi as CorridorGeometryLibrary,MF as CorridorGeometryUpdater,uT as CorridorGraphics,RF as CorridorOutlineGeometry,bt as Credit,PU as CreditDisplay,rc as CubeMap,Mm as CubeMapFace,Xb as CubicRealPolynomial,gi as CullFace,ns as CullingVolume,wf as CumulusCloud,kF as CustomDataSource,uye as CustomHeightmapTerrainProvider,LE as CustomShader,tg as CustomShaderMode,BN as CustomShaderPipelineStage,F0 as CustomShaderTranslucencyMode,UF as CylinderGeometry,NA as CylinderGeometryLibrary,zF as CylinderGeometryUpdater,fT as CylinderGraphics,VF as CylinderOutlineGeometry,QF as CzmlDataSource,Mr as DataSource,zh as DataSourceClock,eB as DataSourceCollection,GB as DataSourceDisplay,d0e as DebugAppearance,Gp as DebugCameraPrimitive,YV as DebugInspector,Hz as DebugModelMatrixPrimitive,dye as DefaultProxy,uc as DepthFunction,BU as DepthPlane,kN as DequantizationPipelineStage,py as DerivedCommand,de as DeveloperError,UU as DeviceOrientationCameraController,h0e as DirectionalLight,hD as DiscardEmptyTileImagePolicy,Ak as DiscardMissingTileImagePolicy,wt as DistanceDisplayCondition,kn as DistanceDisplayConditionGeometryInstanceAttribute,xE as DoubleEndedPriorityQueue,dF as DoublyLinkedList,k_ as DracoLoader,et as DrawCommand,KA as DynamicGeometryBatch,ni as DynamicGeometryUpdater,LP as EarthOrientationParameters,Yy as EarthOrientationParametersSample,Nr as EasingFunction,ll as EllipseGeometry,$l as EllipseGeometryLibrary,lB as EllipseGeometryUpdater,dT as EllipseGraphics,cf as EllipseOutlineGeometry,ie as Ellipsoid,Gf as EllipsoidGeodesic,Ws as EllipsoidGeometry,uB as EllipsoidGeometryUpdater,hT as EllipsoidGraphics,Qu as EllipsoidOutlineGeometry,fU as EllipsoidPrimitive,Da as EllipsoidRhumbLine,m0e as EllipsoidSurfaceAppearance,Ir as EllipsoidTangentPlane,zp as EllipsoidTerrainProvider,Eg as EllipsoidalOccluder,Ww as Empty3DTileContent,Wn as EncodedCartesian3,Qo as Entity,of as EntityCluster,Vs as EntityCollection,qB as EntityView,pe as Event,Or as EventHelper,qf as Expression,dt as ExpressionNodeType,rf as ExtrapolationType,Bt as FeatureDetection,N0 as FeatureIdPipelineStage,zU as Fog,Ie as ForEach,jz as FrameRateMonitor,HU as FrameState,ta as Framebuffer,di as FramebufferManager,XU as FrustumCommands,JC as FrustumGeometry,RU as FrustumOutlineGeometry,hr as Fullscreen,e8 as FullscreenButton,Q4 as FullscreenButtonViewModel,$B as GeoJsonDataSource,VL as GeoJsonLoader,Kx as GeocodeType,s8 as Geocoder,rI as GeocoderService,o8 as GeocoderViewModel,Ii as GeographicProjection,Gi as GeographicTilingScheme,ct as Geometry,qM as Geometry3DTileContent,Se as GeometryAttribute,hn as GeometryAttributes,_ye as GeometryFactory,yt as GeometryInstance,dc as GeometryInstanceAttribute,nn as GeometryOffsetAttribute,Fn as GeometryPipeline,zN as GeometryPipelineStage,Nf as GeometryType,ii as GeometryUpdater,MB as GeometryVisualizer,jC as GetFeatureInfoFormat,sU as Globe,KU as GlobeDepth,bk as GlobeSurfaceShaderSet,Nd as GlobeSurfaceTile,Kk as GlobeSurfaceTileProvider,Zk as GlobeTranslucency,ZU as GlobeTranslucencyFramebuffer,GU as GlobeTranslucencyState,QS as GltfBufferViewLoader,JS as GltfDracoLoader,ew as GltfImageLoader,tw as GltfIndexBufferLoader,iw as GltfJsonLoader,X_ as GltfLoader,Hl as GltfLoaderUtil,PL as GltfStructuralMetadataLoader,ow as GltfTextureLoader,rw as GltfVertexBufferLoader,_0e as GoogleEarthEnterpriseImageryProvider,Pk as GoogleEarthEnterpriseMapsProvider,vy as GoogleEarthEnterpriseMetadata,sI as GoogleEarthEnterpriseTerrainData,Sye as GoogleEarthEnterpriseTerrainProvider,Tz as GoogleEarthEnterpriseTileInformation,bE as GoogleMaps,a3 as GpxDataSource,o_ as GregorianDate,g0e as GridImageryProvider,xv as GridMaterialProperty,qn as GroundGeometryUpdater,rT as GroundPolylineGeometry,fh as GroundPolylinePrimitive,Zc as GroundPrimitive,Zw as GroupMetadata,Sd as HeadingPitchRange,oc as HeadingPitchRoll,IP as Heap,We as HeightReference,Md as HeightmapEncoding,Wa as HeightmapTerrainData,lD as HeightmapTessellator,GF as HermitePolynomialApproximation,O0 as HermiteSpline,XS as HilbertOrder,i8 as HomeButton,t8 as HomeButtonViewModel,_i as HorizontalOrigin,vE as I3SDataProvider,qz as I3SDecoder,Yz as I3SFeature,Xz as I3SField,hI as I3SGeometry,pI as I3SLayer,mI as I3SNode,jL as I3dmLoader,HL as I3dmParser,cU as Iau2000Orientation,BP as Iau2006XysData,Nb as Iau2006XysSample,lU as IauOrientationAxes,aU as IauOrientationParameters,AT as ImageBasedLighting,lN as ImageBasedLightingPipelineStage,m0 as ImageMaterialProperty,yD as Imagery,ha as ImageryLayer,Qk as ImageryLayerCollection,sm as ImageryLayerFeatureInfo,pl as ImageryProvider,si as ImageryState,fw as Implicit3DTileContent,KS as ImplicitAvailabilityBitstream,ZS as ImplicitMetadataView,Hr as ImplicitSubdivisionScheme,RT as ImplicitSubtree,Nz as ImplicitSubtreeCache,ZM as ImplicitSubtreeMetadata,vA as ImplicitTileCoordinates,wA as ImplicitTileset,ke as IndexDatatype,l8 as InfoBox,a8 as InfoBoxViewModel,Ja as InspectorShared,Gr as InstanceAttributeSemantic,TN as InstancingPipelineStage,wye as InterpolationAlgorithm,wh as InterpolationType,Zt as Intersect,Ei as IntersectionTests,Sy as Intersections2D,jc as Interval,kD as InvertClassification,xh as Ion,wz as IonGeocoderService,cy as IonImageryProvider,ku as IonResource,ly as IonWorldImageryStyle,He as Iso8601,jU as JobScheduler,Oa as JobType,q_ as JsonMetadataTable,J as JulianDate,VP as KTX2Transcoder,_a as KeyboardEventModifier,Qi as KeyframeNode,c3 as KmlCamera,uk as KmlDataSource,Q3 as KmlLookAt,ek as KmlTour,nk as KmlTourFlyTo,ik as KmlTourWait,G0 as Label,dp as LabelCollection,dh as LabelGraphics,Vo as LabelStyle,LB as LabelVisualizer,WF as LagrangePolynomialApproximation,Vi as LeapSecond,A0e as Light,cp as LightingModel,GN as LightingPipelineStage,UA as LinearApproximation,P0 as LinearSpline,Qc as ManagedArray,du as MapMode2D,vye as MapProjection,Ok as MapboxImageryProvider,E0e as MapboxStyleImageryProvider,Hi as Material,oo as MaterialAppearance,jN as MaterialPipelineStage,$o as MaterialProperty,P as Math,Ji as Matrix2,$ as Matrix3,L as Matrix4,_I as Megatexture,Eh as MetadataClass,A0 as MetadataClassProperty,Jt as MetadataComponentType,Bn as MetadataEntity,TL as MetadataEnum,xL as MetadataEnumValue,Qf as MetadataPipelineStage,Sh as MetadataSchema,aw as MetadataSchemaLoader,MT as MetadataSemantic,Vl as MetadataTable,QM as MetadataTableProperty,Gt as MetadataType,Lm as MipmapHint,Oh as Model,lp as Model3DTileContent,a2 as ModelAlphaOptions,ZL as ModelAnimation,KL as ModelAnimationChannel,QL as ModelAnimationCollection,Wl as ModelAnimationLoop,Dh as ModelAnimationState,dN as ModelArticulation,uN as ModelArticulationStage,pN as ModelClippingPlanesPipelineStage,L0 as ModelColorPipelineStage,Mt as ModelComponents,rN as ModelDrawCommand,JL as ModelFeature,eN as ModelFeatureTable,C_ as ModelGraphics,g2 as ModelLightingOptions,AN as ModelMatrixUpdateStage,_N as ModelNode,c2 as ModelRenderResources,EN as ModelRuntimeNode,r2 as ModelRuntimePrimitive,b2 as ModelSceneGraph,d2 as ModelSilhouettePipelineStage,s2 as ModelSkin,p2 as ModelSplitterPipelineStage,T2 as ModelStatistics,lr as ModelType,en as ModelUtility,FB as ModelVisualizer,mU as Moon,YN as MorphTargetsPipelineStage,Dye as MorphWeightSpline,ex as MortonOrder,K2 as Multiple3DTileContent,TR as MultisampleFramebuffer,d8 as NavigationHelpButton,u8 as NavigationHelpButtonViewModel,Ot as NearFarScalar,S0e as NeverTileDiscardPolicy,_2 as NodeRenderResources,CN as NodeStatisticsPipelineStage,mT as NodeTransformationProperty,QU as OIT,yU as Occluder,yh as OctahedralProjectedCubeMap,Ki as OffsetGeometryInstanceAttribute,Iye as OpenCageGeocoderService,Ly as OpenStreetMapImageryProvider,nB as OrderedGroundPrimitiveCollection,On as OrientedBoundingBox,Qt as OrthographicFrustum,vr as OrthographicOffCenterFrustum,Pye as Packable,Oye as PackableForInterpolation,gI as Particle,D0e as ParticleBurst,P0e as ParticleEmitter,M0e as ParticleSystem,Ee as Pass,sc as PassState,E_ as PathGraphics,BB as PathVisualizer,Sz as PeliasGeocoderService,on as PerInstanceColorAppearance,gy as PerformanceDisplay,p8 as PerformanceWatchdog,h8 as PerformanceWatchdogViewModel,vi as PerspectiveFrustum,gl as PerspectiveOffCenterFrustum,YU as PickDepth,JU as PickDepthFramebuffer,eV as PickFramebuffer,cV as Picking,XN as PickingPipelineStage,Gg as PinBuilder,Ye as PixelDatatype,rt as PixelFormat,tn as Plane,hB as PlaneGeometry,_B as PlaneGeometryUpdater,OM as PlaneGraphics,pB as PlaneOutlineGeometry,C2 as PntsLoader,tA as PntsParser,i4 as PointCloud,K_ as PointCloudEyeDomeLighting,tp as PointCloudShading,ZN as PointCloudStylingPipelineStage,_T as PointGraphics,Hs as PointPrimitive,pv as PointPrimitiveCollection,kB as PointVisualizer,sC as PolygonGeometry,zn as PolygonGeometryLibrary,TB as PolygonGeometryUpdater,hh as PolygonGraphics,Ia as PolygonHierarchy,bB as PolygonOutlineGeometry,ri as PolygonPipeline,ed as Polyline,bv as PolylineArrowMaterialProperty,Nh as PolylineCollection,zr as PolylineColorAppearance,Tv as PolylineDashMaterialProperty,Hg as PolylineGeometry,VB as PolylineGeometryUpdater,Av as PolylineGlowMaterialProperty,mc as PolylineGraphics,oa as PolylineMaterialAppearance,sx as PolylineOutlineMaterialProperty,Mi as PolylinePipeline,HB as PolylineVisualizer,AB as PolylineVolumeGeometry,kh as PolylineVolumeGeometryLibrary,EB as PolylineVolumeGeometryUpdater,gT as PolylineVolumeGraphics,CB as PolylineVolumeOutlineGeometry,A_ as PositionProperty,wg as PositionPropertyArray,_o as PostProcessStage,IV as PostProcessStageCollection,xl as PostProcessStageComposite,zd as PostProcessStageLibrary,Tf as PostProcessStageSampleMode,sE as PostProcessStageTextureCache,Sn as Primitive,Zl as PrimitiveCollection,zT as PrimitiveLoadPlan,VT as PrimitiveOutlineGenerator,JN as PrimitiveOutlinePipelineStage,tT as PrimitivePipeline,y2 as PrimitiveRenderResources,_r as PrimitiveState,e2 as PrimitiveStatisticsPipelineStage,Le as PrimitiveType,x8 as ProjectionPicker,g8 as ProjectionPickerViewModel,j as Property,Cv as PropertyArray,kT as PropertyAttribute,vL as PropertyAttributeProperty,Nl as PropertyBag,nl as PropertyTable,BT as PropertyTexture,wL as PropertyTextureProperty,Yr as ProviderViewModel,Mye as Proxy,qc as QuadraticRealPolynomial,Jk as QuadtreeOccluders,rU as QuadtreePrimitive,tU as QuadtreeTile,Ks as QuadtreeTileLoadState,U0e as QuadtreeTileProvider,_E as QuantizedMeshTerrainData,tM as QuarticRealPolynomial,Ne as Quaternion,XL as QuaternionSpline,j0 as Queue,Cn as Ray,ce as Rectangle,pC as RectangleCollisionChecker,fC as RectangleGeometry,Es as RectangleGeometryLibrary,SB as RectangleGeometryUpdater,mh as RectangleGraphics,_A as RectangleOutlineGeometry,to as ReferenceFrame,Dg as ReferenceProperty,Ve as RenderState,Ou as Renderbuffer,Wc as RenderbufferFormat,Ko as Request,Pm as RequestErrorEvent,ic as RequestScheduler,Qn as RequestState,ts as RequestType,ve as Resource,Wi as ResourceCache,Gl as ResourceCacheKey,EL as ResourceCacheStatistics,no as ResourceLoader,St as ResourceLoaderState,md as Rotation,ue as RuntimeError,F_ as S2Cell,Bs as SDFSettings,ua as SampledPositionProperty,sf as SampledProperty,ln as Sampler,Fp as ScaledPositionProperty,ZV as Scene,tE as SceneFramebuffer,te as SceneMode,t2 as SceneMode2DPipelineStage,C8 as SceneModePicker,T8 as SceneModePickerViewModel,$i as SceneTransforms,RV as SceneTransitioner,GV as ScreenSpaceCameraController,Af as ScreenSpaceEventHandler,yn as ScreenSpaceEventType,B0 as SelectedFeatureIdPipelineStage,v8 as SelectionIndicator,S8 as SelectionIndicatorViewModel,Hb as ShaderBuilder,pR as ShaderCache,Ce as ShaderDestination,CR as ShaderFunction,Kt as ShaderProgram,ze as ShaderSource,AR as ShaderStruct,xy as ShadowMap,qp as ShadowMapShader,gn as ShadowMode,Fu as ShadowVolumeAppearance,_n as ShowGeometryInstanceAttribute,Jy as Simon1994PlanetaryPositions,Lye as SimplePolylineGeometry,Rk as SingleTileImageryProvider,i2 as SkinningPipelineStage,JV as SkyAtmosphere,iz as SkyBox,o4 as SpatialNode,H0e as SphereEmitter,Nye as SphereGeometry,mg as SphereOutlineGeometry,jF as Spherical,io as Spline,il as SplitDirection,xI as Splitter,xd as StaticGeometryColorBatch,Td as StaticGeometryPerMaterialBatch,Fv as StaticGroundGeometryColorBatch,DB as StaticGroundGeometryPerMaterialBatch,zB as StaticGroundPolylinePerMaterialBatch,Bv as StaticOutlineGeometryBatch,Lt as StencilConstants,Vn as StencilFunction,ft as StencilOperation,YL as SteppedSpline,Sc as Stereographic,Ev as StripeMaterialProperty,Hh as StripeOrientation,Na as StructuralMetadata,Ih as StyleCommandsNeeded,G0e as StyleExpression,az as Sun,m_ as SunLight,qV as SunPostProcess,ML as SupportedImageFormats,O4 as SvgPathBindingHandler,pi as TaskProcessor,s4 as Terrain,rm as TerrainData,Dc as TerrainEncoding,Yc as TerrainExaggeration,TD as TerrainFillMesh,Ld as TerrainMesh,bT as TerrainOffsetProperty,jr as TerrainProvider,Xs as TerrainQuantization,co as TerrainState,Pt as Texture,V0 as TextureAtlas,_R as TextureCache,Ci as TextureMagnificationFilter,D4 as TextureManager,an as TextureMinificationFilter,yxe as TextureUniform,vn as TextureWrap,ym as TileAvailability,ad as TileBoundingRegion,sF as TileBoundingS2Cell,pg as TileBoundingSphere,W0e as TileBoundingVolume,a4 as TileCoordinatesImageryProvider,j0e as TileDiscardPolicy,pn as TileEdge,xD as TileImagery,vx as TileMapServiceImageryProvider,Y2 as TileMetadata,ld as TileOrientedBoundingBox,Co as TileProviderError,iU as TileReplacementQueue,Kn as TileSelectionResult,q0e as TileState,S2 as Tileset3DTileContent,uF as TilesetMetadata,aN as TilesetPipelineStage,Fye as TilingScheme,Xn as TimeConstants,qC as TimeDynamicImagery,EI as TimeDynamicPointCloud,An as TimeInterval,Rr as TimeIntervalCollection,Pg as TimeIntervalCollectionPositionProperty,Og as TimeIntervalCollectionProperty,Yn as TimeStandard,P8 as Timeline,D8 as TimelineHighlightRange,I8 as TimelineTrack,lM as Tipsify,ab as ToggleButtonViewModel,zx as Tonemapper,Rt as Transforms,_0 as TranslationRotationScale,iV as TranslucentTileClassification,xw as TridiagonalSystemSolver,JE as TrustedServers,cE as TweenCollection,xR as UniformState,wI as UniformType,ja as UrlTemplateImageryProvider,jXi as VERSION,L8 as VRButton,R8 as VRButtonViewModel,Uye as VRTheWorldTerrainProvider,xxe as VaryingType,qm as Vector3DTileBatch,G2 as Vector3DTileClampedPolylines,j2 as Vector3DTileContent,R_ as Vector3DTileGeometry,k2 as Vector3DTilePoints,U2 as Vector3DTilePolygons,cA as Vector3DTilePolylines,ST as Vector3DTilePrimitive,YF as VelocityOrientationProperty,YA as VelocityVectorProperty,ti as VertexArray,p_ as VertexArrayFacade,Tt as VertexAttributeSemantic,Pe as VertexFormat,Pn as VerticalOrigin,Vye as VideoSynchronizer,iE as View,ibe as Viewer,$0e as ViewportQuad,fr as Visibility,fhe as Visualizer,Qp as VoxelBoxShape,Bz as VoxelContent,Jp as VoxelCylinderShape,wE as VoxelEllipsoidShape,B8 as VoxelInspector,N8 as VoxelInspectorViewModel,II as VoxelPrimitive,axe as VoxelProvider,A4 as VoxelRenderResources,cxe as VoxelShape,ji as VoxelShapeType,SI as VoxelTraversal,zye as VulkanConstants,PB as WallGeometry,xC as WallGeometryLibrary,RB as WallGeometryUpdater,S_ as WallGraphics,OB as WallOutlineGeometry,ee as WebGLConstants,Lk as WebMapServiceImageryProvider,Nk as WebMapTileServiceImageryProvider,Oi as WebMercatorProjection,qr as WebMercatorTilingScheme,Jr as WindingOrder,ww as WireframeIndexGenerator,o2 as WireframePipelineStage,lV as _shadersAcesTonemappingStage,WV as _shadersAdditiveBlend,UD as _shadersAdjustTranslucentFS,vR as _shadersAllMaterialAppearanceFS,DR as _shadersAllMaterialAppearanceVS,uV as _shadersAmbientOcclusionGenerate,fV as _shadersAmbientOcclusionModulate,MR as _shadersAspectRampMaterial,oy as _shadersAtmosphereCommon,IR as _shadersBasicMaterialAppearanceFS,PR as _shadersBasicMaterialAppearanceVS,w2 as _shadersBillboardCollectionFS,v2 as _shadersBillboardCollectionVS,dV as _shadersBlackAndWhite,hV as _shadersBloomComposite,xU as _shadersBrdfLutGeneratorFS,jV as _shadersBrightPass,mV as _shadersBrightness,LR as _shadersBumpMapMaterial,IN as _shadersCPUStylingStageFS,DN as _shadersCPUStylingStageVS,NR as _shadersCheckerboardMaterial,lz as _shadersCloudCollectionFS,uz as _shadersCloudCollectionVS,fz as _shadersCloudNoiseFS,dz as _shadersCloudNoiseVS,nV as _shadersCompareAndPackTranslucentDepth,$U as _shadersCompositeOITFS,nE as _shadersCompositeTranslucentClassification,pV as _shadersContrastBias,RN as _shadersCustomShaderStageFS,ON as _shadersCustomShaderStageVS,kb as _shadersCzmBuiltins,_V as _shadersDepthOfField,LU as _shadersDepthPlaneFS,NU as _shadersDepthPlaneVS,gV as _shadersDepthView,gxe as _shadersDepthViewPacked,FR as _shadersDotMaterial,yV as _shadersEdgeDetection,BR as _shadersElevationBandMaterial,kR as _shadersElevationContourMaterial,UR as _shadersElevationRampMaterial,SD as _shadersEllipsoidFS,Gz as _shadersEllipsoidSurfaceAppearanceFS,Wz as _shadersEllipsoidSurfaceAppearanceVS,wD as _shadersEllipsoidVS,bV as _shadersFXAA,wV as _shadersFXAA3_11,VR as _shadersFadeMaterial,MN as _shadersFeatureIdStageFS,LN as _shadersFeatureIdStageVS,xV as _shadersFilmicTonemapping,Bx as _shadersGaussianBlur1D,UN as _shadersGeometryStageFS,VN as _shadersGeometryStageVS,yk as _shadersGlobeFS,xk as _shadersGlobeVS,zR as _shadersGridMaterial,uD as _shadersGroundAtmosphere,k1 as _shadersHSBToRGB,U1 as _shadersHSLToRGB,cN as _shadersImageBasedLightingStageFS,gN as _shadersInstancingStageCommon,yN as _shadersInstancingStageVS,m4 as _shadersIntersectBox,h4 as _shadersIntersectClippingPlanes,p4 as _shadersIntersectCylinder,d4 as _shadersIntersectDepth,_4 as _shadersIntersectEllipsoid,RE as _shadersIntersection,f4 as _shadersIntersectionUtils,xN as _shadersLegacyInstancingStageVS,TV as _shadersLensFlare,HN as _shadersLightingStageFS,WN as _shadersMaterialStageFS,T4 as _shadersMegatexture,NN as _shadersMetadataStageFS,FN as _shadersMetadataStageVS,mN as _shadersModelClippingPlanesStageFS,hN as _shadersModelColorStageFS,tN as _shadersModelFS,l2 as _shadersModelSilhouetteStageFS,u2 as _shadersModelSilhouetteStageVS,h2 as _shadersModelSplitterStageFS,nN as _shadersModelVS,AV as _shadersModifiedReinhardTonemapping,qN as _shadersMorphTargetsStageVS,CV as _shadersNightVision,HR as _shadersNormalMapMaterial,MM as _shadersOctahedralProjectionAtlasFS,LM as _shadersOctahedralProjectionFS,NM as _shadersOctahedralProjectionVS,b4 as _shadersOctree,hu as _shadersPassThrough,Lx as _shadersPassThroughDepth,$R as _shadersPerInstanceColorAppearanceFS,QR as _shadersPerInstanceColorAppearanceVS,qb as _shadersPerInstanceFlatColorAppearanceFS,JR as _shadersPerInstanceFlatColorAppearanceVS,FL as _shadersPointCloudEyeDomeLighting,KN as _shadersPointCloudStylingStageVS,ix as _shadersPointPrimitiveCollectionFS,FF as _shadersPointPrimitiveCollectionVS,GR as _shadersPolylineArrowMaterial,IM as _shadersPolylineColorAppearanceVS,Bu as _shadersPolylineCommon,WR as _shadersPolylineDashMaterial,sT as _shadersPolylineFS,jR as _shadersPolylineGlowMaterial,PM as _shadersPolylineMaterialAppearanceVS,qR as _shadersPolylineOutlineMaterial,SM as _shadersPolylineShadowVolumeFS,wM as _shadersPolylineShadowVolumeMorphFS,vM as _shadersPolylineShadowVolumeMorphVS,DM as _shadersPolylineShadowVolumeVS,M2 as _shadersPolylineVS,QN as _shadersPrimitiveOutlineStageFS,$N as _shadersPrimitiveOutlineStageVS,V1 as _shadersRGBToHSB,z1 as _shadersRGBToHSL,H1 as _shadersRGBToXYZ,EV as _shadersReinhardTonemapping,Fk as _shadersReprojectWebMercatorFS,Bk as _shadersReprojectWebMercatorVS,YR as _shadersRimLightingMaterial,Ew as _shadersSelectedFeatureIdStageCommon,AS as _shadersShadowVolumeAppearanceFS,sM as _shadersShadowVolumeAppearanceVS,r0 as _shadersShadowVolumeFS,SV as _shadersSilhouette,n2 as _shadersSkinningStageVS,JD as _shadersSkyAtmosphereCommon,$V as _shadersSkyAtmosphereFS,QV as _shadersSkyAtmosphereVS,ez as _shadersSkyBoxFS,tz as _shadersSkyBoxVS,XR as _shadersSlopeRampMaterial,KR as _shadersStripeMaterial,oz as _shadersSunFS,rz as _shadersSunTextureFS,sz as _shadersSunVS,OR as _shadersTexturedMaterialAppearanceFS,RR as _shadersTexturedMaterialAppearanceVS,H2 as _shadersVector3DTileClampedPolylinesFS,z2 as _shadersVector3DTileClampedPolylinesVS,V2 as _shadersVector3DTilePolylinesVS,YS as _shadersVectorTileVS,hz as _shadersViewportQuadFS,Ab as _shadersViewportQuadVS,l4 as _shadersVoxelFS,u4 as _shadersVoxelVS,ZR as _shadersWater,G1 as _shadersXYZToRGB,W1 as _shadersacesTonemapping,j1 as _shadersalphaWeight,q1 as _shadersantialias,Y1 as _shadersapproximateSphericalCoordinates,X1 as _shadersbackFacing,K1 as _shadersbranchFreeTernary,Z1 as _shaderscascadeColor,$1 as _shaderscascadeDistance,Q1 as _shaderscascadeMatrix,J1 as _shaderscascadeWeights,eO as _shaderscolumbusViewMorph,tO as _shaderscomputePosition,g4 as _shadersconvertUvToBox,y4 as _shadersconvertUvToCylinder,x4 as _shadersconvertUvToEllipsoid,nO as _shaderscosineAndSine,iO as _shadersdecompressTextureCoordinates,oO as _shadersdefaultPbrMaterial,jP as _shadersdegreesPerRadian,rO as _shadersdepthClamp,qP as _shadersdepthRange,I1 as _shadersdepthRangeStruct,sO as _shaderseastNorthUpToEyeCoordinates,aO as _shadersellipsoidContainsPoint,cO as _shadersellipsoidWgs84TextureCoordinates,YP as _shadersepsilon1,XP as _shadersepsilon2,KP as _shadersepsilon3,ZP as _shadersepsilon4,$P as _shadersepsilon5,QP as _shadersepsilon6,JP as _shadersepsilon7,lO as _shadersequalsEpsilon,uO as _shaderseyeOffset,fO as _shaderseyeToWindowCoordinates,dO as _shadersfastApproximateAtan,hO as _shadersfog,mO as _shadersgammaCorrect,pO as _shadersgeodeticSurfaceNormal,_O as _shadersgetDefaultMaterial,gO as _shadersgetLambertDiffuse,yO as _shadersgetSpecular,xO as _shadersgetWaterNoise,bO as _shadershue,e1 as _shadersinfinity,TO as _shadersinverseGamma,AO as _shadersisEmpty,CO as _shadersisFull,EO as _shaderslatitudeToWebMercatorFraction,SO as _shaderslineDistance,wO as _shaderslinearToSrgb,vO as _shadersluminance,P1 as _shadersmaterial,O1 as _shadersmaterialInput,DO as _shadersmetersPerPixel,R1 as _shadersmodelMaterial,IO as _shadersmodelToWindowCoordinates,M1 as _shadersmodelVertexOutput,PO as _shadersmultiplyWithColorBalance,OO as _shadersnearFarScalar,RO as _shadersoctDecode,t1 as _shadersoneOverPi,n1 as _shadersoneOverTwoPi,MO as _shaderspackDepth,i1 as _shaderspassCesium3DTile,o1 as _shaderspassCesium3DTileClassification,r1 as _shaderspassCesium3DTileClassificationIgnoreShow,s1 as _shaderspassClassification,a1 as _shaderspassCompute,c1 as _shaderspassEnvironment,l1 as _shaderspassGlobe,u1 as _shaderspassOpaque,f1 as _shaderspassOverlay,d1 as _shaderspassTerrainClassification,h1 as _shaderspassTranslucent,m1 as _shaderspassVoxels,LO as _shaderspbrLighting,NO as _shaderspbrMetallicRoughnessMaterial,L1 as _shaderspbrParameters,FO as _shaderspbrSpecularGlossinessMaterial,BO as _shadersphong,p1 as _shaderspi,_1 as _shaderspiOverFour,g1 as _shaderspiOverSix,y1 as _shaderspiOverThree,x1 as _shaderspiOverTwo,kO as _shadersplaneDistance,UO as _shaderspointAlongRay,b1 as _shadersradiansPerDegree,N1 as _shadersray,VO as _shadersrayEllipsoidIntersectionInterval,F1 as _shadersraySegment,zO as _shadersraySphereIntersectionInterval,HO as _shadersreadDepth,GO as _shadersreadNonPerspective,WO as _shadersreverseLogDepth,jO as _shadersround,qO as _shaderssampleOctahedralProjection,YO as _shaderssaturation,T1 as _shaderssceneMode2D,A1 as _shaderssceneMode3D,C1 as _shaderssceneModeColumbusView,E1 as _shaderssceneModeMorphing,XO as _shadersshadowDepthCompare,B1 as _shadersshadowParameters,KO as _shadersshadowVisibility,ZO as _shaderssignNotZero,S1 as _shaderssolarRadius,$O as _shaderssphericalHarmonics,QO as _shaderssrgbToLinear,JO as _shaderstangentToEyeSpaceMatrix,eR as _shaderstextureCube,w1 as _shadersthreePiOver2,tR as _shaderstransformPlane,nR as _shaderstranslateRelativeToEye,iR as _shaderstranslucentPhong,oR as _shaderstranspose,v1 as _shaderstwoPi,rR as _shadersunpackDepth,sR as _shadersunpackFloat,aR as _shadersunpackUint,cR as _shadersvalueTransform,lR as _shadersvertexLogDepth,D1 as _shaderswebMercatorMaxLatitude,uR as _shaderswindowToEyeCoordinates,fR as _shaderswriteDepthClamp,dR as _shaderswriteLogDepth,hR as _shaderswriteNonPerspective,lL as addBuffer,JM as addDefaults,sL as addExtensionsRequired,Xf as addExtensionsUsed,S0 as addPipelineExtras,ys as addToArray,SP as appendForwardSlash,go as arrayRemoveDuplicates,Zb as barycentricCoordinates,Eo as binarySearch,sN as buildDrawCommand,$t as buildModuleUrl,S4 as buildVoxelDrawCommands,Ge as clone,gt as combine,NE as computeFlyToLocationForRectangle,iA as createBillboardPointCallback,En as createCommand,H4 as createDefaultImageryProviderViewModels,G4 as createDefaultTerrainProviderViewModels,dxe as createElevationBandMaterial,mxe as createGooglePhotorealistic3DTileset,Gn as createGuid,So as createMaterialPropertyDescriptor,pxe as createOsmBuildingsAsync,ae as createPropertyDescriptor,Ll as createRawPropertyDescriptor,_xe as createTangentSpaceDebugPrimitive,bxe as createTaskProcessorWorker,fP as createUniform,dP as createUniformArray,uy as createWorldImageryAsync,CE as createWorldTerrainAsync,Oz as decodeGoogleEarthEnterpriseData,W2 as decodeVectorPolylinePositions,y as defaultValue,wl as defer,u as defined,mR as demodernizeShader,es as deprecationWarning,le as destroyObject,The as exportKml,PT as findAccessorMinMax,uA as findContentMetadata,fA as findGroupMetadata,X2 as findTileMetadata,nw as forEachTextureInMaterial,Up as formatError,KX as freezeRenderState,Im as getAbsoluteUri,zl as getAccessorByteStride,wP as getBaseUri,Uu as getBinaryAccessor,e4 as getClipAndStyleCode,ry as getClippingFunction,z_ as getComponentReader,In as getElement,vb as getExtensionFromUri,Sg as getFilenameFromUri,Rz as getImageFromTypedArray,th as getImagePixels,vo as getJsonFromTypedArray,Th as getMagic,Bl as getStringFromTypedArray,Ti as getTimestamp,oi as hasExtension,w_ as heightReferenceOnEntityPropertyChanged,Mc as isBitSet,Db as isBlobUri,Ib as isCrossOriginUrl,a_ as isDataUri,r_ as isLeapYear,Te as knockout,FE as knockout_3_5_1,P4 as knockout_es5,Pb as loadAndExecuteScript,ER as loadCubeMap,DT as loadImageFromTypedArray,vl as loadKTX2,dy as mergeSort,rL as moveTechniqueRenderStates,aL as moveTechniquesToExtension,zu as numberOfComponentsForType,Ob as objectToQuery,It as oneTimeWarning,Z_ as parseBatchTable,IL as parseFeatureMetadataLegacy,nL as parseGlb,DP as parseResponseHeaders,DL as parseStructuralMetadata,Hye as pointInsideTriangle,bp as preprocess3DTileContent,E4 as processVoxelProperties,Du as queryToObject,uL as readAccessorPacked,OT as removeExtension,tL as removeExtensionsRequired,IT as removeExtensionsUsed,oL as removePipelineExtras,cL as removeUnusedElements,v0 as resizeImageToNextPowerOfTwo,NB as sampleTerrain,kg as sampleTerrainMostDetailed,Tb as scaleToGeodeticSurface,aM as subdivideArray,ya as subscribeAndEvaluate,dL as updateAccessorComponentTypes,_L as updateVersion,cr as usesExtension,obe as viewerCesium3DTilesInspectorMixin,rbe as viewerCesiumInspectorMixin,abe as viewerDragDropMixin,cbe as viewerPerformanceWatchdogMixin,ube as viewerVoxelInspectorMixin,Gye as webGLConstantToGlslType,Mz as wrapFunction,rA as writeTextToCanvas};
|